其他 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.xzunzip
安装软件 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
另见
- https://unix.stackexchange.com/questions/476351/difference-between-ulimit-lsof-cat-proc-sys-fs-file-max
- https://unix.stackexchange.com/questions/36841/why-is-number-of-open-files-limited-in-linux
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
