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 脚本文件
- 基本格式
bash
#!/bin/bash
注释内容(第一行除外)
命令1
命令2
#! 告诉系统用哪个 Shell 来运行脚本(必须是第一行)。
其余以 # 开头的行是注释,不执行。 - 运行脚本
方法一:添加执行权限后用 ./ 运行
bash
chmod u+x script.sh
./script.sh
方法二:将脚本所在目录加入 PATH 环境变量(后续章节学习)。
遇到 Permission denied 说明需要加执行权限。
三、显示消息——echo 命令
echo 用于向用户输出提示信息。
默认情况下,echo 每次输出后会自动换行。
使用 -n 选项可以让输出不换行,与后续命令输出显示在同一行。
如果字符串中包含引号,可以用另一种引号包住整个字符串。
注意:echo 默认会显示变量值(即以 $ 开头的内容)。
四、使用变量 - 环境变量
通过 $ 引用系统环境变量,如U S E R 、 USER、USER、HOME、$UID。
如果要显示普通美元符号 $,需加反斜杠转义:$。 - 用户自定义变量命名规则:
字母、数字、下划线组成,不超过 20 个字符,区分大小写。
赋值格式:变量名=值(等号两边不能有空格)。
引用变量:$变量名。
变量值可以重新赋值,也可以将另一个变量的值赋给它。 - 命令替换(将命令输出赋给变量)
两种写法:
反引号方式:变量名=命令``(旧式写法,不推荐)
( ) 方式:变量名 = () 方式:变量名=()方式:变量名=(命令)(推荐)
示例:
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/bin−al>log.today
五、输入/输出重定向
操作符 含义
输出重定向(覆盖写入)
输出重定向(追加到文件末尾)
< 输入重定向(从文件读取输入)
<< 内联输入重定向(直接指定输入数据,以标记作为结束符)
示例
bash
date > datefile # 将日期写入文件(覆盖)
who >> datefile # 将登录用户追加到文件末尾
wc < datefile # 统计 datefile 的行数、词数、字节数
wc << start # 以内联方式输入数据,用 start 标记结束
六、管道(|)
将一个命令的输出直接作为另一个命令的输入,无需中间文件。
语法:命令1 | 命令2 | 命令3
常用场景:ps -ef | grep 用户名 | more
七、数学运算
- expr 命令支持加、减、乘、除、取余等运算。
注意:部分操作符(如 *)需要转义:*
格式:expr 操作数 操作符 操作数(操作符两边必须有空格) - 方括号[ ] 更简洁的整数运算方式。格式: [] 更简洁的整数运算方式。 格式:[]更简洁的整数运算方式。格式:[表达式]
示例:var=$[1 + 5] → var=6
只支持整数运算,除法直接舍去小数部分。 - 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。
八、退出脚本 - 退出状态码 $?
每个命令执行完后都会返回一个退出状态码(0~255)。
0 表示成功,非 0 表示失败或异常。
$? 保存上一个命令的退出状态码。 - 常见状态码
状态码 含义
0 命令成功结束
1 一般性未知错误
126 命令不可执行
127 没找到命令
128+x 与信号 x 相关的严重错误
130 通过 Ctrl+C 终止
255 超出正常范围的退出状态码 - exit 命令
在脚本中使用 exit 状态码 可以自定义退出状态码。
脚本的默认退出状态码是最后一个命令的退出状态码。
练习一
练习二
练习三
练习三
练习四
练习五