Інструкція по bash
В цій статті подаються найважливі функції bash які варто знати всім його користувачам. Додаткова інформація, яка використовується рідше, або яку важко зрозуміти без попереднього досвіду доступна за посиланнями "Основна стаття", та в підрозділах "Просунута інфорамція"
Навігація директоріями
Програма pwd
покаже директорію в якій ви зараз знаходитесь.
Програма ls
покаже доступні файли та директорії. Подробиці
дивись в статті Файли та права в Linux.
Команда cd DIR
дозволяє змінити поточну директорію чи
перейти в піддиректорію.
Просунута інформація
Основна стаття: The Directory Stack.
Трійка команд pushd
, popd
та dirs
стає
в нагоді коли треба виконати якусь невелику роботу в іншій директорії та
повернутись в поточну. Також вони дуже корисні під час написання скриптів.
Запуск програм та вбудованих функцій
bash дозволяє нам запускати програми, або виконувати вбудовані функції. Як
ми вже бачили pwd
та ls
- це програми, а
cd
- це вбудована функція bash.
Виконання програми можна відмінити натиснувши комбінацію клавіш
Ctrl+C
.
Тимчасово призупинити виконання програми можна за допомогою клавіш
Ctrl+Z
. Повернутись до виконання призупиненої програми можна за
допомогою команди fg
.
Популярні програми
echo
- виводить свої аргументи на екран:
$> echo "hello, " $USER
hello, dmytro
cat FILENAME
- вовидить на екран вміст файлу
FILENAME
:
$> cat .bash_profile
if [ -n ~/.bashrc ]; then
. ~/.bashrc
fi
grep PATTERN FILENAME
виводить стрічки файлу
FILENAME
які відповідають шаблону
PATTERN
:
$> grep bash .bash_profile
if [ -n ~/.bashrc ]; then
. ~/.bashrc
which PROGRAMM
виводить повний шлях до програми
PROGRAMM
:
$> which which
/usr/bin/which
Просунута інформація
Код програм які складають пакет GNU можна знайти тут, вони є частиною будьякого лінукса.
Ввід/вивід
Програми, які ми запускаємо в bash, обробляють те, що ми вводимо з
клавіатури та виводять результати на екран. Для того щоб зберегти результат
роботи програми в файл для подальшої обробки, використовується мета символ
>
:
$> echo "hello, world!" > hello.txt
$> cat hello.txt
hello, world!
>
замінює вміст файла. Якщо ви бажаєте дописати
файл - використовуйте >>
:
$> echo "ця строка буде видалена" > hello.txt
$> echo "нова строка, яка замішує попередню" > hello.txt
$> cat hello.txt
нова строка, яка замішує попередню
$> echo "ця строка буде додана до існуючою сторки" >> hello.txt
$> cat hello.txt
нова строка, яка замішує попередню
ця строка буде додана до існуючою сторки
Іноді ми хочемо щоб вивід однієї програми був додатково оброблений іншою
програмою до того, як вивести результат на екран. Це робиться за допомогою
мета символа |
(штрих Шефера):
$> echo "one" > hello.txt
$> echo "two" >> hello.txt
$> echo "three" >> hello.txt
$> cat hello.txt
one
two
three
$> cat hello.txt | grep t | sort
three
two
Змінні оточення
Змінні отечення - це пари ключ-значення, які лінукс використовує для передачі контекстної інформації програмам. Таким чином, коли ви запускаєте програми з bash - вам не треба передавати ці параметри програмі. Вона сама знайде ті параметри, які важливі для її роботи.
Щоб переглянути поточний список змінних оточення використвується програма
env
:
$> env
SHELL=/bin/bash
USER=dmytro
PWD=/home/dmytro
JAVA_HOME=/home/dmytro/projects/jdk-14.0.2/
LANG=en_US.UTF-8
Для того щоб переглянути значення змінної - поставте перед її ключем мета
символ $
:
$> echo $USER
dmytro
Найважливіші змінні:
$PATH
- список директорій за якими bash шукає програми для виконання розділених двокрапкою (:
).$USER
- ім'я вашого користувача.
Історія команд
Основна стаття: Bash History Facilities.
Файл ~/.bash_history
зберігає всі команди які ви віддавали bash.
Серед попередніх команд можна робити пошук з допомогою гарячих клавіш
Ctrl+R
.
Порядок ініціалізації
Основна стаття: Bash Startup Files.
Під час запуску bash інтерпретуються декілька файлів:
/etc/profile
- спільний для всіх користувачів.~/.bash_profile
,~/.bash_login
,~/.profile
в наведеному порядку. Виконується перший, який існує і може бути доступний для виконання.
Також існує файл ~/.bashrc
який є типовим місцем куди записують
те, що хочуть запускати перед запуском bash. Цей файл використовується тоді,
коли bash який запускається не є логіном. Для того щоб уникнути плутанини
~/.bash_profile
зазвичай має таку стрічку:
if [ -f ~/.bashrc ]; then . ~/.bashrc; fi