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 benutzername
Benutzer 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