AI智能
改变未来

『忘了再学』Shell基础 — 4、Bash基本功能(history命令)

[toc]

在Linux系统中默认的Shell就是

Bourne-AgainShell

(简称

Bash

),所以我们今天来掌握

Bash

的一些基本用法。

1、history历史命令

(1)历史命令的查看

在终端执行

history

命令,就会显示出在系统当中已经执行过的命令。

[root@localhost ~] # history [选项] [历史命令保存文件]

选项:

  • -c

    :清空历史命令。

  • -w

    :把缓存中的历史命令写入历史命令保存文件。如果不手工指定历史命令保存文件,则放入默认的历史命令保存文件

    ~/.bash_history

    中。

(2)

history

用法说明

1)直接执行

history

命令,查看历史命令。

2)

-w

选项的用法。

我们使用

history

命令查看的历史命令,和

~/.bash_history

文件中保存的历史命令是不同的。那是因为当前登陆的系统中,所操作的命令并没有直接写入

~/.bash_history

文件,而是保存在缓存当中的。需要等当前用户注销之后,缓存中的命令才会写入

~/.bash_history

文件。如果我们需要把内存中的命令直接写入

~/.bash_history

文件,而不等用户注销时再写入,就需要使用

-w

选项了。

命令如下:把缓存中的历史命令直接写入

~/.bash_history

文件。

[root@localhost ~] # history -w

这时再去查询

~/.bash_history

文件,历史命令文件中的内容,就和

history

命令查询的一致了。

注意:历史命令最终是要写入到文件中的,所以说历史命令是永久生效的,重启也不会消失的。

3)

~/.bash_history

文件是在用户的家目录下,说明

~/.bash_history

文件只保存当前用户执行过的命令。也就是

root

用户的命令历史,保存在

root

目录下的

.bash_history

文件中,

user1

用户的命令历史,保存在

user1

目录下的

.bash_history

文件中。

2、设置命令历史记录的条数

我们Linux系统中,默认记录的历史命令条数是1000条。

这个属性的配置内容,是在

/etc/profile

文件中。

执行:

[root@localhost ~] # vim /etc/profile

文件中的

HISTSIZE

属性,如下图:

说明:

  • 我们之前说过
    /etc/profile

    文件的,在说

    umask

    值的时候。

  • /etc/profile

    文件里存放的是系统的环境变量,对所有用户都有效果,要对其更改的话,必须要在

    root

    用户权限下才能进行。

  • 我们可以使用
    env

    命令来查看系统当前所有的环境变量,

    set

    命令可以查看所有本地定义的Shell变量。

  • 我们在
    /etc/profile

    里面修改的话,是对所有用户起作用,所以一般所有用户都要使用的环境变量,就应该放在该文件里面,这样系统运行之后该文件里面的环境变量都会生效。

这个历史命令记录条数一般建议多设置些。因为这个历史记录是存在硬盘上的,不会被加载到内存中,多些历史命令的记录,有很多时候可以方便我们操作。

3、清空历史命令

如果需要清空历史命令,只需要执行:

[root@localhost ~] # history -c

执行上边命令,会把当前系统中内存缓冲区中的历史命令,和当前用户的

~/.bash_history

文件中的历史命令,一起删除。

一般我们不建议使用该命令,因为使用历史命令是我们在使用Linux系统时常用的操作,方便操作的同时,还可以判断你之前对系统做过什么操作。只有在极特殊的情况下,才执行清空历史命令的操作,如给MySQL设置完密码之后,建议清空历史命令。因为MySQL设置密码的命令,是明文显示的。

4、历史命令的调用

如果想要使用原先的历史命令有以下几种方法:

  • 使用
    上、下箭头

    调用 以前的历史命令。

  • 使用
    !n

    重复执行第n条历史命令。前边的数字就是

    n

  • 使用
    !!

    重复执行上一条命令。(还不如用上箭头直观一点。)

  • 使用
    !字串

    重复执行最后一条,以该字串开头的命令。(数字越大,越靠后。)

  • 使用
    !$

    重复上一条命令的最后一个参数。只能打印参数,一般不能够独立执行,Shell脚本中会用到。

5、命令与文件的补全

Tab

键可以对命令和文件名进行补全。

这里就是告诉你,

Tab

键补全是Shell的功能。

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » 『忘了再学』Shell基础 — 4、Bash基本功能(history命令)