1.命令历史
作用:查看之前使用的命令
关于命令历史的文件
每个家用户目录下面的.bash_history
在关机的时候回自动写入一次(history -r将内存中的命令历史写入文件)
echo "123456"|passwd --stdin "xls-1"为用户xls-1设置密码
关于命令历史的变量(环境变量)
env //查看环境变量
set //查看更加详细的环境变量参数
HISTSIZE=1000 数量
history的常见操作:
查看命令历史
!# #表示数值,执行#行的命令
!string 匹配最近一次的字符串
!! 上一条命令
-d [编号] 删除某条历史命令
!$ 上一条命令的最后的一个参数
ls /etc
ls !$
和ESC+.是一样的
常见的选项
-a 将缓冲区历史手动添加到文件.bash_history中,重启后依然存在
-d 删除某条历史命令
-c 清空缓存区中的历史命令缓存
history # 显示最近#行的命令
作用:查看之前使用的命令
关于命令历史的文件
每个家用户目录下面的.bash_history
在关机的时候回自动写入一次(history -r将内存中的命令历史写入文件)
echo "123456"|passwd --stdin "xls-1"为用户xls-1设置密码
关于命令历史的变量(环境变量)
env //查看环境变量
set //查看更加详细的环境变量参数
HISTSIZE=1000 数量
history的常见操作:
查看命令历史
!# #表示数值,执行#行的命令
!string 匹配最近一次的字符串
!! 上一条命令
-d [编号] 删除某条历史命令
!$ 上一条命令的最后的一个参数
ls /etc
ls !$
和ESC+.是一样的
常见的选项
-a 将缓冲区历史手动添加到文件.bash_history中,重启后依然存在
-d 删除某条历史命令
-c 清空缓存区中的历史命令缓存
history # 显示最近#行的命令
2.命令补全
tab
1.提示 2.自动补全
扩展:制表符 四个空格
tab
1.提示 2.自动补全
扩展:制表符 四个空格
3.目录补全
tab
1.提示 2.自动补全
对象
tab
1.提示 2.自动补全
对象
4.命令展开—date命令
{,}
Linux的目录需要遵循什么规则?--FHS目录规则
{,}
Linux的目录需要遵循什么规则?--FHS目录规则
属性1 属性2
a 1
b 2
mkdir -pv /var/{a,b}-{1,2}
a 1
b 2
mkdir -pv /var/{a,b}-{1,2}
date 基于date命令来创建目录 date +%F-%H-%M-%S输出时间并加上时分秒(-%m月,-%s)
%F CCYY-mm-dd年月日
%H hh
%M MM
%S ss
%T hh:MM:ss时间时分秒
%D mm/dd/YY月日年
%F CCYY-mm-dd年月日
%H hh
%M MM
%S ss
%T hh:MM:ss时间时分秒
%D mm/dd/YY月日年
练习:通过for语句循环创建一个月的日志文件;.log 2019-08-6.http.log
touch 'date + %F'.http.log
for i in {1..30};do
touch 'date +%Y-%m-$i'.http.log
done
touch 'date + %F'.http.log
for i in {1..30};do
touch 'date +%Y-%m-$i'.http.log
done
Tar
压缩工具
【只能对文件进行操作,而不能对目录进行压缩】
gzip
hzip2
xz
Zcat //查看压缩文件且不解压
tar的常见参数:
tar归档工具【可以对目录进行操作】
-j 有bzip2属性的
-J xz
-z gzip
-c create建立压缩文档
-x extract //解压,可以不用指定解压的工具
-f 指定文件名,后面只能接档案名
-v 显示详细信息
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件
-t 不解压查看内容 和 zcat一样
tar cjvf 2018-08.http.log.bz2 2018-08-*.http.log
tar xvf 2018-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
补充:
clock / hwclock 常看硬件时钟(如果同步系统时钟与硬件时钟)
cal 日历
5、命令的执行状态
在Linux中,每一条命令执行后都会有两个结果:
命令本身放回的内容
其次,命令执行的结果状态
命令本身放回的内容
其次,命令执行的结果状态
$? 变量,就是用来存放命令执行状态的变量;
0 表示成功状态(和Python正好相反)
1-255 表示失败状态
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)
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生效;
alias cdnet="cd /etc/sysconfig/network-scriptes" //这种方式定义alias只能在当前shell生效;
/etc/profile : 定义环境变量(所有用户) -- EXPORT HISTCONTROL = XXX
/etc/bashrc : 定义本地变量--alias(所有用户)
~/.bash_profile : 定义环境变量(指定用户)
~/.bashrc : 定义本地变量--alias(指定用户)
/etc/bashrc : 定义本地变量--alias(所有用户)
~/.bash_profile : 定义环境变量(指定用户)
~/.bashrc : 定义本地变量--alias(指定用户)
sources /etc/profile 或者 ./etc/profile
8、文件通配符 -- globbing
【文件通配符不是正则表达式】
? 任意单个字符
* 任意长度的任意字符
[] 指定范围内的任意一个字符
^ 1、以什么开头
2、[^]指定范围以外的任意一个字符
[^0-9A-Za-z]
[0-9][a-z][A-Z][a-zA-Z]
* 任意长度的任意字符
[] 指定范围内的任意一个字符
^ 1、以什么开头
2、[^]指定范围以外的任意一个字符
[^0-9A-Za-z]
[0-9][a-z][A-Z][a-zA-Z]
指定字符类:
[:alnum:],[:alpha:],[:cnyrl:],[:dight:],[:graph:],[:lower:],[:print:]
[:punct:],[:space:],[:upper:],and[:xdigit:]
[:alnum:],[:alpha:],[:cnyrl:],[:dight:],[:graph:],[:lower:],[:print:]
[:punct:],[:space:],[:upper:],and[:xdigit:]
^*[[:space:]]*$