bash的基本特性
1.命令历史
作用:查看之前使用的命令
关于命令历史的文件
每个用户家目录下面的 .bash_history
在关机的时候,会自动写入一次
关于买了历史的变量(环境变量)
env //查看环境变量
set //查看更详细的环境变量参数
HISTSIZE=1000 数量
HISTCONTR=ignoredups
Ignoredups 忽略空白开头的历史命令 -- 连接且相同,才叫重复
Ignorespace 忽略空白开头的历史命令 “键入空格开头则不会被记录”
Ignoreboth 两者都生效
HISTFILE=/root/.bash_history
HISFILESIZE=1000
history 的常见操作
查看命令历史
!# #表示数值,执行#行的命令
! string 匹配最近的一次字符串
!! 上一条命令
*!$* 上一条命令的最后一个参数
ls /etc
ls !$
ESC+.
常见的选项:
-a
-d
-c
history # 显示最近#行的命令
2.命令补全
tab
作用:1.提示 2.自动补全
扩展:制表符 四个空格键
3.目录补全
tab
作用:1.作用 2.自动补全
4.命令展开—date命令
{,}逗号做分隔符
Linux的目录需要遵循—FHS目录规则
属性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 YY
tar
压缩工具
【压缩 只能对文件进行操作,而不能对目录进行操作】
gzip
bzip2
xz
zcat //查看压缩文件且不解压
tar的常见参数:
tar 归档工具【可以对目录进行操作】
-j bzip2
-J xz
-z gzip
-c create
-x extract //可以不用指定解压的工具
-f 指定文件名
-v 显示详细信息 verbose
-t 不解压查看内容和zcat一样
练习:编写脚本,每天02:20备份/etc/目录中所有文件,名称为当天日期;且保存文件为压缩文件;
crontab -- 20 2 * * * /root/xxx.sh
vim xxx.sh
#!/bin/bash
#
tar cJvf /var/'date +%F'.xz /etc/
补充:
clock / hwclock 查看硬件时钟(如何同步系统时钟与硬件时钟)
cal 日历
5.命令的执行状态
在Linux中,每一条命令执行后都会有两个结果:
命令本身放回的内容
其次,命令执行的结果状态
$? 变量,就是用来存放命令执行的变量;
0 表示成功状态 (和Python正好相反)
1-255 表示失败状态
[ $? -eq 0 ] && exit 0 || exit 1
6.命令的的快捷键
ctrl + l
ctrl + c
ctrl + u //删除光标签的字符
ctrl + k //删除光标后的字符
ctrl + a
ctrl + e
ctrl + w //以空格为分隔符,去删除文件
ctrl + r //进入一个交互界面,搜索最近一次使用的命令(要输入string)
7.alias别名
系统启动时读取一些特殊文件的顺序;
alias
alias cdnet="cd /etc/sysconfig/network-scriptes" //这种方式定义alias只能在当前shell生效;
/etc/profile : 定义环境变量(所以用户)
~/.bash_profile :定义本地变量--alias (所有用户)
~/.bashrc : 定义环境变量(指定用户)
~/.bashrc :定义本地变量--alias(指定用户)
source /etc/profile 或者 ./etc/profile (.代表source)
8.文件通配符 --globbing
【文件通配符不是正则表达式】
? 任意单个字符
* 任意长度的任意字符
[] 指定范围内的任意一个字符
^ 1.以什么开头
2.[^]指定范围以外的任意的一个字符
指定字符类[^0-9A-Za-z]
指定字符类:
[:alnum:],[:alpha:],[:cntrl:],[:digit:],[:graph:],[:lower:],[:print:],
[:punct:],[:space:],[:upper:],and [:xdigit:]
^*[[:space:]]*$ 空白行
data
clock
hwclockw