English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Verwaltung von Dateien und Verzeichnissen unter Linux

Wir wissen, dass das Verzeichnisstruktur von Linux baumförmig ist, das höchste Verzeichnis ist das Wurzelverzeichnis /.

Andere Verzeichnisse können durch Mounten in das Baumstruktur hinzugefügt und durchUnmounten entfernt werden.

Bevor wir mit diesem Tutorial beginnen, müssen wir wissen, was ein absoluter und relativer Pfad ist.

  • Absoluter Pfad:
    Der Pfad der Schreibweise, vom Wurzelverzeichnis / schreiben, zum Beispiel: /usr/share/doc Dies ist das Verzeichnis.

  • Relativer Pfad:
    Der Pfad der Schreibweise, nicht von / schreiben, zum Beispiel von /usr/share/doc zu /usr/share/Wenn man unter man ist, kann es so geschrieben werden: cd ../man Dies ist die Schreibweise für relativen Pfad.

Häufig verwendete Verzeichnisanweisungen

Nun sehen wir einige häufig verwendete Befehle zur Verarbeitung von Verzeichnissen:

  • ls (vollständige englische Schreibweise: list files): Verzeichnis und Dateinamen auflisten

  • cd (vollständige englische Schreibweise: change directory): Verzeichnis wechseln

  • pwd (vollständige englische Schreibweise: print work directory): Das aktuelle Verzeichnis anzeigen

  • mkdir (vollständige englische Schreibweise: make directory): Ein neues Verzeichnis erstellen

  • rmdir (vollständige englische Schreibweise: remove directory): Ein leeres Verzeichnis löschen

  • cp(英文全拼:copy file): 复制文件或目录

  • rm(英文全拼:remove): 删除文件或目录

  • mv(英文全拼:move file): 移动文件与目录,或修改文件与目录的名称

你可以使用 man [命令] 来查看各个命令的使用文档,如:man cp。

ls (列出目录)

在Linux系统当中, ls 命令可能是最常被运行的。

Syntax:

[root@www ~]# ls [-aAdfFhilnrRSt] 目录名称
[root@www ~]# ls [--color={never,auto,always}] 目录名称
[root@www ~]# ls [--full-time] 目录名称

Optionen und Parameter:

  • -a  :全部的文件,连同隐藏文件( 开头为 . 的文件) 一起列出来(常用)

  • -d  :仅列出目录本身,而不是列出目录内的文件数据(常用)

  • -l  :长数据串列出,包含文件的属性与权限等等数据;(常用)

将家目录下的所有文件列出来(含属性与隐藏档)

[root@www ~]# ls -al ~

cd (切换目录)

cd是Change Directory的缩写,这是用来变换工作目录的命令。

Syntax:

 cd [相对路径或绝对路径]
#使用 mkdir 命令创建 w3codebox 目录
[root@www ~]# mkdir w3codebox
#使用绝对路径切换到 w3codebox 目录
[root@www ~]# cd /root/w3codebox/
#使用相对路径切换到 w3codebox 目录
[root@www ~]# cd ./w3codebox/
# 表示回到自己的家目录,亦即是 /root 这个目录
[root@www w3codebox]# cd ~
# 表示去到目前的上一级目录,亦即是 /root 的上一级目录的意思;
[root@www ~]# cd ..

接下来大家多操作几次应该就可以很好的理解 cd 命令的。

pwd (显示目前所在的目录)

pwd 是 Print Working Directory 的缩写,也就是显示目前所在目录的命令。

[root@www ~]# pwd [-P]

Optionen und Parameter:

  • -P :显示出确实的路径,而非使用连结 (link) 路径。

示例:单纯显示出目前的工作目录:

[root@www ~]# pwd
/root   <== 显示出目录啦~

示例显示出实际的工作目录,而非连结档本身的目录名而已。

[root@www ~]# cd /var/mail   <==注意,/var/mail是一个连结档
[root@www mail]# pwd
/var/mail         <==列出目前的工作目录
[root@www mail]# pwd -P
/var/spool/mail         <== What's going on? Did you add -P The difference is very big~
[root@www mail]# ls -ld /var/mail
lrwxrwxrwx 1 root root 10 Sep  4 17:54 /var/mail -> spool/mail
# You should know why by now? Because /var/mail is a link file, linked to /var/spool/mail 
# So, add -The P option will not display the data of the link file, but the correct complete path!

mkdir (create new directory)

If you want to create a new directory, then use mkdir (make directory)!

Syntax:

mkdir [-mp] Directory name

Optionen und Parameter:

  • -m : configure the file permissions! Configure directly, no need to look at the face of the default permissions (umask)!

  • -p : helps you directly create the required directory (including the parent directory) recursively!

Example: Please go to/Try creating several new directories under tmp to see:

[root@www ~]# cd /tmp
[root@www tmp]# mkdir test                         <== Create a new directory named test
[root@www tmp]# mkdir test1/test2/test3/test4
mkdir: cannot create directory `test1/test2/test3/test4': 
No such file or directory                         <== Cannot create this directory directly!
[root@www tmp]# mkdir -p test1/test2/test3/test4

with this -p option, you can help you create multi-level directories yourself!

Example: Create permissions as rwx--x--x directory.

[root@www tmp]# mkdir -m 711 test2
[root@www tmp]# ls -l
drwxr-xr-x  3 root root 4096 Jul 18 12:50 test
drwxr-xr-x  3 root root 4096 Jul 18 12:53 test1
drwx--x--x  2 root root 4096 Jul 18 12:54 test2

In the above permission section, if it is not added -m to force the configuration properties, the system will use the default properties.

If we use -m, as in the example above, we give -m 711 to give the new directory drwx--x--x permissions.

rmdir (delete empty directory)

Syntax:

 rmdir [-p] Directory name

Optionen und Parameter:

  • -p :including the empty directory one level up

Delete w3codebox directory

[root@www tmp]# rmdir w3codebox/

Delete the directory created in the mkdir example,/tmp underneath) delete it!

[root@www tmp]# ls -l         <== See how many directories exist?
drwxr-xr-x  3 root root 4096 Jul 18 12:50 test
drwxr-xr-x  3 root root 4096 Jul 18 12:53 test1
drwx--x--x  2 root root 4096 Jul 18 12:54 test2
[root@www tmp]# rmdir test         <== It can be deleted directly, no problem
[root@www tmp]# rmdir test1  ===> We cannot delete it because there is still content!
rmdir: `test'1': Verzeichnis nicht leer
[root@www tmp]# rmdir -p test1/test2/test3/test4
[root@www tmp]# ls -l <== Schauen Sie sich die Ausgabe unten an, test und test1Gone!
drwx--x--x  2 root root 4096 Jul 18 12:54 test2

Verwenden Sie -p Diese Option ermöglicht sofort das Kopieren von test1/test2/test3/test4 Einmal löschen.

Allerdings beachten Sie, dass dieser rmdir nur leere Verzeichnisse löschen kann, Sie können den Befehl rm verwenden, um nicht leere Verzeichnisse zu löschen.

cp (Kopieren von Datei oder Verzeichnis)

cp kopiert Dateien und Verzeichnisse.

Syntax:

[root@www ~]# cp [-adfilprsu] Quelle (source) Ziel (destination)
[root@www ~]# cp [options] source1 source2 source3 .... directory

Optionen und Parameter:

  • -a:Gleichbedeutend mit -Bedeutet pdr, weitere Informationen zu pdr finden Sie in den folgenden Anweisungen; (häufig)

  • -d:Wenn die Quelle ein Link-Datei ist, wird die Link-Datei kopiert, anstatt die Datei selbst zu kopieren;

  • -f:Bedeutet force, wenn das Ziel already existiert und nicht geöffnet werden kann, wird versucht, es zu entfernen und dann erneut zu versuchen;

  • -i:Fragt vor dem Überschreiben, ob der Vorgang fortgesetzt werden soll, wenn das Ziel already existiert (häufig)

  • -l:Erstellt eine harte Verknüpfung (hard link) der Datei, anstatt die Datei selbst zu kopieren;

  • -p:Kopiert die Attribute der Datei mit, anstatt Standardattribute zu verwenden (häufig für Backups)

  • -r:Rekursiv fortlaufend kopieren, für Verzeichnis-Kopieraktionen verwendet; (häufig)

  • -s:Kopiere als symbolischen Link (symbolische Verknüpfung), auch als 'Kurzschuss'-Datei;

  • -u:Upgrade destination nur, wenn destination älter als source!

Unter der Root-Identität kopiere das .bashrc aus dem Root-Verzeichnis nach /tmp darunter und benenne es bashrc

[root@www ~]# cp ~/.bashrc /tmp/bashrc
[root@www ~]# cp -i ~/.bashrc /tmp/bashrc
cp: Überschreiben/tmp/bashrc'? n <==n Nicht überschreiben, y zum Überschreiben

rm (Entfernen von Datei oder Verzeichnis)

Syntax:

 rm [-fir] Datei oder Verzeichnis

Optionen und Parameter:

  • -f: Bedeutet force, ignoriert nicht vorhandene Dateien, gibt keine Warnmeldungen aus;

  • -i: Interaktionsmodus, fragt vor dem Löschen den Benutzer nach dem Vorgang

  • -r  :递归删除啊!最常用在目录的删除了!这是非常危险的选项!!!

将刚刚在 cp 的示例中创建的 bashrc 删除掉!

[root@www tmp]# rm -i bashrc
rm: remove regular file `bashrc'? y

如果加上 -i 的选项就会主动询问,避免你删除到错误的文件名!

mv (移动文件与目录,或修改名称)

Syntax:

[root@www ~]# mv [-fiu] source destination
[root@www ~]# mv [options] source1 source2 source3 .... directory

Optionen und Parameter:

  • -f  :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;

  • -i  :如果目标文件 (destination) 已经存在时,就会询问是否覆盖!

  • -u  :如果目标文件已经存在,且 source 比较新,才会升级 (update)

复制一个文件,创建一个目录,将文件移动到目录中

[root@www ~]# cd /tmp
[root@www tmp]# cp ~/.bashrc bashrc
[root@www tmp]# mkdir mvtest
[root@www tmp]# mv bashrc mvtest

将某个文件移动到某个目录,就是这样做!

将刚刚的目录名称更名为 mvtest2

[root@www tmp]# mv mvtest mvtest2

Linux 文件内容查看

Linux 系统中使用以下命令来查看文件的内容:

  • cat   从第一行开始显示文件内容

  • tac   从最后一行开始显示,可以看出 tac 是 cat 的倒写!

  • nl   显示时,顺便输出行号!

  • more 一页一页地显示文件内容

  • less 与 more 类似,但是比 more 更好的是,它还可以往前翻页!

  • head 只看头部几行

  • tail 只看尾部几行

你可以使用 man [命令]来查看各个命令的使用文档,如:man cp。

cat

从第一行开始显示文件内容

Syntax:

cat [-AbEnTv]

Optionen und Parameter:

  • -A  :相当于 -vET 的整合选项,可以列出一些特殊字符而不是空白而已;

  • -b  :列出行号,仅针对非空白行显示行号,空白行不标行号!

  • -E : Den abschließenden Zeilenumbruchsbuchstaben $ anzeigen

  • -n : Zeile mit Zeilennummer ausgeben, einschließlich Leerzeilen, und ist ähnlich wie -Die Optionen von b sind unterschiedlich;

  • -T : Den [tab] Tastendruck mit ^I darstellen;

  • -v : Zeige einige unsichtbare Special Characters an

Überprüfen /etc/Inhalt der Datei 'issue':

[root@www ~]# cat /etc/Ausgabe
CentOS Version 6.4 (Ende)
Kernel \r auf einem \m

tac

Tac ist genau umgekehrt wie der Befehl cat, der Inhalt der Datei beginnt mit der letzten Zeile zu werden angezeigt, so dass Tac als umgekehrtes cat interpretiert werden kann! Zum Beispiel:

[root@www ~]# tac /etc/Ausgabe
Kernel \r auf einem \m
CentOS Version 6.4 (Ende)

nl

Zeilennummern anzeigen

Syntax:

nl [-bnw] Datei

Optionen und Parameter:

  • -b : Methoden der Zeilennummeranzeige, es gibt hauptsächlich zwei Arten:
     -b a : Es werden Zeilennummern angezeigt, egal ob es leere Zeilen gibt (ähnlich cat -n);
     -b t : Wenn es leere Zeilen gibt, werden diese Zeilen nicht mit der Zeilennummer angezeigt (Standardwert);

  • -n : Methoden der Zeilennummeranzeige, es gibt hauptsächlich drei Arten:
     -n ln : Die Zeilennummer wird in der linken Ecke des Bildschirms angezeigt;
     -n rn : Die Zeilennummer wird in der rechten Spalte angezeigt, ohne 0 hinzuzufügen;
     -n rz : Die Zeilennummer wird in der rechten Spalte angezeigt und mit 0 versehen;

  • -w : Anzahl der Stellen für die Zeilennummeranzeige.

Beispiel 1: Zeilennummern mit nl auflisten /etc/Inhalt der Ausgabe

[root@www ~]# nl /etc/Ausgabe
     1  CentOS Version 6.4 (Ende)
     2  Kernel \r auf einem \m

more

Seite für Seite durchblättern

[root@www ~]# more /etc/man_db.config 
#
# Automatisch generiert aus man.conf.in durch das
# Konfigurationsdatei.
#
# man.conf von man-1.6d
....(Mitte weggelassen)....
--More--(28%) == => Hier ist der wichtigste Punkt! Der Cursor wartet hier auf deinen Befehl

Während der Ausführung des Programms more hast du einige Tasten, die du drücken kannst:

  • Leertaste (space) : bedeutet, eine Seite nach unten zu blättern;

  • Enter : bedeutet, eine 'Zeile' nach unten zu blättern;

  • /Zeichenkette : bedeutet, im angezeigten Inhalt nach dem Schlüsselwort 'Zeichenkette' zu suchen;

  • :f : zeigt sofort den Dateinamen und die aktuelle angezeigte Zeile an;

  • q : bedeutet sofort das Programm more zu verlassen und den Inhalt der Datei nicht mehr anzuzeigen.

  • b oder [ctrl]-b : bedeutet zurückzublättern, aber diese Aktion ist nur für Dateien nützlich, nicht für Pipelines.

less

Seite für Seite durchblättern, nachfolgender Beispielausgabe/etc/Inhalt der Datei man.config:

[root@www ~]# less /etc/man.config
#
# Automatisch generiert aus man.conf.in durch das
# Konfigurationsdatei.
#
# man.conf von man-1.6d
....(Mitte weggelassen)....
: == Hier können Sie Befehle eingeben!

Befehle, die während der Laufzeit von less eingegeben werden können:

  • Leertaste : Nach unten eine Seite blättern

  • [pagedown] : Nach unten eine Seite blättern

  • [pageup] : Nach oben eine Seite blättern

  • /Zeichenkette : Suchen nach 'Zeichenkette' nach unten

  • ?Zeichenkette : Suchen nach 'Zeichenkette' nach oben

  • n : Wiederholen der letzten Suche (entspricht / oder ? für Informationen!

  • N : Rückwärts wiederholen der letzten Suche (entspricht / oder ? für Informationen!

  • q : Verlässt das Programm less

head

Erste Zeilen der Datei ausgeben

Syntax:

head [-n number] Datei

Optionen und Parameter:

  • -n : Folgt einer Zahl und zeigt die angegebene Anzahl von Zeilen an

[root@www ~]# head /etc/man.config

Im Standardfall werden die ersten 10 Zeilen! Um die ersten 20 Zeilen, das muss so sein:

[root@www ~]# head -n 20 /etc/man.config

tail

Zeilen am Ende der Datei ausgeben

Syntax:

tail [-n number] Datei

Optionen und Parameter:

  • -n : Folgt einer Zahl und zeigt die angegebene Anzahl von Zeilen an

  • -f : Stellt den Namen der Datei dar, die überwacht werden soll, bis [ctrl]-c beendet das Überwachen von tail

[root@www ~]# tail /etc/man.config
# Im Standardfall werden die letzten zehn Zeilen angezeigt! Um die letzten 20 Zeilen, das muss so sein:
[root@www ~]# tail -n 20 /etc/man.config