Основні команди для роботи з файлами
Команди для роботи з файловою системою
Перегляд файлової системи - ls
$ls $ls-a $ls/bin $ls-l/ $ls-l/dev $ls-l.. $ls-a.
Визначення поточного каталогу - pwd
pwd (print working directory) показує поточний робочий каталог.
Зміна поточного каталогу - cd
cd (change directory) змінює поточний робочий каталог. Якщо команда cd викликана без параметрів, відбувається перехід до домашнього каталогу користувача. Команда cd дозволяє повернутися до попереднього каталогу (каталог, звідки було здійснено перехід до поточного).
$ cd /usr $ cd bin $ cd .. $ cd $ cd
Створення файлу за допомогою команди touch
Команда touch змінює тимчасові мітки файлу і має побічну дію, яка використовується набагато частіше, ніж основна – якщо файлу із вказаним ім'ям немає, створюється порожній файл.
Створення каталогу - mkdir
Команда mkdir (make directory) створює каталоги, у тому числі проміжні (якщо вказана опція -p).
$ mkdir /tmp/test $ mkdir
Видалення файлу - rm
Команда rm видаляє файли та каталоги, в т.ч. каталоги із вмістом (опція r або R). Опція f пригнічує виведення запитів (наприклад, при видаленні файлів, доступних тільки для читання) та помилок при видаленні, а опція i виводить запит при видаленні кожного файлу.
$ touch /tmp/test $ rm -r /tmp/test # rm -fr /*
Видалення каталогу - rmdir
Команда rmdir видаляє лише порожні каталоги. За допомогою опції p видаляються і батьківські каталоги цільового каталогу, якщо вони порожні.
$ rmdir /tmp/test $ rmdir -p /tmp/a/b/c
Копіювання файлів та каталогів - cp
Команда cp дозволяє копіювати файли та каталоги (опція r або R). При її використанні частозастосовуються шаблони Шелла. У загальному випадку команда cp вимагає не менше двох параметрів: що копіювати та куди копіювати. Команда cp має велику кількість опцій, детально про які можна дізнатися на сторінці man.
$ touch file1 $ mkdir dir1 $ cp file1 file2 $ cp file1 incorrectdirname $ cp file1 dir1/ $ cp -r dir1/ dir2/
Переміщення та перейменування файлів та каталогів - mv
$ mv file2 file3 $ mv dir2 dir3 $ mv file3 incorrectdirname $ mv file3 dir1/
Створення лінків/посилань на файли та каталоги - ln
Команда ln дозволяє створювати символьні (з опцією s) та жорсткі (без опції s) посилання.
$ln -s /etc/rc.conf file4
Команди для роботи з вмістом файлів
Визначення типу файлу - file
Команда file є інтерфейс до системи magic, який доступний користувачеві у вигляді звичайної команди.
$file /usr/sbin/adduser $file /bin/sh $file /usr/share/man/man1/cat.1.gz
Перегляд файлів — more/less
$ more /etc/defaults/rc.conf $less /etc/defaults/rc.conf
Робота з архівами
UNIX має багатий арсенал засобів резервного копіювання та відновлення даних: програми dump/restore, cpio, tar та ін. Для роботи архівами найбільш широко використовується програма tar. Незважаючи на те, що в різних системах UNIX використовуються різні реалізації цієї програми, архіви, що виходять в результаті, є кросплатформовими, тобто можуть бути оброблені в різних ОС (в т.ч. і Windows). Нижче наведено приклади роботи з програмою tar:
$tar-c-v-f ім'яфайлаархіву.tar каталог або файл.
Переглянути вміст архіву:
$ tar -t -f ім'яфайлаархіву.tar
Розкрити архів повністю:
$ tar -x -v -fім'яфайлаархіву.tar
Розкрити окремі файли:
$ tar -xf ім'яфайлаархіву. *fstab*'
-z використовувати gzip стиск -j використовувати bzip2 стиск
Команди оцінки використання дискового простору
Статистика використання розділів — df
Для отримання статистики використання розділів дисків (змонтованих файлових систем) використовується команда df. Найбільш корисні опції тут - h (human-readable, виводить числові дані у вигляді, зручному для сприйняття користувачем) і t (виводить інформацію тільки про файлові системи зазначеного типу, не зважаючи на інші - наприклад, віртуальні файлові системи).
Приклад запуску програми:
$ df -h -t ufs Filesystem Size За допомогою Avail Capacity Використовується на /dev/ad0s1a 434M 143M 256M 36% / /dev/ad0s1e 403M 12K 371M 0% /tmp / ad0s1f 6.4G 427M 5.5G 7% /usr /dev/ad0s1d 771M 304K 709M 0% /var
Розмір каталогу - du
Програма du (disk usage) дозволяє одержати статистику використання дискового простору за розділами цілком, а конкретних зазначених каталогів. Опція h тут аналогічна до цієї опції програми df, а опції s (summary) і d число (depth) дозволяють вказати необхідний ступінь подробиці (глибину) інформації, що виводиться. Опція s еквівалента опції d 0 (нульова глибина занурення), причому ці опції не можна вказувати разом.
$ du -s -h /usr/share/ $ du -d 1 /usr/share/
Команди пошуку файлів
Розташування програм - which і whereis
Для пошуку програм (виконуваних файлів) в UNIX використовується команда, яка шукає зазначені файли в каталогах,перерахованих у змінній оточенні PATH. Команда whereis аналогічна по дії, але шукає також серед man сторінок і каталогах з вихідними текстами програм.
$ whereis ls ls: /bin/ls /usr/share/man/man1/ls.1.gz
Пошук файлів за індексованою базою - locate
Пошук файлів на ім'я за допомогою заздалегідь створеної індексної бази даних використовується програма locate. Для створення індексної бази використовується програма /usr/libexec/locate.updatedb
Повний пошук файлів - find
Програма find має великі можливості для вказівки атрибутів шуканих об'єктів і дозволяє здійснювати пошук з різними параметрами. Докладнішу інформацію можна отримати на сторінці довідки.
Приклади використання find:
Пошук на ім'я та шаблон імені
$ find /usr/share -name index.html $ find /usr/share -name '*.html'
Пошук файлів, які модифікувалися за останні 2 дні та виведення повної інформації про них
$ find /var/log -ctime -2 -type f -ls
Пошук файлів новіших ніж деякий
$ touch -t 200901051230 /tmp/xtime $ find /etc/ -newer /tmp/xtime -type f
Приклад виконання команд над знайденими файлами
# find /usr/ports/ -name '*.tbz' -exec mv <> /usr/ports/packages/All/ \;