ㅤ
Со временем понимаешь, что половину времени в терминале ты пишешь одно и тоже. Пара небольших функций в
.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. Кидай в комменты, какие функции используешь ты, будет полезно.
Источник: https://boreal.social/post/15-practical-bash-functions-i-use-in-my-bashrc (обсуждения на реддите)
🛠 #bash
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog