博航社区

 找回密码
 立即注册博航社区

用新浪微博连接

一步搞定

QQ登录

只需一步,快速开始

查看: 8895|回复: 0
打印 上一主题 下一主题

这些Linux技巧,你知道多少? [复制链接]

Rank: 2

跳转到指定楼层
楼主
发表于 2013-3-20 17:47:01 |只看该作者 |倒序浏览
分享到:


  • 在 bash 里,使用 Ctrl-R 而不是上下光标键来查找历史命令。
  • 在 bash里,使用 Ctrl-W 来删除最后一个单词,使用 Ctrl-U 来删除一行。请man bash后查找Readline Key Bindings一节来看看bash的默认热键,比如:Alt-. 把上一次命令的最后一个参数打出来,而Alt-* 则列出你可以输入的命令。
  • 回到上一次的工作目录: cd –  (回到home是 cd ~)
  • 使用 xargs。这是一个很强大的命令。你可以使用-L来限定有多少个命令,也可以用-P来指定并行的进程数。如果你不知道你的命令会变成什么样,你可以使用xargs echo来看看会是什么样。当然, -I{} 也很好用。示例:

1.            find . -name \*.py | xargs grep some_function

2.            cat hosts | xargs -I{} ssh root@{} hostname


  • pstree -p 可以帮你显示进程树。(读过我的那篇《一个fork的面试题》的人应该都不陌生)
  • 使用 pgrep     和 pkill 来找到或是kill 某个名字的进程。 (-f 选项很有用).
  • 了解可以发给进程的信号。例如:要挂起一个进程,使用 kill -STOP [pid]. 使用 man 7 signal 来查看各种信号,使用kill -l 来查看数字和信号的对应表
  • 使用 nohup     或  disown 如果你要让某个进程运行在后台。
  • 使用netstat     -lntp来看看有侦听在网络某端口的进程。当然,也可以使用 lsof。
  • 在bash的脚本中,你可以使用 set -x 来debug输出。使用 set -e 来当有错误发生的时候abort执行。考虑使用 set -o pipefail 来限制错误。还可以使用trap来截获信号(如截获ctrl+c)。
  • 在bash 脚本中,subshells (写在圆括号里的) 是一个很方便的方式来组合一些命令。一个常用的例子是临时地到另一个目录中,例如:

1.            # do something in current dir

2.            (cd /some/other/dir; other-command)

3.            # continue in original dir


  • 在 bash 中,注意那里有很多的变量展开。如:检查一个变量是否存在: ${name:?error message}。如果一个bash的脚本需要一个参数,也许就是这样一个表达式 input_file=${1:?usage: $0 input_file}。一个计算表达式: i=$(( (i + 1) % 5 ))。一个序列: {1..10}。     截断一个字符串: ${var%suffix} 和     ${var#prefix}。 示例: if var=foo.pdf, then echo     ${var%.pdf}.txt prints “foo.txt”.
  • 通过 <     some command etchosts diff etchosts ssh somehost cat etchostsli>
  • 了解什么叫 “here     documents” ,就是诸如 cat < EOF >
  • 在 bash中,使用重定向到标准输出和标准错误。如: some-command <logfile 2<&1。另外,要确认某命令没有把某个打开了的文件句柄重定向给标准输入,最佳实践是加上     “
  • 使用 man     ascii 来查看 ASCII 表。
  • 在远端的 ssh     会话里,使用 screen 或 dtach 来保存你的会话。(参看《28个Unix/Linux的命令行神器》)
  • 要来debug     Web,试试curl 和 curl -I 或是 wget 。我觉得debug Web的利器是firebug,curl和wget是用来抓网页的,呵呵。
  • 把 HTML 转成文本: lynx -dump -stdin
  • 如果你要处理XML,使用 xmlstarlet
  • 对于     Amazon S3, s3cmd 是一个很方便的命令(还有点不成熟)
  • 在 ssh中,知道怎么来使用ssh隧道。通过 -L or -D (还有-R) ,翻墙神器。
  • 你还可以对你的ssh     做点优化。比如,.ssh/config 包含着一些配置:避免链接被丢弃,链接新的host时不需要确认,转发认证,以前使用压缩(如果你要使用scp转文件):

1.            TCPKeepAlive=yes

2.            ServerAliveInterval=15

3.            ServerAliveCountMax=6

4.            StrictHostKeyChecking=no

5.            Compression=yes

6.            ForwardAgent=yes


  • 如果你有输了个命令行,但是你改变注意了,但你又不想删除它,因为你要在历史命令中找到它,但你也不想执行它。那么,你可以按下 Alt-# ,于是这个命令关就被加了一个#字符,于是就被注释掉了。
  • 更多精彩来源:http://emb.sunplusedu.com/answer/

分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
分享分享0 收藏收藏0 转发到微博
http://emb.sunplusedu.com/

使用道具 举报

Archiver|手机版|谷歌地图|百度地图|官网地图|淘宝链接|博航智能圈 - ARM嵌入式AI物联网IOT机器人

GMT+8, 2024-5-20 08:09 , Processed in 0.026179 second(s), 7 queries , Gzip On, Memcache On.

club.broadon.net

© 2007-2012 BroadOn

回顶部