大家知道,在 Linux 系统上工作的话,每天都要敲大量的命令,而且不少的命令都有各种各样的参数。即使是工作多年的老司机,也不敢保证能够记住所有这些命令及参数,更别说那些初出茅庐的初学者了。
针对这个痛点,一些开发者开发出了一些工具来帮助大家记录这些复杂的命令,比如 Keep
、Bashpast CLI
、 Pet
等。但是这几个工具都有一定门槛,而且还需要下载对应的工具,相对而言不太方便。
本文介绍两个小技巧,可以简单快速给一些复杂的命令加上标记,需要使用这些命令的话只需要找到这些标签即可,方便快捷!
给 Linux 命令做标记
当你看到一条很复杂的命令的时候,是不是很崩溃?但更崩溃的是你需要敲很多次这条命令。我们可以给这样的命令打上标签,其实说白了就是给它加上注释,通过注释既可以检索到命令,也可以起到提醒的作用。所以之后我们就不用再费脑去记这些长命令了,只需要通过我们设置好的标记就可以找到啦~
下面举一个简单的例子。
假如你想在当前目录中查找并列出大于 10MB 的文件,并按大小对它们进行排序,那么你可能需要这样写命令:
$ find . -size +10M -type f -print0 | xargs -0 ls -Ssh | sort -z
这样的命令是不是很长?是不是很让人崩溃?即使你是老司机,这样的命令敲多了也有可能会出错。
就算你每次都敲对,但也可能没办法一眼就看出来它是做什么用的。这时我们就可以在它的末尾加上一个注释,充当标记作用。这个注释最好能够稍微解释一下这条命令的用途,这样会更直观,比如 ListFilesBiggerThanXSize
:
$ find . -size +10M -type f -print0 | xargs -0 ls -Ssh | sort -z #ListFilesBiggerThanXSize
注意:注释需要以 # 开头,并且命令与标签之间留有空格。
后面你如果需要再使用这条命令的话,就可以通过 !?
来检索标签,从而重新执行这条命令。
$ !? #ListFilesBiggerThanXSize
在这条命令里,!和 ? 运算符用于获取并运行我们之前从 BASH 历史记录中标记的命令。
$ find . -size +10M -type f -print0 | xargs -0 ls -Ssh | sort -z #ListFilesBiggerThanXSize
total 104K
16K httpd.c
16K shakespeare
12K hello
4.0K dir2
$ !? #ListFilesBiggerThanXSize
find . -size +10M -type f -print0 | xargs -0 ls -Ssh | sort -z #ListFilesBiggerThanXSize
total 104K
16K httpd.c
16K shakespeare
12K hello
4.0K dir2
另一种方法
另一种更高效的方法就是「起别名」,有经验的朋友应该知道是使用 alias
命令,原理也是和做标记类似。
例如,我们也可以给上面那条复杂的命令起个别名:
$ alias ListFilesBiggerThanXSize='find . -size +10M -type f -print0 | xargs -0 ls -Ssh | sort -z'
需要使用的时候再重新输入这个别名就可以了:
$ ListFilesBiggerThanXSize
就这么简单!