bash - управление
Быстрые команды терминала линукс (Mac). Управление клавишами.
Справляемся с зависаниями.
Погнали:
Быстрые комманды терминала линукс
Переходы по строкам
Сочетания клавиш | Дейстиве |
---|---|
Ctrl + A | Переход к началу строки в терминале |
Ctrl + E | Переход в конец строки |
CTRL + B | Аналог стрелки назад |
Ctrl + F | Аналог стрелки вперед |
ALT + B | перемещение на слово назад |
ALT + F | перемещение на слово вперед |
Вырезание вставка в терминале
Сочетания клавиш | Дейстиве |
---|---|
CTRL + W | вырезать последнее слово |
Ctrl + U | вырезает все от курсора до начала строки <-- |
Ctrl + K | вырезает все от курсора до конца строки --> |
Ctrl + Y | Вставляет ранее вырезанный текст. |
Редактирование текста
Сочетания клавиш | Дейстиве |
---|---|
ALT + u | uppercase Переводит весь текст после каретки в заглавный регистр прописные |
ALT + l | lowercase Переводит весь текст после каретки в регистр строчных букв |
ALT + c | capitalize Переводит весь текст после каретки в заглавный регистр |
Очистка терминала
По сути это аналог команды clear
.
Сочетания клавиш | Дейстиве |
---|---|
CTRL + L | очистить терминал |
Зависание терминала
Многие привыкли использовать комбинацию Ctrl
+ S
для сохранения.
Однако после её использования в терминале, он часто зависает.
Чтобы вернуть его в нормальное состояние, нажмите комбинацию Ctrl
+ Q
.
Зависший терминал в сессии ssh
Иногда в ssh сессии зависает терминал в том случае если вдруг удаленная машина зависла или произошел обрыв самой сети.
Для этого (в английской раскладке) по очереди нажимаем:
Enter
, ~
, .
(Клавиша "Enter", "Тильда", "Точка")
Это принудительно заставит ssh
клиента оборвать соединение с сервером.
Полный список команд можно посмотреть нажав по очереди:
Enter
, ~
, ?
Буфер обмена
Работа с буфером обмена производится утилитой xclip. Так то таких утилит много, но гугление говорит, что чаше всего используют эту.
Установка
# You can install xclip using `apt-get`
apt-get install xclip
# or `pacman`
pacman -S xclip
# or `dnf`
dnf install xclip
Настройка alias
Я использую алиасы из аналогичной програмы под MacOs pbcopy
и pbpaste
.
Это я делаю чтобы не заучивать касномный alias
.
Вставляем alias
в ~/.bash_aliases
# Alias for xcopy
if [ -n "$(type -p xclip)" ]
then
alias pbcopy='xclip -selection clipboard'
alias pbpaste="xclip -selection clipboard -o"
alias clipboard='if [ -p /dev/stdin ]; then xclip -in; fi; xclip -out'
fi
Ну или сразу в .bashrc
или .zshrc
,
но для кастомных алиасов рекомендуется подключать свой файл ~/.bash_aliases
Использование
Пример использвания:
$ echo foo | pbcopy
$ pbpaste
foo
# Copy
$ date | clipboard
Sat Dec 29 14:12:57 PST 2018
# Paste
$ date
Sat Dec 29 14:12:57 PST 2018
# Chain
$ date | clipboard | wc
1 6 29
Функия помощник
уже по желанию
_copy(){
cat | xclip -selection clipboard
}
_paste(){
xclip -selection clipboard -o
}
- Хороший файлик помощник для копирования вставки cb
alacritty
Если терминал не пробрасывает цвет по ssh
можно добавить на сервер в файл rc
шелла.
# try export xterm for alacritty
# https://stackoverflow.com/questions/12345675/screen-cannot-find-terminfo-entry-for-xterm-256color
export TERM=xterm-xfree86
Shell скрипты удобства
Ниже всякие удобности, которые иногда пригождаются.
Сбос терминала
reset
Узнать внешний ip адресс
Показать только внешний IP адрес:
curl ifconfig.me
Показать IP, провайдера, локацию.
curl 2ip.ua
Прогноз погоды прямо в терминале
curl wttr.in/moscow
Введите команду curl wttr.in/<нужный город>
и получите красивую таблицу
с прогнозом погоды:
Не закрывать терминал после выполнения bash скрипта
Иногда требуется запустить какую то команду в shell скрипте, так, чтобы она запускалась двойным кликом по ярлычку в проводнике. Так вот случается, что при таком клике, сам скрипт отрабатывается, но окна консоли не появляется.
#!/bin/bash
# пример файла
echo "Привет из баш скрипта"
Не удобно. Чтоб появлялось окно консоли можно в конце скрипта дописать $SHELL
#!/bin/bash
# пример файла
echo "Привет из баш скрипта"
$SHELL
Теперь будет открываться окно терминала в котором будет видно выполнене скрипта.
Запуск Nautilus через терминал
При запуске наутилуса из терминала проявляется необычный глюк. Если закрыть окно терминала, то так же закроется и окно наутилуса.
Решение запуск через nohup
In order to avoid nasty warnings in my terminal I use nohup
.
To have it detached from my terminal I'm adding &
at the end of my command. I also use the -w
flag to open in a new window.
nohup nautilus -w . &
Замена стокового тетминала
Для заменты стокового терминала. Например с bash на zsh
chsh -s $(which zsh)
получить расширение и имя файла
#!/bin/bash
FILE="bashdays.gzip"
FIRST="${FILE%.*}"
SECOND="${FILE##*.}"
echo $FIRST
echo $SECOND
- Символы
%.*
означает отсекание всего после точки. - Символы
##*.
ну а тут наоборот, отсекание всего до точки.
Ссылки по теме
- Репа "Искусство командной строки", советы по прокачке скила
- The Book of Secret Knowledge
- repo со всякими примерчиками shell скриптов