Коротыши
Здесь буду собирать короткие HOWTO, которые никогда не получается вспомнить, когда надо.
Мышь в консоли linux
aptitude install gpm
Не распространяются приложения через GPO
Проверить поддержку русского для non-unicode приложений.
Автоматический выбор самого быстрого репозитория Ubuntu
/etc/apt/source.list
deb mirror://mirrors.ubuntu.com/mirrors.txt quantal main restricted universe multiverse
deb mirror://mirrors.ubuntu.com/mirrors.txt quantal-updates main restricted universe multiverse
Пересканировать устройство
Например SCSI-диск виртуальной машины, после увеличения размера на лету.
echo 1 > /sys/block/sda/device/rescan
SSH + AgentForwarding + sudo
Чтобы ключи продолжали пробрасываться через SSH, даже когда меняем пользователя, надо добавить в /etc/sudoers (через visudo, естественно), строку:
Defaults env_keep+=SSH_AUTH_SOCK
Прокрутка GNU screen
Чтобы работала прокрутка с помощью колесика мыши в GNU screen, нужно добавить в ~/.screenrc следующую строку (где xterm* - ваш текущий $TERM):
termcapinfo xterm* ti@:te@
Прокрутка в Tmux
Ctrl+B :
set -g mouse on
Подключиться к процессу из другого терминала
Таким образом удобно “переносить” длительные процессы, например резервное копирование, в screen/tmux, если вы забыли это сделать сразу. Из screen/нужного TTY:
reptyr PID
Если вы ловите “permission denied”, попробуйте
echo 0 > /proc/sys/kernel/yama/ptrace_scope
С версии 0.6 появился ключ -T
, который делает “TTY-stealing” -
ищет эмулятор терминала для этого процесса и переносит все процессы
reptyr -T PID
Модуль Apache для проброса IP через Nginx
mod_rpaf
Показать файл без комментариев и пустых строк
cat /path/to/file | egrep -v "(^\s*#.*|^$)"
Восстановление прав в /home
Когда твой коллега снес права в /home может помочь такая вот нехитрая конструкция
cd /home/ && for f in !(|.); do chown $f:$f -R $f; done
Монтирование SSHFS
sshfs -p %порт% -o allow_other /directory user@%получатель%:/directory/
AppArmor aliases
/etc/apparmor.d/tunables/alias
alias /var/lib/mysql/ -> /new/path/mysql/,
Точка в именах пользователей Jenkins
В /etc/default/jenkins добавить в аргументы
JAVA_ARGS="-Dhudson.security.HudsonPrivateSecurityRealm.ID_REGEX=[a-zA-Z0-9_.-]+"
Вынимаем секреты из Jenkins
Через тулы разработчика получаем шифрованное значение и через запуск скриптов расшифровываем
println(hudson.util.Secret.decrypt("{XXXXXXXXXXX}"))
Вынимаем все agent labels из Jenkins
def allLabels = []
Jenkins.instance.nodes.each { node ->
node.assignedLabels.each { label ->
if (label as String != node.name) {
allLabels += label
}
}
}
println allLabels.unique().join('\n')
Вынимаем все агенты из Jenkins по label
def hostNames(label) {
def nodes = []
jenkins.model.Jenkins.get().computers.each { c ->
if (c.node.labelString.contains(label)) {
nodes.add(c.node.selfLabel.name)
}
}
return nodes
}
Отключаем кнопки на клавиатуре
xev -event keyboard
жмем кнопку, ищем keycode, затем
xmodmap -e 'keycode <keycode>='
Примеры:
PgUp
xmodmap -e 'keycode 112='
PgDown
xmodmap -e 'keycode 117='
А если нужна тяжелая артиллерия, можно воспользоваться решением через uvdev
Цветной PS1 может ломать терминал
Нужно экранировать символы, чтобы readline
мог пересчитать длину строки корректно
PS1='\[\e[38;5;202m\][\u@\h \W]\$ \[\e[m\]'
Если ▯▯▯ в тексте
Вот этот набор шрифтов скорее всего решит проблему
noto-fonts noto-fonts-cjk noto-fonts-emoji noto-fonts-extra
Bash history
Отключение логирования команд начинающихся с пробела, игнорирование дублирующихся команд и то и другое соответственно
HISTCONTROL=ignorespace
HISTCONTROL=ignoredups
HISTCONTROL=ignoreboth