Retorna para a página principal urs.bira

Comandos do Unix / Linux

urs.bira@uol.com.br

Imprimir esta página Home page de Ubiratan Voltar à página anterior

Índice de comandos do Linux / Unix

comandos apropos awk basename bc cat cd chmod cp cpio cron csplit
cu cut date du df dialog diff do echo ed el
eval exit export expr fgrep find fmt fold for foreach ftp grep
gzip head history if join less let ln login logout lp ls
mail makewhatis man mkdir more mounted mv m4 paste perl pr printf
prompt ps pwd random read repeat rev rgrep rlogin rm rmdir scale
scp sed send set setenv setterm shift shred sort split ssh stop
stty switch tac tail tar telnet test time tput top tr trap
ulimit umask unalias uniq unlimit unset unsetenv until uucp uupick uustat uuto
uux vi vim wait wc whatis which while xargs
Distruibuíções Linux e sites especiais Funções do tput
Índice de alguns comandos do UNIX/LINUX Comandos embutidos do Shell
Variáveis do Shell Manipulando variáveis
Operadores de Teste Comuns Comparações Numericas
Redirecionamento de Entrada e Saida Alguns comandos do editor VI
Configuração do VI Situações com o VIM
Edição múltiplas com o VI/VIM VI/VIM para examinar diferenças

Algumas distribuições Linux e sites especiais

www.linux.org www.redhat.com www.knoppix.org Roda direto do CD
www.mandrakelinux.com/pt-PT www.suse.com Versão que roda direto do CD http://www.suse.de www.slackware-brasil.com.br
http://www.debian.org.br www.guiadohardware.net/gdhpress/kurumin www.kalangolinux.org
www.cipsga.org.br br-linux.org www.vivaolinux.com.br
www.guiafoca.org Guias on-line: Iniciante, Intermediário, Inic e Interm., Avançado
aurelio.net Tudo sobre shell, sed e vi; canivete

Lista de alguns comandos do UNIX / Linux

Comandos embutidos do Shell
Shell Bourne/Korn Shel C Descrição
: : - comando nulo
alias
- cria um apelido de nome de comando
(alias dir `ls -l`)
bg - roda o comando corrente no segundo plano
break
break
- sai do laço for ou while
breaksw
- sai de um switch
cd - muda de diretório
continue
- continua interação do laço for ou while
default
- caso default em switch
dirs
- imprime pilha de diretório
echo
- escreve argumentos em stdout
-n não gera avanço de linha
E podemos utilizar as seguintes sequências
de escape
\\b retrocesso ( equivale a CTRL H )
\\f alimentação de pagina ( equivale a CTRL L )
\\n avanco de linha ( equivale a CTRL J )
\\r carriae return ( equivale a CTRL R )
\\t tab ( equivale a CTRL I )
\\\ barra invertida ( equivale a \ )
\\xxx valor octal -> ascii
\\c não termina com o alimentador de linha
\\N Null Character +
\\d Delay 2 seconds |Estes não são do Shell C
\\s space Character +
eval
- avalia e executa argumentos
#Para forçar a execução de uma variável utiliza-se
eval
set v_ler = "cat bira.txt"
eval v_ler (O shell retornara o resultado de cat bira.txt)
Se o conteúdo de bira.txt for:
#-----------------------------------------
# Observe que as linhas terminam com ponto e vírgula
date ;
echo -n "Digite valor: " ;
read u ;
echo "Valor digitado foi $u"
#-----------------------------------------
eval "cat bira.txt" mostrará o conteúdo do arquivo
v_ler="cat bira.txt" ; eval $v_ler mostrará o conteúdo do arquivo
v_ler="cat bira.txt" ; $v_ler também mostrará o conteúdo do arquivo
eval `cat bira.txt` executará os comandos contidos no arquivo (no final de cada linha deve haver um ;)
v_ler=`cat bira.txt` ; eval $v_ler também executará os comandos (mesma observação do anterior)
v_ler=`cat bira.txt` ; $v_ler Ocorrerá mensagem de erro
exec - executa os argumentos
exit
exit - sai do programa de shell
export
- cria uma variável global
fg - traz um comando para o primeiro plano
forforeach - executa laço foreach
glob - realiza expansão de nome de arquivo
goto - vai ate um rótulo dentro do programa do shell
history
- mostra lista de comandos executados gravados no historico
if
if - decisão if-then-else
jobs - lista tarefas ativas
kill
- elimina uma tarefa - Exemplo de script matar_processo
Skill
- Congela sem encerrar a tarefa
skill -STOP 19573 = Congela o processo
skill -CONT 19573 = Descongela o processo
- Para ver o número do processo corrente é , echo $$.
- Se o processo for o último colocado em segundo plano(background), echo $! mostra o número dele.
limit
- limita o uso de recurso de uma tarefa
login
- termina o shel e ativa login
logout
- termina a conexão de um shell
newgrp
- passa para um novo grupo de usuário
nice
- muda a prioridade de um comando
nohup
- ignora hung ups
notify
- notifica ao usuário quando o status de uma tarefa mudar
onintr
- controla o processamento do shell na interrupção
popd
- retira da pilha de diretório
pushd
- coloca um diretório na pilha
read
- le um linha de stdin
readonly
- muda uma variável para somente leitura
repeat
- repete um comando n vezes
select
- Cria um menu Veja exemplo de script Exemplo 2
set - define variáveis de ambiente do shell
- Clique aqui para entender o set
set
- define uma variável local no shell C
setenv
- define uma variável global no shell C
shift
shift
- desloca os parametros do Shell $* ou $argv
source
- le e executa um arquivo
stop
- para um processo em segundo plano
suspend
- para o Shell
switch
- decisa case
test
- avalia expressões condições Veja exemplificação e comentário
times
time
- mostra tempos de execução
trap
- gerencia signals de execução
# Se digitar Ctrl C apresenta mensagem. So sai com Ctrl \
echo "teste de captura do sinal intr"
trap "echo recebido interrupt" 02
while :
do
:
done
trap 02
Tabela de sinais do trap
0 Termino normal 7 Instrução EMT 14 Alarme do relogio
2 Interrupção (break) 9 Corte não apanhado 16 Definido pelo usuário
3 Termino (quit) 10 Erro de barramento 17 Definido pelo usuário
4 Instrução ilegal 11 Violação de segmentação 18 Morte processo-filho
5 Armadilha de trace 12 Erro de chamada do sistema 19 Falta de energia
6 Instrução IOT 13 Conduto não terminado
Ex.: trap (rm *.tmp;exit 1) 1 2 3 14 15
Shell Bourne/Korn Shel C Descrição
ulimit
- limita tamanhos de arquivo gravados por processo-filho
umask
- define segurança default para arquivos e diretórios
unalias
- descarta apelidos
unlimit
- remove limitações sobre os recursos
unset
- desativa uma variável local
unsetenv
- desativa uma variável global
until
- laço UNTIL
wait
- espera um processo em segundo plano ser completado
while
while - laço WHILE
%job - traz uma tarefa em segundo plano para o primeiro
expr
@ - mostra ou define variáveis do Shell
if expr $a = $b
if expr "${nome}" = "Bira"
a=`expr $a + 1`
a=`expr "$a" + 1`
count=`expr "$count" + 1`
expr index abcdef c #posição de c na lista
Para executar operações matematicas utilize expr
foo=`expr $foo + 1` #soma um à variável foo
expr 2 + 5 \* 1 ( O shell retornara 7)
expr length "Casa"
Saída: 4
Os operadores sao: + adição - subtração / divisão \* multiplicação % resto
Para mais calculos veja a calculadora binária bc
Variáveis do Shell
Shell Bourne/Korn Shel C Descrição
CDPATH cdpath - procura caminho para cd
cwd - nome do caminho completo do diretório corrente
HOME home - nome do caminho do diretório de conexão do usuário
PATH path - o caminho de pesquisa do Shell para os comandos
PS1 prompt - a cadeia de prompt primaria "$" para sistemas Shell
Bourne/Korn "hostname%" para sistemas Shell C
"#" para superusuário
\w current working directory
\W last element of current working directory
\u user name
\h host name
\d current date
\t current time
Exemplo:
export PS1="\[\033[01;32m\]\u@\h\[\033[01;34m\] \w \$\[\033[00m\]"
PS2 - a cadeia de prompt secundaria
IFS - separadores de campo internos
(espacos, tab, nova linha)
history - número de comandos guardados pela historia
ignoreeof - ignora fim de arquivo
noclobber - não grava sobre arquivos existentes
noglob - inibe a expansão do nome de arquivo
$# $#argv - número de argumentos posicionais
$0 $0 - nome do comando
$1,$2... $1,$2... - argumentos posicionais
$argv[n] - argumentos posicionais
$* $*,$argv[*]- $1,$2...
$@ - $1,$2...
$- - opções de Shell do comando set
$? $status - codigo de retorno do último comando
$$ $$ - número de processo do comando corrente Ver comando kill
> temp$$ cria um arquivo com o nome temp+número do
processo
$! $! - número de processo do último comando em segundo plano Ver comando kill
RANDOM - Gera números randômicos: echo $RANDOM mostrará um número gerado aleatóriamente
Manipulando variáveis
As variáveis do sistema servem para armazenar algum valor (como toda variável),
mas existem alguns recursos interessantes e úteis no modo de usar tais variáveis.
O que aprendemos em alguns tutoriais, é que para declarar uma variável do sistema, fazemos:

NOME="VALOR" # Aqui podemos usar valores de outras variáveis
NOME='VALOR' # NOME terá o valor igual a VALOR
NOME=`COMANDO` # NOME terá o valor da saída de comando

Isto é o básico, agora teremos algumas coisas mais interessantes:


Exemplo de definicioes de outras variáveis:

mes_atual=`date '+%m'` grava o mes (%m) atual (01-12) na variável
agora=`date +"%H:%M:%S"` ; echo $agora resulta em 15:48:55
para ler use echo ${mes_atual} as chaves sao para evitar erros
Os caracteres (') delimitando o comando date e o acento grave ou aspas duplas, com eles
o Shell executa o comando em subshell e substitui o valor resultante no lugar do comando
A variável PS1="logname>" o prompt fica o nome do login do usuário
se colocada assim: PS1=`(#$PWD)-->` funciona como prompt $p$g

AçãoComandoSaída
1. Retirar a parte final da string VAR="minha_foto.jpeg"
echo ${VAR%.jpeg}
minha_foto
Como podemos ver, ".jpeg" será excluído. Indicamos o que será excluído depois do caracter '%'.
2. Retirar a parte inicial da string VAR="http://www.linux.com.br"
echo ${VAR#http://}
www.linux.com.br
Indicamos o que será excluído depois do caracter '#'
3. Mostrar tudo após uma posição VAR="http://www.g00gle.com"
echo ${VAR:7}
www.g00gle.com
Depois do ':' indicamos o índice. Como é em C, o primeiro índice é 0, o
segundo é 1 ..., o oitavo é 7 ... etc.
4. Mostrar entre alguns caracteres VAR="123456789"
echo ${VAR:2:5}
34567
Primeiro, faz-se o índice 2, que começa no caracter '3'. No índice 5, a contagem já começa
no índice 2 (5 caracteres a partir do índice 2), aí morre no caracter '7'.
5. Elimina o caracter e tudo a ESQ. VAR="dominio@linux"
echo ${VAR#*@}
linux
Bom, aqui indicamos o caracter a ser deletado e tudo a sua esquerda, depois da string "#*".
6. Elimina o caracter e a DIR. VAR="dominio@linux"
echo ${VAR%@*}
dominio
Já aqui, indicamos o caracter a ser deletado e tudo a sua direita, entre a string "%*".
7. Excluir até um valor EXC=":senha"
VAR="root:senha:/bin/bash"
echo ${VAR%%$EXC*}
root
Como o exemplo 6 , só que podemos indicar strings ao invés de somente um caracter.
O que será excluído tem que ficar entre "%%" e '*'.
8. Excluir de um valor até o fim EXC="senha:"
VAR="root:senha:/bin/bash"
echo ${VAR##*$EXC}
/bin/bash
Como o exemplo 5, só que podemos indicar strings ao invés de somente um caracter.
O que será excluído deve ficar depois do "##*".
9. Troca de strings VAR="c1:c2:c3"
echo ${VAR/:/x}
c1xc2:c3
Funciona como o comando sed. Troca a primeira ocorrência de ':' por 'x',
para trocar tudo: echo ${VAR//:/x} Usa-se duas barras.
Nada impede de trocar por strings: echo ${VAR//:/-CC-} Saída: c1-CC-c2-CC-c3
10. Comprimento da variável VAR="tenho 19 caracteres"
echo ${#VAR}
19
Funciona como o comando expr lenght
11. Listar nomes de variáveis echo ${!va*} listar todas as variáveis que começam com "va"
12. Listar nomes de variáveis echo ${VAR:-"eu não existo"} eu não existo
Se VAR for nula, mostra "eu não existo", se não for nula, mostra o conteúdo dela.
Fonte: http://www.vivaolinux.com.br/dicas/verDica.php?codigo=7336
Operadores de Teste Comuns
Shell Bourne/Korn Shel C E verdadeira se...
-r arquivo -r arquivo existir arquivo legivel
-w arquivo -w arquivo existir arquivo gravavel
-x arquivo -x arquivo existir arquivo executavel
-b -b existir arquivo especial de bloco
-c -c existir arquivo especial de caracter
-d dir -d dir existir o diretório
-e verdadeiro se o arquivo existir
-f verdadeiro se o arquivo contem texto
-o verdadeiro se o usuário for o dono
-s arquivo ! -z arquivo arquivo existir e tiver dados
-z arquivo existir e não tiver dados
-z cadeia tamanho da cadeia = 0 arquivo vazio
-n cadeia tamanho da cadeia > 0
cad1 = cad2 == cadeia 1 igual a cadeia 2
cad1 != cad2 != cadeia 1 diferente a cadeia 2
"cadeia" cadeia não nula
Comparações Numericas
Shell Bourne/Korn Shel C Significa
-eq == igual (equal)
-ne != diferente (not equal)
-gt > maior que (greather than)
-ge >= maior ou igual a (greater or equal)
-lt < menor que (less than)
-le <= menor ou igual a (less or equal)
! ! não
-a && e
-o || ou
(...) (...) agrupamento para precedencia
Com variáveis internas
% modulo
++ soma 1
-- decrementa 1
Redirecionamento de Entrada e Saida
Shell Bourne/Korn Shel C Ação
< arquivo < arquivo toma stdin de um arquivo
> arquivo > arquivo coloca stdout em um novo arquivo
>> arquivo >> arquivo anexa a um arquivo existente (ou o cria)
<< delimitador << delimitador toma stdin do Shell ate o delimitador
4< arquivo abre arquivo como descritor de arquivo 4
<&4 le do descritor de arquivo 4
2> arquivo coloca o stderr em um novo arquivo
>&3 escreve no descritor de arquivo 3
0<&4 usa descritor de arquivo como stdin
2>&1 >& reune stdout com stderr
2>>&1 >>& anexa stdout a stderr
>!arquivo grava sobre noclobber e cria novo arquivo
>>!arquivo grava sobre noclobber e anexa a um novo arquivo
<&- <&- fecha descritor de arquivo 0 (stdin)
2>&- fecha descritor de arquivo 2 (stderr)
2| canaliza stderr para o próximo comando
2>&1| |& reune stderr e stdin e canaliza os resultados
Alguns comandos do editor vi do unix / linux
ComandoAção
a -incluir apos a posição do cursor
A -incluir apos o último caracter da linha atual
:ln append
\escrever o texto aqui
.
adicionar texto em ln+1, ln é o número da linha, escrever o texto após o comando
(ponto solitário na última linha indica fim de comando) Fonte: (vimcard.txt)
:ln insert
\escrever o texto aqui
.
adicionar texto em ln, ln é o número da linha, escrever o texto após o comando
(ponto solitário na última linha indica fim de comando) Fonte: (vimcard.txt)
b -move o cursor para o início da próxima palavra a esquerda
B -idem ( b )
C -substitui os caracteres da posição do cursor ao fim da linha atual, entra no modo de inserção
cc -apaga todos os caracteres da linha atual e entra no modo de inserção
cw -apagar até o fim da palavra e entrar no modo de inserção
c$ -apagar até o fim da linha e entrar no modo de inserção
c^ -apagar até o começo da linha e entrar no modo de inserção
d$ -apaga da posição do cursor ao fim da linha
d^ -apaga da posição do cursor ao início da linha
(n)dl deleta um caracter sobre o cursor
diB deleta interior de {}
daB deleta interior de {} e {}
dib deleta interior de ()
dab deleta interior de () e ()
(n)d) -deleta a próxima frase adjacente
(n)d} -deleta o próximo parágrafo adjacente
(n)d( -deleta a frase anterior adjacente
(n)d{ -deleta o parágrafo anterior adjacente
dfc ou d(n)fc -deleta o texto até encontrar o primeiro caracter c após a posição inicial do cursor, incluindo o caracter
dFc ou d(n)Fc -deleta o texto até encontrar o primeiro caracter c anterior a posição inicial do cursor, incluindo o caracter
dtc ou d(n)tc -deleta o texto até encontrar o primeiro caracter c após a posição inicial do cursor, excluindo o caracter
dTc ou d(n)Tc -deleta o texto até encontrar o primeiro caracter c anterior a posição inicial do cursor, excluindo o caracter
(n)dd -deleta linha atual
D -deleta os caracteres da posição do cursor ate o final da linha
e -avanca o cursor para o final da próxima palavra
ge -avanca o cursor para o final da palavra anterior
E -avanca o cursor para o final da próxima palavra
(n)f -procura pelo primeiro caracter digitado após (ver uso com d)
ex.: ft -> procura pela próxima letra t
3ft -> procura pela terceira ocorrência da letra t
(n)F -procura pelo primeiro caracter digitado antes (ver uso com d)
g -move o cursor para o primeiro caracter da primeira linha do arquivo
(n)G -move o cursor para o primeiro caracter da última linha do arquivo
ou até o número da linha informado.
ga -mostra valor ASCII do caracter sob cursor
gf -abre arquivo cujo nome está sob cursor
guu -Estando sobre qualquer parte da palavra converte-a para minúsculo
gUU -Converte-a para maiúsculo
CTRL g -exibir informações sobre o arquivo atual
gCTRL g -Exibe linha, coluna, palavras em relação 'a posição autal do cursor.
Col 1 of 216; Line 1 of 317; Word 1 of 8531; Byte 1 of 52612
(n)h -move o cursor para o caracter a esquerda do cursor
(n)H -move o cursor para a linha n do topo da janela, omitido n vai para o primeiro caracter da primeira linha da tela
i -entra no modo de inserção a partir da posição do cursor
I -entra no modo de inserção no início da linha atual
(n)j -move o cursor uma linha para baixo
J -move a linha abaixo do cursor para o final da linha atual
gJ -move a linha abaixo do cursor para o final da linha atual sem espaços entre elas
(n)K -move o cursor uma linha para cima
(n)l -move o cursor para o caracter a direita do cursor
(n)L -move o cursor para a linha n da base da janela, omitido n vai para o primeiro caracter da última linha da tela
gm -move o cursor para o meio da linha atual
M -move o cursor para a linha do meio da janela
n -repete a última pesquisa da posição do cursor ao fim do arquivo
N -repete a última pesquisa da posição do cursor ao início do arquivo
vai para o próximo arquivo editado (edição multipla)
(n)o -inseri linha abaixo da linha atual
(n)O -inseri linha acima da linha atual
p -recupera do buffer a linha salva com o comando yy depois da posição do cursor
]p -recupera do buffer a linha salva com o comando yy depois da posição do cursor com o recuo ajustado
gp -recupera do buffer a linha salva com o comando yy depois da posição do cursor, deixando o cursor depois do texto novo
P -recupera do buffer a linha salva com o comando yy antes da posição do cursor
[p -recupera do buffer a linha salva com o comando yy antes da posição do cursor com recuo ajustado
gP -recupera do buffer a linha salva com o comando yy antes da posição do cursor, deixando cursor depois texto novo
q: -edita o histórico da linha de comandos
q? -edita o histórico de pesquisa
q/ -edita o histórico de pesquisa
Q -sai do modo visual entra no modo linha a linha para retornar digite vi
(n)r -substitui o caracter atual pelo próximo digitado
(n)R -substitui todos os caracteres da posição do cursor ao final da linha
s -substitui o caracter atual pelo próximo digito e entra modo inserção
S -idem cc
(n)t -procura pelo primeiro caracter digitado após, posicionando-se antes dele (ver uso com d)
ex.: tx -> procura pela próxima letra x
3tx -> procura pela terceira ocorrência da letra t
(n)T -procura pelo primeiro caracter digitado antes, posicionando-se antes dele (ver uso com d)
u -desfaz a última alteração efetuada na linha atual ( ver em modo visual tem outra função)
U -desfaz todas as aterações efetuadas na linha atual ( ver em modo visual tem outra função)
Ctrl R -refazaz uma ação desfeita
w -move o cursor para o início da próxima palavra a direita do cursor
W -idem w
(n)x -deleta o caracter a direita do cursor (delete)
(n)xp -iverte posicionamento de caracteres
(n)X -deleta o caracter a esquerda do cursor (backspace)
(n)yy -salva no buffer a linha atual
ex.: 3yy salva no buffer a linhaa do cursor e duas abaixo
para copia-las em outro local, va ate o loval e digite p
O -move o cursor para o primeiro caracter da linha atual
$ -move o cursor para o último caracter da linha atual
/xxx -efetua pesquisa da posição do cursor ao fim do arquivo (xxx =texto)
?xxx -efetua pesquisa da posição do cursor ao início do arquivo (xxx =texto)
. -repete o último comando executado
:$ -idem G
(n)| -Vai para a coluna n da linha
{ -começo parágrafo anterior (ver uso com d)
} -começo parágrafo posterior (ver uso com d)
( -começo sentença anterior (ver uso com d)
) -começo sentença posterior (ver uso com d)
(n)<< -Desloca n linhas a esquerda
(n)>> -Desloca n linhas a direita
v -Entra no modo visual
o -Estando em modo visual, alterna posição do cursor com início e fim do destaque
gv -Estando em modo visual, inicia destaque na area visual anterior
aw -Estando em modo visual, seleciona uma palavra
as -Estando em modo visual, seleciona uma sentença
ap -Estando em modo visual, seleciona um parágrafo
ab -Estando em modo visual, seleciona um bloco ( )
aB -Estando em modo visual, seleciona um bloco { }
u -Estando em modo visual, alterna texto selecionado para minúsculo.
U -Estando em modo visual, alterna texto selecionado para miúsculo.
V -Seleciona linha a linha, é só movimentar o cursor
CTRL D CTRL U -rola meia página acima, abaixo
CTRL F CTRL B -rola página acima, abaixo
zt ou z[Enter] -põe linha atual topo da janela
zz ou z -põe linha atual centro da janela
zb ou z- -põe linha atual base da janela
zh zl -rola um caracter a direita, esquerda
zH zL -rola meia tela a direita, esquerda
CTRL Ws ou :split[Enter] -divide janela em duas
CTRL Wv ou :vsplit[Enter] -divide janela em duas
CTRL Wn ou :new[Enter] -cria nova janela vazia
CTRL Wo ou :on[Enter] -coloca janela atua em uma tela
CTRL Wj CTRL Wk -move para janela abaixo, acima
CTRL Ww CTRL W CTRL W -move para janela abaixo, acima (troca)
CTRL A -Estando no modo de Inserção insere o texto inserido anteriormente.
CTRL e -Estando no modo de Inserção copia a linha abaixo na linha atual caracter a caracter.
CTRL E -Rola todo o texto para cima.
CTRL Y -Rola todo o texto para baixo.
CTRL XE -Estando no modo de Inserção rola todo o texto para cima.
CTRL XY -Estando no modo de Inserção rola todo o texto para baixo.
CTRL N -Estando no modo de Inserção completa o texto com palavra (pesquisa anterior).
CTRL P -Estando no modo de Inserção completa o texto com palavra (pesquisa posterior).
CTRL U -Estando no modo de Inserção apaga todos caracteres inseridos linha atual.
CTRL W -Estando no modo de Inserção apaga palavra antes do cursor.
CTRL T -Estando no modo de Inserção desloca à direita a largura 1 desloc.
CTRL L -redesenha tela
CTRL v -Seleciona bloco é só movimentar o cursor
ggVG -Seleciona todo o arquivo
:w -grava o arquivo atual
ex.: :w -> grava o arquivo atual
:w teste -> grava o arquivo atual com o nome teste
:e arq.txt -abre o arquivo arq.txt
:sp -abre o mesmo arquivo já aberto em outra janela
:sp outroarq.txt -abre o arquivo outroarq.txt em outra janela
:enew -abre o um novo arquivo
:sp novoarq.txt -abre novoarq.txt em outra janela
:w! -força a gravação do arquivo atual
:q -sai do vi sem gravar
:q! -força a saída da edição atual
:wq -grava e sai da edição atual
:wq! -força a gravação e a saída da edição atual
ZZ -Salva e sai sem precisar digitar os :
/palavra -Procura palavra da posição do cursor para frente
?palavra -Procura palavra da posição do cursor para trás
/primeira\|segunda -Procura simultâneamente a palavra primeira e segunda
% -Digitado sobre um parentese, colchete ou cheve procura o seu correspondente.
:%!xxd -Converte o arquivo para hexadecimal.
:%!xxd -r -Converte o arquivo para decimal.
:center -Centraliza texto
:left -Alinha a esquerda
:right -Alinha a direita
:1,4 c 13 -copia as linhas de 1 a 4 abaixo da linha 13
:1,4 m 13 -move as linhas de 1 a 4 para a linha 13
:1,4 w teste -move as linhas de 1 a 4 no arquivo de nome teste
1,10m$|g/Essas/ p -move as linhas de 1 a 10 para o final do arquivo e localiza as palavras Essas
:1,10s/Essas/Aquelas/|1,10m$-Substitui da linha 1 a 10 as palavras Essas por Aquelas e depois move as mesmas linhas para o fim do arquivo.
:let i=0|%g/animal/let i=i+1
:echo i
-Conta as ocorrências da palavra animal e grava na variável i
echo i mostra o valor acumulado
:g/azul/s//verde/g -substitui todas as ocorrências da palavra azul por verde
:g/azul/s//verde/ -substitui a primeira ocorrência em cada linha da palavra
azul por verde
:1,$s,^,rm Acrescenta rm no início de cada linha
:1,$s,$,rm Acrescenta rm no final de cada linha
:v/./.,/./-1join Para remover linhas em branco consecutivas de um arquivo
:v/./d E para remover todas as linhas em branco de um arquivo
:g/^$/d Idem ao anterior
:g/^[ ^I]*$/d Para remover linhas em branco que nao sejam vazias, mas que contenham espaços ou tabulacoes, emitir o comando
:s/velho/novo substitua a 1a ocorrência de velho por novo na linha corrente
:% s/velho/novo/ substitua em todo o arquivo (%) a 1a ocorrência de velho por novo em cada linha
:% s/velho/novo/g substitua em todo o arquivo (%), todas (g) as ocorrências de velho por novo
:% s/velho/novo/gc igual ao anterior, mas pedindo confirmação para cada substituição
:5,7s/velho/novo substitui a palavra velho por novo que esteja entre a linha 5 e 7 inclusive
:% s/^String[0-9]//gcexpressões regulares também funcionam, igual ao sed
:% s/./\u&/gc converta para maiúsculas (\u) o 1o caracter (.) de cada linha (exclusiva vi/perl, no sed não funciona)
~ inverte minúscula para maiúscula e vice versa
5~ inverte 5 próximos
g~$ inverte até o fim da linha
Configuração do VI
ComandoAção
:set - mostra a configuração atual do vi
:set all - mostra todas as opções de configuração do vi
:set number - mostra os números das linhas
:set nonumber - não mostra os números das linhas
:set magic
- Liga e desliga a interpretacao de caracteres magicos como [a-z] vai
procurar pelo intervalo de a ate z com nomagic vai procurar pela string "[a-z]"
E o meso que escapar com contrabarra \[a-z\]
:ab xxx texto Toda vez que digitar xxx substitui por texto, veja exemplos:
ab hr <HR>
ab pp <P>
ab ht <HTML>
ab=abreviaçoes e coloca no .exrc
:unab xxx Retira a abreviação
:map ,d :r!date<cr> Ao digitar ,d insere a data ao final do arquivo
:map <c-a> iOla Mundo <esc> Mapeia o CTRL A para incluir o texto Ola Mundo, saindo do modo de inserção com ESC
:map <F12> ggVGg Seleciona todo o arquivo
:imap <c-l> <esc><right>a pular fora dos parênteses, colchetes e chaves
:imap <c-h> <esc><left>a pular fora dos parênteses, colchetes e chaves
:nmap <c-b> A<CR><Esc>j Cria uma linha em branco abaixo da linha atual e vai para a próxima linha
:nmap <c-b> o<Esc>j Equivale ao anterior
:map <c-b> <esc>mz:%s/\s\+$//g<cr>`z Elimina os espaços em branco no final da linha
.vimrc .vimrc do voyeg3r
.vimrc.vimrc do Ivan Carlos da Silva Lopes
http://aurelio.net/doc/vimAurelio sobre o vim
Configuração do VI (continuação)
Explicações sobre .exrc e editar direto em uma linha
o redirecionamento em linha de comando o vim tem a opção de abrir o que for redirecionado como se fosse um arquivo, basta acrescentar -, veja o exemplo:ps aux | vim -
A variável exinit="set number redraw" é utilizada para configuração do vi
Pode-se também configurar o vi pelo arquivo .exrc, por exemplo que programa em C
no linux poderia ter um .exrc com as seguintes linhas:
set autoindent
set shiftwidth=4
set backspace=2 (do linux)
set ruler (do linux)
Pode-se ir direto para uma linha quando se edita um arquivo ex.:
vi +10 relat.rel (vai direto para a linha 10)
Situações com o VIM do Linux
ComandoAção
Como o editor vi tem o .exrc o VIM tem o .vimrc para configurações
chamado .vimrc localizado no diretório home do usuário.
:set nocp - Modo "No compatible" . Valores padrão para algumas opções são adequados ao Vim, não Vi.
:set nowrap - Desliga quebra de linhas. As linhas vao ficar longas, ultrapassando a margem direita.
:set ruler - Mostra no rodape da tela a posição horizontal e vertical do cursor.
:set ve=all - Permite mover com as setas para areas onde não tem texto.
:set vb - Desliga o som de beep (no gvim a tela pisca quando houver erros).
:set ignorecase (ic) - Busca não diferencia maiusculas e minusculas.
:set ai - Ao criar nova linha, usa indentação da linha anterior.
:set visualbell - pisca a tela ao inves de bipar
:set sw=1 - ShiftWidth: número de colunas para o comando >
:set autowrite (aw) - salva a cada alteração
:set hlsearch (hls)- ilumina a última procura
:set ignorecase (ic) - case insensitive na busca
:set incsearch (is) - ilumina procura enquanto digita
:set showmatch (sm) - mostra o casamento de {},[],()
:set tabstop=4 - Tabs são do tamanho de 4 espaços
:set expandtab (et) - Tabs são convertidos para espaços
:retab - converter os TABs ja existentes para espaços
:set shiftwidth=4 - Quando o "autoindent" faz um tab, ele é do tamanho de 4 espaços.
:set softtabstop=4 - Tecla Backspace volta 4 espaços quando estiver numa identação.
:set backspace=indent,eol,start- Tecla Backspace funciona sobre autoindents, quebra de linha,
e inicio de inserção.
:set title - Mostra nome do arquivo no rodape da tela.
:set ttyfast - Envia mais caracteres ao terminal, melhorando o redraw de janelas.
:set background=dark - Usa cores que ficam melhor com fundo preto, quando usando cores em edição de codigo fonte.
:syntax on - Ativa as cores para edição de codigo fonte (syntax highlighting)
Fonte: http://www.onlinux.com.br/dicas/dicasinformatica/maisdicasvi.txt
Leia mais em http://www.zago.eti.br/script/vi.txt
Edição múltiplas de arquivos o VI/VIM do Linux
ComandoAção
vim -o arq1.txt arq2.txt - Editar os arquivos na mesma janela dividida na horizontal
vim -O arq1.txt arq2.txt - Editar os arquivos na mesma janela dividida na vertical
vi -d arq1.txt arq2.txt - Ver diferenças entre arquivos
CTRL Wn Nova Janela
CTRL Wn Dividir a Janela
CTRL Wv Dividir verticalmente
CTRL Wc Fechar
CTRL Wo Fechar outra(s)
CTRL WR Girar para cima
CTRL Wr Girar para baixo
CTRL W= Mesmo Tamanho
CTRL W_ Altura Maxima
CTRL W1_ Altura Minima
CTRL W| Largura Maxima
CTRL W1| Largura Minima
CTRL WK Mover para cima
CTRL WJ Mover para Baixo
CTRL WH Mover para esquerda
CTRL WL Mover para Direita
CTRL WW Mover para próxima janela
Usando o vi para examinar diferenças entre arquivos
vimdiff arq1.txt arq2.txt - abri os dois arquivos, lado a lado, com as diferenças em texto destacado.
vi -d arq1.txt arq2.txt - Ver diferenças entre arquivos
vimtutor - Guia básico do iniciante no vi
Fonte: http://www.onlinux.com.br/dicas/dicasinformatica/vi.htm
Substituição com arquivo externo
Conteúdo de troca.vi:
:%s/reação/REAÇÃO/g
:%s/fusão/FUSÃO/g
:wq
Execute vi -s troca.vi arq.txt
Será executado no arquivo arq.txt os comandos contidos
em troca.vi e o arquivo arq.txt será salvo e fechado
com as alterações efetuadas
Encriptado arquivo
vi -x arq.txt - Será solicitada uma senha e o arquivo ficará encriptado.
Fonte: http://geraldo-ribeiro.sites.uol.com.br/vim.htm
Recursos diversos do vi
fgrep -l animal *.txt | vi - - Abre no vi um novo arquivo contendo os nomes dos arquivos que contenham a palavra animal em seu conteúdo.
vi `fgrep -l animal *.txt` - Diferentemente do anterior, este comando abre os arquivos que contém a palavra animal em seu conteúdo.
man sed | col -b | vim - - Edita no vi um novo arquivo contendo o texto do man sobre o comando sed
read !man dc|col -b
ou read !dc --help
- Equivale ao anterior, só que neste você já esta com o vi aberto
3,10!cat -n|tr '^I' '-' Numera dentro do texto da linha 3 até a 10 usando o cat -n
1,$!cat -n|tr '^I' '-' Numera dentro do texto todas as linhas do arquivo usando o cat -n
let i=0|2,20g/^/let i=i+1|s//\=i/g Numera dentro do texto da linha 2 até a 20, usando variáveis
let @s=0|2,20g/^/let @s=@s+1|s//\=@s/g Numera dentro do texto da linha 2 até a 20, usando registro
:let @a=".!seq 5"
@a
Executa o comando seq, que conta de 1 até 5 e guarda o valor
no registro @a, depois executa o comando contido no registro
:@a inclui estes valores no arquivo
:let @s=":%!sort -u"
@s
Executa o comando sort nas linhas do arquivo e guarda o
resultado no registro @s, depois executa o comando contido
no registro :@s para ordenar as linhas do arquivo
call setline(5,strftime("%d.%m.%Y %X"))Insere string na linha especificada, neste caso insere data e
hora na linha 5, mas apaga o que estava nela.
Dois exemplos para demonstrar que a ordem em que os filtros são passados o efeito pode ser diferente:
ls -l | tail +2 | awk '{print $9}' | sed 's/^/)/' | cat -n | sed 's/^/(/' | tr "\t" " " | tr -s " " | vi -Explicando: ls -l lista dos arquivos do diretório
tail +2 tira linha de cabeçalho
awk pega o campo 9 que é o nome do arquivo
O primeiro sed coloca o parentese fechando antes do nome do arquivo
cat -n coloca os números
O segundo sed coloca o parentese abrindo, antes dos números
O primeiro tr troca um tab por um espaço em branco
O segundo tr elimina espaços em brancos repetidos
e o vi - abre o resultado no edit vi
ls -l | tail +2 | awk '{print $9}' | cat -n | tr "\t" ") " | tr -s " " | tr "^ " "(" | vi -O mesmo comando assima pouco modificado, execute e veja a diferença nos arquivos gerados
Fonte: http://aurelio.net/doc/vim/vim-dicas-ivan.html
Autocompletar palavras / buscar no dicionário
set dictionary=~/.meudic.txtDicionario para procurar o auto-complemento de palavras, define um dicionário padrão, pode ser colocado no .exrc
imap <F7> <c-n>A tecla F7 Completa uma palavra
imap <F8> <c-x><c-n>a tecla F8 Da a sequencia a essa palavra
imap <c-d> <c-x><c-k>Ctrl + D Procura no dicionario
Fechamento automático de (, { e [
imap ( ()iFecha automaticamente o parentesi quando abre um
inoremap ( ()iFecha automaticamente o parentesi quando abre um
inoremap [ []iFecha automaticamente o colchete quando abre um
inoremap { {}iFecha automaticamente uma chave na linha abaixo à que foi aberta
map! 'a &aacute;
map! 'A &Aacute;
map! ~a &atilde;
map! ~A &Atilde;
map! `a &agrave;
map! `A &Agrave;
map! 'e &eacute;
map! 'E &Eacute;
map! ^e &ecirc;
map! ^E &Ecirc;
map! 'i &iacute;
map! 'I &Iacute;
map! 'o &oacute;
map! 'O &Oacute;
map! ~o &otilde;
map! ~O &Otilde;
map! "u &uuml;
map! "U &Uuml;
map! ,c &ccedil;
map! ,C &Ccedil;
Exemplo do uso de map! para substituir palavras acentuadas pelo seu correspondente em code html

Impressoras no Linux

vi /etc/printcap

l8) echo "\033\060\c" configura a impressora para 1/8
;;
o arquivo das impressoras fica /usr/spool/lp/admis/lp/interfaces

Instalação/Configuração via linha de comando:

1 - cria diretório lp2 dentro de /var/spool/lpd
2 - doa ao grupo lp
3 - copia o .config de outra impressora
4 - /etc/rc.d/init.d/lpd restart (pode tmb executar stop depois start)

Configuração do Samba

vi /etc/smb.conf
[teste]
path= /oracle/dat0/teste
read only = No
Guest = Yes

[dataflex]
comment = diretório dataflex
available = yes
browseable = yes
public = yes
guest only = no
writable = yes
only user = no
path = /users/dataflex
force create mode = 0777
force directory mode = 0777
force group = dataflex
force user = dataflex
allow hosts = 192.168.212.1, 192.168.212.2, 192.168.212.13

Para montar a unidade c: de uma maquina como partição do Linux
smbmount //ubiratan/c /mnt/rede

Restarta da seguinte forma:

/etc/rc.d/init.d/smb reload
/etc/rc.d/init.d/smb restart

Para completar este assunto ver depois dicas sobre o Samba em:
http://www.onlinux.com.br/dicas/dicasinformatica/samba30.txt

Servidor de e-mail / squid

Para definir sites proibidos e usuários librados edita os arquivos:

/etc/squid/data/sites-proibidos.txt
/etc/squid/data/users-liberados.txt

depois executa /etc/init.d/squid reload (stop start restart)


Fonte: Pesquisas Diversas

http://www.zago.eti.br/comandos.html
http://www.devin.com.br/eitch/comandos_linux/
http://www.onlinux.com.br/dicas/lnag/Linux_commands.htm
http://www.ss64.com/index.html
http://guiabozolinux.sourceforge.net/FSL:Comandos_do_Linux
http://www.onlinux.com.br/dicas/lnag/Linux_commands.htm
http://www.pixelbeat.org/cmdline.html
um superguia de comandos
outra lista de comandos
Comandos avançados
um guia de comandos completo
http://www.debian.org/doc/manuals/reference/ referência debian
sergioaraujo.pbwiki.com
Fonte: [1] - onlinux

Fonte: [2] - onlinux

Fonte: Guia Foca GNU/Linux

Valid XHTML 1.1