bashrc_trick

bashrc trick

Алиас алиасов. Открываем на редактирование .bashrc, и после сохранения атоматом перечитываем его же

# Так
alias='$EDITOR ~/.bashrc ; source ~/.bashrc'
 
# Либо так
alias bashrc="vim ~/.bashrc && source ~/.bashrc
alias s=less
alias mount='mount |column -t'

Автоматический ls при смене директории

cd() {
    builtin cd "$@" && ls -lA
}

Выполнение определенных команд, без подстановки sudo

# if user is not root, pass all commands via sudo
if [ $UID -ne 0 ]; then
    alias reboot='sudo reboot'
    alias update='sudo apt-get upgrade'
fi

Функция поиск по history

# grep command history. 
function gh () {
  if [ -z "$1" ]; then
    echo "Bad usage. try:gh some_string";
  else
    history | egrep $* |grep -v "gh $*"
  fi
}
# give only recent history be default
alias h='history 100'

Смотрим на последние обновления файлов

alias lst='ls -ltr'
# Show text file without comment
alias nocomment='grep -Ev '''^(#|$)''''

Вывод размера директорий

# Show directory size
alias du1='du -h -d 1'

Резервное копирование из текущей директории

bu() { cp -r $@ $@.backup-`date +%y%m%d`; }

Используем:

bu filename

То же самое, + ведение журнала резервных копий:

bu() { cp -r $@ $@.backup-`date +%y%m%d`; echo "`date +%Y-%m-%d` backed up $PWD/$@" >> ~/.backups.log; }


Создание стандартного файлового пути

export mydir="/standard/target/directory/"

И например копируем туда файлы

cp /source/dir $mydir

file tree

alias tree="find . -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g'"

Универсальный распаковщик архивов

extract () {
   if [ -f $1 ] ; then
       case $1 in
           *.tar.bz2)   tar xvjf $1    ;;
           *.tar.gz)    tar xvzf $1    ;;
           *.bz2)       bunzip2 $1     ;;
           *.rar)       unrar x $1     ;;
           *.gz)        gunzip $1      ;;
           *.tar)       tar xvf $1     ;;
           *.tbz2)      tar xvjf $1    ;;
           *.tgz)       tar xvzf $1    ;;
           *.zip)       unzip $1       ;;
           *.Z)         uncompress $1  ;;
           *.7z)        7z x $1        ;;
           *)           echo "don't know how to extract '$1'..." ;;
       esac
   else
       echo "'$1' is not a valid file!"
   fi
 }

Не забываем после каждого изменения .bashrc выполнить source ~/.bashrc. Теперь, чтобы распаковать первый попавшийся архив выполним

extract ArchName

Смотрим что сколько занимает места на харде

alias diskspace="du -Sh | sort -n -r | more"

Показывает размер директорий в текущем каталоге

alias folders="find . -maxdepth 1 -type d -print | xargs du -skh | sort -rn"
#Grabs the disk usage in the current directory
alias usage='du -ch | grep total'
 
#Gets the total disk usage on your machine
alias totalusage='df -hl --total | grep total'
 
#Shows the individual partition usages without the temporary memory values
alias partusage='df -hlT --exclude-type=tmpfs --exclude-type=devtmpfs'
 
#Gives you what is using the most space. Both directories and files. Varies on
#current directory
alias most='du -hsx * | sort -rh | head -10'

Вывод размеров файлов/директорий, отсортированных от наибольшего к наименьшему, с удобочитаемыми размерами

function dus () {
du --max-depth=0 -k * | sort -nr | awk '{ if($1>=1024*1024) {size=$1/1024/1024; unit="G"} else if($1>=1024) {size=$1/1024; unit="M"} else {size=$1; unit="K"}; if(size<10) format="%.1f%s"; else format="%.0f%s"; res=sprintf(format,size,unit); printf "%-8s %sn",res,$2 }'

vim

# Включаем нумерацию по умолчанию
alias vim='vim "+set number"'
 
# делаем из vi vim
alias vi=vim
# To open last edited file
alias lvim="vim -c "normal '0""
 
# тоже самое, но намного короче
alias lvim="!vim"

Создаем файл k.txt, вносим в него все, что не вмещает встроенная в голове память и создадим функцию forgot

function forgot ()
{
  cat /root/k.txt
}

Простой генератор паролей

genpasswd() {
	local l=$1
       	[ "$l" == "" ] && l=20
      	tr -dc A-Za-z0-9!@%*_ < /dev/urandom | head -c ${l} | xargs
}

Используем

genpasswd 16

Для работы данного скрипта, в системе должны присутствовать следующие пакеты

apt install jq
apt install ansiweather

Также следует получить бесплатный API key c newsapi.org. Так же смотрим руководство по ansiweather

getnews () {
  curl https://newsapi.org/v2/top-headlines -s -G \
    -d sources=$1 \
    -d apiKey=0f0e382cfb394b1c882479106c2b55ce \
    | jq '.articles[] | .title'
}
startmyday () {
  echo "Good morning, Nevvad."
  echo "\nUpdating system..."
  apt update && apt upgrade -y
  echo "\nThe weather right now:"
  ansiweather -l Moscow,RU -u metric
  echo "\nNews from the BBC:"
  getnews bbc-news
  echo "\nNews from the Washington Post:"
  getnews the-washington-post
  echo "\nNews from Hacker News:"
  getnews hacker-news
}

Погода

alias rain='curl -4 http://wttr.in/Moscow'

.bashrc

  • bashrc_trick.txt
  • Последнее изменение: 2021/06/08 17:59
  • admin