bash的基本特质
1.命令 历史
作用:查之前使用的命令
关于命令历史的文件:每个用户家目录下面的.bash_hishory;
在关机的时候,会自动写入一次(history -r 将内存中的命令历史写入文件)
关于命令历史的变量(环境变量):
env //查看环境变量
set //查看更详细的环境变量参数
HISTSIZE = 1000 数量
history 的常见操作:
查看命令历史
!# //#表示数值,执行#行的命令
!string //匹配最近一次的字符串
!! //上一条命令
!$ //上一条命令的最后一个参数
例:ls /etc ——>ls !$
ESC+.
history 的常见选项:
-a
-d
-c
history# //显示最近的#行命令
2.命令 补全
Tab键
作用:1.提示 2.自动补全
扩展:制表符 /t (代表4个空格键)
3.目录补全
Tab键
作用:1.提示 2.自动补全
4.命令展开——date命令
1.{}:
Linux的目录需要遵循什么规则?---FHS目录规则
2.属性1 属性2
a 1
b 2
mkdir -pv /var/{a,b}-{1,2}
date 基于date命令来创建目录
%F CCYY-mm-dd
%T 小时hh:MM:ss
%D mm/dd/YY
%H 小时hh
%M 分钟MM
%S 秒ss
%Y CCYY
clock / hwclock 查看硬件时钟(如果同步系统时钟与硬件时钟)
cal 日历
练习:通过for语句循环创建一个月的日志文件(.log)2019-08-06.http.log
#touch `date +%F`.http.log
for i in {1...30};do
touch `date +%Y-%m-$i`.http.log
done
5.tar 归档工具 (压缩与解压)
【压缩只能对文件操作,不能对目录操作】
压缩工具:
gzip
bzip2
xz
(zcat //不解压查看)
tar的常见参数:
tar归档工具【可以对目录进行操作】
-j bzip2
-J xz
-z gzip
-c create(压缩)
-x extract(解压)//可以不用指定的工具
-f 指定文件名
-v 显示详细信息显示verbose
-t 不解压查看和zcat一样
例子:tar cjvf 2019-08.http.log.bz2 2018-08-*.http.log(压缩)
tar xvf 2019-08-*.http.log.bz2 -C abc(解压)
练习:编写脚本,每天02:20备份/etc/目录中所有文件,名称为当天日期;且保存文件为压缩文件
crontab --> 20 2 * * * /root/xxx.sh
vim xxx.sh
#!/bin/bash
tar cJvf /var/`date +%F`.xz /etc/
chmod +x xxx.sh
6.命令的执行状态
在Linux中每一条命令执行后都会有两个结果:
命令本身放回的内容
其次,命令执行的结果状态
$?变量,就是用来存放命令执行状态的变量:
0 表示成功状态
1-255 表示失败状态:
127--->命令找不到
2--->文件或目录不存在
13--->没有权限
......
7.命令的快捷键
ctrl + l
ctrl + c
ctrl + u //删除光标前的字符
ctrl + k //删除光标后的字符
ctrl + a //把光标移动到开头
ctrl + e //把光标移动到结尾
ctrl + w //以空格为分隔符,去删除文件
ctrl + r //进入一个交互界面,搜索最近一次使用的命令
8.alias别名
系统启动时,读取一些特殊文件的顺序;
alias cdnet="cd /etc/sysconfig/network-scriptes" //这种方式定义的alias只能在当前shell成立
/etc/profile //定义环境变量(所有用户)---EXPORT HISTCONTROL=XXX
/etc/bashrc //定义本地变量 alias--(所有用户)
~/.bash_profile //定义环境变量(指定用户)
~/.bashrc //定义本地变量 alias--(指定用户)
sources /etc/profile 或者 . /etc/profile
8、文件通配符 -- globbing
【文件通配符不是正则表达式】
? 任意单个字符
* 任意长度的任意字符
[] 指定范围内的任意一个字符
[^] 指定范围以外的任意一个字符
[0-9A-Za-z]
[0-9] [a-z] [A-Z] [a-zA-Z]
指定字符类:
[:alnum:] 字母加数字, [:alpha:] 字母, [:cntrl:] , [:digit:] 数字, [:graph:], [:lower:] 小写字母, [:print:],
[:punct:], [:space:] 空格, [:upper:] 大写字母, and [:xdigit:]
^[[:space:]]*$ //有空格键的空行(正则表达式)