第一章 Bash Shell编程基本

将光标移动到行首:control + a 将光标移动到行尾:control + e 清除屏幕:control + l 搜索以前使用命令:control + r 清除当前行:control + u 清除至当前行尾:control + k 单词为单位移动:option + 方向键

01 Shell脚本编程简介

什么是Shell

  • GNU/Linux分为三个部分 内核、shell、应用程序
  • Shell就是内核与应用程序以及用户之间的沟通桥梁和语义翻译
  • 命令行解释器

02 Bash Shell 环境说明

Bash Shell的配置文件

  • /etc/bashrc文件(全局)
  • /etc/profile文件(全局)
  • /etc/profile.d文件(全局)
  • ~/.bashrc文件(用户配置文件)
  • ~/.bash_profile文件(用户配置文件)

切换不同类型和版本的Shell

  • 通过修改配置文件修改用户的shell

    • /etc/passwd
    • /etc/shells
  • 通过命令切换

    • chsh命令

如何查看shell登陆时候执行的那些配置文件?

添加以下内容到对应位置

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# /etc/bashrc
echo etc_bashrc
# /etc/profile
echo etc/profile
# /etc/profile.d/chris.sh
echo etc_profile.d_chris
# ~/.bashrc
echo home_bashrc
# .bash_profile
echo home_bash_profile

重新登陆得到的结果是

1
2
3
4
5
etc_profile
etc_profile.d_chris
home_bash_profile
home_bashrc
etc_bashrc

03 Bash Shell 编程基本概念1

  • 登陆与注销

    • 本地登陆 (进入机器tty)
    • 远程登录
    • 虚拟机终端
    • 虚拟控制台
    • 用户切换
    • 注销或登出
  • 文件与目录

    • 文件分类

      • 普通文件-纯文本或者是二进制文件

        1
        2
        
        -rw-r--r--. 1 root root 851 Jul 30 14:17 /etc/passwd
        第一位 - 普通文件
        
      • 目录文件-保持文件名和上下关系

      • 设备文件-块设备文件和字符文件

      • 通信文件-socket文件和有管道名文件

        1
        2
        3
        
        #创建管道文件
        mkfifo /tmp/fifo
        file /tmp/fifo
        
      • 特殊文件-符号链接文件(软连接文件)

    • 使用file命令查看文件类型

  • 通配符

    • 代替字符的样式
    • *任意字符串
    • ?不为空的一个字符

    e.g.

    1
    2
    3
    4
    5
    
    mkdir -pv tmp && cd tmp
    touch {a..d}{1..10}
    ls ?10
    ls 1?
    ls *2
    
  • 转义符

    • \反斜线,也叫“逃逸字符”
    • 使用后接的字符恢复其原来作为单纯字符的意义。

    e.g.

    1
    2
    3
    
    cd tmp
    echo *
    echo \*
    
  • 续行符号

    • 转义字符的特例
    • \的后方是换行服好的时候,上下输入的两行将会被视为是一行。

    e.g.

    1
    2
    
    echo "line 1 \
    line 1 too"
    
  • 字符集 []

    • 字符集集合就是[]中所列字符范围中的一个符号,其长度为1
    • [a-z]小写字母
    • [A-Z]大些字母
    • [a-zA-Z]字母
    • [0-9]数字
    • [!0-9]非数字

    e.g.

    1
    2
    3
    
    ls [a-z]*
    ls [a,b]*
    ls a[1-5]
    
  • 括号扩展 {}

    • {a,b}_{1,2} = a_1 a_2 b_1 b_2
    • echo {A,a}pple
    • 方便快速创建和删除文件以及目录
    • 方便匹配制定范围的字符串

目录操作

  • 相对路径和绝对路径

    • ./
    • /
  • 切换当前路径

    1
    
    cd e.g.
    
  • 查看当前路径

    1
    
    pwd
    

Bash Shell 编程设计权限问题

  • UGO 权限
  • ACL 权限

04 Bash Shell 编程基本概念2

  • 标准输入以及标准输出
  • 输入输出重定向
  • 管道
  • 前台运行程序和后台运行应用程序

05 Bash Shell 编程基本概3

06 Bash Shell 编程基本概念4

07 Bash Shell 编程基本概念5

08 Bash Shell 编程基本概念6

09 Bash Shell 编程基本概念7

10 Bash Shell 编程基本概念8

11 Bash Shell 编程基本概念9

12 Bash Shell 编程基本概念10

13 Bash Shell 编程基本概念11

14 Bash Shell 编程基本概念12

15 Bash Shell 编程基本概念13

16 Bash Shell 编程基本概念14

17 Bash Shell 编程基本概念15

18 Bash Shell 编程基本概念16

第二章 文件处理工具

19 文件行编辑工具sed简介

20 文件行编辑工具sed字符

21 文件行编辑工具sed行处理

22 文件处理工具awk-awk模式

23 文件处理工具awk字段

24 文件处理工具awk正则表达式

25 文件处理工具awk环境变量

26 文件处理工具awk操作符号

27 文件处理工具awk程序结构

28 文件处理工具awk函数

第三章 Bash Shell编程