Kategorien
Allgemeines Entwickler

Mac OS X: Arbeiten mit der Shell

Im Artikel vor ein paar Wochen hatten wir uns die zsh eingerichtet, ich habe euch Themes und Plugins gezeigt. In diesem Tutorial soll es nun um die Arbeit mit der Konsole gehen. Ich möchte einige gebräuchliche Befehle für die Shell euch vorstellen.Terminalbefehle

clear                            Lösch den Terminalinhalt

date                            Zeigt das Datum

reboot                        Neustart des Rechners

md5 <dateiname>            Die Prüfsumme einer Datei wird überprüft

md5sum <dateiname>        Die Prüfsumme einer Datei wird überprüft

top                            Informationen der laufenden Prozesse, Speicherbedarf, CPU, Cache

cal                            Zeigt den Kalender

Befehle zur Bearbeitung von Dateien

cat<dateiname>                zeigt den Inhalt der Datei

cd                                ohne Parameter wechselt in das eigene Benutzerverzeichnis (root)

cd ..                            Wechselt ein Verzeichnis tiefer

cd <Verzeichnis>            Wechselt ein Verzeichnis tiefer

ls                                Zeigt den Inhalt des Verzeichnisses an in dem mann ich befindet

ls -a                            Zeigt versteckte dateien an.

find                            Suche nach Dateien nach jeweiligen Parameter

rm <dateiname>                Löscht eine Datei, mit weiteren Parametern auch Ordner

mv                                verschiebt bzw. ändert Namen von Dateien

cp                                kopiert Dateien

vi <datei>                    Textbasierter Editor

nano <datei>                Texbasierter Editor

open                            Öffnen eines Programm

sudo                            Führt einen Befehl als root aus. Das Admin Passwort muss eingegeben
werden. !Bei Eingabe des Passwort sieht nicht was mann eingibt!

Fast alle Befehle lassen sich mit CTRL + C abbrechen. Mit den Cursor Tasten „up“ and „down“ kann eingegebene Befehle wiederholen.

Dateien anzeigen

Mit ls können wir uns den Inhalt des aktuellen Verzeichnis ausgeben lassen. Mit „ls“ sehen wir die Dateien und Ordner in unterschiedlichen Farben dargestellt. Bei „ls -l“ werden uns die Dateien und Ordner mit den verschiedenen Dateirechten, Benutzer und dem Erstellungsdatum angezeigt. Wiederum mit „ls -a“ werden uns die Versteckten Dateien angezeigt, welche wir an einem davor besetzen Punkt erkennen, z.B. „.zshrc“.

ls

ls_1

Beispiele zu cd  

Der Syntax von cd ist relativ simpel. In Zeile 1 wechseln wir aus dem Home-Verzeichnis in das Verzeichnis Document. In der Zeile 2 erzeugen wir einen (relativen) Verzeichniswechsel in das übergeordnete Verzeichenis. Wir könnten auch statt „../„ zu nutzen schreiben „cd ..“ (wir befinden uns wieder im Home-Verzeichnis) „cd pictures“.
In Zeile 3 wechseln wir mit der Eingabe „cd“ das Home-Verzeichnis.
Mit der Eingabe „pwd“ bekommen wir die aktuelle Pfadangabe in der wir uns befinden. Alle diese relativen sowie absoluten Pfadangaben kann mann mit anderen Befehlen nutzen.

cd

Dateien und Ordner erstellen

Mit den Befehlen „touch“ erstellen wir Dateien und mit „mkdir“ erstellen wir Ordner. Auch kann mann relative und absolute Pfade nutzen. Mann kann auch im System nicht sichtbare Dateien erstellen (siehe Zeile 3), diese werden in einem späteren Zeitpunkt benötigen wenn wir uns Bower und Grunt ansehen.

touch-mkdir

Dateien kopieren mit cp

Um Dateien und Ordner zu kopieren nutzen wir „cp“. In Zeile 1 kopieren wir die Datei auf den Desktop (Schreibtisch) mit dem gleichen Namen wie die Ursprungsdatei. In Zeile 2 hingegen kopieren wir diese Datei mit auch auf den Desktop nur mit Namen „test1.txt“. Der letzte Befehl in Zeile 3 nutz einen neuen Parameter namens „-r“. Wollen wir komplette Verzeichnisse mit deren Inhalt kopieren brauchen wir den Parameter „-r“, der besagt das alles ab diesem Punkt kopiert wird. Probiert hier doch einfach ein wenig herum, wer Hilfe benötigt kann im Terminal einfach „cp man“ eingeben und bekommt auch gleich eine Hilfestellung.

cp
ACHTUNG bei rm!

Hier ist wirklich Vorsicht geboten, da der Befehl „rm“ Daten löscht und direkt nachzufragen.
Die gelöschten Ordner oder Dateien landen auch nicht im Papierkorb, nur über die Option Time Maschine (macht immer fein ein Backup) habt ihr die Möglichkeit die Dateien wiederherzustellen.
In der ersten Zeile löschen wir die date test.txt . In Zeile 2 wollen wir einen Ordner löschen und bekommen einen Fehler. Wir erinnern uns an den rekursiven Abstieg und sehen das es dann mit dem Parameter „-r“ auch wunderbar klappt.

rm
Dateien und Ordner verschieben

Zum verschieben und umbenennen von Dateien nutzen wir den Befehl „mv“. In Zeile 1 wird die Datei test.txt zu 2test.txt umbenannt. Nutzen wir den befehl mv wie in Zeile 1 und setzen einen Ordner als Ziel dahinter, wird die Datei dahin verschoben. In Zeile 3 verschieben wir den Ordner an das angegebene Ziel.

mv

Dateien und Ordner suchen

Mit den beiden Befehlen „find“ und „grep“ geht man auf die Suche nach Dateien und Ordner im eigenen System.
In Zeile 1 wird nach allen Dateien mit der Endung „.txt“ gesucht und aufgelistet.
In Zeile 2 sieht man noch eine zweite Variante nach Dateien zu suchen. Wir erinnern uns „ls“ gibt zeigt uns alle Dateien an. Der Senkrechte Strich genannt „pipe“ leitet den befehl weiter. In dem Fall an „grep“ der uns den Verzeichnisinhalt auflistet mit Dateien die nur die Endung „.txt“ enthalten.

find-grep
Nun haben wir die Basis für die ersten Befehle geschaffen um die Konsole zu nutzen. All diese Befehle kann mann nun mit variablen (siehe „rm -r“) weiter verfeinern. Damit mann nicht immer die Befehle in ihrer Ursprungsform hinschreiben muss gibt es die Möglichkeit diese abzukürzen oder diese für sich anders zu benennen. Das Zauberwort hierfür lautet „Alias“

Hier ein paar Beispiele dafür.

  1. Wir öffnen des Terminal
  2. und öffnen die Datei „.zshrc“ oder „.bash_profil“. (Ich mache das hier mal nur mit der zshrc da ich die oh-my-zsh shell nutze.
  3. „nano .zshrc“
  4. und hier sehen wir in der Datei das uns schon jemand Beispiele vorgegeben hat.

„# Example aliases „
„# alias zshconfig=“mate ~/.zshrc“ “
„# alias ohmyzsh=“mate ~/.oh-my-zsh“ „

nehmen wir doch einfach die oben genannten Befehle.

alias md=’mkdir‘
alias ..=’cd ..‘
alias ll=‚ls -l‘
alias ls=‚ls -a‚
alias fire=‚open -a Firefox‚

wir speichern die Datei ab mit „CTRL + o“ und mit „CTRL + x“ kommen wir aus dem Programm.
Das Terminal neu starten und die neuen aliase sollten nun wunderbar funktionieren.

Das „Alias“ kann man auch nutzen um schnell zu oft benutzen Orndern zu gelangen.

  1. Das Terminal öffnen
  2. „nano .zshrc“
  3. eingeben und setzen einfach untern den schon angelegten alias befehlen einfach weitere.
  4. alias projekt=‚~/Ordner/Ordner‘
  5. Die Datei speichern mit
  6. „CTRL + O“ und schließen mit „CTRL + X“

Ein Beispiel:

Wir legen uns vier Ordner an.

alias-ordner

begeben und mit „cd“ in Home-Verzeichnis und öffnen die Datei „.zshrc“

alias-ordner1

und legen uns einen neuen alias für unsere Ordnerstruktur an.

alias myprojekt=‚~/test/test1/test2/test3‚

wir speichern die Datei „CTRL + o“ und schliessen es mit „CTRL + x“ und starten das Terminal neu „CMD + N“ und geben einfach „myprojekt“ ein bestätigen mit Enter und schon sind wir im angelegten Ordner „test3“.

alias-ordner2

Sublime Text3 Symlink anlegen

Wir öffnen das Terminal und legen in unserem „Home“ verzeichnis einen Ordner namens „bin“ an.

$ mkdir bin

dann einfach den link kopieren

ln -s "/Applications/Sublime Text 3.app/Contents/SharedSupport/bin/subl" /usr/local/bin/subl

fertig! das war es schon 🙂

Dann öffnen wir die „.bash_profil“

nano .bash_profile

und tragen folgende Zeilen ein:

export PATH=/bin:/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:$PATH
export EDITOR='subl -w'

mit „CTRL + O“ speichern und mit „CTRL + X“ verlassen wir nano.

Das Terminal neu starten.

Der Test

subl ~/documents

und Sublime sollte sich öffnen und den Ordner mit allen Unterordner sowie Dateien darin öffnen.

Nützliche Links zum Thema:
http://palita.net/2011/08/26/grundlagen-bash-linux-mac-terminal/

http://de.wikipedia.org/wiki/Unix-Kommando

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert