💻 Примеры

К оглавлению урока

⚡ Ключевые примеры

# Объявить и прочитать переменную
export MY_VAR=hello
echo $MY_VAR          # hello
echo MY_VAR           # MY_VAR (текст, не значение!)

# Просмотреть PATH
echo $PATH            # /usr/local/bin:/usr/bin:/bin:...

# Подсчитать ssh-процессы
ps -ef | grep ssh | grep -v grep | wc -l

# Посмотреть ОЗУ
free -m

1. Переменные: объявление и чтение

Классическая демонстрация из источника (Lecture 6). Обратите внимание: чтение через $ — иначе вывод — просто текст.

# Объявляем две переменные и читаем их через echo
export MY_VAR=hello
export var=world
echo $MY_VAR $var
# вывод: hello world

# Ловушка: без $ выводится текст, не значение
echo MY_VAR
# вывод: MY_VAR

2. Переменная PATH

# Посмотреть текущий PATH
echo $PATH
# вывод (типичный): /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

# Добавить свой каталог в начало PATH
export PATH=/opt/mybin:$PATH
echo $PATH
# вывод: /opt/mybin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
Добавлять в ~/.bashrc
Без записи в ~/.bashrc (или ~/.bash_profile) изменение PATH сохранится только до конца текущей сессии.

3. env: список переменных окружения

# Все переменные окружения текущей сессии
env

# Отфильтровать свою переменную
export ANDREW_VARIABLE=group_name
env | grep ANDREW
# вывод: ANDREW_VARIABLE=group_name

4. unset: удалить переменную

export MY_VAR=hello
echo $MY_VAR      # hello
unset MY_VAR
echo $MY_VAR      # (пустая строка)

5. Подсчёт процессов через конвейер

Паттерн из ДЗ 6 — найти процессы по шаблону и посчитать:

# Считаем ssh-процессы (grep -v grep исключает сам процесс grep)
ps -ef | grep ssh | grep -v grep | wc -l

# Считаем процессы root
ps -ef | grep root | grep -v grep | wc -l

# Найти sshd и вывести его PID и PPID
ps -ef | grep '[s]shd -D' | awk '{print "PID", $2, "PPID", $3}'
Почему grep -v grep?
Когда вы запускаете ps -ef | grep ssh, сам процесс grep ssh тоже виден в выводе ps и содержит слово «ssh» в аргументах. grep -v grep исключает строки со словом grep, оставляя только реальные ssh-процессы.

6. Оперативная память

free -m
#              total        used        free      shared  buff/cache   available
# Mem:          3886        1205         342          12        2338        2422
# Swap:            0           0           0

# Получить только объём ОЗУ в МБ (total)
free -m | grep Mem | awk '{print $2}'
# вывод: 3886