Guia Introdutório do Linux VI

Continuamos nossa série de artigos para iniciantes em Linux. Seguiremos com o uso de comandos. Desta vez veremos como conectar e expandir comandos, como enviar comandos para o background (também veremos o que é isso, se você ainda não souber) e como usar expressões aritméticas.

[ Hits: 49.996 ]

Por: Juliao Junior em 10/08/2007


Alterando seu shell



Podemos alterar a shell de modo que trabalhe para nós mais eficientemente. O prompt, por exemplo, pode dar informações importantes cada vez que teclamos ENTER. Para as alterações funcionarem todas as vezes que iniciamos a shell, vamos adicionar as informações para os arquivos de configuração da shell.

Muitos arquivos se referem ao comportamento da shell. Alguns destes são executados por todos os usuários e por todas as shells, enquanto outros são criados especificamente para determinado usuário.

Veja a seguir alguns itens para adicionar aos seus arquivos de configuração. Em vários casos iremos adicionar certos valores ao arquivo '.bashrc' em nosso diretório home. No entanto, se você é o administrador do sistema, pode querer alterar certos comportamentos para todos os usuários Linux.

Alterando o prompt

O prompt é um conjunto de caracteres que aparece todas as vezes que a shell está disponível para aceitar uma linha de comando. A variável de ambiente PS1 determina o que contém o prompt. Se a sua shell requerer entradas adicionais, usará os valores PS2, PS3 e PS4.

Podemos usar vários caracteres especiais para incluir diferentes informações no prompt. Veja alguns exemplos (se você estiver usando a shell bash, veja 'man bash').
  • \! Mostra o número do comando no histórico da shell
  • \$ Mostra o prompt de usuário ($) ou o prompt de root(#), dependendo do usuário atual
  • \w Mostra o caminho completo do diretório de trabalho atual.
  • \W Mostra APENAS o diretório de trabalho atual. Por exemplo, se você estiver no diretório /home/pedro/musicas, mostrará apenas 'musicas'
  • \d Mostra o dia da semana, o mês e o dia do mês. Por exemplo: Mon Fev 8.
  • \t Mostra a hora no formato 'hora:minuto:segundo'.
  • \u Mostra o username do usuário atual.

Para tornar as mudanças permanentes devemos adicionar o valor da variável PS1 ao arquivo '.bashrc' no nosso diretório home. Note que haverá um valor já estabelecido para a variável PS1, e você deve alterá-lo. Muitas outras alterações podem ser feitas. Para aprender mais sobre isso, veja o HOWTO em:

Criar variáveis

Podemos criar variáveis de ambiente para diminuir nosso trabalho. Escolha qualquer nome que não seja usado ainda como variável. Por exemplo, se você usa muito os arquivos no diretório /graduacao/exatas/arquivos/info/bio, poderia fazer:

$ B=/graduacao/exatas/arquivos/info/bio ; export B

Agora, para ir para o o diretório mencionado, basta digitar 'cd $B'. Para rodar um programa chamado 'resumo' neste diretório, basta digitar $B/resumo.

Nos próximos artigos de nossa série trataremos sobre o uso de variáveis de ambiente e do gerenciamento de processos em background.

Página anterior    

Páginas do artigo
   1. Conectando comandos
   2. Usando expressões aritméticas
   3. Alterando seu shell
Outros artigos deste autor

Programação: Uso de funções

Processing - Programação para dispositivos móveis

Usando variáveis de ambiente

Baixando ISOs-Linux em altíssima velocidade

APT - Fantástico gerenciador de pacotes

Leitura recomendada

Introdução ao Void Linux

Gerenciamento de pacotes Debian - principais comandos LPIC-1

Quer entrar no mundo de Tux ou está ajudando alguém a fazê-lo?

Guia introdutório do Linux IV

GNU/Linux - Benefícios na Área Administrativa

  
Comentários
[1] Comentário enviado por juninho (RH.com) em 10/08/2007 - 09:03h

Tenho acompanhado este seu trabalho de ajudar novos usuários, e tenho adorado, principalmente pela forma que explica, faz parecer mais simples ainda.

Continue escrevendo, está perfeito.

Parabéns.

[2] Comentário enviado por coffnix em 10/08/2007 - 10:35h

Parabéns pelos excelentes artigos! abração

[3] Comentário enviado por weslleyalves em 10/08/2007 - 19:28h

Parabéns, sempre que o curso aperta lah escola a gente recorre aos seus artigos. ;)

[4] Comentário enviado por fcamara em 02/06/2009 - 15:41h

Editor VI - Guia de Referência
Aurélio Marinho Jargas (http://aurelio.net)


Entrar e Sair

vi arquivo.txt <ENTER>
:q <ENTER>
Entrar, Inserir Texto, Salvar e Sair

vi arquivo.txt <ENTER>
i
Minha primeira frase no VI.
<ESC>
:wq <ENTER>
Entrar, Alterar Texto e Sair sem Salvar

vi arquivo.txt <ENTER>
dd
:q! <ENTER>
Entrar, Alterar Texto, Salvar em Outro Arquivo e Sair

vi arquivo.txt <ENTER>
yy
p
:w arquivo-novo.txt <ENTER>
:q <ENTER>
Configurar o VI

vi ~/.vimrc <ENTER>
i
set vb ru nu <ENTER>
set ic is hls scs
<ESC>
:wq <ENTER>
Repetir a Primeira Linha 2 Vezes e Apagar a Última

vi arquivo.txt <ENTER>
gg
yy
p
p
G
dd
Repetir Comandos

vi arquivo.txt <ENTER>
A
FIM
<ESC>
j
.
j
.
Abrir Dois Arquivos Simultaneamente

vi arquivo.txt <ENTER>
:split ~/.vimrc <ENTER>
Ctrl+W
Ctrl+W
:q <ENTER>
:q <ENTER>
Obter Ajuda

vi arquivo.txt <ENTER>
:help <ENTER>


Comandos de Arquivo
:q Sai do VI
:w Salva alteraçoes feitas
:wq Salva aterações e sai do VI
:q! Sai sem salvar
:w abc Grava arquivo com o nome 'abc'
:r abc Insere o conteúdo do arquivo 'abc'
:e abc Edita o arquivo 'abc'
Modo de Inserção
i Entra no modo de Inserção
a Entra no modo de Inserção, após o cursor
o Entra no modo de Inserção, em uma nova linha
<ESC> Sai do modo de Inserção
Copiar, Cortar e Colar
yy Copia a linha inteira
5yy Copia as 5 próximas linhas
dd Apaga a linha
5dd Apaga 5 linhas
x Apaga uma letra
5x Apaga 5 letras
p Cola o trecho copiado ou apagado
V Seleção visual de linhas
Pulos
gg Pula para a primeira linha
G Pula para a última linha
44G Pula para a linha número 44
w Pula para a próxima palavra
b Pula para a palavra anterior
{ Pula para o parágrafo anterior
} Pula para o próximo parágrafo
( Pula para a frase anterior
) Pula para a próxima frase
f. Pula até o próximo ponto (.), na mesma linha
`` Desfaz o pulo, volta
Apagando com esperteza
dgg Apaga até o início do arquivo
d0 Apaga até o início da linha atual
dw Apaga a palavra
d4b Apaga as quatro palavras anteriores
df. Apaga até o próximo ponto
d) Apaga até o fim da frase
Outros
J Junta a próxima linha com a atual
u Desfaz o último comando
Ctrl+R Refaz o último comando desfeito
. Repete o comando anterior
hjkl Movimenta o cursor
/ Pesquisa um texto
n Vai para o próximo resultado da pesquisa
:%s/a/b/g Troca 'a' por 'b' em todo o texto
:!cmd Executa o comando externo 'cmd'
:r!cmd Insere o resultado do comando externo 'cmd'





Mais informações em http://aurelio.net/doc/vim

[5] Comentário enviado por doradu em 03/02/2010 - 17:16h

lembrou-me os tempos do DOS

[6] Comentário enviado por anonimoculto em 03/06/2018 - 11:14h

Vale atenção ao shell que se usa.

No bash, o shell padrão na maioria das distribuições, as expressões matemáticas são calculadas com a forma usando parêntesis duplos: $((2018-1500)). Parêntesis simples são para agrupar comandos e executá-los em um subshell.

Logo, usando-se $(2007-1500) obter-se-á um erro, pois o sistema tentará passar ao comando echo a saída do comando "2007-1500" ; que não existe. O shell retornará: "2007-1500: command not found".

Assim, de forma correta no bash:

$((expressão))

echo "O Brasil foi descoberto há $((2007-1500)) anos."
echo "Nessa escola há $(ls | wc -w) alunos"

É possível utilizar:

$[expressão]

para se processar a operação matemática; mas isto equivale sintaticamente a dizer ao shell para executar o comando interno test ; que avalia operações e condições, e exibir o resultado desse teste. [ ] em bash é sinônimo para "test".

[ 20 -eq 10 ] significa testar se 20 é igual a 10; o que retorna falso (ou seja, 1 é armazenado na variável ?, que pode ser exibida com o comando: echo $? ).

Atenção para o espaço após a "[".

Há uma versão mais avançada de test, dele distinta, representada por parêntesis duplos, com recursos similares e com alguns recursos a mais que o test.

[[ 10 -lt 20 ]] testa se 10 é menor (less then) 20; com código de saída 0 (verdadeiro) neste caso: echo $? --> 0.
[[ "maria" < "lais" ]] testa para ordenamento alfabético; falso pois lais vem antes de maria alfabeticamente: echo $? --> 1.
[[ $maria < $lais ]] testa para ordenamento alfabético os conteúdos das variáveis maria e lais (e não maria e lais propriamente ditos).

mas $[[ 2007-1500 ]] não funciona como desejado, contudo:

" bash: [ 2007 - 1500 ]: syntax error: operand expected (error token is "[ 2007 - 1500 ]") "

O bash usa chaves simples para lidar com variáveis:

${maria} representa o conteúdo da variável "maria".
${maria[2]} representa o conteúdo da lista ordenada (array) "maria" com índice "2".
${maria[@]} o conteúdo de todo o array.

Atenção que, assim como os parêntesis, as chaves também agrupam comandos quando há um " ; " antes da chave de fechamento. Ha espaço entre { e os comandos.

if [[ 10 -lt 20 ]]; then { echo "10 é menor que 20"; echo "E aqui a listagem do diretório corrente $(PWD)"; ls -la ; } else echo "neste exemplo esta parte (else) não é executada"; fi

A saber no exemplo acima, diferente do encontrado em outras linguagens de programação, "if" não é capaz de realizar cálculos ou testes; simplesmente analisa o sucesso ou insucesso ($?) de um teste ou comando ( [[ ]] no caso ).

Maiores detalhes no manual do bash.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts