Linux 指南/合并/Linux 新手入门/命令行
一位维基教科书员建议将本书或章节合并到Linux 指南/使用 Shell中。 请在讨论页面上讨论是否应该进行合并。 |
简单来说,命令行非常强大;存在着大量的工具可以将图形程序中繁琐的任务变成只需几秒钟即可完成的任务。删除大型文件每一行中的最后四行在图形应用程序中是一个漫长的过程,但在命令行中可以变得微不足道且自动化。
除了灵活性之外,还需要注意的是,某些 Linux 系统根本没有图形界面,并且某些系统可能会损坏,以至于无法启动除了命令提示符之外的任何东西。在这些情况下,必须能够在命令行上进行足够熟练的导航,以执行从备份一些文件到禁用损坏的硬件的任何任务。
命令行中使用的命令可能看起来有点神秘,因为它们往往非常短。这是因为 Linux 命令行的起源来自这样的系统,在这种系统中,单个字母输入从终端发送到中央服务器并返回到终端进行打印到纸卷上需要花费大量时间。在那些旧的系统中,输入越短越好,因为它意味着等待发出命令并接收输出的时间更少。为了记住命令的含义,你能做的最好的事情就是找出命令是哪个词的缩写。这对于以后记住命令很有帮助。
对于每个 Linux 发行版,命令行提示符看起来都会略有不同。例如,在一个系统上,您可能会看到您的用户名、'@' 符号、机器名、当前目录和一些指示提示符结束的符号(这里,一个美元符号)。
user@linux ~/$
这是一个非常常见的提示符。您还可能会看到您的用户名、空格、计算机的完全限定域名、当前工作目录的完整路径,以及一个表示提示符结束的符号(一个美元符号)。
user linux.box.com /home/user#
提示符因系统而异,这取决于许多因素。例如,它可能是您的特定 Linux 发行版的创建者设置的默认配置。它也可能由管理计算机的人员配置。也许您自己配置了您希望提示符的外观。配置命令提示符外观的方式取决于您使用的 Shell。
Shell 是大多数人通常称为“命令行”的那一部分,而实际上它只是一个提供内核服务界面的软件。'Shell' 和'命令行' 之间的区别仅仅在于,Shell 指的是提供命令行界面的特定软件(例如 BASH、Tch、ksh 等)。大多数现代 Linux 系统使用 BASH(Bourne Again SHell)作为默认 Shell。
- ls- 此命令'list' 当前工作目录的内容。
- pwd- 显示您的present working directory 是什么。
- cd- 允许您change directories。
- rm- Remove 一个或多个文件。
- rmdir- Remove 一个空的 directory。
- mkdir- Make 一个 directory。
- ps- 提供当前正在运行的processes 的列表。
- cp- Copy 一个文件。
- mv- Move 一个文件(这也用于重命名文件,将文件从一个文件名“移动”到另一个文件名。)
- grep- global regular expression print 程序允许您搜索文件或另一个程序的输出。
- find- 在文件系统上查找文件(100% 准确,但速度不快)。
- locate- 从文件缓存列表中查找文件系统上的文件(速度快,但不是 100% 准确)。
- man- 显示大多数命令的手册(包括 'man')。
- clear- 清除屏幕
- less- 查看文件内容
- nano- 一个简单的文本编辑器
- sudo- 以另一个用户身份执行命令(默认情况下为 root)
- su- 切换用户(默认情况下为 root)
- view- 以只读模式启动。您将受到保护,无法写入文件。也可以使用“-R”参数来实现。
大多数(tar cvf tarFile *)(gzip)(gzip -d & tar xvf)命令(cp)mv [filename} [location])需要一些额外的信息才能执行有用的操作。例如,复制命令需要知道要复制哪个文件。额外的信息以参数的形式给出。(while read names __ do __ ### __ done < filename)参数写成命令名后的额外单词,并用空格隔开。如果要调用命令ps使用参数-A,您将写
user@linux$ ps -A
- 注意
- 参数、参数和标志是同义词,而“开关”实际上是一种参数,它表示开或关的状态。参数通常需要其他信息(例如文件名),而开关永远不需要其他信息,除非可能是“开/关”、“真/假”、“是/否”。
大多数 Linux 命令使用 GNU 的参数格式:每个选项要么是一个以连字符开头的字母,例如-o, -W或-L,要么是一个以两个连字符开头的单词或短语,例如--symbolic, --no-target-directory等等。一些命令还接受文件名。每个文件都必须作为单个参数提供,因此如果您的文件名包含空格,则必须用双引号或单引号将其括起来,或者在空格前加上反斜杠。以下三个命令使用less
打开同一个文件
user@linux$ less "important notice.txt" user@linux$ less 'important notice.txt' user@linux$ less important\ notice.txt
Shell 识别某些字符并将其用于特殊任务。如果您的文件名包含字符 <>&[]$\"';如果您遇到问题,应该在这些字符前面加上反斜杠。请注意,在 Linux 中,文件名可以包含除 "/" 之外的任何字符,"/" 用作目录分隔符,以及空字符,该字符无论如何都无法从键盘输入。
user@linux ~/$ ls Afilez Report.doc aFilea finances.xls myPic.jpg report1.doc vacation pictures
您可能会从示例中注意到,“ls”的默认输出表明文件并非严格按字母顺序排序。这是因为输出是根据每个字母的数值 ASCII 值进行排序的。由于大写字母的 ASCII 值比小写字母的 ASCII 值低,因此返回的结果始终是首先列出以大写字母开头的文件。例如,如果我们在目录中添加文件 AZTRIP,我们将得到“AZTRIP”作为第一个列出的文件,然后是“Afilez”,因为“Z”的 ASCII 值在数值上低于“f”的 ASCII 值。
如果字母的 ASCII 值让您感到困惑,那么要记住的重要一点是大写字母优先于小写字母,并且会先出现在列表中。结果是文件先按大小写排序,然后按字母顺序排序。
ls 的默认输出不像它可能的那样有用。例如,根据示例中的输出,我们不知道哪些是文件,哪些是目录。我们可能可以猜到“Afilez”、“aFilea”和“vacation pictures”都是目录,因为它们的文件名后面没有扩展名。为了确认这一点,我们可以将参数“l”传递给“ls”以获得“长列表格式”输出。
user@linux ~/$ ls -l -rw-r--r-- 1 adrong mkgroup-l-d 163328 Jul 24 11:42 AZTRIP -rw-r--r-- 1 adrong mkgroup-l-d 11264 Jul 24 11:42 Afilez -rw-r--r-- 1 adrong mkgroup-l-d 22528 Jul 24 11:43 Report.doc -rw-r--r-- 1 adrong mkgroup-l-d 24576 Jul 24 11:42 aFilea -rw-r--r-- 1 adrong mkgroup-l-d 300032 Jul 24 11:43 finances.xls -rw-r--r-- 1 adrong mkgroup-l-d 47104 Jul 24 11:41 myPic.jpg -rw-r--r-- 1 adrong mkgroup-l-d 17920 Jul 24 11:43 report1.doc drwxr-xr-x 1 adrong mkgroup-l-d 0 Jul 24 11:24 vacation pictures
上面输出中的第一个字符表示文件类型;其中,破折号表示文件,字母“d”表示目录。从这个输出中,我们看到唯一的目录是“vacation pictures”。
- 注意
- 大多数系统在 ls 命令上都有一个别名,以包含“--color”标志,以便该命令以不同的颜色突出显示不同的文件类型。目录通常以蓝色显示。如果“ls”命令的输出中所有内容都是相同的颜色,请尝试“ls --color”。
- 提示
- ls 命令的另一个常用参数是“a”,它显示所有文件,包括以句点开头的任何隐藏文件和文件夹。参数也可以组合在一起放在单个字母块中。例如,“ls -l -a”也可以表示为“ls -la”。
命令 ls -l 按以下顺序输出信息。第一列数据列出了应用于该文件或目录的权限。下一列信息列出了指向该文件的“硬链接”数量。如果您不确定这意味着什么,那么不用担心。有关硬链接的更多信息,请运行 man ln 阅读 ln 的手册页。下一列列出拥有该文件或目录的用户的名称,然后是拥有该文件或目录的组的名称。下一列列出文件或目录的大小。对于目录,它不列出该目录内所有内容的大小。在上面的示例中,它将两个目录的大小都列为 4096 字节。这是因为拥有一个目录需要占用这么多的空间,这并不意味着该目录中有 4096 字节的内容。下一列列出文件或目录上次修改的日期。最后,列出文件或目录的名称。要了解有关 ls 命令的更多信息,请运行命令 man ls,您将看到 ls 的手册页。
- 另请参阅 cd 的条目 在 Guide to Unix/Commands 维基教科书中。
cd 命令允许您在系统上的目录之间导航。使用 cd 命令时,您可能需要了解的第一件事是,与 Windows 不同,Linux 不使用驱动器盘符的概念。相反,所有内容都位于根目录“/”中,包括其他磁盘驱动器。
有两种方法可以使用 cd 导航到所需的目录。这些方法被称为“完整路径”和“相对路径”。
完整路径始终以根目录“/”开头。例如,如果我们位于主目录“/home/user”中,并且我们想要导航到“vacation pictures”目录,我们将发出以下命令。
user@linux ~/$ cd /home/user/vacation\ pictures user@linux vacation pictures/$
您可能会注意到,我们的提示稍微改变了一些,以指示我们当前所在的目录。在大多数系统上都是如此,但如前所述,这取决于 shell 的配置方式。您可能还注意到“vacation”和“ pictures”之间的反斜杠。这个反斜杠被称为“转义字符”,它告诉 cd 命令空格是目录名称的一部分。如果我们省略反斜杠,cd 命令将出错并告诉我们它找不到目录“vacation”。如果您不喜欢输入反斜杠,或者目录名称中有许多空格,则可以在路径周围使用引号。
相对路径可以从多种方式开始,但始终描述如何从当前所在的目录导航到特定目录。要做到这一点,我们需要知道如何移动到立即围绕我们当前所在的目录的目录。这些目录是父目录和子目录。
子目录是包含我们当前所在的目录的任何目录。根据“ls -l”的以下输出,我们看到芝加哥、佛罗里达和“纽约”都是“vacation pictures”目录的子目录。
user@linux vacation pictures/$ ls -l drwxr-xr-x 1 adrong mkgroup-l-d 0 Jul 24 12:44 chicago drwxr-xr-x 1 adrong mkgroup-l-d 0 Jul 24 12:44 florida drwxr-xr-x 1 adrong mkgroup-l-d 0 Jul 24 12:44 new york
父目录是包含我们所在文件夹的目录。这使得“vacation pictures”文件夹成为“芝加哥”、“佛罗里达”和“纽约”目录的父目录。
要 cd 到子目录,您可以用“./”开始路径名称,这表示我们已经所在的目录,或者您可以立即用子目录的名称开始。例如,以下两个命令都会将您更改到“佛罗里达”目录。
user@linux vacation pictures/$ cd ./florida user@linux florida/$
user@linux vacation pictures/$ cd florida user@linux florida/$
要 cd 到父目录,您始终指定“../”。以下命令将我们返回到“vacation pictures”目录。
user@linux florida/$ cd ../ user@linux vacation pictures/$
如果我们已经位于“芝加哥”目录中,并且想要 cd 到“纽约”,我们必须首先告诉系统我们要向上移动一级到父目录,然后到“纽约”目录。我们可以通过说“cd ../”然后“cd new\ york”来实现,或者我们可以使用以下命令一步一步完成。
user@linux chicago/$ cd "../new york" user@linux new york/$
- 注意
- 请注意,我们如何在路径周围使用引号来 cd 到“纽约”目录。我们可以使用反斜杠代替空格之前的反斜杠,并省略引号以获得相同的结果。
类似于“./”和“../”,还有“~/”,它表示我们以其身份登录的用户的主目录。如果我们想要在“/usr/lib”目录中 cd 到“vacation pictures”文件夹,我们可以使用以下任何命令来完成。
user@linux lib/$ cd ~/vacation\ pictures user@linux lib/$ cd "/home/user/vacation pictures" user@linux lib/$ cd ../../home/user/vacation\ pictures
- 提示
- 在不指定目录的情况下使用 cd 命令将使您返回到主目录。
echo -n "请输入您的姓名" read name useradd $name
- 另请参阅 pwd 的条目 在 Guide to Unix/Commands 维基教科书中。
要显示您在任何时间所在的完整路径,只需运行命令pwd(print working directory),它将为您打印路径。例如
user@linux test$ pwd /home/user/test user@linux test$ cd .. user@linux ~/$ pwd /home/user
命令mkdir允许您创建新的目录。
user@linux ~/$ ls Afilez Report.doc aFilea finances.xls myPic.jpg report1.doc vacation pictures user@linux ~/$ mkdir playground user@linux ~/$ mkdir ./playground/test1 user@linux ~/$ mkdir /home/user/playground/test2 user@linux ~/$ ls Afilez Report.doc aFilea finances.xls myPic.jpg playground report1.doc vacation pictures user@linux ~/$
- 注意
- 就像我们之前在cd命令中看到的那样,我们可以通过指定相对路径和绝对路径来创建新的目录。您会发现您可以对所有使用文件和文件夹的命令行程序执行此操作。
- 提示
- 您可以传递-p参数到mkdir以使其创建所有目录以使该路径有效。例如,代替第一个和第二个mkdir命令,我们可以改为运行mkdir -p playground/test1以一步创建playground和test1目录。
命令rmdir命令允许您删除空目录。
user@linux ~/$ ls playground/ test1 test2 user@linux ~/$ rmdir playground/test1 user@linux ~/$ ls playground/ test2 user@linux ~/$
与 Windows 一样,Linux 也有隐藏文件的概念。这一点很重要,因为您可能尝试删除一个看似空的目录,却遇到错误。
user@linux ~/$ cd playground/ user@linux playground/$ rmdir test2 rmdir: failed to remove `test2': Directory not empty user@linux playground/$ ls test2/ user@linux playground/$
要查看隐藏文件和文件夹,请在-a(all files and folders) 参数传递给ls命令。
user@linux playground/$ ls -a test2/ . .. .hiddenfile user@linux playground/$
Linux 中所有隐藏文件都以句点开头。我们看到的“. ”和“.. ”文件是允许我们指定相对路径的系统文件夹。
- 提示
- 如果您厌倦了每次看到“. ”和“.. ”文件夹ls -a,您可以改为运行ls -A以显示“几乎所有”文件。这将为您提供所有文件和隐藏文件,但不包括“. ”和“.. ”。
使用 rm - 删除文件
[edit | edit source]命令rm命令将删除特定文件或文件组。在使用此命令时要小心,因为命令行没有“回收站”!
要删除文件.hiddenfile在上一个示例中,我们只需在rm命令。
user@linux playground/$ rm test2/.hiddenfile user@linux playground/$ ls -a test2/ . .. user@linux playground/$ rmdir test2 user@linux playground/$
- 提示
- 除了拥有多个参数外,rm命令还支持使用星号 (*) 来表示任何字符集。当您想要删除所有特定类型的文件时,这很有用。例如,rm *.jpg将删除您当前目录中所有以“.jpg”结尾的文件。
- 提示
- 在您对rm命令感到满意之前(尤其是在与星号结合使用时),您可能希望指定-i参数来rm在删除发生之前确认删除。
使用 locate - 查找文件
[edit | edit source]命令locate实用程序即使在图形环境中工作也很有用。在安装了它的系统上,它会定期索引整个文件系统并将文件名称存储在内部数据库中。这使得按名称查找文件非常快(搜索特定名称只需不到一秒钟)。以下是一个示例
tweenk@tc1100:~$ locate stock_3dsound /usr/share/icons/gnome/16x16/stock/media/stock_3dsound.png /usr/share/icons/gnome/24x24/stock/media/stock_3dsound.png tweenk@tc1100:~$
此示例搜索硬盘驱动器中所有在其路径中任何位置包含“stock_3dsound”的文件。您也可以在模式中使用通配符 * 和 ?。
由于文件名保存在数据库中,locate将无法找到最近创建的文件,或者可能找到已被删除的文件。虽然数据库会定期由脚本更新,但您可能希望强制更新。为此,请使用命令locate -u,以 root 身份运行(在 Ubuntu 中,sudo locate -u;在其他发行版中,首先su,然后locate -u).
使用 su/sudo - 以超级用户权限运行命令
[edit | edit source]超级用户,更常被称为“root”,对系统上的所有内容都有完全访问权限。root 用户可以做一些愚蠢的事情,比如将鼠标输入视为音频,也可以做一些对系统造成灾难性影响的事情,比如删除文件系统上的所有文件。正是由于最后一个原因,命令行才被认为是令人恐惧的东西。
- 警告
- 如果您被告知运行rm命令与星号 (*) 结合使用,请在运行它之前认真考虑一下。许多恶作剧者在 Linux 支持论坛中潜伏,希望诱骗您删除文件系统上的所有文件。其他变体使您mv您的文件到/dev/null这具有相同的效果。其他变体还涉及rm -r -f作为 root,它将删除文件系统上的所有文件。
su
[edit | edit source]`su`(超级用户)命令的功能允许您切换到系统上的另一个用户。通常它用于切换到系统上的“root”用户。要成为大多数系统上的 root,请使用su命令不带任何参数。然后会提示您输入 root 密码。
user@linux ~/$ su Password: root@linux user/#
请注意提示的更改。这些是您可以预期看到的典型更改。用户名从“user”更改为“root”,以反映我们正在操作的用户身份的更改。目录已更改,因为“user”的主目录(例如 /home/user)与 root 的主目录(通常为 /root)不同。最后一个更改是提示符末尾的字符。井号 (#) 是通常用于指示您现在以 root 身份运行命令的符号。
要切换到另一个用户,请使用su命令后跟您要切换到的用户名。
user@linux ~/$ su fred Password: [email protected] /home/user/$
在这里,我们已成功切换到用户“fred”。Fred 不是 root 用户,因此结束符号仍然是美元符号。但是,Fred 已经对其提示符的外观进行了自定义更改。它提供了机器的完全限定域名,以及用户当前所在的完整路径。
- 注意
- 此示例中所需的密码是 Fred 的用户密码。root 密码将不起作用。
一旦您su到 root 用户,您就可以su到任何其他用户,而无需他们的密码。要su到“fred”,而无需他的密码,我们首先su到 root 作为中间步骤。
user@linux ~/$ su Password: root@linux user/# su fred [email protected] /home/user$
sudo
[edit | edit source]命令sudo命令类似于su因为它允许您以超级用户权限运行命令。但是,关于如何授予超级用户权限的理念却截然不同。
su | sudo |
---|---|
运行一次,所有后续命令都将以 root 身份运行。 | 每次都必须作为前缀运行,以运行您希望以 root 身份运行的命令。 |
对系统上的所有命令和文件提供完全访问权限。 | 可以限制用户对哪些命令(以及随后,哪些文件)的访问权限。 |
一个密码,必须与您希望授予 root 访问权限的用户共享。请注意,共享密码会增加密码被拦截的可能性。 | 用于 root 访问的密码与用户的密码相同。请注意,获得 root 访问权限的人数越多,就越有可能从用户那里猜到或窃取其中一个密码。 |
用户必须记住在完成后退出 root。 | 用户必须等待命令超时,然后才会再次提示输入密码。用户可能会以运行su的方式成为 root,因此可能仍然需要记住在完成后退出 root。 |
要成为用户fred使用sudo命令看起来有点多余。
user@linux ~/$ sudo su fred Password: [email protected] /home/user$
- 注意
- 此示例中所需的密码是您自己的用户密码。
- 注意
- 您仍然可以使用su fred命令成为fred用户,但是同样,您需要 Fred 的密码才能做到这一点。
将sudo命令理解为类似于“成为 root 并运行以下命令”。这使得上面的命令sudo等效于su示例,在运行su成为用户fred.
之前,我们作为中间步骤成为 root。sudo有时您可能需要以 root 用户身份运行多个命令。这可能会使使用
user@linux ~/$ sudo ls /home/fred Travel.doc building budget.doc dev user@linux ~/$ sudo ls /home/lisa Work funny.jpg g1tmp.odf user@linux ~/$ sudo ls /home/joe Backup Desktop java.jar user@linux ~/$
变得冗长乏味,每次都必须像以下示例中所示那样重新输入“sudo”。sudo我们可以使用bash上的
user@linux ~/$ sudo bash Password: root@linux user/# sudo ls /home/fred Travel.doc building budget.doc dev root@linux user/# sudo ls /home/lisa Work funny.jpg g1tmp.odf root@linux user/# sudo ls /home/joe Backup Desktop java.jar root@linux user/# exit user@linux ~/$
- 注意
- sudo和bash减少冗余输入量,首先成为 root。不是以这种方式使用的,因此在完成后必须exit
- 提示
- 返回我们自己的用户帐户。要成为 root,您还可以使用.
sudo -s
获取有关命令的帮助 - 手册页[edit | edit source]
WHO(1) User Commands WHO(1) NAME who - show who is logged on SYNOPSIS who [OPTION]... [ FILE | ARG1 ARG2 ] DESCRIPTION -a, --all same as -b -d --login -p -r -t -T -u -b, --boot time of last system boot -d, --dead print dead processes -H, --heading print line of column headings -i, --idle add idle time as HOURS:MINUTES, . or old (deprecated, use -u) -l, --login print system login processes --lookup attempt to canonicalize hostnames via DNS -m only hostname and user associated with stdin Manual page who(1) line 1
许多 shell 命令将接受各种选项。要获取有关命令的一些信息以及可用选项的列表,请使用 `man`(`manual` 的缩写)命令,并将您想要了解更多信息的命令名称作为其参数。在输入命令 `man who` 之后,将显示以下输出
大多数手册都包含几屏内容。使用箭头键或 Page Up/Page Down 键在文本中导航。空格键显示文本的下一行。按 `q` 键退出手册并返回 shell。
fred@3[fred]$ who -a Nov 14 13:47 10 id=si term=0 exit=0 system boot Nov 14 13:47 run-level 5 Nov 14 13:47 last=S Nov 14 13:47 835 id=l5 term=0 exit=0 LOGIN tty1 Nov 14 13:47 958 id=1 root - tty2 Nov 14 19:15 00:19 959 fred - tty3 Nov 14 19:28 00:06 960 LOGIN tty4 Nov 14 13:47 961 id=4 LOGIN tty5 Nov 14 13:47 962 id=5 LOGIN tty6 Nov 14 13:47 963 id=6 fred ? :0 Nov 14 13:47 ? 965 pts/3 Nov 14 16:29 1746 id=/3 term=0 exit=0 fred@3[fred]$
从手册页中我们可以看到,可以使用 `-a` 选项来显示有关当前活动用户会话的更多信息。man除了阅读程序的帮助文件外,
还可以用于获取有关 shell、函数和库的信息。
TODO:添加有关以下命令的部分(除了 clear)
查看文件- [edit | edit source]
另请参阅 有关文件查看的章节,该章节位于 Unix 命令指南 维基教科书中。在 Linux 上查看和编辑文件的方式有很多。本节仅介绍如何查看文件(不编辑)。为了简单地打印文本文件的内容,通常使用cat在 Linux 上查看和编辑文件的方式有很多。本节仅介绍如何查看文件(不编辑)。为了简单地打印文本文件的内容,通常使用程序。(名称
[user@localhost test]$ cat file1 this is the contents of the file named file1
是“concatenate”的缩写)。例如less这对于短文件来说效果很好,但如果文件比您的终端长,文件的开头将超出终端的顶部,您将无法阅读它。幸运的是,有一个名为less的程序可以帮助我们。运行程序使用命令less file1less将允许您使用向上和向下箭头键在文件的内容中上下滚动。要退出less,请按“Q”键。如果您想使用less或在 Linux 上查看和编辑文件的方式有很多。本节仅介绍如何查看文件(不编辑)。为了简单地打印文本文件的内容,通常使用在文件中搜索单词,请按“/”键,输入要搜索的单词,然后按“<ENTER>”键。然后,您可以按“N”键跳转到您搜索的单词的每次出现。有关的更多信息,请运行命令和man lessman cat
有些文件的名字很长,打字很麻烦。为此,标准的 Linux shell 提供了自动补全功能。尝试输入当前目录中文件名称的前几个字母,然后按 Tab 键。该名称将自动补全。如果有多个文件以这些字母开头,shell 只会部分补全名称,按两次 Tab 键将列出所有匹配的文件。如果列表很长,shell 将会要求确认。以下是一个例子
$ cd /usr/share $ cd gnome <-- Here, I hit Tab twice gnome/ gnome-mount/ gnome-2.0/ gnome-netstatus/ gnome-about/ gnome-nettool/ gnome-app-install/ gnome-panel/ gnome-applets/ gnome-photo-printer/ gnome-art/ gnome-pilot/ gnome-background-properties/ gnome-power-manager/ gnome-btdownload/ gnome-screensaver/ gnome-common/ gnome-screenshot/ gnome-compiz-manager/ gnome-sound-recorder/ gnome-control-center/ gnome-spell-1.0.7/ gnome-dictionary/ gnome-splashscreen-manager/ gnome-doc-utils/ gnome-sudoku/ gnome-games/ gnome-system-log/ gnome-games-common/ gnome-system-tools/ gnome-keyring-manager/ gnome-terminal/ gnome-mag/ gnome-utils/ gnome-media/ gnome-volume-manager/ gnome-menus/ gnome-vpn-properties/ $ cd gnome <-- My partially-typed command is not erased
shell 了解cd在自动补全此命令的参数时,将不会列出文件。