Linux & Unix 命令行环境的一些 Tips
May 04, 2018
本文大部分命令在 macOS 上同样适用,部分包可能需要你先用 brew 安装一下
扫描指定服务器的端口是否启用(支持任意协议)
nmap -p 80 qq.com
将 stdout 和 stderr 输出到同一个文件
file.sh >> file.log 2>&1
批量重命名
# 将当前目录下所有 .js 文件重命名为 .ts ( 包括子孙目录 )
find . -depth -name "*.js" -exec sh -c 'mv "$1" "${1%.js}.ts"' _ {} \;
批量删除文件
Use find:
find . -name "*.bak" -type f -delete
But use it with precaution. Run first:
find . -name "*.bak" -type f
to see exactly which files you will remove.
Also, make sure that -delete is the last argument in your command. If you put it before the -name *.bak argument, it will delete everything.
批量删除目录
# 删除 dist 目录下包含的所有 __tests__ 目录
find dist -name "__tests__" -type d -exec rm -rf {} +
查看进程信息
# 显示用户自己的进程树
ps -auf
# 显示所有进程
ps -ef
环境变量
在脚本开头设置 PATH
变量可以决定后面的命令和子 shell 中的命令去哪里查找可执行程序
使用 export
命令导出环境变量可以确保后面执行的程序和子 shell 中可以读取到这个环境变量,在 shell 脚本中使用 export
命令导出的环境变量仅在这个脚本的执行过程中有效,并不会影响到外部环境
最好在脚本开头加上一行 set -eux
,可以打印出执行步骤,出错后会立即退出
何时应该使用 export
当后面执行的程序需要读取这个变量,或者子 shell 中需要使用这个变量
本文原载于:baiyun.me