操作系统知识地图-基础知识篇(下)

接《操作系统知识地图-基础知识篇(上)》

(四)Shell 篇

1.认识 BASH

  • Shell 是命令解释器,翻译用户的命令给内核执行,并将结果返回给用户

  • Shell 脚本的用处

    组合系统命令实现自动化功能
    组成脚本的基本元素是命令,不用深入地掌握系统函数库
    
  • 内建命令与外部命令

    内建命令不会创建子进程,但是对子Shell无效
    外部命令会创建子进程
    

2.管道与重定向

  • 管道符 |

  • 重定向符号

    < 输入重定向
    > 输出重定向,覆盖方式
    >> 输出重定向,追加方式
    

3.进程与内存的查看与调整

  • 进程查看命令
    • ps
    • top
  • 内存查看命令
    • free 查看系统的内存使用率
    • sar 显示更详细的系统运行状态,用于故障排除
  • 常用的第三方系统状态查看命令
    • iftop 查看某一进程的网络流量

4.变量与环境变量

  • 变量的定义
    • Shell 变量无需声明
    • 销毁变量:unset 变量名
  • 变量的赋值
    • 变量名=变量值(注意等号两边不能有空格)
  • 环境变量
    • 其中的 PATH 环境变量用于解释路径
  • 环境变量的配置文件
    • /etc/profile 系统环境变量默认保存文件
    • /etc/bashrc login shell 执行初始化的配置文件

5.转义与引用

  • 特殊符号
  • 转义符 /
  • 引用符号 ' ' 和 " "

6.循环

  • while 循环
    • while 循环根据 while 判断结果确定是否继续执行
    • 判断的结果为命令的返回值,如果为 0 则循环继续执行(shell中,执行成功的命令会返回 0 )
    • 判断结果一直为真 "0",则为死循环
  • for 循环
    • Shell的 for 循环使用遍历方式,for...in... 格式
    • for 支持c语言写法,需要使用 (()) 格式
    • 支持 break、continue 进行循环控制
    • for 循环支持嵌套使用

7.函数

  • 函数的定义
    • 对代码进行封装,重复利用
    • 函数的定义方法是 函数名 (){}
  • 函数的使用
    • 直接使用 函数名

8.计划任务

  • 一次性计划任务
  • 周期性计划任务
    • 查看 crontab -l
    • 编辑 crontab -e

9.运算符

  • 运算符号
    • + - * / %: 加 减 乘 除 取余
  • Shell 运算的弊端
    • 支持整数运算,但和编译语言比起来效率很低
    • 对浮点运算支持不好

10.测试与判断

  • test 测试
    • 可以书写为 [ ]
    • 可以使用 [[ ]] 扩展格式
    • 文件测试
    • 数字比较
  • if 判断
    • 基本原理:根据命令的返回值是否为 0 进行分支判断
    • 支持 if...else 写法
    • 支持 if 嵌套写法
  • case 分支
    • case 分支一般作为 if 判断的补充
    • case 分支的结束符号是 " ;; ",它是" ; "的转义形式

(五)文本操作篇

1.正则表达式与文本搜索

  • 元字符大全

    . 除 \n \r外的单个字符
    * 匹配前面的子表达式任意多次
    [...] 括号内任意一个字符
    ^ 行开始
    $ 行结尾
    \ 转义
    {...} 匹配出现的次数
    + 匹配前面的正则表达式出现一次或多次
    ? 匹配前面的正则表达式出现零次或一次
    | 并列匹配
    () 分组
    POSIX 字符类
    

2.sed

  • sed基础
    • 基本语法

      sed 'cmd' filename
      sed -e 'cmd' -e 'cmd' filename
      
    • sed的工作方式

      模式空间
      
  • sed基础命令
    • s 替换
    • d 删除
    • a 追加
    • i 插入
    • c 更改
    • n 下一步
    • r 读文件
    • w 写文件
    • q 退出
    • y 替换
    • p 打印
  • sed高级命令
    • 多行命令

      N 将多行追加到模式空间进行处理
      D 删除多行模式空间的第一个字符至第一个换行符,并返回到脚本的开头执行
      P 输出模式空间中的第一个字符至第一个换行符
      
    • 保持空间模式

      h 将模式空间的内容存储至保存空间,并覆盖保持空间的内容
      H 将模式空间的内容存储至保存空间,并追加到保持空间
      g 将保持空间的内容存储至模式空间,并覆盖模式空间的内容
      G 将保持空间的内容存储至模式空间,并追加到模式空间
      x 交换模式空间和保持空间的内容
      
    • 条件与分支

      : 标签
      b branch命令用于在脚本中将控制权转移到另一行,如果没有指定的标签就转移到脚本的结尾
      t 测试命令,如果当前匹配地址的行出现了成功替换,test 命令就转到标签处,如果没有指定标签就转移到脚本的结尾
      

3.AWK

  • AWK的工作方式
    • BEGIN{} 模式用于处理文件前的预处理
    • {} 模式用于对文件每行进行处理
    • END{} 模式用于处理完文件之后的操作
  • 运算符
    • 算术运算符
    • 关系运算符
    • 布尔运算符
  • 循环
    • 支持 while 循环
    • 支持 for 循环
    • 支持 break、continue
  • 系统变量
    • FS 字段分隔符
    • OFS 输出字段分隔符
    • RS 记录分隔符
    • ORS 输出记录分隔符
  • 条件
    • 和 c 语言用法相似
    • 语法格式为:if(判断)
    • 支持 if...else... 用法
    • 支持 if 嵌套
  • 函数
    • 算术函数
    • 随机函数
    • 字符串函数
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,390评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,821评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,632评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,170评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,033评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,098评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,511评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,204评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,479评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,572评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,341评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,893评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,171评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,486评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,676评论 2 335

推荐阅读更多精彩内容