Ausführen. Nicht belegt Ersetzung findet nicht statt.

13
Ausführen

Transcript of Ausführen. Nicht belegt Ersetzung findet nicht statt.

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