gedit编译器
简单易懂,依赖图形界面
vi/vim编辑器
为什么要学习vi/vim编辑器
vi与vim的区别:
- vim是vi的升级版本,兼容vi
- vi按 u只能撤消上次命令,而在vim里可以无限制的撤消
- vi只能运行于类unix系统中,而vim不仅可以运行于unix,windows ,mac等多操作平台
- vim可以用不同的颜色来高亮代码
- 可通过vimrc文件配置更加高级的功能
vi/vim使用
安装:
sudo apt install vim
vi/vim的三种模式
- 一般模式(默认模式)
- 插入模式(编辑模式)
- 命令行模式
模式切换
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3gEfue61-1625122022357)(https://tutorial.linux.doc.embedfire.com/zh_CN/latest/_images/editor018.png)]
打开Vi/Vim
vi 文件名
vim 文件名
进入/退出插入模式快捷键
快捷键 | 功能描述 |
---|---|
i | 在当前光标所在位置插入文本 |
a | 在当前光标所在位置的下一个字符插入文本 |
o | 在光标所在位置后插入新行 |
r | 替换当前光标所在位置的字符 |
R | 可以替换当前光标所在位置之后的字符,按下”Esc”则退出 |
ESC | 退出插入模式 |
一般模式快捷键
快捷键 | 功能描述 | |
---|---|---|
光标移动 | k / ↑ | 光标向上移动 |
j / ↓ | 光标向下移动 | |
h / ← | 光标向左移动 | |
l / → | 光标向右移动 | |
PageUp | 向上翻页 | |
PageDown | 向下翻页 | |
n+shift+g | 跳转到第n行 | |
shift+g | 跳转到最末行 | |
gg | 跳转到第一行 | |
文本查找与替换 | /word | 在文件中搜索关键字word |
n | 查找下一个关键字 | |
N | 查找上一个关键字 | |
撤销重做 | u | 撤销上一步的操作,等价于Windows的Ctrl+Z |
Ctrl+r | 重做上一步的操作。 | |
删除、剪切、复制、粘贴 | dw | 删除一个单词 |
dd | 删除当前行 | |
ndd | 删除光标后n行 | |
x | 剪切光标选中的字符 | |
y | 复制光标所选的内容 | |
yy | 复制当前行 | |
nyy | 复制当前行后n行 | |
p | 将复制的数据粘贴在当前行的下一行 | |
P | 将复制的数据粘贴在当前行的上一行 | |
区块操作 | v | 选择多个字符 |
V | 可以选择多行 |
命令行模式快捷键
快捷键 | 功能描述 |
---|---|
w | 保存文档 |
w | 另存为以为文件名的文档 |
r | 读取文件名为filename的文档 |
q | 直接退出软件,前提是文档未做任何修改 |
q! | 不保存修改,直接退出软件 |
wq | 保存文档,并退出软件。 |
set nu | 在行首加入行号 |
set nonu | 不显示行号 |
set hlsearch | 搜索结果高亮显示 |
! command | 回到终端窗口,执行command命令,按回车键可切回vim。 |
Shell脚本简介
Shell脚本是什么?
- shell命令按一定语法组成的文件
Shell脚本有什么用?
批处理文件/整合命令
- 软件启动
- 性能监控
- 日志分析
…
Shell命令的本质
内置命令/外部命令
Shell脚本语言和C语言一样吗?
- 编译型语言
- 解释型语言
常用的Shell解释器有哪些?
/etc/shells
第一个Shell脚本
helloworld
编辑、保存、改权限、运行/排错
Shell启动方式
- 当程序执行
- 指定解释器运行
- source和.
Shell脚本语法讲解
定义变量
- variable=value
- variable=‘value’
- variable=“value”
使用变量
- $variable
- ${variable}
将命令的结果赋值给变量
- variable=`command`
- variable=$(command)
删除变量
- unset
特殊变量
变量 | 含义 |
---|---|
$0 | 当前脚本的文件名。 |
$n(n≥1) | 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是 $1,第二个参数是 $2。 |
$# | 传递给脚本或函数的参数个数。 |
$* | 传递给脚本或函数的所有参数。 |
$@ | 传递给脚本或函数的所有参数。当被双引号" " 包含时,$@ 与 $* 稍有不同. |
$? | 上个命令的退出状态或者获取函数返回值。 |
$$ | 当前 Shell 进程 ID。对于 Shell 脚本,就是这些脚本所在的进程 ID。 |
字符串拼接
并排放
读取从键盘输入的数据
read
退出当前进程
exit
对整数进行数学运算
(())
逻辑与/或
command1 && command2
command1 || command2
检测某个条件是否成立
test expression和[ expression ]
选 项 | 作 用 |
---|---|
-eq | 判断数值是否相等 |
-ne | 判断数值是否不相等 |
-gt | 判断数值是否大于 |
-lt | 判断数值是否小于 |
-ge | 判断数值是否大于等于 |
-le | 判断数值是否小于到等于 |
-z str | 判断字符串 str 是否为空 |
-n str | 判断字符串str是否为非空 |
=和== | 判断字符串str是否相等 |
-d filename | 判断文件是否存在,并且是否为目录文件。 |
-f filename | 判断文件是否存在,井且是否为普通文件。 |
管道
command1 | command2
if语句
if condition
then
statement(s)
fi
if else 语句
if condition
then
statement1
else
statement2
fi
if elif else 语句
if condition1
then
statement1
elif condition2
then
statement2……
else
statementn
fi
./test1.sh
case in语句
case expression in
pattern1)
statement1
;;
pattern2)
statement2
;;
pattern3)
statement3
;;
……
*)
statementn
esac
for in 循环
for variable in value_list
do
statements
done
value_list
- 直接给出具体的值
- 给出一个取值范围
- 使用命令的执行结果
- 使用 Shell 通配符
- 使用特殊变量
while 循环
while condition
do
statements
done
函数
function name() {
statements
[return value]
}