Термінал Linux – це потужний інструмент, який дозволяє користувачам взаємодіяти з операційною системою за допомогою текстових команд. Хоча графічний інтерфейс (GUI) зручний для багатьох задач, термінал пропонує неперевершену гнучкість, ефективність та контроль над вашим Linux-оточенням. Ця стаття призначена для тих, хто тільки починає знайомство з терміналом, а також для досвідчених користувачів, які прагнуть вдосконалити свої навички.
У цьому посібнику ми розглянемо основні команди, корисні поради та прийоми, які допоможуть вам комфортно почуватися в терміналі Linux та використовувати його для вирішення широкого спектру завдань.
Основи роботи з терміналом
Перш ніж зануритися в конкретні команди, важливо розуміти основи роботи з терміналом. Ось декілька ключових концепцій:
- Запуск терміналу: Термінал можна запустити з меню додатків вашого дистрибутиву Linux. Зазвичай він має назву Terminal, Konsole, xterm або щось подібне.
- Командний рядок: Після запуску терміналу ви побачите командний рядок. Зазвичай він містить ваше імя користувача, назву хоста та поточний каталог.
- Введення команд: Вводити команди потрібно після знаку $ або # (для суперкористувача root). Після введення команди натисніть Enter, щоб її виконати.
- Чутливість до регістру: Команди Linux чутливі до регістру. Це означає, що
lsтаLs– це різні команди. - Автозавершення: Використовуйте клавішу Tab для автоматичного завершення команд, імен файлів та каталогів. Це значно економить час та зменшує кількість помилок.
- Історія команд: Використовуйте клавіші зі стрілками вгору та вниз для перегляду історії команд, які ви вводили раніше.
Найважливіші команди Linux
Ось список основних команд Linux, які повинен знати кожен користувач:
pwd(print working directory): Показує поточний каталог, в якому ви знаходитесь.cd(change directory): Змінює поточний каталог. Наприклад,cd /home/user/documentsперейде до каталогу documents.cd ..перейде на один рівень вгору.cdбез аргументів поверне вас до домашнього каталогу.ls(list): Показує список файлів та каталогів у поточному каталозі. nls -l: Виводить детальний список, включаючи права доступу, власника, розмір файлу та дату модифікації.ls -a: Показує всі файли, включаючи приховані (ті, що починаються з крапки).ls -t: Сортує файли за часом модифікації (від найновіших до найстаріших).ls -R: Рекурсивно виводить вміст всіх підкаталогів.ls -lh: Виводить розмір файлів у зручному для читання форматі (наприклад, KB, MB, GB).
mkdir(make directory): Створює новий каталог. Наприклад,mkdir new_directoryстворить каталог з назвою new_directory.rmdir(remove directory): Видаляє пустий каталог. Наприклад,rmdir empty_directoryвидалить каталог з назвою empty_directory.touch: Створює пустий файл. Наприклад,touch new_file.txtстворить файл з назвою new_file.txt. Також може використовуватися для оновлення часу останньої зміни файлу.rm(remove): Видаляє файли та каталоги. Увага: Видалені файли зазвичай неможливо відновити.nrm file.txt: Видаляє файл file.txt.rm -r directory: Видаляє каталог directory разом з усім його вмістом.rm -rf directory: Видаляє каталог directory разом з усім його вмістом без підтвердження (використовуйте з обережністю!).
cp(copy): Копіює файли та каталоги.ncp file.txt new_file.txt: Копіює файл file.txt у new_file.txt.cp -r directory new_directory: Копіює каталог directory у new_directory.
mv(move): Переміщує або перейменовує файли та каталоги.nmv file.txt new_location/file.txt: Переміщує файл file.txt до каталогу new_location.mv file.txt new_name.txt: Перейменовує файл file.txt у new_name.txt.
cat(concatenate): Виводить вміст файлу на екран. Наприклад,cat file.txtвиведе вміст файлу file.txt.lessтаmore: Виводять вміст файлу на екран постранично.lessє більш потужним інструментом, дозволяє переміщатися по файлу вгору та вниз, а також здійснювати пошук.head: Виводить перші декілька рядків файлу (за замовчуванням 10).head -n 20 file.txtвиведе перші 20 рядків файлу file.txt.tail: Виводить останні декілька рядків файлу (за замовчуванням 10). Часто використовується для перегляду лог-файлів в режимі реального часу.tail -f file.logбуде показувати останні рядки файлу file.log та оновлювати їх при кожному додаванні нового рядка.grep(global regular expression print): Шукає в файлах рядки, які відповідають заданому шаблону. Наприклад,grep error file.logзнайде всі рядки в файлі file.log, які містять слово error.ngrep -i error file.log: Шукає error без урахування регістру.grep -v error file.log: Виводить рядки, які не містять слово error.grep -n error file.log: Виводить номери рядків, в яких знайдено error.
find: Шукає файли та каталоги за різними критеріями (імя, розмір, дата зміни, тощо). Наприклад,find . -name file.txtзнайде всі файли з назвою file.txt в поточному каталозі та всіх його підкаталогах.nfind / -name important.doc: Шукає файл important.doc по всій файловій системі.find /home/user -size +10M: Шукає файли в домашньому каталозі користувача, розмір яких перевищує 10MB.find . -type d: Шукає тільки каталоги в поточному каталозі.find . -mtime -7: Шукає файли, які були змінені протягом останніх 7 днів.
man(manual): Виводить довідкову інформацію про команду. Наприклад,man lsпокаже довідку про командуls.sudo(superuser do): Дозволяє виконувати команди з правами суперкористувача (root). Використовуйте з обережністю, оскільки неправильне використанняsudoможе призвести до пошкодження системи.ps(process status): Показує список запущених процесів.nps aux: Показує детальний список всіх процесів, запущених всіма користувачами.
kill: Завершує процес. Спочатку потрібно знайти ID процесу (PID) за допомогою командиps, а потім використатиkill PID. Наприклад,kill 1234завершить процес з ID 1234.top: Показує динамічний список запущених процесів та інформацію про використання ресурсів системи (CPU, RAM, тощо).df(disk free): Показує інформацію про використання дискового простору.du(disk usage): Показує інформацію про використання дискового простору для окремих файлів та каталогів.du -hвиводить розміри у зручному для читання форматі.chmod(change mode): Змінює права доступу до файлів та каталогів.chown(change owner): Змінює власника файлу або каталогу.ssh(secure shell): Підключається до віддаленого сервера через захищене зєднання.wget: Завантажує файли з інтернету.curl: Передає дані з або на сервер, використовуючи один з підтримуваних протоколів (HTTP, HTTPS, FTP, тощо). Часто використовується для тестування API та завантаження файлів.
Корисні поради та прийоми
Ось декілька корисних порад та прийомів, які допоможуть вам ефективніше працювати з терміналом Linux:
- Використання символів підстановки (wildcards):
*(зірочка): Відповідає будь-якій кількості символів. Наприклад,ls *.txtпокаже всі файли з розширенням .txt.?(знак питання): Відповідає одному будь-якому символу. Наприклад,ls file?.txtпокаже файли file1.txt, file2.txt, але не file12.txt.[](квадратні дужки): Відповідають одному символу з заданого діапазону. Наприклад,ls file[1-5].txtпокаже файли file1.txt, file2.txt, …, file5.txt.
- Перенаправлення введення/виведення:
>(більше): Перенаправляє вивід команди в файл. Якщо файл існує, він буде перезаписаний. Наприклад,ls > file.txtзапише список файлів у файл file.txt.>>(два більше): Перенаправляє вивід команди в файл, додаючи його до кінця існуючого файлу.<(менше): Перенаправляє ввід команди з файлу.|(вертикальна риска): Передає вивід однієї команди на вхід іншої команди (pipe). Наприклад,ls -l | grep txtпокаже всі файли з розширенням .txt у детальному вигляді.
- Аліаси (aliases): Створюють короткі псевдоніми для довгих та часто використовуваних команд. Щоб створити аліас, використовуйте команду
alias. Наприклад,alias la=ls -laстворить аліас la для команди ls -la. Щоб зробити аліас постійним, додайте його до файлу~/.bashrcабо~/.zshrc(залежно від вашої оболонки). - Скрипти: Зберігайте послідовність команд у файлі та виконуйте їх як один скрипт. Скрипти роблять автоматизацію задач набагато простішою.n
- Створіть текстовий файл з розширенням
.sh(наприклад,my_script.sh). - Додайте Shebang (
#!/bin/bash) у верхній частині файлу, щоб вказати, який інтерпретатор використовувати. - Зробіть файл виконуваним:
chmod +x my_script.sh. - Запустіть скрипт:
./my_script.sh.
- Створіть текстовий файл з розширенням
- Використання `sudo !!`: Повторює останню команду, додаючи
sudoна початку. Це корисно, коли ви забули використатиsudoпри виконанні команди, яка потребує прав суперкористувача. - Використання Ctrl+R (зворотній пошук): Дозволяє шукати команди в історії, вводячи частину команди.
- Використання Ctrl+C: Перериває поточну команду.
- Використання Ctrl+Z: Зупиняє поточну команду та відправляє її у фоновий режим. Щоб повернути команду у фоновий режим, використовуйте команду
bg. Щоб повернути команду у foreground, використовуйте командуfg. - Використання `!!`: Повторює останню команду.
- Використання `$_`: Містить останній аргумент попередньої команди.
Ресурси для подальшого вивчення
Ось декілька ресурсів, які допоможуть вам поглибити свої знання про термінал Linux:
- Онлайн-курси: Coursera, Udemy, edX пропонують багато курсів з Linux та командного рядка.
- Книги: The Linux Command Line by William Shotts, Linux Bible by Christopher Negus.
- Документація: Сторінки man для кожної команди, офіційний сайт Linux Documentation Project.
- Форуми та спільноти: Stack Overflow, Reddit (r/linux, r/commandline).
Робота з терміналом Linux – це важлива навичка для будь-якого користувача, який хоче отримати максимальний контроль над своєю системою. Практикуйтеся, експериментуйте та не бійтеся помилятися. Чим більше ви будете використовувати термінал, тим краще ви його зрозумієте та зможете використовувати його для вирішення найрізноманітніших задач.
Успіхів у вашому навчанні!
