English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Мы знаем, что структура каталогов Linux имеет древовидную структуру, а самым верхним каталогом является корневой каталог /.
Другие каталоги можно добавить в дерево через монтирование, а удалить через демонтирование.
Прежде чем начать этот учебник, нам нужно сначала понять, что такое абсолютный путь и относительный путь.
Абсолютный путь:
Запись пути начинается с корневого каталога /, например: /usr/share/doc - это каталог.
Относительный путь:
Запись пути не начинается с /, например, чтобы перейти от /usr/share/doc к /usr/share/man, можно написать: cd ../man - это способ записи относительного пути.
Давайте теперь рассмотрим несколько распространенных команд для обработки каталогов:
ls (полное английское написание: list files): перечисляет каталоги и имена файлов
cd (полное написание: change directory) -切换目录
pwd (полное написание: print work directory) - показать текущую директорию
mkdir (полное написание: make directory) - создание нового каталога
rmdir (полное написание: remove directory) - удаление пустого каталога
cp (полное написание: copy file) - копирование файла или каталога
rm (полное написание: remove) - удаление файла или каталога
mv (полное написание: move file) - перемещение файла и каталога, или изменение имени файла и каталога
Вы можете использовать man [команда] чтобы просмотреть документацию по командам, например: man cp.
В системе Linux команда ls, возможно, является наиболее часто используемой.
Синтаксис:
[root@www ~]# ls [-aAdfFhilnrRSt] имя_каталога [root@www ~]# ls [--color={never,auto,always}] имя_каталога [root@www ~]# ls [--full-time] имя_каталога
Опции и параметры:
-a : все файлы, включая скрытые файлы (файлы, начинающиеся с .) (часто используемый)
-d : выводится только сам каталог, а не данные файлов в каталоге (часто используемый)
-l : длина строки вывода, включает атрибуты и права доступа файла (часто используемый)
Вывод всех файлов в домашней директории (с атрибутами и скрытыми файлами)
[root@www ~]# ls -al ~
cd - аббревиатура от Change Directory, это команда для изменения текущей директории.
Синтаксис:
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 is Print Working Directory abbreviation, which is the command to display the current directory.
[root@www ~]# pwd -P
Опции и параметры:
-P : Displays the actual path, not using the link (link) path.
Example: Simply display the current working directory:
[root@www ~]# pwd /root <== The directory is displayed!
Example: It shows the actual working directory, not just the directory name of the link file itself.
[root@www ~]# cd /var/mail <== Note, /var/mail is a link file [root@www mail]# pwd /var/mail <== List the current working directory [root@www mail]# pwd -P /var/spool/mail <== What's going on? Is there a difference with -P added? [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, with the option of pwd -P, it will not display the data of the link file, but show the correct complete path!
If you want to create a new directory, then use mkdir (make directory)!
Синтаксис:
mkdir [-mp] directory name
Опции и параметры:
-m : Configures the permissions of the configuration file! Configure directly, no need to look at the default permissions (umask)!
-p : Helps you directly create the required directory (including parent directories) recursively!
Example: Try to create 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 <== No such file or directory! It's not possible to create this directory directly! [root@www tmp]# mkdir -p test1/test2/test3/test4
С этим параметром -p, он сам поможет вам создать多层 директории!
Пример: создать директорию с правами rwx--x--x .
[root@www tmp]# mkdir -m 711 test2 [root@www tmp]# ls -l drwxr-xr-x 3 root root 4096 Июл 18 12:50 test drwxr-xr-x 3 root root 4096 Июл 18 12:53 test1 drwx--x--x 2 root root 4096 Июл 18 12:54 test2
Если часть прав не была настроена с помощью -m, система будет использовать mặc định.
Если мы используем -m, как в примере, мы даём новый каталог drwx--x--x权限 711.
Синтаксис:
rmdir [-p] имя_директории
Опции и параметры:
-p :Удалите также и родительскую пустую директорию
Удалите директорию w3codebox
[root@www tmp]# rmdir w3codebox/
Удалите созданную директорию в примере mkdir (/tmp)
[root@www tmp]# ls -l <== Сколько директорий существует? drwxr-xr-x 3 root root 4096 Июл 18 12:50 test drwxr-xr-x 3 root root 4096 Июл 18 12:53 test1 drwx--x--x 2 root root 4096 Июл 18 12:54 test2 [root@www tmp]# rmdir test <== Её можно удалить без проблем [root@www tmp]# rmdir test1 <== Поскольку в ней есть содержимое, её нельзя удалить! rmdir: `test1': Директория не пуста [root@www tmp]# rmdir -p test1/test2/test3/test4 [root@www tmp]# ls -l <== Посмотрите, test и test1 исчезли из вывода! drwx--x--x 2 root root 4096 Июл 18 12:54 test2
Используя опцию -p, вы можете удалить test1/test2/test3/test4 за один раз.
Но要注意的是, эта rmdir может удалить только пустые директории, чтобы удалить не пустую директорию, вы можете использовать команду rm.
cp - это команда для копирования файлов и директорий.
Грамматика:
[root@www ~]# cp [-adfilprsu] 来源档(source) 目标档(destination) [root@www ~]# cp [options] source1 source2 source3 ... directory
Опции и параметры:
-a:Equivalent to -pdr, for pdr, please refer to the following description (commonly used);
-d:If the source file is a link file, copy the link file attributes instead of the file itself;
-f:Means force, if the target file already exists and cannot be opened, remove it and try again;
-i:If the destination file already exists, it will ask for action before overwriting (commonly used)
-l:Create a hard link file instead of copying the file itself;
-p:Copies the file attributes along with the file, not using the default attributes (commonly used for backups);
-r:Recursively continue copying, used for copying directories (commonly used);
-s:Copy as a symbolic link file (shortcut file);
-u:Upgrade destination only if the destination is older than the source!
Using root privileges, copy the .bashrc under the root directory to /tmp and name it bashrc
[root@www ~]# cp ~/.bashrc /tmp/bashrc [root@www ~]# cp -i ~/.bashrc /tmp/bashrc cp: overwrite `/tmp/bashrc'? n <== n do not overwrite, y to overwrite
Синтаксис:
rm [-fir] file or directory
Опции и параметры:
-f: It means force, ignores non-existent files without displaying a warning message;
-i: Interactive mode, asks the user before deleting
-r: Recursively delete! Most commonly used for deleting directories! This is a very dangerous option!!!
Delete the bashrc created in the cp example!
[root@www tmp]# rm -i bashrc rm: remove regular file `bashrc'? y
If the -i option is used, it will actively ask to avoid deleting the wrong file name!
Синтаксис:
[root@www ~]# mv [-fiu] source destination [root@www ~]# mv [options] source1 source2 source3 ... directory
Опции и параметры:
-f :force, то есть强制,если целевой файл уже существует, не будет запрошено, а будет напрямую заменен;
-i :если целевой файл (destination) уже существует, будет запрошено, нужно ли заменить!
-u :если целевой файл уже существует и source новее, то он обновляется (update)
Копировать файл, создать каталог, переместить файл в каталог
[root@www ~]# cd /tmp [root@www ~]# cp ~/.bashrc bashrc [root@www tmp]# mkdir mvtest [root@www tmp]# mv bashrc mvtest
Чтобы переместить файл в определенный каталог, делается так!
Переименовать последний каталог в mvtest2
[root@www tmp]# mv mvtest mvtest2
В Linux системе для просмотра содержимого файла используются следующие команды:
cat отображает содержимое файла с первой строки
tac отображает с последней строки, можно看出, что tac - это cat, написанный backwards!
nl показывает строки и также выводит номера строк!
more показывает содержимое файла страницу за страницей
less, как more, но лучше, так как он может листать назад!
head чтобы увидеть несколько первых строк
tail чтобы увидеть последние несколько строк
Вы можете использовать man [команда]чтобы просмотреть документацию по командам, например: man cp.
Отображает содержимое файла с первой строки
Синтаксис:
cat [-AbEnTv]
Опции и параметры:
-A :эквивалентно опции -vET, позволяет показать некоторые особые символы, а не только пробелы;
-b :печатает номера строк, только для строк без пробелов, пустые строки не помечаются номерами!
-E :показывает символы разрыва строки в конце строки $;
-n :печатает номер строки, включая пустые строки, в отличие от опции -b;
-T :показывает клавишу [tab] как ^I;
-v :показывает некоторые особые символы, которые не видны
Проверьте содержимое файла /etc/issue:
[root@www ~]# cat /etc/issue CentOS release 6.4 (Final) Kernel \r on an \m
Команда tac обратна команде cat, содержимое файла отображается с последней строки, можно看出, что tac - это cat, написанный backwards! Например:
[root@www ~]# tac /etc/issue Kernel \r on an \m CentOS release 6.4 (Final)
Отображение номеров строк
Синтаксис:
nl [-bnw] файл
Опции и параметры:
-b :спецификация метода отображения номеров строк,主要有 два способа:
-b a :независимо от того, пуста строка или нет, также отображать номер строки (например, cat -n);
-b t :если есть пустые строки, не отображать номер строки (по умолчанию);
-n :метод отображения номеров строк,主要有 три способа:
-n ln :номер строки отображается в левом углу экрана;
-n rn :номер строки отображается в правом углу блока, без добавления 0;
-n rz :номер строки отображается в правом углу блока, с добавлением 0;
-w :количество знаков, занимаемых номером строки.
Пример один: использовать nl для вывода содержимого /etc/issue
[root@www ~]# nl /etc/issue 1 CentOS release 6.4 (Final) 2 Kernel \r on an \m
Страница за страницей
[root@www ~]# more /etc/man_db.config # # Generated automatically from man.conf.in by the # configure script. # # man.conf from man-1.6d ....(средний текст опущен).... --More--(28%) <== Внимание, важная строка! Cursor также будет ждать вашего команды здесь
В процессе выполнения программы more у вас есть несколько клавиш, которые можно нажать:
Пробел (space):означает向下 страницу;
Enter :означает向下翻 'одну строку';
/строка :означает向下 поиск ключевого слова 'строка' в текущем содержимом;
:f :немедленно показывает имя файла и текущую строку, которую отображается;
q :означает немедленный выход из more и больше не отображать содержимое файла.
b или [ctrl]-b :означает назад страницу, но это действие действует только на файл, а не на管道.
Страница за страницей, следующий пример вывода содержимого файла /etc/man.config:
[root@www ~]# less /etc/man.config # # Generated automatically from man.conf.in by the # configure script. # # man.conf from man-1.6d ....(средний текст опущен).... : <== Здесь можно ждать ввода команды!
less runtime поддерживает следующие команды:
Пробел : перейти на одну страницу вниз;
[pagedown] : перейти на одну страницу вниз;
[pageup] : перейти на одну страницу вверх;
/строка : функция поиска строки向下;
?строка : функция поиска строки向上;
n : повторный поиск в прямом порядке (связан с / или ?!)
N : повторный поиск в обратном порядке (связан с / или ?!)
q : выход из программы less;
Получение первых строк файла
Синтаксис:
head [-n number] файл
Опции и параметры:
-n : за ним следует цифра, которая означает количество строк для отображения
[root@www ~]# head /etc/man.config
По умолчанию, отображается первые 10 строк! Чтобы отобразить первые 20 строк, нужно сделать так:
[root@www ~]# head -n 20 /etc/man.config
Получение последних строк файла
Синтаксис:
tail [-n number] файл
Опции и параметры:
-n : за ним следует цифра, которая означает количество строк для отображения
-f : означает постоянное отслеживание файла, который следует за ним, и останавливается только при нажатии [ctrl]-c
[root@www ~]# tail /etc/man.config # По умолчанию, отображается последние десять строк! Чтобы отобразить последние 20 строк, нужно сделать так: [root@www ~]# tail -n 20 /etc/man.config