8

В настоящее время я использую Mac и учусь пользоваться терминалом, но этот вопрос относится и к системам Linux.

Я хотел бы спросить, при вводе путей в терминале / командной строке, есть ли способ в терминале иметь лучшее представление о каталогах?

Например, я хочу перейти в определенный каталог. Как только я начну вводить адрес, есть ли способ в основном использовать ls в каждом каталоге? Например, если я хочу скопировать файл из одного каталога в другой и ввести 2 абсолютных пути, нужно ли запомнить 2 пути? Я знаю, что нажатие клавиши Tab помогает при автозаполнении, но что, если я не знаю первую букву?

Прямо сейчас я полагаюсь на использование Finder для этого, но я представляю, что люди, которые используют терминал исключительно, имеют лучший способ.

Спасибо !

3 ответа3

9

Вкладка именно то, что вам нужно. Если вы дважды нажмете на Tab , он покажет вам все возможные дополнения:

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

Вам не нужно знать первую букву, вторая вкладка покажет вам все.

5

Несколько слов о Tab

Вкладка отлично подходит для выполнения частичной письменной команды (или опции) среди доступных, как только что подчеркнул Тердон в другом ответе.

Для завершения команды достаточно нажать Tab один раз. Чтобы получить полный список, нажмите Tab еще раз.
Кроме того, вы можете настроить поведение Tab. Попробуйте, например, эти 2 строки:

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

Первая вкладка показывает все возможности и выполняет автозаполнение команды с первой доступной, со второго нажатия клавиши Tab она начнет циклически переключаться между ними.

Заметки:

Вы можете написать свои собственные сценарии завершения bash с параметрами правил ...
В статье есть более чем несколько подсказок. Введение в завершение bash: первая часть посвящена основам, а вторая - написанию собственного сценария.

Вы можете найти интересную bind complete и ссылку здесь ниже.

2-й ответ: Абсолютные пути и ярлыки

Не всегда обязательно указывать абсолютный путь (полный) в каждой команде, даже если это хорошая практика, когда вы пишете скрипт и хотите избежать риска использования в качестве троянских коней.

Есть несколько быстрых клавиш , например Tab , 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"

Рекомендации:

1

И взгляните на Midnight Commander - файловый менеджер в текстовом режиме, который действительно хорош. Вы можете перемещаться по двум панелям, как только файл, расположенный простым F5, копирует его. F6 двигает это ... Я часто использую терминалы, если не большую часть времени, но я не могу жить без mc (обычное название пакета).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .