1,touch
创建文件、修改文件的时间属性
#修改 文件 的时间属性为当前系统时间,若文件不存在则创建该文件
touch a.txt
# 查看文件的时间属性
ls -l a.txt
# 同时创建多个文件
touch a.txt b.txt c.txt
grep
根据通配符或正则、或字符串,查找文件中符合条件的字符串
#### grep 的一些用法
#获取前后10行信息
grep -C 10 xxxx
# 获取后10行信息
grep -A 10 xxxx
# 获取前10行信息
grep -B 10 xxxx
# 查找 file 中含有 test 字符串行
grep test file
# grep -v 显示不包含皮匹配文本的所有行
# 返回 file 中 不包含 test 的所在行
grep -v test file
# grep -i 忽略字符大小写差别,匹配符合条件的行
grep -i test file
# grep -n 显示符合样式行之前,标示改行的列数编号
grep -n test file
awk
用于处理文本文件处理
语法
awk [选项参数] 'script' var=value file(s)
或
awk [选项参数] -f scriptfile var=value file(s)
# 文件内容输出
[root@iZbp17s7yy3gebi3kmf7naZ opt]# cat test.txt
s is a test
3 Do you like awk
This's a test
10 There are orange,apple,mongo
# 默认情况下,awk 以空格进行分割,每一行分别取第一、四列字符
[root@iZbp17s7yy3gebi3kmf7naZ opt]# awk '{print $1,$4}' test.txt
s test
3 like
This's
10 orange,apple,mongo
# awk -F 指定, 作为分隔符
[root@iZbp17s7yy3gebi3kmf7naZ opt]# awk -F, '{print $1,$4}' test.txt
s is a test
3 Do you like awk
This's a test
10 There are orange
# awk -F 指定多个字符 作为分隔符
[root@iZbp17s7yy3gebi3kmf7naZ opt]# awk -F '[ ,]' '{print $1,$4}' test.txt
s test
3 like
This's
10 orange
[root@iZbp17s7yy3gebi3kmf7naZ opt]#
# awk -v 设置变量
[root@iZbp17s7yy3gebi3kmf7naZ opt]# awk -va=1 '{print $1,$1$a}' test.txt
s ss
3 33
This's This'sThis's
10 1010
# awk -f [awk脚本] [文件名],以脚本方式处理文件
awk -f cal.awk text.txt
awk 用到的运算符
运算符 | 描述 |
---|---|
= += -= *= /= %= ^= **= | 赋值 |
?: | C条件表达式 |
|| | 逻辑或 |
&& | 逻辑与 |
~ 和 !~ | 匹配正则表达式和不匹配正则表达式 |
< <= > >= != == | 关系运算符 |
空格 | 连接 |
+ - | 加,减 |
* / % | 乘,除与求余 |
+ - ! | 一元加,减和逻辑非 |
^ *** | 求幂 |
++ – | 增加或减少,作为前缀或后缀 |
$ | 字段引用 |
in | 数组成员 |
[root@iZbp17s7yy3gebi3kmf7naZ opt]# cat test.txt
1 is a test
3 Do you like awk
This's a test
10 There are orange,apple,mongo
#过滤第一列大于2 的行
[root@iZbp17s7yy3gebi3kmf7naZ opt]# awk '$1>2' test.txt
3 Do you like awk
This's a test
10 There are orange,apple,mongo
# 过滤第一列大于2,且第二列未 Do 的行
[root@iZbp17s7yy3gebi3kmf7naZ opt]# awk '$1>2 && $2=="Do" {print $1,$2,$3}' test.txt
3 Do you
内建变量
变量 | 描述 |
---|---|
$n | 当前记录的第n个字段,字段间由FS分隔 |
$0 | 完整的输入记录 |
ARGC | 命令行参数的数目 |
ARGIND | 命令行中当前文件的位置(从0开始算) |
ARGV | 包含命令行参数的数组 |
CONVFMT | 数字转换格式(默认值为%.6g)ENVIRON环境变量关联数组 |
ERRNO | 最后一个系统错误的描述 |
FIELDWIDTHS | 字段宽度列表(用空格键分隔) |
FILENAME | 当前文件名 |
FNR | 各文件分别计数的行号 |
FS | 字段分隔符(默认是任何空格) |
IGNORECASE | 如果为真,则进行忽略大小写的匹配 |
NF | 一条记录的字段的数目 |
NR | 已经读出的记录数,就是行号,从1开始 |
OFMT | 数字的输出格式(默认值是%.6g) |
OFS | 输出字段分隔符,默认值与输入字段分隔符一致。 |
ORS | 输出记录分隔符(默认值是一个换行符) |
RLENGTH | 由match函数所匹配的字符串的长度 |
RS | 记录分隔符(默认是一个换行符) |
RSTART | 由match函数所匹配的字符串的第一个位置 |
SUBSEP | 数组下标分隔符(默认值是/034) |
[root@iZbp17s7yy3gebi3kmf7naZ opt]# awk 'BEGIN{printf "%4s %4s %4s %4s %4s %4s %4s %4s %4s\n","FILENAME","ARGC","FNR","FS","NF","NR","OFS","ORS","RS";printf "---------------------------------------------\n"} {printf "%4s %4s %4s %4s %4s %4s %4s %4s %4s\n",FILENAME,ARGC,FNR,FS,NF,NR,OFS,ORS,RS}' test.txt
FILENAME ARGC FNR FS NF NR OFS ORS RS
---------------------------------------------
test.txt 2 1 4 1
test.txt 2 2 5 2
test.txt 2 3 3 3
test.txt 2 4 4 4
cat
cat
用于连接文件并将文件中内容打印到标准输出设备上
$ cat file2.txt
a-bc
# 打印文件内容
cat -n
# 只看前10行
cat head - 10 XXX
# 只看后n行
tail -10 XXX
# 后跟 | grep * 可以对是输出数据利用正则判断进行筛选过滤,
# 只查看 xxx 中包含 "Exception" 的内容信息
cat xxx | grep 'Exception'
# 查看 xxx 中包含 "Exception" 的前后10行的日志信息
cat xxx | grep -C 10 'Exception'
# 查看 Linux当前操作系统版本信息
cat /proc/version
# Linux查看版本当前操作系统发行版信息
cat /etc/issue 或 cat /etc/redhat-release
zcat 命令
使用该命令能够做到不解压压缩包,并且能够看到压缩包里面的信息,实例如下:
zcat app-logs/app.log.2022-04-19.0.gz
echo
标准输出,或将字符传入文件中
echo ".doc\n.docx" > .gitignore
df
2.1 df 和 du
df 命令
- df -hl:查看磁盘剩余空间
- df -h:查看每个根路径的分区大小
- du -sh [目录名]:返回该目录的大小
- du -sm [文件夹]:返回该文件夹总M数
- du -h [目录名]:查看指定文件夹下的所有文件大小(包含子文件夹)
du
命令
- -s:对每个Names参数只给出占用的数据块总数。
- -a:递归地显示指定目录中各文件及子目录中各文件占用的数据块数。若既不指定-s,也不指定-a,则只显示Names中的每一个目录及其中的各子目录所占的磁盘块数。
- -b:以字节为单位列出磁盘空间使用情况(系统默认以k字节为单位)。
- -k:以1024字节为单位列出磁盘空间使用情况。
- -c:最后再加上一个总计(系统默认设置)。
- -l:计算所有的文件大小,对硬链接文件,则计算多次。
- -x:跳过在不同文件系统上的目录不予统计。
- -h:以K,M,G为单位,提高信息的可读性。
查看Linux 系统
uname -a
- (Linux查看版本当前操作系统内核信息)
export
Linux export 命令用于设置或显示环境变量,export 可新增,修改或删除环境变量,供后续执行的程序使用。export 的效力仅限于该次登陆操作。
export [-fnp][变量名称]=[变量设置值]
- -f 代表[变量名称]中为函数名称。
- -n 删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。
- -p 列出所有的shell赋予程序的环境变量。
ps
查看内存中运行的进程记录,以及进程启动对应的 cmd 以及程序名,并杀死
ps aux | grep -nE 'programe' | grep -v grep | awk '{print $2}' | xargs kill -9
top
- 命令功能
查看服务器各进程中 CPU 以及内存执行情况
- 命令格式
top [参数]
- 命令参数
https://fxlab.oss-cn-beijing.aliyuncs.com/admin/2022/07/27/clock/clock_1658917012773.png.https://fxlab.oss-cn-beijing.aliyuncs.com/admin/2022/07/27/clock/clock_1658917012783.png.https://fxlab.oss-cn-beijing.aliyuncs.com/admin/2022/07/27/clock/clock_1658917012785.png.https://fxlab.oss-cn-beijing.aliyuncs.com/admin/2022/07/27/clock/clock_1658917012787.png
cron 定时任务
- 1,创建一个 sh 任务执行脚本,如下为备份当天的数据脚本,并删除过往30天的历史记录
DATE=`date +%F`
OLDATE=`date -d -30days +%F`
mysqldump -h127.0.0.1 -u root -pa123456 lining-1990-xkc | gzip > /home/backup/mysql/dbname_$DATE.sql.gz
#DELETE
rm -rf /home/backup/mysql/$OLDATE.sql
- 2,crontab -e ,进入编辑区,设置执行时间频率,如下操作
cron介绍
我们经常使用的是crontab命令是cron table的简写,它是cron的配置文件,也可以叫它作业列表,我们可以在以下文件夹内找到相关配置文件。
- /var/spool/cron/ 目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名
- /etc/crontab 这个文件负责调度各种管理和维护任务。
- /etc/cron.d/ 这个目录用来存放任何要执行的crontab文件或脚本。
- 我们还可以把脚本放在/etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly、/etc/cron.monthly目录中,让它每小时/天/星期、月执行一次。
crontab的使用
我们常用的命令如下:
crontab [-u username] //省略用户表表示操作当前用户的crontab
-e (编辑工作表)
-l (列出工作表里的命令)
-r (删除工作作)
我们用crontab -e进入当前用户的工作表编辑,是常见的vim界面。每行是一条命令。
crontab的命令构成为 时间+动作,其时间有分、时、日、月、周五种,操作符有
- ***** 取值范围内的所有数字
- / 每过多少个数字
- - 从X到Z
- **,**散列数字
如下命令为,每天23点执行 /home/back/mysql/bkdb.sh 脚本
00 23 * * * /home/back/mysql/bkdb.sh
- 3,列举目前创建的定时任务:
crontab -l
- 4,服务重启
service crond restart