Shell中的命令别名、命令历史和命令替换
命令别名
能用alias
命令查看和修改命令别名。
下面是一个查看系统中命令别名的示例:
$ aliasalias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(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"'$ dt2018-06-30 12:15:37
上面的例子将dt
作为date -d today +"%Y-%m-%d %H:%M:%S"
的别名,当运行前者时,实际上运行的是后者。
使用户还能删除别名:
$ unalias dt
上面的命令删除了dt
别名。
命令历史
在Shell提醒符后按<Up>
和<Down>
(上箭头和下箭头)按键,能翻出上一条和下一条命令,这是命令历史的功可以。
用history
查看命令历史:
$ history# 省略634 ls635 date636 history
每一条命令都被赋予一个编号,用!编号
就可运行该编号的命令:
$ !635dateSat Jun 30 12:21:11 CST 2018
!!
能运行上一条命令:
$ !!dateSat Jun 30 12:21:42 CST 2018
还能对历史命令进行部分替换并执行,例如用history
查看时有一条这样的命令:
640 ls ~
用!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
中执行的命令。
说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » Shell中的命令别名、命令历史和命令替换
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » Shell中的命令别名、命令历史和命令替换