Diário de um SysAdmin 1 - Truques | Macetes | Atalhos & Comandos

Olá pessoal, conforme prometido, humildemente inicio aqui o primeiro capítulo de uma série de dicas chamada "Diário de um SysAdmin", onde irei postar os comandos e truques que uso no meu dia a dia. Cada capitulo contém 5 dicas sendo que a última será sempre uma curiosidade.

[ Hits: 15.508 ]

Por: Wellingthon Dias Queiroz - @tonyhts em 22/07/2015


Diário de um SysAdmin 1



Olá pessoal, conforme prometido, humildemente inicio aqui o primeiro capítulo de uma série de dicas chamada "Diário de um SysAdmin", onde irei postar os comandos e truques que uso no meu dia a dia.

Cada capitulo contém 5 dicas sendo que a última será sempre uma curiosidade.

Contexto:

Diariamente nos deparamos com diversas situações estranhas, complexas, trabalhosas, malucas etc. É um turbilhão de requisições e responsabilidades que se fossemos agir/encarar isso conforme está no livro ou como aprendemos no curso/faculdade, seríamos, no mínimo, menos eficientes. Para lidar com isso, usamos alguns truques, macetes e comandos (carinhosamente chamado de boas práticas) que talvez você não conheça. Então, chega de Blah blah blah e bóra pras primeiras 5 dicas.

Dica 1: Otimizações inteligentes de comandos

Antes de realizar qualquer tipo de alteração em arquivo de configuração, qualquer sysadmin que se preze, faz um backup do arquivo original (vai que... rs). Essa é uma dica simples mas que poupa-nos tempo.

Vamos supor que deseja alterar o arquivo /etc/apache2/apache2.conf. Normalmente faríamos assim:

# cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf.bkp

E só então fazemos as alterações, certo?

E se fizermos assim?

# cp /etc/apache2/apache2.conf{,.bkp}

Talvez não pareça, mas só de pouparmos tempo, synapses, tabs e possíveis erros de digitação, já ajuda. Sem contar que otimização inteligente sempre é bom! :)

Dica 2: Sempre esquecemos o sudo

Segue mais uma, que apesar de simples, uso muito!!

Vamos supor que está logado como usuário comum e deseja executar um comando que só um superuser poderia.

Obviamente a resposta é simples: bastar usar sudo. Claro! Maassssss e quando você digita aquele comando gigantesco e esquece de digitar sudo?

A maioria esmagadora aperta a "seta para cima" no teclado depois aperta a tecla "home" digita sudo e dá um espaço para depois apertar enter certo?

OK, isso não é trabalhoso, mas temos uma forma mas fácil ainda de fazer isso, principalmente se estiver usando um smartphone (que aqui entre nós, eu já fiz algumas cácas usando o touch do smart, rsrs). Bom, vamos à dica:

Basta digitar: sudo !!

Isso vai dizer ao bash: execute o último comando, só que usando o sudo.

Exemplo:

sed -i '/sdb/ s/^/#/g' /etc/fstab
sed: Não foi possível abrir o arquivo temporário /etc/sedBLOh5T: Permissão negada

Oh droga cara! :(
Daí, em vez de fazer os procedimentos de praxe citados acima, basta aplicar a dica:

sudo !!

Isso diz para o shell: execute sudo + último comando. Onde: !! == último comando

O mais legal é que os "!!" parecem que estamos mandando um FAZ AGORA E NÃO ME ENCHE!! Tipo:
Linux: Diário de um SysAdmin 1 - Truques | Macetes | Atalhos & Comandos

Dica 3: history e o santo Ctrl + R - Recursive Search

Todos sabemos que o bash armazena o histórico dos últimos 1000 comandos executados pelo seu usuário e para invocá-lo, rodamos o comando "history" ou "cat ~/.bash_history".

Então, quando precisamos reexecutar um determinado comando, primeiro olhamos history para pouparmos tempo ou para relembrar parte dele. Normalmente apertamos a seta para cima no teclado e ele logo mostra o último comando digitado e vamos apertando a "seta para cima" até chegar o comando que desejarmos. Mas e se ele foi digitado há muito tempo? Vai ficar apertando a tecla atééééé chegar?

R: Não, podemos realizar isso de outras formas, algumas comuns e outras mais legais. São elas:

Comuns:

history
history | grep "comando ou parte dele"

Daí copiamos, colamos no prompt e executamos. Masss e se estivermos num terminal, num server em modo texto sem mouse?? Cruuuuzes! :)

Para isso, temos as dicas legais (que nem são tãããão legais assim, mas...)

A: O SANTO, O Salvador Ctrl + R

Aperte Ctrl + R, isso irá ativar a busca recursiva. Daí agora digite parte do comando que deseja "buscar" no seu history, imediatamente irá aparecer os comandos em que a palavra que digitou aparece. Caso tiver mais ocorrências com a mesma palavra, basta continuar apertando o Crtl + R que ele vai buscar a próxima e a próxima e a próxima, até que você selecione com o Enter ou cancele com o ESC.

(Se não fosse o Ctrl + R eu estaria [PF]er[rd][ai]do (dá-lhe ER)!)

B: O !

E caso você esteja num server modo texto, portanto sem mouse, não quer usar o Ctrl + R, não quer criar calos nos dedos usando a seta pra cima e precisa usar um comando usado anteriormente sem redigitar, pode também usar o ! + número da posição na lista que obteve com history ou history | grep comando.

Por exemplo:

history
1507  vi /root/scripts/db_mail.sh
1508  cd /root/scripts/
1509  ll
1510  vi db_nota.sh
1511  crontab -e
1512  df -h
1513  mysqldump -u root -p moodle | gzip >  /home/nginx/localhost/public/backup/moodle_bkp_23_06_15.sql.gzip
1514  cd /home/nginx/localhost/public/
1515  gzip backup/moodle_bkp_23_06_15.sql
1516  git add *
1517  git commit -m "BKP + BD + REL_ASS"
1518  git push origin master
1519  exit
1520  crontab -e


Vamos supor que eu deseje reexecutar o comando "mysqldump -u....". Como podemos ver, o número do comando é 1513.

Então, é só fazer assim:

!1513

Pronto!

Dica 4: atalhos diversos

Nesta dica vou mostrar alguns atalhos que uso no dia a dia, claro que existem muito mais que isso, mas estes são alguns dos que uso rotineiramente (nas próximas dicas, posto mais). São eles:
  • Ctrl + A - move o cursor para o início da linha/comando.
  • Ctrl + E - move o cursor para o fim da linha/comando.
  • Ctrl + K - apaga da posição atual do cursor até o fim da linha (direita).
  • Ctrl + U - apaga da posição atual do cursor até o começo da linha (esquerda).

Imagine a seguinte situação: Você acaba colar um comando gigante no prompt e percebe que não era o que desejava.

Exemplo:

for i in `find ~/ -type f -name *.tex`; do arq=`echo $i | awk -F"." '{print$1}'`; pandoc -t docx -f latex -o $arq.docx $i;echo -e "Arquivo $i foi convertido para $arq.docx..."; if [ `ls *.tex | wc -l` < 20 ]; then echo -e " o numero padrao de arquivos geralmente é 20, vc acaba de ultrapassar esse nr."; else echo -e "....convertendo....";fi ;done

Agora para apagar ele, tem algumas opções:
  • Segurar a tecla Backspace
  • Apertar Ctrl + C e correr o risco de abortar algum processo a mais.

Ou do jeito mais prático: Apertar Ctrl + A + K.

E se por exemplo você quer usar apenas uma parte e não quer apagar todo ele? Simples, posicione o cursor até o ponto em que deseja manter e aperte Ctrl + K, isso vai apagar tudo que estiver à direita do cursor. Ou se a parte que deseja está à direita, posicione o cursor até o ponto em que deseja manter e aperte Ctrl + U, isso vai apagar tudo que estiver à esquerda do cursor.

Shift + PgUp ou PgDown - essa é rápida, simples e útil. Use as teclas Shift + PgUp para rolar a tela para cima e Shift + PgDown para rolar a tela para baixo. Num terminal e sem mouse, isso ajuda muito.

Ctrl + Z - essa, apesar de simples, uso muuuito.

Imagine que você está conectado via SSH num server e mandou rodar um mysqldump num BD gigante ou mandou converter os .wav pra .mp3 do seu VoIP e esqueceu de colocar o & pra executar em background e precisa executar outro comando, mas a sessão está presa com dump. Você tem algumas alternativas, mas nenhuma delas é mais rápida que apertar Ctrl + Z. Isso vai pausar o processo atual, daí basta digitar bg e apertar enter, isso irá mandar o processo atual para background. Daí pode executar seu comando urgenteee. :)

Faça um teste bem simples aí:

cat
^Z
[1]+  Parado       cat


bg
[1]+ cat &

Se quiser voltar o comando que está em background, basta digitar fg e apertar enter:

fg
cat

ALT + . - esse atalho representa o último parâmetro informado. Como uso ele?

Imagine que acabou de criar ou copiar um arquivo para um diretório em que o caminho é muito longo e precisa na sequência entrar nesse local. Para isso, uso o ALT + .. Por exemplo:

find . -type f -iname *.jpg -exec cp {} /um/caminho/de/diretorio/realmente/muito/longo \;

Daí se precisar entrar ou listar o conteúdo do diretório para verificar se tudo ocorreu bem, você precisa digitar esse caminho gigantesco? Nope! Basta digitar cd, ls ou qualquer outro comando que deseja executar usando o caminho e apertar a tecla Alt + a tecla ".".

Dica 5: Curiosidades - Cores no shell

Como prometido, a última dica sempre será uma curiosidade no shell.

Se você usa Shell Script, gosta de escrever mensagens coloridas, efeitos ou quer personalizar o terminal, aqui segue um comando que exibe todas as cores possíveis no seu terminal (juntamente com seu respectivo código):

e="\033[";for f in 0 7 `seq 6`; do no="" bo=""; for b in n 7 0 `seq 6`; do co="3$f"; p=" "; [ $b = n ] || { co="$co;4$b";p=""; }; no="${no}${e}${co}m ${p}${co} ${e}0m"; bo="${bo}${e}1;${co}m ${p}1;${co} ${e}0m"; done; echo -e "$no\n$bo"; done

Bom, é isso aí pessoal. Espero que tenham gostado das dicas. Logo, logo posto mais, dando continuidade à série Diário do SysAdmin.

Tenha um ótimo dia.
Grande Abraço.

@Tonyhts

   

Páginas do artigo
   1. Diário de um SysAdmin 1
Outros artigos deste autor

Diário de um SysAdmin 2 - Truques | Macetes | Atalhos & Comandos

Leitura recomendada

Instalação do Zabbix 1.6 no CentOS 5

TDE no openSUSE

GoboLinux? Que distribuição é essa? (Parte 1- Primeiros contatos)

Arch Linux - Passo a passo pós-instalação

Gentoo binário ao lado da sua distro atual

  
Comentários
[1] Comentário enviado por wagnerfs em 22/07/2015 - 08:57h

Artigo bem objetivo e acima de tudo prático e útil. Parabéns por compartilhar o conhecimento!
_________________________
Wagner F. de Souza
Técnico/Instrutor de Informática
"GNU/Linux for human beings."
LPI ID: LPI000297782

[2] Comentário enviado por danniel-lara em 22/07/2015 - 09:50h


Parabéns pelo Artigo muito bom

[3] Comentário enviado por tonyhts em 22/07/2015 - 09:57h


[1] Comentário enviado por K666 em 22/07/2015 - 08:57h

Artigo bem objetivo e acima de tudo prático e útil. Parabéns por compartilhar o conhecimento!
_________________________
Wagner F. de Souza
Técnico/Instrutor de Informática
"GNU/Linux for human beings."
LPI ID: LPI000297782


Valew Wagner. to escrevendo as demais aqui. Comecei do mais simples e a medida que for saindo vai aumenta do o nivel dos comandos e complexidade das tarefas. algo como: do basico ao avançado...

Da uma trabalheira danada.rs..


abs

[4] Comentário enviado por tonyhts em 22/07/2015 - 09:59h


[2] Comentário enviado por danniel-lara em 22/07/2015 - 09:50h


Parabéns pelo Artigo muito bom


Valeuu!

Eu enviei como dica, mas acho que ficou grande dmais.rs e foi marcado como artigo.

abs


[5] Comentário enviado por rbonfim em 22/07/2015 - 12:02h

Artigo de importância fundamental para os sysadmins! Parabéns Tony!
__#$
root@human:/#apt-get install -y brain
"Conhecimento é livre"

[6] Comentário enviado por tonyhts em 22/07/2015 - 12:35h


[5] Comentário enviado por rbonfim em 22/07/2015 - 12:02h

Artigo de importância fundamental para os sysadmins! Parabéns Tony!
__#$
root@human:/#apt-get install -y brain
"Conhecimento é livre"


Opa! valeu.
Tem bastante dicas a contribuir ainda..
Sofri muito já, acho que compartilhando esses conhecimentos, vai ajudar a galera que ta começando...

abs

[7] Comentário enviado por sergeimartao em 22/07/2015 - 13:21h

Muito interessante esses truques, parabéns!

[8] Comentário enviado por sacioz em 22/07/2015 - 13:36h

Nem li ainda , ja de fav. e esperamos a continuação ...vlw !

[9] Comentário enviado por tonyhts em 22/07/2015 - 15:06h


[7] Comentário enviado por sergeimartao em 22/07/2015 - 13:21h

Muito interessante esses truques, parabéns!


Valeu Brother!

abs,

[10] Comentário enviado por tonyhts em 22/07/2015 - 15:07h


[8] Comentário enviado por sacioz em 22/07/2015 - 13:36h

Nem li ainda , ja de fav. e esperamos a continuação ...vlw !


Opa! kkk Valeu!
logo mais...

abs

[11] Comentário enviado por jeanlandim em 22/07/2015 - 22:17h

Muito bom. Já tá nos favoritos!

[12] Comentário enviado por rcjeferson em 23/07/2015 - 13:37h


Favoritado! Muito bom!

[13] Comentário enviado por tonyhts em 23/07/2015 - 15:32h


[12] Comentário enviado por rcjeferson em 23/07/2015 - 13:37h


Favoritado! Muito bom!


opa! Valeu!

[14] Comentário enviado por tonyhts em 23/07/2015 - 15:33h


[11] Comentário enviado por jeanlandim em 22/07/2015 - 22:17h

Muito bom. Já tá nos favoritos!


Noix!

[15] Comentário enviado por Tacioandrade em 25/07/2015 - 02:17h

Parabéns realmente um ótimo artigo, a dica 1 eu já sabia, porem odeio digitar com {} (traumas da época que era obrigado a programar), por isso prefiro continuar com os Tabs, porem as dicas de !! (que já conhecia, porem na hora H nunca lembrava), Crtl+R, history, etc, vou tentar levar para o resto da vida de sysadmin. =D


Att. Tácio Andrade.

[16] Comentário enviado por tonyhts em 25/07/2015 - 10:55h


[15] Comentário enviado por Tacioandrade em 25/07/2015 - 02:17h

Parabéns realmente um ótimo artigo, a dica 1 eu já sabia, porem odeio digitar com {} (traumas da época que era obrigado a programar), por isso prefiro continuar com os Tabs, porem as dicas de !! (que já conhecia, porem na hora H nunca lembrava), Crtl+R, history, etc, vou tentar levar para o resto da vida de sysadmin. =D


Att. Tácio Andrade.


kkkk. legal Tacio, obrigado.

A alternativa entre os traumas das chaves e a utilizacao dos tabs é o ALT + . (ponto)

abração.

[17] Comentário enviado por demoncyber em 27/07/2015 - 08:40h

Olá,

Eu acho engraçado as pessoas não gostarem do emacs :P e adorarem as hotkeys deles existentes no bash.
CTRL+A, CTRL+E, CTRL+U, CTRL+K, CTRL+R .. as pessoas sabem usar naturalmente o emacs só não se aventuram por desconforto de algo novo, depois quando engata nos buffer e abrir vários buffers no emacs ele se destaca mais :) .. logo se não utilizas te recomendo experimentar.

Abraços, ótimo texto.

[18] Comentário enviado por Lwkas em 27/07/2015 - 13:49h


Muito bom. Parabéns.

[19] Comentário enviado por tonyhts em 27/07/2015 - 23:38h


[17] Comentário enviado por demoncyber em 27/07/2015 - 08:40h

Olá,

Eu acho engraçado as pessoas não gostarem do emacs :P e adorarem as hotkeys deles existentes no bash.
CTRL+A, CTRL+E, CTRL+U, CTRL+K, CTRL+R .. as pessoas sabem usar naturalmente o emacs só não se aventuram por desconforto de algo novo, depois quando engata nos buffer e abrir vários buffers no emacs ele se destaca mais :) .. logo se não utilizas te recomendo experimentar.

Abraços, ótimo texto.


kkk. Verdade.
Não só uso como também recomendo.

Obrigado

abraços!

[20] Comentário enviado por xerxeslins em 28/07/2015 - 07:47h


Favoritado com certeza!

[21] Comentário enviado por tonyhts em 28/07/2015 - 12:44h


[20] Comentário enviado por xerxeslins em 28/07/2015 - 07:47h


Favoritado com certeza!


Valeu mestre!!

abs

[22] Comentário enviado por prfindio em 30/07/2015 - 11:15h

Caraca! Muito bom!
Principalmente o Hystory e o CP, sujeito se mata aqui no Debian em modo texto como Firewall e as vezes perde maior tempão com essas coisinhas, isso se não errar alguma besteirinha que em momento de pressão pode fazer surtar hehe
Trabalhar num hospital com mais de 200 maquinas é tenso... ja fiz script pra tudo que podia, só pra adiantar as coisas, mas as vezes são coisas simples de no maximo 5 comandos e essas dicas vão me agilizar muito.
Obrigado pelas dicas!

[23] Comentário enviado por ygorth em 30/07/2015 - 17:28h

Maneiro o artigo, obrigado por compartilhar. :)

[24] Comentário enviado por tonyhts em 30/07/2015 - 20:37h


[22] Comentário enviado por prfindio em 30/07/2015 - 11:15h

Caraca! Muito bom!
Principalmente o Hystory e o CP, sujeito se mata aqui no Debian em modo texto como Firewall e as vezes perde maior tempão com essas coisinhas, isso se não errar alguma besteirinha que em momento de pressão pode fazer surtar hehe
Trabalhar num hospital com mais de 200 maquinas é tenso... ja fiz script pra tudo que podia, só pra adiantar as coisas, mas as vezes são coisas simples de no maximo 5 comandos e essas dicas vão me agilizar muito.
Obrigado pelas dicas!


Valew!
A ideia é justamente essa, comandinhos rapidos e eficientes.
Nos próximos capítulos, vou falar de loops, scriptzinho pra cron, at, regras iptables, load balance, triggers mysql e etc...
abs

[25] Comentário enviado por tonyhts em 30/07/2015 - 20:38h


[23] Comentário enviado por ygorth em 30/07/2015 - 17:28h

Maneiro o artigo, obrigado por compartilhar. :)


Opa, valeu brother!

[26] Comentário enviado por AugustoRibeiro em 02/08/2015 - 12:29h

Parabéns cara !! nem li ainda mais já agradeço, huehuehue era exatamente isso que eu procurava!! Obrigado mesmo !!

[27] Comentário enviado por sidnei.weber em 02/08/2015 - 14:35h


Uso todas as dicas. Compartilhar conhecimento, esse é o caminho !!!

[28] Comentário enviado por tonyhts em 02/08/2015 - 17:06h


[26] Comentário enviado por AugustoRibeiro em 02/08/2015 - 12:29h

Parabéns cara !! nem li ainda mais já agradeço, huehuehue era exatamente isso que eu procurava!! Obrigado mesmo !!


Opa! Valew .
Que bom que gostou. Essa semana sai a parte 2 com mais alguns truques...

abs

[29] Comentário enviado por tonyhts em 02/08/2015 - 17:08h


[27] Comentário enviado por sidnei.weber em 02/08/2015 - 14:35h


Uso todas as dicas. Compartilhar conhecimento, esse é o caminho !!!


É isso ai !
VivaoLinux!

abs

[30] Comentário enviado por Buckminster em 28/01/2016 - 22:15h

Excelente!
Parabéns!

[31] Comentário enviado por tonyhts em 30/01/2016 - 14:30h

Opa, Valew mestre!!!

abs,
---
Eu Acredito, que ás vezes são as pessoas que ninguém espera nada que fazem as coisas que ninguém consegue imaginar.

--- Mestre dos Mestres - Alan Turing ---

[32] Comentário enviado por tonyhts em 03/02/2016 - 23:21h


[30] Comentário enviado por Buckminster em 28/01/2016 - 22:15h

Excelente!
Parabéns!



Opa, Valew mestre!!!

abs,


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts