Linux正则表示法中高亮显示问题

学习Linux正则表示法时,书本介绍grep的格式内容为:

grep [-A] [-B] [--color=auto]  ‘查找字符串‘  filename

也就是不加--color=auto内容时查询出来的内容不会高亮。但是我用CentOS7.4不用设置颜色自动也会高亮。查找各种资料发现CentOS7已经设置好grep的别名。

在文件alias中,alias grep='grep --color=auto'。设置了grep的别名自动加载了颜色高亮。

在操作 Linux 的过程中,最令你感到不爽的是什么?答:命令太多,选项太多,记不住。

命令可以通过本书学习,但选项太多可真的不好办了,我想即便是 Linux 大牛们,也不可能记住每个命令的所有选项吧。

幸好 Linux 系统中有一个叫作 alias 的命令,它可以给一些命令设置别名,利用它我们就可以不必记住太多复杂的选项,只需将这些选项设置成别名就好啦。

定义别名

定义别名的方法很简单,格式如下所示:

alias [name[=value]]


这里需要注意的是:

  • 等号(=)前后不能有空格,否则就会出现语法错误了。
  • 如果value中有空格或tab,则value一定要使用引号(单、双引号都行)括起来。


了解了别名的基础知识之后,我们来看一个定义别名的例子:

[roc@roclinux ~]$ alias vi='vim'

这个例子定义了一个 vim 命令的别名,以后,当我们执行 vi 命令时,其实真正执行的是 vim 命令。是不是很简单呢!

如何查看别名

如果太热衷于设置别名,那么你就会面临着要记住很多别名的困扰,因此,学会查看所有已设置的别名,就显得尤为重要了。

查看别名的方法也很简单,直接输入 alias 命令,不加任何选项和参数即可:

[roc@roclinux ~]$ alias
alias cp='cp -i'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias vi='vim'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'


可以看到,系统把当前可用的所有的别名都列出来了。仔细找一下,是不是可以看到刚才设置的那个别名了:alias vi='vim'。

查看单独命令的别名

如果我们只想查看一个单独命令是否设置了别名,那么方法有两个。

方法一:使用 alias 命令加参数

[roc@roclinux ~]$ alias vi
alias vi='vim'


方法二:使用快捷键
当在终端中输入一个命令后,按下 Ctrl+Alt+E 组合键,假如设置了别名,那么别名自动会变成实际的命令。

注意:这个快捷键并非在所有终端中都可行,有些终端的快捷键会和这个快捷键冲突,这样的话,该方法就不好使了。

如何取消别名

别名定义的太多了,往往带来的不是方便,而是困扰。所以我们也需要掌握删除别名的方法。

那么,如何删除一个别名呢?可以使用 unalias 命令。比如,我们想删除 vi='vim' 这个别名,可以这样来操作:

#删除别名设置
[roc@roclinux ~]$ unalias vi
 
#再看看, 已经被删除了吧
[roc@roclinux ~]$ alias
alias cp='cp -i'
alias dirA='echo work directory is /root'
alias dirB='echo work directory is $PWD'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

经过仔细观察,确实已经找不到刚才定义的 vi 别名了。

如果你想删除所有的别名,直接使用 unalias 命令的-a选项即可,只不过要谨慎使用,避免你设置的所有的别名一下子都被清除了,自己还得一个一个重新设置回来。

#删除所有别名
[roc@roclinux ~]$ unalias -a
 
#空空如也
[roc@roclinux ~]$ alias

如何执行命令本身而非别名

别名虽好,但也有它的弊端,比如定义的别名恰好和某个命令重名了,这就麻烦了,Shell 中执行的将永远都是别名。这里,如果我们想执行真正的那个命令而非别名,该怎么办呢?有三种方法可以解决这个问题:

  • 方案一:使用命令的绝对路径。
  • 方案二:切换到命令所在的目录,执行./command。
  • 方案三:在命令前使用反斜线(\)。


下面我们就通过示例来演示这三个方法:

#绝对路径方法
[roc@roclinux ~]$ /bin/vi test.sh
 
#明确指定当前路径的方法
[roc@roclinux ~]$ cd /bin
[roc@roclinux bin]$ ./vi ~/test.sh
 
#使用反斜线的方法
[roc@roclinux bin]$ cd
[roc@roclinux ~]$ \vi test.sh

这里推荐大家使用最后一种方法,因为它既方便又实用。

如何让别名永久有效

我们通过 alias 命令设置的别名,仅限于在当前的 Shell 中使用,如果系统重启了,那么新设置的别名就失效了。

如果想让别名永久有效的话,就需要把所有的别名设置方案加入到($HOME)目录下的 .alias 文件中(如果系统中没有这个文件,你可以创建一个),然后在 .bashrc 文件中增加这样一段代码:

# Aliases
if [ -f ~/.alias ]; then
  . ~/.alias
fi

这样设置后,无论怎样重启系统,都不会影响设置的别名啦。

其中alias的使用方法来源于:alias命令_Linux alias命令:给命令定义别名 (biancheng.net)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值