Wednesday, 14 September 2016

高效实用日常Linux/Unix 命令

Ctrl-R
在bash中, Ctrl-R用于在历史命令中搜索
Ctrl-W, Ctrl-U, Alt-BackSpace
bash中,Ctrl-W删除最后一个词,Ctrl-U删除最后一行, Alt-BackSpace 删除光标前的一个词 man readline 中包含了大量bash中的默认热键绑定.
cd -
返回前一个工作路径
xargs
非常强大的命令。如果你还不确定是否能正确的执行任务,可以先用xargs echo查看。下面是一个用该功能的例子:


parallel 一个更加强大的命令. 可以实现并行执行任务,并可以分割输入文件, 指定多个节点同时运行命令等功能.详细的功能可以参考这个链接.pstree -p打用进程树的得力工具pgrep,pkill使用名字查找进程,或者直接向指定名字的进程发送信号。
  • 了解用户能发送给进程的一些信号。比如 kill -STOP [pid] ,让pid进程挂起。
nohup,disown,screen, tmux当你需要将进程永远处在后台运行是,这两个命令很有用。lsof, netstat -lntp查询当前什么进程在监听什么端口。set在bash脚本中, 使用 set -x 获得debug输出,使用 set -e 获得错误输出。;分号用于开启一个子shell并运行至结束后关闭。 例如:


了解shell中的多种参数表达式
${name:?error message}
检查某个变量是否存在,若不存在输出 error message。
${var%suffix}, ${var#prefix}
输出var变量除前缀或者后缀外的部分。如下面的代码输出为foo.txt.


<,>输入输出重定向操作。
some_command > logfile 2>&1将 some_command 运行过程中的标准输出和标准错误输出都输出到文件logfile中。
man ascii获得一个好用的ASCII表格,包含10进制和16进制的值。 
screen,dtach在远程ssh绘画中,使用这两个命令可以保存你的会话,避免因为网络问题导致中断。
curl, curl -l, wget在web页面调试中,这几个命令能帮你下载网页代码,很有用。
lynx -dump -stdin将HTML转换为文本xmlstarlet需要处理XML时,这个命令很有用。
ssh -L, ssh -D需要利用远程服务器访问网页时,这命令可以帮助你在远程服务器和你的机器之间建立ssh 隧道。ssh连接优化如下配置能帮你避免链接丢失,不需要每次都输入yes确认和远程服务器的链接,以及在链接中启用压缩。建议将它放到.ssh/config中。

 
在正输入的命令前加#
命令已经输入一半,忽然间改主意想少收运行时,
可以使用 Alt-# 在命令前加‘#’,将整个命令变成注释。这样你稍后就能在命令历史中找到该命令了。
cron
可以帮助你制定一些定时执行的计划任务。
Ctrl-S Ctrl-C
将一不小心需要大量输出文本时,依次输入这两个操作,
比单纯的频繁按Ctrl-C能更快让程序终止。

No comments:

Post a Comment