1. sudo !!
以 root 的身份执行上一条命令 。
场景举例:比如 Ubuntu 里用 apt-get 安装软件包的时候是需要 root 身份的,
我们经常会忘记在 apt-get 前加 sudo。每次不得不加上 sudo 再重新键入这
行命令,这时可以很方便的用 sudo !! 完事。
2. cd –
回到上一次的目录 。
场景举例:当前目录为 /home/a,用 cd ../b 切换到 /home/b。这时可以通
过反复执行 cd – 命令在 /home/a 和 /home/b 之间来回方便的切换。
码农 115
3. ^old^new
替换前一条命令里的部分字符串。
场 景 :echo "wanderful",其 实 是 想 输 出 echo "wonderful"。只需要
^a^o 就行了 ,对很长的命令的错误拼写有很大的帮助。
4. man ascii
显示 ascii 码表 。
场 景:忘记 ascii 码表的时候还需要 google 么 ? 尤其在天朝网络如此“顺畅”
的情况下,就更麻烦在 GWF 多应用一次规则了,直接用本地的 man ascii 吧。
5. ctrl-x e
快速启动你的默认编辑器(由变量 $EDITOR 设置)。
6. netstat –tlnp
列出本机进程监听的端口号。
7. tail -f /path/to/file.log | sed '/^Finished: SUCCESS$/ q'
当 file.log 里出现 Finished: SUCCESS 时候就退出 tail ,这个命令用于实时
监控并过滤 log 是否出现了某条记录。
8. ssh user@server bash < /path/to/local/script.sh
在远程机器上运行一段脚本 。这条命令最大的好处就是不用把脚本拷到远
程机器上。
9. screen -d -m -S some_name ping my_router
后台运行一段不终止的程序,并可以随时查看它的状态。-d -m 参数启动“分
离”模式,-S 指定了一个 session 的标识 。可以通过 -R 命令来重新“挂载”
一个标识的 session。更多细节请参考 screen 用法 man screen。
10. wget --random-wait -r -p -e robots=off -U mozilla http://www.
example.com
下载整个 www.example.com 网站 。
码农 116
11. curl ifconfig.me
当你的机器在内网的时候 ,可以通过这个命令查看外网的 IP。
12. lsof –i
实时查看本机网络服务的活动状态 。
13. python -m SimpleHTTPServer
一句话实现一个 HTTP server ,把当前目录设为 HTTP 服务目录,可以通
过 http://localhost:8000 访问 这也许是这个星球上最简单的 HTTP 服务器
的实现了。
最后来个复杂的——
14. history | awk '{CMD[$2]++;count++;} END { for (a in CMD )print
CMD[a] " " CMD[a]/count*100 "% " a }' | grep -v "./" | column -c3 -s
" " -t | sort -nr | nl | head -n10
这行脚本能输出你最常用的十条命令 ,由此甚至可以洞察你是一个什么
类型的程序员。看不懂行代码?没关系,系统的学习一下 *nix shell 脚
以 root 的身份执行上一条命令 。
场景举例:比如 Ubuntu 里用 apt-get 安装软件包的时候是需要 root 身份的,
我们经常会忘记在 apt-get 前加 sudo。每次不得不加上 sudo 再重新键入这
行命令,这时可以很方便的用 sudo !! 完事。
2. cd –
回到上一次的目录 。
场景举例:当前目录为 /home/a,用 cd ../b 切换到 /home/b。这时可以通
过反复执行 cd – 命令在 /home/a 和 /home/b 之间来回方便的切换。
码农 115
3. ^old^new
替换前一条命令里的部分字符串。
场 景 :echo "wanderful",其 实 是 想 输 出 echo "wonderful"。只需要
^a^o 就行了 ,对很长的命令的错误拼写有很大的帮助。
4. man ascii
显示 ascii 码表 。
场 景:忘记 ascii 码表的时候还需要 google 么 ? 尤其在天朝网络如此“顺畅”
的情况下,就更麻烦在 GWF 多应用一次规则了,直接用本地的 man ascii 吧。
5. ctrl-x e
快速启动你的默认编辑器(由变量 $EDITOR 设置)。
6. netstat –tlnp
列出本机进程监听的端口号。
7. tail -f /path/to/file.log | sed '/^Finished: SUCCESS$/ q'
当 file.log 里出现 Finished: SUCCESS 时候就退出 tail ,这个命令用于实时
监控并过滤 log 是否出现了某条记录。
8. ssh user@server bash < /path/to/local/script.sh
在远程机器上运行一段脚本 。这条命令最大的好处就是不用把脚本拷到远
程机器上。
9. screen -d -m -S some_name ping my_router
后台运行一段不终止的程序,并可以随时查看它的状态。-d -m 参数启动“分
离”模式,-S 指定了一个 session 的标识 。可以通过 -R 命令来重新“挂载”
一个标识的 session。更多细节请参考 screen 用法 man screen。
10. wget --random-wait -r -p -e robots=off -U mozilla http://www.
example.com
下载整个 www.example.com 网站 。
码农 116
11. curl ifconfig.me
当你的机器在内网的时候 ,可以通过这个命令查看外网的 IP。
12. lsof –i
实时查看本机网络服务的活动状态 。
13. python -m SimpleHTTPServer
一句话实现一个 HTTP server ,把当前目录设为 HTTP 服务目录,可以通
过 http://localhost:8000 访问 这也许是这个星球上最简单的 HTTP 服务器
的实现了。
最后来个复杂的——
14. history | awk '{CMD[$2]++;count++;} END { for (a in CMD )print
CMD[a] " " CMD[a]/count*100 "% " a }' | grep -v "./" | column -c3 -s
" " -t | sort -nr | nl | head -n10
这行脚本能输出你最常用的十条命令 ,由此甚至可以洞察你是一个什么
类型的程序员。看不懂行代码?没关系,系统的学习一下 *nix shell 脚
本吧,力荐《Linux命令行与Shell脚本编程大全》。
转自码农电子杂志