Оболонка командного рядка - це текстовий інтерфейс користувача для вашої операційної системи. На відміну від графічної оболонки, яка використовує графічне представлення служб і ресурсів системи, оболонка командного рядка використовує тільки текст. Це основний інтерфейс між вами і операційною системою, і в багатьох випадках пропонує більш прямий контроль над системними процесами.
Для чого використовується Shell?
Коли справа доходить до спілкування з операційною системою, все, що можна зробити з графічним інтерфейсом, можна виконати в командному рядку. Наприклад, давайте візьмемо те, що потрібно робити весь час: переміщуйте файли у вашій файловій системі. Використовуючи графічний інтерфейс, можна вибрати піктограми, що представляють ваші файли, перетягнути їх до іншої папки і передати їх, щоб перемістити їх.
Однак, використовуючи командний рядок, цю операцію можна виконати за допомогою однієї команди:
Командний рядок, як тільки ви звикнете до нього, дозволяє керувати системою з більшою ефективністю та точністю, ніж з графічним інтерфейсом.
Чому вона називається "Shell"?
Інтерфейс користувача називається "оболонкою", оскільки він є зовнішнім шаром, що відокремлює вас від найпотаємніших частин операційної системи, і називається ядром. Технічно, графічний інтерфейс користувача операційної системи також є "оболонкою", але командний рядок часто називається випадково "оболонкою".
Як потрапити до командного рядка?
Найпоширенішим способом доступу до оболонки командного рядка є емулятор терміналу.
Якщо ви використовуєте дистрибутив Linux, він може завантажуватися в X Window System (або "X"), що дозволяє запускати програми у власних вікнах і взаємодіяти з ними за допомогою миші. У X існують різні способи запуску емулятора терміналу, але тут найпоширеніші:
- Багато дистрибутивів Linux використовують середовище робочого столу, подібну до Microsoft Windows, яка має меню "Пуск". У цьому меню термінал зазвичай розташований у розділі "Аксесуари". Наприклад, Lubuntu поставляється з вже встановленим емулятором терміналу LXTerminal, а ярлик знаходиться в меню Accessories.
Вибір пункту меню терміналу запускає емулятор терміналу і розміщує вас в командному рядку.
- Різні версії Linux використовують різні види віконних менеджерів, кожен з дещо іншим інтерфейсом. У багатьох менеджерах вікон, клацнувши правою кнопкою миші на робочому столі, з'явиться меню, яке містить опцію терміналу. Наприклад, у меню Crunchbang Linux правою кнопкою миші є опція "Термінал". Нижче описано, як виглядає це меню, після клацання правою кнопкою миші в будь-якому місці робочого столу.
У меню Аксесуари також є опція для запуску терміналу.
- На багатьох версіях Linux натискання клавіші Super Key і " T " одночасно є типовою гарячою клавішею для запуску терміналу. (Супер ключ, як правило, перший ключ зліва від пробілу, також відомий як клавіша Windows).
Якщо ви не можете зрозуміти, як запустити емулятор термінала, ознайомтеся з документацією для вашої операційної системи і знайдіть "terminal".
Командний рядок
Коли ви запускаєте емулятор терміналу, вам буде надано командний рядок.
Примітка: Ці приклади виконуються за допомогою оболонки Bourne-Again Shell ( bash ), яка є оболонкою командного рядка за замовчуванням на Linux.
Давайте уважно розглянемо цей командний рядок. Підказка може бути налаштована на будь-що, що вам подобається, але за замовчуванням вона виглядає так, як ми бачимо тут, надаючи нам корисну інформацію, перш ніж вводити команду.
Зокрема, він говорить нам, хто ми (ім'я користувача) і де ми знаходимося (яку систему ми використовуємо і наш робочий каталог). Ось що означають окремі частини підказки:
твоє ім'я | Ваше ім'я користувача. |
@ | Символ на символі відокремлює ім'я користувача та ім'я хоста. |
Ваш хост | Ім'я хосту системи. |
: | Двокрапка - це символ, який відокремлює ім'я хоста і робочий каталог. |
~ | Наш поточний ("робочий") каталог. Тильда (" ~ ") - це спеціальний символ, який представляє наш домашній каталог. Коли ви починаєте сеанс оболонки, це каталог, де ви зазвичай починаєте працювати за замовчуванням. |
$ | Спеціальний символ, який вказує на те, що ми не маємо привілеїв суперкористувача. Якщо ви ввійшли як root (суперкористувач), цей символ змінюється на # . |
Введення команд
Введемо першу команду. Ми повинні почати з переліку файлів у нашому домашньому каталозі. Найбільш основним способом перегляду всіх цих файлів є використання команди ls ; введіть ls у командному рядку та натисніть enter.
Як показано вище, команда ls перелічує вміст каталогу і розміщує нас в іншому командному рядку.
Примітка: Усі команди і імена файлів в Unix і Linux чутливі до регістру. Команда ls, наприклад, повинна бути набрана малими літерами, як і вище.
Для більш детального переліку вмісту каталогу ми можемо вказати параметри командного рядка, також відомі як комутатори . Це додаткові аргументи для команди, які змінюють спосіб її роботи. Тут ми будемо використовувати опцію -l (use long list format), щоб отримати більше інформації з нашого списку.
Як показано вище, команда ls -l дає нам набагато більше інформації про вміст нашого домашнього каталогу. На даний момент найважливішою інформацією, яку ми повинні помітити, є те, що перша буква списків - це d, що означає, що кожен з цих каталогів є самим каталогом.
Перш ніж робити що-небудь ще, давайте очистимо екран, щоб видалити безлад, отриманий на виході з наших попередніх команд. Скористайтеся командою clear, натиснувши клавішу clear у новому командному рядку та натисніть Enter .
Після натискання клавіші Enter екран видаляє та поміщає вас у новий командний рядок у верхній частині екрана терміналу.
Зміна каталогу
Давайте перейдемо до папки документів, використовуючи команду cd ("change directory"). Щоб змінити поточний каталог, введіть " cd ", а потім пробіл, потім ім'я каталогу, до якого ви хочете змінити, і натисніть клавішу enter.
Команда cd припускає, що ім'я будь-якого каталогу, який ви вказуєте, відносно поточного каталогу. Тому, щоб змінити в каталог документи, який існує в нашому поточному каталозі, введіть " cd documents ".
Командний рядок тепер відображає новий робочий каталог: ~ / documents, що еквівалентно повному шляху: / home / yourname / documents . Незалежно від того, яким користувачем ви ввійшли, " ~ " завжди відображає ваш домашній каталог. У прикладі новий робочий каталог також можна побачити у рядку заголовка нашого терміналу.
Примітка: На відміну від MS-DOS і Microsoft Windows, ієрархічні назви каталогів у Linux розділені косою рисою (" / "), а не зворотною косою рискою (""). Ця зміна символів є принциповою відмінністю між цими різними операційними системами.
У будь-який час можна перевірити поточний каталог за допомогою команди pwd ("print working directory").
Команда друкує ім'я поточного каталогу до терміналу, в даному випадку " / home / yourname / documents ". Знову ж таки, з " ~ / documents " " ~ " представляє наш домашній каталог, який є / home / yourname . Отже, якщо ми знаходимося в нашому домашньому каталозі, набравши " cd-документи ", " cd / home / yourname / documents " або " cd ~ / documents " все помістило б нас в той же каталог.
Тепер перейдемо до одного каталогу назад у наш домашній каталог. Спеціальне ім'я каталогу " .. " (двічі) означає "один каталог вгору".
Тепер ми повернулися до нашого домашнього каталогу.
Примітка: Якщо ви більш знайомі з MS-DOS, майте на увазі, що між cd і двома періодами має бути пробіл.
Переміщення файлів
Тепер давайте ознайомимося з способами переміщення файлів.
Припустимо, що ми просто завантажили два зображення за допомогою веб-браузера, і вони збереглися в папку завантажень . Давайте підемо туди і подивимося. По-перше, ми змінюємо каталог на каталог завантажень .
Потім вкажіть файли в каталозі за допомогою команди ls .
Тут ми бачимо два файли JPEG. Давайте виведемо їх з папки завантажень і помістимо їх у потрібне місце, наприклад папку зображень. Щоб перемістити ці файли, скористаємося командою mv ("move").
Команда mv приймає наступну загальну форму.
mv [ ОПЦІЇ ...] ЦІННОСТІ ДЖЕРЕЛА
OPTIONS укладається в дужки, оскільки вам не потрібно вказувати будь-які параметри для завершення команди. Необхідні аргументи SOURCE та DESTINATION .
SOURCE - це назва файлу або файлів, які потрібно перемістити. DESTINATION - це те, куди потрібно перемістити їх. Якщо DESTINATION є ім'ям каталогу, файл або файли переміщуються в цей каталог.
Наразі ми знаходимося в каталозі / home / yourname / downloads, і ми хочемо перемістити файли в / home / yourname / images . Ми можемо вказати нашу ДЕСТИНАЦІЮ, використовуючи повний шлях (" / home / yourname / images ") або як шлях відносно нашого поточного каталогу (" ../images "), або використовуючи тильду як абревіатуру для нашого домашнього каталогу ( " ~ / images "). Всі вони еквівалентні і дають однаковий результат. Давайте використаємо відносний шлях для нашого DESTINATION : ../images .
Отже, як ми будемо визначати наш джерело ?
Ми хочемо перемістити обидва файли, і вони є єдиними файлами в каталозі. Отже, найпростіший спосіб вказати їх - це сказати mv "перемістити всі файли в цьому каталозі в ../images ". Ми можемо зробити це за допомогою шаблону.
Шаблон - це спеціальний символ, який може представляти більше одного імені файлу (або більше однієї частини імені файлу). Тут ми будемо використовувати символ зірочки (" * "). Якщо ми використовуємо * як наше повне ім'я файлу, оболонка застосовує нашу команду до кожного файлу в нашому робочому каталозі.
Отже, наша команда буде читати наступне: " mv * ../images ". Давайте ввійдемо зараз.
Схоже, нічого не сталося, але це спосіб оболонки розповісти нам про помилки. Якщо виникла проблема, вона відобразить повідомлення про помилку або попередження.
Переконайтеся, що файли переміщено. Ми можемо перелічити вміст іншого каталогу, запустивши ls і вказавши ім'я шляху. У цьому випадку наш шлях є " ../images ".
Зображення є і там, і інший каталог, який вже існував (" шпалери "). Ми повинні створити свій власний каталог, щоб краще організувати наші зображення і не заважати основному каталогу зображень . Давайте зробимо це зараз.
Створення каталогів
Давайте перейдемо до каталогу зображень, де зараз знаходяться наші два зображення пінгвінів.
Тепер давайте зробимо новий каталог для наших зображень пінгвінів. Створення нових каталогів здійснюється за допомогою команди mkdir .
Найпростішою формою команди mkdir є надання одного аргументу: ім'я нового каталогу. Ми хотіли б створити новий каталог у нашому поточному каталозі, тому нам не потрібно надавати mkdir повний шлях, а саме ім'я самого каталогу. Назвемо наш новий каталог penguin-pix .
Таким чином, команда, яку ми збираємося ввести, це " mkdir penguin-pix ", щоб створити новий каталог.
Тепер переконайтеся, що він є, перерахувавши вміст каталогу.
Примітка: Ви можете бачити, що коли ми перераховуємо вміст каталогу, імена файлів і імена каталогів є різними кольорами, щоб допомогти визначити різні файли і каталоги. Хоча підсвічування кольору є звичайним для більшості оболонок, не всі оболонки роблять це за замовчуванням.
Якщо ми не можемо сказати за кольором імен, ми завжди можемо перевірити, які з цих файлів є каталогами, викликаючи ls з опцією -l (довгий список).
Додаткова інформація включає наступне.
- Дозволи - хто має доступ до файлу і який доступ.
- Право власності - хто є власником файлу.
- Авторство - хто створив файл.
- Розмір файлу - розмір файлу в байтах.
- mtime - дата і час останнього зміни файлу.
Перша літера на рядках для penguin-pix і шпалер - " d ", що вказує на те, що вони є каталогами. Додаткову інформацію про списки файлів див. У документації команди chmod .
Тепер ми можемо перемістити наші зображення в новий каталог. Щоб повідомити mv, які файли потрібно перемістити, ми можемо знову використовувати шаблон, але на цей раз переконайтеся, що він знає про переміщення лише файлів зображень, а не каталогів. Оскільки обидва файли зображень закінчуються розширенням JPEG .jpg, ми можемо вказати ім'я файлу " * .jpg ": це повідомляє оболонці "файли, які я хочу перенести - це будь-які файли в поточному каталозі, які закінчуються на .jpg ". Отже, наша команда виглядатиме так: " mv * .jpg penguin-pix ".
Повідомлення про помилку не було надано, тобто команда успішно завершена. Давайте перевіримо, що файли були переміщені, перераховуючи вміст пінгвінів .
Видалення файлів
У нас є дві картини пінгвінів, але, можливо, ми вирішили, що нам потрібна тільки реальна penguin.jpg, і нам більше не потрібно tux-the-penguin.jpg . Цей файл можна видалити за допомогою команди rm ("remove").
Потрібно надати rm з іменем файлу, який потрібно видалити. Наразі ми знаходимося в каталозі images, але наше зображення тепер знаходиться в підкаталозі penguin-pix . Ми могли б змінити наш робочий каталог на penguin-pix, а потім запустити команду, але це тільки додаткові роботи, ми можемо пропустити цей крок, використовуючи каталог як частину шляху.
Наша команда виглядатиме так: " rm penguin-pix / tux-the-penguin.jpg ".
Ще раз, оболонка виконує нашу команду, не надаючи жодного відгуку. Команда виконана успішно, тому оболонка повертає нас до командного рядка, повідомляючи нам, що вона готова до іншої команди.
Попередження: На відміну від перетягування файлу до кошика або кошика Microsoft Windows, неможливо скасувати видалення файлу за допомогою rm . Обережно видаліть файли! Одного разу пішли, це (практично) неможливо отримати їх назад.
Давайте просто перевіримо, що файл дійсно пропав.
Видалення каталогів
Це чудово для файлів, але як щодо каталогів? За замовчуванням rm видаляє файли, а не каталоги.
Команда rmdir ("remove directory") видаляє каталог, припускаючи, що він порожній. Давайте перевіримо його, створивши новий, порожній каталог, використовуючи команду " mkdir test-directory ".
Перевіримо, чи є вона з командою " ls -l ".
Тепер ми можемо видалити наш новий каталог, використовуючи команду " rmdir test-directory ", і перевірте, що він знову запущений командою " ls -l ".
Так, його немає.
Але що станеться, якщо ми спробуємо " rmdir penguin-pix "?
Ми не можемо rmdir цього каталогу, оскільки він не порожній.
Якщо ви впевнені, що хочете видалити penguin-pix і все всередині нього (включаючи всі файли та будь-які каталоги, які він може містити), ви можете використовувати команду rm з опцією -r .
Як правило, rm не буде працювати в каталозі. Однак, якщо викличемо з опцією -r, rm видаляє каталог рекурсивно, що означає, що він переходить до каталогу та будь-якого підкаталогу, видаляючи все, включаючи каталог. Отже, якщо ми запустимо команду " rm -r penguin-pix ", вона видаляє каталог і файл, що знаходився всередині. Якщо в каталозі були якісь каталоги, вони також були б видалені.
Увага! Знову ж таки, для цієї команди немає скасування. Коли ви rm -r каталог, цей каталог і все всередині нього буде видалено назавжди! Як і більшість команд Linux, rm є дуже потужним і його слід використовувати обережно.
Щоб скопіювати файл, скористайтеся командою cp .
cp Визначення джерела
SOURCE - це ім'я файлу, який потрібно скопіювати, а DESTINATION - це шлях, який визначає призначення нового файлу. Призначенням може бути нове ім'я файлу або ім'я каталогу, де ви хочете розмістити копію.
Припустимо, у нашому каталозі документів є текстовий файл під назвою orig.txt, і ми хочемо зробити його копію з назвою copy.txt . Команду, яку ми повинні використовувати, є " cp orig.txt copy.txt ".
Якщо, з іншого боку, ми вказуємо каталог як призначення команди cp, він робить копію з тим же ім'ям, що й оригінал у каталозі призначення. У наступному прикладі ми робимо шість речей.
- Перерахуйте вміст робочого каталогу.
- Створіть новий каталог, який називається копією .
- Перерахуйте вміст робочого каталогу, який тепер містить каталог копій .
- Перерахуйте вміст каталогу копій (їх немає. Він порожній).
- Скопіюйте copy.txt у каталог копій .
- Перерахуйте вміст каталогу копій, який тепер містить копію copy.txt .
Перейменування файлу
Команда mv також може використовуватися для зміни назви файлу. Наприклад, команда " mv orig.txt original.txt " буде перейменовувати файл orig.txt в оригінальний .
Перейменування каталогу
Перейменування каталогів працює точно, як перейменування файлів, за допомогою команди mv . Тут ми створюємо каталог з ім'ям " копіювати ", але перейменовуємо його в " копії ", використовуючи команду " копії копій mv ".
Якщо каталог копіювання містив будь-які файли або каталоги, вони були б незмінними. Єдине, що зміниться, це ім'я каталогу, що містив їх.
Автозаповнення
Більшість оболонок командного рядка Linux автоматично завершують слово, яке ви почали вводити, якщо натиснути клавішу Tab. Автоматичне завершення допоможе вам заощадити час, особливо з довгими іменами файлів. Наприклад, скажімо, у вашій папці документів є три файли: penguin-diving.jpg, penguin.jpg і penguins.jpg .
Якщо ви введете команду, а потім введіть " p " і натисніть клавішу Tab, оболонка завершить слово "penguin" для вас.
Він зупиняється на тому, що всі файли починаються зі слова penguin, але після цього він не впевнений, який файл ви хочете вказати.
Якщо ви знаходитесь в ситуації, коли більше ніж одне автозаповнення відповідає тому, що ви вже ввели, натискання клавіші Tab двічі підказує оболонці перерахувати всі можливі збіги. Таким чином, у ситуації вище, де ви ввели p і Tab, і оболонка автозаповнює пінгвін для вас. Натисніть клавішу Tab ще два рази, щоб надати вам всі можливі варіанти, і повернути вас назад у відповідь.
Автозавершення також працює для завершення імен шляхів і імен команд.
Вихід з оболонки
Введення команди виходу завершує командну оболонку і закриває вікно терміналу, або готує вікно терміналу вручну.