Respostas:
Tela GNU - essencial quando você gerencia um grande número de sistemas e não deseja ter uma dúzia de janelas de terminal abertas.
Alguns sei que não posso viver sem ...
tee - permite gravação simultânea em STDOUT (saída padrão) e um arquivo. Ótimo para visualizar informações e registrá-las para mais tarde.
top - o gerenciador de tarefas do UNIX, oferece uma ótima visão geral do sistema.
tail -f - permite visualizar dados anexados à medida que um arquivo cresce, ótimo para monitorar arquivos de log em um servidor.
grep - Impressão de expressão regular global, excelente para pesquisar dados no sistema no sistema.
df - relata o uso do disco dos sistemas de arquivos atuais.
du - relata o uso do disco de um determinado arquivo / diretório.
menos necessário para visualizar as páginas de manual! também é útil para visualizar a saída de comandos de uma maneira facilmente procurável.
vim / Emacs / nano / pico / ed - qualquer que seja o seu editor de texto preferido, explique por que é necessário.
more
ou less
, pode sempre tentar most
.
htop
é uma versão "melhor" do top
.
lsof para determinar quais processos estão usando um arquivo ou diretório (útil ao tentar descobrir o que está impedindo que um dispositivo seja desmontado)
netstat para determinar quais processos estão usando conexões de rede (especialmente útil ao tentar descobrir qual daemon está vinculado a uma determinada porta)
Aprenda todas as ferramentas básicas, mas aprenda Perl.
O Perl é ideal para manipular texto, e como os operadores un * x vivem em arquivos de texto, pipes, entrada e saída, o Perl é um ótimo ajuste.
O bônus adicional é que o Perl é multiplataforma e, se você precisar fazer algum trabalho em uma caixa do Windows, terá uma linguagem facilmente instalável (basta soltar um diretório Perl no servidor) que você já conhece.
E nessa linha de pensamento, pegue Cygwin também. Se você é um administrador un * x e precisa trabalhar em uma caixa do Windows (até mesmo na sua área de trabalho) com ls, rm, grep, sed, tail etc, economiza muito tempo ao trocar de SO.
Os avós esquecidos do script de sistemas modernos. Eu sei que o Perl adquire a maior parte do amor (junto com os scripts Bash, Python, Ruby e [insira sua linguagem de script favorita aqui]), e não me interpretem mal, eu amo o Perl. Faço uso quase diariamente.
Mas sed e awk não devem ser esquecidos, esquecidos ou ignorados. Em muitos casos, sed e awk são as melhores ferramentas para o trabalho. Exemplos rápidos são a filtragem de linha de comando com sed e o processamento rápido e sujo de logs com awk. Ambos podem ser feitos em Perl, mas exigirão mais tempo de trabalho e desenvolvimento.
Netcat.
A rede canivete suíço, como eles dizem.
Para scripts rápidos, automação, etc:
Para se conectar ao seu servidor * NIX:
Eu uso a maioria das ferramentas já listadas, mas aqui ninguém tocou ainda:
Puppet - sistema para automatizar tarefas de administração do sistema
Algumas ferramentas úteis que ainda não vi mencionadas:
expect
O ClusterSSH controla várias janelas xterm por meio de uma única janela gráfica do console para permitir que os comandos sejam executados de maneira interativa em vários servidores através de uma conexão ssh.
pv: exibe o progresso de operações longas que podem ser redirecionadas. http://www.ivarch.com/programs/pv.shtml
Útil, então, você deseja monitorar algo que vai levar muito tempo, como copiar / compactar um dispositivo de bloco bruto pela rede (que é como eu tiro backups de paranóia do meu netbook de 8Gb antes de mexer em algo importante, como ajustar as configurações do sistema de arquivos).
Além disso: vou votar em segundo lugar para ssh, rsync, screen, htop e netcat, como mencionado pelas pessoas acima - todos os quais são mais importantes que pv, mas pv ainda não foram mencionados. De fato, o pv é frequentemente uma adição útil ao canalizar coisas de ou para o netcat.
pv
pode ser uma ferramenta útil, mas cuidado com o uso excessivo. Passar os dados por ele absolutamente tem um impacto no desempenho (todos os dados precisam passar por outro programa). No meu último trabalho, fizemos muito processamento de log. Um dos caras decidiu começar a colocar o pv em todos os scripts de processamento de log, até descobrirmos que isso adicionava cerca de 15% ao tempo de processamento para eles. Agora, ele é usado apenas para tarefas que levam menos de alguns minutos ou que possuem uma limitação de recursos existente (como atravessar uma conexão de rede lenta).
pv
é no limite de E / S de disco ou de rede, em vez de limite de CPU / memória). O mesmo argumento é a chave contra o uso excessivo cat
também (às vezes eu uso o gato quando na verdade não é necessário apenas para fazer com que as coisas sejam lidas da esquerda para a direita, mas os dados extra na memória que copiam através do pipe e da alternância de contexto podem ter um impacto mensurável no desempenho).
cat
uso excessivo vem do começo cat foo
, seguido pela seta "para cima" e, em seguida, adiciono | [command]
à minha linha anterior. Eu sei que estou sofrendo um (pequeno) desempenho mantendo o gato lá, mas deixá-lo exige menos esforço do que reescrever / redigitar o comando [command] < foo
. Não é uma preocupação para (a maioria) o trabalho de linha de comando ad hoc, mas não é ideal para scripts ( pv
acho que é o mesmo que eu acho).
canalizar a saída do tar para outro utilitário, tar na mesma caixa ou tar sobre SSH é o meu movimento favorito do Unix da velha escola para mover arquivos de um lugar para outro.
Isso também oferece a opção no estilo do Windows de copiar uma pasta para outra e terminar com todos os arquivos no diretório de origem e destino.
zsh como uma concha
É especialmente eficiente com as extensões / configuração do grml.org .
iotop, é um programa top-like para monitorar acessos de E / S aos seus discos.
A maioria dessas ferramentas é muito mais poderosa usando o Bash "conclusão programável" - para que você possa concluir a tabulação, como opções de linha de comando, ou dizer o nome de um pacote com "apt-get install". Ele também limitará o que você preenche com guias em arquivos relevantes - por exemplo, "descompactar" apenas conclui os arquivos compactados.
São realmente as vira-latas - se você nunca experimentou, provavelmente precisará mexer no seu .bashrc:
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
Certamente isso é verdade no Ubuntu e Debian. Pode ser necessário obter o pacote em algumas distribuições Linux.
Algumas respostas adicionais podem ser encontradas nesta pergunta semelhante
Algumas coisas esquecidas eu queria mencionar.
Ah, e eu esqueci de mencionar, ao criar scripts, acredito que você sempre deve usar o Korn. Eu odeio Korn (não a banda. Eu amo a banda :-P), mas está literalmente em todo lugar. Você pode pegar um script e movê-lo entre Solaris, AIX e Linux e não precisa se preocupar se o administrador teve ou não a decência de instalar o Bash.
Uma ferramenta às vezes muito útil é o nohup. Eu o uso para executar scripts que duram muito tempo usando clientes SSH remotos.