2020linux课程期末复习

3次阅读

共计 9200 个字符,预计需要花费 23 分钟才能阅读完成。

第一章:Linux 概述

  1. Linux 诞生:1991 年,芬兰大学生 李纳斯(linux torvalds)和众多爱好者共同完成。
  2. Linux 开源软件三大自由优点:使用自由、研究自由、传播自由。
  3. Linux 应用邻域:个人桌面、IT 服务器、嵌入式程序、娱乐电影。
  4. Linux apache mysql php

第二章:Linux 系统安装

内容:介绍 VMware 软件的使用,安装 Linux 系统。

密码特性:复杂性,易记忆性,时效性

第三章:Linux 分区(分区、格式化,起设备名、写挂载点)

  1. 分区定义:分区(fdisk)是将一个硬盘驱动器分成若干个逻辑驱动器,分区是把硬盘连续的区块当做一个独立的磁硬使用。分区表是一个硬盘分区的索引, 分区的信息都会写进分区表。
  2. 分区类型:

    • 磁盘的分区主要分为 主分区 扩展分区。主分区(用 1234),拓展分区(逻辑分区只能从 5 开始)
    • 主分区和扩展分区的数目之和不能大于四个。且主分区可以马上被使用但不能再分区。
    • 扩展分区必须再进行分区后才能使用,也就是说它必须还要进行二次分区,二次分区我们叫逻辑分区。
  3. 分区格式化:格式化(mkfs、mke2fs)又称逻辑格式化, 它是指根据用户选定的文件系统 (EXT3,EXT4(centos 默认) 等),在磁盘的特定区域写入特定数据,在分区中划出一片用于存放文件分配表、目录表等用于文件管理的磁盘空间。
  4. 硬件设备文件名:(dev:存放硬件设备)

    • IDE 硬盘:/dev/hd[a-d]
    • SCSI/SATA/USB 硬盘:/dev/sd[a-p]
    • U 盘:/dev/sd[a-p](与 SATA 相同)
    • 软驱:/dev/fd[0-1]
    • 打印机:25 针:/dev/lp[0-2] & USB:/dev/usb/lp[0-15]
    • 鼠标:USB:/dev/usb/mouse[0-15] & PS2:/dev/psaux
    • 当前 CD ROM/DVD ROM:/dev/cdrom
    • 当前鼠标:/dev/mouse
    • 磁带机:IDE:/dev/ht0 & SCSI:/dev/st0
  5. 分区设备文件名:

    1. /dev/hda1:IDE 硬盘接口,a(第一块硬盘,b 代表第二块,以此类推),数字 1 代表第一个分区。

      /dev/sda1:SCSI 硬盘接口、SATA 硬盘接口,sd 表示(SCSI/SATA)硬盘接口

      思考题为什么没有 3,4?这是对是错?主分区(用 1234),拓展分区(逻辑分区只能从 5 开始)

  6. 分配盘符:

    • 推荐分区:

      • /boot(启动分区,200MB)
    • 必须分区:

      • /(根分区)
      • swap 分区(虚拟内存,交换分区,内存 2 倍。不超过 2GB)
  7. 文件系统结构:

    目录 描述
    / 最顶层目录,即根目录。
    /bin 存放用户可执行文件。
    /boot 存放引导 Linux 计算机所需的静态引导加载程序、内核可执行文件和配置文件。
    /dev 存放硬件设备文件。
    /etc 存放主机的本地系统配置文件。
    /home 存放用户个人文件。每个用户都在 /home 目录下会有一个子目录。
    /lib 存放共享库文件。
    /media 可移动设备的临时目录,如 U 盘、光驱。
    /mnt 系统提供这个目录让用户临时挂载其他的文件系统。
    /opt 可选的附加应用程序。
    /root root 用户的主目录。
    /sbin 系统二进制文件。这些是用于系统管理的可执行文件。
    /tmp 临时目录。用于操作系统和许多程序来存储临时文件。用户也可以临时存储文件。请注意,此处存储的文件可能在任何时间被删除,而无需事先通知。
    /usr 可共享的只读文件,包括可执行的二进制文件和库、man 文件和其他类型的文档。
    /var 变量数据文件存储在这里。这可以包括日志文件、MySQL 和其他数据库文件、web 服务器数据文件、电子邮件收件箱等等。
  8. Linux 的文件类型主要有:

    • (-)普通文件,分为纯文本和二进制。
    • (d)目录文件,存储文件的地方。
    • (l)链接文件,指向同一个文件或目录的文件。
    • (b,c)设备文件,分为块设备和字符设备。
    • (p)管道文件,提供进程间通信
    • (s)套接字文件,与网络通信有关

第四章:常用命令

  1. 常用命令格式:命令 [- 选项] [参数] 如:ls -a /etc
  2. 读写权限信息:一个长度为 10 的字符串 j

    -rw-r–r– 1 root root 0 3 月 26 19:11 readme.txt

    共显示了七列信息,从左至右依次为:权限、文件数、归属用户、归属群组、文件大小、最后修改日期、文件名称

    • 权限第一部分(指第一个位置):告诉我们这个文件的类型
    • 权限第二部分(剩余的九个位置):可以分成三块 rw-(所有者:u)r–(所属组:g)r–(其他人:o),其中 r 表示读权限,w 表示写权限,x 表示执行权限,- 表示相应的权限还没有被授予。
    • 文件大小:1byte(字节 B)=8bit(比特 b)= 8 个二进制位 1kb=1024byte
  3. 目录处理命令:

    • cd:切换目录。
    • mkdir:创建新目录。- p 递归创建 mkdir -p /a/b/c、- m 设置文件的权限 mkdir -m 700 mytext、创建同级目录 mkdir a b c
    • pwd:显示当前目录。
    • rmdir:删除空目录。
    • cp:复制文件或目录。- p 复制内容外,还会复制修改时间和访问权限 - r 复制该目录下所有的子目录和文件
    • rm:删除文件。- i 删除前询问 - f 强制删除文件或目录 - r 递归删除 rm -rf 目录 删除非空目录
  4. 清屏操作:clear

第五章:远程登录、权限管理、vim

  1. 网络连接基础:

    • ping:测试网络连通性。
    • ifconfig:查看网络设置信息。- a 显示所有网卡信息
    • shutdown:关机。shutdown -h now
    • reboot:重启。
    • service network restart:重启网络连接
  2. 远程工具使用:xshell、secureCRT
  3. 文件处理命令:

    • touch:创建空文件
    • cat:显示文件内容。- n 编号 - b 编号但不对空白行编号
    • moreless:分页显示文件内容。空格键 翻页,回车键 换行,q 键 退出
  4. 权限管理命令:

    • chmod:改变文件或目录的权限。- R 递归修改

      r–4 w–2 x–1

      -rw——- (600) 只有所有者才有读和写的权限

      -rw-r–r– (644) 只有所有者才有读和写的权限,组群和其他人只有读的权限

      -rwx—— (700) 只有所有者才有读,写,执行的权限

      -rwxr-xr-x (755) 只有所有者才有读,写,执行的权限,组群和其他人只有读和执行的权限

      -rwx–x–x (711) 只有所有者才有读,写,执行的权限,组群和其他人只有执行的权限

      -rw-rw-rw- (666) 每个人都有读写的权限

      -rwxrwxrwx (777) 每个人都有读写和执行的权限

    • chown:改变文件或目录的所有者。
    • chgrp:改变文件或目录的所属组。
    • umask:显示、设置文件的缺省权限。
    • find:文件搜索。
    • write:给用户发信息,以 Crtl+ D 保存结束。
    • wall:发广播信息。
    • mail:查看发送电子邮件。
    • last:列出目前与过去登入系统的用户信息。
    • netstat:显示网络信息。-t TCP 协议、-u UDP 协议、-l 监听、-r 路由、-n 显示 IP 地址和端口号。
    • setup:配置网络。
  5. vim 文本编辑器:

    • 安装:sudo apt-get install vim
    • 启动:输入“vi 文件名”或者“vim 文件名”即可启动 Vim 编辑器,默认进入命令模式。
    • 个人使用:i,a,o 键 — 输入模式 esc 键 — 退出输入模式切换到命令模式 “:q!” 不保存退出 “:wq” 保存并退出
    • 显示行号::set nu,取消行号::set nonu

第六章:软件安装

  1. 软件包分类:源码包和二进制包(RPM 包、系统默认包)
  2. rpm 包依赖性:

    • 树形依赖:a->b->c
    • 环形依赖:a->b->c->a
    • 模块依赖
  3. 常用 yum 命令:

    • yum list:查询可用的软件包列表。
    • yum search 关键字:搜索服务器上所有相关包。
    • yum -y install 包名 自动回答 yes 安装
    • yum -y update 包名 自动回答 yes 升级
    • yum -y remove 包名 自动回答 yes 卸载
  4. 指定位置解压:tar -zxvf 软件全名称 -C 目录
  5. 查看当前安装文件大小:du -sh

第七章:用户和用户组

  1. /etc/passwd

    wyh:X:1000:1000:wyh,,,:/home/wyh:/bin/bash

    共七个字段 含义
    第一个字段 用户名
    第二个字段 密码标识
    第三个字段 用户标识号(UID)超级用户(0)系统用户(1-499)普通用户(500-65535)
    第四个字段 组标识号(GID)
    第五个字段 用户说明
    第六个字段 家目录
    第七个字段 登录之后的 shell
  2. /etc/shadow

    wyh:$6$KVZ3uJM/$j6isnf4dXhY4Gr5Y.OFghFsIqqDiUZ/dmAtAYlIAg0BixQ6QPKG5BtNbws3j9m0H
    xMzSQ0T0LvbaT/R2GEAAy0:18322:0:99999:7:::

    sshd:*:18331:0:99999:7:::

    共九个字段 含义
    1 用户名
    2 加密的密码。若是 ”*”、”!!”,星号代表帐号锁定,双叹号表示密码过期。$6$ 开头表明是用 SHA-512,$1$ 表明是用 MD5、$2$ 是用 Blowfish、$5$ 是用 SHA-256 加密的。
    3 密码最后一次修改日期。表明上一次修改密码的日期与 1970-1- 1 相距的天数。8 即八天不能更改,0 即随时可改。
    4 密码最小修改间隔时间。99999 则永远不用改。12345,必须在距离 1970-1- 1 的 12345 天内修改密码,否则密码失效
    5 密码的有效期
    6 密码需要变更前的警告天数
    7 密码过期后的宽限天数。0 过期立即失效,- 1 永远不会失效
    8 账号失效时间
    9 保留
  3. 时间戳的换算:

  4. /etc/group:

    共四个字段 含义
    第一个字段 组名
    第二个字段 组密码标识
    第三个字段 组标识号(GID)
    第四个字段 组中附加用户
  5. /etc/gshadow:

    共四个字段 含义
    第一个字段 组名
    第二个字段 组密码
    第三个字段 组管理员用户名
    第四个字段 组中附加用户
  6. 用户管理目录:

    • useradd:useradd [选项] 用户名

      ​ useradd -d /home/myuser myuser

    • passwd:passwd [选项] 用户名

      ​ passwd myuser

    • usermod:usermod [选项] 用户名 修改用户信息
    • chage:chage [选项] 用户名 修改用户密码状态
    • userdel:userdel -r myuser 删除用户同时删除家目录
    • su:切换用户。su – myuser、su –

第八章:shell 基础

  1. shell:一个命令解释器,提供了一个界面,用户通过这个界面访问操作系统内核的服务。
  2. shell 的两种主要语法类型:Bourne(sh,bash)和 C(csh)
  3. echo:字符串输出命令。echo [- 选项] string

    • 显示不换行(-e 开启转义 c 不换行):echo -e “OK! c”
    • 显示换行(-e 开启转义 n 换行):echo -e “OK! n”
    • 显示转义字符:echo“”he is a boy“”
    • 显示变量:echo “$name It is a test”
    • 显示结果定向到文件:echo “It is a test” > myfile
    • 原样输出字符串(用单引号):echo ‘$name“‘
    • 显示命令执行结果(用反引号):echo date
  4. read:读取输入,指定给 shell 变量。

    选项 作用
    -p “ 提示信息 ” 输出提示信息
    -t 秒数 等待用户输入的时间
    -n 字符数 只接受指定的字符数
    -s 隐藏输入
  5. history:历史命令
  6. declare:声明变量类型。declare +/- [rpxi] [变量名称=设置值] 或 declare -f
选项 作用
+/- “-“ 可用来指定变量的属性,”+” 则是取消变量所设的属性。
-f 仅显示函数。
r 将变量设置为只读。
p 显示变量的声明类型
x 指定的变量会成为环境变量,可供 shell 以外的程序来使用。
i [设置值]可以是数值,字符串或运算式。
  1. 输出输入重定向:输出重定向是大于号(>),输入重定向是小于号(<)
命令 说明
command>file 输出重定向到 file
command<file 输入重定向到 file
command>>file 将输出以追加的方式重定向到 file。
n>file 将文件描述符为 n 的文件重定向到 file。
n>>file 将文件描述符为 n 的文件以追加的方式重定向到 file。
n>&m 将输出文件 m 和 n 合并。
n<&m 将输入文件 m 和 n 合并。
<<tag 将开始标记 tag 和结束标记 tag 之间的内容作为输入。

文件描述符 0 通常是标准输入(STDIN),1 是标准输出(STDOUT),2 是标准错误输出(STDERR)。

  1. wc:wc [- 选项] 文件名

    选项 作用
    -c 统计字节数
    -w 统计单词数
    -l 统计行数
  2. grep:grep [- 选项] “ 搜索内容 ” 文件名

    选项 作用
    -i 忽略大小写
    -n 输出行号
    -v 反向查找
    –color=auto 搜索出的关键字用颜色显示
  3. 通配符:

    符号 作用
    * 匹配任何字符串/文本,包括空字符串;代表任意字符(0 个或多个)ls file
    匹配任何一个字符(不在括号内时)? 代表任意 1 个字符 ls file 0
    [abcd] 匹配 abcd 中任何一个字符
    [a-z] 表示范围 a 到 z,表示范围的意思 []匹配中括号中任意一个字符 ls file 0
    1 逻辑非,表示匹配不是中括号内的一个字符。匹配一个不是数字的字符
  4. 多任务顺序执行:

    多命令执行符 格式 作用
    a:b 命令 a 和 b 顺序执行
    && a&&b 逻辑与。a 正确执行,b 才执行
    \ \ \ a\ \ b 逻辑非。要么 a 执行,要么 b 执行
  5. 管道符(|):把一个命令的标准输出传送到另一个命令的标准输入中,连续的 | 意味着第一个命令的输出为第二个命令的输入,第二个命令的输入为第一个命令的输出。
  6. shell 变量:变量名不加美元符,变量名和等号之间不能有空格

    • 命名规范:

      • 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。
      • 中间不能有空格,可以使用下划线(_)。
      • 不能使用标点符号。
      • 不能使用 bash 里的关键字(可用 help 命令查看保留关键字)。
    • 使用变量:在变量名前面加美元符号,加花括号是为了帮助解释器识别变量的边界并且可以不加

      for skill in Ada Coffe Action Java; do

      echo "I am good at ${skill}Script"

      done

    • 只读变量:使用 readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变。
    • 删除变量:使用 unset 命令可以删除变量。变量被删除后不能再次使用。unset 命令不能删除只读变量。
    • 变量类型:局部变量、环境变量、shell 变量
    • shell 字符串:

      • 单引号:单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
      • 双引号:可以有变量,可以出现转义字符。
    • 获取字符串长度:输出 4

      string=”abcd”

      echo ${#string}

    • 提取子字符串:第一个字符的索引值为 0。输出 unoo

      string=”runoob is a great site”

      echo ${string:1:4}

    • 查找子字符串:输出 4

      string=”runoob is a great site”

      echo expr index "$string" io

    • 数值运算:

      • 方法 1(declare):declare -i cc=$aa+$bb
      • 方法 2(expr 或 let 数值运算工具):dd=$(expr $aa + $bb) + 号左右两边必须有空格才有效
      • 方法 3:$((运算式)) 或 $[运算式] echo $(($aa+$bb)) echo $[$aa+$bb]
  7. shell 数组:

    • 定义数组:用括号来表示数组,数组元素用 ” 空格 ” 符号分割开。name=(a b c d)
    • 读取数组:myname=${name[2]}
    • 使用 @ 符号可以获取数组中的所有元素:echo ${name[@]}
    • 获取数组的长度:

      • 取得数组元素的个数:length=${#name[@]}
      • 取得数组元素的个数:length=${#name[*]}
      • 取得数组单个元素的长度:lengthn=${#name[n]}
  8. shell 注释:

    • 单行:以 # 开头的行就是注释,会被解释器忽略。
    • 多行:EOF 也可以使用其他符号 ‘ !

      :<<EOF
      注释内容 …
      EOF

第九章:shell 编程

  1. 正则表达式与通配符:

    • 正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配。grep、awk、sed 等命令可以支持正则表达式。
    • 通配符用来匹配符合条件的文件名,通配符是完全匹配。ls、find、cp 这些命令不支持正则表达式,所以只能使用 shell 自己的通配符来进行匹配。
| 符号      | 含义                                      |
| --------- | ------------------------------------------------------------ |
| *         | 前一个字符匹配 0 次或任意多次。|
| .         | 匹配除了换行符外任意一个字符。|
| ^         | 匹配行首。^abc 即 匹配以 abc 开头的行。|
| $         | 匹配行尾。abc$ 即 匹配以 abc 结尾的行。|
| []        | 匹配中括号中指定的任意一个字符,只匹配一个字符。[aeiou]匹配任意一个元音字母,\[0-9][a-z]匹配小写字母和一位数字构成的两位字符。|
| [^]       | 匹配除中括号内的字符以外的任意一个字符。\[^a-z]表示任意一位非小写字母。|
| \         | 转义符。用于将特殊符号的含义取消。|
| \\{n\\}   | 匹配其前面的字符恰好出现 n 次。[0-9]\\{2\\} 匹配 2 位数字。|
| \\{n,\\}  | 匹配其前面的字符出现不小于 n 次。[0-9]\\{2,\\}表示两位即以上的数字。|
| \\{n,m\\} | 匹配其前面的字符至少出现 n 次,最多出现 m 次。[a-z]\\{6,8\\} 匹配 6 到 8 位的小写字母。|
  1. cut [选项] 文件名 -d 分隔符 自定义分隔符,默认为制表符。-f 列号 提取第几列。
  2. printf 是 awk 的重要格式化输出命令。printf ‘ 输出类型输出格式 ’ 输出内容

    输出类型:

    %ns:输出字符串。n 是数字,指代输出几个字符;
    %ni:输出整数。n 是数字,指代输出几个数字‘’
    %m.nf: 输出浮点数。m 和 n 是数字,指代输出的整数位数和小数位数。如 %8.2f 代表共输出 8 位数,其中 2 位是小数,6 位是整数;

    输出格式:
    a:输出警告声音;
    b:输出退格键,也就是 Backspaced 键;
    f:清除屏幕;
    n:换行;
    r:回车,也就是 Enter 键;
    t:水平输出退格键,也就是 Tab 键;
    v:垂直输出退格键,也就是 Tab 键;

  3. awk:cat /etc/passwd |awk -F ‘:’ ‘{print $1″\t”$7}’

    • 命令行方式:awk [-F field-separator] ‘commands’ input-file(s)
      其中,commands 是真正 awk 命令,[- F 域分隔符]是可选的。input-file(s) 是待处理的文件。
      在 awk 中,文件的每一行中,由域分隔符分开的每一项称为一个域。通常,在不指名 - F 域分隔符的情况下,默认的域分隔符是空格。
    • 工作流程:读入有 ’n’ 换行符分割的一条记录,然后将记录按指定的域分隔符划分域,填充域,$0 则表示所有域,$1 表示第一个域,$n 表示第 n 个域。
  4. sort:排序命令。sort [选项] 文件名

    选项 作用
    -f 忽略大小写
    -n 以数值型进行排序,默认使用字符串型排序
    -r 反向排序
    -t 指定分隔符,默认制表符
    -k n[,m] 按照指定的字段范围排序。从第 n 字段开始,m 字段结束
  5. 按照文件类型进行判断

    选项 作用
    -b file 如果文件为一个块设备文件,则为真
    -c file 如果文件为一个字符设备文件,则为真
    -d file 如果文件为一个目录文件,则为真
    -e file 如果文件存在,则为真
    -f file 如果文件为一个普通文件,则为真
    -s file 如果文件存在非空,则为真
    -p file 如果文件为一个管道文件,则为真
    -S file 如果文件为一个套接字文件,则为真
  6. 按照文件权限进行判断

    选项 作用
    -r file 如果文件可读,则为真
    -w file 如果文件可写,则为真
    -x file 如果文件可执行,则为真
    -u file 如果设置了文件的 SUID 权限,则为真
    -g file 如果设置了文件的 SGID 权限,则为真
    -k file 如果设置了文件的 SBit 权限,则为真
  7. 按照文件之间进行判断

    选项 作用
    f1 -nt f2 f1 是否比 f2 新(new than)
    f1 -ot f2 f1 是否比 f2 旧(old than)
    f1 -ef f2 f1 和 f2,Inode 号是否相同,是否为同一个文件。是否是相同文件的硬链接
  8. 数进行判断

    选项 作用
    int1 -eq int2 两数相等为真
    int1 -ne int2 两数不等为真
    int1 -gt int2 int1 大于 int2 为真
    int1 -ge int2 int1 大于等于 int2 为真
    int1 -lt int2 int1 小于 int2 为真
    int1 -le int2 int1 小于等于 int2 为真
  9. 按照字符串进行判断

    选项 作用
    str1 == str2 当两个串相等时为真
    str1 != str2 当串 str1 和 str2 不等时为真
    -n str1 当串的长度大于 0 时为真(串非空)
    -z str1 当串的长度为 0 时为真(空串)
    str1 当串 str1 为非空时为真
  10. 复杂逻辑判断

    选项 作用
    判断 1 -a 判断 2 与 1,2 都成立为真
    判断 1 -o 判断 2 或 1,2 有一个成立为真
    ! 判断 非 原判断取反
  11. 单分支 if 语句:

    if condition
    then

    statement(s)

    fi

    if condition; then
    statement(s)
    fi

  12. 统计根分使用率区

  13. 双分支 if 语句

    if condition

    then

    ​ statement(s)

    else

    ​ statement(s)

    fi

  14. case 语句

    #!/bin/bash

    echo “ 请输入您的姓名、年龄以及今天周几?”

    read -t 30 -p “ 姓名:” name

    read -t 30 -p “ 年龄:” age

    read -t 30 -p “ 星期:” week

    echo -e “n”

    echo “$name 的年龄是 $age”

    case $week in

    7)

    ​ echo “ 你输入的星期为:星期天 ”

    ​ ;;

    1)

    ​ echo “ 你输入的星期为:星期一 ”

    ​ ;;

    2)

    ​ echo “ 你输入的星期为:星期二 ”

    ​ ;;

    3)

    ​ echo “ 你输入的星期为:星期三 ”

    ​ ;;

    4)

    ​ echo “ 你输入的星期为:星期四 ”

    ​ ;;

    5)

    ​ echo “ 你输入的星期为:星期五 ”

    ​ ;;

    6)

    ​ echo “ 你输入的星期为:星期六 ”

    ​ ;;

    *)

    ​ echo “Please input a number for week should between 1 and 7”

    ​ exit;

    esac

  15. for 循环

    #!/bin/bash

    s=0

    for((i=1;i<=100;i=i+1))

    ​ do

    ​ s=$(($s+$i))

    ​ done

    echo “the sum of 1-100 is $s”

  16. 批量添加用户

第十章:系统备份

  1. 备份策略

    完全备份 :优点是数据恢复方便;缺点备份的数据量较大,备份时间较长,占用的空间较大
    增量备份 :优点备份的数据较少,耗时较短,占用的空间较小;
    缺点是数据恢复比较麻烦,先恢复完全备份的数据每次增量备份的数据,最终才能恢复所有的数据。
    差异备份 :优点恢复数据简单方便快捷
    缺点数据量庞大、备份速度缓慢、占用空间较大。

  2. dump 备份、restore 恢复
  3. ps -le 查看所有进程

  1. 0-9 ↩
正文完
 0