linux命令行高亮显示及epol源优化及关于history历史记录隐藏

来源:互联网 发布:网络渗透工程师 编辑:程序博客网 时间:2024/06/11 23:09

1命令行优化


想要永久性的改变终端命令行格式,需要修改/etc/bashrc文件

cat >>/etc/profile<<`EOF`PS1='\[\e[32;1m\][\u@\h \W]\$\[\e[0m\]'`EOF`source /etc/profile                   #远程工具可能需要重新连接

要修改linux终端命令行颜色,我们需要用到PS1,PS1是Linux终端用户的一个环境变量,用来说明命令行提示符的设置。在终端输入命令:#set,即可在输出中找到关于PS1的定义如下:

  PS1=’[\u@\h \W]$

  PS1的定义中个常用的参数的含义如下:

  \d :#代表日期,格式为weekday month date,例如:”Mon Aug 1”

  \H :#完整的主机名称

  \h :#仅取主机的第一个名字

  \t :#显示时间为24小时格式,如:HH:MM:SS

  \T :#显示时间为12小时格式

  \A :#显示时间为24小时格式:HH:MM

  \u :#当前用户的账号名称

  \v :#BASH的版本信息

  \w :#完整的工作目录名称

  \W :#利用basename取得工作目录名称,所以只会列出最后一个目录

  # :#下达的第几个命令

  $ :#提示字符,如果是root时,提示符为:# ,普通用户则为:$

  由此,我们可知linux默认的命令行提示信息为:[当前用户的账号名称@主机的第一个名字 工作目录的最后一项]#

  2.颜色的设置

  在PS1中设置字符颜色的格式为:[\e[F;Bm],其中“F“为字体颜色,编号为30-37,“B”为背景颜色,编号为40-47。颜色表如下:

    F B

    30 40 黑色

    31 41 红色

    32 42 绿色

    33 43 黄色

    34 44 蓝色

    35 45 紫红色

    36 46 青蓝色

    37 47 白色

  根据颜色表,套用入字符颜色设置格式中,就可以对linux终端命令行颜色进行个性化设置了。比如要设置命令行的格式为绿字黑底,显示当前用户的账号名称、主机的第一个名字、完整的当前工作目录名称、24小时格式时间,就可以使用如下的命令:

  #PS1=’[[\e[32;40m]\u@\h \w \t]$ ‘

2更新epol源


wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repowget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo

关于linux服务器history记录隐藏及其他相关用法

如果你是 Linux 命令行的用户,有的时候你可能不希望某些命令记录在你的命令行历史中。原因可能很多,例如,你在公司担任某个职位,你有一些不希望被其它人滥用的特权。亦或者有些特别重要的命令,你不希望在你浏览历史列表时误执行。
然而,有方法可以控制哪些命令进入历史列表,哪些不进入吗?或者换句话说,我们在 Linux 终端中可以开启像浏览器一样的无痕模式吗?答案是肯定的,而且根据你想要的具体目标,有很多实现方法。在这篇文章中,我们将讨论一些行之有效的方法。
1. 在命令前插入空格
是的,没看错。在命令前面插入空格,这条命令会被 shell 忽略,也就意味着它不会出现在历史记录中。但是这种方法有个前提,只有在你的环境变量 HISTCONTROL 设置为 “ignorespace” 或者 “ignoreboth” 才会起作用。在大多数情况下,这个是默认值。
所以,像下面的命令(LCTT 译注:这里[space]表示输入一个空格):

[space]echo “this is a top secret”
1
[space]echo “this is a top secret”
如果你之前执行过如下设置环境变量的命令,那么上述命令不会出现在历史记录中。

export HISTCONTROL = ignorespace
1
export HISTCONTROL = ignorespace
下面的截图是这种方式的一个例子。
history

第四个 “echo” 命令因为前面有空格,它没有被记录到历史中。
2. 禁用当前会话的所有历史记录
如果你想禁用某个会话所有历史,你可以在开始命令行工作前简单地清除环境变量 HISTSIZE 的值即可。执行下面的命令来清除其值:

export HISTSIZE=0
1
export HISTSIZE=0
HISTSIZE 表示对于 bash 会话其历史列表中可以保存命令的个数(行数)。默认情况,它设置了一个非零值,例如在我的电脑上,它的值为 1000。
所以上面所提到的命令将其值设置为 0,结果就是直到你关闭终端,没有东西会存储在历史记录中。记住同样你也不能通过按向上的箭头按键或运行 history 命令来看到之前执行的命令。
3. 工作结束后清除整个历史
这可以看作是前一部分所提方案的另外一种实现。唯一的区别是在你完成所有工作之后执行这个命令。下面是刚说到的命令:

history -cw
1
history -cw
刚才已经提到,这个和 HISTSIZE 方法有相同效果。
4. 只针对你的工作关闭历史记录
虽然前面描述的方法(2 和 3)可以实现目的,它们可以清除整个历史,在很多情况下,有些可能不是我们所期望的。有时候你可能想保存直到你开始命令行工作之间的历史记录。对于这样的需求,你开始在工作前执行下述命令:

[space]set +o history
1
[space]set +o history
备注:[space] 表示空格。并且由于空格的缘故,该命令本身也不会被记录。
上面的命令会临时禁用历史功能,这意味着在这命令之后你执行的所有操作都不会记录到历史中,然而这个命令之前的所有东西都会原样记录在历史列表中。
要重新开启历史功能,执行下面的命令:

[Space]set -o history
1
[Space]set -o history
它将环境恢复原状,也就是你完成了你的工作,执行上述命令之后的命令都会出现在历史中。
5. 从历史记录中删除指定的命令
现在假设历史记录中已经包含了一些你不希望记录的命令。这种情况下我们怎么办?很简单。直接动手删除它们。通过下面的命令来删除:

history | grep “part of command you want to remove”
1
history | grep “part of command you want to remove”
上面的命令会输出历史记录中匹配的命令,每一条前面会有个数字。
一旦你找到你想删除的命令,执行下面的命令,从历史记录中删除那个指定的项:

history -d [num]
1
history -d [num]
同样的,你可以使用向上的箭头一直往回翻看历史记录。当你发现你感兴趣的命令出现在终端上时,按下 “Ctrl + U”清除整行,也会从历史记录中删除它。

阅读全文
0 0