Linux的systemd特性及awk使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux的systemd特性及awk使用相关的知识,希望对你有一定的参考价值。

1、简述systemd的新特性及unit常见类型分析,能够实现编译安装的如nginxapache实现通过systemd来管理
Systemd的新特性:

系统引导时实现服务并行启动;
        按需激活进程;
        系统状态快照;
        基于依赖关系定义服务控制逻辑;

核心概念:unit

unit由其相关的配置文件进行标识、识别和配置;文件中主要包含了系统服务、监听的socket、保存的快照以及其他与init相关的信息;
        /usr/lib/system
        /run/systemd/system
        /etc/systemd/system

unit的常见类型:

Service unit:文件扩展名为.service,用于定义系统服务;
Target unit:文件扩展为.target,用于模拟实现“运行级别”;
Device unit: .device,用于定义内核识别的设备;
Mount unit: .mount,定义文件系统挂载点;
Socket unit: .socket,用于标识进程间通信用到的socket文件;
Snapshot unit: .snapshot, 管理系统快照;
Swap unit: .swap, 用于标识swap设备;
Automount unit: .automount,文件系统自动点设备;
Path unit: .path, 用于定义文件系统中的一文件或目录;

关键特性:

基于socket的激活机制;socket与程序分离;
基于bus的激活机制;
基于device的激活机制;
基于Path的激活机制;
系统快照:保存各unit的当前状态信息于持久存储设备中;
向后兼容sysv init脚本;
        /etc/init.d/

不兼容:

systemctl的命令是固定不变的;
非有systemctl启动的服务,systemctl无法与之通信;

nginx安装:

[[email protected] ~]# wget http://nginx.org/download/nginx-1.13.12.tar.gz
[[email protected]l ~]# tar -vzxf nginx-1.13.12.tar.gz -C /usr/local
[[email protected] ~]# cd /usr/local/nginx-1.13.12/
[[email protected] nginx-1.13.12]# ./configure
[[email protected] nginx-1.13.12]# make && make install

配置nginx:
技术分享图片

nginx启动、关闭、停止和状态查看:

[[email protected] ~]# systemctl start nginx.service
[[email protected] ~]# systemctl restart nginx.service
[[email protected] ~]# systemctl stop nginx.service
[[email protected] ~]# systemctl status nginx.service

技术分享图片


2、描述awk命令用法及示例(至少3例)
文本三剑客之awk
awk是一种报表生成器,与sed,grep都是文本处理工具,可以将编辑的文本进行格式化排版处理后以更加美观的形式输出。

基本用法:awk [options] ‘program‘ FILE ...
                                    program: PATTERN{ACTION STATEMENTS}
语句之间用分号分隔
选项:
-F:指明输入时用到的字段分隔符;
-v var=value: 自定义变量

print

print item1, item2, ...
要点:
(1) 逗号分隔符;
(2) 输出的各item可以字符串,也可以是数值;当前记录的字段、变量或awk的表达式;
(3) 如省略item,相当于print $0;

变量

1) 内建变量
      FS:input field seperator,默认为空白字符;
      OFS:output field seperator,默认为空白字符;
      RS:input record seperator,输入时的换行符;
      ORS:output record seperator,输出时的换行符;
      NF:number of field,字段数量
            {print NF}, {print $NF}
      NR:number of record, 行数;
      FNR:各文件分别计数;行数;
      FILENAME:当前文件名;
      ARGC:命令行参数的个数;
      ARGV:数组,保存的是命令行所给定的各参数;

2)自定义变量
        (1) -v var=value
            变量名区分字符大小写;
        (2) 在program中直接定义

示例:
技术分享图片
技术分享图片
printf命令

格式化输出:printf FORMAT, item1, item2, ...
            (1) FORMAT必须给出; 
    (2) 不会自动换行,需要显式给出换行控制符,

    (3) FORMAT中需要分别为后面的每个item指定一个格式化符号;
格式符:
    %c: 显示字符的ASCII码;
      %d, %i: 显示十进制整数;
                %e, %E: 科学计数法数值显示;
                %f:显示为浮点数;
                %g, %G:以科学计数法或浮点形式显示数值;
                %s:显示字符串;
                %u:无符号整数;
                %%: 显示%自身;
修饰符:
                #[.#]:第一个数字控制显示的宽度;第二个#表示小数点后的精度;
                -: 左对齐
                +:显示数值的符号

操作符

算术操作符:x+y,x-y,x*y,x/y,x^y,x%y
    -x
    +x: 转换为数值;
字符串操作符:没有符号的操作符,字符串连接
赋值操作符:=,+=,-=,*=,/=,%=,^=,++,--
比较操作符:>,>=,<,<=,!=,==
模式匹配符:
    ~:是否匹配
    !~:是否不匹配
逻辑操作符:&&,||,!
函数调用:
    function_name(argu1, argu2, ...)
条件表达式:
    selector?if-true-expression:if-false-expression

PATTERN

(1) empty:空模式,匹配每一行;
(2) /regular expression/:仅处理能够被此处的模式匹配到的行;
(3) relational expression: 关系表达式;结果有“真”有“假”;结果为“真”才会被处理;
         真:结果为非0值,非空字符串;
(4) line ranges:行范围,
   startline,endline:/pat1/,/pat2/
注意: 不支持直接给出数字的格式
        ~]# awk -F: ‘(NR>=2&&NR<=10){print $1}‘ /etc/passwd
(5) BEGIN/END模式
   BEGIN{}: 仅在开始处理文件中的文本之前执行一次;
   END{}:仅在文本处理完成之后执行一次;

示例:
技术分享图片
技术分享图片


3、描述awk函数示例(至少3例)
awk函数:

函数分为内建函数和用户自定义函数

内建函数:

数值处理:
        rand():返回0和1之间一个随机数;
字符串处理:
        length([s]):返回指定的字符串长度;
        sub(r,s[,t]):基于r所表示的模式来匹配字符串的t中的内容,将其第一次被匹配到内容替换为s所表示的字符串
        gsub(r,s[,t]):基于r所表示的模式来匹配字符串t中的内容,将其所有被匹配到的内容均替换为s所表示的字符串;
        split(r,s[,t]):以r为分隔符去切割字符串s,并将切割后的结果保存至s表示的数组中;
注意:awk的数组下标从1开始编号,而非0.
        #awk ‘{split($0,userinfo,”:””);print userinfo[1]}’/etc/passwd
        substr(s,i[,n]):从s所表示的字符串中取子串,取法:从i表示的位置开始,取n个 
        符;时间类函数:systime(),取当前系统实际按,结果形式为时间戳

用户自定义函数:

function f_name(p,q) {
        …
}

示例:
技术分享图片
技术分享图片

以上是关于Linux的systemd特性及awk使用的主要内容,如果未能解决你的问题,请参考以下文章

Linux的systemd特性及gawk使用

systemd的新特性及unit常见类型分析

Systemd程序及相关命令

Linux7/Centos7新特性之服务控制

LINUX PID 1和SYSTEMD PID 0 是内核的一部分,主要用于内进换页,内核初始化的最后一步就是启动 init 进程。这个进程是系统的第一个进程,PID 为 1,又叫超级进程(代码片段

linux systemd详解