Jak uzyskać lepszy widok podczas wpisywania katalogów w terminalu?

8

Obecnie używam komputera Mac i uczę się korzystać z terminalu, ale pytanie dotyczy także systemów Linux.

Chciałbym zapytać, czy wpisując ścieżki w terminalu / wierszu poleceń, istnieje sposób, aby terminal miał lepszy widok na katalogi?

Na przykład chcę cd do konkretnego katalogu. Kiedy zacznę wpisywać adres, czy istnieje sposób na ls w każdym katalogu? Jeśli na przykład chcę skopiować plik z jednego katalogu do innego i chcę wpisać 2 ścieżki bezwzględne, czy muszę zapamiętać 2 ścieżki? Wiem, że naciśnięcie Tab pomaga w autouzupełnianiu, ale co jeśli nie znam pierwszej litery?

W tej chwili polegam na używaniu Findera, ale wyobrażam sobie, że ludzie korzystający z terminala mają lepszy sposób.

Dzięki !

użytkownik1367903
źródło

Odpowiedzi:

9

Tabjest dokładnie tym, czego potrzebujesz. Jeśli trafisz tabdwa razy, pokaże to wszystkie możliwe uzupełnienia:

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

Nie musisz znać pierwszej litery, druga tabpokaże ci wszystko.

terdon
źródło
<kbd> Tab </kbd> dotyczy również wiersza poleceń systemu Windows.
Hind-D
I bash / zsh a najmniej na linux
linuxdev2013
5

Kilka słów o Tab

Tabdobrze jest wypełnić częściowe polecenie pisemne (lub opcję) spośród dostępnych, co podkreślił Terdon w innej odpowiedzi .

Aby wykonać polecenie wystarczy nacisnąćTab raz. Aby mieć pełną listę naciśnijTab ponownie.
Ponadto możesz chcieć dostosować zachowanieTab . Wypróbuj na przykład te dwie linie:

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

Pierwszy Tabpokazuje wszystkie możliwości i autouzupełnia polecenie przy pierwszym dostępnym, od drugiego naciśnięcia Tab zacznie się cyklicznie między nimi.

Uwagi:

Możesz napisać własne skrypty do ukończenia basha , z opcjami reguł ...
W artykule jest więcej niż kilka wskazówek Wprowadzenie do ukończenia basha : pierwsza część dotyczy baz, a druga pisania własnego skryptu.

Możesz znaleźć interesujące bind completei poniżej odnośniki.

Druga odpowiedź: Bezwzględne ścieżki i skróty

Nie zawsze obowiązkowe jest zapisanie bezwzględnej ścieżki (pełnej) w każdym poleceniu, nawet jeśli jest to dobra praktyka podczas pisania skryptu i chcesz uniknąć ryzyka wykorzystania jako koni trojańskich .

Istnieje kilka skrótów jechać szybciej, jak na przykład Tab, , , a a wszystkie zmienne zdefiniowane w bieżącej powłoki. Alt+..~

Poniżej kilka przykładów ( .oznacza tutaj i ~oznacza dom ):

Aby skopiować plik do bieżącego katalogu wystarczy napisać Aby skopiować z katalogu plik do obecnego katalogu, który można napisać Aby skopiować plik z katalogu bieżącego do ostatniego, zapisuje ostatni argument ostatniego polecenia zapisanego w historii . Ponowne naciśnięcie spowoduje zastąpienie nowo znalezionego jednym z poprzednich pozycji w historii basha. Przykład jest prostszy: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"

Referencje:

  • Wprowadzenie do uzupełnienia basha : część 1 i część 2
  • help bind, tak, pomoc, ponieważ bindjest to wbudowane polecenie
  • help completei complete -p | lessmieć listę w przytulnym formacie.
  • help pushdi help popdpopychać i popychać katalog ze stosu.
  • Programowalne wbudowane uzupełnienia
Hastur
źródło
2

I spójrz na Midnight Commander- menedżera plików w trybie tekstowym, który jest naprawdę świetny. Możesz nawigować w dwóch panelach, gdy plik znajdujący się w prostym F5 go kopiuje. F6 porusza się ... Używam terminali bardzo często, jeśli nie przez większość czasu, ale nie mogłem żyć bez mcnormalnej nazwy pakietu.

jcoppens
źródło