Navigieren durch Dateien und Verzeichnisse#
Zuerst wollen wir herausfinden, wo wir uns befinden, indem wir den Befehl pwd
ausführen:
[1]:
!pwd
/Users/veit/cusy/trn/jupyter-tutorial/docs/workspace/ipython/unix-shell
Hier ist die Antwort das iPython-Kapitel des Jupyter-Tutorials in meinem Home-Verzeichnis /Users/veit
.
Unter Windows sieht das Home-Verzeichnis aus wie C:\Documents and Settings\veit
oder C:\Users\veit
und unter Linux wie /home/veit
.
Um den Inhalt dieses Verzeichnisses zu sehen, können wir ls
verwenden:
To see the contents of our this directory, we can use ls
:
[2]:
!ls
create-delete.ipynb index.rst shell-variables.ipynb
file-system.ipynb pipes-filters.ipynb
grep-find.ipynb regex.ipynb
ein nachgestelltes
/
kennzeichnet ein Verzeichnis@
zeigt einen Link an*
steht für eine ausführbare Datei
Abhängig von euren Standardoptionen kann die Shell auch Farben verwenden, um anzuzeigen, ob ein Eintrag eine Datei oder ein Verzeichnis ist.
ls
-Optionen und Argumente#
[3]:
!ls -F ../
debugging.ipynb extensions.rst magics.ipynb start.rst
display.ipynb importing.ipynb mypackage/ unix-shell/
dvc.list index.rst shell.ipynb
length.txt sorted-length.txt
ls
ist der Befehl, mit der Option -F
und dem Argument ../
.
Optionen beginnen entweder mit einem einzelnen Bindestrich (
-
) oder zwei Bindestrichen (--
) und ändern das Verhalten eines Befehls.Argumente sagen dem Befehl, womit er operieren soll.
Optionen und Argumente werden manchmal auch als Parameter bezeichnet.
Jeder Teil wird durch Leerzeichen getrennt.
Auch die Großschreibung ist wichtig, z. B.
ls -s
zeigt neben den Namen auch die Größe der Dateien und Verzeichnisse an, währendls -S
die Dateien und Verzeichnisse nach Größe sortiert.
[4]:
!ls -s
total 70384
24 create-delete.ipynb 16 pipes-filters.ipynb
70288 file-system.ipynb 8 regex.ipynb
24 grep-find.ipynb 16 shell-variables.ipynb
8 index.rst
[5]:
!ls -S
file-system.ipynb pipes-filters.ipynb index.rst
grep-find.ipynb shell-variables.ipynb
create-delete.ipynb regex.ipynb
Alle Optionen und Argumente anzeigen#
ls
hat viele weitere Optionen, und mit man
könnt ihr euch diese anzeigen lassen:
[6]:
!man ls
LS(1) BSD General Commands Manual LS(1)
NAME
ls -- list directory contents
SYNOPSIS
ls [-ABCFGHLOPRSTUW@abcdefghiklmnopqrstuwx1%] [file ...]
DESCRIPTION
For each operand that names a file of a type other than directory, ls
displays its name as well as any requested, associated information. For
each operand that names a file of type directory, ls displays the names
of files contained within that directory, as well as any requested, asso-
ciated information.
If no operands are given, the contents of the current directory are dis-
played. If more than one operand is given, non-directory operands are
displayed first; directory and non-directory operands are sorted sepa-
rately and in lexicographical order.
The following options are available:
-@ Display extended attribute keys and sizes in long (-l) output.
-1 (The numeric digit ``one''.) Force output to be one entry per
line. This is the default when output is not to a terminal.
…
BSD May 19, 2002 BSD
Unzulässige Optionen#
Wenn ihr versucht, eine Option zu verwenden, die nicht unterstützt wird, geben die Befehle normalerweise eine Fehlermeldung aus, z. B. für:
[7]:
!ls -z
ls: illegal option -- z
usage: ls [-@ABCFGHLOPRSTUWabcdefghiklmnopqrstuwx1%] [file ...]
Versteckte Dateien#
Mit der Option -a
könn ihr alle Dateien anzeigen:
[8]:
!ls -a
. file-system.ipynb regex.ipynb
.. grep-find.ipynb shell-variables.ipynb
.ipynb_checkpoints index.rst
create-delete.ipynb pipes-filters.ipynb
Zusätzlich zu den versteckten Verzeichnissen ..
und .
seht ihr möglicherweise auch ein Verzeichnis namens .ipynb_checkpoints
. Diese Datei enthält normalerweise Schnappschüsse der Jupyter-Notebooks.
Verzeichnisbaum anzeigen#
[9]:
!tree
.
├── create-delete.ipynb
├── file-system.ipynb
├── grep-find.ipynb
├── index.rst
├── pipes-filters.ipynb
├── regex.ipynb
└── shell-variables.ipynb
0 directories, 7 files
Verzeichnis wechseln#
Auf den ersten Blick mag für manche irritierend wirken, dass sie mit !cd
nicht in ein anderes Verzeichnis wechseln können.
[10]:
!pwd
/Users/veit/cusy/trn/jupyter-tutorial/docs/workspace/ipython/unix-shell
[11]:
!cd ..
[12]:
!pwd
/Users/veit/cusy/trn/jupyter-tutorial/docs/workspace/ipython/unix-shell
Der Grund dafür ist, dass Jupyter eine temporäre Subshell verwendet. Wenn ihr dauerhaft in ein anderes Verzeichnis wechseln wollt, müsst ihr den magischen Befehl %cd
verwenden.
[13]:
%cd ..
/Users/veit/cusy/trn/jupyter-tutorial/docs/workspace/ipython
[14]:
!pwd
/Users/veit/cusy/trn/jupyter-tutorial/docs/workspace/ipython
Mit der Funktion %automagic
können diese auch ohne das vorangestellte %
-Zeichen verwendet werden:
[17]:
%automagic
Automagic is ON, % prefix IS NOT needed for line magics.
[18]:
cd ..
/Users/veit/cusy/trn/jupyter-tutorial/docs/workspace
Absolute und relative Pfade#
[19]:
cd .
/Users/veit/cusy/trn/jupyter-tutorial/docs/workspace
[20]:
cd ../..
/Users/veit/cusy/trn/jupyter-tutorial
[21]:
cd ..
/Users/veit/cusy/trn
[22]:
cd /
/
[23]:
cd
/Users/veit
[24]:
cd ~
/Users/veit
[25]:
cd /Users/veit
/Users/veit