您的位置:首页 > 运维架构 > Shell

Shell中的命令别名、命令历史和命令替换的方法

2018-06-30 14:34 1071 查看

命令别名

可以使用 alias 命令查看和修改命令别名。

下面是一个查看系统中命令别名的示例:

$ alias
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echoterminal || echoerror)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l='ls -CF'
alias la='ls -A'
alias ll='ls -alF'
alias ls='ls --color=auto'

可以看到,

ls
ls--color=auto 
的别名,当键入
ls
并运行时,实际上运行的是
ls --color=auto
命令。

用户也可以自行创建或修改别名:

$ alias dt='date-d today +"%Y-%m-%d %H:%M:%S"'
$ dt
2018-06-30 12:15:37

上面的例子将

dt
作为
date-d today +"%Y-%m-%d %H:%M:%S"
的别名,当运行前者时,实际上运行的是后者。

用户还可以删除别名:

$ unalias dt

上面的命令删除了 dt别名。

命令历史

在Shell提示符后按

<Up>
<Down>
(上箭头和下箭头)按键,可以翻出上一条和下一条命令,这是命令历史的功能。

使用 history 查看命令历史:

$ history
# 省略
634 ls
635 date
636 history

每一条命令都被赋予一个编号,使用

!编号
即可运行该编号的命令:

$ !635
date
Sat Jun 30 12:21:11 CST 2018

!! 可以运行上一条命令:

$ !!
date
Sat Jun 30 12:21:42 CST 2018

还可以对历史命令进行部分替换并执行,例如使用 history 查看时有一条这样的命令:

640ls~

使用

!number:s/pattern/replacement/
将编号为
number
的命令中的
pattern
替换为
replacement
,比如将上面命令中的
~
替换为
.
,即执行
ls.
,可使用下面的命令:

$ !640:s/~/./

命令替换

使用 ` 完成将命令嵌入到另一条命令:

$ echo"Time is `date`"
Time is Sat Jun 30 12:31:28 CST 2018

事实上,Shell会首先执行

date
命令,得到
Sat Jun 30 12:31:28 CST 2018
,之后再执行
echo"Time is Sat Jun 30 12:31:28 CST 2018"
,这样就实现了将
date
嵌入到
echo
中执行的命令。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

您可能感兴趣的文章:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐