- разові масові дії (прибити багато процесів; якщо працюєте з системою контролю версій - ревертнуть або зарезолвіть купу файлів);
- діагностика відбувається в системі (семафори, локи, процеси, дескриптори, місце на диску і т.п.);
- установчі скрипти, для виконання яких не можна розраховувати на наявність інших інтерпретаторів - це не для новачків;
- функції для кастомізації інтерактивного шелла (впливають на запрошення, що змінюють каталог, що встановлюють змінні оточення) - теж не зовсім для новачків;
- одноразові скрипти типу масового перекодування файлів;
Починаємо роботу: увійти і вийти
Переконайтеся, що точно знаєте, як запустити шелл і як з нього вийти.
Якщо ви працюєте за машиною, на якій встановлена Ubuntu, вам треба запустити програму Terminal. Після закінчення роботи можна просто закрити вікно.
На MacOS - теж запустити Terminal.
Для доступу до віддаленого сервера - скористатися ssh (якщо локально у вас MacOS, Ubuntu або інша unix-like система) або putty (якщо у вас Windows).
Хто я, де я?
Виконайте наступні команди:
• hostname - виводить ім'я машини (сервера), на якій ви зараз перебуваєте;
• whoami - виводить ваш логін (ваше ім'я в системі);
• tree -d / | less - псевдографічні зображення дерева каталогів на машині; вихід з гортання - q;
• pwd - виводить каталог, в якому ви зараз перебуваєте; в командному рядку ви не можете бути "просто так", ви обов'язково перебуваєте в якомусь каталозі (= поточний каталог, робочий каталог). Ймовірно, поточний робочий каталог виводиться у вас в запрошенні (prompt).
• ls - список файлів в поточному каталозі; ls / home - список файлів в зазначеному каталозі;
Історія команд (history)
Важлива властивість повноцінної командного рядка - історія команд.
Виконайте кілька команд: hostname, ls, pwd, whoami. Тепер натисніть клавішу "вгору". У рядку введення з'явилася попередня команда. Клавішами "вгору" і "вниз" можна переміщатися вперед і назад по історії. Коли долістаете до hostname, натисніть Enter - команда виконається ще раз.
Команди з історії можна не просто виконувати повторно, а ще й редагувати. Долістайте історію до команди ls, додайте до неї ключ -l (вийшло ls -l, перед мінусом пробіл є, а після - ні). Натисніть Enter - виконається модифікована команда.
Перегортування історії, редагування і повторне виконання команд - найтиповіші дії при роботі в командному рядку, звикайте.
Командний рядок дуже текстоцентричного: команди - це текст, вхідні дані для більшості стандартних програм - текст, результат роботи - найчастіше теж текст.
Прекрасної особливістю тексту є те, що його можна копіювати і вставляти, це вірно і для командного рядка.
Спробуйте виконати команду date + "% y-% m-.,% A"
Вводили ви її цілком руками або скопіювали зі статті? Переконайтеся, що ви можете її скопіювати, вставити в термінал і виконати.
Після того, як навчитеся користуватися man-ом, переконайтеся, що можете скопіювати і виконати приклади команд з довідки. Для перевірки знайдіть в довідці date розділ EXAMPLES, скопіюйте та виконайте перший наведений приклад (про всяк випадок: знак долара не є частиною команди, це умовне зображення запрошення до вводу).
Ключі та опції
При дослідженні історії команд ви вже зіткнулися з тим, що у команди ls є принаймні два варіанти. Якщо викликати її просто так, вона виводить простий список:
Це дуже типова ситуація: якщо до виклику команди додавати спеціальні модифікатори (ключі, опції, параметри), поведінка команди змінюється.
Порівняйте: tree / і tree -d /, hostname і hostname -f.
Крім того, команди можуть приймати в якості параметрів імена файлів, каталогів або просто текстові рядки. Спробуйте:
ls -ld / home ls -l / home
grep root / etc / passwd
man - довідка по командам і програмами, доступним на вашій машині, а також по системним викликам і стандартної бібліотеці C.
Спробуйте: man grep, man atoi, man chdir, man man.
• 1 - виконувані програми і шелльние команди (wc, ls, pwd і т.п.);
• 2 - системні виклики (fork, dup2 і т.п.)
• 3 - бібліотечні функції (printf, scanf, cos, exec).
Подивитися список всіх доступних на машині довідкових статей можна за допомогою команди man -k. (Точка - теж частина комади).
Спробуйте і порівняйте поведінку:
cat /etc/bash.bashrc | less
Ви можете надіслати файл в пролістиватель відразу в параметрах:
Перегортування вгору і вниз - кнопки "вгору", "вниз", "PageUp", "PageDown", вихід - кнопка q. Пошук певного тексту: натискаючи / (прямий слеш), введіть текст для пошуку, натискаючи Enter. Переміщення до наступних входженням - клавіша n. (Дізнаєтеся інструкцію про man? Нічого дивного, для виведення довідки теж використовується less.)
Подивитися права на файл можна за допомогою ls -l. наприклад:
> Ls -l Makefile