Сводки с прода и Шпаргалки

Ответить
ya
^-^
Сообщения: 3310
Зарегистрирован: 16 дек 2021, 19:56

Сводки с прода и Шпаргалки

Сообщение ya »

Сводки с прода и Шпаргалки

Навигация и управление файлами

Код: Выделить всё

# 1. Создать директорию и сразу в нее перейти
mkcd() {
  mkdir -p "$1" && cd "$1"
}

# 2. Подняться на N уровней вверх. Если аргумент не передан, поднимаемся на 1 (защита от syntax error)
up() {
  local d=""
  local limit="${1:-1}"
  for ((i=1; i<=limit; i++)); do d+="../"; done
  cd "$d"
}

# 3. Быстрый поиск файла по имени в текущей директории
ff() {
  find . -type f -iname "*$1*"
}

# 4. Быстрый поиск директории по имени
fd() {
  find . -type d -iname "*$1*"
}

# 5. Узнать размер директории. Если путь не передан, считаем текущую (.)
dirsize() {
  du -sh "${1:-.}"
}
Работа с процессами и историей

Код: Выделить всё

# 6. Найти процесс, отсекая из вывода сам grep
psg() {
  ps aux | grep -i "$1" | grep -v grep
}

# 7. Посмотреть N последних введенных команд (по умолчанию 10)
h() {
  history | tail -n "${1:-10}"
}

# 8. Быстрый поиск по истории команд
hg() {
  history | grep "$1"
}
Сеть и порты

Код: Выделить всё

# 9. Поднять HTTP-сервер в текущей папке (по умолчанию порт 8000)
serve() {
  python3 -m http.server "${1:-8000}"
}

# 10. Узнать свой внешний IP-адрес
myip() {
  curl -s ifconfig.me
}

# 11. Узнать IP-адрес нужного домена
ipinfo() {
  dig +short "$1"
}

# 12. Показать все открытые слушающие порты
ports() {
  ss -tuln
}
Система и безопасность

Код: Выделить всё

# 13. Полная очистка терминала вместе с буфером прокрутки
cls() {
  clear && printf '\e[3J'
}

# 14. Универсальная распаковка архива с проверкой существования файла
extract() {
  if [ -f "$1" ]; then
    case "$1" in
      *.tar.bz2|*.tbz2) tar xjf "$1" ;;
      *.tar.gz|*.tgz)   tar xzf "$1" ;;
      *.bz2)            bunzip2 "$1" ;;
      *.rar)            unrar x "$1" ;;
      *.gz)             gunzip "$1" ;;
      *.tar)            tar xf "$1" ;;
      *.zip)            unzip "$1" ;;
      *.7z)             7z x "$1" ;;
      *)                echo "Неизвестный архив" ;;
    esac
  else
    echo "Файл '$1' не найден"
  fi
}

# 15. Безопасный rm: защита от пустого вызова и регистронезависимое подтверждение (Y/y)
rm() {
  if [ -z "$1" ]; then
    command rm
    return
  fi
  ls -FCsd -- "$@"
  read -p 'Удалить безвозвратно? [y/N] ' ans
  if [[ "$ans" =~ ^[Yy]$ ]]; then
    command rm -rf -- "$@"
  fi
}
Ответить