Top Banner
Ausführen
13

Ausführen. Nicht belegt Ersetzung findet nicht statt.

Apr 05, 2015

Download

Documents

Eckhard Aggen
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Ausführen. Nicht belegt Ersetzung findet nicht statt.

Ausführen

Page 2: Ausführen. Nicht belegt Ersetzung findet nicht statt.

Nicht belegt

Page 3: Ausführen. Nicht belegt Ersetzung findet nicht statt.

Ersetzung findet nichtstatt

Page 4: Ausführen. Nicht belegt Ersetzung findet nicht statt.

Gruppierung von Kommandos

• & - Startet im Hintergrund

• K1 && K2 – K2 wartet auf rc=0 von K1

• K1 || K2 – K2 wartet auf rc!=0 von K1

• (K1) – K1 wird in neuer Subshell gestartet

Page 5: Ausführen. Nicht belegt Ersetzung findet nicht statt.

Jobhandling

• CTRL+Z – unterbricht aktuelles Kommando und gibt die Kommandozeile wieder frei

• bg (%n) – schiebt letzten bzw. n-ten unterbrochenen Prozess in den Hintergrund

• fg (%n) – holt den letzten bzw. n-ten Prozess aus dem Hintergrund nach vorne

• jobs – zeigt alle Prozesse im Hintergrund an• kill %n – bricht den n-ten Prozess ab

Page 6: Ausführen. Nicht belegt Ersetzung findet nicht statt.

History

• fc – fix command

• history n – zeigt die Kommandohistory (ab Kommando n) = fc -l

• r n = fc –e –[n] - Wiederholt das n-te Kommando

Page 7: Ausführen. Nicht belegt Ersetzung findet nicht statt.

Vervollständigung von Datei- und Verzeichnisnamen im vi-Modus

• ESC\ - Vervollständigung eines Pfad- oder Dateinamens

• ESC= - Auflistung aller möglichen Datei oder Pfadnamen

Page 8: Ausführen. Nicht belegt Ersetzung findet nicht statt.

Arrays

• set –A dasarray „null“ „eins“ „zwo“• echo ${dasarray[2]} - ergibt zwo• dasarray[3]=„drei“ – weist dem Array an dem

Element 3 den Wert drei zu• For-Schleife kann das Array auch auswerten: for

i in ${meinarray[*]};do … • echo {meinarray[*]} gibt das ganze Array aus• echo {#meinarray[*]} gibt die Anzahl der

Elemente aus• echo {#meinarray[1]} gibt die Länge des

Elements 1 aus

Page 9: Ausführen. Nicht belegt Ersetzung findet nicht statt.

Die wichtigsten Shell-Variablen• ? – Returncode des letzten Kommandos• $ - Prozessnummer der Shell• * - Argumente die an die Shell übergeben wurden als eine Zeichenkette• @ - Argument die an die Shell übergeben wurden als einzelne Zeichenketten• # - Anzahl der Argumente die an die Shell übergeben wurden• HOME – Homeverzeichnis• PWD – aktuelles Arbeitsverzeichnis• IFS – Feldtrennzeichen• PATH – Pfade in denen nach ausführbaren Programmen gesucht wird• PS1 – Eingabeaufforderung• LOGNAME – Login-Name des Benutzers• TERM – aktuelles Terminal• RANDOM – Zufallszahl zwischen 0 und 32767• HISTSIZE – Anzahl der Einträge in der Kommandohistory• TMOUT – Anzahl der Sekunden nach der die Shell bei Inaktivität geschlossen

werden soll• ENV – Name der Datei die beim Start der Shell eingelesen werden soll

Page 10: Ausführen. Nicht belegt Ersetzung findet nicht statt.

Die wichtigsten Optionen der Shell

• -e – Shell wird beendet wenn rc!=0• -f – Schaltet die Dateinamenersetzung aus• -n – Kommandos werden gelesen und auf Syntax überprüft, aber

nicht ausgeführt• -x – Das Kommando wird vor der Ausführung ausgegeben• -v – Jede Eingabezeile die die Shell liest wird ausgegeben• -b – Benutzer wird benachrichtigt wenn ein Job im Hintergrund fertig

ist• -a – Alle neu gesetzten oder geänderten Variablen werden in das

Environment exportiert• -C – Verbietet das Überschreiben eine Datei bei der Umlenkung der

Standard-Ausgabe mit Hilfe des > - Operators (nur bash)• -o vi – vi-Modus• -o ignoreeof – Verhindert das Beenden der Shell durch CTRL-D

Page 11: Ausführen. Nicht belegt Ersetzung findet nicht statt.

Rechnen

• expr wird zum Rechen benutzt

• Es müssen immer Leerzeichen zwischen den Argumenten verwendet werden. Beispiel: expr 3 + 3

Page 12: Ausführen. Nicht belegt Ersetzung findet nicht statt.

Das test Kommando (ksh, bash)• if (( $x == $y )) – Zahlen testen: (( < > <= >= ))• if [[ „$a“ = „$b“ ]] – Strings testen [[= != < > -n –z ]]• if [[ „$a“ = „$b“ && „$c“ = „$d“ ]] – Logische Operatoren: && || !• if [[ „$a“ = „$b“ -a „$c“ = „$d“ ]] – Logische Operatoren von test: -a

(ist wahr wenn beide Operatoren wahr sind) –o (ist wahr wenn weningstens ein Operator wahr ist) ! (Ist wahr wenn die Operatoren nicht wahr sind)

• If [[ „$a == 20?? ]] – Strings auf Muster testen -n – nicht leer• -z – leer oder existiert nicht• && UND / || ODER / ! NICHT

Page 13: Ausführen. Nicht belegt Ersetzung findet nicht statt.

Dateitests• -f – Eine reguläre Datei• -d – Ein Verzeichnis• -L – Ein Link• -e – existiert (egal ob Verzeichnis, Datei oder Link)• -s – existiert nicht, oder ist leer• -r – ist lesbar• -w – ist schreibbar• -x – ist ausführbar• -b – ist eine Gerätedatei (Block special Device)• -c – ist eine Gerätedatei (Character special Device)• -p – ist eine named pipe• -t – ist ein serielles Terminal• -u – das setuid Bit ist gesetzt• -g – das setgid Bit ist gesetzt• -k – das sticky Bit ist gesetzt• -S - ist ein Socket• -O – Benutzer des Skriptes besitzt die Datei• -G – Benutzer des Skriptes hat die gleiche GID wie Datei• file1 –nt file2 – file1 neuer als file2• file1 – ot file2 – file1 älter als file2• file1 –ef file2 – file1 und file2 sind Hardlinks