linux常用指令

查询出系统中的所有服务列表及状态
systemctl list-unit-files --type=service
定位内存占用高的进程
top
shift+m键,内存按照使用量进行排序
ps -ef|grep pid进程号
lsof
-p <pid> | grep run.py #查看脚本所在路径
 find
复制代码
# 在当前目录及其子目录中查找所有扩展名为.txt的文件
find . -name '*.txt'
# 在根目录中查找所有类型为目录的文件
find / -type d
# 在当前目录中查找所有大小为0的文件
find . -size 0
# 在当前目录中查找所有拥有者为root的文件
find . -user root
# 在当前目录中查找所有修改时间在7天以内的文件
find . -mtime -7
#查找当前目录下所有以.tar结尾的文件然后移动到指定目录
find . -name "*.tar" -exec mv {} ./backup/ \;
#查找当前目录30天以前大于100M的LOG文件并删除
find  . -name "*.log" –mtime +30 –typef –size +100M |xargs rm –rf {} \;
复制代码
grep
复制代码
# 在文件中查找"hello"关键词
grep 'hello' file.txt
# 在文件中查找"hello"关键词,并忽略大小写
grep -i 'hello' file.txt
# 在文件中查找"hello"关键词,并显示匹配行的行号
grep -n 'hello' file.txt
# 递归搜索子目录,查找所有扩展名为.c的文件,并在其中查找"main"关键词
grep -r 'main' --include='*.c' .
# 使用正则表达式进行匹配,查找所有以数字开头的行
grep -e '^[0-9]' file.txt
# 反向查找,输出未匹配的行
grep -v 'hello' file.txt
#输出文件中所有未被注释掉的有效配置行
grep '^[^#|;]' /etc/openvpn/server.conf #"[^#|;]" 表示匹配不以 "#" 或 ";" 开头的字符
复制代码
lsof
复制代码
# 查找进程号为12345的打开文件
lsof -p 12345
# 查找进程名为nginx的打开文件
lsof -c nginx
# 查找所有文件描述符为3的打开文件
lsof -d 3
# 查找所有属于用户root的打开文件
lsof -u root
# 查找所有TCP连接的打开文件
lsof -i TCP
# 查找所有进程号为12345且文件描述符为3的打开文件
lsof -p 12345 -d 3
# 查找所有进程名为nginx且文件类型为IPv4的打开文件
lsof -c nginx -t IPv4
复制代码
sort 文件排序
sort file.txt           #升序排序
sort -r file.txt        #降序排序
sort -f file.txt         #忽略大小写排序
sort -n file.txt        #按照数值大小排序
sort file.txt -o sorted.txt      #将排序结果写入新文件

   
diff  对比文件差异
diff [选项] 文件名1 文件名2
diff [选项] 目录1 目录2
详细链接https://blog.csdn.net/daocaokafei/article/details/115188506?ops_request_misc=&request_id=&biz_id=102&utm_term=diff%E5%91%BD%E4%BB%A4&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-115188506.142^v88^control_2,239^v2^insert_chatgpt&spm=1018.2226.3001.4187
last  查看系统活动
last   #查看所有
详细链接https://blog.csdn.net/qq_33801641/article/details/117683355?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168836908616800182734177%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=168836908616800182734177&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-117683355-null-null.142^v88^control_2,239^v2^insert_chatgpt&utm_term=last&spm=1018.2226.3001.4187
sed

注意:-i:直接修改文件,若没有此参数则只是修改副本用于展示

增加文件内容:i地址定位的上面插入,a下面插入
sed -i '$a99999' a.txt              文件最后一行下面增加内容
sed 'a99999' a.txt                文件每行下面增加内容
sed '5a99999' a.txt               文件第5行下面增加内容
sed '$i99999' a.txt               文件最后一行上一行增加内容
sed 'i99999' a.txt                文件每行上一行增加内容
sed '6i99999' a.txt               文件第6行上一行增加内容
sed '/^adm/ihello' a.txt          以adm开头行的上一行插入内容

替换指定的整行内容

sed '5chello world' a.txt       替换文件第5行内容
sed 'chello world' a.txt        替换文件所有内容
sed '1,5chello world' a.txt     替换文件1到5号内容为hello world
sed '/^daemon/c888888' a.txt    替换daemon开头的行内容为888888

删除文件内容

sed '1d' a.txt                   删除文件第1行
sed '1,5d' a.txt                 删除文件1到5行
sed '$d' a.txt                   删除文件最后一行

搜索替换

语法:sed 选项 ‘s/搜索的内容/替换的内容/动作’ 需要处理的文件
其中,s表示search搜索;斜杠==/表示分隔符,可以自己定义;动作一般是打印p和全局替换g==(默认只替换每行第一个匹配到的内容)

sed -n 's/^#//gp' 1.txt    #删除#开头的行,   -n打印经过处理的行
sed -n 's@/sbin/nologin@itcast@gp' a.txt  #将每行中的"/sbin/nologin"替换为"itcast",@替换/分隔符,避免和替换内容中的'/'冲突
sed -n 's/\/sbin\/nologin/itcast/gp' a.txt  #与上同样效果,使用\符号转义
sed -n '10s#/sbin/nologin#itcast#p' a.txt   #第10行的"/sbin/nologin"替换为"itcast"。#与上面@一样效果,可自己指定sed -n '1,5s/^/#/p' a.txt         注释掉文件的1-5行内容
sed -i '1s/^/#/' -e '5s/^/#/' a.txt     # -e:指定后续命令是一个新的sed命令。只注释第1行和第5行

删除#号及其后面的内容 

sed -i 's/#.*//' 文件名    #查找每一行中的#号,并删除该字符及其后面的所有内容
ps
#内存消耗的进程排序
ps -aux | sort -rnk 4 | head -20   #第4列内存
#CPU消耗的进程排序
ps -aux | sort -rnk 3 | head -20
#当前系统中处于僵尸状态的进程
ps -al | gawk '{print $2,$4}' | grep Z
 sz和rz
复制代码
yum install lrzsz -y      #安装
rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传到Linux服务器。
    -b:以二进制方式,默认为文本方式。
    -e:对所有控制字符转义。
rz -be
sz命令是利用ZModem协议来从Linux服务器传送文件到本地,一次可以传送一个或多个文件。
    -a:以文本方式传输(ascii)。
    -b:以二进制方式传输(binary)。
    -e:对控制字符转义(escape),这可以保证文件传输正确。
sz -be filename
复制代码

 

posted @   阿锋888  阅读(7)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示