Antworten:
GNU-Bildschirm - unverzichtbar, wenn Sie eine große Anzahl von Systemen verwalten und nicht möchten, dass ein Dutzend Terminalfenster geöffnet ist.
Einige, von denen ich weiß, dass ich ohne sie nicht leben kann ...
tee - Ermöglicht das gleichzeitige Schreiben von STDOUT (Standardausgabe) und einer Datei. Hervorragend zum Anzeigen und Protokollieren von Informationen.
top - der Task-Manager von UNIX gibt einen guten Überblick über das System.
tail -f - Mit dieser Option können Sie angehängte Daten anzeigen, während eine Datei wächst. Dies ist ideal für die Überwachung von Protokolldateien auf einem Server.
grep - Globaler Ausdruck für reguläre Ausdrücke, ideal zum Durchsuchen des Systems nach Daten in Dateien.
df - meldet die Festplattenauslastung der aktuellen Dateisysteme.
du - meldet die Festplattennutzung einer bestimmten Datei / eines bestimmten Verzeichnisses.
weniger - wird zum Anzeigen von Manpages benötigt! auch nützlich, um die Ausgabe von Befehlen auf leicht auffindbare Weise anzuzeigen.
vim / Emacs / nano / pico / ed - Was auch immer Ihr Texteditor Ihrer Wahl sein mag, selbsterklärend, warum er benötigt wird.
more
oder less
, können Sie immer versuchen most
.
htop
ist eine "bessere" Version von top
.
So ermitteln Sie, welche Prozesse eine Datei oder ein Verzeichnis verwenden (nützlich, wenn Sie herausfinden möchten, was das Ummounten eines Geräts verhindert)
netstat, um festzustellen, welche Prozesse Netzwerkverbindungen verwenden (besonders nützlich, wenn Sie herausfinden möchten, welcher Dämon an einen bestimmten Port gebunden ist)
Lernen Sie alle grundlegenden Tools, aber lernen Sie Perl.
Perl ist ideal für die Bearbeitung von Text. Da un * x-Operatoren von Textdateien, Pipes, Eingaben und Ausgaben leben, ist Perl eine hervorragende Lösung.
Der zusätzliche Vorteil ist, dass Perl plattformübergreifend ist und Sie eine leicht installierbare Sprache (legen Sie einfach ein Perl-Verzeichnis auf dem Server ab) haben, die Sie bereits kennen, wenn Sie etwas an einer Windows-Box arbeiten müssen.
Und in diesem Gedankengang holen Sie sich auch Cygwin. Wenn Sie ein un * x-Administrator sind und an einer Windows-Box (sogar Ihrem Desktop) mit ls, rm, grep, sed, tail usw. arbeiten müssen, sparen Sie beim Wechseln des Betriebssystems viel Zeit.
Die vergessenen Großväter der modernen Skripterstellung. Ich weiß, dass Perl den größten Teil der Liebe bekommt (zusammen mit Bash-Skripten, Python, Ruby und [fügen Sie hier Ihre Lieblingsskriptsprache ein]), und verstehen Sie mich nicht falsch, ich liebe Perl. Ich benutze es fast täglich.
Aber sed und awk sollten nicht vergessen, übersehen oder ignoriert werden. Sed und awk sind in vielen Fällen die besten Werkzeuge für den Job. Schnelle Beispiele sind die Befehlszeilenfilterung mit sed und die schnelle und fehlerhafte Protokollverarbeitung mit awk. Beides könnte in Perl erfolgen, erfordert jedoch mehr Arbeit und Entwicklungszeit.
Netcat.
Das Netzwerk Schweizer Taschenmesser, wie man sagt.
Für schnelle Skripte, Automatisierung usw.:
So stellen Sie eine Verbindung zu Ihrem * NIX-Server her:
Ich verwende die meisten der bereits aufgelisteten Tools, aber hier ist eines, das noch niemand angesprochen hat:
Puppet - System zur Automatisierung von Systemverwaltungsaufgaben
Ein paar nützliche Tools, die ich noch nicht gesehen habe:
expect
ClusterSSH steuert eine Reihe von xterm-Fenstern über ein einziges grafisches Konsolenfenster, damit Befehle über eine ssh-Verbindung interaktiv auf mehreren Servern ausgeführt werden können.
pv: Zeigt den Fortschritt langer Operationen an, die umgeleitet werden können. http://www.ivarch.com/programs/pv.shtml
Nützlich, wenn Sie etwas überwachen möchten, das Ewigkeiten in Anspruch nehmen wird, wie das Kopieren / Komprimieren eines Raw-Block-Geräts über das Netzwerk (auf diese Weise erstelle ich paranoide Backups meines 8-GB-Netbooks, bevor ich an wichtigen Dingen wie dem Ändern der Dateisystemeinstellungen arbeite).
Außerdem: Ich werde für ssh, rsync, screen, htop und netcat Zweitstimmen abgeben, wie von den oben genannten Personen erwähnt - allesamt wichtiger als pv, aber pv wurde noch nicht erwähnt. In der Tat ist pv oft eine nützliche Ergänzung, wenn Sie etwas zu oder von Netcat leiten.
pv
kann ein praktisches Werkzeug sein, aber hüte dich davor, es zu überbeanspruchen. Die Weitergabe der Daten wirkt sich absolut auf die Leistung aus (alle Daten müssen ein anderes Programm durchlaufen ). Bei meinem letzten Job haben wir viel Holz verarbeitet. Einer der Jungs entschied sich dafür, pv in alle Protokollverarbeitungsskripte einzufügen, bis wir herausfanden, dass sich die Verarbeitungszeit für sie um etwa 15% verlängerte. Jetzt wird es nur für Aufträge verwendet, die weniger als ein paar Minuten dauern oder bei denen eine Ressourcenbeschränkung besteht (z. B. das Überqueren einer langsamen Netzwerkverbindung).
pv
ist festplatten- oder netzwerkgebundene E / A und nicht CPU / Speichergebunden). Das gleiche Argument ist das Schlüsselwort gegen übermäßigen Gebrauch von cat
zu (ich benutze manchmal cat, wenn es nicht wirklich gebraucht wird, um die Dinge schön von links nach rechts zu lesen, aber das zusätzliche Kopieren von Daten im Speicher über die Pipe und die Kontextumschaltung kann ein Problem darstellen) messbare Auswirkungen auf die Leistung).
cat
Nutzung beginnt damit cat foo
, dass ich den Aufwärtspfeil drücke und dann | [command]
zu meiner vorherigen Zeile hinzufüge . Ich weiß, dass ich einen (kleinen) Leistungseinbruch erleide, indem ich die Katze dort drin halte, aber das Verlassen erfordert weniger Aufwand als das Umschreiben / erneute Eingeben des Befehls [command] < foo
. Keine Sorge für (die meisten) Ad-hoc-Kommandozeilen, aber nicht ideal für Skripte (so wie ich mich fühle pv
, denke ich).
Das Weiterleiten der Ausgabe von tar an ein anderes Dienstprogramm, an tar, das auf derselben Box ausgeführt wird, oder an tar, das über SSH ausgeführt wird, ist mein bevorzugter Unix-Vorgang der alten Schule zum Verschieben von Dateien von einem Ort an einen anderen.
Dies gibt Ihnen auch die Windows-ähnliche Möglichkeit, einen Ordner in einen anderen zu kopieren und alle Dateien im Quell- und Zielverzeichnis zu speichern.
zsh als Shell
Es ist besonders effizient mit den Erweiterungen / Setups von grml.org .
iotop ist ein top-ähnliches Programm zum Überwachen der E / A-Zugriffe auf Ihre Festplatten.
Die meisten dieser Tools werden durch die Verwendung von Bash "Programmable Completion" wesentlich leistungsfähiger. Sie können also beispielsweise Befehlszeilenoptionen durch Tabulatoren ergänzen oder den Namen eines Pakets mit "apt-get install" aussprechen. Es wird auch begrenzt, was Sie für relevante Dateien per Tab vervollständigen - zum Beispiel werden mit "unzip" nur unterstützte Archivdateien vervollständigt.
Es sind wirklich die Köter - wenn Sie es noch nie ausprobiert haben, müssen Sie wahrscheinlich nur Ihre .bashrc fummeln:
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
Dies gilt sicherlich für Ubuntu und Debian. Möglicherweise müssen Sie das Paket auf einigen Linux-Distributionen herunterladen.
Einige zusätzliche Antworten finden Sie in dieser ähnlichen Frage
Ein paar Dinge übersehen wollte ich erwähnen.
Oh, und ich habe vergessen zu erwähnen, dass Sie beim Schreiben immer Korn verwenden sollten. Ich hasse Korn (nicht die Band. Ich liebe die Band :-P), aber es ist buchstäblich überall. Sie können ein Skript nehmen und es zwischen Solaris, AIX und Linux verschieben, ohne sich Gedanken darüber machen zu müssen, ob der Administrator die Berechtigung hatte, Bash zu installieren.
Ein Werkzeug, das manchmal sehr praktisch ist, ist nohup. Ich verwende es, um Skripte mit entfernten SSH-Clients auszuführen, die eine lange Zeit dauern.
Bildschirm ist ein Muss, vor allem mit einer guten .screenrc-Datei. Ich habe es so konfiguriert, dass es visuell anzeigt, in welchem Fenster ich mich befinde und mit Strg + Pfeil zwischen ihnen wechseln kann. Für eine einzelne SSH-Sitzung und mehrere Shells ist dies ein Lebensretter.