下面是我平时在使用是总结的几个比较有用的shell命令,总结如下
1.find命令
find命令比较强大,不仅可以快速定位到查找的文件,还可以对匹配的文件做处理,例如:
删除3天前的匹配文件:find ./ -name "pettern" -type f -mtime +3 -exec rm {} \;
找出文件行里包含某指定串:find ./ -name "*.py" -exec grep "mysql" {} \;
如果只想显示包含该匹配行的文件,在后面加上grep的选项-l,即
2.top是比较常用的一个命令,下面主要写一下查看指定进程的top情况
命令:top -p [pid] #pid是进程id
按shift + h会显示各个线程的top情况,这个在观察多线程运行情况非常有效
3.查看磁盘IO状态
命令:iostat -d -k 1 10
参数:-d表示磁盘,-k表示单位为KB,1表示1秒刷新周期,10表示共显示10次
tps表示每秒的传输次数,如加参数-x会显示更多包含cpu等状态的信息,iostat -x 2
4.free显示系统内存的使用情况
命令:free -m -t
-m是以MB为单位显示实际内存,交换区,共享,缓存等内存的情况
5.查看linux系统共享内存的配置
配置文件: /proc/sys/kernel/shmmax
可直接使用vim编辑器等修改里面的大小
6.查看linux系统支持的最大线程数
配置文件:/proc/sys/kernel/threads-max
方法同5
7.重启DNS服务(清缓存)
nohup rcnscd restart &
8.查看系统日志记录,如查看oom消息记录
文件:/var/log/messages
需要有root权限
还有一个命令dmesg,可以查看很多消息,我常用来看有没有segfault的记录
9.取任意天前的日期
比如1天前:date -d "1 days ago" +"%Y-%m-%d"
10.lsof查看文件或端口的使用情况
查看打开文件进程 lsof file
查看某端口使用情况 lsof -i:port
查看进程打开的文件 lsof -c process
查看使用了某fd的进程 lsof -d fd
也可用命令fuser -v -n tcp port
11.显示当前目录下所有目录的磁盘占用情况
命令:du ./ -h --max-depth=1
12.系统定时任务
crontab -l 显示当前定时任务
crontab -e 编辑定时任务,具体格式,可以man crontab
13.查看系统信息
uname -a
14.抓取网络数据包常用格式
sudo tcpdump dst 127.0.0.1 and port 10000 -i eth1
15.查看当前网络连接情况
netstat -anp
16.查看某进程的情况
ll /proc/{pid}
17.批量修改文件名后缀
命令:for file in $(find . -name "*.txt" -type f); do mv "$file" "${file%.*}.dat"; done
不是很全面,只是把比较有用,但不是很多TX都很熟悉的放上来了,欢迎补充!