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

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

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

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

例如,我想 cd 到特定目录。一旦我开始输入地址,有没有办法基本上在每个目录中 ls ?例如,如果我想将文件从一个目录复制到另一个目录,并想输入 2 个绝对路径,我需要记住 2 个路径吗?我知道按 Tab 有助于自动完成,但如果我不知道首字母怎么办?

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

谢谢 !

答案1

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

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

您不需要知道第一个字母,第二个字母tab会告诉您一切。

答案2

关于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+..~

下面是一些例子(.意味着这里~手段):

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

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从堆栈中推送和弹出目录。
  • 可编程完成内置函数

答案3

再看看Midnight Commander- 一个非常棒的文本模式文件管理器。您可以在两个面板中导航,找到文件后,只需按 F5 即可复制。按 F6 可移动它...我经常使用终端,即使不是大多数时间,但我不能没有终端mc(软件包的正常名称)。

相关内容