ps -aux | sort -k4nr | head -n 10#内存占用前10进程DIR=$(dirname $(readlink -f $0))#获取当前shell所在文件夹grep -rn ./ test#查询当前文件夹中含有test字符串的文件
常用的命令连接符号有四个:
&&:前一个指令执行成功,后面的指令才继续执行,就像进行与操作一样||:前一个命令执行失败,后面的才继续执行,类似于或操作&:直接连接多个命令|:管道符,将前一个命令的输出作为下一个命令的输入;:直接连接多个命令
一些 Linux 命令:
stat filename#查看文件修改时间
cat work/es_index_search_slowlog/es_index_search_slowlog-2019-09-17-1.log | awk '{print $4 , "index:", $3, "query:", $10}' | grep took | grep -v 'ms]' | uniq -u | sort -r | head -100 > sublime_files/slowlog
uname -a#查看内核/操作系统/CPU 信息的 linux 系统信息命令head -n 1 /etc/issue#查看操作系统版本,是数字 1 不是字母 L
grep MemTotal /proc/meminfo# 查看内存总量grep MemFree /proc/meminfo# 查看空闲内存量tailf /tmp/gh_normal_log | grep -vnG 'Scroll'#-v反选不匹配-G正则-n显示行号
fdisk -l |grep Disk# 硬盘大小df -h# 查看各分区使用情况fdisk -l# 查看所有分区swapon -s# 查看所有交换分区free -m# 查看内存使用量和交换区使用量ps aux | head -1;ps aux |grep -v PID |sort -rn -k +4 | head -20# 查看内存占用高的前20
hostname# 查看计算机名的linux系统信息命令env# 查看环境变量资源export OS_STATUS="PRE"# 定义环境变量export OS_STATUS="PRE" && php artisan inspireexport# 查看当前所有的环境变量
uptime# 查看系统运行时间、用户数、负载mount | column -t# 查看挂接的分区状态
hdparm -i /dev/hda# 查看磁盘参数(仅适用于IDE设备)dmesg | grep IDE# 查看启动时IDE设备检测状况网络
netstat -lntp# 查看所有监听端口netstat -antp# 查看所有已经建立的连接netstat -s# 查看网络统计信息进程ps -ef# 查看所有进程ifconfig# 查看所有网络接口的属性route -n# 查看路由表iptables -L# 查看防火墙设置
top# 实时显示进程状态用户w# 查看活动用户id# 查看指定用户信息last# 查看用户登录日志cut -d: -f1 /etc/passwd# 查看系统所有用户cut -d: -f1 /etc/group# 查看系统所有组usermod -a -G root anna# 将anna用户加入root用户组groups anna#查看anna用户组
crontab -l# 查看当前用户的计划任务服务chkconfig –list# 列出所有系统服务chkconfig –list | grep on# 列出所有启动的系统服务程序
rpm -qa# 查看所有安装的软件包
cat /proc/cpuinfo# 查看CPU相关参数的linux系统命令cat /proc/partitions#查看linux硬盘和分区信息的系统信息命令cat /proc/meminfo# 查看linux系统内存信息的linux系统命令cat /proc/version# 查看版本,类似uname -rcat /proc/ioports# 查看设备io端口cat /proc/interrupts# 查看中断cat /proc/pci# 查看pci设备的信息cat /proc/swaps# 查看所有swap分区的信息cat /proc/meminfo |grep MemTotal# 内存大小cat /proc/cpuinfo# 查看 CPU 信息的 linux 系统信息命令cat /etc/shadow# 查看系统所有用户密码文件cat /proc/loadavg# 查看系统负载磁盘和分区cat /etc/system-release# 查看系统版本号head -n 1 /etc/issue# 查看系统版本cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l# 查看物理CPU个数cat /proc/cpuinfo| grep "cpu cores"| uniq# 查看每个物理CPU中core的个数(即核数)总核数 = 物理CPU个数 X 每颗物理CPU的核数总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数cat /proc/cpuinfo| grep "processor"| wc -l# 查看逻辑CPU的个数
find /var/html/ -ctime -10 -name "*.php"# 查找最近 10 天里修改的 php 文件
sort 对数据进行排序
| 参数 | 释义 | 示例 |
|---|---|---|
| -r | 倒叙排序(默认正序),默认以第一列进行排序 | cat access.log|sort -r |
| -k 列号 | 按照第"列号"进行字符串排序 | cat accsess.log|sort -r -k 9 |
| -n | 排序按照数字型进行排序 | awk '{print $1}' access.log|sort|uniq -c|sort -r -k 1 -n |
head/tail命令使用
| 参数 | 释义 | 示例 | |
|---|---|---|---|
| -c 字节数 | 输出头(尾)‘字节数’个字节到标准输出中 | `awk '{print $1}' access.log | sort - |
| r | uniq -c | head -c 100` | |
| -n 行数 | 输出头(尾)‘行数’个行到标准输出中 | awk '{print $1}' access.log|sort -r|uniq -c|head -n 10 |
xargs 命令使用
| 参数 | 释义 | 示例 |
|---|---|---|
| -I {} | 每次传入一个参数,以{}作为参数传入位置 | cat ip.txt|xargs -I {} curl 'http://freeapi.ipip.net/'{} |
| -t | 输出前展示拼接命令 | cat ip.txt|xargs -t -I {} curl 'http://freeapi.ipip.net/'{} |
| -n 个数 | 每次传入的参数个数,在-I 的情况下不生效 | cat ip.txt|xargs -n 1 ping -c 1 -t |
统计代码行数
git log --pretty=tformat: --numstat | gawk '{ add += $1 ; subs += $2 ; loc += $1 - $2 } END { printf "增加的行数:%s 删除的行数:%s 总行数: %s\n",add,subs,loc }'
统计相同索引数量
grep, egrep, fgrep - print lines matching a pattern
grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]
--colour=auto:对匹配到的文本着色
-i:ignorecase 忽略字符大小写
-o:仅显示匹配到的字符串本身
-v:反向显示
-E:支持扩展的正则表达式
-q:静默模式 不输出任何信息
-A#:after 后#行
-B#:before 前#行
-C#:context 前后#行
要先sort再uniq,因为uniq是判断上一行和下一行来判断是否唯一的。uniq -c 统计相同的数量。
cat es-2019-10-15-20.log | grep '2019-10-15T10:5' | egrep -o 'indices: (.*), source' | sort | uniq -c | sort -rn
