使用Linux终端不仅仅是输入命令。学习这些基本技术,您将逐渐掌握Bashshell,这是大多数Linux发行版上的默认终端工具。这篇文章是为没有经验的新手写的,相信大多数高级用户都已经知道了所有这些技巧。但是,您仍然可以看一看,或许还能学到一些您一直忽略的东西。TabCompletion使用TabCompletion是一项基本技能。它可以为您节省大量时间,并且在您不确定如何拼写文件名或命令时非常有用。比如你当前目录下有一个文件,文件名为“reallylongfilenam”,你想删除这个文件。您可以输入整个文件名,但必须小心空格(需要使用\进行转义)。如果您键入“rmr”并按Tab键,Bash将自动为您完成文件名。当然,如果当前目录中有很多以字母r开头的文件,Bash将不知道您指的是哪一个。例如,如果当前目录中有另一个名为“reallyverylongfilename”的文件,当您按下Tab键时,Bash将补全到“really\”部分,因为这两个文件都以此开头。然后,再次按下Tab键,您将看到一个包含所有匹配开头的文件的列表,如下所示。然后输入所需的文件名并按Tab键。这样,当我们输入“l”,然后按下Tab键时,Bash会自动补全我们想要的文件名。此方法也适用于输入命令。当您不确定您想要什么命令时,只需记住以“gnome”开头,键入“gnome”并按Tab,您将看到所有可能的结果。管道命令管道命令允许您将一个命令的输出传输到另一个命令。在Unix的设计理念中,每个程序只有少数但精炼的功能。例如,“ls”命令会显示当前目录下所有文件的列表,而“grep”命令会在指定位置搜索输入的字符串。通过管道命令(用“|”符号表示)将两者结合起来,就可以在当前目录下搜索文件了。以下命令用于搜索“really”:ls|grepreally通配符星号“*”是一个可以匹配任何内容的通配符。比如我们要同时删除当前目录下的“真长文件名”和“真超长文件名”,可以使用如下命令:rmreally*name该命令删除所有以really开头结尾的文件姓名。如果使用“rm*”命令,该目录下的所有文件都会被删除,请谨慎使用。输出重定向“>”字符可以在不使用另一个命令的情况下将命令的输出重定向到文件。例如下图中的代码使用“ls”命令列出当前目录下的所有文件,并将输出列表输入到名为“file1”的文件中,而不是直接在终端输出。ls>file1命令行历史Bash会记住你使用过的命令的历史。您可以使用向上和向下箭头键滚动浏览您使用过的命令。使用“history”命令会打印出所有的历史命令,所以你可以使用管道命令来搜索你最近使用过的命令。关于命令行历史,有很多技巧可以使用:~,.&..波浪线“~”代表当前用户的主目录。因此,不用输入“cd/home/name”,您可以使用“cd~”切换到您的主目录。这也用于相对路径,例如“cd~/Desktop”将切换到当前用户的桌面目录。相似地,”。”代表当前目录,“..”代表父目录。all,"cd.."会跳转到上级目录。这对相对路径也有效。比如你在Desktop目录下,想切换到与Desktop目录同级的Document目录,可以使用“cd../Documents”命令。在后台运行命令默认情况下,Bash将在当前终端中运行您的命令。通常没问题,但是如果你想同时运行一个应用程序但继续使用终端怎么办?例如,如果您输入“firefox”命令来运行Firefox浏览器,Firefox将占用您的终端并显示一些错误消息和其他输出,直到您将其关闭。但是在命令后加一个“&”会导致Bash在后台运行程序:firefox&conditionalexecution你也可以用Bash运行两条命令,一个接一个。第二个命令只会在第一个命令成功完成后运行。为此,请在同一行中用“&&”分隔两个命令。例如,“sleep”命令接受一个以秒为单位的参数并倒计时时间,允许它结束。就其本身而言,此命令无用,但您可以将其用作运行下一个程序之前的延迟。以下命令将暂停5秒,然后运行??gnome的屏幕截图工具:sleep5&&gnome-screenshot你有什么技巧要分享吗?请留言。原文链接:ChrisHoffman翻译:Geekfan-minejo翻译链接:http://www.geekfan.net/7112/
