Командний рядок
Command-line interface (CLI) - це інтерфейс користувача, який дозволяє взаємодіяти з операційною системою або програмою за допомогою команд введених з клавіатури. Основні з якими ви можете стикатися у своїй роботі:
sh(Bourne shell) - це стандартна оболонка командного рядка в більшості Unix-подібних операційних системах. Вона має обмежені можливості порівняно з іншими оболонками.bash(Bourne-Again SHell) - це покращена версія sh, яка має більше можливостей та функцій, таких як історія команд, автодоповнення, підтримка змінних середовища та ін.zsh(Z shell) - це ще більш розширена версія оболонки командного рядка, яка має багато додаткових функцій, таких як краще автодоповнення, підтримка керування процесами та ін.- PowerShell - це оболонка командного рядка та скріптова мова, розроблена компанією Microsoft для взаємодії з операційною системою Windows та іншими продуктами Microsoft. PowerShell має багато функцій, таких як підтримка об'єктів, вбудовані командлети та можливість виконувати скрипти.

Відмінності між sh, bash, zsh та PowerShell полягають у їхніх можливостях та функціях, які вони надають
користувачам. Вибір оболонки командного рядка залежить від потреб користувача та операційної системи, з якою він працює.
Якщо ми говоримо про Linux, то як правило, сама по собі оболонка не має сенсу без команд які ми можемо у ній виконувати. Тому розглянемо найбільш популярні команди, які вам знадобляться у роботі:
- Команда
chmodвикористовується для зміни прав доступу до файлів та директорій. Наприклад,chmod 755 file.txtнадасть власнику файлу повний доступ, а іншим користувачам - тільки читання та виконання. - Команда
chownвикористовується для зміни власника файлу або директорії. Наприклад,chown user file.txtзмінить власника файлу на користувача "user". - Команда
rmвикористовується для видалення файлів або директорій. Наприклад,rm file.txtвидалить файл "file.txt". - Команда
cpвикористовується для копіювання файлів або директорій. Наприклад,cp file.txt newfile.txtстворить копію файлу "file.txt" з назвою "newfile.txt". - Команда
wgetвикористовується для завантаження файлів з Інтернету. Наприклад,wget https://example.com/file.txtзавантажить файл "file.txt" з веб-сайту "example.com". - Команда
curlвикористовується для взаємодії з веб-серверами через протокол HTTP. Наприклад,curl https://example.comповерне вміст веб-сторінки "example.com". - Команда
mcвідкриває файловий менеджер Midnight Commander, який дозволяє працювати з файлами та директоріями в терміналі. - Команда
mvвикористовується для переміщення або перейменування файлів або директорій. Наприклад,mv file.txt newdir/перемістить файл "file.txt" в директорію "newdir". - Команда
lsвиводить список файлів та директорій в поточній директорії. Наприклад,ls -lвиведе список файлів з детальною інформацією про кожен файл. - Команда
catвикористовується для виведення вмісту файлу в термінал. Наприклад,cat file.txtвиведе вміст файлу " file.txt". - Команда
grepвикористовується для пошуку тексту в файлі або виведення вмісту файлу, що містить певний текст. Наприклад,grep "example" file.txtвиведе всі рядки файлу "file.txt", що містять слово "example". - Команда
lessвикористовується для перегляду великих файлів в терміналі. Наприклад,less file.txtдозволить прокручувати вміст файлу "file.txt" поступово. - Команда
manвикористовується для відображення документації по команді. Наприклад,man lsвідобразить документацію по команді "ls". - Команда
psвикористовується для відображення активних процесів в системі. Наприклад,ps auxвиведе список всіх процесів в системі. - Команда
envвикористовується для відображення змінних середовища. Наприклад,envвиведе список всіх змінних середовища. - Команда
topвикористовується для відображення активних процесів в системі в режимі реального часу. Наприклад,topвідобразить список процесів, які виконуються в даний момент. - Команда
cronвикористовується для планування виконання команд в певний час. Наприклад,crontab -eдозволить налаштувати розклад виконання команд. - Команда
vimвикористовується для редагування текстових файлів в терміналі. Наприклад,vim file.txtвідкриє файл " file.txt" для редагування. - Команда
netstatвикористовується для відображення статусу мережевих з'єднань. Наприклад,netstat -aвиведе список всіх активних мережевих з'єднань. - Команда
aptвикористовується для управління пакетами в Debian-подібних системах. Наприклад,apt-get install packageвстановить пакет з назвою "package". - Команда
rpmвикористовується для управління пакетами в Red Hat-подібних системах. Наприклад,rpm -i package.rpmвстановить пакет з назвою "package.rpm". - Команда
printenvвикористовується для виведення значень всіх змінних середовища, які встановлені в поточному оболонці. Наприклад, якщо ви виконаєте командуprintenvв терміналі, то ви побачите список всіх змінних середовища, таких якPATH,HOME,USERта інші. - Команда
exportвикористовується для створення нової змінної середовища або для зміни значення існуючої змінної середовища. Наприклад, якщо ви виконаєте командуexport MY_VAR="Hello World", то ви створите нову змінну середовища з назвоюMY_VARта значеннямHello World.
Приклад використання команди printenv:
$ printenv
HOME=/home/user
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
USER=user
LANG=en_US.UTF-8
Приклад використання команди export:
$ export MY_VAR="Hello World"
$ echo $MY_VAR
Hello World
Також, можна використовувати команду export для додавання нових шляхів до змінної PATH. Наприклад:
$ export PATH=$PATH:/usr/local/bin
Ця команда додає шлях /usr/local/bin до змінної PATH, щоб система могла знайти виконувані файли, які знаходяться в
цій директорії.
Поглиблене вивчення

Я рекомендую придбати книгу Linux Phrasebook (Скотт Граннеман. Linux. Карманный справочник. 2-е издание), вона допоможе вам освоїти роботу з командним рядком на професфйному рівні.