linux有趣的命令播放电影,常用的Linux命令片段

1. 查看登录用户

$ who -a | grep -Ev "tty|system boot|run-level"

2. 列出当前CPU占用排名前五的进程信息

$ ps aux | sort -k3,3nr | head -5

3. 列出当前内存占用排名前五的进程信息

$ ps aux | sort -k4,4nr | head -5

4. 动态监控命令执行情况

$ watch -n 1 -d "#监控的命令"

5.查询当前占用设备的进程信息

$ fuser

6.查找7天前的文件进行批量删除

$ find . -type f -mtime +7 | xargs rm -f

7.按进程名kill进程

ps aux | grep ${PNAME} | grep -v grep | cut -c 9-15 | xargs kill -9

8.打印GC信息

$JAVA_HOME/bin/jstat -gcutil  PID  1000 100

9.查看堆内存的状况信息和导出内存快照

$ $JAVA_HOME/bin/jmap -heap ${PID}

$ $JAVA_HOME/bin/jmap -dump:format=b,file=edwfms-8084_108.bin  $PID

10. find使用

$ find . -size -200k -type f | xargs -I {}  cp -rp {}  /tmp/history_file/

说明: -I 将xargs的每项参数,一般是一行一行赋值给 {},可以用 {} 代替 -size -200k  文件小于200K

11.查看本机公网IP

```bash

$ curl ifconfig.me

##### 12.删除空目录

```bash

$ find . -empty -type d | xargs rmdir

13.JAVA_OPTS配置

JAVA_OPTS="-Xms1024m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=256m"

14.网络连接数查看

```bash

netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

网络连接状态统计: netstat

分析解决网络连接问题和检查接口/端口统计数据、路由表、协议状态等等的

**语法:**

netstat -l 显示所有处于监听状态的端口列表

netstat -a 显示所有端口;如果去指定仅显示 TCP 端口,使用 -at(指定信显示 UDP 端口,使用 -au)

netstat -r 显示路由表

netstat -s 显示每个协议的状态总结

netstat -i 显示每个接口传输/接收(TX/RX)包的统计数据

centos7 默认不带该命令,需要手动 安装

```bash

$ yum install net-tools

查看系统连接数

$ netstat -n | awk '/^tcp/ {n=split($(NF-1),array,":");if(n<=2)++S[array[(1)]];else++S[array[(4)]];++s[$NF];++N} \

END {for(a in S){printf("%-20s %s\n", a, S[a]);++I}printf("%-20s %s\n","TOTAL_IP",I);for(a in s) printf("%-20s %s\n",a, s[a]);printf("%-20s %s\n","TOTAL_LINK",N);}'

--系统参数TCP标识

CLOSED:无连接是活动的或正在进行中的

LISTEN:服务器在等待进入呼叫

SYN_RECV:一个连接请求已经到达,等待确认

SYN_SENT:应用已经开始,打开一个连接

ESTABLISHED:正常数据传输状态

FIN_WAIT1:应用说它已经完成

FIN_WAIT2:另一边已同意释放

CLOSING:两边同时尝试关闭

TIME_WAIT:另一边已初始化一个释放。(数据连接已经连上的)

LAST_ACK:等待所有分组死掉 查看Apache的并发请求数及其TCP连接状态

15.监控中断状态

```bash

$ watch -d  cat /proc/softirqs

##### 16.强制卸载NFS设备

```bash

$ mount -l /nfs挂载目录

17. 文件占用情况统计

1) 从根目录开始分析,用以下命令找到占比最大的二级目录

$ cd /

#第一种命令

$ find / -maxdepth 1 | grep -vE 'proc|lost|upload|cgroup' | sed 's#/##g' | awk '{print $0}' | xargs du -a --max-depth=0 | sort -nr | awk '{print $2}' | xargs du -sh

#第二种方法

$ find / -maxdepth 1 ! -path / | grep -vE 'proc|lost|upload|cgroup' | awk '{print $0}' | xargs du -a --max-depth=0 | sort -nr | awk '{print $2}' | xargs du -sh

18. 将相同文件类型的图片文件移动到image_dir目录

$ ls | grep -E 'jpg|png' | xargs -I {} mv {} image_dir/

19. 统计物理CPU个数

$ cat /proc/cpuinfo | grep "core id" | awk -F ':' '{print $2}' | sort -rn | uniq | wc -l

20.命令行查看北京时间

$ curl http://quan.suning.com/getSysTime.do

21.sed替换行

#整行处理模式

$ sed -i 's/要被取代的字串/新的字串/g' 文件名

#参数 -i 表示替换,如果不加 -i 则表示只预览替换是否正确,不实际修改文件

22. 统计文件数量

$ find . -type f | wc -l

23. Ubuntu查看发行版本

$ lsb_release -a

24.移除用户所属组

$ sudo gpasswd -d root ubuntu

Removing user root from group ubuntu

25. fuser

#查询当前占用设备的进程信息&剔除进程

$ fuser -m -v /media/USB/

$ fuser -m -v -i -k /media/USB/

26. kill

#手动过滤出进程号再Kill掉

ps aux | grep send_jvm.sh | grep -v grep | cut -c 9-15 | xargs kill -9

9-15 是进程ID所在的列位置xargs 将结果解析成参数

#过滤出进程号再

kill pgrep httpd | xargs kill -9

27.nc

#!/bin/bash

ip=$1 #服务器IP

port=$2 #服务器端口

while :

do

echo -e "$(date +%H:%M:%S)--$(nc -v -w 5 -z $1 $2)"

sleep 1

done #-w 5 表示超时时间

29.ps

#显示消耗内存/CPU最多的10个进程

$ ps aux | sort -nk +4 | tail -10 ps aux | sort -nk +3 | tail -10

#使用ps 查看进程使用的环境变量信息

$ ps -eo pid,cmd e | tail -n 1

30.taskset

taskset用来查看和设定“CPU亲和力”,说白了就是查看或者配置进程和cpu的绑定关系,让某进程在指定的CPU核上运行,即是“绑核”

0) 适用场景

redis进程运行绑定

1) 显示进程运行的CPU

taskset -p pid

注意,此命令返回的是十六进制的,转换成二进制后,每一位对应一个逻辑CPU,低位是0号CPU,依次类推。如果每个位置上是1,表示该进程绑定了该CPU。例如,0101就表示进程绑定在了0号和3号逻辑CPU上了

2) 绑核设定

taskset -pc 3 pid 表示将进程pid绑定到第3个核上(注:不用将3弄成二进制的)taskset -c 3 command 表示执行command命令,并将command启动的进程绑定到第3个核上。

31.ulimit

背景

使用物业OA grguser用户登录其生产OA应用服务器时,执行命令报错如下

-bash: fork: retry: Resource temporarily unavailable

排查

#提示符 root用户执行$提示符 grguser用户执行

1)查看当前用户运行的进程/线程数量

#lsof -u grguser | wc -l

1450

2)查看当前用户最大可以运行的进程、线程数量,如果该值在当前终端窗口小于运行的进程/线程数量,将会报资源无法分配的错误"-bash: fork: retry: Resource temporarily unavailable"

# cat /etc/security/limits.d/90-nproc.conf

* soft nproc 1024 #系统安装时默认是1024

root soft nproc unlimited

$ ulimit -a

max user processes (-u) 1024

解决

root用户下修改/etc/security/limits.d/90-nproc.conf文件,将nproc的值调大 ,调整为8192

$ulimit -a

max user processes (-u) 8192

如果没有发生改变,最好重启下服务器

注意,一般的搜索结果都是说要改/etc/security/limits.conf这个文件,实际上我修改了之后,发现还是没有生效,最终修改/etc/security/limits.d/90-nproc.conf文件后生效

32.vmstat

查看具体vmstat文档

33starce

跟踪程序打开的文件命令

$ strace -e open netstat #跟踪netstat命令打开的文件数

34. lsof

列出当前进程打开的文件

lsof abc.txt 显示开启文件abc.txt的进程

lsof -i :22 知道22端口现在运行什么程序

lsof -c abc 显示abc进程现在打开的文件

lsof -p 12 看进程号为12的进程打开了哪些文件

35.流量查看

nload

iftop

iptraf

nethogs #该工具可以看到进程的通信流量情况

bmon

slurm

tcptrack

vnstat

查看每个连接的实时流量情况的工具

$ pktstat -i eth3 -nt

36. rsync

查看具体rsync文档

37. grep

按文件内容搜索,xxx是文件内容, '.' 是搜索范围,在当前目录下

$ grep -rin xxx .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值