Tenho a ligeira impressão que a cada dia, o tempo passa mais e mais rápido! Será só impressão? Tendo isso em vista é correto afirmar que ao lidar com uma tarefa devo proceder de tal que me permita executá-la no menor espaço de tempo possível. Para me ajudar com isso, irei convidar o meu amigo “alias” a participar deste tutorial.
No ambiente Linux temos um arquivo chamado .bashrc que possui basicamente as mesmas características do “Ganhando agilidade no terminal Linux”, para simplificar digamos que o “Ganhando agilidade no terminal Linux” é executado no momento em que o usuário inicia um shell, isso abre muitas possibilidades, como por exemplo, me permite inserir um código/script ao final do arquivo, este será executado “durante o boot” pois neste momento um shell é iniciado. Este arquivo pode ser encontrado dentro do diretório home do seu usuário.
No meu caso ele se encontra em “/home/fabio/.bashrc“, irei utilizar o editor de texto nano para poder fazer algumas modificações neste arquivo. Fique a vontade para utilizar o editor que melhor te agradar:
$ nano /home/fabio/.bashrc
Note que este arquivo possui um ponto (.) antes do nome, isso significa que ele é um arquivo oculto. Neste arquivos temos a opção de modificar diversas opções como por exemplo (HISTSIZE) que é responsável por armazenar o histórico de comandos digitados no terminal. Mas isso é história para outro tutorial, agora iremos focar no meu amigo de longa data, o “alias“.
Aquecendo
No final do arquivo .bashrc, presente no seu diretório “/home/seu_usuario” adicione em uma nova linha o seguinte código:
alias ls=’ls -ltr’
Salve a modificação e feche o arquivo. Ressalto que não é necessário reiniciar a máquina para poder testar a nova configuração. Basta digitar o seguinte comando no terminal:
$ source .bashrc
Observe que não precisei de privilégios de root que é indicado pelo símbolo (#). Agora digite:
$ ls
Notou alguma diferença? Sim, o “ls” esta se comportando diferente! É como se eu tivesse digitado “ls -ltr“. Na verdade para o sistema você digitou “ls -ltr“, digamos que o “alias” esta traduzindo sua entrada de “ls” para “ls -ltr“.
Nossa, isso parece ser algo interessante. Eu poderia por exemplo “criar um comando”? Sim, você poderia muito bem fazer isso. Vamos a um exemplo prático, para isso edite o arquivo e adicione a seguinte linha:
alias fabio=’ls’
Salve e execute o comando:
$ source .bashrc
Agora digite no terminal o seu novo comando “fabio” (sem aspas). Todos nós sabemos que não existe esse comando no Linux, mas ele esta aplicando um ls graças ao “alias“.
Brincando com o .bashrc
Abra o terminal e digite:
$ date
Note que a saída de dados referente a data é algo parecido com isso (Seg Mai 14 23:37:39 BRT 2012), leve em conta que no seu sistema essa saída pode ser um pouco diferente.
Edite o arquivo “/home/seu_usuario/.bashrc” e adicione a seguinte linha:
alias date=’date +”%H:%M, %d-%m-%Y”‘
Salve o arquivo e digite o comando:
$ source .bashrc
Agora utilize o:
$ date
Note que sua saída se modificou para (23:39, 14-05-12).
Agora a brincadeira fica mais interessante
Vamos personalizar um pouco mais o terminal. Edite o arquivo “/home/seu_usuario/.bashrc” e adicione esta linha ao final deste:
PS1=”\[\033[0;30;32m\]\u:\w\\$\[\\033[33m\] “
Entendendo essa bagunça:
O que significa PS1?
Resp: PS1 significa primeiro prompt.
E esse monte de barra, números e letras?
Resp: Ai é onde acontece a grande mágica da “parada”:
“ = Está aspa inicia uma string;
\[\033[0;30;32m\] = Este primeiro código define a cor do usuário atual, dos “dois pontos” e do dolar ($), como verde. \[\033[ este valor é obrigatório;
[0;40;23m\] = 0 para normal e 1 para negrito. 40 cor de fundo e 23m cor da fonte;
\u: = Mostra usuário atual e “dois pontos”;
\w = Mostra o caminho até o diretório atual;
\\$ = Mostra o símbolo para usuário comum ou super-usuário;
\[\\033[33m\] = este 33m define a cor do texto que digitamos;
“ = fecha a string.
Salve o arquivo e execute “source .bashrc” para que as modificações tenham efeito.
Fazendo a mesma coisa de outra forma:
Verde=”\[\033[32m\]”
Amarelo=”\[\033[33m\]”
PS1=”$Verde\u:\w\\$\[$Amarelo “
Este código tem o mesmo efeito do anterior, após digitá-lo será preciso salvar o arquivo e executar o comando “source .bashrc” para colocar as modificações em vigor. Eu pessoalmente acho bem mais elegante utilizar esse modelo logo acima.
Entendendo o código:
Verde = Está é a variável responsável por armazenar “\[\033[32m\]”;
Amarelo = Está é a variável responsável por armazenar “\[\033[33m\]”;
PS1=”$Verde\u:\w\\$\[$Amarelo “ = Aqui a variável PS1 (“1º prompt”) pega os valores passados pelas variáveis $Verde e $Amarelo. Os outros parâmetros também são recolhidos pela variável PS1. O grande “lance” de se utilizar variável é que você não precisa digitar todos os valores novamente, basta chamar a variável que possui estes valores. Note que antes das últimas aspas existe um espaço.
Se você é uma pessoa simples e não gosta de muitos “flufluflu”, então aqui vai uma boa sugestão:
PS1=”\u:\w\\$ “
Entendendo o código:
PS1 = Não vou repetir a explicação de novo, isso já foi tratado anteriormente;
“\u:\w\\$ “ = Exibe usuário atual (dois pontos), caminho do diretório atual e # para usuário root ou $ para usuário comum.
Lista de parâmetros:
\d A data atual no formato “Dia_da_semana Mês Dia”
\h Nome da máquina até o primeiro . (ponto)
\n Nova linha
\s Nome do shell
\t A hora atual no formato de 24 horas hh:mm:ss
\u O nome do usuário atual
\w Caminho completo do diretório de trabalho atual
\W Nome do diretório atual
\! O número do comando no histórico
\# O número do comando na sessão atual do shell
\$ Caractere que diferencia um usuário comum do super-usuário
\\ Uma barra
\[ Inicia uma seqüencia de caracteres que não serão impressos na tela para
poder incluir uma sequência de controle do terminal
\] Fim da seqüencia de caracteres que não serão impressos
Cores de caracteres/plano de fundo
Preto 30 / 40
Vermelho 31 / 41
Verde 32 / 42
Amarelo 33 / 43
Azul 34 / 44
Roxo 35 / 45
Ciano 36 / 46
Cinza 37 / 47
Estilo dos Caracteres
Normal 0
Bold 1
Exemplo de como criar variáveis de cores:
Vermelho=”\[\\033[31m\]”
Verde=”\[\\033[32m\]”
Amarelo=”\[\\033[33m\]”
Ciano=”\[\\033[36m\]”
Branco=”\[\\033[37m\]”
Normal=”\[\\033[0m\]”
Estas modificações só terão efeitos para o usuário logado no momento, neste caso o usuário root. Caso queira que outros usuários disponham da mesma modificação terá que refazer o processo acima logado com o usuário em questão.
Outras possibilidades:
PS1=”\t|\u\w:\\$ ” = exibe a data, uma barra (|) e o nome do usuário com (dois pontos);
PS1=”\[\\033[32m\]\t|\u\w:\\$\[\\033[37m\] “ = faz a mesma coisa que o comando anterior mas a diferença é que agora a hora fica na cor verde e o que digitamos fica na cor cinza (pra mim é branco mas a máquina fala que é cinza, então não vamos discutir);
Se você trocar o \t por um \d verá no lugar da hora a data no formato (dia por extenso, mês abreviado, dia em formato numérico).
PS1=”\[\\033[32m\]\t|\[\\033[31m\]\u\w:\\$\[\\033[37m\] “ = este código define a data de uma cor, o usuário de outro e o texto digitado por você de outra cor.
Obs: Note que ao final de alguns comandos como por exemplo (PS1=”\t|\u\w:\\$ “) existe um pequeno espaço em branco entre o ultimo carácter e as (“), isso é para que no terminal os comandos digitados pro você, não fiquem grudados na linha padrão de apresentação.
Espero que tenha gostado da dica. :)