一、the first sh --hello.sh
shell脚本能提高用户操作和管理员进行系统管理的效率,一般步骤
1.编辑器编写脚本程序
2.shell做解释程序,非交互地执行脚本,两种执行方式:
3.用sh命令执行脚本文件
4.给脚本文件添加执行权限,用./命令执行
1、shell的基本元素
(1) #!/bin/bash 必须的,指出shell的类型
(2)# 注释
(3)变量
(4)控制
一般步骤:
(1)编辑文件
(2)保存文件
(3)将文件赋予可执行的权限 chmod 755 run.sh 、 chmod u+x run.sh
(4)运行及排错 运行 ./hello.sh 、 sh hello.sh(不要求执行权限)
一个shell脚本
vi hello.sh
i
#!/bin/bash
# this is hello world
echo "hello world "
echo "my shell"
:wq
sh hello.sh
二、vi 模式下操作命令
1.常用
从命令模式转入编辑模式
新增 (append)
a :从光标所在位置后面开始新增资料
A: 从光标所在行最后面的地方开始新增资料。
插入 (insert)
i: 从光标所在位置前面开始插入资料
I :从光标所在行的第一个非空白字元前面开始插入资料。
开始 (open)
o :在光标所在行下新增一列并进入输入模式。
O: 在光标所在行上方新增一列并进入输入模式。
冒号进命令行模式 :
:q! 不存档强制退出。
:w 保存但不退出,w(rite)后可加所要存档的文档名。
:wq 存档后退出。
光标移动 o 、s 移动该行首\末
h、j、k、l(n) 左下上右(n)
Ctrl+b\f 向前\后翻一页
H、M、L 移到窗口第一行、中间行、最后一行
G、nG 移至文件最后一行、移至文件第n行
2.删除与修改
x: 删除光标所在字符 eg x、3x
dw 删除一个单词· dw 、3dw
dd :删除光标所在的行
s:删除光标所在字节,并进入输入模式 S:删除光标所在行
u :恢复刚才被修改的文本 U:恢复光标所在行的所有修改
.:重复上一次命令的操作
复制命令:y
yy: 复制整行
yw:复制光标所在的单词
nyw:复制包括光标所在的n个单词
nyy:复制包括当前行在内的n行
粘贴命令P
3.查找替换
set nu ‘显示行号
:/string 搜索指定的字符串。按键n:继续进行搜索
如果写的是斜杠(/):按n会从当前位置向后查找;如果写的是问号(?),按n键则从当前位置向前查找
查找且替换
:%s /SEARCH /REPLACE
把文档中所有SEARCH替换成REPLACE;
:#,# s /SEARCH /REPLACE /g
#号表示数字,表示从多少行到多少行,把SEARCH替换成REPLACE;
:s /SEARCH /REPLACE /g
把当前光标所在行中的SEARCH单词,替换成REPLACE,并把所有SEARCH高亮显示
:/,? 取消选中颜色
eg 将 2 到 10 行之间的 is 改为 are :2,10s/is/are/g
三、Shell中的特殊符号
1、注释符#
除了#!/bin/bash里的#特殊
2、美元符 $
变量符。与反斜杠转义符相反,使其后的普通字符作为变量名,如$a表示变量a的值。变量字符长度超过1个时,用{}括起来
3、单引号
被引起的字符全部做普通字符,即全部原样
echo ‘my $SHELL’
4、双引号
引号内的内容,除$、转义符\、倒引号`这三个保留特殊功能,其他字符均做普通字符。
5、倒引号(数字1键旁边的那个键)
引号内的字符串当做shell命令行解释执行,得到的结果取代整个倒引号括起来的部分
3、内部变量
内部变量是Linux所提供的一种特殊类型的变量,这类变量在程序中用来作出判断。在shell程序内这类变量的值是不能修改的。
部分内部变量是:
$# ——传送给shell程序的位置参数的数量
$?——最后命令的完成码或者在shell程序内部执行的shell程序(返回值)
$0——shell程序的名称
$*——调用shell程序时所传送的全部参数的单字符串, “参数1”“参数2”…形式保存的参数
$@ “参数1”“参数2”…形式保存的参数
$n 第n个参数
$$ 本程序的PID
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|