入门篇-03-vi编辑器、shell脚本编程

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 ]

入门篇-03-vi编辑器、shell脚本编程_第1张图片

选 项 作 用
-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

入门篇-03-vi编辑器、shell脚本编程_第2张图片

case in语句

case expression in
​ pattern1)
​ statement1
​ ;;
​ pattern2)
​ statement2
​ ;;
​ pattern3)
​ statement3
​ ;;
​ ……
​ *)
​ statementn
esac

入门篇-03-vi编辑器、shell脚本编程_第3张图片

for in 循环

for variable in value_list
do
​ statements
done

入门篇-03-vi编辑器、shell脚本编程_第4张图片

value_list

  • 直接给出具体的值
  • 给出一个取值范围
  • 使用命令的执行结果
  • 使用 Shell 通配符
  • 使用特殊变量

入门篇-03-vi编辑器、shell脚本编程_第5张图片

while 循环

while condition
do
​ statements
done

函数

function name() {
​ statements
​ [return value]
}

入门篇-03-vi编辑器、shell脚本编程_第6张图片

你可能感兴趣的:(shell,linux)