【BASH】回顾与知识点梳理(四十)目录

【BASH】回顾与知识点梳理(目录)

一. 认识与学习 BASH

入口

1.1 硬件、核心与 Shell
1.2 为何要学文字接口的 shell?
1.3 系统的合法 shell 与 /etc/shells 功能
1.4 Bash shell 的功能
1.5 查询指令是否为 Bash shell 的内建命令: type
1.6 指令的下达与快速编辑按钮

二. Shell 的变量功能

入口

2.1 什么是变量?
2.2 变量的取用与设定: echo, 变量设定规则: set/unset
2.3 环境变量的功能
    用 set 观察所有变量 (含环境变量与自定义变量)
    export: 自定义变量转成环境变量
    那如何将环境变量转成自定义变量呢?declare / typeset
2.4 影响显示结果的语系变量 :locale
2.5 变量的有效范围
2.6 变量键盘读取、数组: read、 array
2.7 与文件系统及程序的限制关系: ulimit
2.8 变量内容的删除、取代与替换 (Optional)
    变量内容删除(从前向后开始删除变量内容)
    变量内容删除(从后向前开始删除变量内容)
    变量的测试与内容替换

三. 命令别名与历史命令

入口

3.1 命令别名设定: alias, unalias
3.2 历史命令:history
     同一账号同时多次登入的 history 写入问题
     无法记录时间

四. Bash Shell 的操作环境

入口

4.1 路径与指令搜寻顺序
4.2 bash 的进站与欢迎讯息: /etc/issue, /etc/motd
4.3 bash 的环境配置文件
    login与non-login shell
    /etc/profile (login shell 才会读)
    ~/.bash_profile (login shell 才会读)
    source :读入环境配置文件的指令
    ~/.bashrc (non-login shell 会读)
    其他相关配置文件
4.4 终端机的环境设定: stty, set
4.5 通配符与特殊符号

五. 数据流重导向

入口

5.1 什么是数据流重导向
    standard output 与 standard error output
    /dev/null 垃圾桶黑洞装置与特殊写法
    standard input : < 与 <<
5.2 命令执行的判断依据: ; , &&, ||
    cmd ; cmd (不考虑指令相关性的连续指令下达)
    $? (指令回传值) 与 && 或 ||

六. 管线命令 (pipe)

入口

6.1 撷取命令: cut, grep
    cut
    grep
6.2 排序命令: sort, wc, uniq
    sort
    uniq
    wc
6.3 双向重导向: tee
6.4 字符转换命令: tr, col, join, paste, expand
    tr
    col
    join
    paste
    expand
6.5 分区命令: split
6.6 参数代换: xargs
6.7 关于减号 - 的用途

七. 前六章知识点总结及练习

入口

7.1 总结
7.2 练习

八. 正则表达式(正规表示法)

入口

8.1 什么是正规表示法
8.2 基础正规表示法
    语系对正规表示法的影响
    grep 的一些进阶选项
    基础正规表示法练习
        例题一、搜寻特定字符串
        例题二、利用中括号 [] 来搜寻集合字符
        例题三、行首与行尾字符 ^ $
        例题四、任意一个字符 . 与重复字符 *
        例题五、限定连续 RE 字符范围 {}
8.3 基础正规表示法字符汇整 (characters)
8.4 sed 工具(重点)
    以行为单位的新增/删除功能
    以行为单位的取代与显示功能
    部分数据的搜寻并取代的功能
    直接修改文件内容(危险动作)
    同时执行多条sed命令
    sed脚本文件

九. 扩展正则表达式(延伸正规表示法)

入口

9.1 egrep命令语法
    匹配指定模式的行(用法和grep相同)
    忽略大小写匹配(用法和grep相同)
    反向匹配(用法和grep相同)
    显示行号(用法和grep相同)
    递归搜索目录(用法和grep相同)
    匹配整词(用法和grep相同)
    统计匹配行数(用法和grep相同)
    显示匹配行及其上下文内容(用法和grep相同)
9.2 egrep和grep的区别
9.3 延伸型的正规表示法的特殊字符
    匹配重复字符(用法和grep不同)
    匹配分组模式(用法和grep不同)
    匹配'或'模式(用法和grep不同)
    匹配重复群组(用法和grep不同)

十. 文件的格式化与相关处理

入口

10.1 格式化打印: printf
10.2 awk:好用的数据处理工具
    awk 的逻辑运算字符
10.3 文件比对工具
    diff
    cmp
    patch
10.4 文件打印准备: pr

十一. 八至十章知识点总结及练习

入口

11.1 总结
11.2 练习
    情境模拟题一:透过 grep 搜寻特殊字符串,并配合数据流重导向来处理大量的文件搜寻问题。
    情境模拟题二:使用管线命令配合正规表示法建立新指令与新变量。

十二. Linux 文件与目录管理

入口

12.1 目录与路径
    相对路径与绝对路径
    相对路径的用途
    绝对路径的用途
12.2 目录的相关操作
    cd (change directory, 变换目录)
    pwd (Print Working Directory, 显示目前所在的目录)
    mkdir (make directory, 建立新目录)
    rmdir (remove directory, 删除『空』的目录)
12.3 关于执行文件路径的变量: $PATH
12.4 文件与目录的检视: ls
12.5 复制、删除与移动: cp, rm, mv, rename
    cp (复制文件或目录)
    rm (移除文件或目录)
    mv (移动文件与目录,或更名)
    rename(用字符串替换的方式批量改变文件名)
12.6 取得路径的文件名与目录名称:dirname, basename

十三. 文件内容查阅

入口

13.1 直接检视文件内容:cat, tac, nl
    cat (concatenate)
    tac (反向列示)
    nl (添加行号打印)
13.2 可翻页检视:more, less
    more (一页一页翻动)
    less (一页一页翻动)
13.3 资料撷取:head, tail
    head (取出前面几行)
    tail (取出后面几行)
13.4 非纯文本档: od
13.5 修改文件时间或建置新档: touch

十四. 文件与目录的默认权限与隐藏权限

入口

14.1 文件预设权限:umask
    umask 的利用与重要性:专题制作
14.2 文件隐藏属性
    chattr (配置文件案隐藏属性)
    lsattr (显示文件隐藏属性)
14.3 文件特殊权限: SUID, SGID, SBIT
    SUID(Set UID)
    SGID(Set GID)
    SBIT(Sticky Bit)
    SUID/SGID/SBIT 权限设定
1.4 观察文件类型:file

十五. 指令与文件的搜寻

入口

15.1 脚本文件名的搜寻
    which (寻找『执行档』)
15.2 文件档名的搜寻
    whereis (由一些特定的目录中寻找文件文件名)
    locate / updatedb
    find
        与时间有关的选项
        与使用者或组名有关的参数
        与文件权限及名称有关的参数
        额外可进行的动作
15.3 权限与指令间的关系
    让用户能进入某目录成为『可工作目录』的基本权限为何?
    用户在某个目录内读取一个文件的基本权限为何?
    让使用者可以修改一个文件的基本权限为何?
    让一个使用者可以建立一个文件的基本权限为何?
    让用户进入某目录并执行该目录下的某个指令之基本权限为何?

十六. 十二至十五章知识点总结及练习

入口

16.1 总结
16.2 练习
16.3 简答题

十七. 什么是 Shell scripts

入口

17.1 干嘛学习 shell scripts
    自动化管理的重要依据
    追踪与管理系统的重要工作
    简单入侵检测功能
    连续指令单一化
    简易的数据处理
    跨平台支持与学习历程较短
17.2 第一支 script 的撰写与执行
    撰写第一支 script
17.3 撰写 shell script 的良好习惯建立
17.4 简单范例
    对谈式脚本:变量内容由用户决定
    随日期变化:利用 date 进行文件的建立
    数值运算:简单的加减乘除
    数值运算:透过 bc 计算 pi
17.5 script 的执行方式差异 (source, sh script, ./script)
    利用直接执行的方式来执行 script
    利用 source 来执行脚本:在父程序中执行

十八. 条件判断式

入口

18.1 利用 test 指令的测试功能
    文件类型判断
    文件权限侦测
    两个文件之间的比较
    两个整数之间的判定
    判定字符串的数据
    多重条件判定
18.2 利用判断符号 [ ]
18.3 Shell script 的默认参数($0, $1...)
    shift:造成参数变量号码偏移
18.4 利用 if .... then
    单层、简单条件判断式
    多重、复杂条件判断式
18.5 利用 case ..... esac 判断
18.6 利用 function 功能

十九. 循环 (loop)

入口

19.1 while do done, until do done (不定循环)
19.2 for...do...done (固定循环)
19.3 for...do...done 的数值处理(C写法)
19.4 搭配随机数与数组的实验
19.5 shell script 的追踪与 debug
19.6 what_to_eat-2.sh debug结果解析

二十. 十六至十九章知识点总结及练习

入口

20.1 总结
20.2 练习

二十一. Linux 的文件权限与目录配置

入口

21.1 使用者与群组
    属主(文件拥有者)
    属组(群组概念)
    其他人的概念
    root(万能的天神)
    Linux 用户身份与群组记录的文件
21.2 Linux 文件权限概念
    Linux 文件属性
    Linux 文件权限的重要性
21.3 如何改变文件属性与权限
    改变所属群组, chgrp
    改变文件拥有者, chown
    改变权限, chmod
21.4 目录与文件之权限意义
    权限对文件的重要性
    权限对目录的重要性
    用户操作功能与权限
21.6 Linux 文件种类与扩展名
    文件种类:
    Linux 文件扩展名
    Linux 文件长度限制
    Linux 文件名的限制
21.7 Linux 目录配置
    Linux 目录配置的依据--FHS
    根目录 (/) 的意义与内容
    /usr 的意义与内容
    /var 的意义与内容
    针对 FHS,各家 distributions 的异同,与 CentOS7 的变化
    目录树(directory tree)

二十二. Linux 账号管理

入口

22.1 Linux 的账号与群组
    使用者标识符: UID 与 GID
    使用者账号
        /etc/passwd 文件结构
        /etc/shadow 文件结构
    关于群组: 有效与初始群组、groups, newgrp
        /etc/group 文件结构
        有效群组(effective group)与初始群组(initial group)
        groups: 有效与支持群组的观察
        newgrp: 有效群组的切换
        /etc/gshadow
22.2 账号管理
    新增与移除使用者: useradd, 相关配置文件, passwd, usermod, userdel
        useradd
        useradd 参考档(/etc/default/useradd)
        useradd 参考档(/etc/login.defs)
        passwd
        chage

二十三. Linux 账号管理(二)

入口

23.1 账号管理
    新增与移除使用者: useradd, 相关配置文件, passwd, usermod, userdel
        usermod
        userdel
23.2 用户功能(普通用户可使用)
    id
    finger
    chfn
    chsh
23.3 新增与移除群组
    groupadd
    groupmod
    groupdel
    gpasswd:群组管理员功能
23.4 账号管理实例
23.5 使用外部身份认证系统

二十四. 权限规划和身份切换

入口

24.1 主机的细部权限规划:ACL 的使用
    什么是 ACL 与如何支持启动 ACL
    如何启动 ACL
24.2 ACL 的设定技巧: getfacl, setfacl
    setfacl 指令用法介绍及最简单的『 u:账号:权限 』设定
    getfacl 指令用法
    特定的单一群组的权限设定:『 g:群组名:权限 』
    针对有效权限设定:『 m:权限 』
    使用默认权限设定目录未来文件的 ACL 权限继承『 d:[u|g]:[user|group]:权限 』
24.3 使用者身份切换
    su
    sudo
        sudo 的指令用法
        visudo 与 /etc/sudoers

二十五. 特殊shell、PAM 模块、讯息传递和大量建置账号

入口

25.1 特殊shell
    特殊的 shell, /sbin/nologin
25.2 PAM模块
25.3 Linux 主机上的用户讯息传递
    查询使用者: w, who, last, lastlog
    使用者对谈: write, mesg, wall
    使用者邮件信箱: mail
25.4 CentOS 7 环境下大量建置账号的方法
    一些账号相关的检查工具
        pwck/grpck
        pwconv
        pwunconv
        chpasswd
    大量建置账号模板(适用 passwd --stdin 选项)

二十六. 二十一至二十五章知识点总结及练习

入口

26.1 总结
26.2 模拟
26.3 简答题

二十七. 磁盘配额(Quota)

入口

27.1 磁盘配额 (Quota) 的应用与实作
    什么是 Quota
    Quota 的一般用途
    Quota 的使用限制
    Quota 的规范设定项目
27.2 一个 XFS 文件系统的 Quota 实作范例
    实作 Quota 流程:设定账号
    实作 Quota 流程-1:文件系统的支持与观察
    实作 Quota 流程-2:观察 Quota 报告资料
    实作 Quota 流程-3:限制值设定方式
    实作 Quota 流程-4:project 的限制 (针对目录限制) (Optional)
27.3 XFS quota 的管理与额外指令对照表
27.4 不更动既有系统的 quota 实例

二十八. 例行性工作排程(crontab)

入口

28.1 什么是例行性工作排程
    Linux 工作排程的种类: at, cron
    CentOS Linux 系统上常见的例行性工作
28.2 仅执行一次的工作排程
    atd 的启动
    at 的运作方式
    实际运作单一工作排程
    at 工作的管理
    batch:系统有空时才进行背景任务
28.3 循环执行的例行性工作排程
    使用者的设定
28.4 系统的配置文件: /etc/crontab, /etc/cron.d/*
    crond 服务读取配置文件的位置
    一些注意事项
        资源分配不均的问题
        取消不要的输出项目
        安全的检验
        周与日月不可同时并存
28.5 可唤醒停机期间的工作任务
    什么是 anacron
    anacron 与 /etc/anacrontab

二十九. 进程和工作管理

入口

29.1 什么是进程 (process)
    进程与程序 (process & program)
    子进程与父进程:
    fork and exec:进程呼叫的流程
    系统或网络服务:常驻在内存的进程
29.2 Linux 的多人多任务环境
    多人环境:
    多任务行为:
    多重登入环境的七个基本终端窗口:
    特殊的进程管理行为:
    bash 环境下的工作管理 (job control)
    多人多任务的系统资源分配问题考虑:
29.3 工作管理 (job control)
    什么是工作管理?
    job control 的管理
        直接将指令丢到背景中『执行』的 &
        将『目前』的工作丢到背景中『暂停』:[ctrl]-z
        观察目前的背景工作状态: jobs
        将背景工作拿到前景来处理:fg
        让工作在背景下的状态变成运作中: bg
        管理背景当中的工作: kill
29.4 脱机管理问题

三十. 进程的观察

入口

30.1 ps :将某个时间点的进程运作情况撷取下来
	仅观察自己的 bash 相关进程: ps -l
	观察系统所有进程: ps aux
30.2 top:动态观察进程的变化
30.3 pstree

三十一. 进程的管理

入口

31.1 给进程发送讯号
    kill -signal PID
    linux系统后台常驻进程
    killall -signal 指令名称
31.2 关于进程的执行顺序
    Priority 与 Nice 值
    nice :新执行的指令即给予新的 nice 值
    renice :已存在进程的 nice 重新调整
31.3 系统资源的观察
    free :观察内存使用情况
    uname:查阅系统与核心相关信息
    uptime:观察系统启动时间与工作负载
    netstat :追踪网络或插槽文件
    dmesg :分析核心产生的讯息
    vmstat :侦测系统资源变化
31.4 特殊文件与进程
    具有 SUID/SGID 权限的指令执行状态
    /proc/* 代表的意义
    查询已开启文件或已执行进程开启之文件
        fuser:藉由文件(或文件系统)找出正在使用该文件的进程
        lsof :列出被进程所开启的文件档名
        pidof :找出某支正在执行的程序的 PID

三十二. SELinux 初探

入口

32.1 什么是 SELinux
    当初设计的目标:避免资源的误用
    传统的文件权限与账号关系:自主式访问控制, DAC
    以政策规则订定特定进程读取特定文件:委任式访问控制, MAC
32.2 SELinux 的运作模式
    安全性本文 (Security Context)
    进程与文件 SELinux type 字段的相关性
32.3 SELinux 三种模式的启动、关闭与观察
    SELinux 的启动与关闭
32.4 SELinux 政策内的规则管理
    SELinux 各个规则的布尔值查询 getsebool
    SELinux 各个规则规范的主体进程能够读取的文件 SELinux type 查询 seinfo, sesearch
    修改 SELinux 规则的布尔值 setsebool / getsebool
32.5 SELinux 安全本文的修改
    使用 chcon 手动修改文件的 SELinux type
    使用 restorecon 让文件恢复正确的 SELinux type
    semanage 默认目录的安全性本文查询与修改
32.6 一个网络服务案例及登录文件协助
    setroubleshoot --> 错误讯息写入 /var/log/messages
    实例状况说明:透过 vsftpd 这个 FTP 服务器来存取系统上的文件
    匿名者无法下载的问题
    无法从家目录下载文件的问题分析与解决
    一般账号用户从非正规目录上传/下载文件
    无法变更 FTP 联机埠口问题分析与解决

三十三. 认识系统服务 (daemons)

入口

33.1 什么是 daemon 与服务 (service)
    早期 System V 的 init 管理行为中 daemon 的主要分类 (Optional)
    systemd 使用的 unit 分类
        systemd 的配置文件放置目录
        systemd 的 unit 类型分类说明
33.2 透过 systemctl 管理服务
    透过 systemctl 管理单一服务 (service unit) 的启动/开机启动与观察状态
        服务启动/关闭与观察的练习
        强迫服务注销 (mask) 的练习
    透过 systemctl 观察系统上所有的服务
    透过 systemctl 管理不同的操作环境 (target unit)
    透过 systemctl 分析各服务之间的相依性
    与 systemd 的 daemon 运作过程相关的目录简介
        网络服务与端口口对应简介
    关闭网络服务

三十四. 认识系统服务(二)

入口

34.1 systemctl 针对 service 类型的配置文件
    systemctl 配置文件相关目录简介
    systemctl 配置文件的设定项目简介
        [Unit] 部份
        [Service] 部份
        [Install] 部份
    两个 vsftpd 运作的实例
    多重的重复设定方式:以 getty 为例
        将 tty 的数量由 6 个降低到 4 个
        暂时新增 vsftpd 到 2121 埠口
    自己的服务自己作
34.2 systemctl 针对 timer 的配置文件
    systemd.timer 的优势
    任务需求
        [Timer] 部份
    使用于 OnCalendar 的时间
    一个循环时间运作的案例
    一个固定日期运作的案例
34.3 CentOS 7.x 预设启动的服务简易说明
    CentOS 7.x 预设启动的服务内容
    其他服务的简易说明

三十五. 二十七至三十四章知识点总结及练习

入口

35.1 总结
35.2 练习
    RAID+LVM
    systemd
35.3 简答题

三十六. 认识与分析登录档

入口

36.1 什么是登录档
    CentOS 7 登录档简易说明
        登录档的重要性
        Linux 常见的登录档档名
        登录档所需相关服务 (daemon) 与程序
        CentOS 7.x 使用 systemd 提供的 journalctl 日志管理
    登录档内容的一般格式
36.2 rsyslog.service :记录登录文件的服务
    rsyslog.service 的配置文件:/etc/rsyslog.conf
        服务名称
        讯息等级
        讯息记录的文件名或装置或主机
        服务、daemon 与函数名称
        rsyslog.conf 语法练习
        CentOS 7.x 预设的 rsyslog.conf 内容
        自行增加登录文件文件功能
    登录档的安全性设置
    登录档服务器的设定
36.3 登录档的轮替(logrotate)
    logrotate 的配置文件
    实际测试 logrotate 的动作
    自定义登录文件的轮替功能
36.4 systemd-journald.service 简介
    使用 journalctl 观察登录信息
    logger 指令的应用
    保存 journal 的方式
36.5 分析登录档
    CentOS 预设提供的 logwatch

三十七. 基础系统设定与备份策略

入口

37.1 系统基本设定
    网络设定 (手动设定与 DHCP 自动取得)
    手动设定 IP 网络参数(nmcli)
    自动取得 IP 参数(dhcp)
    修改主机名(hostnamectl)
37.2 日期与时间设定
    时区的显示与设定
    时间的调整
    用 ntpdate 手动网络校时
37.3 语系设定
37.4 防火墙简易设定
    组态:『执行时期』与『永久记录』的差异
    界域 (zone):依据不同的环境所设计的网络界域 (zone)
    相关设定项目
37.5 服务器硬件数据的收集
    以系统内建 dmidecode 解析硬件配备
    硬件资源的收集与分析
        gdisk
        lspci
        lsusb
        iostat
    了解磁盘的健康状态
37.6 备份要点
    备份资料的考虑
    备份因素考虑
        哪些 Linux 数据具有备份的意义
            操作系统本身需要备份的文件
            网络服务的数据库方面
        推荐需要备份的目录
            不需要备份的目录
        备份用储存媒体的选择
            异地备援系统
            储存媒体的考虑
37.7 备份的种类、频率与工具的选择
    完整备份之累积备份 (Incremental backup)
        还原的考虑
        累积备份的原则
        累积备份使用的备份软件
    完整备份之差异备份 (Differential backup)
    关键数据备份
37.8 鸟哥的备份策略
    每周系统备份的 script
    每日备份资料的 script
    远程备援的 script
        使用 rsync 上传备份数据
37.9 灾难复原的考虑
    硬件损毁,且具有完整备份的数据时
    由于软件的问题产生的被攻破资安事件

三十八. 源码概念及简单编译

入口

38.1 开放源码的软件安装与升级简介
    什么是开放源码、编译程序与可执行文件
    什么是函式库
    什么是 make 与 configure
    什么是 Tarball 的软件
    如何安装与升级软件
38.2 使用传统程序语言进行编译的简单范例
    单一程序:印出 Hello World
        编辑程序代码,亦即原始码
        开始编译与测试执行
    主、子程序链接:子程序的编译
        撰写所需要的主、子程序
        进行程序的编译与链接 (Link)
    呼叫外部函式库:加入连结的函式库
        编译时加入额外函式库连结的方式:
    gcc 的简易用法 (编译、参数与链结)

三十九. make、tarball、函数库及软件校验

入口

39.1 用 make 进行宏编译
    为什么要用 make
    makefile 的基本语法与变量
39.2 Tarball 的管理与建议
    使用原始码管理软件所需要的基础软件
    Tarball 安装的基本步骤
    一般 Tarball 软件安装的建议事项 (如何移除?升级?)
    一个简单的范例、利用 ntp 来示范
    利用 patch 更新原始码
39.3 函式库管理
    动态与静态函式库
    ldconfig 与 /etc/ld.so.conf
    程序的动态函式库解析: ldd
39.4 检验软件正确性
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值