git
git
1 | 1、解决文件已经添加到暂存区进行回退 |
正则表达式
正则表达式
基本语法和案列
1 | 正则就是规则,正则表达式就是能够让我们表达出自己想法的规则 |
正则表达式之分组
1 | 正则表达式之分组: |
awk 格式化
1 | 主义以下三点:格式化printf和awk中printf不同 |
awk 分隔符
1 | 输入分隔符,英文原文为field separator,此处简称为FS |
awk 变量
软中断
软中断
1 | top -H -p XX 1 / pidstat -wut -p XX 1 #那个线程占用CPU |
当iowait升高时,进程很可能因为得不到硬件的响应,而长时间处于不可中断状态。从ps或者top命令的输出中,你可以发现它们都处于D状态,也就是不可中断状态(Uninterruptible Sleep)。
进程状态有哪几种:
R 是Running 或 Runnable 的缩写,表示进程CPU的就绪队列中,正在运行或者正在等待运行
D 是Disk Sleep 的缩写,也就是不可中断状态睡眠(Uninterruptible Sleep),一般表示进程正在跟硬件交互,并且交互过程中不允许被其他进程或中断打断
Z 是Zombie的缩写,也就是可中断状态的睡眠,表示进程因为等待某个事件而被系统挂起,当进程等待的时间发生时,它会被唤醒并进入R状态
I 是idle的缩写,也就是空闲状态,用在不可中断睡眠的内核线程上,前面说了,硬件交互导致的不可中断进程D表示,但对某些内核线程会导致平均负载升高,I状态的进程却不会。
T或者t 也就是Stopped和Traced的缩写,表示进程处于暂停或者跟踪状态
向一个进程发送SIGSTOP信号,它就会因为响应这个信号变成暂停状态(Stopped);再向它发送SIGCONF信号,进程又会恢复运行(如果进程是终端里直接启动的,则需要你用fg命令,恢复到前台运行)
X 也是Dead的缩写,表示进程已经消亡,所以你不会再top或者ps命令中看到它
总结:
不可中断状态,表示进程正在跟硬件交互,为了保护进程数据和硬件的一致性,系统不允许其他进程或中断
打断这个进程。进程长时间处于不可中断状态,通常表示系统I/O性能问题
僵尸进程表示进程已经退出,但它的父进程还没有回收子进程占用的资源。短暂的僵尸状态我们通常不必理会
但进程长时间处于僵尸状态,就应该注意了,可能有应用程序没有正常处理子进程的退出
Alpine命令详解
1.apk update
$ apk update #更新最新镜像源列表
2.apk search
$ apk search #查找所以可用软件包
$ apk search -v #查找所以可用软件包及其描述内容
$ apk search -v ‘acf*’ #通过软件包名称查找软件包
$ apk search -v -d ‘docker’ #通过描述文件查找特定的软件包
3.apk add
$ apk add openssh #安装一个软件
$ apk add openssh openntp vim #安装多个软件
$ apk add –no-cache mysql-client #不使用本地镜像源缓存,相当于先执行update,再执行add
4.apk info
$ apk info #列出所有已安装的软件包
$ apk info -a zlib #显示完整的软件包信息
$ apk info –who-owns /sbin/lbu #显示指定文件属于的包
5.apk upgrade
$ apk upgrade #升级所有软件
$ apk upgrade openssh #升级指定软件
$ apk upgrade openssh openntp vim #升级多个软件
$ apk add –upgrade busybox #指定升级部分软件包
6.apk del
$ apk del openssh #删除一个软件
redis
Redis
Redis 介绍和优点
1 | Redis是一个开源的、使用C语言编写的、支持网络交互的、可基于内存也可持久化的Key-Value数据库。 Redis开创了一种新的数据存储思路,使用Redis,我们不用在面对功能单调的数据库时,把精力放在如何把大象放进冰箱这样的问题上,而是利用Redis灵活多变的数据结构和数据操作,为不同的大象构建不同的冰箱。 |
Redis Aof 三种同步机制:
1 | always 写一条数据就会刷新到硬盘上(不会丢失数据但是IO开销大) |
Redis 配置详解
1 | Redis示例配置文件 |