看网上都有很多文章都写了常用命令,作为一个新手,可能用到的命令不多,那么这边就分两个部分总结,第一部分为自己平时常用的基本命令,第二部分为网上摘录的,觉得比较好的,可以作为自己扩展的一部分。
第一部分:自身平时用的比较多的命令:
(1) netstat
主要用途:查看相关端口是否启用以及进程号
例:netstat -tnlp|grep 8080
在此命令中就是查看Tomcat的端口是否启用
(2)ps
主要用途:查看相关进程以及端口号
例:ps aux|grep tomcat
在此例中能看到tomcat相关的文件目录有/opt/tomcat-app和/opt/tomcat-web 这样就可以定位服务所在目录了
(3)find
主要用途:查找相关文件
例:find / -name nginx.conf
这个例子中是在不知道nginx配置文件,且没有启动Nginx服务的时候,可以快速找到相关配置文件,find命令有很多用法,还可以根据时间和文件大小去查找相关文件,并且后面可以跟上管道符进行进一步的操作,有兴趣的可以继续找寻相关知识。
第二部分:网上其他人推荐的,我觉得不错的操作,以后估计用的到
1、查找当前目录下所有以.tar结尾的文件然后移动到指定目录:
find . -name “*.tar” -exec mv {} ./backup/;
注解:find –name 主要用于查找某个文件名字,-exec 、xargs可以用来承接前面的结果,然后将要执行的动作,一般跟find在一起用的很多,find使用我们可以延伸-mtime查找修改时间、-type是指定对象类型(常见包括f代表文件、d代表目录),-size 指定大小,例如经常用到的:查找当前目录30天以前大于100M的LOG文件并删除。
find . -name "*.log" –mtime +30 –type f –size +100M |xargs rm –rf {} ;
2、sed常用命收集:test.txt做测试
如何去掉行首的.字符: sed -i 's/^.//g' test.txt
在行首添加一个a字符: sed 's/^/a/g' test.txt
在行尾添加一个a字符: sed 's/$/a/' tets.txt
在特定行后添加一个c字符: sed '/wuguangke/ac' test.txt
在行前加入一个c字符: sed '/wuguangke/ic' test.txt
3、如何判断某个目录是否存在,不存在则新建,存在则打印信息。
if
[ ! –d /data/backup/ ];then
Mkdir –p /data/backup/
else
echo "The Directory already exists,please exit"
fi
注解:if …;then …else ..fi:为if条件语句,!叹号表示反义“不存在“,-d代表目录。
4、统计Nginx访问日志,访问量排在前20 的 ip地址:
cat access.log |awk '{print $1}'|sort|uniq -c |sort -nr |head -20
注解:sort排序、uniq( 检查及删除文本文件中重复出现的行列 )
5、sed另外一个用法找到当前行,然后在修改该行后面的参数:
sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config
sed冒号方式 sed -i ‘s:/tmp:/tmp/abc/:g’test.txt意思是将/tmp改成/tmp/abc/
6、写一个防火墙配置脚本,只允许远程主机访问本机的80端口。
iptables -F
iptables -X
iptables -A INPUT -p tcp --dport 80 -j accept
iptables -A INPUT -p tcp -j REJECT
或者
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
7、删除所有空目录
find /data -type d -empty -exec rm -rf {} ;
8、修复文件系统
fsck –yt ext3 /
-t 指定文件系统
-y 对发现的问题自动回答yes
9、查看目标主机192.168.0.1开放那些端口
nmap -ps 192.168.0.1
10、查看进程-按内存从大到小排列
ps -e -o "%C : %p : %z : %a"|sort -k5 -nr
11、查看进程-按cpu利用率从大到小排列
ps -e -o "%C : %p : %z : %a"|sort -nr
12、查看http的并发请求数及其TCP连接状态:
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'