Linuxshell允许您将命令彼此链接在一起,同时触发复杂的操作,并为此创建别名作为快捷方式。让我们继续我们的别名系列。到目前为止,您可能已经阅读了我们关于别名的第一篇文章,并且应该很清楚它们是如何为您省去很多麻烦的最简单方法。例如,您已经看到别名可以帮助我们减少输入,让我们看看别名派上用场的其他一些情况。别名是快捷方式Linuxshell最美妙的事情之一是您可以使用数以万计的选项和链式命令一起执行非常复杂的操作。好吧,也许这种美丽在旁观者的眼中,但我们发现这个功能很有用。缺点是您经常需要记住难以记住或键入的命令组合。假设您的硬盘驱动器上的空间非常宝贵,并且您想进行一些清洁。您的第一步可能是寻找隐藏在主目录中的内容。您可以用来判断的一个标准是寻找不再使用的内容。ls可以帮助你:ls-lct上面的命令显示每个文件和目录的详细信息(-l),并显示每个项目最后访问的时间(-c),然后它从最近访问到最少访问的顺序排序排序这个列表(-t)。很难记住吗?您可能不会每天都使用-c和-t选项,所以也许吧。无论如何,定义一个别名会更容易:aliaslt='ls-lct'。然后,您可能还希望列表首先显示最旧的文件:aliaslo='lt-F|tac'图1:使用lt和lo别名。这里有一些有趣的东西。首先,我们使用一个别名(lt)创建另一个别名-这完全没问题。其次,我们将一个新参数传递给lt(它又通过lt别名的定义传递给ls)。-F选项在项目名称后附加特殊符号,以更好地区分常规文件(不带符号)与可执行文件(带*附加)、目录文件(以/结尾)以及所有链接文件、符号链接文件(以@符号)等。-F选项适用于当您回到单色终端时代并且没有其他方法可以轻松查看列表项之间的区别时。此处使用它是因为当您将输出从lt传输到tac时,您会丢失ls的颜色。我们需要注意的第三件事是我们使用管道。当您将一个命令的输出传递给另一个命令时,将使用管道。第二个命令可以使用这些输出作为其输入。在包括Bash在内的许多shell中,您可以使用竖线字符(|)来传递。在这里,您将lt-F的输出通过管道传输到tac。tac命令有点像个笑话。您可能听说过cat命令,它名义上用于相互连接文件,但实际上它用于将文件内容打印到终端。tac做同样的事情,但它以相反的顺序输出它接收到的内容。你明白吗?catandtac,技术人员有时会很有趣。cat和tac都输出管道输入的内容,在本例中,是按时间顺序排序的文件列表。所以,在深入挖掘之后,我们最终得到的是这个列表,它以新鲜度的倒序(即旧的优先)列出了当前目录中的文件和目录。***你需要注意,当在当前目录或任何目录中运行lt时:#Thisworks:lt#Thisalsoworks:lt/some/other/directory...而lo仅在当前目录中运行:#This有效:lo#而这无效:lo/some/other/directory这是因为Bash扩展了别名的组件。当你键入:lt/some/other/directoryBash实际上运行:ls-lct/some/other/directory这是一个有效的Bash命令。当你输入:lo/some/other/directoryBash尝试运行:ls-lct-F|tac/some/other/directory这不是一个有效的命令,主要是因为/some/other/directory是一个目录,cat和tac不能用于目录。更多别名快捷键aliaslll='ls-R'会打印出目录的内容,下钻到子目录打印子目录的内容,子目录的子目录等,这是查看一个目录所有内容的方法.mkdir='mkdir-pv'允许您一次在目录下创建目录。在mkdir的基本形式中,要创建一个包含子目录的目录,您可以执行以下操作:mkdirnewdirmkdirnewdir/subdir或此操作:mkdir-pnewdir/subdir并且使用此别名,您只需执行以下操作:mkdirnewdir/subdir您的新mkdir还会告诉您创建子目录时做了什么。别名是一种保护形式别名的另一个好处是它们可以防止意外删除或覆盖现有文件。您可能在Linux新用户中听说过这样的谣言,即当他们以root身份运行时:rm-rf/整个系统崩溃了。决定键入:rm-rf/some/directory/*的用户很好地清除了其主目录的全部内容。意外键入的目录和*之间的空格有时很容易被忽略。使用aliasrm='rm-i'别名可以避免这两种情况。-i选项使rm询问用户是否真的要执行此操作,从而在您对文件系统造成无法弥补的损坏之前给您第二次机会。cp也是一样,它可以在不给你任何提示的情况下覆盖一个文件。为了安全起见,创建一个像cp='cp-i'这样的别名。下一次我们越来越深入脚本领域,下一次,我们将朝那个方向前进,看看在命令行中编写命令如何给您带来真正的乐趣并可靠地解决系统管理员每天面临的问题。
