美文网首页
实验六【2021OS】

实验六【2021OS】

作者: 许安_xuan | 来源:发表于2021-10-20 14:26 被阅读0次

实验六: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进入命令模式

image-20211018230308957

使用i进入输入模式

image-20211018230355273

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

image-20211018230514584

退出保存

image-20211018230547358

查看内容

image-20211018230637678

Shell

Shell 既是一个连接用户和 Linux 内核的程序,又是一门管理 Linux 系统的脚本语言。

变量

定义

Shell 支持以下三种定义变量的方式:

variable=value
variable='value'
variable="value"

使用

在变量名前面加美元符号$即可

echo $author
echo ${author}
image-20211018231449221

删除

unset variable_name
image-20211018231730866

运算符

双小括号 (( )) 是 Bash Shell 中专门用来进行整数运算的命令,它的效率很高,写法灵活。

注意:(( )) 只能进行整数运算,不能对小数(浮点数)或者字符串进行运算。

((表达式))
image-20211018232150345

Shell 算术运算符一览表

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

使用变量进行运算

let i=1
let i+=9
echo $i
image-20211020124303569.png

分支

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

创建并编辑文件:

image-20211020130359533.png image-20211020130414212.png

执行:


image-20211020130824765.png

循环

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

执行:

image-20211020131319245.png

传递参数

脚本内获取参数的格式为:$n。n代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推.

还可以对参数进行处理:

参数处理 说明
$# 传递到脚本的参数个数
$* 以一个单字符串显示所有向脚本传递的参数。 如"*"用「"」括起来的情况、以"1 2 …n"的形式输出所有参数。
$$ 脚本运行的当前进程ID号
$! 后台运行的最后一个进程的ID号
$@ *相同,但是使用时加引号,并在引号中返回每个参数。 如"@"用「"」括起来的情况、以"1" "2" … "$n" 的形式输出所有参数。
$- 显示Shell使用的当前选项,与set命令功能相同。
$? 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。

示例:

echo "Shell 传递参数实例!";
echo "执行的文件名:$0";
echo "参数数量:$#";
echo "第一个参数为:$1";
echo "以一个单字符串显示所有向脚本传递的参数:$*";

无参数:

image-20211020133106248.png

带参数:

image-20211020133119366.png

函数的使用

格式:

[ function ] funname [()]
{
    action;
    [return int;]
}
  1. 可以带function fun() 定义,也可以直接fun() 定义,不带任何参数。
  2. 参数返回,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,作为返回值。 return后跟数值n(0-255
  3. 函数返回值在调用该函数后通过 $? 来获得

示例:

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 $? "
image-20211020141352872.png
image-20211020133119366.png

相关文章

  • 实验六【2021OS】

    实验六:Linux Shell及vi/vim使用 vi/vim简单使用,在命令模式下的保存,删除,查找命令。She...

  • 实验二【2021OS】

    实验二:Linux文件管理及目录与权限控制 创建/复制/移动/删除/查看文件和目录命令。文件压缩,解压。软连接和硬...

  • 实验一【2021OS】

    实验一:Linux 软件部署及应用 二进制软件包安装以及源码编译安装。软件卸载,更新。 二进制软件包安装 git安...

  • 实验七【2021OS】

    实验七:Linux网络配置路由器及防火墙设置 配置网络和防火墙。 网络配置 ifconfig命令可以查看与配置网络...

  • 实验三【2021OS】

    实验三:Linux用户与用户组管理 单个、批量添加(删除用户)。添加、删除用户组。 添加用户 单个添加 选项:-c...

  • 实验五【2021OS】

    实验五:Linux日常管理与备份 查看系统相关信息,网络,内存,网卡,cpu,ip,时间管理 系统相关信息 查看L...

  • 实验四【2021OS】

    实验四:LINUX进程与磁盘管理 创建进程,查看进程,杀死进程。查看磁盘使用,挂载。 创建进程 fork() 首先...

  • 高级语言程序设计实验(双数号题)

    实验二 实验四 实验六 实验八 实验十

  • 实验六

    教学管理系统 Version0.2 修改历史 日期版本描述 6.8.20180.1创建 状态机图文档 一、 实验链...

  • 实验六

    代码如下 值得注意的是,一开始我觉得为什么需要两个变量来表示IP的变化呢?如果只用bx的话,虽然一开始可以通过in...

网友评论

      本文标题:实验六【2021OS】

      本文链接:https://www.haomeiwen.com/subject/jcutaltx.html