7.8号作业

7.8号作业

课堂笔记
安装与检查
bash
which vim # 查看 vim 安装位置
ls -l /usr/bin/vim # 查看链接情况
sudo apt-get install vim # Ubuntu 安装基础版 vim
2. 启动与打开文件
bash
vim filename # 打开已有文件或新建文件(未指定则开辟新缓冲区)
3. 三种操作模式
模式 进入方式 功能说明
普通模式 刚打开文件时默认进入 按键被解释为命令(移动、删除、复制等)
插入模式 按 i(或其他字母如 a, o, A, O, R 等) 输入文本,按 ESC 返回普通模式
命令行模式 普通模式下按 : 输入保存、退出、替换等命令
4. 普通模式常用命令
光标移动(也可用方向键):
h / j / k / l → 左 / 下 / 上 / 右
Ctrl+F 或 PageDown → 下翻一屏
Ctrl+B 或 PageUp → 上翻一屏
G → 跳到缓冲区最后一行
num G → 跳到第 num 行(如 5G)
gg → 跳到第一行
编辑命令:
命令 作用
x 删除当前光标所在字符
dd 删除当前整行
dw 删除当前光标所在单词
d$ 删除光标位置至行尾
J 删除行尾换行符(拼接下一行)
u 撤销上一步编辑
a 在当前光标后追加
A 在当前行尾追加
r char 用 char 替换当前字符
R text 覆盖输入,按 ESC 结束
数字修饰符:如 5dd 删除从当前行开始的 5 行。
5. 命令行模式常用命令(按 : 后输入)
命令 作用
q 未修改时退出
q! 强制退出,放弃修改
w filename 另存为 filename
wq 保存并退出
wq! 强制保存并退出
6. 复制与粘贴
删除/复制的内容存入寄存器,用 p 粘贴到光标之后。
复制命令(yank):
yw → 复制一个单词
y$ → 复制到行尾
yy → 复制一整行
可视模式(按 v 进入):
移动光标高亮选择文本,按 y 复制,移动光标后按 p 粘贴。
7. 查找与替换
查找:普通模式下按 /,输入要查找的文本,回车。
按 n 查找下一个。
替换(命令行模式):
😒/old/new/ → 替换当前行第一个 old
😒/old/new/g → 替换当前行所有 old
:n,ms/old/new/g → 替换第 n 行到第 m 行的所有 old
:%s/old/new/g → 替换整个文件所有 old
:%s/old/new/gc → 替换整个文件,每次询问确认
二、nano 编辑器
bash
nano filename
底部显示控制命令,^ 表示 Ctrl 键(如 ^X = Ctrl+X)。
常用命令:
命令 作用
Ctrl+C 显示光标位置
Ctrl+G 帮助
Ctrl+O 保存文件
Ctrl+X 退出
Ctrl+K 剪切当前行
Ctrl+U 粘贴
Ctrl+W 查找
三、其他编辑器简介
emacs:从控制台发展至图形化,功能强大。
KDE 系列:KWrite(单窗口)、Kate(多窗口)。
GNOME 编辑器:图形化简单编辑器。

课堂笔记:构建基本脚本
一、使用多个命令
可以将多个命令放在同一行,用分号(;) 隔开,依次执行。
示例:date; who → 先显示日期时间,再显示当前登录用户。
二、创建 Shell 脚本文件

  1. 基本格式
    bash
    #!/bin/bash
    注释内容(第一行除外)
    命令1
    命令2
    #! 告诉系统用哪个 Shell 来运行脚本(必须是第一行)。
    其余以 # 开头的行是注释,不执行。
  2. 运行脚本
    方法一:添加执行权限后用 ./ 运行
    bash
    chmod u+x script.sh
    ./script.sh
    方法二:将脚本所在目录加入 PATH 环境变量(后续章节学习)。
    遇到 Permission denied 说明需要加执行权限。
    三、显示消息——echo 命令
    echo 用于向用户输出提示信息。
    默认情况下,echo 每次输出后会自动换行。
    使用 -n 选项可以让输出不换行,与后续命令输出显示在同一行。
    如果字符串中包含引号,可以用另一种引号包住整个字符串。
    注意:echo 默认会显示变量值(即以 $ 开头的内容)。
    四、使用变量
  3. 环境变量
    通过 $ 引用系统环境变量,如U S E R 、 USER、USERHOME、$UID。
    如果要显示普通美元符号 $,需加反斜杠转义:$。
  4. 用户自定义变量命名规则:
    字母、数字、下划线组成,不超过 20 个字符,区分大小写。
    赋值格式:变量名=值(等号两边不能有空格)。
    引用变量:$变量名。
    变量值可以重新赋值,也可以将另一个变量的值赋给它。
  5. 命令替换(将命令输出赋给变量)
    两种写法:
    反引号方式:变量名=命令``(旧式写法,不推荐)
    ( ) 方式:变量名 = () 方式:变量名=()方式:变量名=(命令)(推荐)
    示例:
    bash
    today=( d a t e + l s / u s r / b i n − a l > l o g . (date +%y%m%d) ls /usr/bin -al > log.(date+ls/usr/binal>log.today
    五、输入/输出重定向
    操作符 含义

输出重定向(覆盖写入)

输出重定向(追加到文件末尾)
< 输入重定向(从文件读取输入)
<< 内联输入重定向(直接指定输入数据,以标记作为结束符)
示例
bash
date > datefile # 将日期写入文件(覆盖)
who >> datefile # 将登录用户追加到文件末尾
wc < datefile # 统计 datefile 的行数、词数、字节数
wc << start # 以内联方式输入数据,用 start 标记结束
六、管道(|)
将一个命令的输出直接作为另一个命令的输入,无需中间文件。
语法:命令1 | 命令2 | 命令3
常用场景:ps -ef | grep 用户名 | more
七、数学运算

  1. expr 命令支持加、减、乘、除、取余等运算。
    注意:部分操作符(如 *)需要转义:*
    格式:expr 操作数 操作符 操作数(操作符两边必须有空格)
  2. 方括号[ ] 更简洁的整数运算方式。格式: [] 更简洁的整数运算方式。 格式:[]更简洁的整数运算方式。格式:[表达式]
    示例:var=$[1 + 5] → var=6
    只支持整数运算,除法直接舍去小数部分。
  3. bc 计算器(支持浮点数)
    在脚本中使用 bc:
    bash
    变量=( e c h o " s c a l e = 小数位数 ; 表达式 " ∣ b c ) 或使用内联输入: b a s h 变量 = (echo "scale=小数位数; 表达式" | bc) 或使用内联输入: bash 变量=(echo"scale=小数位数;表达式"∣bc)或使用内联输入:bash变量=(bc << EOF
    scale=小数位数
    表达式
    EOF
    )
    scale 变量控制小数位数,默认为 0。
    八、退出脚本
  4. 退出状态码 $?
    每个命令执行完后都会返回一个退出状态码(0~255)。
    0 表示成功,非 0 表示失败或异常。
    $? 保存上一个命令的退出状态码。
  5. 常见状态码
    状态码 含义
    0 命令成功结束
    1 一般性未知错误
    126 命令不可执行
    127 没找到命令
    128+x 与信号 x 相关的严重错误
    130 通过 Ctrl+C 终止
    255 超出正常范围的退出状态码
  6. exit 命令
    在脚本中使用 exit 状态码 可以自定义退出状态码。
    脚本的默认退出状态码是最后一个命令的退出状态码。
    练习一

    练习二

    练习三

    练习三

    练习四


练习五