Інструкція по 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

Найважливіші змінні:

Історія команд

Основна стаття: Bash History Facilities.

Файл ~/.bash_history зберігає всі команди які ви віддавали bash. Серед попередніх команд можна робити пошук з допомогою гарячих клавіш Ctrl+R.

Порядок ініціалізації

Основна стаття: Bash Startup Files.

Під час запуску bash інтерпретуються декілька файлів:

Також існує файл ~/.bashrc який є типовим місцем куди записують те, що хочуть запускати перед запуском bash. Цей файл використовується тоді, коли bash який запускається не є логіном. Для того щоб уникнути плутанини ~/.bash_profile зазвичай має таку стрічку:

if [ -f ~/.bashrc ]; then . ~/.bashrc; fi