1.命令历史
作用:查之前使用的命令关于命令历史的文件
每个用户家目录下面的-->.bash_history
在关机的时候,会自动写入一次(history -r 将内存中的命令历史写入文件)
关于命令历史的变量(环境变量)
env //查看环境变量
set //查看更详细的环境变量参数
HISTSIZE=1000 存入命令的数量
HISTCONTROL=ignoredups 忽略重复的历史命令,连续且相同才叫重复
ignorespace 忽略空白开头的历史命令,键入空格开头则不会被记录
ignoreboth 两者都生效
HISTFILESIZE=1000
HISTFILE=/root/.bash_history
history的常见操作
查看命令历史---!# #表示数值,执行#行命令
!string ---匹配最近一次的字符串
!!----上一条命令
!$----上一条命令的最后一个参数(非常重要的命令)
常见的选项:
-a 将缓冲区历史手动添加到文件中,重启依然存在
-d [编号] 删除某条历史命令
-c 清空缓存区的历史命令
history # 显示最近#行的命令
作用:1.提示 2.自动补全
在开发语言里,tab键叫做制表符-- ,代表4个空格
查看命令历史---!# #表示数值,执行#行命令
!string ---匹配最近一次的字符串
!!----上一条命令
!$----上一条命令的最后一个参数(非常重要的命令)
常见的选项:
-a 将缓冲区历史手动添加到文件中,重启依然存在
-d [编号] 删除某条历史命令
-c 清空缓存区的历史命令
history # 显示最近#行的命令
2.命令补全
tab键作用:1.提示 2.自动补全
在开发语言里,tab键叫做制表符-- ,代表4个空格
3.目录补全
tab键作用:1.提示 2.自动补全
4.命令展开——date命令
{}---展开命令,支持一个‘,’作为分隔符0Linux的目录需要遵循什么规则?
FHS目录规则,不是约定俗成,就是一个规定
date 基于date命令来创建目录
%F CCYY-mm-dd 年月日
%T hh:mm:ss 时分秒
%D mm/dd/YY 月/日/年
%H hh 小时
%M MM 分钟
%S ss 秒
%F CCYY-mm-dd 年月日
%T hh:mm:ss 时分秒
%D mm/dd/YY 月/日/年
%H hh 小时
%M MM 分钟
%S ss 秒
练习:通过for语句,循环创建一个月的日志文件;.log --> 2019-08-06.log
for i in {1..30};do
touch `date +%Y-%m-$i`.http.log
done
如果把命令写在一行中,需要用;分隔每条语句
tar -- 本身不是压缩工具。是归档工具(压缩与解压缩)
压缩工具--> bzip2/gzip/xz
-j --> bzip2
-J --> xz
-z --> gzip
zcat //查看压缩文件且不解压
-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/
chmod -x xxx.sh
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 日历
命令本身放回的内容
其次,命令执行的结果状态
$? 变量,就是用来存放命令执行状态的变量
0 表示成功状态(和Python正好相反)
1-255 表示失败状态
cal 日历
5.命令的执行状态
在Linux中,每一条命令执行后都会有两个结果命令本身放回的内容
其次,命令执行的结果状态
$? 变量,就是用来存放命令执行状态的变量
0 表示成功状态(和Python正好相反)
1-255 表示失败状态
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-scrptes" --> 这种方式定义alias只能在当前shell生效
/etc/profile --> 定义环境变量(所有用户)--EXPORT HISTCONTROL=xxx(导入)
/etc/bashec --> 定义本地变量--alias(所有用户)
~/.bash_profile --> 定义环境变量(指定用户)
~/.bashrc --> 定义本地变量--alias(指定用户)
sources /etc/profile 或者 ./etc/profile 使文件生效
五种常见的通配符 ? * [] ^ 指定字符类
? --> 任意单个字符
* --> 任意长度的任意字符
[] --> 指定范围内的任意一个字符
^ 1.以什么开头
2.[^] 指定范围以外的任意一个字符[^0-9A-Za-z]
指定字符类
[:alnum:],[:alpha:],[:cntrl:],[:digit:],[:graph:],[:lower:],[:print:],[:punct:],[:space:],[:upper:],and [:xdigit:]
/etc/bashec --> 定义本地变量--alias(所有用户)
~/.bash_profile --> 定义环境变量(指定用户)
~/.bashrc --> 定义本地变量--alias(指定用户)
sources /etc/profile 或者 ./etc/profile 使文件生效
8.文件通配符
文件通配符不是正则表达式五种常见的通配符 ? * [] ^ 指定字符类
? --> 任意单个字符
* --> 任意长度的任意字符
[] --> 指定范围内的任意一个字符
^ 1.以什么开头
2.[^] 指定范围以外的任意一个字符[^0-9A-Za-z]
指定字符类
[:alnum:],[:alpha:],[:cntrl:],[:digit:],[:graph:],[:lower:],[:print:],[:punct:],[:space:],[:upper:],and [:xdigit:]