一、实验要求
1.学会使用第三方虚拟平台搭建并配置Linux Ubuntu虚拟环境,并学会使用VSCode RemoteSSH插件连接虚拟机以提高生产力
2.学会使用一些基础的Shell命令,感受Shell的魅力,学会用Shell来提升自己日常学习与工作的生产力
实验要求 | 完成情况 |
Linux基础命令练习 | 已完成 |
Linux命令综合练习 | 已完成 |
二、实验过程
Linux基础命令练习
1.使用pwd命令查看当前所在目录
2.使用ls命令查看当前目录下的所有文件,使用-l选项以查看文件信息
3.使用man命令查看函数、指令等的帮助文档
查看less命令的具体信息并将其保存到less.txt文件中
4.使用mkdir命令创建文件夹D1
5.使用cp命令拷贝文件
将/etc/profile拷贝到D1目录下,并命名为profile.bak
6.用less命令逐页查看profile.bak文件的内容
7.使用find命令结合其选项查找通配/指定文件
查找所有后缀为.cfg的文件并将这些名目存入到/root/cfginfo.txt文件中;
用ls命令查看是否存在有cfginfo.txt文件;
使用less命令查看cfginfo.txt文件的内容
8.使用vim编辑cfginfo.txt文件
进入vim环境后,键入i开启插入模式,在第一行插入文本"This is CFG file information";
按Esc退出插入模式,按Shift+:进入命令行模式,键入wq以保存文本修改并退出vim
9.使用cat命令查看修改后的cfginfo.txt文件
Linux综合练习
1.显示当前目录下文件信息脚本
关键代码:
ls -l $pwd
变量pwd为当前所在目录路径
2.计算两数之和脚本
使用read命令读取用户输入的两个待求和数num1、num2
关键代码:
result=$(echo "$num1 + $num2" | bc)
使用bc命令进行计算,并使用管道将加法运算结果输出到变量result中
3.反转数字脚本
read命令读入数字number
if …elif……else语句判断用户键入数字的合法性
用户无输入:
if [ -z "$number" ]
输入的数字只有一位:
elif [ $number -lt 10 ]
输入合法:
关键代码及思想:
对number用除余法取它的各位数,将这些数以个位开头逐个追加到已初始化的空字符串reverserd_num中,最后除余结束,原始数字的各位数也被重新以个位开头十位次之百位再次之以此类推的形式存在reverserd_num中
reversed_number=""
while [ $number -gt 0 ]
do
digit=$((number % 10))
# 去除前导零
if [ $digit -ne 0 ]
then
reversed_number="$reversed_number$digit"
fi
number=$((number / 10))
done
4.PATH中的目录下可执行文件计数脚本
首先使用如下语句,将PATH中的目录逐个存入数组directories中以便遍历
IFS=':' read -ra directories <<< "$PATH"
关键代码及思想:
遍历刚才从PATH中取出的目录,在这些目录中用find命令结合-perm选项查找具有可执行权限的文件,筛选选项为-perm /u+x,同时使用wc -l对符合筛选条件的文件计数并通过管道返回给变量executable_files_count
for directory in "${directories[@]}"; do
executable_files_count=$(find $directory -perm /u+x | wc -l)
对于PATH中总的可执行文件的计数则可累加其中各目录下可执行文件的数实现
关键代码:
total=$((total+executable_files_count))
三、实验结果
Linux基础练习
1.使用pwd命令查看当前所在目录
执行结果如图:
2.使用ls命令查看当前目录下的所有文件,使用-l选项以查看文件信息
执行结果如图:
3.使用man命令查看函数、指令等的帮助文档
运行结果如图:
将less帮助文档保存到less.txt文件中
执行结果如图:
4.使用mkdir命令创建文件夹D1
执行结果如图:
5.使用cp命令拷贝文件
将/etc/profile拷贝到D1目录下,并命名为profile.bak
执行结果如图:
6.用less命令逐页查看profile.bak文件的内容
执行结果如图:
7.使用find命令结合其选项查找通配/指定文件
查找所有后缀为.cfg的文件并将这些名目存入到/root/cfginfo.txt文件中
执行结果如图:
用ls命令查看是否存在有cfginfo.txt文件
执行结果如图:
使用less命令查看cfginfo.txt文件的内容
执行结果如图:
8.使用vim编辑cfginfo.txt文件
进入vim环境后,键入i开启插入模式,在第一行插入文本"This is CFG file information"
按Esc退出插入模式,按Shift+:进入命令行模式,键入wq以保存文本修改并退出vim
执行结果如图:
9.使用cat命令查看修改后的cfginfo.txt文件
执行结果如图:
Linux综合练习
1.显示当前目录下文件信息脚本
执行结果如图:
2.计算两数之和脚本
执行结果如图:
3.反转数字脚本
执行结果如图:
4.PATH中的目录下可执行文件计数脚本
执行结果如图:
四、实验总结
1.在运行脚本文件时发现Shell无法自动补全文件路径或命令,此时应该检查要运行的脚本文件是否具有可执行权限,且确保脚本文件在当前目录下;
2.使用for循环遍历PATH中目录时发现PATH中各目录用‘:’分割,但无法逐一获取,改用IFS将PATH中目录以‘:’为分隔符逐一加入数组中再进行遍历操作
附脚本源码
1.显示当前目录下文件信息脚本
#!/bin/bash
echo "Files informations:"
ls -l $pwd
2.计算两数之和脚本
#!/bin/bash
# 提示用户输入第一个数字
echo "Enter the first number: "
read num1
# 提示用户输入第二个数字
echo "Enter the second number:"
read num2
# 使用bc命令进行计算,并使用管道将结果输出到变量result中
result=$(echo "$num1 + $num2" | bc)
# 打印结果
echo "The answer is: $result"
3.反转数字脚本
#!/bin/bash
echo "Enter a multi-digit number: "
read number
# 用户无输入时
if [ -z "$number" ]
then
echo "ERROR:No argument passed!"
# 用户输入的数只有一位时
elif [ $number -lt 10 ]
then
echo "ERROR:Pass a multi-digit number!"
# 输入合法时
else
reversed_number=""
while [ $number -gt 0 ]
do
digit=$((number % 10))
# 去除前导零
if [ $digit -ne 0 ]
then
reversed_number="$reversed_number$digit"
fi
number=$((number / 10))
done
echo "Reversed number is: $reversed_number"
fi
4.PATH中的目录下可执行文件计数脚本
#!/bin/bash
# 将PATH中的目录按分隔符':'拆分并逐一存进数组中
IFS=':' read -ra directories <<< "$PATH"
# 总可执行文件数初始化
total=0
for directory in "${directories[@]}"; do
if [ -d $directory ]; then
# 当前目录下可执行文件计数
executable_files_count=$(find $directory -perm /u+x | wc -l)
# 将当前目录下可执行文件数累加至总可执行文件数中
total=$((total+executable_files_count))
echo "Current Directory: $directory"
echo "Executable Files: $executable_files_count 个"
fi
done
echo "Total Executable Files: $total 个"