Как получить лучшее представление при наборе каталогов в терминале?

8

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

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

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

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

Спасибо !

user1367903
источник

Ответы:

9

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

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

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

terdon
источник
<kbd> Tab </ kbd> применяется также к командной строке Windows.
Hind-D
И bash / zsh минимум на linux
linuxdev2013
5

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

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

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

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

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

Ноты:

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

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

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

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

Есть некоторые ярлыки идти быстрее , так как, например, Tab, , , и через все переменные , определенные в текущей оболочке. 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"

Ссылки:

Hastur
источник
2

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

jcoppens
источник