Часть 1. Терминал Linux
⠀Linux — это работа в терминале. Процессу обучения этому навыку может помочь данная серия статей.
Содержание
Введение
- Горячие клавиши и переменные окружения.
- Группы команд: справочная информация, пакетный менеджер, файловая система.
- Группы команд: архивы, пользователи, текст.
- Группы команд: информация о системе, сеть, прочее.
- Операторы, запуск скриптов, а также описание скриптов нашей команды.
⠀Вся информация применима к Ubuntu 20.04
. Она может быть неприменима частично к другим версиям и неприменима совершенно к другим дистрибутивам.
⠀Дистрибутив Linux — это общее определение операционных систем, использующих ядро Linux и готовых к установке. Например: Ubuntu, Alpine Linux, Debian, CentOS и т. п.
⠀В статьях с командами описываются наиболее используемые команды. Описание команд упрощено, где это возможно, поскольку статьи рассчитаны в первую очередь на новичков. За подробным описанием и кучей технических терминов обращаться в поисковик.
Горячие клавиши
⠀Горячие клавиши в Linux — это, как и везде, очень удобная вещь, экономящая время, силы и нервы. Желательно попробовать воспользоваться на практике всеми ими несколько десятков раз для первичного запоминания, а затем внедрять в свою жизнь наиболее полезные, попутно запоминая их надолго.
Команды
↑
— перейти к предыдущей команде в истории команд, можно выполнять несколько раз.
↓
— перейти к следующей команде в истории команд, можно выполнять несколько раз.
←
— перейти влево на один символ.
Ctrl + ←
— перейти влево на одно слово.
→
— перейти вправо на один символ.
Ctrl + →
— перейти вправо на одно слово.
Home
/ Ctrl+A
— перейти к началу строки.
End
/ Ctrl+E
— перейти к концу строки.
Ctrl+XX
— перемещение между началом строки и текущим положением курсора. Одно нажатие сочетания — в начало строки, второе — обратно.
hello wor|ld → |hello world → hello wor|ld
Процессы и экран
Ctrl+L
— очистить экран, аналог команды clean
.
Ctrl+C
— прервать (убить) текущий процесс, запущенный в терминале на переднем плане.
Ctrl+Z
— приостановить текущий процесс, отправив его в фоновый режим (для возобновления его работы служит команда fg
).
Ctrl+S
— остановить вывод на экран (например вывод лога).
Ctrl+Q
— возобновить вывод на экран.
Текст
Alt+T
— поменять местами текущее слово с предыдущим.
hello wor|ld → world hello|
Alt+D
— удалить в текущем слове все символы после курсора.
hel|lo world → hel world
Ctrl+W
— вырезать часть слова перед курсором и добавить его в буфер обмена. В частности можно использовать для удаления.
hello wor|ld → hello ld
Ctrl+U
— вырезать часть строки перед курсором и добавить её в буфер обмена. В частности можно использовать для удаления.
hello wor|ld → ld
Ctrl+K
— вырезать часть строки после курсора и добавить её в буфер обмена. В частности можно использовать для удаления.
hel|lo world → hel
Ctrl+Y
— вставить последнее из буфера обмена.
Alt+U
— сделать все символы заглавными от текущего до конца слова и переместить курсор в его конец.
h|ello world → hELLO| world
Alt+L
— сделать все символы строчными от текущего до конца слова и переместить курсор в его конец.
h|ELLO world → hello| world
Alt+C
— сделать текущий символ заглавным и переместить курсор в конец слова.
h|ello world → hEllo| world
Ctrl + -
— отменить последнее действие, можно выполнить несколько раз (аналог Ctrl+Z
в блокноте, Word и т. п.).
Прочее
Tab
— автоматически дописать название вводимого файла, директории, команды или переменной.
chmod +x scri → chmod +x script.sh cd dire → cd directory tou → touch echo $vari → echo $variable
Ctrl+R
— поиск команды в истории выполнения.
Enter
/ Ctrl+O
— выполнить найденную команду.
Ctrl+C
/ Ctrl+G
— выйти из режима поиска без выполнения команды.
Переменные окружения
⠀Переменные окружения, переменные среды или просто переменные — это объекты, имеющие значение, т.е. содержащие в себе какую-то информацию, и использующиеся программами в процессе выполнения каких-либо действий.
Виды
⠀Определены только для текущей сессии — после её завершения такие переменные перестанут существовать. Создаются и удаляются при помощи команд.
⠀Определены для конкретного пользователя и загружаются при каждом его входе в систему. Такие переменные обычно хранятся в специальных файлах, находящихся в домашней директории пользователя:
.bash_profile
.bash_login
(используется, если не существует.bash_profile
).profile
(используется, если не существует.bash_login
).bashrc
⠀Для вступления в силу изменений, внесённых в данные файлы, необходимо выполнить команду
. путь_к_файлу # Или source путь_к_файлу # Например . $HOME/.bash_profile
⠀Определены для всех пользователей и загружаются при запуске системы. Такие переменные обычно хранятся в следующих местах:
Alias
⠀Alias — это ещё одно представление какой-либо команды. В роли команды может выступать любая команда или группа команд, в том числе вместе с опциями и аргументами.
⠀Alias не является переменной окружения, однако в связи со схожим принципом работы находится в данном разделе.
Создание
variable="value" # Или export variable="value"
alias update="sudo apt update && sudo apt upgrade"
⠀Можно воспользоваться скриптом нашей команды из последней статьи, который делает всё самостоятельно с учётом всех тонкостей, или сделать вручную:
export variable="value" >> $HOME/.bash_profile . $HOME/.bash_profile
alias update="sudo apt update && sudo apt upgrade" >> $HOME/.bash_profile . $HOME/.bash_profile
Использование
⠀Чаще всего переменные используются в качестве текста в различных командах. Для использования переменной необходимо поставить знак $
, а затем название переменной. Зачастую название заключается в фигурные скобки для того, чтобы переменная не сливалась с последующим текстом
variable="value" echo "$variable"
value
umee_wallet_name="umee" umeed keys show "$umee_wallet_name" # Аналогично umeed keys show "umee"
dir="dir1/dir2/" cd "$HOME/${dir}my_dir"
⠀Alias используется в терминале или скрипте как обычная команда
update
Удаление
unset variable variable2 variable3
# Определённые unalias update alias2 alias3 # Все unalias -a
⠀Можно воспользоваться скриптом нашей команды из последней статьи, который делает всё самостоятельно с учётом всех тонкостей, или сделать вручную:
nano -mP $HOME/.bash_profile
. $HOME/.bash_profile
Зарезервированные системой
⠀Помимо задаваемых пользователем переменных существуют зарезервированные системой.
echo "$HOME"
# Возможные варианты /root /home/user /home/user2
PATH
— список директорий, разделенных двоеточиями, в которых командная оболочка ищет команды (напримерmkdir
,wget
и т. д.).
echo "$PATH"
# Возможные варианты /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin /root/.local/share/solana/install/active_release/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
echo "$HOSTNAME"
# Возможные варианты vmi666999.contaboserver.net n8531eb Ubuntu-2004-focal-64-minimal
echo "$PWD"
# Возможные варианты /root /root/dir1 /etc
echo "$RANDOM"
# Возможные варианты 12463 45 32466
echo "$EUID"
# Возможные варианты 0 100 40
echo "$GROUPS"
# Возможные варианты 0 100
Читать далее
⠀Во второй части рассматриваются следующие группы команд: справочная информация, пакетный менеджер, файловая система.
Полезные ссылки
Горячие клавиши Linux (EN) | Зарезервированные переменные
Благодарности
Команда 1package — написание статьи