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 inspire
export
# 查看当前所有的环境变量
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