1.命令历史
作用:查询之前使用的命令
关于命令历史的文件
每个用户家目录下面的.bash_history
在关机的时候,会自动写入一次(history -r 将内存中的命令历史写入文件)
关于命令历史的变量(环境变量)
env //查看环境变量
set //查看更详细的环境变量参数
HISTSIZE=1000 记录数量
HISTCONTRAL=ignoredups
HISTFILE=/root/.bash_history
HISTFLESIZE=1000
history的常见操作
查看命令历史:
!#:#表示数值,执行#行的命令
!string:匹最近一次的字符串
!!:上一条命令
!$:上一条命令的最后一个参数(同“ESC+.”)
常见的选项:
-a 添加
-d 删除
-c 清空
history # 显示最近#行的命令
2.命令补全
tab
扩展:制表符 \t 四个空格键
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
练习:通过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
tar
压缩工具
【压缩只能对文件进行操作,不能对目录进行操作】
gzip
bzip2
xz
zcat --查看压缩文件且不解压
tar的常见参数:
tar归档工具【可以对目录进行操作】
-j bzip2
-J xz
-z gzip
-c create【压缩】
-x extract【解压】 //可以不用指定的解压工具
-f 指定文件名
-v 显示详细信息 verbose
-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.命令行的执行状态
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 定义环境变量(所有用户) --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]
指定字符类:
[:digit:] 任意数字, 相当于0-9
[:lower] 任意小写字母
[upper:] 任意大写字母
[alpha:] 任意大小写字母
[:alnum:] 任意数字或字母
[:blank:] 水平空白字符
[:space:] 水平或垂直空白字符
[punct:] 标点符号
[print:] 可打印字符
[:cntrl:] 控制(非打印)字符
[:graph:] 图形字符
[xdigit:] 十六进制字符
^[[:space:]]*$ --有空格键的空行(正则表达式)
【调用这些字符类型时再加一个[]号】
9.练习
原文:https://www.cnblogs.com/Rubyonly/p/11347229.html