1 2 3 4 5 6 7 8 | # 直接使用 for 循环,以换行符分隔 $ END=5;for ((i=0;i<$END;i++)); do echo $i; done # 使用 seq 命令,用 -s 参数指定分隔符 $ END=5;seq -s' ' 1 $END # 使用 eval 命令,以空格分隔 $ END=5;eval echo {1..$END} |
1 2 3 4 5 | # 使用 -e 参数 $ echo -e "a\nb" # 使用字符串展开,注意必须是单引号 $ echo $'a\nb' |
获取脚本自身所在目录:
1 | $ dirname $0 |
ps-查看当前正在运行的进程,示例:$ ps kill {PID}-通过 PID 来停止任意进程,示例:$ kill 1012 killall {Process-name}-通过名称来停止任意进程,示例:$ killall httpd ps -ag-获取所有正在运行进程的信息,示例:$ ps -ag kill 0-停止所有的进程(你的 shell 除外),示例:$ kill 0 linux-command &-后台执行进程,示例:$ ls / -R | wc -l & ps aux-显示进程的所有者,示例:$ ps aux ps ax | grep process-U-want-to see-查看某个特定的进程,示例:$ ps ax | grep httpd top-查看当前正运行的进程、内存及 CPU 占用率,示例: $ top
转换当前目录及子目录下的所有文件
1 2 | $ find -type f | xargs dos2unix $ find ./ -type f -exec dos2unix {} \; |
转换当前目录及子目录下的所有后缀为sh的文件
1 2 | $ find -name "*.sh" | xargs dos2unix $ find ./ -name '*.sh' -exec dos2unix {} \; |
man 其实是调用 less 来显示手册页的。因此,在阅读内容比较长的页面时,可以使用书签来标记需要重复阅读的重要内容。
标记的方法为:先按 m 键,然后在 mark: 后输入标记字母,如 a。需要说明的是,标记符是区分大小写的,也就是说 a 与 A 是两个不同的标记符。 当你需要返回先前设置的书签时,可以按 ' 键(单引号)。此时会显示 goto mark:,输入你设置的标记符即可。
在阅读 man 手册页时想要对命令的用法进行尝试的话,那么可以使用 !。这让你不必打开新的终端,也不用离开 man 手册的阅读页面。在按下 ! 之后,你就可以自由输入所要测试的命令了。完成后,按回车键将返回到 man 手册的阅读页面。
查看目录的磁盘占用情况 du -h --max-depth=1 | sort -n -r pgrep:比如,你可以使用 pgrep -u root 来代替 ps -ef | egrep '^root ' | awk '{print $2}',以便抓取属于 root 的 PID。 pstree:我觉得这个命令很酷,它可以直接列出进程树,或者换句话说是按照树状结构来列出进程。 bc:这个命令在我的系统中没有找到,可能需要安装。这是用来执行计算的一个命令,如使用它来开平方根。 split:这是一个很有用的命令,它可以将一个大文件分割成几个小的部分。比如:split -b 2m largefile LF_ 会将 largefile 分割成带有 LF 文件名前缀且大小为 2 MB 的小文件。 nl:能够显示行号的命令。在阅读脚本或代码时,这个命令应该非常有用。如:nl wireless.h | head。 mkfifo:作者说这是他最喜欢的命令。该命令使得其他命令能够通过一个命名的管道进行通信。嗯,听起来有点空洞。举例说明,先创建一个管道并写入内容: mkfifo ive-been-piped ls -al split/** | head > ive-been-piped
然后就可以读取了:head ive-been-piped。 ldd:其作用是输出指定文件依赖的动态链接库。比如,通过 ldd /usr/java/jre1.5.0_11/bin/java 可以了解哪些线程库链接到了 java 依赖(动态链接)了哪些库。(感谢 NetSnail 的指正。) col:可以将 man 手册页保存为无格式的文本文件。如: PAGER=cat man less | col -b > less.txt xmlwf:能够检测 XML 文档是否良好。比如: curl -s 'http://bashcurescancer.com' > bcc.html xmlwf bcc.html perl -i -pe 's@
@
@g' bcc.html xmlwf bcc.html bcc.html:104:2: mismatched tag lsof:列出打开的文件。如:通过 lsof | grep TCP 可以找到打开的端口。
本作品由 Yysfire 创作,采用进行许可。转载时请在显著位置标明本文永久链接:
http://yysfire.github.io/linux/linux-command-note.html