随机3(马哥)

bash shell脚本编程:
    顺序执行
   选择分支 if
   循环执行 for while until
        进入条件:   for:列表元素非空
                             while:条件测试结果为真
                             until:条件测试结果为假
        退出条件
                             for:列表元素遍历完成
                             while:条件测试结果为假
                              until: 条件测试结果为真
     循环控制语句:
                 continue:提前结束本轮循环,直接进入下一轮循环判断
                  break:跳出循环,直接结束循环体
创建死循环:  while true ;do  循环体  done     退出方式 break
  sleep:睡眠   sleep number(单位秒)
while循环特殊用法
    while read 变量;do   循环体   done<文件
 依次读取文件中的每一行,且赋值给变量。
for循环特性用法:
       for((控制变量初始化;条件判断式;控制变量的修整语句));do  循环体  done
     控制变量初始化,仅在循环代码开始时执行一次        控制变量的修整语句:每轮循环结束会进行控制变量的修正运算,而后做条件判断
case语法格式

    case 变量 in

     模式)

        分支1

        ;;

     模式)

         分支二

             ;;

      。。。。。

    esac

case支持glob风格的通配符

  *表任意长度的任意字符   ?:任意单个字符  []:范围内任意单个字符   a|b:a或b

函数:function   把一段独立功能的代码当做当做有个整体,并为之取一个名字,命名的代码段此即为函数。

  注意:定义函数的代码段不会自动执行,在调用时执行,所谓调用函数,在代码中给定函数名即可,函数名出现的任何位置,在代码执行时,都会被自动替换为函数代码。   函数生命周期,每次被调用时创建,返回时终止。自定义函数状态返回值用return,若遇到return此函数生命周期终止。

   过程式编程:代码重用

      模块化编程

      结构化编程

语法1:function  f_name{

。。函数体。。

}

语法二:f_name(){

函数体

}

函数返回值: 

    函数的执行结果返回值

             使用echo或printf命令进行输出

              函数体中调用命令的执行的结果

   函数的退出状态码

               默认取决于函数中执行的最后一条命令的退出码

               自定义:return

函数可以接受参数

     在函数体中,可以使用$!,$2。。。等引用传递给函数的参数,还可以函数中使用$*或$@引用所有参数

     在调用函数时,在函数后面以空白符分割给定的参数列表即可,比如textfuntion arg1 arg2.。。

变量作用域: 是函数的生命周期在函数结束时自动销毁

   局部变量:local name =name

   本地变量:作用域是运行脚本的shell进程的生命周期,作用范围是当前shell脚本程序文件

函数递归:函数直接或间接调用自身

systemd的新特性

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

核心概念: unit

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

unit 常见类型

  service unit:文件扩展名为.service,用于定义启动服务,

  Target unit:文件扩展名为.target,用于模拟实现运行级别

  Device unit:device,用于定义内核识别的设备

  monut 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的当前状态信息于持久存储设备中

不兼容: systemctl的命令是固定不变的    非由systemd启动的服务无法与之同学

管理系统服务: service类型的unit文件

   systemctl命令:systemctl 选项 服务名称   systemctl start/restart/stop/reload/status  name.service

条件式重启:systemctl try-restart name.service   

重载或重启服务:systemctl reload-or-restart  name.service

查看某服务当前激活与否的状态: systemctl is-active name.service

参看所有已激活的服务状态: systemctl list-units --type service

查看所有服务(包括激活或未激活状态的)systemctl list-units -t service --all

设置服务开机自启/关闭:systemctl enable/disable  name.service

查看某服务是否开机自启:chkconfig --list name -> systemctl  is-enabled name.service

禁止某服务设定开机自启:systemctl mask name.service 

取消禁止禁止某服务开机自启动:systemctl unmask name.service

查看服务的依赖关系: systemctl list-dependencles name.service

管理target units:

   运行级别 0  ==>  runlevel0.target    poweroff.target

                  1  ==>  runlevel1.target   rescue.target          (单用户模式)

                  2  ==>  runlevel2.target  multi-user.target

                  3  ==>  runlevel3.target  multi-user.target    (命令行模式)

                  4  ==>  runlevel4.target  multi-user.target

                  5  ==>   runlevel5.target  graphlcal.target     (桌面模式)

                  6  ==>  runlevel6.target  reboot.target

   级别切换 init N  ==>  systemctl  isolate  name.target

   查看当前运行级别:runlevel  ==>  systemctl  list-units--type  target

  查看所有级别:systemctl list-units -t target -a

获取默认运行级别:systemctl get-default

修改默认运行级别:systemct set-default name.target

切换至紧急救援模式:systemctl rescue

切换至emergency模式:systemctl emergency

其他常用命令:快照:systemctl hibernate      快照并挂起:systemctl hybrld-sleep

selinux安全策略:secure enhanced Linux(法无授权不可为)

  selinux有两种工作级别:

        strict:每个进程都受到selinux的控制

        targeted:仅有限个进程受到selinux的控制,只监控容易被入侵的进程

    selinux的状态:  enforcing: 强制,每个受限的进程都必然受限

                             permissive:启用,每个受限的进程违规操作不会被禁止,但会记录在审计日志中

                            disabled:关闭,

  相关命令:getforce :获取seLinux当前状态       setenforce 0|1 临时设置permissive|enforcing  重启无效

                      配置文件 /etc/sysconfig/selinux      /etc/selinux/config

  给文件重新打标:chcon -t    还原之前的标签:restorecon

 

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(Linux学习随笔)