У цій статті RHCSA, частина 2: Управління файлами та каталогами, ми розглянемо деякі важливі навички, які необхідні для повсякденних завдань системного адміністратора.
Керування файлами та каталогами є важливою компетенцією, якою повинен володіти кожен системний адміністратор. Це включає можливість створення / видалення текстових файлів з нуля (ядро конфігурації кожної програми) та каталоги (де ви впорядковуватимете файли та інші каталоги), а також з’ясувати тип існуючих файли.
натисніть команду можна використовувати не тільки для створення порожніх файлів, а й для оновлення часу доступу та модифікації існуючих файлів.
Ви можете використовувати файл [ім’я файлу]
для визначення типу файлу (це стане в нагоді перед запуском потрібного текстового редактора для його редагування).
та rm [ім’я файлу]
видалити його.
Що стосується каталогів, ви можете створювати каталоги всередині існуючих шляхів за допомогою mkdir [каталог]
або створити повний шлях за допомогою mkdir -p [/full/path/to/directory]
.
Що стосується видалення каталогів, перед видачею каталогів потрібно переконатися, що вони порожні rmdir [каталог]
команду або використовуйте більш потужний (звертайтесь обережно!) rm -rf [каталог]
. Цей останній варіант змусить рекурсивно видалити файл [каталог]
і весь його вміст - тому використовуйте його на свій страх і ризик.
Середовище командного рядка надає дві дуже корисні функції, які дозволяють перенаправляти введення та вихід команд із файлів та до файлів, а також для надсилання результатів команди до іншої, що називається відповідно перенаправленням та конвеєризацією.
Щоб зрозуміти ці дві важливі концепції, ми повинні спочатку зрозуміти три найважливіші типи вводу -виводу (Вхідні та вихідні) потоки (або послідовності) символів, які насправді є спеціальними файлами, у значенні *nix слово.
У наведеному нижче прикладі вихід з ls /var
надсилається до stdout (екран), а також результат ls /tecmint. Але в останньому випадку це так stderr що показано.
Щоб легше ідентифікувати ці спеціальні файли, кожному з них призначається дескриптор файлу, абстрактне представлення, яке використовується для доступу до них. Важливо розуміти, що ці файли, як і інші, можна переспрямовувати. Це означає, що ви можете захопити вихідні дані з файлу або сценарію та надіслати їх як вхід до іншого файлу, команди чи сценарію. Це дозволить вам, наприклад, зберігати на диску вихідні дані команд для подальшої обробки або аналізу.
Для перенаправлення stdin (fd 0), stdout (fd 1) або stderr (fd 2) доступні такі оператори.
Оператор перенаправлення | Ефект |
> | Перенаправляє стандартний вивід у файл, що містить стандартний вивід. Якщо цільовий файл існує, його буде перезаписано. |
>> | Додає стандартний вивід до файлу. |
2> | Перенаправляє стандартну помилку у файл, що містить стандартний вивід. Якщо цільовий файл існує, його буде перезаписано. |
2>> | Додає стандартну помилку до наявного файлу. |
&> | Перенаправляє стандартний вивід і стандартну помилку до файлу; якщо зазначений файл існує, він буде перезаписаний. |
< | Використовує вказаний файл як стандартний ввід. |
<> | Вказаний файл використовується як для стандартного введення, так і для стандартного виводу. |
На відміну від перенаправлення, конвеєр виконується шляхом додавання вертикальної смуги (|)
після команди і перед іншою.
Пам’ятайте:
Будуть випадки, коли вам доведеться перебирати список файлів. Для цього спочатку можна зберегти цей список у файл, а потім прочитати цей файл рядок за рядком. Хоча це правда, що ви можете перебирати вихідні дані ls безпосередньо, цей приклад служить для ілюстрації перенаправлення.
# ls -1 /var /mail> mail.txt.
Якщо ми хочемо запобігти відображенню як stdout, так і stderr на екрані, ми можемо перенаправити обидва дескриптора файлів на /dev/null
. Зверніть увагу на те, як змінюється результат, коли перенаправлення реалізовано для тієї ж команди.
# ls /var /tecmint. # ls /var / /tecmint &> /dev /null.
Хоча класичний синтаксис команда кота виглядає наступним чином.
# кішка [файл (и)]
Ви також можете надіслати файл як вхід, використовуючи правильний оператор переспрямування.
# catПриклад 4: Надсилання результатів команди як вхідних даних іншій
Якщо у вас є великий каталог або список процесів і ви хочете мати можливість швидко знайти певний файл чи процес, вам захочеться конвеєлізувати список для grep.
Зауважте, що ми використовуємо конвеєри в наступному прикладі. Перший шукає необхідне ключове слово, а другий усуває фактичне
команда grep
від результатів. У цьому прикладі перераховані всі процеси, пов'язані з користувачем apache.# ps -ef | grep apache | grep -v grep.Сторінки: 12