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下面多工作,思考和实践,才会更为熟悉,工作/开发更有效率。
一行流之类是不好的工程实践,不建议。