7.8号作业
课堂笔记安装与检查bashwhich vim # 查看 vim 安装位置ls -l /usr/bin/vim # 查看链接情况sudo apt-get install vim # Ubuntu 安装基础版 vim2. 启动与打开文件bashvim filename # 打开已有文件或新建文件未指定则开辟新缓冲区3. 三种操作模式模式 进入方式 功能说明普通模式 刚打开文件时默认进入 按键被解释为命令移动、删除、复制等插入模式 按 i或其他字母如 a, o, A, O, R 等 输入文本按 ESC 返回普通模式命令行模式 普通模式下按 : 输入保存、退出、替换等命令4. 普通模式常用命令光标移动也可用方向键h / j / k / l → 左 / 下 / 上 / 右CtrlF 或 PageDown → 下翻一屏CtrlB 或 PageUp → 上翻一屏G → 跳到缓冲区最后一行num G → 跳到第 num 行如 5Ggg → 跳到第一行编辑命令命令 作用x 删除当前光标所在字符dd 删除当前整行dw 删除当前光标所在单词d$ 删除光标位置至行尾J 删除行尾换行符拼接下一行u 撤销上一步编辑a 在当前光标后追加A 在当前行尾追加r char 用 char 替换当前字符R text 覆盖输入按 ESC 结束数字修饰符如 5dd 删除从当前行开始的 5 行。5. 命令行模式常用命令按 : 后输入命令 作用q 未修改时退出q! 强制退出放弃修改w filename 另存为 filenamewq 保存并退出wq! 强制保存并退出6. 复制与粘贴删除/复制的内容存入寄存器用 p 粘贴到光标之后。复制命令yankyw → 复制一个单词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 编辑器bashnano filename底部显示控制命令^ 表示 Ctrl 键如 ^X CtrlX。常用命令命令 作用CtrlC 显示光标位置CtrlG 帮助CtrlO 保存文件CtrlX 退出CtrlK 剪切当前行CtrlU 粘贴CtrlW 查找三、其他编辑器简介emacs从控制台发展至图形化功能强大。KDE 系列KWrite单窗口、Kate多窗口。GNOME 编辑器图形化简单编辑器。课堂笔记构建基本脚本一、使用多个命令可以将多个命令放在同一行用分号; 隔开依次执行。示例date; who → 先显示日期时间再显示当前登录用户。二、创建 Shell 脚本文件基本格式bash#!/bin/bash注释内容第一行除外命令1命令2#! 告诉系统用哪个 Shell 来运行脚本必须是第一行。其余以 # 开头的行是注释不执行。运行脚本方法一添加执行权限后用 ./ 运行bashchmod ux script.sh./script.sh方法二将脚本所在目录加入 PATH 环境变量后续章节学习。遇到 Permission denied 说明需要加执行权限。三、显示消息——echo 命令echo 用于向用户输出提示信息。默认情况下echo 每次输出后会自动换行。使用 -n 选项可以让输出不换行与后续命令输出显示在同一行。如果字符串中包含引号可以用另一种引号包住整个字符串。注意echo 默认会显示变量值即以 $ 开头的内容。四、使用变量环境变量通过 $ 引用系统环境变量如U S E R 、 USER、USER、HOME、$UID。如果要显示普通美元符号 $需加反斜杠转义$。用户自定义变量命名规则字母、数字、下划线组成不超过 20 个字符区分大小写。赋值格式变量名值等号两边不能有空格。引用变量$变量名。变量值可以重新赋值也可以将另一个变量的值赋给它。命令替换将命令输出赋给变量两种写法反引号方式变量名命令旧式写法不推荐( ) 方式变量名 () 方式变量名()方式变量名(命令)推荐示例bashtoday( 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.(datels/usr/bin−allog.today五、输入/输出重定向操作符 含义输出重定向覆盖写入输出重定向追加到文件末尾 输入重定向从文件读取输入 内联输入重定向直接指定输入数据以标记作为结束符示例bashdate datefile # 将日期写入文件覆盖who datefile # 将登录用户追加到文件末尾wc datefile # 统计 datefile 的行数、词数、字节数wc start # 以内联方式输入数据用 start 标记结束六、管道|将一个命令的输出直接作为另一个命令的输入无需中间文件。语法命令1 | 命令2 | 命令3常用场景ps -ef | grep 用户名 | more七、数学运算expr 命令支持加、减、乘、除、取余等运算。注意部分操作符如 *需要转义*格式expr 操作数 操作符 操作数操作符两边必须有空格方括号[ ] 更简洁的整数运算方式。格式 [] 更简洁的整数运算方式。 格式[]更简洁的整数运算方式。格式[表达式]示例var$[1 5] → var6只支持整数运算除法直接舍去小数部分。bc 计算器支持浮点数在脚本中使用 bcbash变量( e c h o s c a l e 小数位数 ; 表达式 ∣ b c ) 或使用内联输入 b a s h 变量 (echo scale小数位数; 表达式 | bc) 或使用内联输入 bash 变量(echoscale小数位数;表达式∣bc)或使用内联输入bash变量(bc EOFscale小数位数表达式EOF)scale 变量控制小数位数默认为 0。八、退出脚本退出状态码 $?每个命令执行完后都会返回一个退出状态码0~255。0 表示成功非 0 表示失败或异常。$? 保存上一个命令的退出状态码。常见状态码状态码 含义0 命令成功结束1 一般性未知错误126 命令不可执行127 没找到命令128x 与信号 x 相关的严重错误130 通过 CtrlC 终止255 超出正常范围的退出状态码exit 命令在脚本中使用 exit 状态码 可以自定义退出状态码。脚本的默认退出状态码是最后一个命令的退出状态码。练习一练习二练习三练习三练习四练习五