Робота з файлами в Linux, Для системного адміністратора

Робота з файлами в Linux

Операційні системи сімейства UNIX надають користувачеві широкий спектр команд для роботи з файлами та каталогами. Їх сильною стороною є можливість використання їх у простій формі щодо групи файлів та каталогів, які відповідають певним вимогам. Наприклад, видалити групу файлів, що відповідають певним критеріям, або змінити їм усім імена за певним шаблоном.

1. ls

Це команда, що дуже часто використовується. Вона перенаправляє вміст каталогу стандартний потік виведення. Якщо виконати цю команду, не вказуючи цільовий каталог, виведеться вміст поточного каталогу.

/Documents/polishlinux.org$ pwd /home/adam/Documents/polishlinux.org/ adam@laptop:

/Documents/polishlinux.org$ls example.txt all_about_console.txt adam@laptop:

/Documents/polishlinux.org$ls /var/ backups cache crash games lib local lock log mail opt run spool tmp

Якщо після командиls поставити ключ-l, то виведеться докладніша інформація про вміст каталогу.

/Documents/polishlinux.org/examples$ ls -l total 0 -rw-r–r– 1 adam adam 0 2007-05-30 11:31 example.txt -rw-r– r– 1 adam adam 0 2007-05-30 11:31 all_about_console.txt

У першому рядку показується загальна кількість блоків на диску, що займається файлами каталогу. Інші рядки описують фали в наступному форматі (по стовпцям):

  • -rw-r–r– – рівні доступу до файлів та каталогів
  • кількість жорстких посилань на файл
  • користувач та група власників файлу
  • розмір файла
  • час останньої зміни файлу
  • ім'я файлу або каталогу

Команда ls з ключем-a виводить також і приховані файли. Імена прихованих файлів починаються з точки.

/Documents/polishlinux.org/examples$ ls -a . .. .hidden_file example.txt all_about_console.txt

Крім того, доступна можливість сортування файлів командою ls з такими ключами:

  • strong>-t – за часом (за спаданням)
  • -S – за розміром (за спаданням)
  • -r - зворотний порядок (-tr)

Якщо запустити з ключем-R, то виведеться весь вміст каталогу та його підкаталогів (рекурсивний обхід):

/Documents/polishlinux.org/examples$ ls -R .: directory1 directory2 example.txt all_about_console.txt ./directory1: file1 file2 ./directory2: file3 file4

2. cd

За допомогою командиcd (change directory) ми можемо переміщатися деревом каталогів. Для цієї команди необхідний один параметр – це цільовий каталог (щодо поточного або щодо кореня).

$cd /usr/bin adam@laptop:/usr/bin$pwd /usr/bin

Якщо замість шляху поставити символ тильда (

), то вас перекинуть у домашню папку.

Якщо ввести ключ у вигляді

ім'я_користувача, то нас перекинуть у домашній каталог цього користувача. adam@laptop:

zoidberg adam@laptop:/home/zoidberg$pwd /home/zoidberg

$cd .. adam@laptop:/home$pwd /home

Як говорилося вище, можна використовувати як відносний шлях, і абсолютний. Абсолютний завжди починається з кореня і далі за ієрархією каталогів (/home/adam), а відносний – це щодо поточного каталогу, що починається з його імені.

3. mkdir, rmdir

Обидві команди оперують каталогами, перша створює їх (make ), друга відповідно видаляє (remove ). Обом передаєтьсяодин параметр – це шлях до каталогу. rmdir можна застосовувати лише до порожніх каталогів.

/Documents/polishlinux.org/examples$ mkdir directory adam@laptop:

/Documents/polishlinux.org/examples$ ls directory example.txt all_about_console.txt

/Documents/polishlinux.org/examples$ rmdir directory/ adam@laptop:

/Documents/polishlinux.org/examples$ ls example.txt all_about_console.txt

4. cp, mv, rm

З цими командами можуть використовуватися такі ключі:

  • -f – форсує (force) завдання зайвих питань, наприклад якщо файл тільки для читання, у вас не запитають, чи ви впевнені, що хочете його видалити
  • -i – робота в інтерактивному режимі, система запитуватиме дозвіл на кожну дію
  • -b – для командcp таmv створює резервну копію файлу

Для командcp таrm існує рекурсивний режим - ключ-r.

/Documents/polishlinux.org/examples$ ls directory1 directory2 directory3 example.txt all_about_console.txt

/Documents/polishlinux.org/examples$ cp -R directory2/ directory3/ adam@laptop:

/Documents/polishlinux.org/examples$ ls directory3/ directory2

/Documents/polishlinux.org/examples$ rm -r directory3/ adam@laptop:

/Documents/polishlinux.org/examples$ ls directory1 directory2 example.txt all_about_console.txt

Пам'ятайте, що rm -r видаляє всі, навіть не порожні каталоги.5. ln

Командаln створює посилання на файл або каталог, яка має теж параметри як і оригінальний файл. Поділяють два види посилань, символічні та жорсткі.

Символічні посилання створюються за допомогою-s.

/Documents/polishlinux.org/examples$ catфайл Symlink example. adam@laptop:

/Documents/polishlinux.org/examples$ ln -s file symlink_file adam@laptop:

/Documents/polishlinux.org/examples$ ls -l lrwxrwxrwx 1 adam adam 4 2007-06-01 19:11 symlink_file -> file -rw-r-r-1 adam adam 22 2007-06-01 19:10 file adam@laptop:

/Documents/polishlinux.org/examples$ rm file adam@laptop:

/Documents/polishlinux.org/examples$ ls ymlink_file

Переглянути всі жорсткі посилання на файл можна за допомогою командиln з ключем-l.

/Documents/polishlinux.org/examples$ ln file hardlink_file adam@laptop:

/Documents/polishlinux.org/examples$ ls -l -rw-r–r– 2 adam adam 22 2007-06-01 19:11 hardlink_file -rw-r–r– 2 adam adam 22 2007 -06-01 19:11 файл adam@laptop:

/Documents/polishlinux.org/examples$ rm file adam@laptop:

/Documents/polishlinux.org/examples$ ls -l -rw-r–r– 1 adam adam 22 2007-06-01 19:11 hardlink_file

6. touch

Ця проста команда має два застосування. Перше, якщо параметр ми передамо ім'я файлу, програма простол змінить його час модифікації на поточне. Якщо такого файлу немає, то він його створить – це друге.

/Documents/polishlinux.org/examples$ ls -l example.txt -rw-r–r– 1 adam adam 0 2007-05-30 11:31 example.txt adam@laptop:

/Documents/polishlinux.org/examples$ touch example.txt adam@laptop:

/Documents/polishlinux.org/examples$ ls -l total 0 -rw-r–r– 1 adam adam 0 2007-06-07 13:27 example.txt -rw-r– r– 1 adam adam 0 2007-05-30 11:31 all_about_console.txt

/Documents/polishlinux.org/examples$ touch new.txt adam@laptop:

/Documents/polishlinux.org/examples$ ls -l total 0 -rw-r–r– 1 adam adam 0 2007-06-07 13:28new.txt -rw-r-r-1 adam adam 0 2007-06-07 13:27 example.txt -rw-r-r-1 adam adam 0 2007-05-30 11:31 all_about_console.txt

Якщо в якості ключа вказати-c або–no-create, то у разі відсутності файлу вона його не створить. А параметри-d і-t змінюють час створення на певний відповідно до шаблону: [[CC]YY]MMDDhhmm[.ss].

/Documents/polishlinux.org/examples$ ls -l total 0 -rw-r–r– 1 adam adam 0 2007-06-07 13:28 new.txt -rw-r– r– 1 adam adam 0 2007-06-07 13:27 example.txt -rw-r–r– 1 adam adam 0 2007-05-30 11:31 all_about_console.txt adam@laptop:

/Documents/polishlinux.org/examples$ touch -t 200706101200 new.txt adam@laptop:

/Documents/polishlinux.org/examples$ touch -d “last monday” example.txt adam@laptop:

/Documents/polishlinux.org/examples$ touch -d “2 дні тому 12:00″ all_about_console.txt adam@laptop:

/Documents/polishlinux.org/examples$ ls -l total 0 -rw-r–r– 1 adam adam 0 2007-06-10 12:00 new.txt -rw-r– r– 1 adam adam 0 2007-06-04 00:00 example.txt -rw-r–r– 1 adam adam 0 2007-06-05 12:00 all_about_console.txt7. df, du

Наступні дві команди шелла цеdf таdu. Перша виводить інформацію про вільний простір на дисках (Display Free disk space). Друга виводить інформацію про місце на диску файлом. З ключом-h інформація видасться над блоках, а мегабайтах.

/Documents/polishlinux.org/examples$ df -h Filesystem Size За допомогою Avail Capacity Використовується на /dev/sda5 40G 34G 4,0G 90% / varrun 502M 136K 502M 1% /var/run varlock 502M 0 502M 0% /var/lock procbususb 502M 148K 502M 1% /proc/bus/usb udev 502M 148K 502M 1% /dev devshm 502M 0 /shm

/Documents/polishlinux.org/examples$ du -h error.txt 4.0K error.txt

8. echo

Проста команда повертає текст переданий параметром.

$echo Hello World! Hello World! adam@laptop:

Команда автоматично додає в кінці рядка символ переходу на новий, щоб цього уникнути використовуйте ключ-n.

$echo -n Hello World! Hello World!adam@laptop:

pwd (print working directory) видає повний шлях до поточного каталогу.

$pwd /home/adam adam@laptop:

10. cat

Ця команда може використовуватись для створення файлів. Строго кажучи, ця програма перенаправляє потік введення файл і відображає потік введення на стандартному потоці виведення.

$cat > file.txt Very interesting text.

$cat file.txt Very interesting text.

Якщо використовувати ключ-n, рядки будуть пронумовані.

$cat -n file.txt 1 Very interesting text.

Також цю команду можна використовувати для об'єднання файлів, наприклад:

cat file1 file2 file3 file4 file5 > file.iso

11. wc, head, tail

Є три команди, що використовуються для обробки рядків. Команда wc виводить кількість рядків, слів та байтів у файлі: adam@laptop:

/Documents/polishlinux.org$ wc all_about_console.txt 94 908 6828 all_about_console.txt

Перша цифра – це рядки, далі слова та останнє – це байти.

Дві команди, що залишилися, виводять відповідно голову і хвіст файлу. За замовчуванням виводяться 10 рядків, але використовуючи ключ-n, і вказавши після нього цифру, можна регулювати кількість рядків, що виводяться.

/Documents/polishlinux.org$ head -n 1 example.txt Вперше рядок тексту. adam@laptop:

/Documents/polishlinux.org$ tail -n2 example.txt Востаннє тільки один ряд з текстом. The last row of the text.

12. less

Ця команда дозволяє скролити текст прямо на екрані.