1.历史命令
1、1作用:查之前使用命令
1、2关于命令历史的文件:
每个用户家目录下面的.bash_history
在关机的时候,会自动写入一次(history -f 将内存中的命令历史写入文件)
1、3变量(环境变量):
Evn //查看环境变量
Set //查看更详细的环境变量参数
HISTSIZE = 1000 数量
HISTCONTROL = ignoredups
Ignoredups 忽略重复的历史命令 – 连续且相同
Ignorespace 忽略空白开头的历史命令,“键入空格开头则不会被记录”
Ignoreboth 两者都生效
例:HISTFILE = /root/.bash_history
HISTFILESIZE = 1000
1、4History的常见操作:
1、4、1 查看命令历史
!# #表示数值,执行#行的命令
!string 匹配最近一次的字符串
!! 上一条命令
*!$* 上一条命令的最后一个参数
例:Ls /etc
Ls !$
ESC+.
1、4、2 常见的选项:
常见命令:
history -d 【编号】//删除某条历史命令
history 【数量】//显示最近展示的命令历史
常见参数:
-a //将缓冲区历史手动添加到文件.bash_history中,重启依旧存在
-c //清空缓存区中的历史命令缓存
常用方式:
!# //运行第#条命令
!! //运行上一条命令(同上键)
!string //运行string最近一行的命令
!$ //上一条命令的最后一部分内容(同‘ESC+.’)
2、命令补全
tab:制表符( )
3、目录补全
tab:提示、自动补全
4、命令展开 -- date
Linux的目录需要遵循FHS目录规则
4、1Date 基于date命令来创建目录文件
%F 输出年月日(CCYY-mm-dd)
+%T hh:MM:ss
+%D mm/dd/yy
%H hh
%M MM
%S ss
练习1:通过for语句循环创建一个月的日志文件;.log 2019-08-6.http.log
For I in {1..31};do Touch `date +%F`.http.log;done
练习2:编辑脚本,每天02:20备份/etc/目录中所有文件,名称为当天日期;且保存文件为 压缩文件
Crontab –20 2 *** /root/xx.sh
Vim xxx.sh
#!/bin/bash
Tar cJvf /var/`date +%F`.xz /etc/
Chmod +x xxx.sh
补充:
Clock / hwclock 常看硬件时钟(如何同步系统时钟与硬件时钟)
Cal 日历
clock、hwclock
4、2压缩工具:(压缩只能对文件进行操作,不能对目录)
Tar 归档工具(可以对目录进行操作)
-z Gzip
-j Bzip2
-J Xz
-c create
Zcat 查看压缩文件且不解压
-x extract 可以不用指定解压工具
-f 指定文件名
-v 显示详细信息
-t 不解压查看内容
例:
5、命令的执行状态
在linux中,每一条命令执行后会有两个结果:
命令本身放回的内容
命令执行的结果状态
$?b变量,就是用来存放命令执行状态的变量:
0 表示成功状态
1 -255 表示失败状态
6、命令的快捷键
ctrl + l
ctrl + c
ctrl + u //删除光标前的字符
ctrl + k //删除光标后的字符
ctrl + a
ctrl + e
ctrl + w //以空格为分隔符,去删除文件
ctrl + r //进入一个交互界面,搜索最近一次使用的命令(要输入string)
7、Alias别名
系统启动时读取一些特殊文件的顺序
/etc/profile 定义环境变量(所有用户) --EXPORT HISTCONTROL=xxx(导入)
/etc/bashrc 定义本地变量—alias(所有用户)
上面两个为当前使用,下面为开机以后还可以用
~/.bash_profile 定义环境变量(指定用户)
~/.bashrc 定义本地变量—alias(指定用户)
Sources/etc/profile 或者 ./etc/profile 输出,调用
8、文件通配符 --globbing
【文件通配符不是正则表达式,】
? 任意单个字符
* 任意长度的任意字符
[] 指定范围内的任意一个字符
^ 以什么开头,
[^] 指定范围以外的任意一个字符
[:punct] 特殊字符
[:digit] 数字
[:lower] 小写字母l
[:space] 空白行