工作中常用linux指令
一.基础操作
1.显示当前目录包含的文件 ls
ll
显示文件权限等信息ll -m
以M显示文件大小
2.移动、复制、删除、创建目录、赋权
-
移动/home/test.jar 到/app/test目录下
mv /home/test.jar /app/test
-
复制/home/test.jar 到/app/test目录下
cp /home/test.jar /app/test
-
复制/home/mysql/文件夹及其汇总文件 至/app/目录下
cp -r /home/mysql/ /app/
-
删除test.jar文件 rm test.jar
-
删除/app/test/目录中所有文件 rm -rf /app/test/
-
创建hello目录 mkdir hello
-
将hello目录以及目录下所有文件拥有者改为app chown -R hello/
-
修改test.jar权限
chmod 751 test.jar
给test.jar的属主分配读、写、执行(7)的权限,给file的所在组分配读、执行(5)的权限,给其他用户分配执行(1)的权限
二. 搜索日志
-
查看日志文件特定字符
grep status xxx.log
-
查找a.log中所有A字符,同时显示行数
cat -n a.log|grep "A”
-
展示特定行数周围日志,比如发现2中A在110行,那么可以使用如下指令展示前后10行记录
cat -n a.log | tail -n +100 | head -n 20
- tail -n +100 表示展示100行之后内容
- head -n 20 表示在前面的查询结果中再查找前20行记录
-
查找a.log中status关键字出现的次数
cat a.log | grep status |wc -l -
less命令搜索日志文件中订单:DC123487629记录
less a.log
- 使用/DC123487629 进行向下查找
- 使用n进行向下翻页 N向上翻页
- /G跳至文件末尾
- ?DC123487629 向上查找
三 .查看系统状态
-
查看cpu负载 :
top
-
查看内存:
free -m
- -m 以M为单位展示
- -h 系统以合适的单位展示
-
查看磁盘:
fdisk -l
-
查看进程及杀死进程
-
查看进程pid:
ps -ef | grep java
-
强制杀死进程
kill -9 pid
-
杀死进程
kill pid
-
查看指定进程下状态线程
top -H -p
-
查看指定的进程产生的线程数目
ps -mq PID
-
查看端口占用情况
-
显示 PID 和进程名称:
netstat -pt
-
列出所有端口:
netstat -ap
-
列出所有tcp端口:
netstat -atp
-
列出所有udp端口:
netstat -aup
四.其他常用
- find查找
-
1.精确查找文件
find ~ -name "test.jar"
-
2.模糊同时不区分大小写查找文件
find ~ -iname "test*"
-
3.查找指定文件总大小
find ./ -name "a.log*" | xargs du -cm | grep total | awk 'BEGIN{sum=0}{sum+=$1}END{print sum}'
-
4.查找指定目录大于500兆的文件并排序
find /app/ -type f -size +500M -print0 | xargs -0 ls -lh | sort -nr
-
5.查找指定文件并压缩
find ./ -name “payinfo*” -print | xargs tar -czvf payinfo.tar.g
- iptables转发配置
- 查找iptables:
iptables -t nat -L -n --line-numbers
- 配置iptables端口映射:
iptables -t nat -A PREROUTING -p tcp --dport 8001 -j REDIRECT --to-ports 22
-
查找大文件,并取出排名前5
du -hm / --max-depth=1 | sort -nr | head -5
-
批量替换
sed -i 's/^Str/String/' test.txt
其中^表示行首sed -i 's/\.&/\;/' test.txt
其中\为转义符号,$表示行尾sed -i 's/jack/john/g' test.txt
其中g表示对全文进行替换,若不加这代表对每行第一个匹配进行替换