Linux的10个命令?

Table of Content:
  1. man
  2. touch, cat, less
    1. touch
    2. cat
    3. less
    4. 其他的命令
    5. tail
  3. sort & grep
  4. cut
  5. sed
  6. tar
  7. find
  8. diff
  9. uniq
  10. chmod
  11. 最后

随便谈谈Linux的10个命令

今天在网上看到有人分享关于Linux的10个命令之类的东西。
我也在此由此展开说下自己的实践。

man

这个命令用于查看帮助文档。

在vim中,利用K,就可以直接查看当前所在的词的帮助。

set keywordprg=man\ -a

相当于man -a命令,可以查看所有的文档。

touch, cat, less

touch

创建一个文件,或者touch它,也就是更新文件的mtime

cat

显示文件

less

less is more

这个命令和more一样,属于一种pager。
而且可以直接利用/,进入搜索模式。和vim中的操作很像。

其他的命令

这样的基本文件操作命令很多,比较常用的还有下面的。

tail

显示文件的末尾10行,
加-n参数,显示末尾的几行。

tail -n

-f 跟踪显示。这个非常有用,可以跟踪查看log。

tail -f

sort & grep

sort,其实我的使用不是很多,因为我处理复杂的文本,一般用python,而不是shell。

grep进行正则匹配,建议可以尝试ack或者ag。
这两个都比grep要好用一些。

  • 默认不匹配二进制文件,和某些路径下的文件(.git或者其他隐藏文件
  • 默认当前目录下向下递归搜索
  • 默认smartcase方式

而且速度也快不少。当你的需求是搜索代码的时候,非常值得尝试下。

cut

和sort一样,我用python。

sed

这个偶尔还是会用的。但是一样不常用。

tar

在zsh中,有一个比较好的实践方式。
就是通过下面的方式,这样这些带压缩文件后缀的文件都是“可执行的”,会自动调用相应的文件进行解压缩操作。

alias -s rar="unrar e"
alias -s tgz="tar zxvf"
alias -s bz2="tar jxvf"
alias -s gz="tar zxvf"
alias -s tar="tar xvf"
alias -s zip="7z x"
alias -s xz="unxz"

find

如果不清楚文件具体在那个位置,不用在root路径下递归搜索,可以尝试locate,这个命令对应在系统中有一个数据库的,因此速度比较快。

坏处就是数据库有时更新不及时,因此有的时候需要手动更新。

updatedb

手动更新需要root权限。

diff

vimdiff 更为实用啊。

diff命令也可以比较二进制文件,但是只输出第一次不同的位置。

uniq

python,again。

chmod

777之类的说明就不说了。

另外777,毫无疑问,在实际中应该避免使用。

chmod u+x

这种方式,比777之类的数值意义更明显,更好用。

另外部分敏感文件,对权限管理有限制,实际中需要注意。一个典型就是.ssh下面的文件。

最后

其实Linux的10个命令之类的,意义很小。
要在Linux下面多工作,思考和实践,才会更为熟悉,工作/开发更有效率。

一行流之类是不好的工程实践,不建议。