在终端中输入目录时如何获得更好的视图?


8

我目前正在使用Mac,正在学习使用终端,但该问题也适用于Linux系统。

我想问一下,在终端/命令行中键入路径时,终端内是否有办法更好地查看目录?

例如,我要CD到特定目录。一旦我开始输入地址,基本上就可以在每个目录中找到ls吗?例如,如果我要将文件从一个目录复制到另一个目录并想要键入2个绝对路径,我是否需要记住2个路径?我知道按Tab键可以自动完成,但是如果我不知道第一个字母怎么办?

现在,我依靠使用Finder来实现,但是我想象专门使用终端的人会有更好的方法。

谢谢 !

Answers:


9

Tab正是您需要的。如果您按下tab两次,它将显示所有可能的完成:

$ cd /usr/  ## Hit tab twice here
bin/     include/ lib64/   sbin/    src/     
games/   lib/     local/   share/   var/     

您不需要知道第一个字母,第二个字母tab会显示所有内容。


<kbd> Tab </ kbd>也适用于Windows命令行。
Hind-D

在Linux上至少要使用bash / zsh
linuxdev2013

5

关于更多的话 Tab

Tab很好地完成了可用的命令中的部分书面命令(或选项),正如Terdon 在另一个答案中强调的那样。

要完成一个命令,只需Tab一次即可。要获得完整列表,请再次Tab
此外,您可能想自定义的行为Tab。例如,尝试以下两行:

bind "TAB:menu-complete"
bind "set show-all-if-ambiguous on"

第一个Tab向您展示所有可能性,并使用第一个可用的可能性自动完成命令,从第二次按下Tab 时开始在其中循环。

笔记:

您可以编写自己的带有规则选项的bash完成脚本 ...
本文介绍了bash完成的更多提示:第一部分是基础,第二部分是编写您自己的脚本。

您可能会bind complete在下面找到有趣的参考资料。

第二个答案:绝对路径和快捷方式

即使在编写脚本并且您想避免被特洛伊木马利用的风险时,这是一种好习惯,但并非总是必须在每个命令中都写出绝对路径(完整)。

有一些快捷方式去得更快,例如Tab,,,和在当前shell中定义的所有变量。 Alt+..~

这里下面一些例子(.这里~手段):

将文件复制到当前目录足以写入 将文件从目录复制到当前目录,您可以写入 将文件从当前目录复制到最后一个目录将写入历史记录中存储的最后一个命令的最后一个参数。如果再次按下,它将用bash历史记录中的上一个位置替换刚刚找到的位置。用一个例子更简单:cp /my/far/far/away/myfile .
homecp ~/myfile .
cp myfile $OLDPWD
Alt+.

mkdir OldDir
mkdir NewDir
cd # here press `Alt + .` and it will autocomplete with NewDir
   # press `Alt + .` again and you will see "cd OldDir"

参考文献:

  • bash完成简介第1 部分第2部分
  • help bind,可以帮助,因为bind它是内置命令
  • help completecomplete -p | less以舒适的格式列出清单。
  • help pushdhelp popd从堆栈中推送并弹出目录。
  • 可编程完成内置函数

2

看看Midnight Commander-文本模式文件管理器,它真的很棒。一旦位于简单F5的文件复制了文件,您就可以在两个面板中导航。F6移动它...我经常使用终端,即使不是在大多数时候,但是我也离不开它mc(包的正常名称)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.