linux命令特点

来源:互联网 发布:黑洞特效源码 编辑:程序博客网 时间:2024/05/01 23:44
Unix 命令行特别之处在于,某些选项采用传统的设计, 只需认识一个就能在其它命令使用相似的功能。所以并非那么难记的。

1. -h 通常意指 'h' + uman, 也就是 human-readable, 代表有: ls -lth, sort -h

2. -v (小写) 通常意指 'v' erbose, 代表有: curl -v, ssh -v, python -v
2.1 -V (大写) 通常意指 ‘V’ ersion,与 --version 相比之下比较冷门,代表有: gedit -V, firefox -V, openvt -V
2.2 --version (小写 v) 也是意指 ‘V’ ersion,代表是九成的命令: python --version, konsole --version, gnome-shell --version, firefox --version, chromium-browser --version, bash --version, curl --version, tree --version, ls --version, journalctl --version, gedit --version, unp --version
2.3 --help, 同上, 九成的命令都有。不推荐 -h, 很多命令没有 -h, 亦或已经用来代表 'h'uman-readable。

3. -a 包括 dot 文件, 代表有: ls -a, tree -a

4. -r 通常意指:

[a]. 'r' + everse, 代表有: ls -lthr, sort -r
- 本人的 l alias 是 `ls -larthiF --context --color', 其中 t+r 显示最新日期的文件在最下方,毕竟大多数情况,我只关心最近的文件。

[b]. 'r' + ecursive, 代表有: grep -r, rm -r

[c]. 'R' 通常意指 'R' ecursive , 代表有:
[c.1] ls -R, chmod -R
[c.2] grep -R (--dereference- 'R' ecursive)

[d]. rm 和 cp 的 -r 和 -R 同样是 recursive。切记有些平台只有 -r, 有些平台只有 -R, 有些平台两者都有。

5. --exclude-dir 排除某个目录,代表: cloc . --exclude-dir=xxx, grep -rniI --exclude-dir=xxx abc ./*

建议:

1. 不仅仅是 man,当不肯定的时候,可以用 --help 快速一览选项。切记 --help 不等同于 man, 有时需要两个命令互补。也别忘了 info。要切记的是 man 本身有 section 分类 ,如图所示, `man 1 ls` 和 `man 1posix ls` 可以浏览两个不同的 manual, 用 `apropos -e` 或 `whatis` 可以显示 section 代号:

p/s: 有些 manual 要特地安装后才有。如 `sudo apt-get install glibc-doc manpages-dev glibc-doc-reference`

2. 如果 php 是世界上最好的语言,那么 "你使用过的命令行历史记录" 就是世界上最好的笔记。善用 history | grep 'xxx' 搜索之前用过的命令/选项,如:
2.1 别忘了提升 history 记录上限。如 HISTSIZE=70000000 (不推荐 HISTSIZE=<设空> 的原因是旧版的 gdb 有 bug, 参考linux - GDB up arrow doesn't workHISTSIZE 和 HISTFILESIZE 两个都需要设置,切记!
3. 善用自动完成,比如 ls --s<敲 Tab 键>, Tab 键不仅仅可以查找命令, 找选项,还可以找文件名。
3.1新手会觉得 Tab 键很强大, 但是同等强大的 Page Up/Down 被一般的教程所忽略了。输入 ls 再按Page Up/Down 可以自动完成且浏览之前的命令历史。 不需要完整的命令。如输入 fi 再按 Page Up,就会自动完成 `file /etc/gdm3/Xsession`, 再按 Page Up,就会自动完成 `find . -iname pool.jpg`,以上都是我输入过的 fi 开头的历史记录, 加上 Page Down 就可以上下浏览。购买键盘时请确保 Page Up/Down/Home/End 拥有独立的键,而不是需要 Fn。Home/End 键的好处是快速切换去命令行的前方和后方。
p/s: 如果没有 Page Up/Down 功能,请新建文件 ~/.inputrc , 确保有以下内容

前两者是启动 Page Up/Down 自动完成历史记录功能。后两者是启动 Ctrl+左右键, 可以以每个完整英文字体的间隔来快速浏览+编辑一条命令行。
3.2 基本的上下键则仅用于浏览当前 session 的历史记录。

4. 善于在 ~/.bashrc 或 ~/.bash_aliases 上制作 alias 或 function, 好处是:
[a]. 省却记忆量。
[b]. 提升使用命令速度。
[c]. 可以在命令旁加入 #comment (或 <<"COMMENT" 开端, COMMENT 结尾), 随时打开 ~/.bashrc复习。也可以用 `type -a 命令` 快速复习。我通常也会记录命令的相关讨论链接和心得撰写在 note 文件,有需要就 grep 或 vi 里头搜索即可。告诉你一个小技巧,把笔记后缀命名为相应的编程语言, 如 note.sh, note.c, note.java,打开时就可以直接获得美美的高亮。

4.1 写一些有用的小工具。小工具本身就集成了很多选项的实践,往后若要编写相似功能的小工具,只需参考先前的选项是怎么用的。比如本人写了recursive+高亮的 recurcat代码包含了 find 的选项用法:

(p/s: 没看过 typea 命令? 当然, typea 也是我独家写的小工具, 是进阶版的 type -a )

5. 善用英文搜索 stackexchange( 全球 unix 高手聚集之地就是 Unix & Linux Stack Exchange),stackoverflow,bash(大多数的命令问题都与 bash tag 相关) 关键字。有一点很重要,搜索 stackexchange 可以找到包括 stackoverflow 的结果:

p/s: 搜索选项时别放减号, 如上图,输入 ff 而不是 -ff。因为减号在搜索引擎是排除的意思。
6. 常备份 ~/.bashrc, ~/.bash_aliases, ~/.bash_history 和 note 。安装新的 os 时也可以直接迁移。说个题外话,其它如 ~/.vimrc 的备份也很重要。
7. 善用懒人包命令,比如 unp 足以应付大多数解压需求。懒人包带来的是好处(不用记忆)还是坏处(用 Linux 十年也不懂 xvfz)有待斟酌。
8. 打开 man 时要找选项是一件头疼的事,用 /<空格>-Wall 搜索, 敲 -i 切换大小写敏感性,这个 一般的 regex 其实无法囊括所有的选项的情况 (不信 ? 请现在 `man mplayer` 之下 /<空一格> -scale 进行搜索),要不然就是大海捞针。



0 0
原创粉丝点击