Хитрости BASH и тонкости его настройки
BASH (bourne again shell) — командная среда, используемая по умолчанию во многих современных Linux-дистрибутивах. Если используется ОС из семейства Linux, то, скорее всего, используется и bash. Ниже приведены команды, опции настройки и разные трюки, придающие пользователю терминала более комфортную среду для работы (в BASH).
Показать
Настройка автодополнения и поиска в ~/.inputrc |
Для одинарного нажатия Tab при автодополнении в ~/.inputrc (или в /etc/inputrc для всех пользователей)
set show-all-if-ambiguous On
Вывод по клавишам ↑ и ↓ из истории только тех команд, которые начинаются с уже набранных букв
"\e[A": history-search-backward "\e[B": history-search-forward
Тонкости настройки ~/.bashrc |
Для записи истории команд сразу, а не только при выходе из шела, необходимо добавить
shopt -s histappend export PROMPT_COMMAND="history -a"
Для запрета записи дубликатов команд в историю
export HISTCONTROL="ignoredups"
Можно запретить логирование определённых команд
export HISTIGNORE="ls:[bf]g:exit"
Список исключений — через двоеточие, можно использовать шаблоны.
Эвристическое исправление ошибок а именах директорий
shopt -s cdspell
Звуковой сигнал при запуске оболочки
export PROMPT_COMMAND="echo -ne '\a'"
можно использовать по разнному, например — включить мигание окна KiTTY.
Для того, чтобы не разрывать многострочные команды, используется
shopt -s cmdhist
Если вписать
export HISTTIMEFORMAT='%d %h %Y %H:%M:%S '
то в истории будут записаны дата и время выполнения команды.
Использование регистронезависимых масок файлов
shopt -s nocaseglob
Тогда, к примеру
ls *.jpg
выведет не только *.jpg, но и *.JPG.
Хитрости BASH |
Возврат в предыдущую директорию
cd -
При нажатии ESC и сразу за этим . (в терминологии *nix — Meta .) в строку подставится последний использованный объект. Например, если первой строкой набрано
ls /home/smbdy/logs
во второй наберите
rm ESC .
получите
rm /home/smbdy/logs
Реализация ввода пользовательского пароля с проверкой:
echo -n "Пользователь: " read username echo -n "Пароль: " read -s password echo -en "\nПовторите пароль: " read -s password2 && echo -e "\n" if [ "$password" != "$password2" ]; then echo -e "Пароли не совпадают.\nЗавершение работы." && exit 1 fi echo -n "Всё верно, $username. Продолжаем." && echo -e "\n"
Копирование config.cfg в config.cfg-old
cp config.cfg{,-old}
Узнать, какой шел запущен
echo $0
Строка вида ^строка1^строка2 запустит предыдущую команду с заменой строки1 на строку2
$ ehco foo bar baz bash: ehco: command not found $ ^ehco^echo foo bar baz
Переименование файла в такой-же, но с префиксом
mv long-file-name.txt prefix-!#^
Например, команда
mv file-with-long-name-typed-with-tab-completion.txt old-!#^
переименует ’file-with-long-name-typed-with-tab-completion.txt’ в файл с именем ’old-file-with-long-name-typed-with-tab-completion.txt’.
Функция быстрого переименования расширений
renamer() { local fn for fn in *."$1"; do mv "$fn" "${fn%.*}"."$2" done }
Пример: renamer doc txt — переименует все доки в txt’шники в текущем каталоге.
Если определить функцию command_not_found_handle (), то можно обрабатывать ситуацию «команда не найдена». До выдачи сообщения о не обнаруженной команде bash поместит в $1 введенную строку и выполнит код этой функции. При этом, если функция возвращает код завершения 127, то сообщение о ненайденной команде будет выведено на экран.
Для добавления алиаса с автоприменением определяем новый алиас в ~/.bash_aliases
alias editalias=’edit ~/.bash_aliases && source ~/.bash_aliases’
Имейте в виду, что для работы алиасов из этого файла он должен быть явно включён в вашем ~/.bashrc:
[ -f ~/.bash_aliases ] && source ~/.bash_aliases
|

Хаки и трюки
Виртуалки
Сисьадминство
BASH-скрипты
Парусные суда
Праздники
Моё чтиво
Игра KSP
ArchLabs 2018.02
Новой Зеландии —
ArchLabs Linux 2018.02, основанный на минимальной сборке
Arch Linux с оконным менеджером Openbox.
CrunchBang Linux, достаточно легковесный, использующий оконный менеджер
Openbox. После завершения разработки и поддержки проекта в начале 2015 года ряд пользователей Crunchbang довольно быстро «запилили» несколько проектов, среди которых были, например —
BunsenLabs Linux и #!++ CrunchbangPlusPlus. Ещё одна группа неустановленных лиц (последовалелей Crunchbang — разработчиков) вместо использования продолжительного цикла
Debian взяли за основу 
Иногда требуется записать все, что вы вводите в терминале, для того чтобы самому запомнить, что и как делали или передать кому-то другому для анализа или обучения, или просто записать терминальную сессию вместо записи видео с захватом экрана. Все привыкли пользоватся скриншотами и записью видео с экрана. Есть даже мануалы, как делать скрины в голой консоли.
CyanogenMod 13.0 RC1
CyanogenMod 13.0 RC1. Сначала операционку (или прошивку), предназначенную для замены проприетарных предустановленных версий
Android, пилила команда Cyanogen Team, затем разработку коммерциализировали, создав контору Cyanogen Inc., закрывшуюся 31 декабря 2016 года (вероятно — поглощённую конкурентом-гигантом). Но разрабы продолжили развивать проект под новым именем
LineageOS.
LineageOS 13.0
Для тестовых задач создал две виртуалки в
Виртуалбоксе — сервер и клиент. Обе виртуалки ставил с образа диска
Debian 9.3.0 Netinst CD с архитектурой amd64)

Bio-Linux 8.0.7
Bio-Linux 8.0.7. Дистрибутив создан с целью предоставления бесплатной вычислительной платформы для для разворачивания биоинформатических рабочих станций и первоначально разработан


DNALinux 0.50p
DNALinux 0.50p. Дистрибутив родом из
Аргентины, основан на Live-CD
SLAX, который, в свою очередь, основан на
Slackware 10.1 (следующая версия 0.592 — на
Xubuntu 8.04). Создатели — 
Easy OS 0.7 (Pyro)
Puppy Linux Барри Каулера —
Easy OS 0.7 (Pyro).
Quirky 8.4 (Xerus)
Quirky 8.4 (Xerus).