Konsole

Die Konsole. Einfach und schön.
Vorteil: Macht genau das, was man ihr (in der richtigen Sprache) sagt.
Nachteil: Macht GENAU das was man ihr sagt.

Aber was jetzt? help gibt nur viele komische Wörter aus…

Hint: man intro

So fertig da steht alles drin und wenn nicht steht da wie man es raus bekommt. (RTFM)

Damit man sich nicht ständig wieder durchhangeln muss, sind ein paar Notizen hilfreich:


Ganz von vorn? OK.

Programme starten:

wenn es in /bin oder /usr/bin etc. ($PATH – s.u.) liegt einfach Programmnamen eingeben
Sonst mit Pfad.
& hinter dem Programmnamen schickt es sofort in den Hintergrund und man kann den nächsten Befehl eingeben.
mit && lassen sich Programme verketten und werden nacheinander ausgeführt.
|| Führt den folgende Programm nur aus, wenn das erste nicht richtig beendet wurde.

Programme beenden:

Vordergrundprozesse lassen sich meistens mit <Strg-c> beenden.
Mit kill kann jeder Prozess beendet werden.
Weigert sich ein Prozess muss man ihm nur mit -s das richtige Signal ( kill -l zeigt die Liste – du sucht 9) geben  steht aber natürlich auch alles in  man kill
killall prozessname beendet alle Prozesse mit dem Namen.

Grundkonfiguration einer Standardkonsole sind auch wieder im POSIX Stadard festgelegt.

Aber was gibt es denn für Programme?
Einige…

Standard Befehle

Eine Auswahl nützlicher Programme (für die jeweils eine eigene Manpage vorhanden ist).
Viele hiervon bekommen aber auch noch einen eigenen Beitrag wo sie etwas genauer erklärt werden.
Die aufgeführten sind normalerweise Standardbefehle kann aber sein dass einzelne nach der Minimalinstallation noch geholt werden müssen.

Dateisystem

cp quelle ziel Datei Kopieren

mv quelle ziel Datei Verschieben

rm datei datei löschen -r für Verzeichnisse mit Unterverzeichnissen

ln ziel linkname Verknüpfung erstellen. -s für symbolischen Link

df -h /verzeichnis Freien Festplattenplatz in Verzeichnis anzeigen (-h Zeigt in kB MB etc. zeigt sonst in Bytes)

du -h /verzeichnis Benutzten Festplattenplatz in Verzeichnis anzeigen  (-h Zeigt in kB MB etc. zeigt sonst in Bytes)

mount Dateisysteme anzeigen oder anhängenumount Dateisystem aushängen

chmod 640 datei Dateiberechtigungen anpassen ich benutze am liebsten die Oktale Variante. 4 Lesen 2 Schreiben 1 Ausführen 0 Kein Zugriff. Das kann man Zusammenzählen also 7=alles Verteilen in der Reihenfolge Benutzer, Gruppe, Öffentlich. Sticky-bit setzen ist auch möglich.

umask 137 datei Setzt die gleichen rechte wie chmod 640. Bei umask werden sie Abgezogen. Mit Umask kann aber auch – wenn keine Datei abgegeben wird die Standardberechtigung für neue Dateien festgelegt werden.

chown bzw. chgroup Benutzer bzw. Gruppenzugehörigkeit einer Datei ändern

touch datei datei erstellen oder Anstupsen (Verändert Zeitstempel)

find /Verzeichnis -name suche* Datei suchen. Als Option das zu durchsuchende Verzeichnis und -name Dateiname

diff datei1 datei2 Dateien vergleichen

tar Tar Archive Erstellen ( -cf archiv.tar datei1 datei2 ) oder Entpacken ( -xf archiv.tar )

gzip datei Komprimieren oder mit -d (oder gunzip datei entpacken

cat datei Text aus datei anzeigen

tr Zeichen ersetzen oder entfernen

tail Ende einer Datei anzeigen (Gegenteil von head ) mit-f auch live.

script datei Inhalt der Konsole in Datei schreiben. ( -f aktualisiert nach jedem Schreibzugriff ) Beenden mit exit.

less oder more Textdokument Seitenweise anzeigen

vi Texteditor

nano Benutzerfreundlicher Texteditor für nicht Nerds ;p

grep Daten durchsuchen und Ergebnisszeilen Ausgeben

sed Stream Editor – Gibts hier einen Artikel

awk wie sed nur um einiges umfangreicher –  eiiiiniges… ^^

tree Zeigt Verzeichnisstruktur an.

Prozesse

ps Prozesse anzeigen (pstree zeigt eine schöne Übersicht mit Kind und Elternprozessen)

top Taskmanager für die Konsole

crontab Cronjobs verwalten (Programm Zeitschaltuhr)

su benutzernameBenutzer wechseln (sudo führt Befehl als Superuser aus)

Infos

System

hostname Zeigt Rechnernamen

free -h Arbeitsspeichernutzung anzeigen (-h Zeigt in kB MB etc. free zeigt sonst in Bytes)

uname Systeminformationen Abfragen (Kernel, Architektur, Betriebssystem, …)

lsof Zeigt geöffnete Dateien

uptime Info wie lang der Server schon läuft, wie viele User angemeldet sind und die Auslastung.

date Zeigt Datum und Uhrzeit an

cal Zeigt einen Monatskalender :-O

Hardware

Eine gute Informationsquelle für Hardware ist auch immer das /proc/ Verzeichnis.

dmidecode Umfangreiche Hardwareabfrage

lspci Zeigt PCI Devices

lsusb Zeigt USB Devices

lsblk Zeigt Informationen zu vorhandenen Blockgeräten

blkid Zeigt die UUIDs der angeschlossenen Blockgeräte (Festplatte, CD, …)

e2label Devices Labelnamen zuordnen

mkswap swap Partiotion erstellen (sollte vorher schon angelegt worden sein)

swapon swap Partition einbinden

Schön aber nicht immer installiert:
lshw Gute Übersicht und erstellt auf Wunsch sogar eine HTML Datei mit den Hardwareinformationen.

Paketverwaltung

dpkg

Argumente zu dpkg

-i paket.deb .deb Paket installieren (Auch rekursiv)

-r paket paket entfernen

-l paket Pakete und Installationsstatus kurz anzeigen

-S datei Paket suchen, dass die Datei bereitstellt

apt

Anderes komfortables Paketverwaltungsprogramm:

Argumente zu apt

list Paketliste anzeigen. Noch weiter filterbar durch –installed , –upgradable oder –all-versions

search Pakete suchen

show Infos zu Paket anzeigen

Argumente zu apt-get

update Paketquellen neu einlesen

upgrade Update aller Programme (ausser die bei denen Neue Abhängigkeiten installiert werden müssten)

dist-upgrade Update aller Programme (Installiert auch neue Abhängigkeiten falls nötig)

install programm Programm Installieren

remove programm Programm Entfernen

autoremove Automatisch installierte Pakete die keine Abhängigkeiten mehr erfüllen entfernen.

purge programm Programm und dessen Konfiguration entfernen

clean Heruntergeladene Archive aufräumen – müssen dann bei erneuter Installation auch erneut heruntergeladen werden.

apt-cache Infos zu Paketen aus Zwischenspeicher

User

w Gibt aus, wer aktuell von wo wie lange eingeloggt ist (Kurzinfo auch mit who)

last Die letzten logins

passwd Passwort und Passworteinstellungen für einzelne Benutzer ändern

gpasswd GruppenPasswort und Einstellungen ändern

adduser benutzername Neuen Benutzer hinzufügen

addgroup gruppenname Gruppe anlegen

deluser benutzername delgroup gruppenname Benutzer oder Gruppe entfernen

usermod benutzername Einen Benutzer bearbeiten ( Bitte in der manpage Hinweise zu -a und -G lesen sonst schießt man sich evtl. aus allen Gruppen. Das kann vor allem beim Ubuntu sudo User ganz schön nervig sein 😉

chfn beutzername Benutzerinformaionen ändern

newgrp gruppenname Primärgruppe für aktuelle Sitzung ändern.

Netzwerk

ifconfig Netzwerkdevices anzeigen oder bearbeiten

iwconfig wLan Devices anzeigen oder bearbeiten

netstat Verbindungen anzeigen

arp tool zur ipv4 -> mac Zuordnung (-e zeigt aktuelle Tabelle an).

route Routingtabelle anzeigen oder bearbeiten

nc Netcat – Netzwerk Zauberding 🙂

traceroute ziel Route zum ziel anzeigen

tcpdump Gesamten Netzwerkverkehr anzeigen.

Standardmäßig nicht installiert aber brauchbar:

whois Abfrage von Informationen zu Domain oder IP Adresse

nslookup Nameserver Infos zu Domain oder IP Adresse abfragen (ist im Paket dnsutils zusammen mit dig und nsupdate)

Multiplayer Konsole

Sind wirklich mehrere User auf dem System gibt es noch alte kleine Unix Tools mit denen man etwas rumspielen kann.
write benutzername tty Der in de nächsten Zeilen übergebene Text wird dem Benutzer auf die Konsole geschickt.

wall Der in de nächsten Zeilen übergebene Text wird allen Benutzern auf die Konsole geschrieben.

mesg Prüfen oder ändern, ob nicht root Benutzer Nachrichten auf die Konsole schicken dürfen.

Nicht in der Minimalinstallation aber interessant:
finger benutzername Zeigt Informationen über einen Benutzer an. No mail. No Plan. xD

talk benutzername Ein Chat. (Dabei wird allerdings auch der talkd gebraucht) Eine schöne Version ist auch ytalk da kann im Chatfenster sogar eine Konsole geöffnet werden usw 🙂

bash

Je nach Shell hat man noch spezielle Befehle

Mit echo $0 kann man z.B. sehen, welche Shell man benutzt. Wahrscheinlich bash oder sh
Spezielle Einstellungen können in der Datei ~/.bashrc gespeichert werden.

man bash

hat wirklich viele Infos. Ein grober Überblick:

Befehle

Hier nur die grundlegenden bash Anweisungen.
Die Beschreibung der Befehle steht in der bash Manpage.

source datei oder als alias auch einfach . datei (ja das Leerzeichen ist wichtig) Führt Befehle aus datei aus. Dazu wird nicht wie bei direktem Ausführen eines Scripts eine neue Shell Instanz gestartet sondern alles in der aktuellen Shell ausgeführt. So können z.B. Umgebungsvariablen gesetzt werden.

alias lässt uns Shortcuts zu Befehlen erstellen. Ohne übergebenes Argument (name=inhalt) werden die Angelegten angezeigt. Die Zuordnung gelten nur in dieser Shell. Möchte man permanente Aliase anlegen muss man sie in die .bashrc schreiben.

unalias Alias entfernen

bind kann Tastenkombinationen festlegen – dazu ist (C-v)+Tastenkombination gut um die Codierung heraus zu bekommen

bg Prozess in den Hintergrund schicken Das gleiche, als wenn der Job mit & gestartet wird. Laufenden können mit (C-z) angehalten und dann in den Hintergrund geschickt werden.

fg Prozess in den Vordergrund holen

jobs Prozesse anzeigen lassen -r laufen -s Gestoppt (C-z)

history letzte Befehle anzeigen lassen

pwd Aktuelles Verzeichnis ausgeben – Print Working Directory

echo Ausgabe

read variable Benutzereingabe einlesen und in variable speichern

env UmgebungsVariablen setzen oder ausgeben

set Shell Variablen setzen oder ausgeben

unset Variablen Frei machen

ulimit Limits setzen oder anzeigen

Shell scripting

Um die Befehle jetzt effektiv nutzen zu können, schaut noch einmal genau in die man bash
Es gibt tatsächlich auch schon eine Scripting Einführung mit Funktionen, Schleifen, Operatoren und Kontrollstrukturen, Variablen usw.
Aber die überspringe ich hier. Habe dazu einen eigenen Artikel der einen kleinen Überblick gibt hier: shell-scripting.
Nur einige Notizen:

Platzhalter

* Passt auf alles
? Ein Zeichen
[…] Jedes Zeichen aus der Klammer (POSIX regEx)

Die könnten auch bei Gelegenheit brauchbar sein:
\ als Escape Zeichen
\n für Zeilenumbruch
\t für Tabulator
\v für vertikalen Tabulator
\xHH zeigt Zeichen zum Ascii Wert an
\nnn zum Oktalwert
etc.

Weiterleitungen

| Pipeline übergibt Daten an den folgenden Befehl
< übergibt etwas an den Standard Eingabekanal 0
> übergibt etwas aus dem Standard Ausgabekanal 1 (z.B. Datei)
2> so Erreicht man den Standard Fehlerkanal 2
File Descriptoren /dev/tcp und /dev/udp sind auch interessant.

>> Ausgabe an Datei Anhängen ( > Leert die Datei und schreibt neue Ausgabe rein.)
<<Zauberwort „Here Document“ lässt Zeichen eingeben incl. Zeilenumbrücke etc. bis Eingabe durch das Zauberwort wieder beendet wird

Tastenkürzel

Readline heißt die Funktion, die unsere Benutzereingaben liest. dazu gibt es auch einen Haufen Optionen. Funktioniert aber auch so.
Allerdings gibt es hier auch ein paar nützliche Shortcuts.
C- Strg Prefix
M- Alt (Meta) Prefix

(C-c) Signal SIGSTP (Stop)
(C-z) Signal SIGINT (Unterbrechen)
(M-b) Ein Wort Zurück
(M-f) Ein Wort vor
(C-k) Von Coursor bis Zeilenende löschen.
(C-u) Von Coursor bis Zeilenanfang löschen
(M-d) Aktuelles Wort löschen
(M-[Backspace]) Vorheriges Wort löschen
(C-w) Wort ausschneiden (in kill Ring aufnehmen)
(C-y) Satz aus der Kill List einfügen
(M-y) Wurde etwas eingefügt, kann so noch geblättert werden.
(M-.) Vorherige Argumente durchblättern
Mit bind -P kann man sich die Tastenkürzel auch anzeigen lassen.

Autocomplete

Einfach beim Tippen öfter mal [Tab] drücken und man bekommt eine schöne Liste mit Vervollständigungsvorschlägen oder halt den gesuchten Befehl bzw. Pfad oder Datei.
Oder (M-?) Zeigt mögliche Vervollständigigunen an – Ja auf der Deutschen Tastatur Alt+Shift+ß
(M-[TAB]) Autocomplete aus der History
Shortcut für Dateinamenvervollständigungen (M-/) … Alt+Shift+7
und (M-~) für Usernames … jep AltGr… Dann gibts noch  extra was für Variablen, Hostnamen usw.

Shell Variablen

Einige Shell Variablen (lassen sich mit mit echo $variablenname  anzeigen)
BASH – zeigt den Pfad und Dateinamen der Shell.
BASHOPTS – mit welchen Optionen die bash läuft.
BASHPID – Zeigt die PID der laufenden Shell
HOSTNAME – genau der
PATH – in dem Standardprogramme liegen
PS1 – Das was am Anfang der Befehlszeile Steht. (Variablen)
PS2 – Zusatz . . . (Mehr dazu in der bash man unter „Prompting“ \e\u@\H:\w$ …)
PWD – genau wie das Kommando pwd
RANDOM – zwischen 1-32767 (16bit int)

usw… viele viele

Soviel zur bash Manpage


Was macht der Hund im Büro?
..Der passt auf die Maus auf…
Wenn du wirklich bis hier gelesen hast und jetzt mit der Konsole umgehen kannst hier eine kleine Belohnung:
apt-get install gpm Mausunterstützung für die Textkonsole.
Ist allerdings nur sinnvoll, wenn du lokal an dem Rechner auf der Textkonsole rumhängst. Ansonsten hat der Client sowas bestimmt. 😉

Dazu noch ein Gimmick:
apt-get install aptitude Benutzeroberfläche für die Paketverwaltung

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

− seven = two