Aliases

Usando o terminal no Linux pode ser mais rápido e mais produtivo do que usar uma interface gráfica, especialmente com operações repetidas. Para tirar o máximo proveito disso, ajuda a conhecer alguns dos segredos da concha.

Você costuma se encontrar digitando as mesmas opções de comando várias vezes? Você às vezes tem dificuldade em lembrar as opções corretas? Você é simplesmente preguiçoso e quer evitar a digitação sempre que possível? Se você respondeu sim a qualquer um desses, os aliases são para você.

Você já tem alguns aliases de shell configurados. Para listá-los, digite:

alias

que retornará entradas como esta (do Ubuntu):

alias ll = "ls -alF"
alias ls = "ls --color = auto"

O primeiro desses exemplos é simples - se você digitar ll, corre ls -A. O segundo é mais inteligente, já que o alias é o mesmo que o nome do comando, então o comportamento antigo do ls desaparece e é sempre executado com o nome do comando. --color = auto opção.

Se você se encontrar sempre usando certas opções com comandos específicos, aliases como esse efetivamente tornam essas opções os padrões.

O alias é expandido antes que o restante da linha de comando seja interpretado, portanto:

ll X Y Z

torna-se

ls -alF X Y Z

Esses aliases nem sempre são fáceis de lembrar, mas não temam - você pode criar seus próprios aliases usando exatamente a mesma sintaxe da saída do comando alias:

alias myalias = "somecommand --option1 --option2"

Aliasing um comando para o seu próprio nome é um truque legal, mas e se você precisar usar o comando original? Não se preocupe - os desenvolvedores pensaram nisso. Prefixe o comando com uma barra invertida e seu alias será ignorado:

\ ls Documentos

Anterior Página 1 de 6 Próxima Anterior Página 1 de 6 Próxima

Perfis

Você pode personalizar sua experiência de terminal com aliases e prompts personalizados, mas para torná-los ainda mais convenientes, você precisa aplicá-los automaticamente ao abrir um terminal..

Isso pode ser feito através de seu perfil, que é um arquivo contendo comandos que são lidos e executados sempre que você abre uma sessão de shell..

Existem vários locais que são lidos, o primeiro dos quais é / etc / profile, que contém configurações de perfil global. Isso, por sua vez, executa todos os arquivos /etc/profile.d, o que facilita a adição de configurações globais sem tocar no perfil padrão.

Em seguida, o perfil do usuário é lido de um dos /.bash_profile, /.bash_login e /.perfil. Somente o primeiro desses arquivos que existe é executado, e quaisquer configurações aqui substituem as do perfil global se a mesma coisa estiver definida em ambos.

O perfil é simplesmente um conjunto de comandos shell, um por linha, que são executados quando o shell é inicializado. Eles podem configurar aliases, variáveis ​​de ambiente ou definir o prompt de comando. Um uso típico de variáveis ​​de ambiente seria alterar o editor de texto padrão para nano:

EDITOR = / usr / bin / nano

Anterior Página 2 de 6 Próxima Anterior Página 2 de 6 Próxima

Conclusão da palavra

Se você não é um datilógrafo de toque particularmente confiante, em breve você se cansará de digitar nomes de comandos e arquivos na íntegra, depois lidará com as mensagens de erro resultantes de erros ortográficos. Felizmente, o shell fornece uma maneira de salvar a digitação e evitar erros chamados conclusão de tabulação..

O nome é bastante auto-explicativo - ele usa a tecla Tab para completar a palavra que você está digitando. Se esta for a primeira palavra em uma linha, será um comando, por isso procura no caminho do comando por correspondências, por exemplo, digitando chm e bater Tab vai completar para chmod.

Usado após o comando, a guia conclui os nomes dos arquivos, em vez de digitar:

gato / caminho / diretório de domelong / domo de longevento

você pode usar:

cat / pa [pressione TAB] som [pressione TAB] som [pressione TAB]

Não é mais fácil? Quando mais de um arquivo corresponde, a tecla Tab será concluída até o ponto em que se torna ambíguo; Pressionar Tab novamente neste ponto mostra uma lista de opções, que você pode percorrer com Tab, ou adicionar outra ou duas letras e pressionar Tab novamente. Na verdade, é muito mais fácil de usar do que descrever - apenas tente.

Anterior Página 3 de 6 Próxima Anterior Página 3 de 6 Próxima

Curingas

Há momentos em que você deseja incluir mais de um arquivo em um comando, mas não quer digitá-los todos. O shell do Linux tem alguns operadores "curinga" para ajudar nisso. O mais usado é a estrela, que é usada como um substituto para qualquer sequência de caracteres.

assim * por conta própria corresponderá a todos os arquivos no diretório atual (que é diferente dos shells do MS-DOS onde * não corresponde . e você precisa usar * * para corresponder a qualquer arquivo com uma extensão).

Você também pode usar * para corresponder a uma parte de um nome de arquivo: *.TXT corresponde a todos os arquivos que terminam com .txt e um * .txt corresponde apenas àqueles que também começam com um.

Essa correspondência é executada pelo shell. Ele expande as correspondências para uma lista de arquivos antes de passá-las para o comando, que nunca vê o curinga ou sabe que você usou um.

Isso pode ser uma distinção importante, especialmente se você quiser passar * para o programa que você está executando. Por exemplo, digamos que você esteja usando scp para copiar arquivos de um computador remoto e execute o seguinte:

scp user @ othercomputer: Documentos / *. txt Documentos /

Você pode esperar que isso copie todos os arquivos .txt do diretório Documentos do outro computador para o mesmo aqui, mas não. O shell expande o *.TXT para corresponder todos os arquivos .txt no sistema local, para copiar apenas os arquivos que você já possui.

Nesse caso, você precisa dizer ao shell para não expandir o * precedendo-o por uma barra invertida, conhecida como escape:

scp user @ othercomputer: Documentos / \ *. txt Documentos /

Agora passa Documentos / * .txt inalterado para o computador remoto e deixa seu shell lidar com a expansão.

Há um segundo caractere curinga também. Enquanto * corresponde a qualquer número de caracteres, incluindo nenhum, ? corresponde exatamente a um. assim ab? .txt corresponde a abc.txt e ab1.txt, mas não ab.txt ou abcd.txt, enquanto ab * .txt corresponderia a todos eles.

Anterior Página 4 de 6 Próxima Anterior Página 4 de 6 Próxima

Substituição de comando

Existe um recurso poderoso em shells chamado substituição de comando. Isso permite que você incorpore a saída de um comando em outro.

Como um exemplo simples, digamos que existe um comando chamado foo no seu sistema e digamos que você queira saber que tipo de programa é: compilado, Python ou até mesmo um shell script. o qual comando lhe dá o caminho para um programa, e Arquivo relata o tipo de um arquivo. Você poderia usar:

qual foo

para obter / usr / local / bin / foo e depois

arquivo / usr / local / bin / foo

para obter o tipo de arquivo, mas mesmo com copiar e colar, isso é muito trabalhoso e fácil de digitar. Alternativamente, você poderia fazer:

arquivo $ (que foo)
/ usr / local / bin / foo: um script / usr / bin / perl, executável de texto ASCII

O que acontece é que o shell roda o que está dentro $ (...) e substitui a saída daquela na linha de comando antes de executá-lo. Você também pode usar backticks para isso:

arquivo 'which foo'

Isso é mais rápido de digitar, mas menos legível, especialmente quando postado em um fórum onde a fonte do leitor pode fazer ' e ' parece similar. Com o primeiro formato não existe tal confusão.

Anterior Página 5 de 6 Próxima Anterior Página 5 de 6 Próxima

Time-savers terminais: repita

Uma das grandes vantagens do shell é que é simples repetir comandos, não importa o quão complexo, com alguns pressionamentos de tecla. Na sua forma mais simples, você pode pressionar a tecla para cima para mostrar os comandos anteriores, em seguida, pressione Enter para executar o seu escolhido novamente.

Você também pode editar o comando antes de executá-lo, se quiser. Tudo bem se você quiser usar um dos últimos comandos que você executou, mas a maioria dos shells mantém um histórico dos últimos 500 ou mais comandos que você pode acessar novamente.

Para evitar o desgaste da tecla de seta para cima do teclado (e dos olhos), pressione Ctrl-R e digite uma parte do comando. O terminal mostrará o comando mais recente que corresponde ao que você está digitando, atualizando com cada tecla pressionada..

Se você executou vários comandos muito semelhantes, não precisa continuar digitando - basta digitar alguns caracteres e pressionar Ctrl-R novamente para ver a correspondência anterior. Continue até encontrar o que você quer. (Não se assuste - essa é uma daquelas coisas que demora muito mais para descrever do que para realmente fazer.)

Você pode editar o comando antes de executá-lo. O termo de pesquisa que você digita não precisa ser o comando em si - qualquer parte da linha de comando corresponderá, então você pode começar com o nome do arquivo.

Você também pode acessar comandos dentro do histórico diretamente. o ! personagem diz ao shell que você está se referindo a sua história. !! é um atalho para o comando anterior enquanto !-n significa 'executar o comando run n comandos atrás '(assim !! é o mesmo que !-1). !xyz executa o último comando começando com xyz e !?xyz faz o mesmo para o último comando contendo xyz (da mesma forma que o Ctrl-R).

  • Este artigo foi fornecido à TechRadar pelo Linux Format, e cada edição da revista está repleta de análises de notícias, recursos detalhados sobre tópicos vitais do Linux, guias de codificação, projetos Raspberry Pi e Maker, e muito mais. Assine a versão impressa ou digital do formato Linux Aqui
Anterior Página 6 de 6 Próxima Anterior Página 6 de 6 Próxima
Ações