Linux中通过alias创建别名, 可以将命令行上常用的长命令简化成一个易懂的短命令来使用;

要使用Bash别名, 需要将其添加到.bash_profile文件, 该文件位于 ~/目录中.

解压tar文件

1
alias untar='tar -zxvf '

下载出问题, 恢复下载

1
alias wget='wget -c '

下载文件并测试校验和

1
alias sha='shasum -a 256 '

ping命令限制在5个ping

1
alias ping='ping -c 5'

获取你的外部 IP 地址

1
alias ipe='curl ipinfo.io/ip'

关于ls命令的别名:

1
2
3
4
5
6
7
# 带颜色的ls别名
alias ls='ls --color=auto'

alias ll='ls -la'

# 显示隐藏文件或目录的命令别名
alias l.='ls -d .* --color=auto'

关于cd命令的别名

1
2
3
4
5
6
7
8
9
10
11

# 进入父目录
alias cd..='cd ..'

# 快速返回到父目录
alias ..='cd ..'
alias ...='cd ../../'
alias ....='cd ../../../'
alias .....='cd ../../../../'
alias .4='cd ../../../../'
alias .5='cd ../../../../../'

关于grep命令的别名

1
2
3
4
# 加入颜色输出,在搜索log文件时很有用
alias grep='grep --color=auto'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'

回收站功能

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
mkdir -p ~/.trash
alias rm=trash
alias r=trash
alias rl='ls ~/.trash/'
alias ur=undelfile

undelfile()
{
mv -i ~/.trash/$@ ./
}

trash()
{
mv -i $@ ~/.trash/
}

cleartrash()
{
read -p "clear sure?[n]" confirm
[ $confirm == 'y' ] || [ $confirm == 'Y' ] && /bin/rm -rf ~/.trash/*
}

在这里,我们是在家目录下建立一个 .trash 的隐藏文件夹,作为回收站。然后,我们对 rm 命令进行重定义。当我们执行 rm 或者 r 的时候,将执行 trash 函数。而在 trash 函数里,只做一件事:

1
mv -i $@ ~/.trash/

就是将 rm 之后所有的文件移动到 .trash 目录下(即模拟丢进回收站)。-i 选项表示如果 .trash 目录有同名文件的话,将提示是否覆盖。

我们将 rl 定义为 ls ~/.trash/ ,也就是说,我们可以通过 rl 来查看 .trash 目录下的文件,即被「删除」的文件。

如果要还原文件,可以执行 ur ,而 ur 将执行 undelfile 函数。在 undelfile 里,又将 ur 之后的文件从 .trash 目录移回到原目录,从而实现文件删除还原。

当过了一段时间后,回收站里文件太多了,我们可以使用 cleartrash 命令清空回收站。它将执行同名函数,调用 /bin/rm 命令将 .trash 目录清空。

删除文件

1
2
3
4
5
~/workspace/test » touch file1 file2 file3
~/workspace/test » ls
file1 file2 file3
~/workspace/test » rm file1 file2
~/workspace/test » r file3

查看回收站文件

1
2
3
~/workspace/test » rl

file1 file2 file3

还原被删除的文件

1
2
3
4
5
~/workspace/test » ur file1
~/workspace/test » ur file2
~/workspace/test » ur file3
~/workspace/test » ls
file1 file2 file3

清空回收站

1
2
3
4
5
~/workspace/test » rm file1 file2 file3
~/workspace/test » cleartrash
clear sure?[n]y
~/workspace/test » rl
~/workspace/test »

注意 :

将以上命令编辑到到 ~/.bash_profile后, 需要执行source ~/.bash_profile命令使其生效;