Команди в CD в Linux

11-28-2016

Знайомство з командним рядком – перший і дуже важливий крок на шляху до продуктивного використання потужної серверної платформи Linux. Також це найважливіша умова для виконання практично всіх доступних в даному середовищі завдань, пов’язаних з сервером.Команди Linux

Сьогодні для багатьох інструментів існують графічні альтернативи; але вміння використовувати командний рядок – це додатковий рівень продуктивності, швидкості і гнучкості серверної середовища, досягти який за допомогою більшості графічних інтерфейсів неможливо. Переход в другую директорию при SSH соединении в Unix/Linux

Вимоги

Оскільки цей посібник вчить основам роботи з командним рядком, воно не передбачає глибоких попередніх знань. Тим не менш, для виконання описаних дествий необхідно мати доступ до VPS. Поточні параметри багато в чому залежать від операційної системи.

Необхідні для входу на новий сервер пароль і IP-адресу будуть отримані по електронній пошті.

ssh root@IP_адрес

Увійти на сервер можна також через консоль, використовуючи клавішу «Console Access». Це створить віртуальну термінальну сесію безпосередньо у вікні веб-браузера.

Для виконання даного керівництва входити в систему як root не обов’язково.

Як з’ясувати своє місцезнаходження в системі

Після підключення до машини Linux на екрані з’явиться щось подібне:

root@имя_хоста:~#

Це і є командний рядок, в яку потрібно вводити команди.

Але це ще не все. На даний момент ви знаходитесь у визначеному місці у файловій системі сервера. Місцезнаходження користувача в ієрархії файлової сервера впливає на виконання введених команд.

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

Командний рядок — текстове представлення тих же дій.

Отже, як же дізнатися про своє поточне розташування у файловій системі? Підказку містить сама командний рядок. В кінці командного рядка, перед знаками # або $ (символ залежить від поточного облікового запису, через яку ведеться робота), можна побачити символ тильди (~). Цей символ позначає домашній каталог.

Домашній каталог – це місце, де зберігаються файли даного користувача. Символ «~» – умовне позначення цього каталогу.

Інший спосіб визначити своє місцезнаходження у файловій системі – використовувати команду «pwd».

Введіть цю команду в термінал і натисніть Enter:

pwd
/root

Каталог /root – це домашній каталог root користувача (root). Якщо вхід в систему був виконаний за допомогою іншого користувача, результат буде виглядати приблизно так:

pwd
/home/имя_пользователя

Як було сказано вище, для виконання дій даного керівництва входити в систему як root не обов’язково.

Перегляд файлів системи

Команда pwd показує поточний каталог. Але як же дізнатися, що знаходиться в поточному каталозі?

Щоб переглянути файли і каталоги, що знаходяться в поточному каталозі, потрібно використовувати команду ls:

ls

Іноді ця команда повертає користувача командний рядок, не вивівши ніякого результату. Але це не означає, що вона була виконана невірно – просто поточний каталог порожній, і ніяких файлів або каталогів в ньому немає.

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

touch file{1..5}

Це дія створить в поточному каталозі 5 файлів з назвою file1, …, file5.

Знову введіть команду ls:

ls
file1 file2 file3 file4 file5

Тепер команда виявила файли, які знаходяться в поточному каталозі.

Більшості команд задано поведінку за промовчанням – дія, яка запускається на виконання при введенні команди без аргументів. Але поведінка здебільшого команд можна розширити, поставивши їм додаткові аргументи (вони також називаються опціями, прапорами або параметрами).

Іноді вони активують додаткові функції команди, іноді вказують об’єкт, на який потрібно виконати команду.

Опції ls

Вбудовану функцію довідки мають далеко не всі команди. У більшості випадків її можна викликати, додавши прапори —help або -h в кінці команди. Спробуйте викликати довідку за допомогою ls:

ls —help
Usage: ls [OPTION]… [FILE]…
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor —sort is specified.
Mandatory arguments to long options are mandatory for short options too.
-a, —all do not ignore entries starting with .
-A, —almost-all do not list implied . and ..
—author with -l, print the author of each file
-b, —escape print C-style escapes for nongraphic characters
—block-size=SIZE scale sizes by SIZE before printing them. E.g.,
. . .

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

Використання прапора –help – відмінний приклад роботи аргументів.

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

man ls

Для прокрутки сторінок використовуйте клавіші зі стрілками, щоб залишити керівництво, введіть «q».

Як бачите, команда ls має чимало опцій, що змінюють і розширюють її дії. Наприклад:

ls -l
-rw-r—r— 1 root root 0 Feb 28 19:45 file1
-rw-r—r— 1 root root 0 Feb 28 19:45 file2
-rw-r—r— 1 root root 0 Feb 28 19:45 file3
-rw-r—r— 1 root root 0 Feb 28 19:45 file4
-rw-r—r— 1 root root 0 Feb 28 19:45 file5

Дана дія показує нам ті ж п’ять тестових файлів, але в довгому форматі. Так можна отримати більше інформації про файли: дізнатися власника файлу (перший стовпець зі значенням «root»), групу файлу (другий стовпець зі значенням «root»), його розмір (0), дату його останньої зміни, і т. д.

Тепер використовуйте іншу опцію команди:

ls -a
. .aptitude .bashrc file2 file4 .profile .ssh
.. .bash_history file1 file3 file5 .rnd .viminfo

Даний результат показує кілька файлів, які раніше виведені не були. Прапор –a є синонімом прапора –all. Він показує всі файли поточного каталогу, в тому числі приховані.

В системі Linux всі файли, ім’я яких починається з крапки, приховано за замовчуванням. Дані файли не засекречені, і кожен може знайти їх; вони приховані для більш зручного керування файлами. З допомогою прапора –a команда ls виводить ці файли.

Також можна використовувати відразу кілька прапорів, вказавши їх послідовно:

ls -l -a
drwx—— 4 root root 4096 Feb 28 19:45 .
drwxr-xr-x 23 root root 4096 May 3 2013 ..
drwx—— 2 root root 4096 Feb 28 17:19 .aptitude
-rw——- 1 root root 2036 Feb 28 18:20 .bash_history
-rw-r—r— 1 root root 570 Jan 31 2010 .bashrc
-rw-r—r— 1 root root 0 Feb 28 19:45 file1
. . .

Також можна «згорнути» прапори в один прапор:

ls -la

Це працює точно таким же чином, при цьому займаючи менше часу на набір.

Ще одна корисна опція – прапор –R, який перераховує файли рекурсивно. Оскільки всі каталоги, що знаходяться в поточному каталозі, приховані, потрібно також використовувати прапор –a:

ls -Ra
.:
. .aptitude .bashrc file2 file4 .profile .ssh
.. .bash_history file1 file3 file5 .rnd .viminfo
./.aptitude:
. .. cache config
./.ssh:
. .. authorized_keys

Тепер, ознайомившись зі способами зміни дій команди ls, спробуйте змінити об’єкт її дії.

Використання ls на інші каталоги

За замовчуванням ls виводить вміст поточного каталогу. Але таким же способом можна переглянути вміст будь-якого каталогу, вказавши його ім’я після команди (подібно прапорів).

Наприклад, переглянути вміст каталогу /etc, існуючого у всіх системах Linux, можна, набравши:

ls /etc
acpi fstab magic rc.local
adduser.conf fstab.d magic.mime rc.local.orig
aliases fuse.conf mailcap rcS.d
aliases.db gai.conf mailcap.order reportbug.conf
alternatives groff mailname resolvconf
anacrontab group mail.rc resolv.conf
apm group- manpath.config rmt
. . .

Як видно, в даному каталозі досить багато файлів.

Будь-шлях до каталогу, який починається з косою рискою (/), називається абсолютним (або повним), оскільки він посилається на шлях до каталогу з самого «високого» в даній ієрархії каталогу, root, на що вказує слеш.

Ще один спосіб послатися на каталог – використовувати його відносний шлях. Він являє собою шлях по відношенню до поточного каталогу і нен розпочинається з слешу.

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

mkdir dir{1..3}
touch dir{1..3}/test{A,B,C}

Це створить декілька каталогів з файлами. Щоб ппросмотреть їх, використовуйте команду ls без аргументів:

ls
dir1 dir2 dir3 file1 file2 file3 file4 file5

Щоб переглянути вміст каталогу dir1, можна використовувати абсолютний шлях, як було показано вище. Щоб дізнатися поточний каталог:

pwd
/root

Потім введіть ім’я каталогу, в кінці рядка:

ls /root/dir1
testA testB testC

Але проробляти цю операцію кожен раз необов’язково, оскільки можна просто вказати ім’я поточного каталогу, щоб послатися на нього:

ls dir1
testA testB testC

Якщо шлях не починається з слеша, операційна система шукає шлях до каталогу, починаючи з поточного каталогу.

Навігація по файловій системі

Попередні глави керівництва розповідають, як з’ясувати своє місце розташування у файловій системі і як отримати деякі відомості про файли в певних каталогах.

Але як змінити поточний каталог? Змінивши робочий каталог, користувач отримує можливість використовувати відносні шляхи з іншого місця. Як правило, з файлами легше працювати з каталогу, в якому вони містяться.

Для переміщення файлової ієрархії використовується команда cd, яка розшифровується як «change directories».

Найпростіший варіант її використання:

cd

Дана команда без додаткової інформації перейде в домашній каталог. Якщо користувач вже знаходиться в домашньому каталозі, команда не виконає жодних дій.

Частіше команда використовується наступним чином:

cd /путь/к/каталогу

В даному випадку фразу /шлях/до/каталогу потрібно замінити реальним шляхом до каталогу, в який потрібно перейти. Приміром, щоб перейти до root-каталог, який позначається слешем (/) і є вершиною ієрархії, наберіть:

cd /

Примітка: root-каталог (/) не є домашнім каталогом root користувача (/root). Спочатку їх можна дуже легко сплутати.

Зверніть увагу, командний рядок змінилася.

Символ тильди («~», що позначає кореневий каталог) перед символом # або $ був замінений на root.

Щоб переконатися, що поточним тепер є root-каталог файлової системи, використовуйте команду pwd:

pwd
/

Можна також перевірити файли цього каталогу:

ls
bin etc lib media proc sbin sys var
boot home lib64 mnt root selinux tmp vmlinuz
dev initrd.img lost+found opt run srv usr

Тепер спробуйте перейти в інший каталог за допомогою відносного шляху. Знайдіть в даному каталозі каталогу з іменем usr і перейдіть до нього, ввівши:

cd usr

Зверніть увагу, з командою cd також можна використовувати відносний шлях. Як повернутися в root-каталог? Можна використовувати вже знайому команду «cd», але є ще один спосіб зробити це.

Спробуйте піднятися вгору по дереву каталогів, використовуючи відносні шляхи. Як послатися на каталог, в якому знаходиться поточний каталог, пі допомогою відносних шляхів?

Для цього використовується спеціальний синтаксис. Каталог, що містить поточний каталог, називається «батьківською». Щоб послатися на батьківський каталог, використовуються дві точки (..).

Тобто, щоб піднятися на рівень вище, потрібно використовувати:

cd ..
pwd
/

Як бачите, root-каталог знову став поточним. Щоб переглянути вміст поточного каталогу, можна використовувати символ крапки замість імені:

ls .
bin etc lib media proc sbin sys var
boot home lib64 mnt root selinux tmp vmlinuz
dev initrd.img lost+found opt run srv usr

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

Як було сказано раніше, символ «~» посилається на домашній каталог. Використовуйте його як початок іншого шляху до каталогу, щоб перейти до каталогу dir1 домашнього каталогу:

cd ~/dir1
pwd
/root/dir1

Отже, використовуючи символ «~» замість першої частини шляху, можна без праці перейти в каталог, який знаходиться в поточному каталозі.

Але що, якщо при переході сталася помилка, і тепер потрібно повернутися в останній каталог? Щоб перейти тому в попередній каталог, ввівши:

cd —
pwd
/

На завершення поверніться в домашній каталог. Це робиться за допомогою символу тільди, який використовується як шлях до каталогу. Але також можна просто використовувати команду cd без аргументів, так як її поведінку за замовчуванням – повертати домашній каталог. Це виглядає так:

cd
pwd
/root

Як бачите, тепер домашній каталог став поточним.