Escolar Documentos
Profissional Documentos
Cultura Documentos
urs.bira@uol.com.br
Mostra /bin/cat
Mostra: cat (1) - concatenate files and print on the standard output
Mostra:
cd - mudar de diretório
https://urs.bira.nom.br/informatica/comando.htm 1/25
29/09/2021 08:35 Comandos do Unix / Linux
Para atualizar os valores deve-se regravar a variável LS_COLORS com: eval `dircolors .coloursrc` colocar este
comando em .bashrc
cp ~/.emacs ~/.emacs.bak
less /usr/doc/{emacs-20.7/{NEWS,README},ed-0.2/NEWS,gnupg-1.0.1/{README,COPYING}}
tac - Mostra o conteúdo de um arquivo binário ou texto (como o cat), só que em ordem inversa.
cp - copiar arquivo(s)
find . -print -exec touch -t 0808250000 {} \; - troca a data de modificação para 25/08/2008 00:00 de todos os arquivos
find . -name "*.htm" -print -exec touch -t 0808250000 {} \; idem ao anterior, só que para arquivos *.htm
find . -name "resumo*" -type f procura por arquivos normais (type f) as opções de -type são:
f (arquivos normais), l (links simbólicos), d (diretórios), b (dispositivos de bloco), p (pipes nomeados), c (dispositivos de caractere), s (soquetes).
mv - mover/renomear arquivo(s)
veja exemplos xargs para renomear vários arquivos de vez usando juntamente com o mv
CIDADE, DATA
Caro QUEM
https://urs.bira.nom.br/informatica/comando.htm 2/25
29/09/2021 08:35 Comandos do Unix / Linux
Cordialmente,
bira
Se executarmos o comando:
Resultará em:
Salvador, 11/11/08
Caro IVAN
Cordialmente,
bira
rm - remover arquivo(s)
veja exemplos xargs para remover vários arquivos de vez usando juntamente com o rm
split 100 bira.txt #separa o arquivo bira.txt em arquivos com 100 linhas cada.
O comando csplit diferente de split pode efetuar a separação sempre que encontrar
A Introducao
B Dedicatoria
CAPITULO 1
Linha 1A1
Linha 2A1
Linha 3A1
CAPITULO 2
Linha 1A2
Linha 2A2
CAPITULO 3
Linha 1A3
Linha 2A3
Neste arquivo há 3 capítulos se desejar criar um arquivo para cada capítulo execute
o comando:
O valor {2} representa a quantidade máxima de arquivos a ser criada, como são 3 capítulos
Quando não souber a quantidade exata de capítulos utilize a opção -k e informe um número entre
{} que você
tenha certeza que seja maior que a quantidade de capítulos.
Estes dois exemplos criarão os arquivos capit00, capit01, capit02, capit03, sendo que o capit00
Coluna Descrição
PID O ID do processo
USER O usuário que executa o processo
PRI A prioridade do processo
NI O valor bom: quanto maior o valor, menor a prioridade da tarefa
SIZE Memória usada por esse processo (código+dados+pilha)
https://urs.bira.nom.br/informatica/comando.htm 3/25
29/09/2021 08:35 Comandos do Unix / Linux
RSS A memória física usada por esse processo
SHARE A memória compartilhada usada por esse processo
O status desse processo, mostrado em código. Alguns códigos de status principais são:
STAT R = Em execução
S = Em hibernação
Z = Zumbi
T = Interrompido Também é possível ver o segundo e terceiro caracteres, que indicam:
W –
Processo permutado
N – Valor bom positivo
com top em execução as letras abaixo quando pressionadas ativam ou desativam dados apresentados:
cat manual.txt | tr aeiou 12345 # substitui a letra a por 1, e por 2, i por 3, o por 4 e u por 5
uptime - Mostra a quanto tempo o sistema esta ativo, a quantidade de usuários ativos e o load average veja
mais no comando top.
fold [¹] -
fmt [¹] -
Quebra linhas compridas e junta linhas curtas de acordo com o requerido mas não
nl [¹] -
meuarquivocomlinhasnumeradas.
rev [¹] -
shred [¹] -
des [¹] -
Será solicitada você uma chave que o programa usará para a criptografia.
cat nomedoarquivo | gawk '/vento/ {print}' #Para mostra as linhas que contenham o string "vento".
https://urs.bira.nom.br/informatica/comando.htm 4/25
29/09/2021 08:35 Comandos do Unix / Linux
O que torna o awk mais poderoso que o sed são as operações sobre campos. $1 significa "o primeiro campo", $2
significa o "segundo campo", etc. $0 significa a "linha inteira".
A variável NF significa número de campos. Quando precedida por "$" indica o último campo.
awk -F: 'NF > 10 {print}' arquivo.exemplo # imprimi apenas as linhas que contenham mais de dez campos.
awk -F: 'NF == 10 {print}' arquivo.exemplo # imprimi apenas as linhas que possuam exatamente 10 campos.
awk 'END {print NR}' arquivo.txt # Contar quantas linhas um determinado arquivo tem.
awk 'NR == 30' arquivo.txt #
Para ler apenas 30a. linha
O próximo exemplo extrai os campos 3 e 2 das linhas que contem "1024" e os mostra com os títulos "Nome" and
"ID" :
cat nomedoarquivo | gawk '/1024/ {print "Nome: " $3 "ID: " $2}' > novoarquivo
O terceiro exemplo procura e mostra linhas com o terceiro campo igual a "peter" ou que contenham o string
"marie":
cal | awk '/We/ || /17/ {print $0}' # filtra a saída do calendário do mês corrente, mostrando apenas a abreviação
dos nomes dos dias da semana e abaixo a linha que contém o dia de número 17
Para entender o ultimo comando, eis aqui uma lista dos testes lógicos em gawk:
== igual, != diferente,
|| OU lógico,
&& E lógico,
! negação lógica.
awk '{ if (length($0) > max) max = length($0) } END { print max }' arq.txt #Mostra o tamanho da maior linha do arquivo
awk 'NF > 0' arq.txt # mostra as linhas do arquivo, exceto as vazias ou as somente com espaços em branco.
awk 'BEGIN { for (i = 1; i <= 7; i++) print int(101 * rand()) }' # mostra 7 números aleatóriamente entre 0 e 100
ls -l FILES | awk '{ x += $5 } ; END { print "total bytes: " x }' # mostra o total de bytes dos arquivos listados por ls -
l somando o quinto campo
awk -F: '{ print $1 }' /etc/passwd | sort # mostra em ordem alfabetica o nomes do usuários do /etc/passwd
awk 'NR % 2 == 0' arq.txt #mostra as linhas alternadamente, não mostra a linha 1, mostra a 2 , não mostra a 3, ...
awk 'NR % 2 == 1' arq.txt #mostra as linhas alternadamente, mostra a linha 1 , não mostra a 2, mostra a 3 , ...
awk '($1=="Ivan") { print }' < lista.txt # Se o valor da coluna 1 for Ivan mostra as linha todas
awk '($2=="Diana") { print $3,$4 }' < lista.txt # Se o valor da coluna 2 for Diana mostra a coluna 3 e 4
Suponha um diretório contedo alguns arquivos cuja lista esta representada abaixo por uma saída do comando ls
-l:
Executando o comando:
ls -l | awk '{print "Dono: " $3 "\tTamanho: "$5 "\tNome: " $9}' gera a seguinte saída:
https://urs.bira.nom.br/informatica/comando.htm 5/25
29/09/2021 08:35 Comandos do Unix / Linux
cut -c 10-10 arq.txt # mostra da 10 a trigésima coluna do arquivo
#-----------------------------------------------------------
tput clear
echo "---------------------------------------------------------------"
ls -lSr | tr -s " " | cut -d " " -f3-9 | sed -e 's/ /\t/g'
echo "---------------------------------------------------------------"
# Fim do script
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.
perl - perl -i -p -e 's/caixas/malas/g;' grave.txt # substitui todas as ocorrências de caixas por malas.
perl -i.bak -p -e 's/caixas/malas/g;' grave.txt # Igual ao anterior só que a opção -i.bak cria um backup de grave.txt
como grave.txt.bak
Para confirmar que os scripts awk podem ser reescritos em perl, veja o exemplo:
perl -lane 'print$F[2]if$F[1]eq"1957"' | arquivo.txt # Esta linha é igual à de cima, como no perl pode-se remover
todos os espaços dos argumentos
sed -n p texto.txt
A opção -n faz com que o sed não imprima sa saída padrão e a opção p imprime cada linha fazendo com que
cada linha seja impressa apenas uma vez.
sed -n 5p texto.txt
imprime apenas a linha 5 de texto.txt. Nesta opção o número da linha é um endereço que diz ao sed onde
aplicar o comando, este endereço também pode ser passado como parte do conteúdo da linha entre /barras/
sed '5d' texto.txt = passando o endereço como sendo o número da linha, apagará a linha 5 com a opção d.
sed '/modelo/d' texto.txt = passando o endereço com um conteúdo da linha, apagará todas as linhas que tenham a
palavra modelo.
Este último comando seria como se você tivesse usado o grep grep -v modelo texto.txt
sed '5,/modelo/d' texto.txt = apagrá da linha 5 até a linha que tiver a palavra modelo.
https://urs.bira.nom.br/informatica/comando.htm 6/25
29/09/2021 08:35 Comandos do Unix / Linux
= apaga a linha que contá a palavra modelo e as 3 seguintes.
Neste exemplo, as linhas terminado com um "o" serão deletadas. Foi utilizada uma expressão regular para casar
com qualquer string seguido por um "o" e o fim da linha. A saída (isto é, todas as linhas exceto aquelas
terminadas com "o") é direcionada para novoarquivo.
df -h | tail + 2 | tr -s " " | cut -d " " -f5 | grep literatura | sed -e 's/%//'
o cut usa como delimitador o espaço em branco " " e pega o campo 5
Fonte: aurelio.net/sed/sed-HOWTO
Interrompendo o processamento
sed '/^$/q' texto.txt = mostra o arquivo parando na primeira linha em branco que achar.
Invertendo a lógica
sed '1,10!d' = NãO apague da linha 1 até a 10 (ou seja, apague as outras)
sed -n '11,$!p' = NãO imprima da linha 11 até o final (ou seja, imprima as outras)
sed -e '1i começo de tudo' -e '5d' texto.txt = insere a frase começo de tudo antes da primeira linha e apaga a quinta
linha do arquivo texto.txt, sendo separados por -e.
É sempre bom colocar os parametros do sed entre aspas simples, para evitar que o shell os interprete
erroneamente:
Exceto quando existir algo que deva ser interpretado, uma variável por exemplo:
Delimitadores
O delimitador padrão é a /, mas se o que tiver que ser substituído também contém uma barra ela deve ser
escapada com a barra invertida \
Para evitar ficar escapando as barras podemos definir outro delimitados, no exemplo abaixo foi os mesmos
comandos acima foram escritos usando a virgula:
https://urs.bira.nom.br/informatica/comando.htm 7/25
29/09/2021 08:35 Comandos do Unix / Linux
sed 's,/usr/local/bin,/usr/bin,' texto.txt
sed 's/root/administrador/Ig' texto.txt #substitui a palavra root por administrador ignorando maiúsculas e
minúscualas
sed -e '1r cabecalho.txt' -e '$r rodape.txt' texto.txt # a opção r inclui cabecalho.txt depois da linha 1 e rodape.txt
após a última linha.
Gravando arquivos
grep 'modelo' texto.txt > modelo.txt # este comando pode ser substituido pelo sed se utilizarmos a opção w:
sed '/modelo/w modelo.txt' texto.txt # grava no arquivo modelo.txt as linhas que contém a palavra modelo.
Substituição Simples
Este recurso de substituir pelo conteúdo de um arquivo é necessário quando o texto a ser incluído é longo ou
será executado diversas vezes, caso cotrário o comando acima poderia ser efetuado utilizando apenas a opção s
do sed
Com a opção c o sed trocará todo texto que estiver entre <pre> e </pre> inclusive eles pela frase aqui tinha texto
pré-formatado.
Suponha agora que tenhamos um arquivo chamado novo.txt com um texto de várias linhas nele, se executarmos
o comando abaixo:
o sed deletará o trecho entre <pre> e </pre> inclusive eles e colocará logo após o </pre> o texto contido em
novo.txt
sed 's/ /\n/g' texto.txt #substitui todo espaço em branco por uma quebra de linha representada por \n.
Tomando isto como base, suponha que voce tenha um texto e deseja criar uma lista de todas as palavras usadas
nele em ordem alfabetica, uma solução seria:
Explicando:
o sed troca os espaços em branco por quebra de linha, colocando cada palavra em uma linha
o sort coloca em ordem alfabetica, a opção -f é para ele ignorar maiúsculas e minúscualas
o uniq retira as palavras duplicadas, a opção -i também é para ignorar maiúsculas e minúscualas
Suponha que um arquivo z.htm que contenha em alguma parte a seguinte linha:
e pretende-se acrescentar abaixo dela o conteúdo de um arquivo texto chamado novalinha.txt, o comando seria:
Cria-se um arquivo com um nome qualquer com os comandos dentro inclusive pode-se usar o caracter # para
colocar comentários:
# apaga a 5ª linha
5d
10d
https://urs.bira.nom.br/informatica/comando.htm 8/25
29/09/2021 08:35 Comandos do Unix / Linux
/comando/d
Depois do arquivo programa.sed criado pode-se usá-lo aplicando o comando sed com a opção -f :
<html>
<body>
<center>
Texto no centro
</center>
<pre>
Texto fica na
tela do jeito
que
foi digitado.
</pre>
</body>
</html>
E deseja-se substituir o conteúdo entre <pre> e </pre> pela frase aqui tinha texto pré-formatado
/<pre>/,/<\/pre>/c \
<html>
<body>
<center>
Texto no centro
</center>
</body>
</html>
Ainda lembrando o exemplo citando anteriormente no Colocando comandos sed em um arquivo podemos usar a
instrução #! que colocamos no início de um script para transformar nosso arquivo sed executável.
Isso é possível porque da mesma forma que se colocar-mos #!/bin/sh em um script estamos dizendo ao bash
para executar o script com o comando /bin/sh, podemos colocar na primeira linha do arquivo programa.sed
a linha #!/bin/sed -f, isso fará com que o arquivo seja automaticamente processado com este comando. Claro que
deve-se dar permissão com o chmod +x programa.sed antes.
Depois é só executar:
./programa.sed texto.txt
A opção H adiciona as linhas que cotenha a palavra root no espaço reserva e recupera-as com a opção g na
última linha $.
comando | emulação
-------------+----------------------------------------
cat | sed :
informações =
https://urs.bira.nom.br/informatica/comando.htm 9/25
29/09/2021 08:35 Comandos do Unix / Linux
marcadores :
comentários #
comandos de edição s i c a y
comandos de registradores g G h H x
comandos de impressão p P l
comandos de arquivo r w
modificadores g i !
separadores ; -e \n
controle de fluxo b t d D n N q
endereço // ,
limitadores {} \(\)
Para ajustar os padrões, eu uso as opções que são descritas em man join.
1 Barbara
2 Peter
3 Stan
4 Marie
e o do arquivo2 era:
2 Dog
4 Car
7 Cat
2 Peter Dog
4 Marie Car
Combina dois ou mais arquivos textos em linhas usando o Tab como delimitador
e o do arquivo2 era:
1a
2b
3c
1 2 3
a b c d
1;2;3
a;b;c;d
https://urs.bira.nom.br/informatica/comando.htm 10/25
29/09/2021 08:35 Comandos do Unix / Linux
Inicia a impressão do arquivo.txt após a página 132 na impressora contab.
umask 002 - define como o usuário ira criar os arquivos (por no profile)
bc -
Calculadora binária (é uma linguagem para cálculos)
% (resto da divisão)
^ (potenciação)
a(x): o inverso da tangente de x (retorna radianos). (Veja um exemplo com o valor de pi)
echo "obase=2 ; 11" | bc # resultará em 1011 pois convertemos o numero 11 em base decimal para binário
echo "ibase=2 ; 11" | bc # resultará em 3 pois convertemos o número 11 em binário para decimal
Poderia ser : z=`echo "100 * 2" | bc` ; echo $z # para atribuirmos um valor a z
Um exemplo bem interessante que consta no manul e bc (man bc) é esse de calcular pi
Em ambos os casos basta variar o valor de scale para conseguir os números com mais casas decimais
ssh root@200.223.79.179
scp Copiar arquivo de seu micro para outro remoto via scp
https://urs.bira.nom.br/informatica/comando.htm 11/25
29/09/2021 08:35 Comandos do Unix / Linux
1 2 3 4 5
-l usuário -- lista as tarefas agendadas para o usuário
-e usuário -- edita o agendador
-d usuário -- apaga o arquivo do usuário
-c diretório -- especifica um diretório para o Crontab
Exemplo: 30 14 * * Fri /bin/mail -s "TGIF" bira@teste.ok%RECEBIDO%%ok.
Exemplos de Wikipedia
00 * * * * /bin/script Todo dia de hora em hora (hora cheia)
00-59/5 * * * * /bin/script De cinco em cinco minutos todos os dias (note a divisão por 5 do intervalo 00-
59)
15 10,12,16,18,22 * * * /bin/script Nas seguintes horas: 10, 12, 16, 18, 22 aos 15 minutos da hora
25 19 01-05 * * /bin/script Nos primeiros cinco dias do mês às 19:25
00 00,12 * * 1-5 /bin/script De segunda a sexta ao meio-dia e a meia-noite
00 2 * * mon,wed,fri /bin/script Script rodar Segunda,Quarta,Sexta às 2 horas
00 3 * * tue,thu /bin/script Script para rodar Terça,Quinta às 3 horas
tar -zcvf arqdestino.tar.gz arqorigem # Comando para empacotar compactando com gzip
tar -zxvf arquivo.tar.gz -C /tmp # Comando para desempacotar o -C /tmp informa o destino dos arquivos extraídos,
se for omitido salva a partir do diretório corrente
dialog - mostra caixas de dialogo Veja exemplos de script com este comando
https://urs.bira.nom.br/informatica/comando.htm 12/25
29/09/2021 08:35 Comandos do Unix / Linux
Veja um exemplo de script que simula um login Linux:
#!/bin/bash
tput clear
login ()
ip=`who am i | tr -s " " | cut -d " " -f6 | tr "(" " " | tr ")" " "`
printf "\nLast login: `date "+%a"` `date "+%b"` `date "+%e"` 10:16:23 from ${ip}\n"
tput smacs
tput bold
tput blink ou rev
Podemos utilizar :
fonte_negrito=`tput smso`
fonte_normal=`tput rmso`
No manual do tput há o seguinte exemplo que pode ser digitado na linha de comando do shell:
bira> clear
bira> cup 10 10
bira> bold
bira> !
https://urs.bira.nom.br/informatica/comando.htm 13/25
29/09/2021 08:35 Comandos do Unix / Linux
#!/bin/bash
do # Inicio do loop
# Cria um efeito de uma linha colorida diferente a cada vez que executa
urs.biraurs.biraurs.biraurs.biraurs.biraurs.biraurs.biraurs.biraurs.biraurs.bira
\033[0m"
xargs - recebe da entrada padrão ou de um comando transformando cada entrada recebida em argumento para
outro comando.
Na prática ele permite que se execute um comando com o resultado do comando anterior.
file * | grep ASCII | cut -d":" -f1 | xargs wc -l ou dessa outra forma
Conta quantas linhas tem cada arquivo ASCII que estiver na pasta, gera uma lista assim:
111 capa_manual_linux.txt
757 capitulo_III_manual.txt
390 capitulo_II_manual.txt
214 capitulo_I_manual.txt
1472 total
ls | xargs -t -i mv {} {}.bak
Renomeia todos os arquivos da pasta acrescentando a extensão .bak ao final do nome. [ Retorna para lista de
comandos ]
mv capa_manual_linux.txt capa_manual_linux.txt.bak
mv capitulo_III_manual.txt capitulo_III_manual.txt.bak
mv capitulo_II_manual.txt capitulo_II_manual.txt.bak
mv capitulo_I_manual.txt capitulo_I_manual.txt.bak
É como o anterior só que acrescetando a opção -p ele pergunta antes de executar o vi (responde y ou n)
Um caso particular é quando o resultado passado para xargs não gera nenhum valor, nestes casos podemos tratar
usando
Este comando não executará nada. mas se colocar como abaixo sem o -r:
https://urs.bira.nom.br/informatica/comando.htm 14/25
29/09/2021 08:35 Comandos do Unix / Linux
file * | grep XGVGXGVG | cut -d":" -f1 | xargs -t wc -l
mesmo não havendo arquivos tipo XGVGXGVG ele mostrará como resultado as linhas:
wc -l
-n limita a quantidade de argumentos por linha, neste exemplo serão passados de 2 em 2 como mostrado abaixo:
#-----------------------------------------
date ;
read u ;
#-----------------------------------------
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)
https://urs.bira.nom.br/informatica/comando.htm 15/25
29/09/2021 08:35 Comandos do Unix / Linux
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
- Congela sem encerrar a tarefa
while :
do
done
trap 02
https://urs.bira.nom.br/informatica/comando.htm 16/25
29/09/2021 08:35 Comandos do Unix / Linux
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
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:
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:
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
https://urs.bira.nom.br/informatica/comando.htm 17/25
29/09/2021 08:35 Comandos do Unix / Linux
Indicamos o que será excluído depois do caracter '#'
VAR="http://www.g00gle.com"
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
https://urs.bira.nom.br/informatica/comando.htm 18/25
29/09/2021 08:35 Comandos do Unix / Linux
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
(n)G
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
-Exibe linha, coluna, palavras em relação 'a posição autal do cursor.
gCTRL g
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
https://urs.bira.nom.br/informatica/comando.htm 19/25
29/09/2021 08:35 Comandos do Unix / Linux
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
-move o cursor para a linha n da base da janela, omitido n vai para o primeiro caracter da última linha da
(n)L
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
-recupera do buffer a linha salva com o comando yy depois da posição do cursor, deixando o cursor depois
gp
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
-recupera do buffer a linha salva com o comando yy antes da posição do cursor, deixando cursor depois
gP
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.
https://urs.bira.nom.br/informatica/comando.htm 20/25
29/09/2021 08:35 Comandos do Unix / Linux
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
-Substitui da linha 1 a 10 as palavras Essas por Aquelas e depois move as mesmas linhas para o fim do
:1,10s/Essas/Aquelas/|1,10m$
arquivo.
:let i=0|%g/animal/let i=i+1
-Conta as ocorrências da palavra animal e grava na variável i
https://urs.bira.nom.br/informatica/comando.htm 21/25
29/09/2021 08:35 Comandos do Unix / Linux
:% 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]//gc expressõ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
Comando Açã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/vim Aurelio 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)
https://urs.bira.nom.br/informatica/comando.htm 22/25
29/09/2021 08:35 Comandos do Unix / Linux
:set softtabstop=4 - Tecla Backspace volta 4 espaços quando estiver numa identação.
- Tecla Backspace funciona sobre autoindents, quebra de linha,
:set backspace=indent,eol,start
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
:%s/reação/REAÇÃO/g
Será executado no arquivo arq.txt os comandos contidos
:%s/fusão/FUSÃO/g
em troca.vi e o arquivo arq.txt será salvo e fechado
:wq
com as alterações efetuadas
Execute vi -s troca.vi arq.txt
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
- Abre no vi um novo arquivo contendo os nomes dos arquivos que
fgrep -l animal *.txt | vi -
contenham a palavra animal em seu conteúdo.
- Diferentemente do anterior, este comando abre os arquivos que
vi `fgrep -l animal *.txt`
contém a palavra animal em seu conteúdo.
- Edita no vi um novo arquivo contendo o texto do man sobre o
man sed | col -b | vim -
comando sed
read !man dc|col -b
@a
:@a inclui estes valores no arquivo
Executa o comando sort nas linhas do arquivo e guarda o
@s
no registro :@s para ordenar as linhas do arquivo
Insere string na linha especificada, neste caso insere data e
sed 's/^/(/' | tr "\t" " " | tr -s " " | vi - tail +2 tira linha de cabeçalho
https://urs.bira.nom.br/informatica/comando.htm 23/25
29/09/2021 08:35 Comandos do Unix / Linux
O segundo sed coloca o parentese abrindo, antes dos números
map! ~a ã
map! ~A Ã
map! `a à
map! `A À
map! ^e ê
map! ^E Ê
Exemplo do uso de map! para substituir palavras acentuadas pelo
map! 'i í
seu correspondente em code html
map! 'I Í
map! ~o õ
map! ~O Õ
map! ,c ç
map! ,C Ç
Impressoras no Linux
vi /etc/printcap
;;
2 - doa ao grupo lp
Configuração do Samba
vi /etc/smb.conf
[teste]
path= /oracle/dat0/teste
read only = No
Guest = Yes
[dataflex]
available = yes
browseable = yes
public = yes
guest only = no
writable = yes
only user = no
path = /users/dataflex
https://urs.bira.nom.br/informatica/comando.htm 24/25
29/09/2021 08:35 Comandos do Unix / Linux
/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
/etc/squid/data/sites-proibidos.txt
/etc/squid/data/users-liberados.txt
https://urs.bira.nom.br/informatica/comando.htm 25/25