实用的bash别名和函数

关注一个都是干货的微信公众平台,昨晚看到很多实用的linux alias,在这里特别记下了,方便自己以后使用!

#Productivity
alias ls="ls --color=auto"         # ls命令带着彩色输出
alias ll="ls --color -al"          # 以彩色列表方式列出目录里面的全部文件
alias grep='grep --color=auto'     # grep命令带着彩色输出
mcd() { mkdir -p "$1"; cd "$1";}   #  创建一个目录并进入该目录里
cls() { cd "$1"; ls;}              #  进入一个目录并列出里面的内容
backup() { cp "$1"{,.bak};}        #  在同一目录下备份文件,备份文件名为xx.bak
md5check() { md5sum "$1" | grep "$2";}     # 比较文件的md5校验值,usage:md5check 文件名 校验值 
alias makescript="fc -rnl | head -1 >"     # 用你上一个执行的命令创建一个脚本,usage:makescript 脚本名字
alias genpasswd="strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 30 | tr -d '\n'; echo"  # 产生一个随机数密码
alias c="clear"                                
alias histg="history | grep"
alias ..='cd ..'
alias ...='cd ../..'
extract() {         # 解压任何类型的文档   
   if [ -f $1 ] ; then      
     case $1 in        
          *.tar.bz2)   
             tar xjf $1     ;;        
          *.tar.gz)    
             tar xzf $1     ;;       
          *.bz2)       
             bunzip2 $1     ;;    
          *.rar)       
             unrar e $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}


#System info
alias cmount="mount | column -t"     #  格式化输出mount信息
alias tree="ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/   /' -e 's/-/|/'"     #  树形结构递归显示目录
sbs(){ du -b --max-depth 1 | sort -nr | perl -pe 's{([0-9]+)}{sprintf "%.1f%s", $1>=2**30? ($1/2**30, "G"): $1>=2**20? ($1/2**20, "M"): $1>=2**10? ($1/2**10, "K"): ($1, "")}e';} # 安装文件在磁盘存储的大小排序,显示当前目录的文件列表
alias intercept="sudo strace -ff -e trace=write -e write=1,2 -p"  #  跟踪某个进程的标准输出和标准错误
alias meminfo='free -m -l -t'   
alias ps?="ps aux | grep"     
alias volume="amixer get Master | sed '1,4 d' | cut -d [ -f 2 | cut -d ] -f 1"       # 显示音量设置


#Network
alias websiteget="wget --random-wait -r -p -e robots=off -U mozilla"    #  下载整个网站,usage:websiteget [URL]
alias listen="lsof -P -i -n"              #  显示出哪个应用程序连接到网络
alias port='netstat -tulanp'           #  显示活动的端口
gmail() { curl -u "$1" --silent "https://mail.google.com/mail/feed/atom" | sed -e 's/<\/fullcount.*/\n/' | sed -e 's/.*fullcount>//'}  # 大概显示你gmail未读邮件的数量
alias ipinfo="curl ifconfig.me && curl ifconfig.me/host"    #  获取你的公网ip地址和主机名
getlocation() { lynx -dump http://www.ip-adress.com/ip_tracer/?QRY=$1|grep address|egrep 'city|state|country'|awk '{print $3,$4,$5,$6,$7,$8}'|sed 's\ip address flag \\'|sed 's\My\\';}           #  返回你当前ip地址的地理位置


#Funny
kernelgraph() { lsmod | perl -e 'print "digraph \"lsmod\" {";<>;while(<>){@_=split/\s+/; print "\"$_[0]\" -> \"$_\"\n" for split/,/,$_[3]}print "}"' | dot -Tpng | display -;}  #  绘制内核模块依赖曲线图
alias busy="cat /dev/urandom | hexdump -C | grep \"ca fe\""      #  在那些非技术人员的眼里你看起来是总是那么忙和神秘,纯属娱乐。


参考链接

linux爱好者微信公众平台  《一大波使用的bash别名和函数》

你可能感兴趣的:(alias)