方式二:
以脚本名作为参数
$bashex1
$bashex1/usr
方式三:
将shell脚本的权限设置为可执行,然后在提示符下直接执行它
步骤1:
$chmoda+xex1
步骤2:
$mvex1/usr/bin
步骤3:
$ex1
$ex1/usr
5.在文本编辑器中录入下面shell程序,保存为ex2,然后执行之。
#!
/bin/bash
#Ifnoarguments,thenlistingthecurrentdirectory.
#Otherwise,listingeachsubdirectory.
iftest$#=0
thenls.
else
fori
do
ls-l$i|grep'^d'
done
fi
〔二〕shell变量〔2学时〕
1.用户定义的变量。
单步执行下述命令,练习变量赋值,理解反应信息。
$dir=/home/mengqc/ex1
$echo$dir
$echodir
$today=Sunday
$echo$today$Today
$str="HappyNewYear."
$echo"WishYou$str"
2.read命令。
〔1〕单步执行下述命令:
$readname-----输入read命令
zhangsan-----输入name的值
$echo"YourNameis$name."
YourNameiszhangsan-----显示输出的结果
$readabc-----read命令有三个参数
cuitedu-----输入三个字符串,中间以空格隔开
$echo"Email:
$a.$c.$b"
Email:
cuit.edu.-----显示输出结果
〔2〕将上述四个单步命令编辑为shell程序,取名ex3。
$viex3(输入四行命令,编后存盘)。
〔3〕运行shell程序ex3。
$bashex3
3.特殊变量
〔1〕建立一个内容如下的shell程序ex4:
echo“Programnameis$0〞
echo“Therearetotally$#parameterspassedtothisprogram〞
echo“Thelastis$?
〞
echo“Theparametersare$*〞
〔2〕按如下执行程序ex4,观察反应信息:
$bashex4thisisatestprogram
〔三〕控制结构〔3学时〕
1.if语句
〔1〕
理解并建立shell程序ex5:
Echo“Thecurrentdirectoryis`pwd`〞
iftest-f"$1" #如果位置参数$1对应的文件
thenecho"$1isanordinaryfile."#是普通文件“-F〞如此显示本行
elseecho"$1isnotan ordinaryfile."#否如此显示本行
fi
执行ex5,并理解反应信息:
$bashex5ex4
〔2〕
理解并建立shell程序ex6:
iftest-f"$1"
thencat$1
elseiftest-d"$1"
then(cd$1;cat*)
elseecho"$1isneitherafilenoradirectory."
fi
fi
执行ex6,并理解反应信息。
2.while语句
〔1〕
理解并建立shell程序ex7:
while[$1]
do
if[-f$1]
thenecho"display:
$1"
cat$1
elseecho"$1isnotafilename."
fi
shift#后续位置参数左移
done
执行ex7,并理解反应信息。
〔2〕编写求前五个偶数之和的shell程序ex8:
loopcount=0
result=0
while[$loopcount–lt5]
do
loopcount=‘expr$loopcount+1’
increment=‘expr$loopcount\*2’
result=‘$result+$increment’
done
echo"resultis$result“
3.for语句
〔1〕
理解并建立shell程序ex9:
fordayinMondayWednesdayFridaySunday
do
echo$day
done
执行ex9,并理解反应信息。
〔2〕
理解并建立shell程序ex10:
mkdirbackup
forfilenamein‘ls’
do
cp$filenamebackup/$filename
if($?
-ne0)then
echo“copyfor$filenamefailed〞
fi
done
执行ex10,并理解反应信息。
4.Select语句
理解并建立shell程序ex11:
selectiteminContinueFinsh
do
if[$item=“Finsh〞];then
break
fi
done
执行ex11,并理解反应信息。
〔四〕函数〔1学时〕
1.理解并建立shell程序ex12:
displaymonth(){
case$1in
01|1)echo“MonthisJanuary〞;;
02|2)echo“MonthisFebruary〞;;
03|3)echo“MonthisMarch〞;;
04|4)echo“MonthisApril〞;;
05|5)echo“MonthisMay〞;;
06|6)echo“MonthisJune〞;;
07|7)echo“MonthisJuly〞;;
08|8)echo“MonthisAugust〞;;
09|9)echo“MonthisSeptember〞;;
10)echo“MonthisOctober〞;;
11)echo“MonthisNovember〞;;
12)echo“MonthisDecember〞;;
*)echo〞Invalidparameter〞
esac
}
displaymonth$1
执行ex12,并理解反应信息。
$bashex123
$bashex1210
实验四系统管理与配置〔6学时〕
一、实验名称
系统管理与配置。
二、实验目的
要求熟练掌握linux系统的用户和工作组管理;掌握文件系统的管理和维护;了解linux系统备份的相关知识。
要求熟练掌握Linux系统网卡、调整解调器等网络设备的配置;掌握根本网络命令的使用;掌握网络文件系统NFS的配置;了解电子系统的相关配置等内容。
三、实验环境
四、实验内容
〔一〕用户和用户组的管理〔2学时〕
命令:
useradd、usermod、userdel、groupadd、groupdel和groupmod
2.在系统中建立testuser1、testuser2用户,均属于testgroup用户组,同时将testuser2归属于root组。
3.根据所建立的用户,结合前面的ls、grep、cut等命令,对testuser1、testuser2用户的信息,以与/etc/passwd、/etc/shadow、/etc/group文件进展管理。
〔二〕文件系统的挂载和卸载〔0.5学时〕
1.熟练mount、umount、smbmount、smbumount命令的使用方法。
2.使用mount、umount对磁盘分区进展挂载和卸载操作,以与格式化操作。
3.使用smbmount、smbumount命令进展对windows共享的文件进展读写操作,并注意权限问题。
〔三〕系统备份命令操作〔0.5学时〕
1.熟练tar命令的使用方法
2.使用tar命令将文件系统中的某些重要文件归档到/root目录下,并回复归档文件到指定的目录,如/tmp下。
〔四〕网络接口卡配置〔1学时〕
1.熟练ifconfig、setup、图形化的网络接口卡配置,如IP、子网掩码、网关、dns等
2.熟悉文件/etc/sysconfig/network文件,以与/etc/sysconfig/network-scripts目录下的接口卡配置文件。
〔五〕网络命令操作〔0.5学时〕
1.mail、ssh、sftp、tftp、ftp等命令
〔六〕NFS的配置〔1.5学时〕
2.实现NFS共享。
五、实验步骤
〔一〕用户和用户组的管理操作提示
1.首先使用man命令查看这几个相关管理命令的使用方法与命令选项的功能作用。
2.使用cat、more命令显示/etc/passwd、/etc/group、/etc/shadow文件内容,熟悉内容的格式,注意uid、gid信息。
3.使用usergroup创建组testuser,然后再使用useradd添加用户。
同时可以使用usermod修改用户信息,最后注意使用passwd命令修改用户密码。
4.在shell提示符下,使用su命令切换用户,测试用户在访问目录或文件的权限。
〔二〕文件系统的挂载和卸载
使用mount命令的时候,注意设备符号,如/dev/sdb1;使用umount命令的时候,当前目录不在该卸载的分区上;使用smbmount的使用注意使用-o选项,以与username=用户,用户为windows系统用户。
〔三〕系统备份命令操作〔0.5学时〕
使用命令应注意创建归档文件必须使用-c选项,解开归档文件应使用-x选项,当要压缩或解开压缩归档文件的时候,应注意j和z选项等;如果要将归档文件解开到制定目录,记得使用“-C路径〞。
〔四〕网络接口卡配置〔1学时〕
可以使用ifconfig在同一块网卡上添加多个地址:
当手工修改了网络接口卡的配置的使用,需要使用/etc/init.d/networkrestart来重新启动网络配置,或使用其他相关命令。
在实验室做实验的时候,应注意MAC地址的修改〔因为大家的虚拟机的linux系统属于统一拷贝,所以MAC一样,容易发生冲突,所以,进入系统前,首先修改MAC地址〕
〔五〕网络命令操作〔0.5学时〕
直接使用man命令来查看帮助信息,就可以理解操作方法。
〔六〕NFS的配置〔1.5学时〕
1.使用NFS服务,至少需要启动如下3个系统守护进程
〔1〕rpc.nfsd
该守护进程属于NFS服务的根本守护进程,主要完成客户端是否能够接入NFS服务器的管理。
它是RPC安装守护进程,主要功能完成NFS文件系统的管理。
该守护进程能够对接入NFS服务器的客户进展授权验证,通过读取/etc/exports文件的预先配置来比照客户是否有权限访问共享资源。
〔3〕portmap
该守护进程的主要功能是完成进展端口映射的管理,应用于RPC服务
2.要查看NFS是否运行中,可以通过命令rpcinfo-p得到,如果所显示的结果中没有nfs和mountd项出现,表示还未启动,此时可以手动启动:
停止服务
4./etc/exports配置举例
/var/export/softjohn.linuxstudy.(rw,sync)*.edu.(ro)\
192.168.1.6(rw,async,no_root_squash)
/var/export/movie192.168.2.0/24(ro,anonuid=566,no_subtree_chech)\
192.168.3.0/24(rw,sync,anonuid=566)
/var/export/upload192.168.8.*(rw,insecure,sync,no_wdelay,no_subtree_check)
(1)直接使用exportfs命令,不加任何的选项和参数,即可得到输出状态
(2)使用showmount命令
六、实验结论
在配置过程中,将所遇到的问题与解决方法进展总结。