В этой статье, RHCSA Часть 2: Управление файлами и каталогами, мы рассмотрим несколько основных навыков, которые необходимы в повседневных задачах системного администратора.

Создание, Удаление, Копирование и Перемещение Файлов и Каталогов
Управление файлами и каталогами является критической компетенцией, которой должен обладать каждый системный администратор. Это включает в себя возможность создания / удаления текстовых файлов с нуля (ядро конфигурации каждой программы) и каталогов (где вы будете организовывать файлы и другие каталоги), а также определение типа существующих файлов.
Команда touch может использоваться не только для создания пустых файлов, но и для обновления времен доступа и модификации существующих файлов.

Вы можете использовать file [имя_файла]
, чтобы определить тип файла (это пригодится перед запуском вашего предпочтительного текстового редактора для его редактирования).

и rm [имя_файла]
для удаления его.

Что касается каталогов, вы можете создавать каталоги внутри существующих путей с помощью mkdir [каталог]
или создать полный путь с помощью mkdir -p [/полный/путь/к/каталогу]
.

Что касается удаления каталогов, вам нужно убедиться, что они пусты, прежде чем выполнять команду rmdir [каталог]
, или используйте более мощную (будьте осторожны!) rm -rf [каталог]
. Этот последний вариант принудительно удаляет рекурсивно [каталог]
и все его содержимое – поэтому используйте его на свой страх и риск.
Перенаправление Ввода и Вывода и Конвейеризация
Среда командной строки предоставляет две очень полезные функции, которые позволяют перенаправлять ввод и вывод команд из и в файлы, а также отправлять вывод команды в другую, называемые перенаправлением и канализацией соответственно.
Для понимания этих двух важных концепций мы должны сначала понять три самых важных типа потоков ввода-вывода (или последовательности символов), которые на самом деле являются специальными файлами, в *nix смысле этого слова.
- Стандартный ввод (или stdin) по умолчанию подключен к клавиатуре. Другими словами, клавиатура является стандартным устройством ввода для ввода команд в командную строку.
- Стандартный вывод (или stdout) по умолчанию подключен к экрану, устройству, которое “принимает” вывод команд и отображает его на экране.
- Стандартная ошибка (или stderr), это то место, куда по умолчанию отправляются сообщения о состоянии команды, что также является экраном.
В следующем примере вывод ls /var
отправляется в stdout (экран), а также результат ls /tecmint. Но в последнем случае показывается stderr.

Для более легкой идентификации этих специальных файлов каждому из них назначается файловый дескриптор, абстрактное представление, которое используется для доступа к ним. Существенно понимать, что эти файлы, как и другие, могут быть перенаправлены. Это означает, что вы можете захватывать вывод из файла или сценария и отправлять его как ввод в другой файл, команду или сценарий. Это позволит вам сохранить на диске, например, вывод команд для последующей обработки или анализа.
Для перенаправления stdin (fd 0), stdout (fd 1) или stderr (fd 2) доступны следующие операторы.
Redirection Operator | Effect |
> | Redirects standard output to a file containing standard output. If the destination file exists, it will be overwritten. |
>> | Appends standard output to a file. |
2> | Redirects standard error to a file containing standard output. If the destination file exists, it will be overwritten. |
2>> | Appends standard error to the existing file. |
&> | Redirects both standard output and standard error to a file; if the specified file exists, it will be overwritten. |
< | Uses the specified file as standard input. |
<> | The specified file is used for both standard input and standard output. |
В отличие от перенаправления, конвейеризация выполняется путем добавления вертикальной черты (|)
после команды и перед другой.
Помните:
- Перенаправление используется для отправки вывода команды в файл или отправки файла в качестве ввода для команды.
- Конвейеризация используется для отправки вывода команды в другую команду в качестве ввода.
Примеры перенаправления и конвейеризации
Пример 1: Перенаправление вывода команды в файл
Бывают моменты, когда вам нужно будет перебирать список файлов. Для этого вы можете сначала сохранить этот список в файл, а затем читать этот файл построчно. Хотя правда, что вы можете сразу перебирать вывод ls, этот пример служит для иллюстрации перенаправления.
# ls -1 /var/mail > mail.txt

Пример 2: Перенаправление как stdout, так и stderr в /dev/null
Если мы хотим предотвратить вывод как stdout, так и stderr на экран, мы можем перенаправить оба файловых дескриптора в /dev/null
. Обратите внимание, как меняется вывод, когда перенаправление реализуется для одной и той же команды.
# ls /var /tecmint # ls /var/ /tecmint &> /dev/null

Пример 3: Использование файла в качестве ввода для команды
В то время как классический синтаксис команды cat выглядит следующим образом.
# cat [file(s)]
Вы также можете отправить файл в качестве ввода, используя правильный оператор перенаправления.
# cat < mail.txt

Пример 4: Отправка вывода одной команды на вход другой
Если у вас большой каталог или список процессов и вы хотите иметь возможность легко найти определенный файл или процесс, вы захотите передать список на вход команде grep.
Обратите внимание, что мы используем два конвейера в следующем примере. Первый из них ищет необходимое ключевое слово, в то время как второй исключит фактическую команду grep
из результатов. В этом примере перечисляются все процессы, связанные с пользователем apache.
# ps -ef | grep apache | grep -v grep

Source:
https://www.tecmint.com/file-and-directory-management-in-linux/