命令历史:
查看已经使用过的命令
关于历史命令的文件
每个用户的家目录下的./bash_history
在关机的时候,会自动写入一次(history -r ) 手动写入
关于历史命令的变量(环境变量)
env //查看环境变量
set //查看更详细的环境变量参数
HISTSIZE=1000 //数量
HISTCONTROL=ignoredups 忽略重复的历史命令
ignorespace 忽略空白开头的历史命令
ignoreboth 两个都生效
history的常见操作
查看历史命令
!# #便是数值,执行#行的命令
!String 匹配最近一次的字符串
!! 上一条命令
*!$* 上调命令的最后一个参数
ls /etc
ls !$
=esc .
命令补全
TAB键
命令展开——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
%H hh
%D mm/dd/YY
%M MM
%S ss
练习:通过for语句创建一个月的日志文件 2019-08-06.log
touch `date %F`.log
for I in {1..30}:do
touch `date +%Y-%m-$i`.log
done
压缩工具
只能对文件压缩,不能对目录进行操作
gzip
bzip2
xz9
tar归档可以对目录进行操作
-j bzip2
-J xz
-z gzip
-c create
-x extract //可以不用指定解压工具
-f 指定文件名
-v 显示详细信息 verbose
-t 不解压查看内容
tar cjvf 2018-08-*.log.bz2 2018-08-*.log
tar xvf 2018-08-*.log.bz2 -C abc
练习:编写脚本,每天2:20备份/etc/目录中所有文件,名称为当天日期;并且文件为压缩文件
crontab --20 2 * * * /root/xxx.sh
vim xxx.sh
#!/bin/bash
#
tar cJvf /var/ `date +%F`.xz /etc/*
chmod +x xxx.sh
clock / hwclock 查看硬件时钟 (如何同步系统与硬件时钟)
cal 日历
命令的执行状态
在Linux中,每一条命令执行后都会有两个结果
命令本身放回的内容
其次,命令执行的结果状态
$? 变量,就是用来存放命令执行状态的变量:
0 表示成功状态
1-255 表示失败状态
[$? -eq0]&&exit0||exit1
命令快捷键:
ctrl +I
Ctrl +c
Ctrl +u //删除光标前的字符
Ctrl +k //删除光标后的字符
Ctrl +a
Ctrl +e
Ctrl +w //以空格为分隔符,去删除文件
Ctrl +r //进入一个交互界面,搜索最近一次使用的命令
alias别名
系统启动时读取一些特殊文件的顺序
alisa cdnet="cd /etc/sysconfig/network-scriptes/" //这种方式定义的alias只能在当前shell生效
/etc/profile:定义环境变量(所有用户)
/etc/bashrc:定义本地变量--alias
~/.bash_profile:定义环境变量(指定用户)
~/.bashrc:定义本地变量--alias(指定用户)
文件通配符--globbing
[文件通配符不是正则表达式]
? --任意单个字符
* -- 任意长度的任意字符
[] --指定范围内的任意一个字符
^ --1:以什么开头
2:【^】指定范围之外的任意一个字符
【^0-9A-ZA-z】
【0-9】【a-z】【A-Z】【a-zA-Z】
作业:
1.显示/var目录下所有以1开头的,以小写字母结尾,且中间出现至少一位数字的文件或目录
ls /var/1*[0-9]*[a-z]
2.显示/etc下,以任意一位数字开头,且以非数字结尾的文件或目录
ls /etc/[^0-9]*[0-9]
3.显示/etc目录下,以非字母开头,后面跟了一个字母及其它任意长度任意字符的文件或目录
ls /etc/[^[:alpha:]][[:alpha:]]*
4.复制/etc目录下,所有以m开头,以非数字结尾的文件或目录至/tmp/test目录中;
cp /etc/m*[^0-9] /tmp/test
5.复制/etc目录下,所有以.d结尾的文件或目录至/tmp/test.com目录中
cp /etc/*.d /tmp/test.com
6.
复制/etc目录下,所有.conf结尾,且以m n r p开头的文件或目录至/tmp/test.com目录中
cp /etc/[mnrp]*.conf /tmp/test.com