shell 介绍及命令历史

1、什么是 shell ?

打开系统,输入 zs ,按下 Tab 键,出现下图命令 zsoelim ,

说明没有 zsh 命令,这时候可以安装一下,先输入命令 yum list |grep zsh ,回车,搜索一下,

可以看出有 zsh 命令,也有 ksh 命令,这边我们就不安装了。

2、命令历史

我们执行过的命令,实际上是有保存到一个文件的。按向上的方向键,可以查看之前的命令,那么这些命令在哪边被保存的呢?有一个文件在用户的加目录下,root 用户见下图,

可以 cat 查看,命令非常多,截取一部分,见下图,

要想知道之前执行过的命令有多少条,可以用 history 命令查看,输入 history ,回车,截取一部分图品,见下图,

可以看到之前的历史是 672 条,那么这个文件 .bash_history 最大可以存储 1000 条命令。这一点可以通过环境变量 HISTSIZE 查询,见下图,

还有一个命令 history -c ,可以把当前的历史命令清空,见下图,

那么该命令可以清空配置文件吗?输入命令 cat .bash_history ,回车,见下图,

可以看到配置文件的内容,没有被清空,说明 history -c 命令仅仅是把内存当中的命令历史清空而已,此时使用向上方向键,也查看不到之前的历史命令,只有刚刚的几条命令。

那么我们执行过的命令,什么时候会保存到这个文件里去呢?举个例子,

现在执行三次 ls 命令,然后再输入命令 cat .bash_history ,回车,

可以看到,这些命令的最后几行,并没有 ls ,再次使用 history 查看,见下图,

此时就可以看到 ls 命令,说明刚刚执行过的命令,目前只存在与内存中,只有退出终端之后,这些命令才可以保存到配置文件 .bash_history 中。

环境变量 HISTSIZE 去哪里定义呢?在 /etc/profile 中,使用 vi /etc/profile 命令进入,搜索一下HIST,

HISTSIZE 默认的量是1000 。

觉得太少的话,可以改成5000 。按字母 i 进入编辑,完成之后,按 Esc 退出编辑,输入 :wq ,保存后退出。

更改完数值之后,不会马上变成5000,需要执行一下 source 命令,才可以生效,见下图,

现在来看一下 history 命令,

上图中,只显示了 ID 号和具体的命令,能不能将对应的命令的运行时间记录下来,这就需要对 HISTSIZE 重新赋值,见下图,

这边需要注意一下,这次更改的赋值,仅对当前的终端操作有效,再次打开终端以后,就会失效。也就是说,系统默认环境变量是不存在的,不要去定义。这时候,再执行 history 命令,

就会看到,命令历史的格式发生了改变,会记录命令的运行日期和时间。以上改变就是环境变量作用的结果。要让改变生效,可以编辑 /etc/profile 文件,输入命令 vim /etc/profile ,回车,见下图,

搜索 HIST ,见下图,

增加一行上图红色框框的内容,保存后退出,执行命令 source ,

退出 Putty ,再重新登录,执行 history 命令,见下图,

可以看到,日期和时间永久生效了。

接着做实验,见下图,

执行上图这条命令以后,这个文件就只能追加,不能删除。
终端没有正常退出时,history 里面就不会保存本次执行过的命令或者保存的命令不全。

另外再讲一下,!! ,!n(n表示数字) ,!word(word表示命令单词) ,详见下图,

原文地址:http://blog.51cto.com/13503302/2072983

时间: 2024-11-01 20:10:12

shell 介绍及命令历史的相关文章

shell介绍、命令历史、命令补全和别名、通配符、输入输出重定向

shell介绍 shell是一个命令解释器,提供用户和机器之间的交互,支持特定语法,比如逻辑判断.循环,每个用户都可以有自己特定的shell CentOS7默认shell为bash(Bourne Agin Shell) 还有zsh.ksh等 命令历史 查看历史命令 [[email protected] ~]# cat .bash_history 修改历史记录条数: vi /etc/profile HISTSIZE=1000 修改查看历史记录的格式: /etc/profile中新增: HISTTI

二十三、shell介绍、命令历史、命令补全和别名、通配符、输入输出重定向

一.shell介绍 shell是系统跟计算机硬件交互使用的中间介质,它只是系统的一个工具.shell和计算机硬件之间还有一层东西--系统内核.若把计算机硬件比作人的躯体,那系统内核就是大脑,shell就是五官.用户直接面对的不是计算机硬件而是shell,用户把指令告诉shell,然后shell再传输给系统内核,接着内核再去支配计算机硬件去执行各种操作. shell是一个命令解释器,提供用户和机器之间的交互. 每个用户都可以有自己特定的shell. centos7默认的shell为bash(Bou

Linux centos7 shell 介绍、 命令历史、命令补全和别名、通配符、输入输出重定向

一.shell介绍 shell脚本是日常Linux系统管理工作中必不可少的,不会shell,就不是一个合格管理员. shell是系统跟计算机硬件交互使用的中间介质,一个系统工具.实际上在shell和计算机硬件之间还有一层--系统内核.如果吧计算机比作人的躯体,那系统内核就是人的大脑,至于shell,把它比做人的五官更贴切. 其实,用户直接面对的不是计算机硬件而是shell,用户把指令告诉shell,然后shell再传给系统内核,接着内核再去支配计算机硬件去执行各种操作. CentOS安装的she

shell介绍,命令历史,命令补全和别名,通配符 ,输入输出重定向

shell介绍 shell是一个命令解释器,提供用户和机器之间的交互 支持特定语法,比如逻辑判断,循环 每个用户都可以有自己特定的shell CentOS7默认shell为bash(Bourne Agin Shell) 还有zsh,ksh等 命令历史 history [[email protected] ~]# ls /root/.bash_history /root/.bash_history [[email protected] ~]# 最大存1000条. [[email protected

shell介绍、命令历史 、 命令补全和别名 、通配符、输入输出重定向

一.shell介绍二.命令历史历史命令存放路径 /root/.bash_history ,默认可以存放1000条命令#history //查看具体的历史命令[[email protected] ~]# echo $HISTSIZE //系统内置环境变量1000 #history -c //清空内存中命令历史,但是存放命令的文件不会被删除#vi /etc/profile // 修改HISTORY环境变量路径/etc/profile,可以吧HISTSIZE=1000改为5000[[email pro

shell介绍,命令历史记录,命令和文件名自动补齐;通配符和输入\输出重定向

shell介绍 Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口.它接收用户输入的命令并把它送入内核去执行.在计算机硬件之间还有一层东西--系统内核.如果把计算机硬件比作一个人的躯体,那系统内核就是人的大脑.至于shell,把它比作人的五官似乎更贴切些.言归正传,用户直接面对的不是计算机硬件而是shell,用户把指令告诉shell,然后shell再传给系统内核,接着内核再去支配计算机硬件去执行各种操作.Bash (GNU Bourne-Again Shell) 是许多Linux

命令历史及自动注销

环境变量位置 系统环境变量位置:/etc/profile 用户环境变量位置:/home/usr 命令历史修改 Shell环境的命令历史机制为用户提供了极大的方便,但另一方面也给用户带来了潜在的风险.只要获得用户的命令历史文件,该用户的命令操作过程将会一览无余,所以命令历史自动注销时必要的. bash终端环境中,历史命令记录为1000条.由变量HISTSIZE控制,通过修改/etc/profile文件中的HSITSIZE变量值,可以影响系统中的所有用户. 首先查看当前历史命令 上图中显示了6条历史

命令历史及“!”的使用

一.命令历史 Shell拥有自动记录命令历史的功能,用户所执行的命令会在注销时自动记录到自己家目录下的.bash_history隐藏文件中.可以通过history命令查看历史记录,所有的命令历史都有记录编号.命令历史能够记录的信息数量由HISTSIZE变量所决定,CentOS6通过/etc/profile文件定义了HISTSIZE=1000,也就是最多可以记录最近所使用的1000条命令,当有第1001条命令执行时,第一条命令会被覆盖,执行history -c命令可以清空所有的历史记录. 二."

8.1 shell 介绍、8.2 命令历史、8.3 命令补全与别名、8.4 通配符、8.5 输入输出重定向

8.1 sehll 介绍 什么是shell shell 是一个命令解释器,提供用户和机器之间交互 支持特定的语法,比如逻辑判断,循环. 每个用户都可以有自己特定的shell. centos7 默认的shell 为bash( Bourne Agin shell ) 还有zsh ,ksh等 8.2 命令历史 /root/.bash_history ;命令历史放置文件 [[email protected] ~]# ls /root/.bash_history/root/.bash_history [[