入门篇-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 ]

在这里插入图片描述

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

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值