Linux – потужна та гнучка операційна система, яка широко використовується в розробці, системному адмініструванні, а також на серверах та вбудованих пристроях. Хоча спочатку робота з командним рядком може здатися складною, освоєння базових команд Linux є надзвичайно корисним навиком, який відкриває безліч можливостей для ефективної взаємодії з системою. Ця стаття призначена для початківців і познайомить вас з найважливішими командами, які допоможуть вам комфортно почувати себе в терміналі Linux.
Перш ніж ми перейдемо до конкретних команд, важливо розуміти, що в Linux все є файлом. Це означає, що директорії (папки), пристрої, процеси – все представляється як файли. Це фундаментальне поняття лежить в основі роботи більшості команд.
Також, важливо памятати про чутливість до регістру. `file.txt` та `File.txt` – це два різні файли в Linux.
Отже, почнемо з базових команд:
Навігація та перегляд файлів:
pwd
: Print Working Directory – показує поточний робочий каталог. Це перша команда, яку варто виконати, щоб зорієнтуватися в терміналі.cd
: Change Directory – змінює поточний каталог. ncd /path/to/directory
– перехід до вказаного каталогу.cd ..
– перехід на один рівень вгору.cd ~
– перехід до домашнього каталогу користувача.cd -
– повернення до попереднього каталогу.
ls
: List – виводить список файлів та директорій в поточному каталозі.nls -l
: виводить детальний список, включаючи права доступу, власника, розмір та дату модифікації.ls -a
: показує всі файли, включаючи приховані (ті, що починаються з крапки).ls -t
: сортує файли за часом останньої модифікації (від нових до старих).ls -R
: рекурсивно виводить список файлів у всіх підкаталогах.ls -h
: показує розміри файлів у зручному для читання форматі (наприклад, KB, MB, GB).ls -l -h
(абоls -lh
): обєднує формати `-l` та `-h`.
cat
: Concatenate – виводить вміст файлу на екран. Корисна для перегляду невеликих текстових файлів.more
: дозволяє переглядати вміст файлу посторінково.less
: більш потужна версія `more`, дозволяє прокручувати сторінки вгору та вниз, шукати текст. Натисніть `q`, щоб вийти з `less`.head
: виводить перші декілька рядків файлу (за замовчуванням 10).head -n [кількість рядків] [назва файлу]
дозволяє вказати потрібну кількість рядків.tail
: виводить останні декілька рядків файлу (за замовчуванням 10).tail -n [кількість рядків] [назва файлу]
дозволяє вказати потрібну кількість рядків.tail -f [назва файлу]
– дуже корисна опція для відстеження змін у файлі в реальному часі (наприклад, лог-файли).
Управління файлами та директоріями:
mkdir
: Make Directory – створює нову директорію.mkdir [назва директорії]
. Можна створити декілька директорій одночасно:mkdir dir1 dir2 dir3
. Опція-p
дозволяє створити всю необхідну структуру каталогів, якщо деякі з батьківських каталогів не існують:mkdir -p path/to/new/directory
.rmdir
: Remove Directory – видаляє порожню директорію.rmdir [назва директорії]
.rm
: Remove – видаляє файли. nrm [назва файлу]
– видаляє вказаний файл.rm -r [назва директорії]
– видаляє директорію рекурсивно (разом з її вмістом). Будьте обережні! Ця команда видаляє файли назавжди.rm -f [назва файлу]
– примусове видалення файлу (ігнорує попередження). Використовуйте з великою обережністю.rm -rf [назва директорії]
– примусове рекурсивне видалення директорії. Крайньо небезпечна команда, особливо якщо використовувати її з кореневим каталогом (`/`).
cp
: Copy – копіює файли та директорії. ncp [вихідний файл] [цільовий файл]
– копіює файл.cp -r [вихідна директорія] [цільова директорія]
– копіює директорію рекурсивно.
mv
: Move – переміщує або перейменовує файли та директорії.nmv [вихідний файл] [цільовий файл]
– перейменовує файл.mv [вихідний файл] [цільова директорія]
– переміщує файл до директорії.
touch
: створює порожній файл або змінює час останньої модифікації існуючого файлу.touch [назва файлу]
.
Робота з текстом:
echo
: виводить текст на екран.echo Привіт, світ!
. Часто використовується для перенаправлення виводу в файл:echo Текст для файлу > file.txt
.grep
: Global Regular Expression Print – шукає вказаний текст у файлах.ngrep [текст для пошуку] [назва файлу]
– шукає текст у файлі.grep -i [текст для пошуку] [назва файлу]
– ігнорує регістр при пошуку.grep -r [текст для пошуку] [назва директорії]
– рекурсивно шукає текст у всіх файлах в директорії.grep -v [текст для пошуку] [назва файлу]
– виводить рядки, які *не* містять вказаний текст.grep -c [текст для пошуку] [назва файлу]
– виводить кількість рядків, які містять вказаний текст.
wc
: Word Count – рахує кількість рядків, слів та символів у файлі. nwc -l [назва файлу]
– рахує кількість рядків.wc -w [назва файлу]
– рахує кількість слів.wc -c [назва файлу]
– рахує кількість байтів (символів).
sed
: Stream Editor – потужний інструмент для редагування тексту в файлах. Він заслуговує на окрему статтю, але ось простий приклад заміни тексту:sed s/старий текст/новий текст/g [назва файлу]
. Опція `g` означає глобальну заміну (замінити всі входження).awk
: ще один потужний інструмент для обробки тексту, особливо корисний для обробки табличних даних.
Системна інформація та управління процесами:
uname
: виводить інформацію про систему.nuname -a
: виводить всю доступну інформацію.uname -r
: виводить версію ядра.uname -m
: виводить архітектуру процесора.
ps
: Process Status – показує список запущених процесів.nps aux
: виводить детальний список всіх процесів, включаючи користувача, який запустив процес, використання CPU та памяті.ps -ef
: ще один варіант виводу списку процесів.
top
: показує динамічний список процесів, відсортованих за використанням CPU. Натисніть `q`, щоб вийти з `top`.kill
: зупиняє процес. Потрібно вказати PID (Process ID) процесу, який можна знайти за допомогою `ps` або `top`.kill [PID процесу]
. Якщо процес не зупиняється, можна використовувати сигнал 9 (SIGKILL):kill -9 [PID процесу]
. Використовуйте цю опцію лише в крайньому випадку, оскільки вона може призвести до втрати даних.df
: Disk Free – показує інформацію про використання дискового простору.df -h
показує інформацію в зручному для читання форматі.du
: Disk Usage – показує інформацію про використання дискового простору для вказаного файлу або директорії.du -sh [назва директорії]
показує загальний розмір директорії в зручному для читання форматі.free
: показує інформацію про використання оперативної памяті.free -m
показує інформацію в мегабайтах.uptime
: показує, як довго система працює без перезавантаження, а також середнє навантаження на систему за останні 1, 5 та 15 хвилин.
Права доступу:
chmod
: Change Mode – змінює права доступу до файлів та директорій. Права доступу визначають, хто може читати, писати та виконувати файл. Права доступу можуть бути представлені в числовому (наприклад, 755) або символьному (наприклад, rwxr-xr-x) форматі.n- Числовий формат: кожній категорії користувачів (власник, група, інші) призначається число від 0 до 7, де:n
- 4 – право на читання (r)
- 2 – право на запис (w)
- 1 – право на виконання (x)
Сума цих значень визначає права доступу для кожної категорії. Наприклад, 7 (4+2+1) означає, що користувач має права на читання, запис та виконання. 6 (4+2) означає, що користувач має права на читання та запис.
- Символьний формат: використовує літери r, w, x для позначення прав доступу, а `-` – для відсутності права. Наприклад, `rwxr-xr–` означає, що власник має права на читання, запис та виконання, група має права на читання та виконання, а інші мають тільки право на читання.
Приклади:n
chmod 755 [назва файлу]
– надає власнику права на читання, запис та виконання, групі та іншим – права на читання та виконання.chmod +x [назва файлу]
– додає право на виконання для всіх користувачів.chmod u+w [назва файлу]
– додає право на запис для власника.chmod g-w [назва файлу]
– забирає право на запис у групи.
- Числовий формат: кожній категорії користувачів (власник, група, інші) призначається число від 0 до 7, де:n
chown
: Change Owner – змінює власника файлу або директорії.chown [новий власник] [назва файлу]
. Для зміни власника потрібні права суперкористувача (root).chgrp
: Change Group – змінює групу файлу або директорії.chgrp [нова група] [назва файлу]
. Для зміни групи потрібні права суперкористувача (root).
Мережа:
ping
: перевіряє зєднання з вказаним хостом.ping [адреса хоста]
(наприклад,ping google.com
). Натисніть Ctrl+C, щоб зупинити ping.ifconfig
: (абоip addr
на сучасних системах) показує інформацію про мережеві інтерфейси.etstat
: показує інформацію про мережеві зєднання, таблицю маршрутизації та іншу мережеву статистику.ssh
: Secure Shell – дозволяє безпечно підключитися до віддаленого сервера.ssh [імя користувача]@[адреса сервера]
.
Корисні комбінації та прийоми:
- Перенаправлення виводу:
>
: перенаправляє вивід команди у файл, перезаписуючи його, якщо він існує.ls -l > file.txt
.>>
: перенаправляє вивід команди у файл, додаючи його до кінця файлу, якщо він існує.echo Додатковий текст >> file.txt
.- Конвеєр (pipe):
|
: передає вивід однієї команди на вхід іншої команди.ls -l | grep txt
– виводить список файлів, які містять txt у назві.- Аргументи командного рядка:
*
: символ підстановки, який відповідає будь-якій послідовності символів.ls *.txt
– виводить список всіх файлів з розширенням .txt.?
: символ підстановки, який відповідає одному будь-якому символу.ls file?.txt
– виводить список файлів, назва яких починається з file, потім іде один будь-який символ, і закінчується на .txt.- Історія команд:
- Стрілки вгору та вниз: перехід по історії команд.
history
: виводить список попередніх команд.!n
: виконує команду з номером n з історії.- Ctrl+R: пошук по історії команд.
- Автодоповнення:
- Натисніть Tab, щоб автоматично доповнити назву файлу або команди.
Отримання допомоги:
man
: Manual – відкриває довідку по вказаній команді.man ls
– відкриває довідку по команді `ls`. Натисніть `q`, щоб вийти з `man`.[команда] --help
: виводить коротку довідку по команді.ls --help
.
Це лише початок вашого шляху в світ Linux. З практикою та експериментами ви навчитеся ефективно використовувати ці та інші команди для вирішення різноманітних завдань. Не бійтеся помилятися та пробувати нове! Памятайте, що термінал Linux – це потужний інструмент, який дає вам повний контроль над вашою системою.
Для подальшого вивчення рекомендується ознайомитися з регулярними виразами, скриптами Bash, а також з інструментами для автоматизації завдань, такими як cron. Удачі вам у вашому навчанні!