Skip to content

Latest commit

 

History

History
237 lines (145 loc) · 13.8 KB

File metadata and controls

237 lines (145 loc) · 13.8 KB

Linux, VIM, GIT practice

На даному уроці ми познайомимося з базовими командами роботи в ОС Linux в теорії та на практиці, потім викладемо сайт на хостинг A-Level, і в третій частині уроку попрактикуємося в навичках роботи з контролем версій GIT.

Linux basics

За виданими вам логінами, паролем та адресою сервера за допомогою програми Putty ви потрапите в консоль сервера Helium, на якому нам доведеться практикуватися в Linux.

Найголовніші команди, які необхідно знати:

  • ls з різними опціями - перегляд вмісту поточної або вказаної папки
  • cd - команда для зміни поточної папки
  • pwd - переглянути поточну папку
  • passwd - змінити пароль
  • mkdir - створити папку

Далі докладніше)

Команди та основи використання bash

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

Клавіатурні комбінації:

TAB - "Чарівна" кнопка, яка доповнює ваш текст. Не треба писати все, треба натискати TAB. Іноді двічі. CTRL-W - стерти слово до курсору CTRL-R - пошук з історії команд. Достатньо ввести будь-яку частину іншої команди, щоб її висмикнути для використання зараз. СТРЕЛКА ВВЕРХ - історія Alt-B - слово назад.

Команда виводить історію ваших команд.

Створення та видалення файлів та директорій. touch, mkdir, rm, ls, cat, ...

Нижче наведено джентльменський набір файлових операцій, що реалізуються командами:

pwd - (present working directory) показує де ми зараз знаходимося cd - (change directory) змінити директорію mkdir - (make dir) створити директорію rmdir - (remove dir) видалити директорію cp - (copy) копіювати що-небудь mv - (move) перемістити що-небудь rm - (remove) - видалити

Туди і назад

cd ~/tmp # change directory: зайти до папки tmp у домашній папці поточного користувача
cd       # йдемо в домашню папку
cd ./    # зайти в цю ж папку
cd ../   # вийти на папку вище.

А є що?

ls -la   # list докладно та з правами
ls       # list неподробно
ls -lah  # list докладно та зі зрозумілими розмірами файлів

Wildcard

Ви можете використовувати символ * для заміни частини імені файлу на будь-які: ls -la *php # показати всі файли php у директорії

При цьому команда ls отримає як параметри всі файли в папці, які закінчуються на php.

Я хочу створити!


touch filename           # створює порожній файл filename, або оновлює час доступу до файлу ("торкається" його)
mkdir ~/newFolder        # створюємо папку в домашньому каталозі
mkdir newFolder          # створюємо папку у поточному каталозі
mkdir ../newFolder       # створюємо папку поруч із поточним (тобто рівень вище)
mkdir -p ~/newFolder/1/2/3/4/5/6 # створимо відразу кілька папок один в одному

Перейменувати або перенести:

mv ~/newFolder/1/2/3/4/5/6 ~/newFolder # перенесемо папку 6 з папки 5 до папки ~/newFolder
mv filename otherFilename              # перейменуємо файл на інше ім'я файлу.

Копіювати

cp otherFilename filename             # копіюємо один файл з otherFilename в filename
cp -vrf ~/newFolder/1/2/ ~/newFolder  # copy verbose recursive force папку ~/newFolder/1/2 у ~/newFolder

delete

Видалити

rm otherFilename      # remove file otherFilename
rm -rf ~/newFolder/1  # remove files and directories recursively forced.

А що у файлі?

cat /etc/resolv.conf # conCAT /etc/resolv.conf

Як вийти з Vim або про текстові редактори

Усі ми тією чи іншою мірою знайомі з редакторами тексту. Однак у світі UNIX редактори спочатку більш потужні та гнучкі, орієнтовані працювати з кодом чи конфігураційними файлами.

vim

ViM - (vi i__m__proved) - потужний редактор, побудований не на ідеї редагування тексту, а на ідеї програмування редагування тексту. Завдяки цьому ви під час редагування оперуєте не окремими символами, а сутностями, що мають відношення до структури програмного коду (слова, параметри, парні теги/дужки тощо)

Режими роботи ViM;
  • Нормальний. Це режим, в якому відбувається програмування тексту

vim keys

Кожна клавіша на клавіатурі в цьому режимі відповідає за ту чи іншу дію: переміщення, зміну, видалення, вставку, копіювання текстового блоку і так далі.

Вихід із ViM
  • Esc:q! - вийти не зберігаючись
  • Esc:wqa - вийти, зберігши всі файли
  • ZZ - вихід із збереженням.
  • Esc:x - еквівалент Esc:wq

Абсолютні та відносні шляхи, ~ та ін.

Шляхи бувають абсолютні та відносні, а також щодо домашньої папки (/home/username). Для цього використовується наступний синтаксис:

/etc/ - Шлях, що починається зі слєшу - абсолютний tmp - Шлях без слішу означає шлях щодо поточної папки. Іноді треба поставити ./ перед ім'ям папки або файлу (./tmp) ~/ - домашню папку. Зазвичай /home/username ~username - домашню папку користувача .., ../ - папка уровнем выше ./ - поточна папка

Кожен файл або папка в UNIX ОС мають права доступу, які побиті на 3 вісімкові цифри (3 біти x 3 блоки).

Права доступу
- `r`- read
- `w`- write
- `x` -  eXecute/доступ до папки

Кожен із цих трьох прав доступу призначаються:

  • Власнику
  • Групі
  • Іншим Для завдання власника використовується команда chown (__CH__ange __OWN__er):
chown username filename # міняємо власника
chown -R username:groupname ~/newFolder # міняємо власника та групу для папки ~/newFolder рекурсивно

Для завдання прав доступу використовується команда chmod

chmod 700 filename # повний доступ для власника, нуль доступу групі та іншим
chmod -R a+x ~/newFolder # додати всім доступ на запуск всім (власнику, групі та іншим) рекурсивно

Hard & symlinks.

У файловій системі є посилання двох типів - текстові файли за допомогою інших файлів. Це симлінки. Також є копії файлових записів, які посилаються на контент файлів. Це хардлінки

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

для роботи з цими посиланнями використовується команда ln.

Root

Так як Лінукс це розрахована на багато користувачів ОС то і повинні бути певні обмеження для користувачів

Таким обмеженням є відсутність прав root.

root це окрім як корінь ще й користувач системи

Користувачеві root дозволено все: видаляти, копіювати або записувати або запускати будь-який файл, який знаходиться в системі

Користувач root має найвищі привілеї на все.

Тобто root це повноцінний адміністратор машини (комп'ютера).

Якщо вам потрібно встановити програму або виправити конфігурації, вам потрібно зайти під цим користувачем в систему.

Але це НЕ РЕКОМЕНДУЄТЬСЯ!!!

Сидіти під рутом частково небезпечно так як ви можете випадково зробити щось і ви можете попрощатися з системою.

Вихід є!

sudo -- substitute user and do, дослівно «підмінити користувача та виконати»

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

Для того щоб мати такі права вам все одно доведеться раз зайти під рутом

Правила, що використовуються sudo для ухвалення рішення про надання доступу, знаходяться у файлі /etc/sudoers (для редагування файлу можна використовувати спеціальний редактор visudo, який запускається з командного рядка без параметрів, у тому числі без вказівки шляху до файлу); мова їх написання та приклади використання докладно викладені у man sudoers(5).

Підсумок

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

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

Корисні посилання

Командна строка

Незвичайні рішення складних завдань одним рядком

Про bash

Домашнє завдання

Наступний Урок