首页 > 系统相关 >Linux实用又常用的命令

Linux实用又常用的命令

时间:2023-03-24 09:12:05浏览次数:32  
标签:sort 文件 常用 echo 实用 etc awk Linux print

linux 查看当前目录下每个子目录的文件数量

find . -maxdepth 1 -type d | while read dir; do count=$(find "$dir" -type f | wc -l); echo "$dir : $count"; done
-maxdepth 1 过滤目录的深度
-type d 文件类型为目录
-type f 文件类型为文件

查看最常用的命令和使用次数

history | awk '{if ($2 == "sudo") a[$3]++; else a[$2]++}END{for(i in a){print a[i] " " i}}' | sort -rn | head;

逆序查看文件

awk '{a[i++]=$0} END {for (j=i-1; j>=0;) print a[j--] }' filename;

统计一下服务器下面所有的 jpg 的文件的大小

find / -name *.jpg -exec wc -c {} \;|awk '{print $1}'|awk '{a+=$1}END{print a}'

查看访问前十个ip地址

awk '{print $1}' |sort|uniq -c|sort -nr |head -10 access_log

访问次数最多的10个文件或页面

cat log_file|awk '{print $11}'|sort|uniq -c|sort -nr | head -10
cat log_file|awk '{print $11}'|sort|uniq -c|sort -nr|head -20
awk '{print $1}' log_file |sort -n -r |uniq -c | sort -n -r | head -20

查看某一个IP访问了哪些页面:

grep ^111.111.111.111 log_file| awk '{print $1,$7}'

Nginx 访问日志分析脚本

#!/bin/bash
\# 日志格式: $remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" "$http_x_forwarded_for"
LOG_FILE=$1
echo "统计访问最多的10个IP"
awk '{a[$1]++}END{print "UV:",length(a);for(v in a)print v,a[v]}' $LOG_FILE |sort -k2 -nr |head -10
echo "----------------------"
echo "统计时间段访问最多的IP"
awk '$4>="[01/Dec/2018:13:20:25" && $4<="[27/Nov/2018:16:20:49"{a[$1]++}END{for(v in a)print v,a[v]}' $LOG_FILE |sort -k2 -nr|head -10
echo "----------------------"

echo "统计访问最多的10个页面"
awk '{a[$7]++}END{print "PV:",length(a);for(v in a){if(a[v]>10)print v,a[v]}}' $LOG_FILE |sort -k2 -nr
echo "----------------------"

echo "统计访问页面状态码数量"
awk '{a[$7" "$9]++}END{for(v in a){if(a[v]>5)print v,a[v]}}'

服务器系统配置初始化脚本

#/bin/bash
\# 设置时区并同步时间
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
if ! crontab -l |grep ntpdate &>/dev/null ; then
  (echo "* 1 * * * ntpdate time.windows.com >/dev/null 2>&1";crontab -l) |crontab
fi

\# 禁用selinux
sed -i '/SELINUX/{s/permissive/disabled/}' /etc/selinux/config

\# 关闭防火墙
if egrep "7.[0-9]" /etc/redhat-release &>/dev/null; then
  systemctl stop firewalld
  systemctl disable firewalld
elif egrep "6.[0-9]" /etc/redhat-release &>/dev/null; then
  service iptables stop
  chkconfig iptables off
fi

\# 历史命令显示操作时间
if ! grep HISTTIMEFORMAT /etc/bashrc; then
  echo 'export HISTTIMEFORMAT="%F %T `whoami` "' >> /etc/bashrc
fi

\# SSH超时时间
if ! grep "TMOUT=600" /etc/profile &>/dev/null; then
  echo "export TMOUT=600" >> /etc/profile
fi

\# 禁止root远程登录
sed -i 's/#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config

\# 禁止定时任务向发送邮件
sed -i 's/^MAILTO=root/MAILTO=""/' /etc/crontab

\# 设置最大打开文件数
if ! grep "* soft nofile 65535" /etc/security/limits.conf &>/dev/null; then
  cat >> /etc/security/limits.conf << EOF
  \* soft nofile 65535
  \* hard nofile 65535
EOF
fi

\# 系统内核优化
cat >> /etc/sysctl.conf << EOF
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_tw_buckets = 20480
net.ipv4.tcp_max_syn_backlog = 20480
net.core.netdev_max_backlog = 262144
net.ipv4.tcp_fin_timeout = 20
EOF

\# 减少SWAP使用
echo "0" > /proc/sys/vm/swappiness

\# 安装系统性能分析工具及其他
yum install gcc make autoconf vim sysstat net-tools iostat if

xargs 用法

使用该方法,您可以快速重命名目录中的文件。 
eg:$ ls | xargs -t -i mv {} {}.bak
-i 选项告诉 xargs 用每项的名称替换 {}。
eg:统计一个源代码目录中所有php文件的行数:
  find . -type f -name "*.php" -print0 | xargs -0 wc -l
eg:查找所有的jpg 文件,并且压缩它们:
find . -type f -name "*.jpg" -print | xargs tar -czvf images.tar.gz

oracle 执行计划

在你要执⾏的SQL语句前加
explain plan for
,此时将⽣成的执⾏计划存储到计划表中,语句如下:explain plan for SQL语句
在计划表中查询刚刚⽣成的执⾏计划,语句如下:
select * from table(dbms_xplan.display);  

md5sum.该命令将生成文件的 32 位 MD5 散列值:

md5sum file1
md5sum 是一个非常强大的用于安全性实施的命令。您所管理的某些配置文件(如 listener.ora、tnsnames.ora 和 init.ora)对于成功的 Oracle 基础架构非常重要,任何修改都可能会导致停机。这些通常是更改控制过程的一部分。不要相信别人所说的这些文件并未更改,使用 MD5 校验和执行该命令。创建一个校验和文件,并在每次执行计划的更改时重新创建该文件。作为合规性的一部分,使用 md5sum 命令检查该文件。如果某个人无意中更新了这些重要文件中的一个,您就会立即捕获更改。

全系统中搜索,包含某数据的文件名

[root@localhost tmp]# find /  -type f  -name '*.txt' | xargs  -i grep -l 'xiake' {}`
`/var/log/nginx/mima.txt`
 

标签:sort,文件,常用,echo,实用,etc,awk,Linux,print
From: https://www.cnblogs.com/xuxuxu-2022/p/17250210.html

相关文章

  • git常用命令
    gitclone地址   :克隆仓库gitclone-b分支名地址  :克隆仓库分支gitadd.  :暂存代码到本地gitcommit-m'提交信息' :提交代码到本地gitpush ......
  • Linux的优缺点
    作为一个Archlinux用户,断然是不会认为Linux有缺点的,任何所谓的缺点都是自己技艺不精或者没有好好利用搜索引擎而造成的狭隘偏见.但是假如是一位习惯于视窗系统的新手......
  • 国产化大趋势下学习linux的必要性
    由于国际上的一些国家的制裁和威胁。最近几年国产化大趋势慢慢的兴起,我们国产化硬件的需求越来越大。对国产操作系统的需求也越来越多,那么我们一直用的Windows系统为什么不......
  • linux下生成高强度密码的四大神器
    导读安全是一个大的话题,给服务器设置一个高强度的密码是非常重要的。你可能会疑惑一个高强度的密码究竟是什么样的呢?怎么才能生成一个那样的密码呢?不用担心下面我们将......
  • Docker CLI docker config rm 常用命令
    Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化。Doc......
  • Linux-监控三剑客之prometheus
    prometheus一、prometheus监控架构二、PrometheusvsZabbix指标PrometheusZabbix语言Golang(Go)PHP,C,GO部署二进制,解压即用.yum,编译,数据库,php依......
  • linux操作系统实验三-搭建vscode调试环境,进行start_kernal调试
    实验三:debugmykernel 首先安装开发工具sudoaptinstallbuild-essentialsudoaptinstallqemu#installQEMUsudoaptinstalllibncurses5-devbisonflexlibs......
  • jmeter常用的命令行及参数
    一、运行方式分类GUI方式:图形界面方式运行CLI方式:commandline命令行,jmeter的脚本可以通过命令行用命令进行执行二、用命令行执行的优势:1、图形化界面运行的时候会占......
  • linux shell基础--$字符
    shell中有两类字符:普通字符、元字符。普通字符在Shell中除了本身的字面意思外没有其他特殊意义,即普通纯文本;元字符是Shell的保留字符,在Shell中有着特殊的含义。$()反引号......
  • 常用数字与字母的正则表达式 比如 前10个数字后面和一个数字或者字母
    常用数字与字母的正则表达式比如前10个数字后面和一个数字或者字母原文链接:https://www.cnblogs.com/xuqiang7/p/11082729.html^\d{10}[A-Za-z0-9]{1}$或者^\d{10}......