Aus EasyLinux 03/2015

Know-how für die Kommandozeile

Shell-Tipps

Erfahrene Linux-Nutzer schwören auf flexible Kommandozeilentools, mit denen sie manche Aufgabe schneller bewältigen als in grafischen Programmen. Wir stellen interessante Anwendungen und Aufrufparameter vor, um auch Einsteiger zu einem Ausflug in die Shell zu ermutigen.

Tipp: Welcher Tag ist heute?

Das Kommando date zeigt nicht nur den aktuellen Tag und die Uhrzeit an, sondern hilft Administratoren auch dabei, die Systemzeit zu verändern. Letzteres erfordert Root-Rechte. Als normaler Anwender tippen Sie date ohne weitere Aufrufparameter und sehen dann beispielsweise eine Ausgabe wie diese hier:

$ date
Fr 19. Jun 11:07:01 CEST 2015

Der Befehl bietet ein paar praktische Optionen, mit denen Sie die Ausgabe formatieren. So verrät %b beispielsweise den Namen des Monats in Kurzform, %B den Monat (ausgeschrieben), %H die Stunde im 24-Stunden-Format, %I die Stunde im 12-Stunden-Format, %a den Wochentag in Kurzform, und mit %A zeigen Sie den Wochentag in Langform an. Vor die Formatierungsoptionen stellen Sie ein Pluszeichen. Den Wochentag bringen Sie also so in Erfahrung:

$ date +%A
Freitag

Tipp: „umask“: Standardeinstellung für Zugriffsrechte

Wenn Sie neue Dateien und Verzeichnisse erstellen, erhalten diese automatisch bestimmte Zugriffsrechte für Sie selbst, die Mitglieder Ihrer Standardgruppe sowie sonstige Benutzer. Für die Vorgabe ist die „file mode creating mask“ zuständig, ein Wert, den die Shell intern speichert und den Sie über das in die Shell eingebaute Kommando umask ändern können. Geben Sie am Prompt einfach nur umask ein, um die aktuelle Konfiguration auszulesen:

$ umask
0022

Diese vierstellige Oktalzahl zeigt nicht an, welche Rechte gesetzt, sondern welche entzogen werden. (Zu Zugriffsrechten und der Umrechnung in Oktalzahlen lesen Sie einen ausführlichen Artikel in unserer Schwesterzeitschrift LinuxUser [1].) Das bedeutet, dass bei Verzeichnissen, die in der Voreinstellung 0777 (-rwxrwxrwx) erhalten, jeweils für die Gruppe und alle anderen 2 (also die Schreibrechte) abgezogen werden (= 0755):

$ mkdir test
$ ls -ld test
drwxr-xr-x 2 huhn huhn 4096 Jun 19 12:41 test/

Gleiches gilt für Dateien. Sind diese normalerweise mit 0666 ausgestattet, erhalten sie nach Abzug der umask entsprechend 0644 (rw-r–r–):

$ touch datei
$ ls -l datei
-rw-r--r-- 1 huhn huhn 0 Jun 19 13:00 datei

Um die Voreinstellung zu verändern, geben Sie hinter umask einfach einen neuen Wert an. Ziemlich restriktiv ist beispielsweise 0077, was Dateien und Verzeichnisse nur noch für den Eigentümer verfügbar macht:

$ umask 0077
$ touch datei
$ ls -l datei
-rw------- 1 huhn huhn 0 Jun 19 13:10 datei
$ mkdir test
$ ls -ld test
drwx------ 2 huhn huhn 4096 Jun 19 12:41 test/

Eine so gesetzte umask ist nur für die Dauer der aktuellen Shell-Sitzung gültig. Um sie dauerhaft zu verändern, tragen Sie den umask-Aufruf aus dem letzten Listing in die Datei ~/.bashrc ein. Lesen Sie die veränderte Konfiguration entweder mit source ~/.bashrc neu ein oder melden Sie sich ab und wieder an.

Tipp: „mkdir“: Rechte für Verzeichnis setzen

Wenn Sie mit dem Befehl mkdir („make directory“ = „erzeuge Verzeichnis“) ein neues Verzeichnis erstellen, erhält dieses in der Voreinstellung die durch umask gesetzten Rechte (siehe voriger Tipp). Alternativ manipulieren Sie diese nachträglich mit dem Kommando chmod, wie es ein älterer Artikel im LinuxUser [1] beschreibt. Diesen Arbeitsschritt können Sie einsparen, indem Sie die mkdir-Option -m (mode) beim Aufruf verwenden. Dahinter geben Sie wieder eine Oktalzahl an, welche die gewünschten Rechte definiert:

$ mkdir -m 0700 test
$ ls -ld test
drwx------ 2 huhn huhn 4096 Jun 19 13:14 test/

Tipp: „which“: Ausführbare Programme finden

Sie möchten gerne wissen, wo genau im Dateisystem ein Programm liegt? Nichts leichter als das: Der Befehl which hilft bei der Suche nach dem Pfad. Dazu geben Sie hinter dem Kommando den Namen der ausführbaren Programmdatei an. which durchforstet dann alle Verzeichnisse, die in der Umgebungsvariable PATH gespeichert sind, und schreibt das Ergebnis auf die Standardausgabe (Abbildung 1).

Abbildung 1: Der Befehl "which" hilft Ihnen bei der Suche nach Programmpfaden.
Abbildung 1: Der Befehl „which“ hilft Ihnen bei der Suche nach Programmpfaden.

Tipp: „whereis“: Programmpfade, Quellen und Manpages

Der Befehl whereis arbeitet ähnlich wie which aus dem vorigen Tipp, ist aber etwas auskunftsfreudiger. Er verrät zusätzlich zum Pfad, in welchem Verzeichnis die Quellen liegen und wo sich die Manpage befindet (Abbildung 2). Mit verschiedenen Aufrufparametern schränken Sie die Ausgabe ein. Geben Sie beispielsweise -m an, sucht whereis nur nach den Handbuchseiten:

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 3 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
KAUFEN
EasyLinux 03/2015 KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS
Deutschland

Hinterlasse einen Kommentar

  E-Mail Benachrichtigung  
Benachrichtige mich zu: