Linux 常用命令

详细可参考 Linux命令大全

查看所有的服务项目

# systemctl list-unit-files
  • 将结果写入文件,以方便查看
# systemctl list-unit-files >list.txt

查看所有的开机自启动

# systemctl list-unit-files |grep enabled
  • 将结果写入文件,以方便查看
# systemctl list-unit-files |grep enabled >list.txt

scp 命令

# scp -r Foldername/Filename user@IP:Path
  • 例子,将本机的 test.txt 复制到 192.168.10.15 机子的 /usr/local目录下
# scp -r test.txt root@192.168.10.15:/usr/local
  • 例子,将本机的 test 文件夹 复制到 192.168.10.15 机子的 /usr/local目录下
# scp -r test root@192.168.10.15:/usr/local
  • 注机子之间要能相互 Ping 通,命令才有效

grep 命令

# grep -r '要查找的文件的内容' 路径
# 例:
# grep -r '2020-08-20' /usr/local/tomcat/logs/catalina.out  # 查 catalina.out 文件包含 2020-08-20 的行,并显示
# grep -r '2020-08-20' /usr/local/tomcat/logs/*  # 查该目录下所有文件包含 2020-08-20 的行,并显示

find 命令

# find / -name filename
# 例:
# find / -name test.txt  # 根目录查 test.txt 文件所在的具体路径
# find /usr/local -name test.txt  # /usr/local 目录下查 test.txt 文件所在的具体路径

解压/压缩

# 对于 zip 文件
# unzip test.zip   # 解压 test.zip 到当前目录下
# unzip test.zip -d /usr/local  # 解压 test.zip 到 /usr/local 目录下
# tar -zxvf test.tar.gz  # 解压 test.tar.gz 到当前目录下
# tar -zxvf test.tar.gz -C /ust/local  # 解压 test.tar.gz 到 /usr/local 目录下
# tar -zcvf test.tar.gz test/  # 将 test 压缩至 test.tar.gz
# tar -zcvf test.tar.gz test1/ test1/ test3/ test.txt  # 将多个目录及文件压缩至 test.tar.gz

防火墙启动后,开放端口

  • 例:
# 开机启动防火墙
# systemctl enable firewalld
# 开启防火墙
# systemctl start firewalld
# 禁止防火墙开机启动
# systemctl disable firewalld
# 停止防火墙
# systemctl stop firewalld
# 开放http端口
# firewall-cmd --zone=public --add-port=80/tcp --permanent
# 开放https端口
# firewall-cmd --zone=public --add-port=443/tcp --permanent
# 开放MySQL端口
# firewall-cmd --zone=public --add-port=3306/tcp --permanent
# 立即生效
# firewall-cmd --reload
# 查看已开放的端口号
# firewall-cmd --list-ports
# 关闭端口号,关闭端口号需要重启防火墙
# firewall-cmd --zone=public --remove-port=8888/tcp --permanent

查询当前目录内超过200M大小的文件

# cd /
# find . -type f -size +200M  -print0 | xargs -0 du -sh

image.png

计算 md5 值

# md5sum filename

image.png

查询端口占用情况

方式一:lsof

lsof(list open files)是一个列出当前系统打开文件的工具。

  • 安装 lsof
# yum install -y lsof

lsof 查看端口占用语法格式:

lsof -i:端口号
  • 实例

查看服务器 80 端口的占用情况:

# lsof -i :80
COMMAND   PID  USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
nginx   30596  root    6u  IPv4 56534525      0t0  TCP *:http (LISTEN)
nginx   30596  root    7u  IPv6 56534526      0t0  TCP *:http (LISTEN)
nginx   30597 nginx    6u  IPv4 56534525      0t0  TCP *:http (LISTEN)
nginx   30597 nginx    7u  IPv6 56534526      0t0  TCP *:http (LISTEN)
nginx   30598 nginx    6u  IPv4 56534525      0t0  TCP *:http (LISTEN)
nginx   30598 nginx    7u  IPv6 56534526      0t0  TCP *:http (LISTEN)

image.png

  • lsof 输出各列信息的意义如下:
COMMAND: 进程的名称
PID: 进程标识符
USER: 进程所有者
FPD: 文件描述符,应用程序通过文件描述符识别该文件。如cwd、txt等
TYPE: 文件类型,如DIR、REG等
DEVICE: 指定磁盘的名称
SIZE: 文件的大小
NODE: 索引节点(文件在磁盘上的标识)
NAME: 打开文件的确切名称
  • 更多 lsof 的命令如下:
lsof -i:8080:查看8080端口占用
lsof abc.txt:显示开启文件abc.txt的进程
lsof -c abc:显示abc进程现在打开的文件
lsof -c -p 1234:列出进程号为1234的进程所打开的文件
lsof -g gid:显示归属gid的进程情况
lsof +d /usr/local/:显示目录下被进程开启的文件
lsof +D /usr/local/:同上,但是会搜索目录下的目录,时间较长
lsof -d 4:显示使用fd为4的进程
lsof -i -U:显示所有打开的端口和UNIX domain文件

方式二:netstat
netstat -tunlp 用于显示 tcp,udp 的端口和进程等相关情况。

netstat 查看端口占用语法格式:

netstat -tunlp | grep 端口号
  • -t (tcp) 仅显示tcp相关选项
  • -u (udp)仅显示udp相关选项
  • -n 拒绝显示别名,能显示数字的全部转化为数字
  • -l 仅列出在Listen(监听)的服务状态
  • -p 显示建立相关链接的程序名

例如查看 80 端口的情况,使用以下命令:

# netstat -tunlp | grep 80
tcp        0      0 0.0.0.0:2080            0.0.0.0:*               LISTEN      21760/docker-proxy  
tcp        0      0 0.0.0.0:50022           0.0.0.0:*               LISTEN      28046/sshd          
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      30596/nginx: master 
tcp6       0      0 :::8000                 :::*                    LISTEN      31842/java          
tcp6       0      0 :::2080                 :::*                    LISTEN      21765/docker-proxy  
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      20788/java          
tcp6       0      0 127.0.0.1:8006          :::*                    LISTEN      31842/java          
tcp6       0      0 :::50022                :::*                    LISTEN      28046/sshd          
tcp6       0      0 :::80                   :::*                    LISTEN      30596/nginx: master

image.png

  • netstat 更多命令:
netstat -ntlp   //查看当前所有tcp端口
netstat -ntulp | grep 80   //查看所有80端口使用情况
netstat -ntulp | grep 3306   //查看所有3306端口使用情况

kill

在查到端口占用的进程后,如果你要杀掉对应的进程可以使用 kill 命令:

kill -9 PID

如上实例,我们看到 80 端口对应的 PID 为 28046,使用以下命令杀死进程:

kill -9 28046

文件比较同步 - 增量更新

  • rsync 是一个常用的 Linux 应用程序,用于文件同步。
  • 第一次全量复制,之后则增量更新,只同步有修改的
  • 安装 rsync
# yum install -y rsync

用法:

# rsync -avz --progress /home/dir/ root@192.168.10.15:/home/dir/

统计文件个数

  • 统计某路径下文件的个数
# ls -l |grep "^-"|wc -l
  • 统计某路径下文件夹的个数
# ls -l |grep "^d"|wc -l
  • 统计文件夹下文件的个数,包括子文件夹里的
# ls -lR | grep "^-"|wc -l

image.png


标题:Linux 常用命令
作者:Mune
地址:https://cnxiaobai.com/articles/2021/07/03/1625299642937.html

    评论
    0 评论
avatar

取消