Skip to content

其他 Linux 系统管理工具

此页包含不在 util-linux 和 coreutils 软件包里的常见 Linux 系统管理工具使用说明。

tar

解压压缩包

sh
tar -xvJf foo.tar.xz
tar -xzf foo.tar.gz

创建压缩包

sh
tar cvzf /path/to/dst.tar.gz /path/to/src
tar cvjf /path/to/dst.tar.bz2 /path/to/src

# 排除指定目录
# 注 static/node_modules 不能写成 slash 结尾 static/node_modules/ ,否则不生效
tar czvf dst.tar.gz --exclude=static/node_modules --exclude=static/src main.bin cfg.json static

列出压缩包里的文件

sh
tar -tf foo.tar.xz

unzip

安装软件 sudo apt install unzip -y

解压 Windows 上生成压缩包乱码,需要指定文本编码再解压 UNZIP="-O GBK" ZIPINFO="-O GBK" unzip chinese.zip

lsof

lsof 可列出所有属于活跃进程(active process)打开的文件,Linux 继承 Unix 和 Plan 9 设计理念,几乎所有对象都抽象为文件(file)。

统计已打开文件总数 lsof | wc -l

整个系统可打开的文件总数 cat /proc/sys/fs/file-max

另见

find process by listen port on macOS lsof -nP -iTCP -sTCP:LISTEN | grep 999[0-9]

findutils - find

安装软件 sudo apt install findutils -y

列出当前目录下大于 50k (50 * 1024 bytes) 文件 find . -type f -size +50k -exec echo {} \;

列出当前目录下大于 50k 的文件并计算实际大小 find . -type f -size +50k -exec du -sh {} \;

列出空目录 find . -type d -empty

删除当前目录下大于 50k 的文件 find . -type f -size +50k -exec rm -- {} \;

参数说明

  • type 指定文件类型,d=>directory, f=>regular file, l=>symbolic link, s=>socket ;
  • size 指定大小,+50k 表示大于 50k ;
  • exec 指定 shell 指令
  • -- 表示命令选项结束
  • \; 表示 shell 指令结束

nc/netcat

测试两台主机 TCP 网络互通性

  • 在主机一上 nc -l 1234
  • 在主机二上 nc -z -v -w 2 主机一的IP 1234

Released under the CC-BY-NC-4.0