15 функций Bash, которые стоит добавить в .bashrc
Со временем понимаешь, что половину времени в терминале ты пишешь одно и тоже. Пара небольших функций в .bashrc экономит часы. У каждого эти функции обычно индивидуальны, но возможно этот список раскроет тебе глаза на что-то новое.
читать первым в телеграм читать первым в макс
Создать директорию и сразу в неё перейти
mkcd() {
mkdir -p "$1" && cd "$1"
}
Подняться на несколько уровней вверх
up() {
local d=""
for ((i=1;i<=$1;i++)); do
d+="../"
done
cd "$d"
}
Быстро найти файл
ff() {
find . -type f -iname "*$1*"
}
Найти директорию
fd() {
find . -type d -iname "*$1*"
}
Найти процесс
psg() {
ps aux | grep -i "$1" | grep -v grep
}
Посмотреть последние команды
h() {
history | tail -n "$1"
}
Поиск по истории
hg() {
history | grep "$1"
}
Узнать размер директории
dirsize() {
du -sh "$1"
}
Универсальная распаковка архивов
extract() {
if [ -f "$1" ]; then
case "$1" in
*.tar.bz2) tar xjf "$1" ;;
*.tar.gz) tar xzf "$1" ;;
*.bz2) bunzip2 "$1" ;;
*.rar) unrar x "$1" ;;
*.gz) gunzip "$1" ;;
*.tar) tar xf "$1" ;;
*.tbz2) tar xjf "$1" ;;
*.tgz) tar xzf "$1" ;;
*.zip) unzip "$1" ;;
*.7z) 7z x "$1" ;;
*) echo "unknown archive" ;;
esac
fi
}
Быстрый HTTP-сервер из текущей папки
serve() {
python3 -m http.server "${1:-8000}"
}
Узнать свой внешний IP
myip() {
curl -s ifconfig.me
}
Узнать IP домена
ipinfo() {
dig +short "$1"
}
Показать открытые порты
ports() {
ss -tuln
}
Полная очистка терминала
cls() {
clear && printf '\e[3J'
}
Безопасный rm
rm() {
ls -FCsd -- "$@"
read -p 'Delete? [y/N] ' ans
if [ "$ans" = "y" ]; then
command rm -rf -- "$@"
fi
}
С удалением еще можно сделать аналог корзины, добавив простое копирование в какой-нибудь временный каталог, который автоматически зачищается спустя какое-то время, например в /tmp.
The end. Кидай в комменты, какие функции используешь ты, будет полезно.