Базові команди в Linux для початківців

 42162

Для користувачів зі світу Windows взаємодія з командним рядком в Linux спочатку може здатися дещо складною та заплутаною. Однак використовувати Linux не так вже й складно. У цій статті ми розглянемо найпоширеніші команди в Linux.

Навігація файловою системою

При навігації файловою системою в Linux можна використовувати як абсолютний, так і відносний шляхи до об’єкту.

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

Команда pwd

Команда pwd (від англ. present working directory”) дозволяє дізнатися, в якому каталозі ми зараз знаходимося:

$ pwd

Результатом буде шлях до поточного робочого каталогу:

/home/acode

Команда cd

Команда cd (від англ. change directory”) використовується для зміни поточного робочого каталогу. При використанні без будь-яких параметрів, команда cd перенесе нас у домашній каталог:

$ cd

Щоб перейти до іншого каталогу, використовуйте абсолютний або відносний шлях. Наприклад, перейти до теки Downloads, яка знаходиться в поточному каталозі, можна як через відносний шлях:

$ cd Downloads

Так і через абсолютний шлях:

$ cd /home/acode/Downloads

Дві крапки .. позначають батьківський каталог або каталог рівнем вище за поточний. Припустимо, що зараз ми знаходимося у каталозі /usr/local/bin. Щоб перейти в каталог /usr/local (на рівень вище від поточного каталогу), необхідно ввести:

$ cd ../

Щоб піднятися на два рівні вгору:

$ cd ../../

Щоб повернутися до попереднього робочого каталогу, використовуйте символ тире як опцію:

$ cd -

Якщо каталог, який ми хочемо змінити, має пробіли у своєму імені, то шлях потрібно взяти у лапки, або використовувати символ бекслешу \:

$ cd ім'я\ каталогу\ з\ пробілами

Робота з файлами та каталогами

Команда ls

Команда ls (від англ. list”) виводить інформацію про файли та каталоги всередині заданого каталогу. При використанні без параметрів дана команда покаже в алфавітному порядку список імен усіх файлів у поточному робочому каталозі:

$ ls

Щоб вивести вміст конкретного каталогу, достатньо вказати шлях до цього каталогу як параметр:

$ ls /usr

За замовчуванням, команда ls показує тільки імена файлів та каталогів. Для більш детального результату використовується опція -l:

$ ls -l /etc/hosts

Вихідні дані міститимуть інформацію про тип файлу, дозволи, кількість посилань на нього, власника, групу, розмір, дату та ім’я файлу:

-rw-r--r-- 1 root root 337 Oct  4 11:31 /etc/hosts

За замовчуванням, команда ls не показує приховані файли (файли, імена яких починаються з крапки .). Щоб показувати всі файли, включно з прихованими, використовуйте опцію -a:

$ ls -a ~/

Для виводу списку всіх файлів у підкаталогах використовуйте опцію -R:

$ ls -R /usr

Команда file

Файли в Linux не завжди мають розширення, тому користувачеві іноді важко визначити, що за файл знаходиться перед ним. Команда file допомагає вирішити цю проблему, показуючи інформацію про тип файлу на основі його вмісту:

$ file /etc/fstab

Результат:

/etc/fstab: ASCII text

Команда file може працювати й з каталогами, наприклад:

$ file /tmp/

Результат:

/tmp/: sticky, directory

Команда touch

Команда touch використовується для створення нових порожніх файлів, а також для оновлення часових міток вже наявних файлів та каталогів.

Щоб створити новий файл, використовуйте команду touch з іменем (створюваного) файлу як параметру:

$ touch file.txt

Якщо файл вже існує, команда touch змінить відмітку часу останнього доступу (або змін) до нього.

Команда mkdir

Команда mkdir (від англ. make directory”) дозволяє створювати нові каталоги. Для цього вкажіть ім’я каталогу як параметр:

$ mkdir /tmp/newdir

Як параметри команда mkdir може приймати один або декілька імен каталогів. Якщо параметром є ім’я каталогу без повного шляху, то новий каталог створиться в поточному робочому каталозі.

Для створення батьківських каталогів використовується опція -p:

$ mkdir -p Projects/acode.com.ua/src/assets/images

Ця команда створить повну структуру каталогів.

При використанні команди mkdir з опцією -p, каталог створюється лише у тому випадку, якщо його на момент створення немає.

Команда rmdir

Команда rmdir (від англ. remove directory”) використовується для видалення (тільки) порожніх каталогів:

$ rmdir /tmp/mydir

Команда ln

Команда ln (від англ. link”) використовується для створення символьних посилань. Символьне посилання — це особливий тип файлу, який вказує на інший файл або каталог. Щоб створити символьне посилання, використовуйте команду ln -s, вказуючи ім’я файлу як перший параметр та ім’я символьного посилання як другий параметр:

$ ln -s ім'я_файлу ім'я_посилання

Якщо вказано лише файл, команда ln створить у поточному робочому каталозі посилання на цей файл з тим же ім’ям, що має файл.

Команда rm

Команда rm (від англ. remove”) використовується для видалення файлів та каталогів. Якщо параметри не вказувати, то команда видаляє лише файли. Варто зазначити, що команда не запитує у користувача підтвердження на видалення файлів.

Щоб видалити файл або символьне посилання, використовуйте команду rm та ім’я файлу як параметр:

$ rm file.txt

Також як параметри допускається вказувати одне або кілька імен файлів або каталогів.

Опція -i вказує команді rm запитувати у користувача підтвердження перед видаленням файлу:

$ rm -i file.txt

Результат:

rm: видалити порожній звичайний файл 'file.txt'?

Опція -d використовується для видалення одного або кількох пустих каталогів:

$ rm -d mydir

Щоб рекурсивно видалити непусті каталоги та всі файли в них, використовуйте опцію -r (від англ. recursive”):

$ rm -rf mydir

Опція -f вказує команді rm ніколи не вимагати підтвердження у користувача та ігнорувати неіснуючі файли.

Примітка: Будьте обережні з командою rm -rf і двічі перевірте, у якому каталозі ви знаходитеся, оскільки виклик rm -rf безповоротно (і без підтвердження) видалить все, що знаходиться в каталозі.

Команда cp

Команда cp (від англ. copy”) копіює файли та каталоги. Щоб скопіювати файл у поточний робочий каталог, використовуйте вихідний файл як перший параметр, а новий файл як другий параметр:

$ cp file file_backup

Щоб скопіювати файл до іншого каталогу, вкажіть абсолютний або відносний шлях до цільового каталогу. Якщо як місце призначення вказано лише ім’я каталогу, то скопійований файл матиме те саме ім’я, що й вихідний файл.

$ cp file.txt /backup

За замовчуванням, якщо файл за вказаним шляхом існує, він перезапишеться.

Щоб скопіювати каталог, разом з файлами та підкаталогами всередині, використовуйте опцію -R або -r:

$ cp -R Pictures /opt/backup

Команда mv

Команда mv (від англ. move”) використовується для переміщення файлів і каталогів з одного місця в інше, а також для перейменування файлів. Наприклад, щоб перемістити файл file.txt в каталог /tmp, використовується:

$ mv file.txt /tmp

Щоб перейменувати файл, необхідно вказати ім’я цільового файлу, а потім його нове ім’я:

$ mv file.txt file1.txt

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

$ mv file.tx1 file1.txt /tmp

Команда tar

Команда tar об’єднує декілька файлів в один *.tar-архів (поширений формат файлів в Linux, схожий на формат .zip), причому процедура стиснення для нього не є обов’язковою.

Припустимо, що нам потрібно створити .tar-архів каталогу /etc, для цього необхідно використати наступну команду:

$ tar -cvf myarchive.tar /etc

Опція -c вказує команді tar на те, що ми створюємо .tar-файл, опція -v показує список файлів, що обробляються, а опція -f використовується, щоб вказати ім’я архівного файлу.

Якщо ви бажаєте додати файл до вже наявного .tar-архіву, то замість опції -c використовуйте опція -r. Наприклад, додамо до нашого архіву myarchive.tar файл /etc/fstab:

$ tar -rvf myarchive.tar /etc/fstab

Примітка: До вже стисненого .tar-файлу додати новий файл або каталог не вийде.

Вилучення в поточну теку файлів та каталогів із архівного файлу виконується за допомогою опції -x:

$ tar -xvf myarchive.tar

Опція -C дає користувачеві можливість самостійно вказувати шлях для вилучених файлів:

$ tar -xvf myarchive.tar -C /tmp/

Команди zip та unzip

Команда zip застосовується для стиснення файлів у .zip-архів, а команда unzip — для вилучення заархівованих файлів з .zip-архіву.

Щоб створити архів з декількох файлів, просто вкажіть ім’я створюваного архіву та список необхідних файлів:

$ zip newarchive.zip file1 file2 file3

Якщо ви хочете стиснути каталог разом із вкладеними в нього файлами, використовуйте опцію -r:

$ zip –r newarchive.zip /home/diego/mydocs/

Також, цифрами від 0 (без стиснення, швидко) до 9 (максимальне стиснення, повільно) ви можете вказати рівень стиснення майбутнього архіву. За замовчуванням використовується 6-й рівень стиснення:

$ zip -9 –r newarchive.zip /home/diego/mytxtfiles/

Для вилучення вмісту архіву в поточний каталог використовується команда unzip:

$ unzip myarchive.zip

Опція -d дозволяє розпакувати вміст архіву в зазначену теку, наприклад:

$ unzip myarchive.zip –d /tmp/

Команда find

Команда find шукає файли та каталоги у заданому каталозі. Наприклад, наступна команда шукатиме файл з ім’ям notes.txt в каталозі /home та його підкаталогах:

$ find /home/ -name notes.txt

Команда df

Команда df (від англ. disk free”) використовується для отримання звіту про використання дискового простору системи, що відображається у відсотках та кілобайтах. Якщо ви бажаєте переглянути звіт у мегабайтах, використовуйте:

$ df -m

Команда du

Команда du (від англ. disk usage”) використовується для перевірки того, скільки місця займає вказаний файл чи каталог. Щоб побачити дисковий простір у байтах, кілобайтах або мегабайтах, додайте опцію -h:

$ du -h 

Володіння файлами та права доступу

Команда chmod

Команда chmod (від англ. change mode”) дозволяє змінити права доступу до файлів. Вона працює у двох режимах: символьний та числовий.

При використанні числового режиму ви можете встановити дозволи для власника, групи та інших за допомогою заданого набору чисел. Дозволи на запис, читання та виконання мають такі числові позначення:

   r (читання) = 4

   w (запис) = 2

   x (виконання) = 1

   немає дозволів = 0

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

$ chmod 644 ім'я_файлу

Тільки користувач root, власник файлу або користувач з правами sudo можуть змінювати права доступу до файлу.

Для рекурсивної зміни прав усіх файлів та тек у заданому каталозі використовуйте команду chmod з опцією -R:

$ chmod -R 755 ім'я_каталогу

Команда chown

Команда chown (від англ. change owner”) дозволяє змінити власника та групу заданого файлу, каталогу або символьного посилання.

Щоб змінити власника файлу, достатньо виконати:

$ chown ім'я_користувача ім'я_файлу

Щоб змінити як власника, так і групу файлу, вкажіть:

$ chown ім'я_користувача:ім'я_групи ім'я_файлу

Використовуйте опцію -R, щоб рекурсивно обробити всі файли та каталоги у заданому каталозі:

$ chown -R ім'я_користувача:ім'я_групи ім'я_каталогу

Команда sudo

Команда sudo (від англ. Substitute User and do = “підмінити користувача та виконати”) дозволяє запускати програми від імені іншого користувача (за замовчуванням, використовується користувач root). Використання команди sudo, замість входу в систему під обліком користувача root, безпечніше, оскільки ви можете надати обмежені адміністративні привілеї окремим користувачам, не знаючи пароля користувача root.

Щоб використовувати sudo, просто додайте префікс sudo перед командою:

$ sudo команда

Керування користувачами та групами

Команда uname

Команда uname з опцією -a покаже детальну інформацію про систему: ім’я, версія операційної системи, версія ядра тощо.

$ uname -a

Результат:

Linux debian 5.10.0-6-amd64 #1 SMP Debian 5.10.28-1 (2021-04-09) x86_64 GNU/Linux

Команди useradd та passwd

Команда useradd дозволяє створювати нових користувачів. Щоб створити новий обліковий запис користувача, викличте команду useradd разом з ім’ям нового користувача:

$ useradd newuser

Після створення користувача встановіть пароль, виконавши команду passwd:

$ passwd newuser

Команда userdel

Команда userdel використовується для видалення облікового запису користувача:

$ userdel ім'я_користувача

Опція -r видаляє домашній каталог користувача та пов’язані з ним дані:

$ userdel -r ім'я_користувача

Команди groupadd та groupdel

Команда groupadd використовується для створення нової групи. Просто вкажіть назву групи як параметр:

$ groupadd mygroup

Щоб видалити групу, використовуйте команду groupdel з ім’ям групи як параметр:

$ groupdel mygroup

Команда usermod

Щоб додати існуючого користувача до групи, використовуйте команду usermod з опцією -G та іменем групи:

$ usermod -a -G sudo acodegroup

Керування процесами

Команда top

Команда top друкує в режимі реального часу список запущених процесів, їх числові ідентифікатори (скор. “PID” від англ. Process IDentificator”) та як сильно кожен із них навантажує CPU:

$ top

Команда kill

Якщо у вас є програма, що зависла, то ви можете вручну завершити її роботу, надіславши за допомогою команди kill відповідний сигнал (PID).

Усього існує 64 різних сигнали, але найпопулярнішими є два:

   SIGTERM (15) — сигнал завершення роботи програми, при якому їй дається деякий час, щоб зберегти свій прогрес та дані.

   SIGKILL (9) — сигнал, що вимагає від програми негайного завершення. Усі незбережені дані при цьому будуть втрачені.

Наприклад, знаючи PID потрібного вам процесу, надіслати йому сигнал можна наступним чином:

$ kill -9 3501

Тут параметр -9 відповідає за сигнал SIGKILL (9), а 3501 — це ідентифікатор (PID) потрібного процесу.

Робота з мережею

Команда ping

Команда ping використовується у випадках, коли необхідно перевірити стан підключення до сервера. Наприклад:

$ ping acode.com.ua

Ця команда перевірить, чи зможете ви під’єднатися до сайту aCode, а також виміряє та виведе час виконання під’єднання.

Команда wget

Команда wget дозволяє завантажувати з Інтернету будь-які файли (або сторінки сайтів). Вона підтримує протоколи HTTP, HTTPS, FTP, а також роботу через проксі-сервери. Для завантаження потрібного файлу просто передайте його адресу як параметр команді wget:

$ wget https://acode.com.ua/wallpapers/image.jpg

Команда hostname

Команда hostname використовується для перевірки імені хоста. Додавання опції -I в її кінець покаже його IP-адресу.

$ hostname –I

Робота з текстом

Команда head

Команда head використовується для перегляду перших рядків текстового файлу. За замовчуванням вона показуватиме перші десять рядків, але за допомогою опції -n ви можете змінити це число. Наприклад, щоб вивести лише перші п’ять рядків, введіть:

$ head -n 5 filename.txt

Команда tail

Команда tail показує останні десять рядків текстового файлу:

$ tail -n 10 filename.txt

Команда diff

Команда diff (від англ. difference”) порівнює вміст двох файлів по рядкам. Після аналізу файлів, виводиться список рядків, що не збігаються. Програмісти часто використовують цю команду, коли їм потрібно внести певні зміни у вихідний код програми:

$ diff file1.txt file2.txt

Команда grep

Команда grep (від англ. “search globally for lines matching the regular expression, and print them”) дозволяє шукати вказаний текст у вказаному файлі, наприклад:

$ grep blue notepad.txt

Тут ми шукаємо слово blue у файлі notepad.txt, команда виведе всі рядки, в яких знайде це слово.

Команда echo

Команда echo використовується для виводу об’єктів на екран, а також для переміщення деяких даних у файл. Наприклад, якщо ви хочете додати рядок “Hello, world!” в файл з іменем name.txt, введіть:

$ echo "Hello, world!" >> name.txt

Команда cat

Команда cat (від англ. “concatenate”) склеює файли, а також дозволяє вивести на екран вміст одного або кількох файлів. Щоб вивести на екран вміст файлу, необхідно вказати його ім’я як параметр команди cat:

$ cat /etc/hosts

Інсталяція та видалення пакетів

Менеджер пакетів — це інструмент, який дозволяє встановлювати, оновлювати, видаляти та керувати пакетами програмного забезпечення, специфічними для дистрибутиву Linux. Різні дистрибутиви Linux мають різні менеджери та формати пакетів.

Тільки root або користувач з привілеями sudo може інсталювати та видаляти пакети.

apt (Ubuntu та Debian)

apt (від англ. Advanced Package Tool”) — це система керування пакетами, що використовується дистрибутивами на базі Debian. У дистрибутивах на базі Debian існує кілька інструментів керування пакетами за допомогою командного рядка, причому найчастіше використовуються apt та apt-get.

Перед інсталяцією нового пакета необхідно спочатку оновити інформацію про пакети:

$ apt update

Індекс apt — це база даних, що містить записи доступних пакетів у репозиторіях, підключених у вашій системі.

Щоб оновити встановлені пакети до останніх версій, виконайте:

$ apt upgrade

Інсталяція пакетів дуже проста:

$ apt install ім'я_пакету

Щоб видалити встановлений пакет, введіть:

$ apt remove ім'я_пакету

dnf (CentOS та Fedora)

rpm (скор. від англ. Red Hat Package Manager”) — це потужна система управління пакетами, яка використовується в дистрибутивах від Red Hat та їх похідних: CentOS та Fedora. З rpm також пов’язані команда rpm та .rpm-формат пакетів.

Щоб встановити новий пакет у дистрибутивах Red Hat, використовуйте команду yum або dnf:

$ dnf install ім'я_пакету

Починаючи з CentOS 8, dnf замінив yum як менеджер пакетів за замовчуванням, при цьому dnf зворотно сумісний з yum.

Щоб оновити встановлені пакети до останніх версій, введіть:

$ dnf update

Видалення пакетів теж просте:

$ dnf remove ім'я_пакету

Довідка

Параметр help

Більшість команд мають параметр --help, за допомогою якого виводиться коротке повідомлення про те, як використовувати вказану команду:

$ ім'я_команди --help

Іноді ця команда використовується у скороченому вигляді -h.

Команда man

Майже всі команди в Linux розповсюджуються разом з man-сторінками (від англ. manual”) — документація, яка пояснює, що робить команда, приклади її використання та які параметри та опції вона підтримує.

Команда man використовується для виводу детальної інформації про команду:

$ man ім'я_команди

Наприклад, щоб подивитися довідку щодо команди cd, введіть:

$ man cd

Для навігації по довідці, використовуються клавіші зі стрілками вгору та вниз. Також ви можете натиснути:

   клавішу Enter для переміщення на один рядок за раз;

   клавішу  (Пробіл) для переходу до наступного екрана;

   клавішу b для повернення на один екран назад;

   клавішу q для виходу із довідки.

Команда history

Якщо ви використовуєте Linux протягом тривалого періоду часу, ви швидко помітите, що можете виконувати десятки (якщо не сотні) команд щодня. Команда history дозволяє переглянути раніше введені команди:

$ history

Команда whereis

Команда whereis показує повний шлях до виконуваного файлу програми (або вихідних файлів, якщо вони є в системі). Наприклад:

$ whereis gcc

Результат:

gcc: /usr/bin/gcc /usr/lib/gcc /usr/share/gcc

Додатково

Команда clear використовується для очищення термінала, якщо він захаращений занадто великою кількістю даних від попередніх команд.

Натиснення на клавішу TAB приведе до автоматичного доповнення того, що ви зараз набираєте в терміналі. Наприклад, якщо вам потрібно перейти до теки Documents, то почніть вводити команду cd Docu, а потім натисніть клавішу TAB і термінал автоматично доповнить команду до cd Documents.

Гарячі клавіші:

   Ctrl+C — зупиняє та завершує команду;

   Ctrl+Z — ставить виконання команди на паузу;

   Ctrl+S — тимчасово припиняє виведення інформації до термінала;

   Ctrl+Q — продовжує виведення інформації до термінала;

   Ctrl+A — переміщує на початок рядка;

   Ctrl+E — переміщує у кінець рядка.

Ви можете запускати кілька команд в одному рядку, відокремлюючи їх за допомогою символу ;, наприклад:

$ команда1; команда2; команда3

Якщо замість ; використовувати &&, то наступна команда виконається лише після успішного виконання попередньої.

Оцінити статтю:

1 Зірка2 Зірки3 Зірки4 Зірки5 Зірок (17 оцінок, середня: 4,94 з 5)
Завантаження...

Залишити відповідь

Ваш E-mail не буде опублікований. Обов'язкові поля відмічені *