systemd及awk简介

systemd及awk简介

一、简述systemd的新特性及unit常见类型分析,能够实现编译安装的如nginx\apache实现通过systemd来管理


systemd的新特性

systemd是Linux下的中央系统及设定管理程式(init),包括有守护进程,程序库跟应用程序。开发目标是提供更优秀的框架以表示系统服务间的依赖关系,并以此实现系统初始化时服务的并行启动,同时达到降低shell的系统开销,最终替代现在常用的system v与BSD风格init程序。

systemd及awk简介systemd组件  与System V风格init相比,systemd采用了一下的新特性:

1. 系统引导时实现服务并行启动;

2. 按需激活进程;

3. 系统状态快照;

4. 基于依赖关系定义服务控制逻辑;

Systemd的核心概念是:unit,unit由其相关配置文件进行标识,识别和配置,文件中主要包含了系统服务、监听的socket、保存的快照以及其它与init相关的信息; 这些配置文件主要保存在:/usr/lib/systemd/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, 用于定义文件系统中的一文件或目录;

二、描述awk命令用法及示例(至少3例)


awk是Linux文本处理工具三剑客之一,awk是一种用于处理文本的编程语言工具。awk在很多方面类似于shell编程语言。AWK将文件作为记录序列处理。在一般情况下,文件内容的每行都是一个记录。每行内容被分割成一系列的域,因此,我们可以认为一行的第一个词为第一个域,第二个词为第二个域,以此类推。AWK程序是由一些特定模式的语句构成的,awk一次可以读取一个输入行,对每个输入行,awk解释器会判读它是否符合程序中出现的各个模式,并执行符合的模式所对应的动作。

AWK程序是由一系列模式+动作所组成的。awk的基本用法为:awk [OPTIONS] ‘program’ FILE1…,其中program为:PATTERN {ACTION STATEMENT}

  1. print命令:会输出当前记录的内容;
  2. 变量:变量分为内建变量和自定义变量;
    内建变量:
    FS:输出字段分隔符,默认为空白;RS:输入时的行分隔符;OFS:输出时的字符分割符;ORS:输出时的行分隔符;NF:当前行的字段数;NR:命令后跟的所有文件将统一合并计数;FNR:行数,各文件单独计数。
    自定义变量:
    -v VAR_NAME=VALUE:变量名区分字符大小写;
  3. printf:格式化输出
  4. awk的操作符:有算术操作符,字符操作符,赋值操作符,比较操作符,模式匹配操作符,逻辑操作符,条件表达式和函数调用;
  5. awk还支持shell编程的各种控制语句。

例子:

awk BEGIN '{print "HELLO,WORLD!"}'
awk '{print NF,FNR}' /etc/fstab /etc/issue
awk -F: '{printf "USER:%-2s,UID:%20d\n",$1,$3}' /etc/passwd
awk -F: '$1~/user*/{print $1,$NF}' /etc/passwd

三、awk函数示例:


函数分为内置函数和自定义函数,示例如下:

ss -tnl | awk '/^tcp\>/{split($5,ip,":");count[ip[1]]++}END{for (i in count) {print i,count[i]}}' 
awk 'BEGIN{rand(); sk=int(100*rand()); print sk;}' 

 

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/96677

(0)
gw章gw章
上一篇 2018-04-20
下一篇 2018-04-20

相关推荐

  • N31-第二周作业—文件的管理

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。
    2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。
    3、请使用命令行展开功能来完成以下练习:
    (1)、创建/tmp目录下的:a_c, a_d, b_c, b_d
    (2)、创建/tmp/mylinux目录下的:
    mylinux/
    ├── bin
    ├── boot
    │   └── grub
    ├── dev
    ├── etc
    │   ├── rc.d
    │   │   └── init.d
    │   └── sysconfig
    │   └── network-scripts
    ├── lib
    │   └── modules
    ├── lib64
    ├── proc
    ├── sbin
    ├── sys
    ├── tmp
    ├── usr
    │   └── local
    │   ├── bin
    │   └── sbin
    └── var
    ├── lock
    ├── log
    └── run
    4、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。
    5、如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?
    6、显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。
    7、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。
    8、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。
    9、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。
    10、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
    11、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。
    12、复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。

    2018-07-05
  • 生产环境中数据文件删除,空间不释放问题

    首先数据文件删除文件系统空间不释放的问题不只出现在Linux平台,所有平台都可能有这样的问题。这里只是在Linux平台做一些测试,其他平台类似;其次只有将数据文件存放在文件系统中才会有此类问题。空间没有释放我们可能是通过df命令确认的,当我们用du去扫描目录的大小可能会发现df和du两个命令看到的空间使用情况是不同的,可能差别很大,找了一些文档,解决了这个问题;写这篇博客,希望跟大家分享一下。

    2018-05-18
  • 小节

    管道符:cmd1 输出cmd2 输入cmd1 | cmd2如果想将错误信息传给cmd2cmd1 |& cmd2 或 cmd1 2>&1| cmd2加上 >2><&>就是重定向<< key与用户名和组相关的/etc/passwd/etc/shadow 放用户口令的/etc/group/etc/g…

    Linux笔记 2018-04-07
  • 进程管理工具

    进程管理工具

    Linux笔记 2018-04-20
  • mysql练习题

    导入hellodb.sql生成数据库(1) 在students表中,查询年龄大于25岁,且为男性的同学的名字和年龄MariaDB [hellodb]> select Name,Age from students where Age>25 and Gender=’M’;(2) 以ClassID为分组依据,显示每组的平均…

    Linux笔记 2018-06-09