Cover Image

چند تا ترفند برای فایل bashrc

امین 17 سپتامبر 2023 زمان خواندن: 4 دقیقه

فایل ~/.bashrc در پوشه home هر یوزری وجود داره و کارش اینه که وقتی ترمینال رو باز میکنیم یک سری تنظیماتی رو اعمال کنه. مثلا رنگ نوشته ها، دستورهای مخفف، تعیین برخی پیش‌فرض ها و...

البته این فایل در /etc/skel/.bashrc به صورت پیش فرض وجود داره و هر وقت یک یوزر بسازید در دایرکتوری home اون یوزر کپی میشه.

من اینجا فایل bashrc خودم رو قرار میدم. اگر شما هم چیز جالبی داشتید در کامنتها ذکر کنید

#
# ~/.bashrc
#
# If not running interactively, don't do anything
[[ $- != *i* ]] && return

PS1='[\u@\h \W]\$ '

#increase command history to unlimmited
HISTSIZE=
HISTFILESIZE=
export HISTFILE=~/.bash_eternal_history
export PROMPT_COMMAND='history -a'

#change default editor to nano
export EDITOR=/usr/bin/nano

# ignore case, long prompt, exit if it fits on one screen, allow colors for ls and grep colors
export LESS="-iMFXR"

# must press ctrl-D 2+1 times to exit shell
export IGNOREEOF="2"

#extract easy
extract () {
   if [ -f $1 ] ; then
       case $1 in
           *.tar.bz2)   tar xjf $1 ;;
           *.tar.gz)    tar xzf $1    ;;
           *.bz2)       bunzip2 $1    ;;
           *.rar)       rar x $1      ;;
           *.gz)        gunzip $1     ;;
           *.tar)       tar xf $1     ;;
           *.tbz2)      tar xjf $1    ;;
           *.tgz)       tar xzf $1    ;;
           *.zip)       unzip $1      ;;
           *.Z)         uncompress $1 ;;
           *.7z)        7z x $1    ;;
           *)           echo "'$1' cannot be extracted via extract()" ;;
       esac
   else
       echo "'$1' is not a valid file"
   fi
}

alias ls="ls -lhAF --color=always | sed -re 's/.{13}//'"
alias grep="grep --color=auto"
alias cp="advcp -gR"
alias mv="advmv -g"
alias rmdir="rm -rvI"
alias rm="rm -rvI"
alias mkdir="mkdir -p"
alias clear="reset"

alias bashrc="gnome-text-editor ~/.bashrc &"
alias reload="source ~/.bashrc"
alias ..="cd .."
alias ...="cd ../.."
alias ....="cd ../../.."
alias .....="cd ../../../.."

alias diskspace="du -S | sort -n -r |more"
alias ping="ping -c 4"
alias logs="find /var/log -type f -exec file {} \; | grep 'text' | cut -d' ' -f1 | sed -e's/:$//g' | grep -v '[0-9]$' | xargs tail -f"

alias nm-restart="systemctl restart NetworkManager"
alias ipi="hostname -i"
alias ipp="curl icanhazip.com"

alias gedit="/usr/bin/gnome-text-editor"
alias sedit="sudo /usr/bin/gnome-text-editor"
alias snano="sudo nano"

alias gplay="canberra-gtk-play --file"

چند تا نکته راجع به فایل بالا

هیستوری bash محدوده. ما کاری کردیم که نامحدود بشه. 

با دستور bashrc که بصورت یک alias تعریف شده، فایل ~/.bashrc با ادیتور مورد نظر باز میشه و میتونید تغییرات دلخواه رو انجام بدید. 

با دستور reload که به صورت alias تعریف شده، فایل ~/.bashrc بازخوانی میشه تا لازم نباشه ترمینال رو ببندید و باز کنید.

ویرایشگر پیشفرض ترمینال vi هست که من نتونستم باهاش ارتباط برقرار کنم. نمیخواستم هم vim نصب کنم. بنابراین ویرایشگر پیشفرض ترمینال رو به nano تغییر دادم.

دو دستور advcp و advmv مربوط به بسته advcpmv است که میتونید از AUR نصب کنید. میزان پیشرفت عملیات کپی و انتقال رو نشون میده بهمون.

اضافه کردن alias

به روش زیر میتونین به راحتی یک alias جدید اضافه کنین. مثلا

echo "alias mn=\"man\"" >> ~/.bashrc

یا

echo "alias mn='man'" >> ~/.bashrc

اولین نفری باشید که دیدگاهی ارسال می کند!




حاصل سر و کله زدن های من با لینوکس