命令别名与历史命令 alias,history

命令的别名 alias

    命令别名是一个很有趣的东西,特别是惯用指令特别长的时候!还有, 增设默认的选项在一些惯用的指令上面,可以预防一些不小心误杀档案的情况发生的时候! 举个例子来说,如果你要查询隐藏档,并且需要长的列出与一页一页翻看,那么需要下达『 ls -al | more 』这个指令,我是觉得很烦啦! 要输入好几个单字!那可不可以使用 lm 来简化呢?当然可以,看下面下达:

linux-peej:~ # alias lm='ls -al | more'

这样立刻多出了一个可以执行的指令!这个指令名称为 lm ,且其实它是执行 ls -al | more !很方便。不过, 要注意的是:『alias 的定义规则与变量定义规则几乎相同』, 所以你只要在 alias 后面加上你的 {『别名』='指令 选项...' }, 以后你只要输入 lm 就相当于输入了 ls -al|more 这一串指令! 另外,命令别名的设定还可以取代既有的指令!举例来说,我们知道 root 可以移除 (rm) 任何数据!所以当以 root 的身份在进行工作时,需要特别小心, 但是总有失手的时候,那么 rm 提供了一个选项来让我们确认是否要移除该档案,那就是 -i 这个选项!所以,可以这样做:

linux-peej:~ # alias rm='rm -i'

那么以后使用 rm 的时候,就不用太担心会有错误删除的情况了!这也是命令别名的优点! 如果我要知道目前有哪些的命令别名,可以直接输入 alias !

linux-peej:~ # alias 
alias +='pushd .'
alias -='popd'
alias ..='cd ..'
alias ...='cd ../..'
alias beep='echo -en "\007"'
alias cd..='cd ..'
alias dir='ls -l'
alias l='ls -alF'
alias la='ls -la'
alias ll='ls -l'
alias ls='ls $LS_OPTIONS'
alias ls-l='ls -l'
alias md='mkdir -p'
alias o='less'
alias rd='rmdir'
alias rehash='hash -r'
alias unmount='echo "Error: Try the command: umount" 1>&2; false'
alias you='if test "$EUID" = 0 ; then /sbin/yast2 online_update ; else su - -c "/sbin/yast2 online_update" ; fi'

    又比如程序编辑器里面提到 vi 与 vim 是不太一样的,vim 可以多作一些额外的语法检验与颜色显示,默认的 root 是单纯使用 vi 而已。 如果想要使用 vi 就直接以 vim 来开启档案的话,使用『 alias vi='vim' 』这个设定即可。 

    如果要取消命令别名的话,那么就使用 unalias !例如要将刚刚的 lm 命令别名拿掉,就使用:

linux-peej:~ # unalias lm


历史命令: history, HISTSIZE

    bash 有提供指令历史的服务!如果要查询我们曾经下达过的指令,就使用 history !当然,如果觉得 histsory 要输入的字符太多太麻烦,可以使用命令别名来设定! 如: linux-peej:~ # alias h='history'

现在我们看看 history 的用法吧! 
[root@www ~]# history [n] 
[root@www ~]# history [-c] 
[root@www ~]# history [-raw] histfiles 
选项与参数: 
 n :数字,意思是『要列出最近的 n 笔命令行表』的意思! 
-c :将目前的 shell 中的所有 history 内容全部消除 
-a :将目前新增的 history 指令新增入 histfiles 中,若没有加 histfiles , 则预设写入 ~/.bash_history 
 -r :将 histfiles 的内容读到目前这个 shell 的 history 记忆中;
-w:将目前的 history 记忆内容写入 histfiles 中!

范例一:列出目前内存内的所有 history 记忆 
[root@www ~]# history 
# 前面省略
  993  echo ${MAIL}
  994  username=${username-root} 
  995  echo ${username}
  996  history
# 列出的信息当中,共分两栏,第一栏为该指令在这个 shell 当中的代码,另一个则是指令本身的内容!至于会秀出几笔指令记录,则与 HISTSIZE 有关! 
  
范例二:列出目前最近的 3 笔资料
linux-peej:~ # history 3
  995  echo ${username}
  996  history
  997  history 3

范例三:立刻将目前的资料写入 histfile 当中 
[root@www ~]# history -w 
# 在默认的情况下,会将历史记录写入 ~/.bash_history 当中!
[root@www ~]# echo $HISTSIZE 
1000


[root@www ~]# !number 
[root@www ~]# !command 
[root@www ~]# !! 

选项与参数: 
number :执行第几笔指令的意思; 
command :由最近的指令向前搜寻『指令串开头为 command』的那个指令,幵执行;
!! :就是执行上一个指令(相当于按↑按键后,按 Enter) 

[root@www ~]# history 
66 man rm 
67 alias 
68 man history 
69 history 

[root@www ~]# !66                                <==执行第 66 笔指令 
[root@www ~]# !!                                   <==执行上一个指令,本例中亦即 !66 
[root@www ~]# !al                                 <==执行最近以 al 为开头的指令(上头列出的第 67 个)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值