Bash Grundlagen - Hausaufgabe

  • Ist das Kommando [ intern oder extern?:

    type [
    >> [ is a shell builtin
    
    which [
    >> [: shell built-in command
    
  • Setze deinen Bash-Prompt, so dass er wiefolgt aussieht: $Username $Uhrzeit(HH:MM:SS) >> :

    PS1='\u \t >> '
    oder
    PS1='\u $(date +%H:%M:%S) >> '
    
  • Schreibe eine Kommandozeile, in der ein Verzeichnis angelegt wird. Wenn das Verzeichnis erfolgreich angelegt wurde, soll eine Meldung auf dem Bildschirm ausgegeben werden:

    mkdir -p /tmp/my/folder && echo "eine Meldung"
    
  • Lege die Ordnerstruktur /tmp/foo/bar/baz mit EINER Kommandozeile an. Entferne sie danach in einem Rutsch mit dem Kommando rmdir:

    mkdir -p /tmp/my/folder && rmdir -p /tmp/my/folder
    
  • Navigiere mit pushd in deinem System. Wechsel in das Verzeichnis /tmp, dann in /usr/share und dann in /lib. Wechsel nun zurück in /tmp:

    pushd /tmp
    pushd /usr/share
    pushd /lib
    dirs
    >> /lib /usr/share /tmp ~
    
    pushd +2
    >> /tmp ~ /lib /usr/share
    
  • Kopiere das Verzeichnis /usr/share/man in dein Homeverzeichnis. Lösche danach das kopierte Verzeichnis rekursiv:

    mkdir ~/man && cp -rv /usr/share/man ~/man && rm -rf ~/man
    
  • Was passiert bei folgenden Umleitungen?

    • kommando &>/tmp/foo

      • stdout & stderr: Console
    • kommando 1>&2 2>/tmp/foo

      • stdout & stderr: /tmp/foo
    • kommando >/tmp/foo 2>>/tmp/foo

      • stdout: Console
      • stderr: /tmp/foo (anhängen)