Настольная книга по Linux: различия между версиями

Содержимое удалено Содержимое добавлено
Строка 46:
 
=== Алиасы и функции .*shrc ===
<source lang="bash">
* '''alias psgrep='ps aux | grep --color $(echo $1 | sed «s/^\(.\)/[\1]/g»)'''' — Поиск запущеных приложений по имени (не оптимально, нужен круче)
# Поиск запущеных приложений по имени
* '''alias psgrep='ps aux | egrep -i $1'''' — безкостыльный вариант.
alias psgrep='ps aux | grep --color $(echo $1 | sed «s/^\(.\)/[\1]/g»)'
* '''alias dirsz='du -s `pwd`/* | sort -nr | cut -f 2- | while read a; do du -sh «$a»; done'''' — покажет отсортированный размеру список директорий в `pwd`
# или
* '''alias sharethis='python -m SimpleHTTPServer'''' — Расшаривание папки по http порт 8000, с помощью сервера python
alias psgrep='ps aux | egrep -i $1'
* '''alias hh='history | egrep -i''' — Поиск в истории команд по ключевому слову без учета регистра
 
* '''alias p='ping 8.8.8.8 -A'''' — Пинг публичного dns-сервера
# Список отсортированных по размеру директорий в текущей рабочей директории
* '''myip(){ lynx --dump 2ip.ru | egrep -o <nowiki>'([[:digit:]]{1,3}\.){3}[[:digit:]]{1,3}' | uniq</nowiki>; }''' — Выводит внешний ip-адрес вашего интернет-шлюза
* '''alias dirsz='du -s `pwd`/* | sort -nr | cut -f 2- | while read a; do du -sh «$a»; done'''' — покажет отсортированный размеру список директорий в `pwd`
* '''myip(){ curl -s checkip.dyndns.org | sed 's/[^0-9.]//g' }''' — менее костыльный вариант
 
* '''myip(){ curl ifconfig.me }''' — бескостыльный вариант
# Открыть доступ к директории через HTTP-сервер в библиотеке Python.
* '''Убивает процессы по имени программы (например, ki skype nmap firefox):'''
# Сервер слушает порт 8000.
<blockquote><syntaxhighlight lang="bash">ki(){
alias sharethis='python -m SimpleHTTPServer'
[[ $1 = '' ]] || [[ $1 = '-h' ]] || [[ $1 = '--help' ]] && echo "usage: $0 <program1..programN>" && return 1
 
for process in $*; do
* '''alias hh='history | egrep -i''' —# Поиск в истории команд по ключевому слову без учета регистра
{ kill -9 `pidof $process` 2>/dev/null && echo "$process" killed; } ||
alias hh='history | egrep -i'
{ echo $process not found: seems like nothing to kill; }
 
done
* '''alias p='ping 8.8.8.8 -A'''' —# Пинг публичного dns-сервера
}</syntaxhighlight></blockquote>
alias p='ping 8.8.8.8 -A'
* '''gr(){ egrep -v '^#|^$' $1; }''' — Вывести в стандартный вывод файл без комментариев и пустых строк (например, gr /etc/fstab)
 
* '''alias pwg='pwgen -cnB 8 10 | while read PASS; do echo -n -e «$PASS\t»; echo -n «$PASS» | md5sum | cut -f1 -d" «; done'''' — Генерирование 10-ти запоминаемых восьмизначных паролей (pwgen -B 8 10), c цифрами (-n), с буквами из верхнего регистра (-с) и хэш md5 к нему (linux only). Хэш подходит для mysql
# Выводит внешний IP-адрес вашего интернет-шлюза
* '''Функция, эмулирующая поведение redhat’овской утилиты service (особенно удобна в сочетании с zsh):'''
* '''myip(){ lynx --dump 2ip.ru | egrep -o <nowiki>'([[:digit:]]{1,3}\.){3}[[:digit:]]{1,3}' | uniq</nowiki>; }''' — Выводит внешний ip-адрес вашего интернет-шлюза
<blockquote><syntaxhighlight lang="bash">service(){
# или
init_path="/etc/rc.d"
* '''myip(){ curl -s checkip.dyndns.org | sed 's/[^0-9.]//g' }''' — менее костыльный вариант
if [ -f ${init_path}/${1} ]; then service=${1}
# или
if [ "$uid" != "0" ] && {command -v sudo 2>&1 >/dev/null;}; then
myip(){ curl ifconfig.me }
sudo_cmd="sudo"
 
fi
# Убить процессы по имени исполняемого файла
fi
ki() {
case "$2" in
[[ $1 = '' ]] || [[ $1 = '-h' ]] || [[ $1 = '--help' ]] && echo "usage: $0 <program1..programN>" && return 1
force-restart)
for process in $*; do
{ kill -9 `pidof $process` 2>/dev/null && echo "$process" killed; } ||
{ echo $process not found: seems like nothing to kill; }
done
}
 
* '''gr(){ egrep -v '^#|^$' $1; }''' — Вывести в стандартный вывод файл без комментариев и пустых строк (например, gr /etc/fstab)
# Пример: gr /etc/fstab
gr(){ egrep -v '^#|^$' $1; }
 
* '''alias pwg='pwgen -cnB 8 10 | while read PASS; do echo -n -e «$PASS\t»; echo -n «$PASS» | md5sum | cut -f1 -d" «; done'''' —# Генерирование 10-тии запоминаемых восьмизначных паролей (pwgen -B 8 10), c цифрами (-n), с буквами из верхнего регистра (-с), и хэшвычислить md5MD5-хеш к нему (linux only). Хэш подходит для mysql
alias pwg='pwgen -cnB 8 10 | while read PASS; do echo -n -e "$PASS\t"; echo -n "$PASS" | md5sum | cut -f1 -d" "; done'
 
# Эмуляция утилиты service в Red Hat
service()
{
init_path="/etc/rc.d"
if [ -f ${init_path}/${1} ]; then service=${1}
if [ "$uid" != "0" ] && {command -v sudo 2>&1 >/dev/null;}; then
sudo_cmd="sudo"
fi
fi
case "$2" in
force-restart)
${sudo_cmd} ${init_path}/${service} force-restart;;
force-reload)
${sudo_cmd} ${init_path}/${service} force-reload;;
reload)
${sudo_cmd} ${init_path}/${service} reload;;
setup)
${sudo_cmd} ${init_path}/${service} setup;;
start)
${sudo_cmd} ${init_path}/${service} start;;
stop)
${sudo_cmd} ${init_path}/${service} stop;;
restart)
${sudo_cmd} ${init_path}/${service} restart;;
setup)
${sudo_cmd} ${init_path}/${service} setup;;
*)
echo "usage: $0 <service name> <action>" ;;
esac
}
}</syntaxhighlight></blockquote>
 
*# '''Делает скриншотснимок участка экрана, выделенного мышью, и отправляет его на хостинг изображений:'''
<blockquote><syntaxhighlight lang="bash">screenshot(){
screenshot() {
scrot -s "%Y-%m-%d_$wx$h.png" -e 'ompload $f ; rm $f'
}
}</syntaxhighlight></blockquote>
</source>
 
=== Скрипты ===