实验六:Linux Shell及vi/vim使用
vi/vim简单使用,在命令模式下的保存,删除,查找命令。
Shell变量,运算符,分支,循环,传递参数,函数的使用系统相关信息
vi/vim
包含三种模式命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)
命令模式
此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。
- i 切换到输入模式,以输入字符。
- x 删除当前光标所在处的字符。
- : 切换到底线命令模式,以在最底一行输入命令。
保存
:wq 保存并退出
删除
x 删除当前光标所在处的字符
查找
?text 查找text,按n健查找下一个,按N健查找前一个
使用vim进入命令模式

使用i进入输入模式

键入内容,按下esc退出输入模式

退出保存

查看内容

Shell
Shell 既是一个连接用户和 Linux 内核的程序,又是一门管理 Linux 系统的脚本语言。
变量
定义
Shell 支持以下三种定义变量的方式:
variable=value
variable='value'
variable="value"
使用
在变量名前面加美元符号$
即可
echo $author
echo ${author}

删除
unset variable_name

运算符
双小括号 (( )) 是 Bash Shell 中专门用来进行整数运算的命令,它的效率很高,写法灵活。
注意:(( )) 只能进行整数运算,不能对小数(浮点数)或者字符串进行运算。
((表达式))

Shell 算术运算符一览表
算术运算符 | 说明/含义 |
---|---|
+、- | 加法(或正号)、减法(或负号) |
*、/、% | 乘法、除法、取余(取模) |
** | 幂运算 |
++、-- | 自增和自减,可以放在变量的前面也可以放在变量的后面 |
!、&&、|| | 逻辑非(取反)、逻辑与(and)、逻辑或(or) |
<、<=、>、>= | 比较符号(小于、小于等于、大于、大于等于) |
==、!=、= | 比较符号(相等、不相等;对于字符串,= 也可以表示相当于) |
<<、>> | 向左移位、向右移位 |
~、|、 &、^ | 按位取反、按位或、按位与、按位异或 |
=、+=、-=、*=、/=、%= | 赋值运算符,例如 a+=1 相当于 a=a+1,a-=1 相当于 a=a-1 |
使用变量进行运算
let i=1
let i+=9
echo $i

分支
if-elseif-else结构
if condition1 then
command1
elif condition2 then
command2
else
commandN
fi
示例:
a=10
b=20
if [ $a == $b ]
then
echo "a 等于 b"
elif [ $a -gt $b ]
then
echo "a 大于 b"
elif [ $a -lt $b ]
then
echo "a 小于 b"
else
echo "没有符合的条件"
fi
创建并编辑文件:


执行:

循环
for 循环
for var in item1 item2 ... itemN
do
command1
command2
...
commandN
done
示例:
for item in 1 2 3 4 5
do
echo "This is item$item"
done
执行:

传递参数
脚本内获取参数的格式为:$n。n代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推.
还可以对参数进行处理:
参数处理 | 说明 |
---|---|
$# | 传递到脚本的参数个数 |
$* | 以一个单字符串显示所有向脚本传递的参数。 如" |
$$ | 脚本运行的当前进程ID号 |
$! | 后台运行的最后一个进程的ID号 |
$@ | 与 |
$- | 显示Shell使用的当前选项,与set命令功能相同。 |
$? | 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。 |
示例:
echo "Shell 传递参数实例!";
echo "执行的文件名:$0";
echo "参数数量:$#";
echo "第一个参数为:$1";
echo "以一个单字符串显示所有向脚本传递的参数:$*";
无参数:

带参数:

函数的使用
格式:
[ function ] funname [()]
{
action;
[return int;]
}
- 可以带function fun() 定义,也可以直接fun() 定义,不带任何参数。
- 参数返回,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,作为返回值。 return后跟数值n(0-255
- 函数返回值在调用该函数后通过 $? 来获得
示例:
fun(){
echo "Type in two numbers to add"
echo "first: "
read num1
echo "second: "
read num2
echo "The sum of $num1 and $num2 is $(($num1+$num2))"
return $(($num1+$num2))
}
fun
echo "fun excute end, the sum is $? "


网友评论