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 21:03
下一篇 2018-04-20 21:37

相关推荐

  • shell脚本编程基础——循环用法

    本节索引: 一、if、case条件判断 二、for、while及until循环 三、循环控制语句continue、break、shift及select菜单 四、信号捕捉trap   在前面的基础编程内容中,我们已经学习了shell脚本的顺序执行及选择执行,通过这两种方式,可 以帮我们解决一些简单需求,但要想在更复杂的场景中使用的话,就需要掌握循环执…

    2018-05-10
  • 基础命令(二)

    date -s “2018-4-3”

    2018-04-03
  • Linux的发行版,并描述不同发行版之间的联系与区别

    Linux是开源的,因此有不同的社区组织或公司可以在此基础上开发,设置不同的样式或功能特性。发行版的分支有几百种之多。 主要分支如下: Debian ubuntu mint knopix Slackware S.u.S.E SLES OpenSUSE RedHat: RedHat Enterprise CentOS:企业社区版 Fedora Core:桌面版…

    Linux笔记 2018-05-10
  • 初学linux所遇到错误详解与使用技巧

    适合小白新手,好懂易操作。

    2018-03-31
  • 源码编译安装 MariaDB

    基础软件 yum install bison bison-devel zlib-devel libcurl-devel libarchive-devel boost-devel gcc gcc-c++ cmake ncurses-devel gnutls-devel libxml2-devel openssl-devel libevent-devel lib…

    Linux笔记 2018-06-24
  • 进入各种模式操作 在centos虚拟机上实现内外网的连接

      进入单用户模式; 重启后在下面界面按任意键 进入此界面后按“ a ” 在下面界面 输入  1   进入单用户模式  1之前有空格     进入救援模式 1 重启后将鼠标键入界面里,在第一个界面的进度条没走完之前按一次ESC键即可进入(只能按一次ESC) 2 选择上图中的第三项光盘引导启动,之后选择下图的第三项救援模式启动。 &nbsp…

    2018-05-09