В этой мануале мы рассмотрим основные возможности для работы с терминалом в Linux. Знание этих возможностей, поможет вам чувствовать себя более уверенным при работе с командой строкой.

Процесс загрузки

- /etc/profile	-настройки системных переменных
- ~/.bash_profile	-настройка пользовательских переменных
- ~/.bashrc	-выполнение пользовательских команд

Горячие клавиши

  • CTRL + стрелки – перемещение по словам
  • CTRL + W– удаление слова слева от курсора
  • CTRL + R– поиск по истории команд
  • ALT + .– подставить последний аргумент
  • CTRL + X + E– ввод команды через текстовый редактор
  • CTRL + Z– отправить текущей команде сигнал SIGSTOP

Полезные команды

  • !! – повторить предыдущую команду
  • watch – повторять команду с интервалом
  • fg – вернуть процесс на передний план
  • bg – продолжить выполнение на заднем плане
  • jobs – посмотреть остановленные процессы

Потоки данных

stdout – поток вывода – &1

echo "Test" > file

stderr – поток ошибок – &2

echo "Test" 2> file 
ls /root 2> file  
ls /root > file 2>&1

stdin – поток ввода

echo 'print("Hello world")' | python3
> - перезаписывает
>> - добавляет

Работа с текстом

grep – утилита для построчного поиска текста по паттерну

- zcat /proc/config.gz | grep -i BTRFS | grep -v "^#"
- zcat /proc/config.gz | grep -i "^CONFIG_BTRFS"
- zgrep "^CONFIG_BTRFS" /proc/config.gz
- cat /etc/ssh/ssh_config | grep -v "^$\|^#"
- cat /etc/ssh/ssh_config | grep .
- zcat /proc/config.gz | grep "CONFIG.*POSIX_ACL"

awk – скриптовый язык обработки текста

- ps aux | grep telegram-desktop
- ps aux | grep telegram-desktop | grep -v grep
- ps aux | grep telegram-desktop | grep -v grep | awk '{print $2}'
- cat /etc/passwd | awk -F: '{print $1}'
- cat /var/log/syslog | grep "Dec 15 20:21:*" | awk '{print $1,$2,$3,$5}'

sed – потоковый текстовый редактор

- sed -i "s/HashKnownHosts yes/HashKnownHosts no/" /etc/ssh/ssh_config
- sed -i "s/Привет мир/Hello World" test*
- cat test1 | sed "s/world/мир"

Vim

Режимы работы Vim

Режим команд (Command mode) - используется для выполнения команд. При запуске Vim, вы находитесь в этом режиме.

Режим вставки (Insert mode) - используется для ввода текста. Для перехода в этот режим, нажмите клавишу “i”.

Режим замены (Replace mode) - используется для замены существующего текста. Для перехода в этот режим, нажмите клавишу “R”.

Режим визуального выделения (Visual mode) - используется для выделения текста для копирования, вырезания или изменения. Для перехода в этот режим, нажмите клавишу “v”.

Навигация

    h - переместить курсор влево

    j - переместить курсор вниз

    k - переместить курсор вверх

    l - переместить курсор вправо

    w - переместить курсор на начало следующего слова

    b - переместить курсор на начало предыдущего слова

    e - переместить курсор на конец текущего слова

    0 - переместить курсор в начало строки

    $ - переместить курсор в конец строки

    gg - переместить курсор в начало файла

    G - переместить курсор в конец файла

Редактирование текста

    i - вставить текст перед курсором

    a - вставить текст после курсора

    o - вставить новую строку после текущей строки и перейти в режим вставки

    dd - вырезать текущую строку

    yy - скопировать текущую строку

    p - вставить скопированный или вырезанный текст после курсора

    u - отменить последнее действие

    Ctrl + r - повторить отмененное действие

Сохранение и выход из редактора

    :w - сохранить файл

    :q - выйти из Vim

    :wq - сохранить файл и выйти

Клавиша Esc переключает Vim в нормальный режим. Если в этом режиме нажать : (проверьте, что установлена английская раскладка и снят CapsLock, затем одновременно нажмите Shift и ;), то символ : появится в нижней части экрана, и редактор перейдёт в режим командной строки. Это гарантирует, что вы сейчас именно вводите команду, а не редактируете файл. Помните, что регистр вводимых команд важен.

Виртуальные терминалы

  • screen - менеджер виртуальных терминалов
  • tmux - терминальный мультиплексор

Tmux

Tmux опции

Что касается опций, то в большинстве вам придется использовать только две - это -t (target) - которая указывает цель, к которой будет применяться команда, например, идентификатор сессии или подключенного клиента, а также -s (session) - который обычно используется для обозначения источника, над которым будет выполняться действие.

Команды tmux для управления сессиями, которые вы можете использовать:

attach-session (либо attach) - подключиться к уже
существующей сессии. В параметре необходимо передать
опцию -t и идентификатор сессии;
detach-session (либо detach) - отключить всех клиентов (или
переданного с помощью опции -t) от сессии, переданной в
опции -s;
has-session - проверить существует ли сессия, аналогично, надо
передать идентификатор сессии;
kill-server - остановить все запущенные сессии;
kill-session - завершить сессию переданную в параметре -t;
list-clients - посмотреть клиентов, подключенных к сессии -t;
list-sessions (либо ls) - вывести список всех запущенных сессий;
new-session - создать новую сессию, можно передать имя сессии
в опции -s и стартовую директорию в опции -c;
rename-session - переименовать сессию, нужно передать
идентификатор сессии и новое имя;

По умолчанию для активации сочетания клавиш нужно нажать Ctrl+B, отпустить, а потом нажать нужную клавишу. Вот основные сочетания клавиш tmux, которые вам понадобятся:

Ctrl+b c - создать новое окно;
Ctrl+b w - выбрать окно из списка;
Ctrl+b 0-9 - открыть окно по его номеру;
Ctrl+b , - переименовать текущее окно;
Ctrl+b % - разделить текущую панель по горизонтали;
Ctrl+b \" - разделить текущую панель по вертикали;
Ctrl+b стрелка - перейти на панель, находящуюся в стороне, куда указывает стрелка;
Ctrl+b Ctrl+стрелка - изменить размер текущей панели;
Ctrl+b o - перейти на следующую панель;
Ctrl+b ; - переключаться между текущей и предыдущей панелью;
Ctrl+b x - закрыть текущую панель;
Ctrl+b [ - войти в режим копирования (подробнее ниже);
Ctrl+b ] - вставить из внутреннего буфера обмена tmux;
Ctrl+b d - отключится от текущей сессии;
Ctrl+b : - открыть командную строку.

Ctrl+b d (Подробней) После отключения все запущенные в сессии программы продолжат работать и вы всегда сможете снова подключиться и посмотреть их вывод. Это удобно при подключении по SSH, которое всегда может разорваться.

Также можно создать сессию командой new-session и задать ей удобное имя: tmux new-session -s testname

Разделение окна панели:

  1. Чтобы выполнить разделение по горизонтали нажмите Ctrl+b отпустите, а затем нажмите Shift + “
  2. Аналогично можно разделить панель по вертикали, нажав Ctrl+b, а затем Shift+%
  3. Размер активной панели можно менять нажав Ctrl+b, а потом Ctrl и стрелка (удерживаем Ctrl чтобы была возможность несколько раз отредактировать размер окна)

Кастомизация TMUX

Делаем красивый терминал zsh

Инструкция

⤧  Previous post Команды PostgreSQL