Файлы конфигурации bash
Модератор: Модераторы разделов
Файлы конфигурации bash
Здравствуйте,
Ребят, если не жалко - поделитесь, пожалуйста, своими версиями файлов настройки bash - .bash_profile и .bashrc. Кто какие удобные алиасы использует либо может какие штуки еще интересные - просто для собственного развития.
Буду признателен.
Ребят, если не жалко - поделитесь, пожалуйста, своими версиями файлов настройки bash - .bash_profile и .bashrc. Кто какие удобные алиасы использует либо может какие штуки еще интересные - просто для собственного развития.
Буду признателен.
Если отладка - это устранение ошибок, то программирование - это их создание ...
Re: Файлы конфигурации bash
В ~/.bashrc алиасы для yum/dnf чтобы не переучиваться:
alias yupdate='sudo dnf -b upgrade --refresh'
alias yinstall='sudo dnf -b install'
alias yremove='sudo dnf remove'
alias yclean='sudo dnf clean all'
alias ysearch='sudo dnf search'
alias yinfo='sudo dnf info'
alias ylist='sudo dnf list'
alias ybdep='sudo dnf builddep'
alias yprov='sudo dnf provides'
Алиас для отключения монитора через 5 секунд:
alias xstop='sleep 5; xset dpms force off'
Алиасы для копирования и перемещения файлов (с каталогами криво работает) через rsync. Удобно заменяет scp или просто если надо видеть скорость передачи и прогресс:
alias rsynccopy="rsync --partial --progress --append-verify -r -h "
alias rsyncmove="rsync --partial --progress --append-verify -r -h --remove-source-files"
Алиас для запуска процесса с наименьшим приоритетом
alias slow='nice -n 19'
Переменная чтобы увеличить историю команд терминала:
export HISTSIZE=100000
Текстовый редактор nano по умолчанию в консоли:
export EDITOR=/usr/bin/nano
Ну и для git чтобы сразу видеть в какой ветке находишься:
~/.git-shell.sh
Содержимое .git-shell.sh:
alias yupdate='sudo dnf -b upgrade --refresh'
alias yinstall='sudo dnf -b install'
alias yremove='sudo dnf remove'
alias yclean='sudo dnf clean all'
alias ysearch='sudo dnf search'
alias yinfo='sudo dnf info'
alias ylist='sudo dnf list'
alias ybdep='sudo dnf builddep'
alias yprov='sudo dnf provides'
Алиас для отключения монитора через 5 секунд:
alias xstop='sleep 5; xset dpms force off'
Алиасы для копирования и перемещения файлов (с каталогами криво работает) через rsync. Удобно заменяет scp или просто если надо видеть скорость передачи и прогресс:
alias rsynccopy="rsync --partial --progress --append-verify -r -h "
alias rsyncmove="rsync --partial --progress --append-verify -r -h --remove-source-files"
Алиас для запуска процесса с наименьшим приоритетом
alias slow='nice -n 19'
Переменная чтобы увеличить историю команд терминала:
export HISTSIZE=100000
Текстовый редактор nano по умолчанию в консоли:
export EDITOR=/usr/bin/nano
Ну и для git чтобы сразу видеть в какой ветке находишься:
~/.git-shell.sh
Содержимое .git-shell.sh:
Код: Выделить всё
source /usr/share/doc/git-core-doc/contrib/completion/git-completion.bash
alias g=git
complete -o default -o nospace -F _git g
source /usr/share/doc/git-core-doc/contrib/completion/git-prompt.sh
PS1='[\u@\h \W$(__git_ps1 " (%s)")]\$ '
- Bizdelnick
- Модератор
- Сообщения: 20791
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Файлы конфигурации bash
А зачем тут sudo?
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
Re: Файлы конфигурации bash
Имхо, держать кучу алиасов в .bashrc -- не самая лучшая практика.
У меня обычно открыто по 20-30 терминалов. И если мне нужно поменять что-нибудь в .bashrc -- это достаточно неудобно.
Поэтому я все функции и алиасы вынес в ~/scripts/ и добавил ~/scripts/ в PATH.
Теперь все изменения моментально вступают в силу во всех сессиях.
Из относительно интересных вещей:
.inputrc (осторожно я использую vi-mode в консоли, поэтому переносите аккуратно)
.bashrc
Вообще там ещё 100500 всяких мелких настроек размазано по разным файликам, начиная от .tmux.conf и .ssh/config, заканчивая rc.lua.
Когда-нибудь я таки выложу это всё на гитхаб. В один прекрасный день. Но не сегодня. Там всё же надо чуток причесать всё..
У меня обычно открыто по 20-30 терминалов. И если мне нужно поменять что-нибудь в .bashrc -- это достаточно неудобно.
Поэтому я все функции и алиасы вынес в ~/scripts/ и добавил ~/scripts/ в PATH.
Теперь все изменения моментально вступают в силу во всех сессиях.
Из относительно интересных вещей:
.inputrc (осторожно я использую vi-mode в консоли, поэтому переносите аккуратно)
Код: Выделить всё
"\e[A": history-search-backward
"\e[B": history-search-forward
# for vi mode
set editing-mode vi
$if mode=vi
set keymap vi-command
# # these are for vi-command mode
"\e[A": history-search-backward # arrow up
"\e[B": history-search-forward # arrow down
"\ep": yank-last-arg # bind to Alt-p
Control-l: clear-screen
set keymap vi-insert
# # these are for vi-insert mode
"\e[A": history-search-backward
"\e[B": history-search-forward
"\ep": yank-last-arg
Control-l: clear-screen
$endif
.bashrc
Код: Выделить всё
set -o vi
PROMPT_COMMAND='history -a; history -n'
export LS_COLORS='di=1:fi=0:ln=31:pi=5:so=5:bd=5:cd=5:or=31:mi=0:ex=32:*.rpm=90'
export LANG=en_US.UTF-8
export HISTCONTROL=ignoredups
export HISTTIMEFORMAT='%F %T '
export HISTIGNORE="&:[pl]s*:[bf]g:exit:[ ]*:history*:rm *:cd *:alsamixer*:ncmpcpp*:type *:pwd*:w:who*:du *:df *:cal *:mplayer*:turn*:"
export HISTSIZE=100500
alias grep='grep --color'
alias ls='ls --color=auto'
alias pingg='ping google.ru -c1'
alias mplayer='mplayer -fs'
alias wget='wget --referer="http://www.google.com" --user-agent="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6"'
# as I use tmux I'like to indicate in tab name if it is a local machine or no
settitle() {
printf "\033k$1\033\\"
}
ssh() {
settitle "$*"
command autossh "$@"
settitle "bash"
}
Вообще там ещё 100500 всяких мелких настроек размазано по разным файликам, начиная от .tmux.conf и .ssh/config, заканчивая rc.lua.
Когда-нибудь я таки выложу это всё на гитхаб. В один прекрасный день. Но не сегодня. Там всё же надо чуток причесать всё..
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
The more you believe you don't do mistakes, the more bugs are in your code.
Спасибо сказали:
Re: Файлы конфигурации bash
Чтобы повторно не выкачивалась база пакетов. Ну а для builddep так вообще обязательно.
- Bizdelnick
- Модератор
- Сообщения: 20791
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Файлы конфигурации bash
Я тоже не пользуюсь алиасами во избежание путаницы. А вот такое у меня, помимо прочего, в ~/.profile:
LIBVIRT_DEFAULT_URI, впрочем, для редхатообразных дистрибутивов вроде неактуально; по крайней мере некоторое время назад рулить libvirt всё равно можно было только от рута, для которого этот URI и так используется по умолчанию.
Код: Выделить всё
EDITOR=vim
export EDITOR
LIBVIRT_DEFAULT_URI=qemu:///system
export LIBVIRT_DEFAULT_URI
LESSOPEN='| /usr/share/source-highlight/src-hilite-lesspipe.sh %s'
LESS=' -R '
export LESS LESSOPEN
LIBVIRT_DEFAULT_URI, впрочем, для редхатообразных дистрибутивов вроде неактуально; по крайней мере некоторое время назад рулить libvirt всё равно можно было только от рута, для которого этот URI и так используется по умолчанию.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
Re: Файлы конфигурации bash
А зачем ты так делаешь?
Можно же просто export EDITOR=vim указать. Или там какие-то тонкости?
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
The more you believe you don't do mistakes, the more bugs are in your code.
- Bizdelnick
- Модератор
- Сообщения: 20791
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Файлы конфигурации bash
Тонкость в том, что это не .bashrc, а .profile, который общий для всех шеллов. Хотя такой экзотикой, которая не понимает снитаксиса export EDITOR=vim, я в качестве логин-шелла не пользуюсь, но порядок должон быть. ☺
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
Re: Файлы конфигурации bash
У меня обычные, можно сказать стандартные:
Из хоть сколько необычного в ~/.*rc (правда у меня не bash, а zsh, но в данном случае неважно):
"Дефолтная" маска 022, на мой взгляд, противоречит всей сути UNIX.
Последняя строка — борьба с "~0", "~1" при вставке в консоль. Помогает не всегда, правда, но всё равно с ней лучше чем без неё.
Код: Выделить всё
cp='cp -i'
df='df -h'
du='du -h'
ls='ls -h --color'
mv='mv -i'
rm='rm -i'
Из хоть сколько необычного в ~/.*rc (правда у меня не bash, а zsh, но в данном случае неважно):
Код: Выделить всё
umask 002
printf "\e[?2004l"
Последняя строка — борьба с "~0", "~1" при вставке в консоль. Помогает не всегда, правда, но всё равно с ней лучше чем без неё.
- Bizdelnick
- Модератор
- Сообщения: 20791
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Файлы конфигурации bash
Алиас для cp -i «стандартно» присутствует ЕМНИП только в альте и там люто бесит, ибо с ним не работает опция -f, и приходится без конца отвечать на глупые вопросы. Вообще интерактив в консоли — зло.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
Re: Файлы конфигурации bash
Ребят, меня, если честно, очень интересует, какие установки вы кладете в bash_profile, а какие в bashrc и почему. Разницу я понимаю, просто интересует ваше мнение. Видел много примеров, где все пихают в bash_profile, а bashrc отсутствует.
Если отладка - это устранение ошибок, то программирование - это их создание ...
Re: Файлы конфигурации bash
И ещё, увлекаясь алиасами, важно помнить, что в скриптах они не работают.
Re: Файлы конфигурации bash
Чуток дополнить.
Важно помнить, что в скриптах они не работают, если явно об этом не попросить.
Например стоит сделать шебанг таким и всё заработает:
Код: Выделить всё
#/bin/bash -i
Не уверен, что оно будет работать в экзотических шеллах.
Но в любом случае, полагаться на алиасы в скриптах -- зло. Но дебажить при переезда на новую систему может быть весело (:
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
The more you believe you don't do mistakes, the more bugs are in your code.
Re: Файлы конфигурации bash
.bash_profile
export TERM=xterm-256color
setfont /usr/share/kbd/consolefonts/ter-u22b.psfu
echo -e "\e[36mSetFont Terminus 22 bold\e[0m"
- рутовый терминал. Не помню, зачем там все это, но помню, что это нужно
export TERM=xterm-256color
setfont /usr/share/kbd/consolefonts/ter-u22b.psfu
echo -e "\e[36mSetFont Terminus 22 bold\e[0m"
- рутовый терминал. Не помню, зачем там все это, но помню, что это нужно
- Bizdelnick
- Модератор
- Сообщения: 20791
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Файлы конфигурации bash
Вот это точно не нужно. Эту переменную должен устанавливать сам эмулятор терминала.
А это лучше в глобальных настройках делать: кириллица в консоли. Дёргать setfont при каждом логине нет совершенно никакой нужды.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
Re: Файлы конфигурации bash
А это лучше в глобальных настройках делать: кириллица в консоли. Дёргать setfont при каждом логине нет совершенно никакой нужды.
На OpenSUSE/Leap все было точно так же (workaround-cyrillic-console), что вообще и не удивительно. Про способ по ссылке не знал, да и чего такого в дергании setfont - рядовая консольная команда. Мне было так проще. Впрочем, это все такие тонкости..
Вот это точно не нужно. Эту переменную должен устанавливать сам эмулятор терминала.
А он не хотел)) Тут же много чего еще.
- Bizdelnick
- Модератор
- Сообщения: 20791
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Файлы конфигурации bash
setfont работает глобально. Если Вы после загрузки войдёте другим пользователем, шрифт будет по умолчанию. Если тем, у которого прописан setfont, то шрифт изменится сразу на всех VC. Криво же.
Чушь.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
Re: Файлы конфигурации bash
Так мне и было желательно глобальное изменение шрифта, иначе в консоли текст только с увеличительным стеклом можно было прочитать. Но это да, какой-то мой косяк, не знаю, разбираться не стал. И я не спорю, просто вот так оно было, а т. к. консоль нужна раз в полгода, то setfont вполне устроил- оно тупо работает!