Shell中的命令别名、命令历史和命令替换的方法
命令别名
可以使用alias命令查看和修改命令别名。
下面是一个查看系统中命令别名的示例:
$alias aliasalert='notify-send--urgency=low-i"$([$?=0]&&echoterminal||echoerror)""$(history|tail-n1|sed-e'\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"' aliasegrep='egrep--color=auto' aliasfgrep='fgrep--color=auto' aliasgrep='grep--color=auto' aliasl='ls-CF' aliasla='ls-A' aliasll='ls-alF' aliasls='ls--color=auto'
可以看到,ls是ls--color=auto的别名,当键入ls并运行时,实际上运行的是ls--color=auto命令。
用户也可以自行创建或修改别名:
$aliasdt='date-dtoday+"%Y-%m-%d%H:%M:%S"' $dt 2018-06-3012:15:37
上面的例子将dt作为date-dtoday+"%Y-%m-%d%H:%M:%S"的别名,当运行前者时,实际上运行的是后者。
用户还可以删除别名:
$unaliasdt
上面的命令删除了dt别名。
命令历史
在Shell提示符后按
使用history查看命令历史:
$history #省略 634ls 635date 636history
每一条命令都被赋予一个编号,使用!编号即可运行该编号的命令:
$!635 date SatJun3012:21:11CST2018
!!可以运行上一条命令:
$!! date SatJun3012:21:42CST2018
还可以对历史命令进行部分替换并执行,例如使用history查看时有一条这样的命令:
640ls~
使用!number:s/pattern/replacement/将编号为number的命令中的pattern替换为replacement,比如将上面命令中的~替换为.,即执行ls.,可使用下面的命令:
$!640:s/~/./
命令替换
使用`完成将命令嵌入到另一条命令:
$echo"Timeis`date`" TimeisSatJun3012:31:28CST2018
事实上,Shell会首先执行date命令,得到SatJun3012:31:28CST2018,之后再执行echo"TimeisSatJun3012:31:28CST2018",这样就实现了将date嵌入到echo中执行的命令。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。