Огляд популярних команд Linux, опис роботи з консоллю і терміналом.

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

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

У будь-якому випадку, користувачам Linux варто освоїти роботу в консолі, ці навички їм обов’язково знадобляться надалі. У цій статті ми розглянемо роботу з консоллю і терміналом, а також основні часто вживані команди Linux, не претендуючи на повноту, оскільки повне їх опис з прикладами може зайняти не один том.

Щоб отримати доступ до консолі, перебуваючи в графічному режимі, потрібно натиснути комбінацію клавіш Ctrl+Alt+F1. Далі потрібно ввести логін і пароль, при завантаженні системи. Можна відкрити кілька консолей, за допомогою комбінацій клавіш Ctrl+Alt+F2, Ctrl+Alt+F3 і т. д. (до F6) і запускати в них різні програми одночасно. Для повернення у графічне оточення потрібно натиснути Alt+F7, при цьому консолі залишаються відкритими і програми, запущені в них, будуть продовжують працювати.

Для роботи з командним рядком безпосередньо в графічному режимі існують спеціальні програми — емулятори терміналів. Є безліч подібних програм: gnome-terminal — стандартний термінал в GNOME, konsole — стандартний термінал в KDE, xterm, tilda і т. д. Для відкриття стандартного терміналу в Ubuntu Linux потрібно натиснути комбінацію клавіш Ctrl+Alt+T, або клікнути на іконку терміналу на панелі. В інших системах можливо доведеться запускати програму термінала через меню, для зручності можна встановити іконку запуску терміналу на панель або робочий стіл. Щоб отримати віддалений доступ до комп’ютера через термінал, можна скористатися програмами telnet або ssh, які будуть розглянуті нижче. А в Windows програмою PuTTY, яку можна скачати тут: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

Рис. 1. Эмулятор терминала Konsole.

Рис. 1. Емулятор терміналу Konsole

Команди в Linux складаються з кількох частин: власне самої команди, ключів (опцій) і параметрів, які можуть бути обов’язковими і необов’язковими. Наприклад, в команді ls -la /var/www (далі команди будемо виділяти жирним шрифтом): ls — це команда, la — це ключі, які найчастіше відокремлюються знаком мінус «-», а параметром в даному випадку є каталог /var/www. Ключі бувають короткі і довгі: короткі складаються з однієї літери й відокремлюються одним мінусом «-», довгі ключі відокремлюються двома мінусами «–». Короткі ключі можна об’єднувати в один, наприклад команди ls -l -a -t -r, ls -latr ідентичні. Найбільш популярні довгі ключі: –help і –version. Набравши ключ –help після будь-якої команди (наприклад ls –help), ми отримаємо коротку довідку про неї. Ключ –version служить для виведення версії програми.

Зверніть увагу, що команди, ключі, імена файлів в Linux залежать від регістру. Тобто, LS і ls — це різні команди, якщо замість ls набрати LS, то ефект буде несподіваним. Довгі команди зручно набирати, використовуючи клавішу «Tab», яка служить для автодоповнення, достатньо набрати перші букви з назви команди та натиснути цю клавішу. Якщо є кілька команд, які починаються з введених символів, то вони відображаються на екрані, в цьому випадку потрібно набрати ще один або кілька символів і знову натиснути «Tab». Аналогічно клавіша «Tab» може бути використана для швидкого набору параметрів, довгих імен файлів і т. д. C допомогою курсорних клавіш можна переглядати і редагувати вже введені команди.

Також можна використовувати такі комбінації клавіш:

Ctrl+C — перервати роботу програми (зверніть увагу, що в графічному оточенні ця ж комбінація клавіш використовуються для копіювання).

Ctrl+Shift+C — копіювати виділену інформацію в буфер, для виділення можна використовувати мишу.

Ctrl+Shift+V — вставити з буфера. Для вставки тексту також зручно використовувати середню кнопку миші (коліщатко), попередньо виділивши текст.

Ctrl+S — призупинити вивід на термінал.

Ctrl+Q — відновити вивід на термінал. Хоча зазвичай для цього можна використовувати будь-яку клавішу. Іноді допомагає якщо термінал «завис».

Ctrl+Z — зупинити роботу програми. Для продовження ви повинні набрати команду fg (або bg для продовження роботи програми у фоновому режимі).

Ctrl+D — вихід з терміналу, закриття консолі, розрив з’єднання з віддаленим комп’ютером.

Тепер перейдемо безпосередньо до розгляду команд Linux.

Інформаційні команди

man команда виводить докладну інформацію про команду Linux, ключі і т. д. Наприклад: man date.

На жаль не всі керівництва переведені на російську, можливо будуть потрібні початкові знання англійської.

date — виводить поточну дату і час.

uname -a — виводить інформацію про систему.

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

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

free — висновок інформації про оперативної пам’яті.

top — виводить інформацію про процеси, про завантаження процесора, про розподіл пам’яті.

df -h — виводить інформацію про жорстких дисках.

uptime — відображає час роботи системи, кількість користувачів, завантаження процесора.

pwd — показує поточний каталог.

time — вимірює час роботи програми, наприклад time ls.

echo виводить рядок тексту на стандартний пристрій виводу. echo Привіт — виведе слово «Привіт», echo * – відобразить список файлів поточної директорії. echo $[2+3] — виведе суму чисел 2 і 3.

Команди для роботи з файлами

ls — виводить список файлів в поточному каталозі. Щоб переглянути список файлів у будь-якому каталозі, потрібно набрати шлях до каталогу після команди, наприклад: ls /usr/bin. Деякі ключі команди ls:

-a — показати приховані файли;

-s — вказати розмір файлів в блоках;

-t — сортування по часу модифікації файлів, спочатку нові файли;

-X — сортування по розширенню назви файлів, файли без розширення виводяться спочатку;

-l — розширений формат виводу: показує атрибути, власників і групу файлів, розмір, дату і час їх створення;

-r — змінити порядок сортування на зворотний. Наприклад, команда

ls -lat /etc виведе вміст каталогу /etc в розширеному вигляді і з сортуванням по часу створення файлів.

cp — копіювання файлів. cp doc1 doc2 — створить копію файлу doc1 під ім’ям doc2.

rm — видалення файлів. rm doc — вилучіть файл doc. rm * – видалить всі файли у поточному каталозі. rm *doc — видалить всі файли, що закінчуються на doc. Ключ -i використовується для підтвердження видалення кожного файлу, ключ -r для видалення каталогів і файлів всередині цих каталогів.

rmdir — видалення директорії. rmdir alex — видалить каталог alex.

Потрібно бути дуже обережним з командами rm і rmdir, особливо в режимі суперкористувача, оскільки можна видалити не тільки свої, але і системні файли, що може призвести до краху системи.

pwd — виведення поточної директорії.

mkdir — створення нової директорії. mkdir alex — створить каталог alex.

mv — переміщення або перейменування файлів. mv new old — перейменує файл в new old.

cat — з’єднання файлів або виведення файлів на стандартний пристрій виводу. cat doc — виведе файл doc.

cat /proc/cpuinfo — видасть докладну інформацію про процесор, cat /proc/version — про версії ядра Linux.

touch — створення порожнього файлу.

touch doc — створить файл doc. find — пошук файлів. find / -name “doc*” – знайде всі файли, які починаються з doc.

ln — створення посилання на файл. ln file1 file2 — створить жорстку посилання. Ключ -s використовується для створення символічного посилання.

tar — програма для роботи з архівами. tar -zxvf file.tar.gz — розпакує архів file.tar.gz. tar -cvf my.tar myfile — заархивирует файл myfile, створивши архів my.tar.

more — виведення файлів з зупинкою для перегляду, на відміну від cat, який виводить весь файл відразу. Можна прокручувати текст по рядках, з допомогою клавіші вводу або посторінково за допомогою пробілу.

less — програма для перегляду файлів аналогічна more, але дозволяє прокручувати текст вгору і управляти за допомогою курсорних клавіш.

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

vi — досить потужний текстовий редактор, але він має свою нестандартну систему команд, тому вимагає час на освоєння.

mc (Midnight Commander) — потужний файловий менеджер, аналог Norton Commander для DOS або FAR для Windows. Дозволяє видаляти, копіювати, перейменовувати, переглядати, редагувати файли, змінювати їх атрибути і т. д. Midnight Commander звичайно не входить у стандартний набір системних програм, тому його потрібно встановлювати окремо. Але він настійно рекомендується до використання, оскільки сильно спрощує роботу з файлами.

Рис. 2. Midnight Commander в gnome-terminal

Рис. 2. Midnight Commander gnome-terminal

Установка і видалення програм

Для установки і видалення програм використовуються різні утиліти, в залежності від версії дистрибутива Linux. У заснованих на Debian дистрибутивах (Ubuntu, Linux Mint і т. д.) для цієї мети використовуються команди apt-get або aptitude. Перший варіант спрощений, другий має більшу функціональність. Деякі дії, наприклад, установку і видалення, потрібно виконувати від root, або використовувати команду sudo.

sudo apt-get update — отримання нового списку пакетів.

sudo apt-get upgrade — оновлення програми, перед цим потрібно оновити список пакетів, виконавши попередню команду. Обидві команди бажано виконувати періодично (часто це робиться автоматично), а також перед установкою нових програм.

sudo apt-get install mc — установка програми mc.

sudo apt-get remove mc — видалення програми mc. В дистрибутивах, заснованих на Red Hat, де використовуються RPM-пакети, часто використовують менеджер yum.

yum update — оновлення системи.

yum install mc — установка програми mc.

yum remove mc — видалення програми mc. Є й інші пакетні менеджери і варіанти установки програмного забезпечення.

Мережні команди та робота з віддаленими комп’ютерами

ping — перевірка зв’язку з певною адресою в мережі. ping google.com — перевірка доступності сайту google.com також можна використовувати IP-адреса: ping 192.168.1.5. Якщо відповіді немає, то це не означає на 100%, що немає зв’язку, іноді роботу цієї команди блокують в мережі.

traceroute — показує маршрут проходження трафіку. Наприклад: traceroute google.com. Дозволяє визначити, на якій ділянці мережі виникають проблеми.

telnet — віддаленого підключення до комп’ютера. Дає можливість виконувати команди на іншому комп’ютері. В основному використовується у внутрішній мережі, оскільки трафік не шифрується. Приклад: telnet 192.168.1.1.

ssh — підключення до віддаленого комп’ютера по шифрованому каналу. ssh [email protected] — підключення до сервера site.com користувача alex. Для підключення через нестандартний порт використовується ключ -p, наприклад

ssh -p 12345 [email protected] — підключення до сервера 111.222.123.123 користувача root через порт 12345.

ftp — підключення до віддаленого комп’ютеру за протоколом передачі файлів. ftp site.com — підключення до сервера site.com.

sftp — команда аналогічна до ftp, але з’єднання відбувається по шифрованому протоколу.

route -n — показує таблицю маршрутизації.

ifconfig — інформація про мережеві з’єднання і їх налаштування.

hostname — відображає або змінює мережеве ім’я комп’ютера.

whois сайт або IP-адресу — виводить інформацію про домен, власника доменного імені або IP-адреси, наприклад whois google.com whois 8.8.8.8.

dig — виводить інформацію про DNS, наприклад dig google.com. Можна звернутися до будь-якого DNS-сервера, вказавши його наступним чином: dig @8.8.8.8 google.com. Для отримання інформації з DNS-сервера можна також скористатися програмами host і nslookup, вказавши після них доменне ім’я або IP-адресу, але ці утиліти мають спрощену функціональність, порівняно з dig.

wget — програма для завантаження файлів, сторінок, сайтів з інтернету. wget http://site.com — завантажити головну сторінку site.com. wget -r -l 10 -k http://site.com — завантажить сайт повністю.

lynx, links, links2 (3 окремі команди) — текстові браузери, що дозволяють переглядати сайти прямо з консолі.

Команди адміністрування

su — зміна користувача. su alex — змінить користувача alex. Набравши su без параметрів, що ви отримаєте права суперкористувача (root), при цьому символ підказки $ зміниться на #.

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

Для виходу з сесії і повернення до попереднього користувачеві потрібно набрати команду exit.

sudo — дозволяє запускати інші програми з правами адміністратора, набирається перед іншою командою, наприклад

sudo rm file — вилучіть файл, створений будь-яким користувачем.

sudo -i або sudo -s — аналоги команди su.

Використовувати команду sudo потрібно також дуже уважно і тільки в разі необхідності.

пароль — зміна пароля користувача. passwd alex — зміна пароля користувача alex.

adduser або useradd — додати нового користувача. adduser katya — додасть користувача katya. Після набору команди потрібно ввести пароль. Для виконання команди потрібно бути суперкористувачем.

userdel — видалити користувача. userdel vasya — видалить користувача vasya.

groupadd — створення нової групи. groupadd students — створить групу students.

groupdel — видалення групи. groupdel students — видалить групу students.

chmod — змінити права доступу до файлу або каталогу. chmod 644 file — встановить права 644 на файл. chmod +x file — дасть файлу права на виконання.

chown — змінити господаря файлу. chown alex file — у результаті виконання цієї команди господарем файлу стане alex.

chgrp — зміна групи файлу. chgrp students laba1 — зміна групи файлу laba1 на students.

Команди для роботи з процесами

ps — вивести список процесів. ps axu — подивитися всі процеси. ps axu | grep win — відобразити всі процеси, де зустрічаються символи «win».

kill — вбити програму, після команди вказується номер програми (ідентифікатор процесу — PID), який можна дізнатися за допомогою команди ps. Приклад: kill 1234.

killall команда — завершує всі процеси, запущені з допомогою вказаної команди.

bg — продовжити роботу програми у фоновому режимі, наприклад після комбінації клавіш Ctrl+Z. Після команди може бути вказаний PID:

bg 1234.fg — продовжити виконання програми у звичайному режимі, також може бути вказаний PID.

Інші команди Linux та мови програмування

Деякі команди з цього списку можуть бути відсутні в стандартних дистрибутивах, їх можна встановити окремо.

sed — потужна утиліта для обробки тексту.

awk — мова для обробки тексту.

grep — утиліта пошуку тексту з використанням регулярних виразів, часто використовується в зв’язці з іншими командами. grep ‘^a’ ‘text.txt’ — покаже всі рядки у файлі text.txt, які починаються з букви а.

emacs — просунутий текстовий редактор, що володіє великою кількістю функцій, аж до вбудованих ігор. Для досвідчених користувачів.

gcc — компілятор мови C, з допомогою якого можна отримати виконувані файли програм, які поширюються у вихідних кодах. Або відкомпілювати свої програми.

gcc hello.c -o privet — компіляція програми hello.c, результатом компіляції буде програма з назвою privet. За замовчуванням (без опції -o) вихідний файл буде називатися a.out. GCC — це цілий набір компіляторів (GNU Compiler Collection). Крім C є підтримка програм на C++, Fortran, Ada, Objective-C, Java і Go.

g++ – компілятор мови C++ з GCC. perl — потужний скриптова мова.

python — виклик інтерпретатора мови Python. Це сучасний і потужний мову, який може бути рекомендований початківцям.

exit — завершення поточної сесії, може застосовуватися для відключення від віддаленого комп’ютера, закриття терміналу.

shutdown -h now — команда завершення роботи системи, вимикання комп’ютера. Аналогом є команда halt. Якщо замість ключа -h використовувати ключ -r, то відбудеться перезавантаження системи. Можна вказати час, через яке буде виконана команда. Now означає зараз.

shutdown -r +10 — перезавантаження комп’ютера через 10 хвилин. Ключ -з скасовує виконання команди. Для виконання команди потрібно мати права root.

reboot — перезавантаження комп’ютера, аналог shutdown -r.

Джерело: http://wnro.kiev.ua/