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: 12.001 ]

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

Sugestões sobre distros Linux e particionamento de HD

Tipos de permissões especiais GNU/Linux

Incentivo ao Funtoo

Três distros inspiradas no Mac OS

10 dicas para aprender a programar por conta própria

  
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
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts