SlideShare ist ein Scribd-Unternehmen logo

Grundlagen der Kommandozeile unter Unix/Linux (Handout)

Handout zum Workshop "Grundlagen der Kommandozeile unter Unix/Linux", September 2009

1 von 20
Downloaden Sie, um offline zu lesen
Grundlagen der Kommandozeile unter
            Unix/Linux
          Dr. Kerstin Puschke
           September 2009




                   1
Lizenz




Lizenz
Dieser Text steht unter einer Creative Commons Attribution-Share Alike 3.0 Germany
Lizenz, siehe http://creativecommons.org/licenses/by-sa/3.0/de/
Inhaltsverzeichnis

I Einführung                                                                         4
1   Unix, Linux, . . .                                                               4

2   Linux Grundlagen                                                                 4
    2.1 Multi-User System . . . . . . . . . . . . . . . . . . . . . . . . . . .      4
    2.2 Verzeichnisbaum . . . . . . . . . . . . . . . . . . . . . . . . . . . .      4
    2.3 Komponenten eines Linux-Systems . . . . . . . . . . . . . . . . . .          5

3   Warum die Kommandozeile nutzen?                                                  6


II Erste Schritte                                                                    7
4   Wie komme ich auf die Kommandozeile?                                             7

5   Erste Befehle                                                                    7


III Dateien und Verzeichnisse verwalten                                              8
6   Unterwegs im Verzeichnisbaum                                                     8
    6.1 Verzeichnis wechseln . . . . . . . . . . . . . . . . . . . . . . . . . .     8
    6.2 Pfadangaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    8
    6.3 Verzeichnisinhalt ausgeben . . . . . . . . . . . . . . . . . . . . . . .     9

7   Anlegen, Entfernen, Verschieben, Kopieren                                       10


IV Arbeiten mit der Shell                                                           11
8   Befehlssyntax - Argumente und Optionen                                          11

9   Unterstützung bei der Arbeit                                                    11
    9.1 Arbeitserleichterungen . . . . . . . . . . . . . . . . . . . . . . . . .    11
    9.2 Hilfe finden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   12
    9.3 Wildcards und Klammererweiterung . . . . . . . . . . . . . . . . . .        12

10 Programme steuern                                                                13


V Inhalt von Textdateien                                                            14
11 Inhalte ausgeben                                                                 14

12 Inhalte bearbeiten                                                               14

13 Inhalte durchsuchen - Reguläre Ausdrücke                                         14




                                           2
VI Ein- und Ausgabe                                                                 16
14 Ein- und Ausgabe                                                                 16
   14.1 Tastatureingabe . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   16
   14.2 Ein- und Ausgabe umleiten . . . . . . . . . . . . . . . . . . . . . . .     16
   14.3 Deskriptoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    16


VII Dateien und Verzeichnisse verwalten II                                          18
15 Rechteverwaltung                                                                 18

16 Links                                                                            19




                                           3
Teil I
Einführung
1       Unix, Linux, . . .
Unix, Linux und Verwandte

    • zahlreiche “verwandte” Systeme: Unix, Linux, BSD, . . .

    • viele Gemeinsamkeiten in der Anwendung
    • Kurs fokussiert auf Linux
    • das meiste ist übertragbar


2       Linux Grundlagen
2.1 Multi-User System
Multi-User System

    • gleichzeitig von mehreren nutzbar
    • getrennte Bereiche (Einstellungen, Anwendungsdaten etc.)
    • strikte Trennung von Anwendung und Administration

2.2 Verzeichnisbaum
Verzeichnisbaum

    • keine Laufwerksbuchstaben
    • Wurzel (root) ist oben, Verzeichnis /

    • Verzeichnis in Pfadangaben durch / getrennt: /home/alice/linuxkurs
         /
             /bin
             /boot
             /dev
             /etc
             /home
    •
                      /home/alice
                      /home/bob
                                          /home/bob/linuxkurs
                      /home/carol
             /lib
             ...




                                          4
Verzeichnisbaum II
   • jeder user hat eigenes Homeverzeichnis
        – i.d.R. /home/<username>, z.B. /home/alice
        – eigene Dateien und Einstellungen
   • externe Geräte (z.B. USB-Sticks, externe Festplatten)
        – werden in Verzeichnisbaum eingehängt (mount)
        – benutzbar wie andere Verzeichnisse
   • root bezeichnet
        – das Wurzelverzeichnis /,
        – den Administrations-Account,
        – das Homeverzeichnis des Administrations-Accounts (oft /root)

2.3 Komponenten eines Linux-Systems
Komponenten
   • Betriebssystem (Operating System, OS)
        – Kernel (Hardwareverwaltung)
        – System- und Dienstprogramme (Hardwarenahe Konfiguration,. . . )
   • Schnittstelle (User Interface, UI)
        – GUI (Graphical User Interface, grafische Oberfläche)
        – CLI (Command Line Interface, Kommandozeile, Shell)
   • Anwendungen
        – grafisch
        – kommandozeilenbasiert
   • strikte Trennung zwischen OS und UI

Shell
   • Schnittstelle zum Betriebssystem
   • Vielzahl von shells existiert, z.B.
        – sh Bourne Shell
        – bash Bourne Again Shell (im Kurs verwendet)
        – csh, tcsh,. . .
   • eingetippte Befehle werden sofort ausgeführt
        – Anwendungen ausführen/starten
        – shell-eigene Befehle
        – shell-eigene Programmiersprache


                                           5

Recomendados

Grundlagen der Kommandozeile unter Unix/Linux (Folien)
Grundlagen der Kommandozeile unter Unix/Linux (Folien)Grundlagen der Kommandozeile unter Unix/Linux (Folien)
Grundlagen der Kommandozeile unter Unix/Linux (Folien)Kerstin Puschke
 
The Linux File System
The Linux File SystemThe Linux File System
The Linux File Systemsteffenbauer
 
Agorum core-installation-linux-6 4-0a
Agorum core-installation-linux-6 4-0aAgorum core-installation-linux-6 4-0a
Agorum core-installation-linux-6 4-0aagorum Software GmbH
 
Linux slides 2013_upload
Linux slides 2013_uploadLinux slides 2013_upload
Linux slides 2013_uploadRosa Freund
 
Introduction to the command line
Introduction to the command lineIntroduction to the command line
Introduction to the command linesteffenbauer
 
SLAC 2008 RPMs selber bauen
SLAC 2008 RPMs selber bauenSLAC 2008 RPMs selber bauen
SLAC 2008 RPMs selber bauenSchlomo Schapiro
 
Presentation
PresentationPresentation
Presentationspinalt
 
Suche und PyLucene
Suche und PyLuceneSuche und PyLucene
Suche und PyLuceneThomas Koch
 

Más contenido relacionado

Destacado

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
 
Timetable identity
Timetable identityTimetable identity
Timetable identityheiko.vogl
 
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
 
TestDisk User Manual
TestDisk User ManualTestDisk User Manual
TestDisk User ManualRockety Ryder
 
Linux slides fort_2013_upload
Linux slides fort_2013_uploadLinux slides fort_2013_upload
Linux slides fort_2013_uploadRosa Freund
 
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
 
NoSQL-Datenbanken am Beispiel CouchDB
NoSQL-Datenbanken am Beispiel CouchDBNoSQL-Datenbanken am Beispiel CouchDB
NoSQL-Datenbanken am Beispiel CouchDBKerstin Puschke
 
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
 

Destacado (20)

Kap1
Kap1Kap1
Kap1
 
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
 
Linux- und Windows Rechner…
Linux- und Windows Rechner…Linux- und Windows Rechner…
Linux- und Windows Rechner…
 
In der Ruhe liegt die Kraft
In der Ruhe liegt die KraftIn der Ruhe liegt die Kraft
In der Ruhe liegt die Kraft
 
Timetable identity
Timetable identityTimetable identity
Timetable identity
 
oEmbed (on rails)
oEmbed (on rails)oEmbed (on rails)
oEmbed (on rails)
 
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
 
TestDisk User Manual
TestDisk User ManualTestDisk User Manual
TestDisk User Manual
 
Linux slides fort_2013_upload
Linux slides fort_2013_uploadLinux slides fort_2013_upload
Linux slides fort_2013_upload
 
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
 
NoSQL-Datenbanken am Beispiel CouchDB
NoSQL-Datenbanken am Beispiel CouchDBNoSQL-Datenbanken am Beispiel CouchDB
NoSQL-Datenbanken am Beispiel CouchDB
 
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)
 
Linux monitoring
Linux monitoringLinux monitoring
Linux monitoring
 
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)
 
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
 

Ähnlich wie Grundlagen der Kommandozeile unter Unix/Linux (Handout)

Einsteiger zertifizierung des LPI
Einsteiger zertifizierung des LPIEinsteiger zertifizierung des LPI
Einsteiger zertifizierung des LPIMichael M. Bosbach
 
Grundlagen postgresql
Grundlagen postgresqlGrundlagen postgresql
Grundlagen postgresqlinovex GmbH
 
Buch des jungen Kämpfers mit AIX V6 - Teil 03
Buch des jungen Kämpfers mit AIX V6 - Teil 03Buch des jungen Kämpfers mit AIX V6 - Teil 03
Buch des jungen Kämpfers mit AIX V6 - Teil 03Andrey Klyachkin
 
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
 
Der Linux Schulserver
Der Linux Schulserver Der Linux Schulserver
Der Linux Schulserver heiko.vogl
 
Docker - Containervirtualisierung leichtgemacht
Docker - Containervirtualisierung leichtgemachtDocker - Containervirtualisierung leichtgemacht
Docker - Containervirtualisierung leichtgemachtB1 Systems GmbH
 
DSpace as publication platform
DSpace as publication platformDSpace as publication platform
DSpace as publication platformredsys
 
Deployment von Entwicklungsumgebungen eines TYPO3-Intranets mit Vagrant
Deployment von Entwicklungsumgebungen eines TYPO3-Intranets mit VagrantDeployment von Entwicklungsumgebungen eines TYPO3-Intranets mit Vagrant
Deployment von Entwicklungsumgebungen eines TYPO3-Intranets mit VagrantChristoph Möller
 
freiesMagazin 09-2011
freiesMagazin 09-2011freiesMagazin 09-2011
freiesMagazin 09-2011storminator
 
Unterforderte TYPO3 Kern-Features
Unterforderte TYPO3 Kern-FeaturesUnterforderte TYPO3 Kern-Features
Unterforderte TYPO3 Kern-Featureskeinerweiss
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsJosef Adersberger
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsQAware GmbH
 
Infrastructure as Code - BaselOne 17
Infrastructure as Code - BaselOne 17Infrastructure as Code - BaselOne 17
Infrastructure as Code - BaselOne 17remigius-stalder
 
digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwic...
digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwic...digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwic...
digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwic...digitalSTROM.org
 
ICS UserGroup - 2015 - Eclipse and Notes - Love/Hate Relationships
ICS UserGroup - 2015 - Eclipse and Notes - Love/Hate RelationshipsICS UserGroup - 2015 - Eclipse and Notes - Love/Hate Relationships
ICS UserGroup - 2015 - Eclipse and Notes - Love/Hate RelationshipsChristoph Adler
 

Ähnlich wie Grundlagen der Kommandozeile unter Unix/Linux (Handout) (20)

Einsteiger zertifizierung des LPI
Einsteiger zertifizierung des LPIEinsteiger zertifizierung des LPI
Einsteiger zertifizierung des LPI
 
Grundlagen postgresql
Grundlagen postgresqlGrundlagen postgresql
Grundlagen postgresql
 
Buch des jungen Kämpfers mit AIX V6 - Teil 03
Buch des jungen Kämpfers mit AIX V6 - Teil 03Buch des jungen Kämpfers mit AIX V6 - Teil 03
Buch des jungen Kämpfers mit AIX V6 - Teil 03
 
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
 
Der Linux Schulserver
Der Linux Schulserver Der Linux Schulserver
Der Linux Schulserver
 
Docker - Containervirtualisierung leichtgemacht
Docker - Containervirtualisierung leichtgemachtDocker - Containervirtualisierung leichtgemacht
Docker - Containervirtualisierung leichtgemacht
 
Einführung in Docker
Einführung in DockerEinführung in Docker
Einführung in Docker
 
Neuerungen in TYPO3 6.0
Neuerungen in TYPO3 6.0Neuerungen in TYPO3 6.0
Neuerungen in TYPO3 6.0
 
DSpace as publication platform
DSpace as publication platformDSpace as publication platform
DSpace as publication platform
 
Daos
DaosDaos
Daos
 
Deployment von Entwicklungsumgebungen eines TYPO3-Intranets mit Vagrant
Deployment von Entwicklungsumgebungen eines TYPO3-Intranets mit VagrantDeployment von Entwicklungsumgebungen eines TYPO3-Intranets mit Vagrant
Deployment von Entwicklungsumgebungen eines TYPO3-Intranets mit Vagrant
 
Unixkurs 04 - Dateien
Unixkurs 04 - DateienUnixkurs 04 - Dateien
Unixkurs 04 - Dateien
 
freiesMagazin 09-2011
freiesMagazin 09-2011freiesMagazin 09-2011
freiesMagazin 09-2011
 
Unterforderte TYPO3 Kern-Features
Unterforderte TYPO3 Kern-FeaturesUnterforderte TYPO3 Kern-Features
Unterforderte TYPO3 Kern-Features
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-Patterns
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-Patterns
 
Infrastructure as Code - BaselOne 17
Infrastructure as Code - BaselOne 17Infrastructure as Code - BaselOne 17
Infrastructure as Code - BaselOne 17
 
Windows Powershell
Windows PowershellWindows Powershell
Windows Powershell
 
digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwic...
digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwic...digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwic...
digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwic...
 
ICS UserGroup - 2015 - Eclipse and Notes - Love/Hate Relationships
ICS UserGroup - 2015 - Eclipse and Notes - Love/Hate RelationshipsICS UserGroup - 2015 - Eclipse and Notes - Love/Hate Relationships
ICS UserGroup - 2015 - Eclipse and Notes - Love/Hate Relationships
 

Grundlagen der Kommandozeile unter Unix/Linux (Handout)

  • 1. Grundlagen der Kommandozeile unter Unix/Linux Dr. Kerstin Puschke September 2009 1
  • 2. Lizenz Lizenz Dieser Text steht unter einer Creative Commons Attribution-Share Alike 3.0 Germany Lizenz, siehe http://creativecommons.org/licenses/by-sa/3.0/de/
  • 3. Inhaltsverzeichnis I Einführung 4 1 Unix, Linux, . . . 4 2 Linux Grundlagen 4 2.1 Multi-User System . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.2 Verzeichnisbaum . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.3 Komponenten eines Linux-Systems . . . . . . . . . . . . . . . . . . 5 3 Warum die Kommandozeile nutzen? 6 II Erste Schritte 7 4 Wie komme ich auf die Kommandozeile? 7 5 Erste Befehle 7 III Dateien und Verzeichnisse verwalten 8 6 Unterwegs im Verzeichnisbaum 8 6.1 Verzeichnis wechseln . . . . . . . . . . . . . . . . . . . . . . . . . . 8 6.2 Pfadangaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 6.3 Verzeichnisinhalt ausgeben . . . . . . . . . . . . . . . . . . . . . . . 9 7 Anlegen, Entfernen, Verschieben, Kopieren 10 IV Arbeiten mit der Shell 11 8 Befehlssyntax - Argumente und Optionen 11 9 Unterstützung bei der Arbeit 11 9.1 Arbeitserleichterungen . . . . . . . . . . . . . . . . . . . . . . . . . 11 9.2 Hilfe finden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 9.3 Wildcards und Klammererweiterung . . . . . . . . . . . . . . . . . . 12 10 Programme steuern 13 V Inhalt von Textdateien 14 11 Inhalte ausgeben 14 12 Inhalte bearbeiten 14 13 Inhalte durchsuchen - Reguläre Ausdrücke 14 2
  • 4. VI Ein- und Ausgabe 16 14 Ein- und Ausgabe 16 14.1 Tastatureingabe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 14.2 Ein- und Ausgabe umleiten . . . . . . . . . . . . . . . . . . . . . . . 16 14.3 Deskriptoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 VII Dateien und Verzeichnisse verwalten II 18 15 Rechteverwaltung 18 16 Links 19 3
  • 5. Teil I Einführung 1 Unix, Linux, . . . Unix, Linux und Verwandte • zahlreiche “verwandte” Systeme: Unix, Linux, BSD, . . . • viele Gemeinsamkeiten in der Anwendung • Kurs fokussiert auf Linux • das meiste ist übertragbar 2 Linux Grundlagen 2.1 Multi-User System Multi-User System • gleichzeitig von mehreren nutzbar • getrennte Bereiche (Einstellungen, Anwendungsdaten etc.) • strikte Trennung von Anwendung und Administration 2.2 Verzeichnisbaum Verzeichnisbaum • keine Laufwerksbuchstaben • Wurzel (root) ist oben, Verzeichnis / • Verzeichnis in Pfadangaben durch / getrennt: /home/alice/linuxkurs / /bin /boot /dev /etc /home • /home/alice /home/bob /home/bob/linuxkurs /home/carol /lib ... 4
  • 6. Verzeichnisbaum II • jeder user hat eigenes Homeverzeichnis – i.d.R. /home/<username>, z.B. /home/alice – eigene Dateien und Einstellungen • externe Geräte (z.B. USB-Sticks, externe Festplatten) – werden in Verzeichnisbaum eingehängt (mount) – benutzbar wie andere Verzeichnisse • root bezeichnet – das Wurzelverzeichnis /, – den Administrations-Account, – das Homeverzeichnis des Administrations-Accounts (oft /root) 2.3 Komponenten eines Linux-Systems Komponenten • Betriebssystem (Operating System, OS) – Kernel (Hardwareverwaltung) – System- und Dienstprogramme (Hardwarenahe Konfiguration,. . . ) • Schnittstelle (User Interface, UI) – GUI (Graphical User Interface, grafische Oberfläche) – CLI (Command Line Interface, Kommandozeile, Shell) • Anwendungen – grafisch – kommandozeilenbasiert • strikte Trennung zwischen OS und UI Shell • Schnittstelle zum Betriebssystem • Vielzahl von shells existiert, z.B. – sh Bourne Shell – bash Bourne Again Shell (im Kurs verwendet) – csh, tcsh,. . . • eingetippte Befehle werden sofort ausgeführt – Anwendungen ausführen/starten – shell-eigene Befehle – shell-eigene Programmiersprache 5
  • 7. Philosophie Für jede Aufgabe das passende Programm • kleine, spezialisierte Tools statt riesiger rundum-sorglos-Programme • flexibel kombinierbar 3 Warum die Kommandozeile nutzen? Warum die Kommandozeile nutzen? • keine grafische Oberfläche nutzbar – nicht installiert (z.B. Server) – nicht benutzbar (abgestürzt, kaputtkonfiguriert,. . . ) • Anwendung existiert “nur” für Kommandozeile • Anwendungen interaktiv kombinieren • Ressourcen schonen, Bootvorgang verkürzen • Effizienz und Arbeitsersparnis – Beispiel: kopiere aus einem Verzeichnis mit 1000 Dateien diejenigen, deren Name “salzburg” enthält 6
  • 8. Teil II Erste Schritte 4 Wie komme ich auf die Kommandozeile? Auf die Kommandozeile wechseln Aus GUI heraus • Terminal bzw. Konsole starten • zusätzliche Sitzung ohne GUI starten – STRG+ALT+F1 – weitere Sitzungen mit STRG+ALT+F2, STRG+ALT+F3,. . . – zurück zur grafischen Sitzung: STRG+ALT+F7 Schon da? • Eingabeaufforderung (Prompt) erscheint, z.B.kpuschke@localhost:˜ • ggf. in die bash wechseln 5 Erste Befehle Vorsicht Achtung Groß- und Kleinschreibung sowie Leerzeichen sind relevant! Erste Befehle • whoami - Wer bin ich? Mit welchem username bin ich eingeloggt? • hostname - Auf welchem Rechner befinde ich mich? • pwd - In welchem Verzeichnis bin ich? (print working directory) Aufgaben Erste Schritte pwd, whoami, hostname 7
  • 9. Teil III Dateien und Verzeichnisse verwalten 6 Unterwegs im Verzeichnisbaum 6.1 Verzeichnis wechseln Navigation im Verzeichnisbaum Verzeichnis wechseln cd VERZEICHNIS - change directory Aufgaben Verzeichnis wechseln cd, Pfadangaben Verzeichnis wechseln • cd VERZEICHNIS wechselt in Verzeichnis <Verzeichnis> • cd wechselt ins eigene Homeverzeichnis • cd - wechselt ins vorher benutzte Verzeichnis 6.2 Pfadangaben Pfadangaben • absoluter Pfad – beginnt im Rootverzeichnis / – Beispiel: /home/alice/linuxkurs/aufgaben • relativer Pfad – relativ zum aktuellen Verzeichnis – beginnt ohne “/” – aktuelles Verzeichnis: . – nächsthöheres Verzeichnis: .. Pfadangaben - Beispiele Ausgehend von /home/alice/linuxkurs/ entsprechen sich jeweils aufgaben ./aufgaben /home/alice/linuxkurs/aufgaben 8
  • 10. ../mysqlkurs/aufgaben /home/alice/mysqlkurs/aufgaben ../../bob/linuxkurs /home/bob/linuxkurs 6.3 Verzeichnisinhalt ausgeben Verzeichnisinhalt Verzeichnisinhalt ausgeben ls VERZEICHNIS list directory contents (historisch: list segment) Aufgaben Verzeichnisinhalt ausgeben ls Verzeichnisinhalt • ls VERZEICHNIS Inhalt von <Verzeichnis> • ls Inhalt des aktuellen Verzeichnisses • ls - -all VERZEICHNIS ls -a <Verzeichnis> auch versteckte Dateien anzeigen (Dateiname beginnt mit .) • ls -l VERZEICHNIS ls - -format=long <Verzeichnis> long format, mehr Infos Verzeichnisinhalt - ls -l -rw-r- -r- - 1 alice users 2472 2009-03-14 17:54 kurs.txt drwxr-xr-x 2 alice users 4096 2009-05-23 10:06 Videos • Rechte • Anzahl hard links (Datei) oder Unterverzeichnisse (Verzeichnis) • owner • group • Grösse in Bytes • letzte Änderung • Name 9
  • 11. 7 Anlegen, Entfernen, Verschieben, Kopieren Anlegen und Entfernen Anlegen • mkdir VERZEICHNIS make directory • touch DATEI Datei anlegen (bei vorhandener Datei: timestamp setzen) Entfernen • rm DATEI remove • rmdir VERZEICHNISremove directory (entfernt leeres Verzeichnis) • rm -r VERZEICHNISentfernt Verzeichnis samt Inhalt Kopieren, Verschieben, Umbenennen Verschieben und Umbenennen mv QUELLDATEI ZIELDATEI mv DATEI(EN) VERZEICHNIS mv QUELLVERZEICHNIS ZIELVERZEICHNIS move Kopieren cp QUELLDATEI ZIELDATEI cp DATEI(EN) VERZEICHNIS cp -r QUELLVERZEICHNIS ZIELVERZEICHNIS copy Vorsicht Warnung U.U. wird ohne Rückfrage gelöscht oder überschrieben! Aufgaben Dateien und Verzeichnisse Anlegen, Entfernen, Kopieren, Verschieben, Umbenennen 10
  • 12. Teil IV Arbeiten mit der Shell 8 Befehlssyntax - Argumente und Optionen Argumente • Befehle können auf Argumente wirken • manche Befehle verarbeiten keine Argumentez.B. pwd • manche Argumente sind zwingend z.B. Verzeichnisname bei mkdir • manche Argumente sind optional z.B. Verzeichnis bei cd oder zweiter Verzeich- nisname bei mkdir • ggf. mehrere Argumente erforderlichz.B. Quelle und Ziel bei mv Optionen • Verändern die Wirkung von Befehlen rm -r • Syntax uneinheitlich, gängig sind – einzelner Buchstabe mit minus davor rm -r kurs – Wort mit doppeltem minus rm - -recursive kurs – Key-Value mit = rm - -interactive=always • teilweise auch nur mit einfachem minus • Optionen können z.T. kombiniert werden – oft kann dann abgekürzt werden ls -al statt ls -a -l Aufgaben Befehlssyntax und Arbeitsweisen Befehle, Optionen und Argumente, praktische Tips 9 Unterstützung bei der Arbeit 9.1 Arbeitserleichterungen Arbeitserleichterungen • Blättern mit Shift+PageUp/Down • Befehlshistorie mit Cursortasten • Vervollständigung mit Tab • Copy & Paste: – Markieren & per mittlerer Maustaste einfügen – im Terminal oft: STRG+Shift+C, STRG+Shift+V 11
  • 13. 9.2 Hilfe finden Hilfe • Befehlssyntax abfragen:Optionen -h oder - -help • manpage man befehl • info befehl • perldoc, texdoc,... • ... • Notation: Angaben in eckigen Klammern sind optional 9.3 Wildcards und Klammererweiterung Klammererweiterung • Ausdruck in geschweiften Klammern wird zu mehreren Dateinamen erweitert • cp /home/alice/{foo,bar} neuerordner entspricht cp /home/alice/foo /home/alice/bar neuerordner Wildcards • Platzhalter für Dateioperationen • Beispielanwendung: Lösche alle Dateien, deren Name mit linux beginnt • je nach shell: ˜ expandiert zum eigenen Homeverzeichnis ˜ /linuxkurs entspricht /home/<mein_username>/linuxkurs • ? - genau ein beliebiges Zeichen • * - beliebig viele beliebige Zeichen • ! - Verneinung • [] - Characterclass (“oder”) • versteckte Dateien werden ggf. ignoriert Wildcards Beispiele • * - alle Dateien, die nicht versteckt sind • .* - alle versteckten Dateien • f* - alle Dateien, deren Name mit f beginnt • f?o - z.B. foo,flo,f.o • f[ol]o - foo und flo • f[!l]o - foo, fio,... aber nicht flo • [0-9]* - Dateiname beginnt mit Ziffer 12
  • 14. Aufgaben Arbeitserleichterungen und Hilfe/Doku Wildcards, Klammererweiterung, manpages Wildcards Gefahren Welche Dateien werden gelöscht? rm -rf .* Vorsicht! In Kombination mit -r paßt .* auf ../*, d.h. auch auf höhergelegende Verzeichnis- se! 10 Programme steuern Programme steuern Starten und Beenden • Programm starten mit zugehörigem Befehl emacs – Programm im Vordergrund (Shell “blockiert”) • Programm im Hintergrund starten mit & emacs & – Shell nicht “blockiert” • Programm beenden – mit programm-eigenem Befehl – STRG+C Programme steuern • Programm im Vordergrund anhalten/unterbrechen STRG+Z • im Vordergrund weiterlaufen lassen fg • im Hintergrund weiterlaufen lassen bg • was läuft im Hintergrund? jobs Programme steuern Hinweis Die Darstellung der Programmsteuerung ist sehr vereinfacht. Wer mehr wissen möchte, sollte sich über Prozesse und Threads informieren. Aufgaben Programme steuern Aufrufen, Unterbrechen, Beenden, Vorder- und Hintergrund 13
  • 15. Teil V Inhalt von Textdateien 11 Inhalte ausgeben Textdatei ausgeben • cat gibt Inhalt der Datei aus • less oder more zum Durchblättern (pager) • head gibt Anfang der Datei aus • tail gibt Ende der Datei aus • sort sortierte Ausgabe • wc word count - Zeichen, Zeilen oder Wörter zählen 12 Inhalte bearbeiten Textdatei bearbeiten • klein und einfach: nano, pico • mittelklasse: joe, jed • komplex, aber mächtig: emacs, vim • auf lange Sicht lohnend, einen mächtigen Editor zu beherrschen 13 Inhalte durchsuchen - Reguläre Ausdrücke Reguläre Ausdrücke Zur Suche in Text • Platzhalter – . - ein beliebiges Zeichen f.o passt auf foo,flo,f9o aber nicht fouo – [mehrereZeichen] - eines der genannten Zeichen f[aei]o passt auf fao, feo, fio aber nicht faeo • Wiederholungen – * - beliebig oft (oder gar nicht) fo* passt auf foo, fooo, f, fooooooo – ? - einmal oder gar nicht fo?a passt auf fa, foa, aber nicht fooa 14
  • 16. Dateien durchsuchen grep Dateien durchsuchen grep SUCHMUSTER DATEI(EN) Beispiel grep bash kursmaterial.txt grep ’alice and bob’ /home/alice grep ali.* bob.txt Aufgaben Textdateien Inhalte von Textdateien ausgeben und ändern, Textdateien durchsuchen, Reguläre Aus- drücke 15
  • 17. Teil VI Ein- und Ausgabe 14 Ein- und Ausgabe 14.1 Tastatureingabe Tastatureingabe Statt Datei einzulesen • statt Dateinamen - verwendet (je nach Befehl) sort - • Dateinamen weggelassen (je nach Befehl) wc • shell erwartet nun Tastatureingabe • STRG+d entspricht Dateiende 14.2 Ein- und Ausgabe umleiten Ein- und Ausgabe umleiten • > - Ausgabe in Datei schreiben – ls /home/alice/ > alicekram.txt – vorhandene Datei wird überschrieben • >> - Ausgabe an Datei anhängen • | - Pipe: Ausgabe eines Kommandos als Eingabe eines weiteren Kommandos – ls /home/alice | grep bob • < - Eingabe aus Datei lesen – sort < foo.txt – mysql < dump.sql • nach /dev/null geleitet: unwiderbringlich verschwunden 14.3 Deskriptoren Datenströme mit Deskriptoren umleiten Datenkanäle Kanal Deskriptor default Standardeingabe (stin) 0 Tastatur Standardausgabe (stdout) 1 Bildschirm Standardfehlerausgabe (stderr) 2 Bildschirm • Kanal umleiten: n> mv foo bar 2>error.err 16
  • 18. • Kanäle bündeln: n>m& sort foo 2> bar.txt 1>2& • erst umleiten, dann bündeln Aufgaben Ein- und Ausgabe Ein- und Ausgabe umleiten, Deskriptoren 17
  • 19. Teil VII Dateien und Verzeichnisse verwalten II 15 Rechteverwaltung Dateirechte Was für Rechte gibt es • Dateien – r - lesen (read) – w - schreiben (write) – x - ausführen (execute) • Verzeichnisse – r - Verzeichnisinhalt auslesen – w - ins Vezeichnis schreiben – x - ins Verzeichnis wechseln Dateirechte Wer hat Rechte? • user sind in Gruppen groups organisiert • jede Datei hat einen user als owner • zu jeder Datei gehört eine Gruppe • unterschiedliche Rechte für – user (u) (d.h. owner) – group (g) – others (o) Dateirechte Notation • nacheinander für owner, group, others • - bedeutet: Recht nicht gegeben • Beispiel: rwxr-xr-x owner darf r, w und x, group und others nur r und x Dateirechte ändern Rechte ändern chmod MODUS DATEI(EN) • Wer (ugo) bekommt/verliert (+-) welche Rechte (rwx)? – chmod ug+r foo.txt user und group erhalten Leserechte – chmod o-w bar.txt others verlieren Schreibrechte 18
  • 20. Aufgaben Dateirechte Dateirechte verwalten 16 Links Links hard links und sym links • hard link: mehrere Namen für eine Datei – viele Stolperfallen • symbolic link, sym link, soft link: Pointer auf einen Namen – verlinkte Datei/Verzeichnis verschoben/gelöscht: kein update des links – sym link kann andere Rechte haben als verlinkte Datei/Verzeichnis – sehr praktisch im Alltag Sym Links sym link anlegen ln -s ZIEL LINKNAME sym link entfernen rm LINKNAME Aufgaben Links Symlinks 19