『忘了再学』Shell基础 — 4、Bash基本功能(history命令)
在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的功能。
『忘了再学』Shell基础 — 4、Bash基本功能(history命令)的更多相关文章
- 『忘了再学』Shell基础 — 31、字符处理相关命令
目录 1.排序命令sort (1)sort命令介绍 (2)练习 2.取消重复行命令uniq 3.统计命令wc 1.排序命令sort (1)sort命令介绍 sort命令可针对文本文件的内容,以行为单位 ...
- 『忘了再学』Shell基础 — 26、cut列提取命令
目录 1.cut命令说明 2.cut命令练习 (1)cut命令基本用法 (2)cut命令选取多列 (3)按字符来进行提取 (4)按指定分隔符进行截取数据 3.cut命令分隔符说明 1.cut命令说明 ...
- 『忘了再学』Shell基础 — 3、echo命令的介绍与使用
目录 1.echo命令的作用 2.echo命令的基本用法 3.echo命令的-e选项用法 4.echo命令一些特殊用法 (1)输出字符带有字体颜色 (2)输出字符带有背景颜色 在讲Shell脚本之前, ...
- 『忘了再学』Shell基础 — 10、Bash中的特殊符号(二)
提示:本篇文章接上一篇文章,主要说说()小括号和{}大括号的区别与使用. 8.()小括号 ():用于一串命令执行时,()中的命令会在子Shell中运行.(和下面大括号一起说明) 9.{}大括号 {}: ...
- 『忘了再学』Shell基础 — 2、Shell的作用与分类
目录 1.Shell的作用 2.Shell的分类 1.Shell的作用 Shell除了能解释用户输入的命令,将它传递给内核,还可以: 调用其他程序,给其他程序传递数据或参数,并获取程序的处理结果. 在 ...
- 『忘了再学』Shell基础 — 8、管道符介绍
我们之前已经有文章说过管道符了,今天这里再简单总结一下用法. 1.行提取命令grep grep命令的作用,是在指定的文件中,搜索符合条件的字符串. 命令格式: [root@localhost ~ ] ...
- 『忘了再学』Shell基础 — 24、Shell正则表达式的使用
目录 1.正则表达式说明 2.基础正则表达式 3.练习 (1)准备工作 (2)*练习 (3).练习 (4)^和$练习 (5)[]练习 (6)[^]练习 (7)\{n\}练习 (8)\{n,\}练习 ( ...
- 『忘了再学』Shell基础 — 25、扩展正则表达式
目录 1.扩展正则表达式说明 2.练习 (1)+和?练习 (2)|和()练习 3.注意(重点) 1.扩展正则表达式说明 熟悉正则表达式的童鞋应该很疑惑,在其他的语言中是没有扩展正则表达式说法的,在Sh ...
- 『忘了再学』Shell基础 — 30、sed命令的使用
目录 1.sed命令说明 2.行数据操作 (1)查看文件中的数据 (2)删除文件中的数据 (3)向文件中追加数据 (4)向文件中插入数据 (5)修改文件中的多行数据(删除,追加,插入) (6)替换文件 ...
随机推荐
- CentOS7编译安装升级openssh8.7p1
因生成环境服务器安全扫描出的漏洞问题,只能升级最新的openssh,适用于centos6和centos7的升级使用. 一.编译前工作 openssl版本要求1.0.1以上,zlib版本要求1.1.4以 ...
- CentOS7 下 ldap 部署
环境准备 # 关闭防火墙以及selinux,生产环境中,以实际需求为准 [root@localhost ~]# hostnamectl --static set-hostname ldap-serve ...
- Vue.js——学习笔记
Vue-自学笔记 Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架.与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用.Vue 的核心库只关注视图层,不仅 ...
- QQ表情代码大全,你知道几个??
很久没有给大家分享代码了,今天趁着有点时间来给大家分享一下QQ空间的表情代码!不用感谢我,大家拿去用吧! [em]e100[/em] 微笑bai[em]e101[/em] 撇嘴[em]e102[/em ...
- python中try...excpet多种使用方法
1 print('\n欢迎使用除法计算器!\n') 2 3 while True: 4 try: 5 x = input('请你输入被除数:') 6 y = input('请你输入除数:') 7 z ...
- Wi-Fi DFS与TPC介绍
DFS与TPC是wifi认证的其中一项测试内容,如果不需要DFS功能,可以不进行测试,但是某些属于DFS频段的wifi信道则不允许使用. 1. 什么是WIFI Auto DFS? 通俗的说就是:躲雷达 ...
- Java基础--Eclipse关联Java源码
打开Eclipse,Window->Preferences->Java 点Edit按钮后弹出: 点Source Attachment后弹出: 选择Java安装路径下的src.zip文件即可 ...
- c# 自定义控件-提示框(弹框)
分带取消按钮和不带取消按钮的 调用方法: frmMessageBox frm = new frmMessageBox("提示", "数据连接失败,请重试!", ...
- burpsuite常见问题
中文乱码问题:https://www.cnblogs.com/bk76120/p/12400092.html 无法抓取本地或局域网其他主机的包 去掉"对于本地地址不使用代理服务器" ...
- c# TabControl控件中TabPage选项卡切换时触发的事件
选项卡切换触发的是tabcontrol控件的SelectedIndexChanged事件. 当tabcontrol控件的任何一个tabpage被点击或选择,即发生SelectedIndexChange ...