Como ter uma visão melhor ao digitar diretórios no terminal?

8

Atualmente estou usando um Mac e aprendendo a usar o terminal, mas a questão também se aplica aos sistemas Linux.

Eu gostaria de perguntar, ao digitar caminhos no terminal / linha de comando, existe uma maneira dentro do terminal para ter uma visão melhor dos diretórios?

Por exemplo, quero fazer um cd para um diretório específico. Uma vez que eu comecei a digitar o endereço, existe uma maneira de basicamente ls em cada diretório? Se, por exemplo, eu quiser copiar um arquivo de um diretório para outro e quiser digitar dois caminhos absolutos, preciso memorizar dois caminhos? Eu sei que pressionar Tab ajuda no preenchimento automático, mas e se eu não souber a primeira letra?

Agora eu confio em usar o Finder para isso, mas imagino que as pessoas que usam o terminal têm um jeito melhor.

Obrigado!

    
por user1367903 07.06.2015 / 17:41

3 respostas

9

Tab é precisamente o que você precisa. Se você clicar duas vezes em guia , ele mostrará todas as conclusões possíveis:

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

Você não precisa saber a primeira letra, a segunda aba mostrará tudo.

    
por 07.06.2015 / 18:02
5

Algumas palavras mais sobre o Tab

Tab é ótimo para completar um comando escrito parcial (ou uma opção) entre os disponíveis como apenas sublinhado por Terdon em outra resposta .

Para completar um comando é suficiente para pressionar Tab uma vez. Para ter a lista completa, pressione Tab novamente.
Além disso, você pode gostar de customizar o comportamento da Tab . Tente por exemplo aquelas 2 linhas:

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

O primeiro Tab mostra todas as possibilidades e o autocomplete do comando com o primeiro disponível, a partir da segunda vez que você pressionar Tab , ele começará a alternar entre elas. / p>

Notas:

Você pode escrever seus próprios scripts de conclusão do bash , com opções de regras ...
Há mais do que algumas dicas no artigo Uma introdução à conclusão do bash : a 1ª parte é para as bases e a segunda para escrever o seu próprio script.

Você pode encontrar bind complete e as referências abaixo.

2ª resposta: caminhos e atalhos absolutos

Nem sempre é obrigatório escrever o caminho absoluto (completo) em cada comando, mesmo que seja uma boa prática quando você escreve um script e deseja evitar o risco de exploração como cavalos de Tróia .

Existem alguns atalhos para ir mais rápido como, por exemplo, Tab , Alt + . , . , ~ e todas as variáveis definidas no shell atual.

Abaixo, alguns exemplos (. significa aqui e ~ significa home ):

Para copiar um arquivo para o diretório atual é suficiente para escrever cp /my/far/far/away/myfile .
Para copiar do diretório home um arquivo para o diretório atual, você pode escrever cp ~/myfile .
Para copiar um arquivo do diretório atual para o último cp myfile $OLDPWD
Alt + . escreve o último argumento do último comando armazenado no histórico. Se for pressionado novamente, substituirá o que acabou de encontrar com o da posição anterior no histórico do bash. Com um exemplo é mais simples:

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

Referências:

  • Uma introdução à conclusão do bash : parte 1 e parte 2
  • help bind , sim ajuda porque bind é um comando interno
  • help complete e complete -p | less para ter uma lista em um formato aconchegante.
  • help pushd e help popd para empurrar e estourar um diretório da pilha.
  • Construções de conclusão programáveis
por 08.06.2015 / 20:56
1

E dê uma olhada em Midnight Commander - um gerenciador de arquivos em modo texto que é realmente ótimo. Você pode navegar em dois painéis, uma vez que um arquivo localizado em um simples F5 o copia. F6 move-o ... Eu uso muito os terminais, se não a maior parte do tempo, mas não consegui viver sem mc (o nome normal do pacote).

    
por 08.06.2015 / 06:06