SlideShare una empresa de Scribd logo
1 de 32
Descargar para leer sin conexión
Die Kommandozeile
Wie funktioniert das und was kann man damit alles machen?
Achtung!
Die Kommandozeile ist ein mächtiges Werkzeug. Es ist sehr
leicht, damit sein System irreparabel zu beschädigen oder
einen Verlust von Daten zu erleiden; insbesondere (aber nicht
nur!) wenn man als Superuser ("Root") auf der
Kommandozeile arbeitet.
Diese Folien dienen zur reinen Information und stellen
keinerlei Aufforderung zu irgendwelchen Aktionen dar.
Der Gebrauch der hier angebotenen Informationen, Beispiele
und Konzepte geschieht ausschließlich auf eigene Gefahr.
1. Historisches Geschichte der Terminals
● Ganz am Anfang: Telegraphie als das "Viktorianische Internet"
● Morsecode als erstes "Online-Protokoll", Morsestationen als die ersten
"Proto"-Terminals.
● Weiterentwicklung der Morse-Telegraphie: Fernschreiber
(Engl.: TeleTYpeWriter -> tty)
● Fernschreiber: Einsatz als frühe Computer-Terminals, aber nur suboptimal
für Interaktion mit IT:
● Papierverbrauch, Ausdruck meistens unnötig
● Zu langsam
● Keine komplexere Interaktion (editieren etc.)
● Ab den 1970ern: Aufkommen der Computerterminals
● 1980er bis heute: GUIs incl. neuer Interaktionsformen (Maus, Touchscreen,
Spracherkennung, ...)
2. Grundlegendes Warum eigentlich heute noch Kommandozeile?
Warum soll ich mir die Mühe mit der Kommandozeile machen?
Ist das nicht ein Relikt aus der Computer-Steinzeit?
Ich habe doch meinen schicken Desktop ... ?
● Erheblich "näher" am System (GUIs verbergen Interna als 'Black Box')
● Bessere Kontrolle über den Rechner (einer der Gründe für Linux)
● Schnellere Bedienung (mit entsprechender Übung)
-> Kurze & knackige Kommandos auch für komplexe Aktionen
-> Kein Wechsel Maus - Tastatur
● Netzzugriff (remote login) auf entfernten Rechner
● Skripte zur Verarbeitung grosser Datenmengen
● Im Notfall (Systemreparatur) ist evtl. keine GUI mehr vorhanden
● Erheblich geringerer Ressourcenverbrauch als GUIs
(wichtig z.B. für Raspberry Pi u.ä.)
2. Grundlegendes Terminal aufrufen
Zuerst brauchen wir ein Terminal. Wie kriegen wir eines?
a) Einen Terminal Emulator ausführen (ist bei
jedem Linux Desktop mit dabei)
2. Grundlegendes Terminal aufrufen
Ctrl + F1Alt+
b) oder: Die GUI verlassen und die Linux Console aufrufen mit:
c) oder: Sich auf einem (entfernten) Rechner einloggen mit Programmen wie PuTTY
2. Grundlegendes Die Shell
Terminal Emulator Shell Linux Kernel
bash
csh
ash
ksh
zsh
xterm
Gnome
Terminal
KDE-
Terminal
2. Grundlegendes Der Prompt ('Eingabeaufforderung')
max@linuxkiste:~$ _
'Prompt'
Cursor
2. Grundlegendes Kommando ausführen
max@linuxkiste:~$ gimp
2. Grundlegendes Kommandooptionen
max@linuxkiste:~$ gimp urlaubsphoto_sonnenuntergang.jpg
(GIMP startet und öffnet gleich das Urlaubsphoto)
max@linuxkiste:~$ gimp -v
GNU Image Manipulation Program Version 2.8.2
git-describe: GIMP_2_8_0-194-ga42a02e
verwendet GEGL Version 0.2.0 (gebaut gegen Version 0.2.0)
verwendet GLib Version 2.32.4 (gebaut gegen Version 2.32.4)
verwendet GdkPixbuf Version 2.26.1 (gebaut gegen Version
2.26.1)
verwendet GTK+ Version 2.24.10 (gebaut gegen Version 2.24.10)
verwendet Pango Version 1.30.0 (gebaut gegen Version 1.30.0)
verwendet Fontconfig Version 2.9.0 (gebaut gegen Version 2.9.0)
verwendet Cairo Version 1.12.2 (gebaut gegen Version 1.12.2)
max@linuxkiste:~$ _
2. Grundlegendes Kommandooptionen
Grundlegende Struktur eines Kommandos:
<Kommando> <Parameter1> <Parameter2> <...>
Übliche Parameterformen:
● Argumente: Dateinamen, Suchmuster etc.
~$ gimp sonnenuntergang.jpg
● Single Options: Ein Minus '-' und ein Zeichen
~$ ls -l -r -t -h
● Combined single options: Ein Minus '-' und mehrere Zeichen
~$ ls -lrth
● Long options: Zwei Minus '-' und eine Beschreibung
~$ gimp --license
2. Grundlegendes Hilfe zu Kommandos
Kurzüberblick über Ausruf und Optionen eines Kommandos häufig mit -h
(häufig, aber leider nicht immer)
max@linuxkiste:~$ gimp -h
Aufruf:
gimp [OPTION …] [DATEI|URI...]
GNU Image Manipulation Program
Hilfeoptionen:
-h, --help Hilfeoptionen anzeigen
--help-all Alle Hilfeoptionen anzeigen
--help-gegl Show GEGL Options
--help-gtk GTK+-Optionen anzeigen
Anwendungsoptionen:
-v, --version Versionsinformationen anzeigen
--license Lizenzinformationen anzeigen
--verbose Ausführlicher verhalten
...
2. Grundlegendes Man-Pages
Ausführlicher: Optionen und Parameter über die Man-Page ("Manual Page")
max@linuxkiste:~$ man gimp
2. Grundlegendes Man-Pages
GIMP(1) GIMP Manual Pages GIMP(1)
NAME
gimp - an image manipulation and paint program.
SYNOPSIS
gimp [-h] [--help] [--help-all] [--help-gtk] [-v]
[-version] [--license] [--verbose] [-n] [--new-instance]
[-a] [--as-new] [-i] [--no-interface] [-d] [--no-data] [-f]
[--no-fonts] [-s] [--no-splash] [--no-shm] [--no-cpu-accel]
[--display display] [--session <name>] [-g]
[--gimprc <gimprc>] [--system-gimprc <gimprc>]
[--dump-gimprc] [--console-messages] [--debug-handlers]
[--stack-trace-mode <mode>] [--pdb-compat-mode <mode>]
[--batch-interpreter <procedure>] [-b]
[--batch <command>] [filename] ...
DESCRIPTION
GIMP is the GNU Image Manipulation Program. It is used to
edit and manipulate images. It can load and save a variety
of image formats and can be used to convert between
formats. GIMP can also be used as a paint program.
...
2. Grundlegendes Help für Shell-interne Kommandos
Die Shell hat einige fest eingebaute (interne) Kommandos, für die keine Man-Page
vorhanden ist. Hier kann help weiterhelfen:
max@linuxkiste:~$ man cd
Kein Handbucheintrag für cd vorhanden
max@linuxkiste:~$ help cd
cd: cd [-L|[-P [-e]]] [dir]
Change the shell working directory.
Change the current directory to DIR. The default DIR is
the value of the HOME shell variable.
...
2. Grundlegendes Prozess im Hintergrund starten
max@linuxkiste:~$ gimp
(Konsole nimmt keine Kommandos an)
max@linuxkiste:~$ gimp &
[1] 8169
max@linuxkiste:~$ _
Aufgepasst: Ein Kommando blockiert die Konsole solange bis es beendet ist.
Lösung: Programm im Hintergrund starten (mit '&'-Zeichen am Ende)
Ctrl + C
Erzwungenes Beenden von Programmen im Vordergrund der Konsole mittels:
(funktioniert häufig, aber leider nicht immer ...)
2. Grundlegendes Sonstige Tastenkombinationen
Tab
Shift +
Ctrl + C
Durch vorherige Kommandos
scrollen
Textausgabe durchscrollen
Autocompletion
Prozess im Vordergrund abbrechen
Page
up
Page
downShift + Textausgabe durchscrollen
(Linux Konsole)
3. Kommandozeile als Dateibrowser
Das sog. aktuelle Verzeichnis wird (meist) im Prompt angezeigt:
max@linuxkiste:/usr/local/share$ _
max@linuxkiste:~$ _
Die Tilde '~' bedeutet dabei das Home-Verzeichnis des Benutzers
max@linuxkiste:~/Dokumente/Post$ _
3. Kommandozeile als Dateibrowser In Verzeichnissen navigieren
pwd zeigt das aktuelle Verzeichnis an ('Print Working Directory'):
max@linuxkiste:~/Dokumente/Post$ pwd
/home/max/Dokumente/Post
3. Kommandozeile als Dateibrowser In Verzeichnissen navigieren
cd wechselt das aktuelle Verzeichnis (Tipp: Autocompletion per <tab> sehr nützlich)
max@linuxkiste:~/Dokumente$ cd Post
max@linuxkiste:~/Dokumente/Post$ _
max@linuxkiste:~/Dokumente/Post$ cd ..
max@linuxkiste:~/Dokumente/$ _
Relative Pfade:
Ein Verzeichnis zurück:
max@linuxkiste:~/Dokumente/Post$ cd /usr/share
max@linuxkiste:/usr/share$ _
Absolute Pfade:
max@linuxkiste:/usr/share$ cd ~/Dokumente
max@linuxkiste:~/Dokumente$ _
Home-Verzeichnis:
3. Kommandozeile als Dateibrowser Verzeichnisinhalt anzeigen
ls zeigt Inhalt eines Verzeichnisses an:
max@linuxkiste:~/Dokumente$ ls
Bücher Job Post Rezepte howto.txt kuendigung.pdf
sonnenuntergang.jpg
max@linuxkiste:~/Dokumente$ ls Rezepte/
cocktails.txt curry_huehnchen.txt spargel.txt
ls hat enorm viele Optionen. Man sollte kennen:
-l Ausgabe als Liste
-a Ausgabe versteckter Dateien (Name beginnt mit '.')
-h (mit -l) Größe als 'human-readable' ausgeben
-t Sortieren nach Änderungszeit
-X Sortieren nach Dateiendung
--color Farbige Ausgabe
3. Kommandozeile als Dateibrowser Verzeichnisinhalt anzeigen
max@linuxkiste:~/Dokumente$ ls -laht --color
drwxr-xr-x 13 max users 4,0K Mai 26 15:10 .
drwxr-xr-x 63 max users 4,0K Mai 26 11:44 ..
-rw-r--r-- 1 max users 1,3M Apr 26 11:05 kuendigung.pdf
-rw-r--r-- 1 max users 91K Mär 10 17:43 howto.txt
-rw-r--r-- 1 max users 984K Mär 10 15:52 sonnenuntergang.jpg
-rw------- 1 max users 342 Feb 05 16:00 .hidden
drwxr-xr-x 12 max users 4,0K Feb 05 15:00 Bücher
drwxr-xr-x 8 max users 4,0K Feb 05 15:00 Job
drwxr-xr-x 4 max users 4,0K Feb 05 15:00 Post
drwxr-xr-x 5 max users 4,0K Feb 05 15:00 Rezepte
ls zeigt Inhalt des aktuellen Verzeichnisses an (Listenformat):
3. Kommandozeile als Dateibrowser Dateien kopieren
max@linuxkiste:~/Dokumente$ ls Post/
bestellung.pdf storno.pdf
max@linuxkiste:~/Dokumente$ cp kuendigung.pdf Post/
max@linuxkiste:~/Dokumente$ ls Post/
bestellung.pdf kuendigung.pdf storno.pdf
max@linuxkiste:~/Dokumente$ mv Post/storno.pdf .
max@linuxkiste:~/Dokumente$ ls Post/
bestellung.pdf kuendigung.pdf
cp kopiert Dateien und Verzeichnisse (Autocompletion auch hier sehr hilfreich)
mv verschiebt Dateien und Verzeichnisse.
Die wichtigsten Optionen:
-i Vor Überschreiben nachfragen
-n Existierende Dateien nicht überschreiben
-u Nur kopieren wenn Datei nicht existiert oder neuer
-r Verzeichnisse rekursiv kopieren
3. Kommandozeile als Dateibrowser Bedeutung von '.' und '..'
max@linuxkiste:~/Dokumente$ cp Post/kuendigung.pdf .
'.' und '..' sind automatisch in jedem Verzeichnis vorhanden
. bezeichnet das Verzeichnis selbst
.. bezeichnet das Verzeichnis eine Ebene höher
Kopieren einer Datei ins aktuelle Verzeichnis:
max@linuxkiste:~/Dokumente$ cd ..
max@linuxkiste:~$ _
Wechseln ins Verzeichnis höher:
3. Kommandozeile als Dateibrowser Dateien löschen
max@linuxkiste:~/Dokumente$ ls Post/
bestellung.pdf kuendigung.pdf
max@linuxkiste:~/Dokumente$ rm Post/kuendigung.pdf
max@linuxkiste:~/Dokumente$ ls Post/
bestellung.pdf
rm löscht Dateien und Verzeichnisse
Die wichtigsten Optionen:
-f Löschen ohne Nachfragen (Vorsicht!)
-i Vor Löschen nachfragen
-r Verzeichnisse mit Inhalt rekursiv löschen
3. Kommandozeile als Dateibrowser Wildcards
cp, mv, rm können mehrere Dateien auf einmal verarbeiten:
max@linuxkiste:~/Dokumente/Post$ cp bestellung.pdf
kuendigung.pdf storno.pdf ~/Backup/
max@linuxkiste:~/Dokumente/Post$ cp *.pdf ~/Backup/
Dateien mit Ähnlichkeiten im Dateinamen kann man per Wildcard zusammenfassen:
* Beliebig viele Zeichen (auch keines)
? Genau ein beliebiges Zeichen
[abc] Ein Zeichen aus der Liste
[a-m] Ein Zeichen aus dem Bereich
{pdf,txt} Eine der angegebenen Zeichenketten
3. Kommandozeile als Dateibrowser Wildcards: Beispiele
max@linuxkiste:~$ ls *.pdf
Zeige alle PDF-Dateien im Verzeichnis an:
max@linuxkiste:~$ ls Bild_1??.jpg
Zeige alle Bilder mit Nummer 100-199 an:
max@linuxkiste:~$ ls [a-d]*
Zeige alle Dateien an, die mit a, b, c oder d anfangen:
max@linuxkiste:~$ ls *.{pdf,txt}
Zeige alle PDF- und TXT-Dateien im Verzeichnis an:
3. Kommandozeile als Dateibrowser
mkdir Neuen Ordner anlegen
touch Neue Datei anlegen (eigentlich: Zeitstempel ändern)
df Dateisystembelegung anzeigen
du Speicherplatz von Dateien anzeigen
cat Inhalt einer Datei anzeigen (alles auf einmal)
less Inhalt einer Datei anzeigen (mit Scrollen)
find Dateien finden
grep Muster in Dateien finden
vi Der klassische UNIX Texteditor
nano Noch ein Texteditor
Diverse Kommandos, die man auch kennen sollte:
3. Kommandozeile als Dateibrowser Vorsicht!
Aufgepasst: Die Dateikommandos löschen / überschreiben Dateien idR ohne
nachzufragen!
Es gibt keinen "Papierkorb", aus dem man versehentlich gelöschte Dateien
wiederherstellen kann!
Tippfehler können schwerwiegende Auswirkungen haben.
Beispiel: Geplant mit folgendem Kommando ist eigentlich, alle .o-Dateien zu
löschen. Aus Versehen ist ein Leerzeichen reingekommen. Was passiert?
$ rm * .o
Im Zweifelsfall lieber die -i Option verwenden, mit der die Shell immer erst
nachfragt, bevor Dateien gelöscht / überschrieben werden.
$ rm -i *.o
4. Alias Häufige Kommando-Optionen mit Alias abkürzen
$ alias ll='ls -l --color=auto'
Sicherheitsmaßnahme, damit bei cp, mv, rm immer nachgefragt wird:
$ alias cp='cp -i'
$ alias mv='mv -i'
$ alias rm='rm -i'
Für Optionen, die man häufig verwendet kann man mit alias eine Kurzform
definieren:
Beispiel: ls als Liste und mit Farbhervorhebung
Und damit man das dauerhaft hat kann man es in die .bashrc eintragen ... das
ist aber Material für einen nächsten Vortrag.
4. Systemkommandos (benötigt teilweise root, Vorsicht!)
uname Systeminformationen anzeigen (Kernelversion etc.)
dmesg Kernel Ring Buffer anzeigen
lspci PCI-Bus Belegung anzeigen
lsusb USB-Bus Belegung anzeigen
lsmod Geladene Kernelmodule anzeigen
lsof Geöffnete Dateien anzeigen
uptime Anzeigen wie lange das System schon läuft
top Monitor der laufenden Prozesse (fortlaufend)
ps Laufende Prozesse anzeigen (als Liste)
kill Prozess stoppen (eigentlich: Signal an Prozess senden)
fdisk Partitionierung der Festplatte anzeigen / ändern
mount Gerät in das Dateisystem einhängen
5. Was nicht behandelt wurde
● Shell Konfigurationsdateien
● Redirects und Pipes
● Den Prompt individuell konfigurieren
● Umgebungsvariablen
● Prozessverwaltung
● Command expansion
● Shell Scripting
● Programmpakete direkt aus Sourcen bauen
● Terminal capabilities
● TUIs ('Text User Interfaces' - 'Halbgraphik')

Más contenido relacionado

La actualidad más candente

Sicheres Anwendungs-Monitoring mit SNMP
Sicheres Anwendungs-Monitoring mit SNMPSicheres Anwendungs-Monitoring mit SNMP
Sicheres Anwendungs-Monitoring mit SNMPGerrit Beine
 
SNMP Applied - Sicheres Monitoring mit SNMP
SNMP Applied - Sicheres Monitoring mit SNMPSNMP Applied - Sicheres Monitoring mit SNMP
SNMP Applied - Sicheres Monitoring mit SNMPGerrit Beine
 
OSDC 2011 | FAI - Fully Automatic Installation by Thomas Lange
OSDC 2011 | FAI - Fully Automatic Installation by Thomas LangeOSDC 2011 | FAI - Fully Automatic Installation by Thomas Lange
OSDC 2011 | FAI - Fully Automatic Installation by Thomas LangeNETWAYS
 
Multi-GPU-Computing: Eins, zwei, drei, ganz viele
Multi-GPU-Computing: Eins, zwei, drei, ganz vieleMulti-GPU-Computing: Eins, zwei, drei, ganz viele
Multi-GPU-Computing: Eins, zwei, drei, ganz vieleJörn Dinkla
 
Check cisco voice
Check cisco voiceCheck cisco voice
Check cisco voicebboguhn
 
GPU-Computing mit CUDA und OpenCL in der Praxis
GPU-Computing mit CUDA und OpenCL in der PraxisGPU-Computing mit CUDA und OpenCL in der Praxis
GPU-Computing mit CUDA und OpenCL in der PraxisJörn Dinkla
 
Tipps & Tricks für den erfolgreichen Einsatz von GPU-Computing
Tipps & Tricks für den erfolgreichen Einsatz von GPU-ComputingTipps & Tricks für den erfolgreichen Einsatz von GPU-Computing
Tipps & Tricks für den erfolgreichen Einsatz von GPU-ComputingJörn Dinkla
 
OSDC 2010 | FAI - ein Projekt wird 10 Jahre alt by Thomas Lange
OSDC 2010 | FAI - ein Projekt wird 10 Jahre alt by Thomas LangeOSDC 2010 | FAI - ein Projekt wird 10 Jahre alt by Thomas Lange
OSDC 2010 | FAI - ein Projekt wird 10 Jahre alt by Thomas LangeNETWAYS
 
Cloud Provisioning mit Juju
Cloud Provisioning mit JujuCloud Provisioning mit Juju
Cloud Provisioning mit JujuFrank Müller
 
The Linux File System
The Linux File SystemThe Linux File System
The Linux File Systemsteffenbauer
 
Geoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GIS
Geoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GISGeoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GIS
Geoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GISPeter Löwe
 
Markus schwer jufo
Markus schwer jufoMarkus schwer jufo
Markus schwer jufoMarkusJufo
 
GNU Bourne Again SHell
GNU Bourne Again SHellGNU Bourne Again SHell
GNU Bourne Again SHellFabian Becker
 

La actualidad más candente (16)

Sicheres Anwendungs-Monitoring mit SNMP
Sicheres Anwendungs-Monitoring mit SNMPSicheres Anwendungs-Monitoring mit SNMP
Sicheres Anwendungs-Monitoring mit SNMP
 
SNMP Applied - Sicheres Monitoring mit SNMP
SNMP Applied - Sicheres Monitoring mit SNMPSNMP Applied - Sicheres Monitoring mit SNMP
SNMP Applied - Sicheres Monitoring mit SNMP
 
OSDC 2011 | FAI - Fully Automatic Installation by Thomas Lange
OSDC 2011 | FAI - Fully Automatic Installation by Thomas LangeOSDC 2011 | FAI - Fully Automatic Installation by Thomas Lange
OSDC 2011 | FAI - Fully Automatic Installation by Thomas Lange
 
Multi-GPU-Computing: Eins, zwei, drei, ganz viele
Multi-GPU-Computing: Eins, zwei, drei, ganz vieleMulti-GPU-Computing: Eins, zwei, drei, ganz viele
Multi-GPU-Computing: Eins, zwei, drei, ganz viele
 
Check cisco voice
Check cisco voiceCheck cisco voice
Check cisco voice
 
CS108 Bootcamp Eyeballs
CS108 Bootcamp EyeballsCS108 Bootcamp Eyeballs
CS108 Bootcamp Eyeballs
 
GPU-Computing mit CUDA und OpenCL in der Praxis
GPU-Computing mit CUDA und OpenCL in der PraxisGPU-Computing mit CUDA und OpenCL in der Praxis
GPU-Computing mit CUDA und OpenCL in der Praxis
 
Tipps & Tricks für den erfolgreichen Einsatz von GPU-Computing
Tipps & Tricks für den erfolgreichen Einsatz von GPU-ComputingTipps & Tricks für den erfolgreichen Einsatz von GPU-Computing
Tipps & Tricks für den erfolgreichen Einsatz von GPU-Computing
 
OSDC 2010 | FAI - ein Projekt wird 10 Jahre alt by Thomas Lange
OSDC 2010 | FAI - ein Projekt wird 10 Jahre alt by Thomas LangeOSDC 2010 | FAI - ein Projekt wird 10 Jahre alt by Thomas Lange
OSDC 2010 | FAI - ein Projekt wird 10 Jahre alt by Thomas Lange
 
Cloud Provisioning mit Juju
Cloud Provisioning mit JujuCloud Provisioning mit Juju
Cloud Provisioning mit Juju
 
The Linux File System
The Linux File SystemThe Linux File System
The Linux File System
 
Geoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GIS
Geoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GISGeoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GIS
Geoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GIS
 
Markus schwer jufo
Markus schwer jufoMarkus schwer jufo
Markus schwer jufo
 
GNU Bourne Again SHell
GNU Bourne Again SHellGNU Bourne Again SHell
GNU Bourne Again SHell
 
SNMP Applied
SNMP AppliedSNMP Applied
SNMP Applied
 
BIT I WiSe 2014 | Basisinformationstechnologie I - 07: Betriebssysteme
BIT I WiSe 2014 | Basisinformationstechnologie I - 07: BetriebssystemeBIT I WiSe 2014 | Basisinformationstechnologie I - 07: Betriebssysteme
BIT I WiSe 2014 | Basisinformationstechnologie I - 07: Betriebssysteme
 

Destacado

TestDisk User Manual
TestDisk User ManualTestDisk User Manual
TestDisk User ManualRockety Ryder
 
Timetable identity
Timetable identityTimetable identity
Timetable identityheiko.vogl
 
Behind the scenes of a grown-up web application
Behind the scenes of a grown-up web applicationBehind the scenes of a grown-up web application
Behind the scenes of a grown-up web applicationKerstin Puschke
 
Not only SQL - CouchDB und andere NoSQL-Datenbanken
Not only SQL - CouchDB und andere NoSQL-DatenbankenNot only SQL - CouchDB und andere NoSQL-Datenbanken
Not only SQL - CouchDB und andere NoSQL-DatenbankenKerstin Puschke
 
NoSQL-Datenbanken am Beispiel CouchDB
NoSQL-Datenbanken am Beispiel CouchDBNoSQL-Datenbanken am Beispiel CouchDB
NoSQL-Datenbanken am Beispiel CouchDBKerstin Puschke
 
Rsyslog - Deutsche Qualitätsarbeit für Linux
Rsyslog - Deutsche Qualitätsarbeit für LinuxRsyslog - Deutsche Qualitätsarbeit für Linux
Rsyslog - Deutsche Qualitätsarbeit für LinuxTrivadis
 
Einstieg in relationale Datenbanken mit MySQL (Handout)
Einstieg in relationale Datenbanken mit MySQL (Handout)Einstieg in relationale Datenbanken mit MySQL (Handout)
Einstieg in relationale Datenbanken mit MySQL (Handout)Kerstin Puschke
 
Einstieg in relationale Datenbanken mit MySQL (Folien)
Einstieg in relationale Datenbanken mit MySQL (Folien)Einstieg in relationale Datenbanken mit MySQL (Folien)
Einstieg in relationale Datenbanken mit MySQL (Folien)Kerstin Puschke
 
Nmon Analysis - Performance monitoring tool for LINUX and AIX
Nmon Analysis - Performance monitoring tool for LINUX and AIXNmon Analysis - Performance monitoring tool for LINUX and AIX
Nmon Analysis - Performance monitoring tool for LINUX and AIXGanesh Mandala
 
Extreme Linux Performance Monitoring and Tuning
Extreme Linux Performance Monitoring and TuningExtreme Linux Performance Monitoring and Tuning
Extreme Linux Performance Monitoring and TuningMilind Koyande
 
Windows command prompt a to z
Windows command prompt a to zWindows command prompt a to z
Windows command prompt a to zSubuh Kurniawan
 
Webentwicklung mit PHP und MySQL
Webentwicklung mit PHP und MySQLWebentwicklung mit PHP und MySQL
Webentwicklung mit PHP und MySQLKerstin Puschke
 
Linux monitoring and Troubleshooting for DBA's
Linux monitoring and Troubleshooting for DBA'sLinux monitoring and Troubleshooting for DBA's
Linux monitoring and Troubleshooting for DBA'sMydbops
 
Linux Troubleshooting
Linux TroubleshootingLinux Troubleshooting
Linux TroubleshootingKeith Wright
 

Destacado (20)

In der Ruhe liegt die Kraft
In der Ruhe liegt die KraftIn der Ruhe liegt die Kraft
In der Ruhe liegt die Kraft
 
TestDisk User Manual
TestDisk User ManualTestDisk User Manual
TestDisk User Manual
 
Timetable identity
Timetable identityTimetable identity
Timetable identity
 
oEmbed (on rails)
oEmbed (on rails)oEmbed (on rails)
oEmbed (on rails)
 
Behind the scenes of a grown-up web application
Behind the scenes of a grown-up web applicationBehind the scenes of a grown-up web application
Behind the scenes of a grown-up web application
 
NoSQL und CouchDB
NoSQL und CouchDBNoSQL und CouchDB
NoSQL und CouchDB
 
Not only SQL - CouchDB und andere NoSQL-Datenbanken
Not only SQL - CouchDB und andere NoSQL-DatenbankenNot only SQL - CouchDB und andere NoSQL-Datenbanken
Not only SQL - CouchDB und andere NoSQL-Datenbanken
 
Linux- und Windows Rechner…
Linux- und Windows Rechner…Linux- und Windows Rechner…
Linux- und Windows Rechner…
 
NoSQL-Datenbanken am Beispiel CouchDB
NoSQL-Datenbanken am Beispiel CouchDBNoSQL-Datenbanken am Beispiel CouchDB
NoSQL-Datenbanken am Beispiel CouchDB
 
Rsyslog - Deutsche Qualitätsarbeit für Linux
Rsyslog - Deutsche Qualitätsarbeit für LinuxRsyslog - Deutsche Qualitätsarbeit für Linux
Rsyslog - Deutsche Qualitätsarbeit für Linux
 
Einstieg in relationale Datenbanken mit MySQL (Handout)
Einstieg in relationale Datenbanken mit MySQL (Handout)Einstieg in relationale Datenbanken mit MySQL (Handout)
Einstieg in relationale Datenbanken mit MySQL (Handout)
 
Einstieg in relationale Datenbanken mit MySQL (Folien)
Einstieg in relationale Datenbanken mit MySQL (Folien)Einstieg in relationale Datenbanken mit MySQL (Folien)
Einstieg in relationale Datenbanken mit MySQL (Folien)
 
Linux monitoring
Linux monitoringLinux monitoring
Linux monitoring
 
Nmon Analysis - Performance monitoring tool for LINUX and AIX
Nmon Analysis - Performance monitoring tool for LINUX and AIXNmon Analysis - Performance monitoring tool for LINUX and AIX
Nmon Analysis - Performance monitoring tool for LINUX and AIX
 
3 infomeeting
3 infomeeting3 infomeeting
3 infomeeting
 
Extreme Linux Performance Monitoring and Tuning
Extreme Linux Performance Monitoring and TuningExtreme Linux Performance Monitoring and Tuning
Extreme Linux Performance Monitoring and Tuning
 
Windows command prompt a to z
Windows command prompt a to zWindows command prompt a to z
Windows command prompt a to z
 
Webentwicklung mit PHP und MySQL
Webentwicklung mit PHP und MySQLWebentwicklung mit PHP und MySQL
Webentwicklung mit PHP und MySQL
 
Linux monitoring and Troubleshooting for DBA's
Linux monitoring and Troubleshooting for DBA'sLinux monitoring and Troubleshooting for DBA's
Linux monitoring and Troubleshooting for DBA's
 
Linux Troubleshooting
Linux TroubleshootingLinux Troubleshooting
Linux Troubleshooting
 

Similar a Introduction to the command line

Betriebsysteme: zwei wichtige Konzepte aus der Praxis
Betriebsysteme: zwei wichtige Konzepte aus der PraxisBetriebsysteme: zwei wichtige Konzepte aus der Praxis
Betriebsysteme: zwei wichtige Konzepte aus der PraxisBrigitte Jellinek
 
OSMC 2008 | Nagios Hochverfügbar mit hearbeat V2 by Jan Dennis Bungart
OSMC 2008 | Nagios Hochverfügbar mit hearbeat V2 by Jan Dennis BungartOSMC 2008 | Nagios Hochverfügbar mit hearbeat V2 by Jan Dennis Bungart
OSMC 2008 | Nagios Hochverfügbar mit hearbeat V2 by Jan Dennis BungartNETWAYS
 
OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...
OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...
OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...NETWAYS
 
Schulung: Einführung in das GPU-Computing mit NVIDIA CUDA
Schulung: Einführung in das GPU-Computing mit NVIDIA CUDASchulung: Einführung in das GPU-Computing mit NVIDIA CUDA
Schulung: Einführung in das GPU-Computing mit NVIDIA CUDAJörn Dinkla
 
Ltsp5 In Einer Stunde Zum Terminalserver
Ltsp5   In Einer Stunde Zum TerminalserverLtsp5   In Einer Stunde Zum Terminalserver
Ltsp5 In Einer Stunde Zum TerminalserverDuns Scotus
 
JSUG - TeX, LaTeX und der Rest by Norbert Preining
JSUG - TeX, LaTeX und der Rest by Norbert PreiningJSUG - TeX, LaTeX und der Rest by Norbert Preining
JSUG - TeX, LaTeX und der Rest by Norbert PreiningChristoph Pickl
 
Nagios Conference 2007 | Aufbau eines hochverfügbaren Nagios Clusters by Mart...
Nagios Conference 2007 | Aufbau eines hochverfügbaren Nagios Clusters by Mart...Nagios Conference 2007 | Aufbau eines hochverfügbaren Nagios Clusters by Mart...
Nagios Conference 2007 | Aufbau eines hochverfügbaren Nagios Clusters by Mart...NETWAYS
 
Dockerbank II - 03 - Szenarien des Routinebetriebs (aktualisiert).pdf
Dockerbank II - 03 - Szenarien des Routinebetriebs (aktualisiert).pdfDockerbank II - 03 - Szenarien des Routinebetriebs (aktualisiert).pdf
Dockerbank II - 03 - Szenarien des Routinebetriebs (aktualisiert).pdfSyahri Ramadhan
 
Infrastructure as Code - BaselOne 17
Infrastructure as Code - BaselOne 17Infrastructure as Code - BaselOne 17
Infrastructure as Code - BaselOne 17remigius-stalder
 
Dart (Teil II der Tour de Dart)
Dart (Teil II der Tour de Dart)Dart (Teil II der Tour de Dart)
Dart (Teil II der Tour de Dart)Nane Kratzke
 
C API for Lotus Notes & Domino
C API for Lotus Notes & DominoC API for Lotus Notes & Domino
C API for Lotus Notes & DominoUlrich Krause
 
Atmel AVR RISC μC unter GNU/Linux programmieren
Atmel AVR RISC μC unter GNU/Linux programmierenAtmel AVR RISC μC unter GNU/Linux programmieren
Atmel AVR RISC μC unter GNU/Linux programmierenrzbrk
 
Compact, Compress, De-DUplicate
Compact, Compress, De-DUplicateCompact, Compress, De-DUplicate
Compact, Compress, De-DUplicateUlrich Krause
 
Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...
Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...
Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...B1 Systems GmbH
 
C / C++ Api for Beginners
C / C++ Api for BeginnersC / C++ Api for Beginners
C / C++ Api for BeginnersUlrich Krause
 
SNMP Applied - Sicheres Anwendungs-Monitoring mit SNMP (Kurzversion)
SNMP Applied - Sicheres Anwendungs-Monitoring mit SNMP (Kurzversion)SNMP Applied - Sicheres Anwendungs-Monitoring mit SNMP (Kurzversion)
SNMP Applied - Sicheres Anwendungs-Monitoring mit SNMP (Kurzversion)adesso AG
 
Python Mike Müller
Python Mike MüllerPython Mike Müller
Python Mike MüllerAberla
 
git - eine praktische Einführung
git - eine praktische Einführunggit - eine praktische Einführung
git - eine praktische EinführungMarcel Eichner
 

Similar a Introduction to the command line (20)

Betriebsysteme: zwei wichtige Konzepte aus der Praxis
Betriebsysteme: zwei wichtige Konzepte aus der PraxisBetriebsysteme: zwei wichtige Konzepte aus der Praxis
Betriebsysteme: zwei wichtige Konzepte aus der Praxis
 
OSMC 2008 | Nagios Hochverfügbar mit hearbeat V2 by Jan Dennis Bungart
OSMC 2008 | Nagios Hochverfügbar mit hearbeat V2 by Jan Dennis BungartOSMC 2008 | Nagios Hochverfügbar mit hearbeat V2 by Jan Dennis Bungart
OSMC 2008 | Nagios Hochverfügbar mit hearbeat V2 by Jan Dennis Bungart
 
OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...
OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...
OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...
 
Schulung: Einführung in das GPU-Computing mit NVIDIA CUDA
Schulung: Einführung in das GPU-Computing mit NVIDIA CUDASchulung: Einführung in das GPU-Computing mit NVIDIA CUDA
Schulung: Einführung in das GPU-Computing mit NVIDIA CUDA
 
Ltsp5 In Einer Stunde Zum Terminalserver
Ltsp5   In Einer Stunde Zum TerminalserverLtsp5   In Einer Stunde Zum Terminalserver
Ltsp5 In Einer Stunde Zum Terminalserver
 
JSUG - TeX, LaTeX und der Rest by Norbert Preining
JSUG - TeX, LaTeX und der Rest by Norbert PreiningJSUG - TeX, LaTeX und der Rest by Norbert Preining
JSUG - TeX, LaTeX und der Rest by Norbert Preining
 
Nagios Conference 2007 | Aufbau eines hochverfügbaren Nagios Clusters by Mart...
Nagios Conference 2007 | Aufbau eines hochverfügbaren Nagios Clusters by Mart...Nagios Conference 2007 | Aufbau eines hochverfügbaren Nagios Clusters by Mart...
Nagios Conference 2007 | Aufbau eines hochverfügbaren Nagios Clusters by Mart...
 
Dockerbank II - 03 - Szenarien des Routinebetriebs (aktualisiert).pdf
Dockerbank II - 03 - Szenarien des Routinebetriebs (aktualisiert).pdfDockerbank II - 03 - Szenarien des Routinebetriebs (aktualisiert).pdf
Dockerbank II - 03 - Szenarien des Routinebetriebs (aktualisiert).pdf
 
Infrastructure as Code - BaselOne 17
Infrastructure as Code - BaselOne 17Infrastructure as Code - BaselOne 17
Infrastructure as Code - BaselOne 17
 
Dart (Teil II der Tour de Dart)
Dart (Teil II der Tour de Dart)Dart (Teil II der Tour de Dart)
Dart (Teil II der Tour de Dart)
 
C API for Lotus Notes & Domino
C API for Lotus Notes & DominoC API for Lotus Notes & Domino
C API for Lotus Notes & Domino
 
Atmel AVR RISC μC unter GNU/Linux programmieren
Atmel AVR RISC μC unter GNU/Linux programmierenAtmel AVR RISC μC unter GNU/Linux programmieren
Atmel AVR RISC μC unter GNU/Linux programmieren
 
Windows Powershell
Windows PowershellWindows Powershell
Windows Powershell
 
Compact, Compress, De-DUplicate
Compact, Compress, De-DUplicateCompact, Compress, De-DUplicate
Compact, Compress, De-DUplicate
 
Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...
Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...
Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...
 
C / C++ Api for Beginners
C / C++ Api for BeginnersC / C++ Api for Beginners
C / C++ Api for Beginners
 
C++ kompakt
C++ kompaktC++ kompakt
C++ kompakt
 
SNMP Applied - Sicheres Anwendungs-Monitoring mit SNMP (Kurzversion)
SNMP Applied - Sicheres Anwendungs-Monitoring mit SNMP (Kurzversion)SNMP Applied - Sicheres Anwendungs-Monitoring mit SNMP (Kurzversion)
SNMP Applied - Sicheres Anwendungs-Monitoring mit SNMP (Kurzversion)
 
Python Mike Müller
Python Mike MüllerPython Mike Müller
Python Mike Müller
 
git - eine praktische Einführung
git - eine praktische Einführunggit - eine praktische Einführung
git - eine praktische Einführung
 

Introduction to the command line

  • 1. Die Kommandozeile Wie funktioniert das und was kann man damit alles machen?
  • 2. Achtung! Die Kommandozeile ist ein mächtiges Werkzeug. Es ist sehr leicht, damit sein System irreparabel zu beschädigen oder einen Verlust von Daten zu erleiden; insbesondere (aber nicht nur!) wenn man als Superuser ("Root") auf der Kommandozeile arbeitet. Diese Folien dienen zur reinen Information und stellen keinerlei Aufforderung zu irgendwelchen Aktionen dar. Der Gebrauch der hier angebotenen Informationen, Beispiele und Konzepte geschieht ausschließlich auf eigene Gefahr.
  • 3. 1. Historisches Geschichte der Terminals ● Ganz am Anfang: Telegraphie als das "Viktorianische Internet" ● Morsecode als erstes "Online-Protokoll", Morsestationen als die ersten "Proto"-Terminals. ● Weiterentwicklung der Morse-Telegraphie: Fernschreiber (Engl.: TeleTYpeWriter -> tty) ● Fernschreiber: Einsatz als frühe Computer-Terminals, aber nur suboptimal für Interaktion mit IT: ● Papierverbrauch, Ausdruck meistens unnötig ● Zu langsam ● Keine komplexere Interaktion (editieren etc.) ● Ab den 1970ern: Aufkommen der Computerterminals ● 1980er bis heute: GUIs incl. neuer Interaktionsformen (Maus, Touchscreen, Spracherkennung, ...)
  • 4. 2. Grundlegendes Warum eigentlich heute noch Kommandozeile? Warum soll ich mir die Mühe mit der Kommandozeile machen? Ist das nicht ein Relikt aus der Computer-Steinzeit? Ich habe doch meinen schicken Desktop ... ? ● Erheblich "näher" am System (GUIs verbergen Interna als 'Black Box') ● Bessere Kontrolle über den Rechner (einer der Gründe für Linux) ● Schnellere Bedienung (mit entsprechender Übung) -> Kurze & knackige Kommandos auch für komplexe Aktionen -> Kein Wechsel Maus - Tastatur ● Netzzugriff (remote login) auf entfernten Rechner ● Skripte zur Verarbeitung grosser Datenmengen ● Im Notfall (Systemreparatur) ist evtl. keine GUI mehr vorhanden ● Erheblich geringerer Ressourcenverbrauch als GUIs (wichtig z.B. für Raspberry Pi u.ä.)
  • 5. 2. Grundlegendes Terminal aufrufen Zuerst brauchen wir ein Terminal. Wie kriegen wir eines? a) Einen Terminal Emulator ausführen (ist bei jedem Linux Desktop mit dabei)
  • 6. 2. Grundlegendes Terminal aufrufen Ctrl + F1Alt+ b) oder: Die GUI verlassen und die Linux Console aufrufen mit: c) oder: Sich auf einem (entfernten) Rechner einloggen mit Programmen wie PuTTY
  • 7. 2. Grundlegendes Die Shell Terminal Emulator Shell Linux Kernel bash csh ash ksh zsh xterm Gnome Terminal KDE- Terminal
  • 8. 2. Grundlegendes Der Prompt ('Eingabeaufforderung') max@linuxkiste:~$ _ 'Prompt' Cursor
  • 9. 2. Grundlegendes Kommando ausführen max@linuxkiste:~$ gimp
  • 10. 2. Grundlegendes Kommandooptionen max@linuxkiste:~$ gimp urlaubsphoto_sonnenuntergang.jpg (GIMP startet und öffnet gleich das Urlaubsphoto) max@linuxkiste:~$ gimp -v GNU Image Manipulation Program Version 2.8.2 git-describe: GIMP_2_8_0-194-ga42a02e verwendet GEGL Version 0.2.0 (gebaut gegen Version 0.2.0) verwendet GLib Version 2.32.4 (gebaut gegen Version 2.32.4) verwendet GdkPixbuf Version 2.26.1 (gebaut gegen Version 2.26.1) verwendet GTK+ Version 2.24.10 (gebaut gegen Version 2.24.10) verwendet Pango Version 1.30.0 (gebaut gegen Version 1.30.0) verwendet Fontconfig Version 2.9.0 (gebaut gegen Version 2.9.0) verwendet Cairo Version 1.12.2 (gebaut gegen Version 1.12.2) max@linuxkiste:~$ _
  • 11. 2. Grundlegendes Kommandooptionen Grundlegende Struktur eines Kommandos: <Kommando> <Parameter1> <Parameter2> <...> Übliche Parameterformen: ● Argumente: Dateinamen, Suchmuster etc. ~$ gimp sonnenuntergang.jpg ● Single Options: Ein Minus '-' und ein Zeichen ~$ ls -l -r -t -h ● Combined single options: Ein Minus '-' und mehrere Zeichen ~$ ls -lrth ● Long options: Zwei Minus '-' und eine Beschreibung ~$ gimp --license
  • 12. 2. Grundlegendes Hilfe zu Kommandos Kurzüberblick über Ausruf und Optionen eines Kommandos häufig mit -h (häufig, aber leider nicht immer) max@linuxkiste:~$ gimp -h Aufruf: gimp [OPTION …] [DATEI|URI...] GNU Image Manipulation Program Hilfeoptionen: -h, --help Hilfeoptionen anzeigen --help-all Alle Hilfeoptionen anzeigen --help-gegl Show GEGL Options --help-gtk GTK+-Optionen anzeigen Anwendungsoptionen: -v, --version Versionsinformationen anzeigen --license Lizenzinformationen anzeigen --verbose Ausführlicher verhalten ...
  • 13. 2. Grundlegendes Man-Pages Ausführlicher: Optionen und Parameter über die Man-Page ("Manual Page") max@linuxkiste:~$ man gimp
  • 14. 2. Grundlegendes Man-Pages GIMP(1) GIMP Manual Pages GIMP(1) NAME gimp - an image manipulation and paint program. SYNOPSIS gimp [-h] [--help] [--help-all] [--help-gtk] [-v] [-version] [--license] [--verbose] [-n] [--new-instance] [-a] [--as-new] [-i] [--no-interface] [-d] [--no-data] [-f] [--no-fonts] [-s] [--no-splash] [--no-shm] [--no-cpu-accel] [--display display] [--session <name>] [-g] [--gimprc <gimprc>] [--system-gimprc <gimprc>] [--dump-gimprc] [--console-messages] [--debug-handlers] [--stack-trace-mode <mode>] [--pdb-compat-mode <mode>] [--batch-interpreter <procedure>] [-b] [--batch <command>] [filename] ... DESCRIPTION GIMP is the GNU Image Manipulation Program. It is used to edit and manipulate images. It can load and save a variety of image formats and can be used to convert between formats. GIMP can also be used as a paint program. ...
  • 15. 2. Grundlegendes Help für Shell-interne Kommandos Die Shell hat einige fest eingebaute (interne) Kommandos, für die keine Man-Page vorhanden ist. Hier kann help weiterhelfen: max@linuxkiste:~$ man cd Kein Handbucheintrag für cd vorhanden max@linuxkiste:~$ help cd cd: cd [-L|[-P [-e]]] [dir] Change the shell working directory. Change the current directory to DIR. The default DIR is the value of the HOME shell variable. ...
  • 16. 2. Grundlegendes Prozess im Hintergrund starten max@linuxkiste:~$ gimp (Konsole nimmt keine Kommandos an) max@linuxkiste:~$ gimp & [1] 8169 max@linuxkiste:~$ _ Aufgepasst: Ein Kommando blockiert die Konsole solange bis es beendet ist. Lösung: Programm im Hintergrund starten (mit '&'-Zeichen am Ende) Ctrl + C Erzwungenes Beenden von Programmen im Vordergrund der Konsole mittels: (funktioniert häufig, aber leider nicht immer ...)
  • 17. 2. Grundlegendes Sonstige Tastenkombinationen Tab Shift + Ctrl + C Durch vorherige Kommandos scrollen Textausgabe durchscrollen Autocompletion Prozess im Vordergrund abbrechen Page up Page downShift + Textausgabe durchscrollen (Linux Konsole)
  • 18. 3. Kommandozeile als Dateibrowser Das sog. aktuelle Verzeichnis wird (meist) im Prompt angezeigt: max@linuxkiste:/usr/local/share$ _ max@linuxkiste:~$ _ Die Tilde '~' bedeutet dabei das Home-Verzeichnis des Benutzers max@linuxkiste:~/Dokumente/Post$ _
  • 19. 3. Kommandozeile als Dateibrowser In Verzeichnissen navigieren pwd zeigt das aktuelle Verzeichnis an ('Print Working Directory'): max@linuxkiste:~/Dokumente/Post$ pwd /home/max/Dokumente/Post
  • 20. 3. Kommandozeile als Dateibrowser In Verzeichnissen navigieren cd wechselt das aktuelle Verzeichnis (Tipp: Autocompletion per <tab> sehr nützlich) max@linuxkiste:~/Dokumente$ cd Post max@linuxkiste:~/Dokumente/Post$ _ max@linuxkiste:~/Dokumente/Post$ cd .. max@linuxkiste:~/Dokumente/$ _ Relative Pfade: Ein Verzeichnis zurück: max@linuxkiste:~/Dokumente/Post$ cd /usr/share max@linuxkiste:/usr/share$ _ Absolute Pfade: max@linuxkiste:/usr/share$ cd ~/Dokumente max@linuxkiste:~/Dokumente$ _ Home-Verzeichnis:
  • 21. 3. Kommandozeile als Dateibrowser Verzeichnisinhalt anzeigen ls zeigt Inhalt eines Verzeichnisses an: max@linuxkiste:~/Dokumente$ ls Bücher Job Post Rezepte howto.txt kuendigung.pdf sonnenuntergang.jpg max@linuxkiste:~/Dokumente$ ls Rezepte/ cocktails.txt curry_huehnchen.txt spargel.txt ls hat enorm viele Optionen. Man sollte kennen: -l Ausgabe als Liste -a Ausgabe versteckter Dateien (Name beginnt mit '.') -h (mit -l) Größe als 'human-readable' ausgeben -t Sortieren nach Änderungszeit -X Sortieren nach Dateiendung --color Farbige Ausgabe
  • 22. 3. Kommandozeile als Dateibrowser Verzeichnisinhalt anzeigen max@linuxkiste:~/Dokumente$ ls -laht --color drwxr-xr-x 13 max users 4,0K Mai 26 15:10 . drwxr-xr-x 63 max users 4,0K Mai 26 11:44 .. -rw-r--r-- 1 max users 1,3M Apr 26 11:05 kuendigung.pdf -rw-r--r-- 1 max users 91K Mär 10 17:43 howto.txt -rw-r--r-- 1 max users 984K Mär 10 15:52 sonnenuntergang.jpg -rw------- 1 max users 342 Feb 05 16:00 .hidden drwxr-xr-x 12 max users 4,0K Feb 05 15:00 Bücher drwxr-xr-x 8 max users 4,0K Feb 05 15:00 Job drwxr-xr-x 4 max users 4,0K Feb 05 15:00 Post drwxr-xr-x 5 max users 4,0K Feb 05 15:00 Rezepte ls zeigt Inhalt des aktuellen Verzeichnisses an (Listenformat):
  • 23. 3. Kommandozeile als Dateibrowser Dateien kopieren max@linuxkiste:~/Dokumente$ ls Post/ bestellung.pdf storno.pdf max@linuxkiste:~/Dokumente$ cp kuendigung.pdf Post/ max@linuxkiste:~/Dokumente$ ls Post/ bestellung.pdf kuendigung.pdf storno.pdf max@linuxkiste:~/Dokumente$ mv Post/storno.pdf . max@linuxkiste:~/Dokumente$ ls Post/ bestellung.pdf kuendigung.pdf cp kopiert Dateien und Verzeichnisse (Autocompletion auch hier sehr hilfreich) mv verschiebt Dateien und Verzeichnisse. Die wichtigsten Optionen: -i Vor Überschreiben nachfragen -n Existierende Dateien nicht überschreiben -u Nur kopieren wenn Datei nicht existiert oder neuer -r Verzeichnisse rekursiv kopieren
  • 24. 3. Kommandozeile als Dateibrowser Bedeutung von '.' und '..' max@linuxkiste:~/Dokumente$ cp Post/kuendigung.pdf . '.' und '..' sind automatisch in jedem Verzeichnis vorhanden . bezeichnet das Verzeichnis selbst .. bezeichnet das Verzeichnis eine Ebene höher Kopieren einer Datei ins aktuelle Verzeichnis: max@linuxkiste:~/Dokumente$ cd .. max@linuxkiste:~$ _ Wechseln ins Verzeichnis höher:
  • 25. 3. Kommandozeile als Dateibrowser Dateien löschen max@linuxkiste:~/Dokumente$ ls Post/ bestellung.pdf kuendigung.pdf max@linuxkiste:~/Dokumente$ rm Post/kuendigung.pdf max@linuxkiste:~/Dokumente$ ls Post/ bestellung.pdf rm löscht Dateien und Verzeichnisse Die wichtigsten Optionen: -f Löschen ohne Nachfragen (Vorsicht!) -i Vor Löschen nachfragen -r Verzeichnisse mit Inhalt rekursiv löschen
  • 26. 3. Kommandozeile als Dateibrowser Wildcards cp, mv, rm können mehrere Dateien auf einmal verarbeiten: max@linuxkiste:~/Dokumente/Post$ cp bestellung.pdf kuendigung.pdf storno.pdf ~/Backup/ max@linuxkiste:~/Dokumente/Post$ cp *.pdf ~/Backup/ Dateien mit Ähnlichkeiten im Dateinamen kann man per Wildcard zusammenfassen: * Beliebig viele Zeichen (auch keines) ? Genau ein beliebiges Zeichen [abc] Ein Zeichen aus der Liste [a-m] Ein Zeichen aus dem Bereich {pdf,txt} Eine der angegebenen Zeichenketten
  • 27. 3. Kommandozeile als Dateibrowser Wildcards: Beispiele max@linuxkiste:~$ ls *.pdf Zeige alle PDF-Dateien im Verzeichnis an: max@linuxkiste:~$ ls Bild_1??.jpg Zeige alle Bilder mit Nummer 100-199 an: max@linuxkiste:~$ ls [a-d]* Zeige alle Dateien an, die mit a, b, c oder d anfangen: max@linuxkiste:~$ ls *.{pdf,txt} Zeige alle PDF- und TXT-Dateien im Verzeichnis an:
  • 28. 3. Kommandozeile als Dateibrowser mkdir Neuen Ordner anlegen touch Neue Datei anlegen (eigentlich: Zeitstempel ändern) df Dateisystembelegung anzeigen du Speicherplatz von Dateien anzeigen cat Inhalt einer Datei anzeigen (alles auf einmal) less Inhalt einer Datei anzeigen (mit Scrollen) find Dateien finden grep Muster in Dateien finden vi Der klassische UNIX Texteditor nano Noch ein Texteditor Diverse Kommandos, die man auch kennen sollte:
  • 29. 3. Kommandozeile als Dateibrowser Vorsicht! Aufgepasst: Die Dateikommandos löschen / überschreiben Dateien idR ohne nachzufragen! Es gibt keinen "Papierkorb", aus dem man versehentlich gelöschte Dateien wiederherstellen kann! Tippfehler können schwerwiegende Auswirkungen haben. Beispiel: Geplant mit folgendem Kommando ist eigentlich, alle .o-Dateien zu löschen. Aus Versehen ist ein Leerzeichen reingekommen. Was passiert? $ rm * .o Im Zweifelsfall lieber die -i Option verwenden, mit der die Shell immer erst nachfragt, bevor Dateien gelöscht / überschrieben werden. $ rm -i *.o
  • 30. 4. Alias Häufige Kommando-Optionen mit Alias abkürzen $ alias ll='ls -l --color=auto' Sicherheitsmaßnahme, damit bei cp, mv, rm immer nachgefragt wird: $ alias cp='cp -i' $ alias mv='mv -i' $ alias rm='rm -i' Für Optionen, die man häufig verwendet kann man mit alias eine Kurzform definieren: Beispiel: ls als Liste und mit Farbhervorhebung Und damit man das dauerhaft hat kann man es in die .bashrc eintragen ... das ist aber Material für einen nächsten Vortrag.
  • 31. 4. Systemkommandos (benötigt teilweise root, Vorsicht!) uname Systeminformationen anzeigen (Kernelversion etc.) dmesg Kernel Ring Buffer anzeigen lspci PCI-Bus Belegung anzeigen lsusb USB-Bus Belegung anzeigen lsmod Geladene Kernelmodule anzeigen lsof Geöffnete Dateien anzeigen uptime Anzeigen wie lange das System schon läuft top Monitor der laufenden Prozesse (fortlaufend) ps Laufende Prozesse anzeigen (als Liste) kill Prozess stoppen (eigentlich: Signal an Prozess senden) fdisk Partitionierung der Festplatte anzeigen / ändern mount Gerät in das Dateisystem einhängen
  • 32. 5. Was nicht behandelt wurde ● Shell Konfigurationsdateien ● Redirects und Pipes ● Den Prompt individuell konfigurieren ● Umgebungsvariablen ● Prozessverwaltung ● Command expansion ● Shell Scripting ● Programmpakete direkt aus Sourcen bauen ● Terminal capabilities ● TUIs ('Text User Interfaces' - 'Halbgraphik')