Linux shell 2 - 别名, shell函数
原文来自于 [LinuxCommand.org]
(http://linuxcommand.org/wss0020.php)
Edit by ddcat1991
在这里, 我们要编辑当前已有的script.
别名 (Alias)
.profile 是一个shell脚本, 当我们每次登陆linux系统的时候, 都会执行这个脚本.
用编辑器打开 .profile (ubuntu), 这是一个隐藏文件, 在此文件最后一行添加
alias l ='ls -l'
现在, 我们创建了一个新的命令’l’, 它相当于我们在终端中输入的’ls -l’. 给一些常用的比较复杂的命令取一个别名, 然后用简单的名字来调用它, 我们可以自己创建很多个自定义的命令.
另一个例子:
alias today='date +"%A, %B %-d, %Y"'
这是一个显示当前时间命令的别名
同样的, 我们还可以在当前的session中创建临时的别名.
$ alias l='ls -l'
这个只在当前的session中有效, 当用户退出后, 下一次登录这个别名就没有影响了.
Shell 函数
Alias 是很简单的命令, 现在我们打算创造一些更困难的shell函数 (shell functions). 这个可以视为一个子脚本.
我们现在打开 .profile, 把之前的alias today 替换成
function today {
echo "Today's date is:"
date +"%A, %B %-d, %Y"
}
现在, 我们就可以在命令行中, 像使用alias一样的使用today了.
Type
当我们自己有很多的命令的时候, 我们可能会混淆哪些是 别名, shell 函数 或者是一个可执行文件.
type 命令可以显示出这些命令都是什么, 使用方法如下:
$ type 命令
关于 .bashrc
我们注意到在 .profile 文件中, 有这么一段代码
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
这个说明了, 在一开始, 这个脚本片段会查看用户的home目录下是否存在 .bashrc, 如果有就读取其中内容.
所以, 我们应该在 .bashrc 中编辑我们自定义的alias和shell函数.