Risposte:
Schermata GNU : essenziale quando si gestiscono numerosi sistemi e non si desidera aprire una dozzina di finestre terminali.
Alcuni so che non potrei vivere senza ...
tee - consente la scrittura simultanea su STDOUT (output standard) e un file. Ottimo per visualizzare informazioni e registrarle per dopo.
top - il task manager di UNIX, offre un'ottima panoramica del sistema.
tail -f - ti permette di visualizzare i dati aggiunti man mano che un file cresce, ottimo per monitorare i file di registro su un server.
grep - Global Regular Expression Print, ideale per la ricerca di dati nei file nel sistema.
df - riporta l'utilizzo del disco dei filesystem correnti.
du - riporta l'utilizzo del disco di un determinato file / directory.
meno - necessario per visualizzare le pagine man! utile anche per visualizzare l'output dei comandi in un modo facilmente ricercabile.
vim / Emacs / nano / pico / ed - qualunque sia il tuo editor di testo preferito, si spiega da solo perché è necessario.
more
o less
, puoi sempre provare most
.
htop
è una versione "migliore" di top
.
lsof per determinare quali processi utilizzano un file o una directory (utile quando si cerca di capire cosa impedisce a un dispositivo di essere smontato)
netstat per determinare quali processi utilizzano connessioni di rete (particolarmente utile quando si cerca di capire quale demone è associato a una determinata porta)
Scopri tutti gli strumenti di base, ma impara Perl.
Perl è l'ideale per manipolare il testo e poiché gli operatori un * x vivono su file di testo, pipe, input e output, Perl si adatta perfettamente.
Il vantaggio aggiuntivo è che Perl è multipiattaforma e se devi fare un po 'di lavoro su una finestra di Windows hai una lingua facilmente installabile (basta rilasciare una directory Perl sul server) che già conosci.
E su quel treno di pensieri, prendi anche Cygwin. Se sei un amministratore un * x e devi lavorare su una finestra di Windows (anche sul desktop) con ls, rm, grep, sed, tail ecc, risparmierai molto tempo quando cambi il sistema operativo.
I nonni dimenticati dei moderni sistemi di scripting. So che Perl ottiene la maggior parte dell'amore (insieme a Bash scripting, Python, Ruby e [inserisci qui il tuo linguaggio di scripting preferito]), e non fraintendetemi, adoro Perl. Lo uso quasi ogni giorno.
Ma sed e awk non dovrebbero essere dimenticati, trascurati o ignorati. In molti casi, sed e awk sono gli strumenti migliori per il lavoro. Esempi rapidi sono il filtraggio della riga di comando con sed e l'elaborazione dei log rapida e sporca con awk. Entrambi potrebbero essere realizzati in Perl, ma richiederanno più tempo di lavoro e sviluppo.
Netcat.
La rete coltellino svizzero, come si suol dire.
Per script rapidi, automazione, ecc:
Per connettersi al server * NIX:
Uso la maggior parte degli strumenti già elencati, ma eccone uno che nessuno ha ancora toccato:
Puppet - sistema per automatizzare le attività di amministrazione del sistema
Un paio di strumenti utili che non ho ancora visto menzionati:
expect
ClusterSSH controlla un numero di finestre xterm tramite un'unica finestra della console grafica per consentire l'esecuzione interattiva dei comandi su più server tramite una connessione ssh.
pv: visualizza l'avanzamento delle operazioni lunghe che possono essere reindirizzate. http://www.ivarch.com/programs/pv.shtml
Utile quindi vuoi monitorare qualcosa che sta per richiedere secoli, come copiare / comprimere un dispositivo a blocchi non elaborati sulla rete (che è il modo in cui prendo i backup di paranoia del mio netbook da 8 GB prima di armeggiare con qualcosa di importante come modificare le impostazioni del file system).
Inoltre: voterò in secondo luogo per ssh, rsync, screen, htop e netcat, come menzionato dalle persone sopra - tutto ciò è più importante del pv ma il pv non era ancora stato menzionato. In effetti pv è spesso un'utile aggiunta quando si effettua il piping di roba da o verso netcat.
pv
può essere uno strumento utile, ma fai attenzione a non abusarne. Passare i dati attraverso di esso ha assolutamente un impatto sulle prestazioni (tutti i dati devono passare attraverso un altro programma). Nel mio ultimo lavoro, abbiamo svolto molta elaborazione dei log. Uno dei ragazzi ha deciso di iniziare a inserire pv in tutti gli script di elaborazione dei log, fino a quando non abbiamo scoperto che per loro era stato aggiunto circa il 15% al tempo di elaborazione. Ora viene utilizzato solo per lavori che richiedono meno di pochi minuti o che presentano una limitazione delle risorse esistente (come l'attraversamento di una connessione di rete lenta).
pv
è legato a I / O su disco o di rete piuttosto che su CPU / memoria). Lo stesso argomento è quello chiave contro l'uso cat
eccessivo di (a volte uso cat quando non è effettivamente necessario solo per far leggere bene le cose da sinistra a destra, ma la copia dei dati in memoria aggiuntiva tramite la pipe e il cambio di contesto possono avere un impatto misurabile delle prestazioni).
cat
uso eccessivo viene dal principio cat foo
, seguito dal colpire la freccia "su" e quindi aggiungendo | [command]
alla mia riga precedente. So che sto subendo un (piccolo) colpo di performance mantenendo il gatto lì dentro, ma lasciarlo richiede meno sforzo di riscrivere / riscrivere il comando [command] < foo
. Non è un problema per (la maggior parte) linea di lavoro ad hoc, ma non è l'ideale per gli script (lo stesso di quello che provo pv
, credo).
reindirizzare l'output di tar a un'altra utility, tar in esecuzione sulla stessa scatola o tar in esecuzione su SSH è la mia mossa Unix preferita della vecchia scuola per spostare i file da un posto all'altro.
Questo ti dà anche l'opzione in stile Windows di copiare una cartella in un'altra e finire con tutti i file nella directory di origine e di destinazione.
zsh come una shell
È particolarmente efficiente con le estensioni / impostazioni di grml.org .
iotop, è un programma top-like per monitorare gli accessi I / O ai tuoi dischi.
La maggior parte di questi strumenti sono resi molto più potenti usando il "completamento programmabile" di Bash - in modo da poter completare schede come le opzioni della riga di comando o pronunciare il nome di un pacchetto con "apt-get install". Limita anche ciò che completi di tabulazione per i file pertinenti, ad esempio "decomprimere" completerà solo i file di archivio supportati.
Sono davvero i mutanti - se non l'hai mai provato probabilmente dovrai solo giocherellare con il tuo .bashrc:
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
Certamente questo è vero su Ubuntu e Debian. Potrebbe essere necessario ottenere il pacchetto su alcune distribuzioni Linux.
Alcune risposte aggiuntive sono disponibili in questa domanda simile
Alcune cose trascurate che volevo menzionare.
Oh, e ho dimenticato di menzionare, durante lo scripting, credo che dovresti sempre usare Korn. Odio i Korn (non la band. Adoro la band :-P) ma è letteralmente ovunque. Puoi prendere uno script e spostarlo tra Solaris, AIX e Linux e non devi preoccuparti se l'amministratore ha avuto la decenza di installare Bash.
Uno strumento a volte molto utile è nohup. Lo uso per eseguire script che durano a lungo utilizzando client SSH remoti.