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/Python4DataScience-de/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
create-delete.ipynb.license pipes-filters.ipynb
file-system.ipynb pipes-filters.ipynb.license
file-system.ipynb.license shell-variables.ipynb
grep-find.ipynb shell-variables.ipynb.license
grep-find.ipynb.license
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
debugging.ipynb.license
display.ipynb
display.ipynb.license
examples.ipynb
examples.ipynb.license
extensions.rst
importing.ipynb
importing.ipynb.license
index.rst
magics.ipynb
magics.ipynb.license
mypackage/
myscript.py
shell.ipynb
shell.ipynb.license
start.rst
tab-completion-for-anything.png*
tab-completion-for-anything.png.license
tab-completion-for-modules.png*
tab-completion-for-modules.png.license
tab-completion-for-objects.png*
tab-completion-for-objects.png.license
unix-shell/
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 160
24 create-delete.ipynb 8 index.rst
8 create-delete.ipynb.license 16 pipes-filters.ipynb
32 file-system.ipynb 8 pipes-filters.ipynb.license
8 file-system.ipynb.license 16 shell-variables.ipynb
24 grep-find.ipynb 8 shell-variables.ipynb.license
8 grep-find.ipynb.license
[5]:
!ls -S
file-system.ipynb create-delete.ipynb.license
grep-find.ipynb file-system.ipynb.license
create-delete.ipynb grep-find.ipynb.license
pipes-filters.ipynb pipes-filters.ipynb.license
shell-variables.ipynb shell-variables.ipynb.license
index.rst
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) General Commands Manual LS(1)
NAME
ls – list directory contents
SYNOPSIS
ls [-@ABCFGHILOPRSTUWabcdefghiklmnopqrstuvwxy1%,] [--color=when]
[-D format] [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,
associated information.
If no operands are given, the contents of the current directory are
displayed. If more than one operand is given, non-directory operands are
displayed first; directory and non-directory operands are sorted
separately and in lexicographical order.
The following options are available:
-@ Display extended attribute keys and sizes in long (-l) output.
-A Include directory entries whose names begin with a dot (‘.’)
except for . and ... Automatically set for the super-user unless
-I is specified.
…
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: invalid option -- z
usage: ls [-@ABCFGHILOPRSTUWXabcdefghiklmnopqrstuvwxy1%,] [--color=when] [-D format] [file ...]
Versteckte Dateien¶
Mit der Option -a
könn ihr alle Dateien anzeigen:
[8]:
!ls -a
. grep-find.ipynb
.. grep-find.ipynb.license
.ipynb_checkpoints index.rst
create-delete.ipynb pipes-filters.ipynb
create-delete.ipynb.license pipes-filters.ipynb.license
file-system.ipynb shell-variables.ipynb
file-system.ipynb.license shell-variables.ipynb.license
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
├── create-delete.ipynb.license
├── file-system.ipynb
├── file-system.ipynb.license
├── grep-find.ipynb
├── grep-find.ipynb.license
├── index.rst
├── pipes-filters.ipynb
├── pipes-filters.ipynb.license
├── shell-variables.ipynb
└── shell-variables.ipynb.license
1 directory, 11 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/Python4DataScience-de/docs/workspace/ipython/unix-shell
[11]:
!cd ..
[12]:
!pwd
/Users/veit/cusy/trn/Python4DataScience-de/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/Python4DataScience-de/docs/workspace/ipython
[14]:
!pwd
/Users/veit/cusy/trn/Python4DataScience-de/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/Python4DataScience-de/docs/workspace
Absolute und relative Pfade¶
[19]:
cd .
/Users/veit/cusy/trn/Python4DataScience-de/docs/workspace
[20]:
cd ../..
/Users/veit/cusy/trn/Python4DataScience-de
[21]:
cd ..
/Users/veit/cusy/trn
[22]:
cd /
/
[23]:
cd
/Users/veit
[24]:
cd ~
/Users/veit
[25]:
cd /Users/veit
/Users/veit