返回首页
当前位置: 主页 > 精通Office > Ubuntu教程 >

Linux/Unix/Mac OS X Bash shell 别名大全

时间:2018-02-10 22:41来源:知行网www.zhixing123.cn 编辑:麦田守望者

bash 别名alias只不过是指向命令的快捷方式而已。
alias 命令允许用户只输入一个单词就运行任意一个命令或一组命令(包括命令选项和文件名)。执行
alias 命令会显示一个所有已定义别名的列表。你可以在 ~/.bashrc文件中自定义别名。使用别名可以在命令行中减少输入的时间,使工作更流畅,同时增加生产率。

本文通过 30 个 bash shell 别名的实际案例演示了如何创建和使用别名。

bash alias 的那些事

bash shell 中的 alias 命令的语法是这样的:
alias [alias-name[=string]...]


如何列出 bash 别名

输入下面的 alias 命令:
alias


结果为:
alias ..='cd ..'
alias amazonbackup='s3backup'
alias apt-get='sudo apt-get'
...


alias 命令默认会列出当前用户定义好的别名。

如何定义或者创建一个 bash shell 别名

使用下面语法 创建别名:
alias name =value
alias name = 'command'
alias name = 'command arg1 arg2'
alias name = '/path/to/script'
alias name = '/path/to/script.pl arg1'


举个例子,输入下面命令并回车就会为常用的clear(清除屏幕)命令创建一个别名c:
alias c = 'clear'


然后输入字母c 而不是clear 后回车就会清除屏幕了:
c


如何临时性地禁用 bash 别名

下面语法可以临时性地禁用别名:
## path/to/full/command
/usr/bin/clear
## call alias with a backslash ##
\c
## use /bin/ls command and avoid ls alias ##
command ls


如何删除 bash 别名

使用 unalias 命令来删除别名。其语法为:
unalias aliasname
unalias foo


例如,删除我们之前创建的别名c:
unalias c


你还需要用文本编辑器删掉 ~/.bashrc 文件 中的别名定义(参见下一部分内容)。

如何让 bash shell 别名永久生效

别名c 在当前登录会话中依然有效。但当你登出或重启系统后,别名c 就没有了。为了防止出现这个问题,将别名定义写入 ~/.bashrc file 中,输入:
vi ~/.bashrc


输入下行内容让别名c 对当前用户永久有效:
alias c = 'clear'


保存并关闭文件就行了。系统级的别名(也就是对所有用户都生效的别名)可以放在/etc/bashrc 文件中。请注意,

alias 命令内建于各种 shell 中,包括 ksh,tcsh/csh,ash,bash 以及其他 shell。

关于特权权限判断

可以将下面代码加入

~/.bashrc:
# 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


定义与操作系统类型相关的别名

可以将下面代码加入

~/.bashrc 使用 case 语句:
### Get os name via uname ###
_myos="$(uname)"

### add alias as per os using $_myos ###
case $_myos in
Linux) alias foo='/path/to/linux/bin/foo';;
FreeBSD|OpenBSD) alias foo='/path/to/bsd/bin/foo' ;;
SunOS) alias foo='/path/to/sunos/bin/foo' ;;
*) ;;
esac


30 个 bash shell 别名的案例

你可以定义各种类型的别名来节省时间并提高生产率。

#1:控制 ls 命令的输出

ls 命令列出目录中的内容 而你可以对输出进行着色:
## Colorize the ls output ##
alias ls = 'ls --color=auto'

## Use a long listing format ##
alias ll = 'ls -la'

## Show hidden files ##
alias l.= 'ls -d . .. .git .gitignore .gitmodules .travis.yml --color=auto'


#2:控制 cd 命令的行为
## get rid of command not found ##
alias cd..= 'cd ..'

## a quick way to get out of current directory ##
alias ..= 'cd ..'
alias ...= 'cd ../../../'
alias ....= 'cd ../../../../'
alias .....= 'cd ../../../../'
alias .4= 'cd ../../../../'
alias .5= 'cd ../../../../..'


#3:控制 grep 命令的输出

grep 命令是一个用于在纯文本文件中搜索匹配正则表达式的行的命令行工具:
## Colorize the grep command output for ease of use (good for log files)##
alias grep = 'grep --color=auto'
alias egrep = 'egrep --color=auto'
alias fgrep = 'fgrep --color=auto'


#4:让计算器默认开启 math 库
alias bc = 'bc -l'


#4:生成 sha1 数字签名
alias sha1 = 'openssl sha1'


#5:自动创建父目录

mkdir 命令 用于创建目录:
alias mkdir = 'mkdir -pv'


#6:为 diff 输出着色

你可以使用 diff 来一行行第比较文件 而一个名为

colordiff 的工具可以为 diff 输出着色:
# install colordiff package 🙂
alias diff = 'colordiff'


#7:让 mount 命令的输出更漂亮,更方便人类阅读
alias mount = 'mount |column -t'


#8:简化命令以节省时间
# handy short cuts #
alias h = 'history'
alias j = 'jobs -l'


#9:创建一系列新命令
alias path = 'echo -e ${PATH//:/\\n}'
alias now = 'date +"%T"'
alias nowtime =now
alias nowdate = 'date +"%d-%m-%Y"'


#10:设置 vim 为默认编辑器
alias vi = vim
alias svi = 'sudo vi'
alias vis = 'vim "+set si"'
alias edit = 'vim'


#11:控制网络工具 ping 的输出
# Stop after sending count ECHO_REQUEST packets #
alias ping = 'ping -c 5'

# Do not wait interval 1 second, go fast #
alias fastping = 'ping -c 100 -i.2'


#12:显示打开的端口

使用 netstat 命令 可以快速列出服务区中所有的 TCP/UDP 端口:
alias ports = 'netstat -tulanp'


#13:唤醒休眠的服务器

Wake-on-LAN (WOL) 是一个以太网标准,可以通过网络消息来开启服务器。你可以使用下面别名来快速激活 nas 设备 以及服务器:
## replace mac with your actual server mac address #
alias wakeupnas01 = '/usr/bin/wakeonlan 00:11:32:11:15:FC'
alias wakeupnas02 = '/usr/bin/wakeonlan 00:11:32:11:15:FD'
alias wakeupnas03 = '/usr/bin/wakeonlan 00:11:32:11:15:FE'


#14:控制防火墙 (iptables) 的输出

Netfilter 是一款 Linux 操作系统上的主机防火墙。它是 Linux 发行版中的一部分,且默认情况下是激活状态。这里列出了大多数 Liux 新手防护入侵者最常用的 iptables 方法。
## shortcut for iptables and pass it via sudo#
alias ipt = 'sudo /sbin/iptables'

# display all rules #
alias iptlist = 'sudo /sbin/iptables -L -n -v --line-numbers'
alias iptlistin = 'sudo /sbin/iptables -L INPUT -n -v --line-numbers'
alias iptlistout = 'sudo /sbin/iptables -L OUTPUT -n -v --line-numbers'
alias iptlistfw = 'sudo /sbin/iptables -L FORWARD -n -v --line-numbers'
alias firewall =iptlist


#15:使用 curl 调试 web 服务器 / CDN 上的问题
# get web server headers #
alias header = 'curl -I'

# find out if remote server supports gzip / mod_deflate or not #
alias headerc = 'curl -I --compress'


#16:增加安全性
# do not delete / or prompt if deleting more than 3 files at a time #
alias rm = 'rm -I --preserve-root'

# confirmation #
alias mv = 'mv -i'
alias cp = 'cp -i'
alias ln = 'ln -i'

# Parenting changing perms on / #
alias chown = 'chown --preserve-root'
alias chmod = 'chmod --preserve-root'
alias chgrp = 'chgrp --preserve-root'

------分隔线----------------------------
标签(Tag):Ubuntu Linux 操作系统 Unix Android fedora debian
------分隔线----------------------------
推荐内容
猜你感兴趣