版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
操作系统实验教程
(Linux应用实例教程)S1、Linux安装一、物理安装二、虚拟安装(如果已经安装Linux,则忽略本节内容)一、物理安装1、下载Ubuntu12.04及以上版本2、使用虚拟光驱软件或具有解压功能的资源管理器加载Ubuntu安装包3、运行安装程序4、根据提示操作,设置口令5、重启系统,进入图形用户桌面二、虚拟安装1、下载Ubuntu12.04及以上版本2、下载安装虚拟机软件VM10及以上3、运行VM,创建虚拟机,选择安装Ubuntu4、根据提示操作,设置口令5、重启Ubuntu虚拟机,进入图形用户桌面S2、Linux初步应用一、打开终端二、关闭命令行窗口三、清除终端四、屏幕截图五、关机一、打开终端<Ctrl>+<Alt>+tsfs@ubuntu:~$~表示用户主目录/home/sfs一、多线程的引入(1)二、关闭命令行窗口exit或者点击窗口X或者<Ctrl>+D三、清除终端clear或者<Ctrl>+L四、屏幕截图1、<PrintScreen>2、gnome-screenshot(1)截取窗口及其背景gnome-screenshot-d10(2)截取活动窗口gnome-screenshot-d10-w五、关机1、点击菜单“关机”2、或者输入关机命令sudoshutdown-hnowS3、文件管理一、列目录(ls)二、显示当前目录(pwd)三、切换当前工作目录(cd)一、列目录(ls)1、查看当前目录:ls2、查看某个目录,如/etc3、查看文件名包含某些字符的文件列表(1)查看以p或c结尾的文件ls*[pc](2)查看以px或ct结尾的文件?一、列目录(ls)(3)查看目录/lib下文件名以5-7结尾的文件ls/lib/*[5-7](4)查看文件名以px或ct开头的文件?(5)查看文件名包含px或ct的文件?一、列目录(ls)4、列目录属性(1)列当前目录属性:ls-l(2)列某个目录属性:?(3)查看目录属性如查看/etc目录的属性:ls-ld/etc/一、列目录(ls)5、查看目录树ls–R6、列隐藏文件ls-aF二、显示当前目录(pwd)pwd三、切换当前工作目录(cd)1、仅输入cd起什么作用2、进入/etc目录:cd/etc3、返回进入一个目录之前所在的目录:cd-4、返回上级目录:cd..5、返回上两级目录:cd../..操作系统实验教程
(Linux应用实例教程)申丰山S3、文件管理四、创建目录(mkdir)五、复制目录或文件(cp)六、移动或重命名目录或文件(mv)四、创建目录(mkdir)1、创建目录prg、
docmkdirprgdoc
2、创建prg下的目录cmkdirprg/c3、创建目录路径exe/s1mkdir-pexe/s1四、创建目录(mkdir)4、在目录prg下建立子目录java,并且只有文件主有读、写和执行权限,其他人无权访问mkdir-m700prg/java
5、在当前目录下建立os和os下的Linux目录,权限设置为文件主可读、写、执行,同组用户可读和执行,其他用户无权访问mkdir-p-m750os/Linux五、复制目录或文件(cp)1、将文件s1.txt复制到目录prg/c下cps1.txtprg/c
2、将doc/s1.txt、doc/c/res1.txt和prg/rs4.txt三个文件复制到目录c111下cpdoc/s1.txtdoc/c/res1.txtprg/rs4.txtc111五、复制目录或文件(cp)3、将文件s1.txt复制到目录prg/c下,并提示是否覆盖信息cp-is1.txtprg/c
4、将文件s1.txt复制到目录prg/c下时,有两个同名文件,cp命令自动重命名cp-bs1.txtprg/c五、复制目录或文件(cp)5、将文件s1.txt复制到目录prg/c下,并将其重命名为res1.txtcps1.txtprg/c/res1.txt
6、将prg目录下的子目录c及其下的文件复制到目录doc下cp-rprg/c/doc六、移动或重命名目录或文件(mv)1、将文件s3.txt移动到prg/c目录下mvs3.txtprg/c
2、将文件os/Linux/s4.txt和prg/c/s1.txt、prg/c/s3.txt移动到doc目录下mvos/Linux/s4.txtprg/c/s1.txtprg/c/s3.txtdoc六、移动或重命名目录或文件(mv)3、将文件doc/s4.txt移动到prg目录下并且重命名为rs4.txtmvdoc/s4.txtprg/rs4.txt
4、将doc目录下的文件复制到os/Linux目录下cpdoc/*.*os/Linux六、移动或重命名目录或文件(mv)5、将os/Linux目录移动到prg目录下mvos/Linuxprg
6、将prg/Linux目录重命名为prg/UNIXmvprg/Linuxprg/UNIX六、移动或重命名目录或文件(mv)7、复制prg/UNIX目录下的文件s1.txt、s3.txt到目录prg下,并且显示被复制文件名cp-vprg/UNIX/s[1,3].txtprg
8、将prg目录下的文件s1.txt、s3.txt移动到prg/UNIX目录下,若有同名文件,则创建备份mv-bvprg/s[1,3].txtprg/UNIX操作系统实验教程
(Linux应用实例教程)申丰山S3、文件管理七、删除目录或文件(rm)八、创建空白文件(touch)九、查找文件(find,whereis,which)七、删除目录或文件(rm)1、删除文件prg/java/s1.javarmprg/java/s1.java
2、删除目录prg及其下的子目录和文件rm-rprg八、创建空白文件(touch)1、创建空白文件my.txttouchmy.txt九、查找文件(find,whereis,which)1、列出当前目录下的所有文件和文件夹find.
2、在/home目录下查找以.txt结尾的文件名find/home-name"*.txt“3、在当前目录及其子目录下查找以.txt结尾的文件名find.-name"*.txt"九、查找文件(find,whereis,which)4、在prg目录及其子目录下查找以.txt结尾的文件名findprg-name"*.txt"
5、在c目录和prg/UNIX目录及其子目录下查找以.txt或.c结尾的文件名findcprg/UNIX-name"*.txt"-o-name"*.c"九、查找文件(find,whereis,which)6、在prg目录及其子目录下查找以.txt或.c结尾的文件名findprg-regex".*\(\.txt\|\.c\)"
7、找出prg目录及其子目录下不是以.txt结尾的文件findprg!-name"*.txt"九、查找文件(find,whereis,which)8、在/目录下查找块设备文件sudofind/-typeb
9、搜索当前目录下以“x”开头且小于13字节的文件find.-name"x*"-a-size-13九、查找文件(find,whereis,which)10、查找find程序、mv程序、cp程序和ls程序所在位置whereisfindmvcpls
11、用find查找根目录“/”下的find程序、mv程序、cp程序和ls程序sudofind/-name"find"-o-name"mv"-o-name"cp"-o-name"ls"九、查找文件(find,whereis,which)12、显示find命令、mv命令、cp命令和ls命令的位置whichfindmvcpls操作系统实验教程
(Linux应用实例教程)申丰山S3、文件管理十、文件内容查看十一、文件内容查找十二、文件编辑处理十、文件内容查看1、查看doc/c目录下的文件res1.txt和s1.txt的内容catdoc/c/res1.txtdoc/c/s1.txt
catdoc/c/*.txt2、显示doc/c目录下以“.txt”结尾的文件内容,并显示行号catdoc/c/*.txt-n十、文件内容查看3、查看doc/c目录下的文件res1.txt和s1.txt的内容,显示行号catdoc/c/res1.txtdoc/c/s1.txt–n4、逐屏查看doc/c/s1.txt文件内容moredoc/c/s1.txt5、逐屏查看doc/c/s1.txt文件内容lessdoc/c/s1.txt十一、文件内容查找1、从文件c/pc.c和prg/c/s1.c中找出包含字符串“main”的行grepmainc/pc.cprg/c/s1.c2、从目录prg和c中找出包含字符串“intt”所在文件及字符串所在行grep-r'intt'prgc十一、文件内容查找3、从文件c1.c和c/fifo_write.c中查找包含字符串scanf或printf的行grep'scanf\|printf'c1.cc/fifo_write.c十二、文件编辑处理1、对文件执行域排序sortste1.txt2、按指定域排序sort-k5ste1.txt3、将域看做数字排序sort-k5nste1.txt十二、文件编辑处理4、指定域分隔符,按某个字段排序sort-t:-k3ste2.txt
5、依据“科目2”列,将其视为数字排序sort-t:-k3nste2.txt6、对ste1.txt第一列逆序排序sort-rste1.txt十二、文件编辑处理7、对ste2.txt第3列(科目2)逆序排序sort-t:-k3rste2.txt
8、对ste2.txt第3列(科目2)按数字值逆序排序sort-t:-k3nrste2.txt9、删除重复行sort-t:-uste3.txt十二、文件编辑处理10、对文件ste3.txt按第一列排序,并删除重复行后的排序结果保存在文件so2.txt中sort-t:-u-oso2.txtste3.txt
11、使用输出重定向保存排序输出结果sort-t:-uste3.txt>so1.txt12、将三个文件m1.txt、m2.txt、m3.txt合并输出sort-mm1.txtm2.txtm3.txt
十二、文件编辑处理13、将有序文件m1.txt、m2.txt和无序文件m4.txt的合并输出进行排序sort-mm1.txtm2.txtm4.txt|sort
14、测试文件m4.txt是否有序sort-cm4.txt15、测试有序文件m1.txt、m2.txt和无序文件m4.txt的合并输出是否有序sort-mm1.txtm2.txtm4.txt|sort-c
十二、文件编辑处理16、连接两个文件中第一个域相同的记录joinj1.txtj2.txt
17、显示两个文件中有共同域的连接记录和文件1中无共同域的记录join-a1j1.txtj2.txt18、显示两个文件中有共同域的连接记录和文件2中无共同域的记录join-a2j1.txtj2.txt
操作系统实验教程
(Linux应用实例教程)申丰山S3、文件管理十二、文件编辑处理十二、文件编辑处理1、显示两个文件中有共同域的连接记录和文件1、文件2中无共同域的记录join-a1-a2j1.txtj2.txt
2、只显示文件1中无共同域的记录join-v1j1.txtj2.txt3、只显示文件2中无共同域的记录join-v2j1.txtj2.txt
十二、文件编辑处理4、只显示文件1和文件2中无共同域的记录join-v1-v2j1.txtj2.txt
5、输出文件1(j1.txt)的第1到第3个域、文件2(j2.txt)的第3个域join-o1.11.21.32.3j1.txtj2.txt6、依据两个文件的第2个域连接记录join-12-22j5.txtj6.txt
十二、文件编辑处理7、提取文件j5.txt第3个域(第3列)cut-d""-f3j5.txt
8、提取文件j5.txt第1和第3个域cut-d""-f1,3j5.txt9、提取文件j5.txt第2到第3个域cut-d""-f2-3j5.txt
十二、文件编辑处理10、提取文件j5.txt第2个域以外的域cut-d""-f2--complementj5.txt
11、提取文件j5.txt第10列字符cut-c10j5.txt12、提取文件j5.txt第9到第11列字符cut-c9-11j5.txt十二、文件编辑处理13、提取文件j5.txt前7列字符cut-c-7j5.txt
14、提取文件j5.txt第9列字符开始到结尾cut-c9-j5.txt15、将3个文件合并为3列,列间以“:”间隔paste-d:p1.txtp2.txtp3.txt十二、文件编辑处理16、p1.txt、p2.txt、p3.txt、p4.txt和p5.txt这5个16、文件合并为5行,每行的各个域对应来自其中一个文件的所有行,每行的各个域间以“:”间隔paste-d:-sp1.txtp2.txtp3.txtp4.txtp5.txt17、将ls命令输出分4列显示ls|paste-d""----十二、文件编辑处理18、将p1.txt文件分2列显示catp1.txt|paste-d:--操作系统实验教程
(Linux应用实例教程)申丰山S3、文件管理十二、文件编辑处理十三、文件共享十二、文件编辑处理1、将文件p5.txt分割为若干小文件,小文件自动命名为xaa、xab、xac、xad,每个小文件包含2行或小于2行内容split-l2p5.txt
2、以2行为单位分割文件p5.txt为p5s-aa、p5s-ab、p5s-ac、p5s-adsplit-l2p5.txtp5s-十二、文件编辑处理3、按行分割文件p5.txt,小文件名为x00、x01、x02、x03,即小文件名后缀为2位数字split-l2p5.txt-d-a2
4、以2行为单位分割文件p5.txt为p5s-00、p5s-01、p5s-02、p5s-03split-l2p5.txt-d-a2p5s-十二、文件编辑处理5、以13个字节为单位分割文件p5.txtsplit-b13p5.txt-d-a2p5-
6、以13个字节为单位分割文件p5.txt,但保持记录行的完整性split-C13p5.txt-d-a2p6-十二、文件编辑处理7、合并p5-00、p5-01、p5-02、p5-03为分割前的完整文件catp5-*>>p5m8、将文件j1.txt中的"0128"四个字符对应替换为"abcd"tr"0128""abcd"<j1.txt十二、文件编辑处理9、将文件中的小写字母变为大写字母tr'a-z''A-Z'<tms.txt10、将文件j1.txt中的字符“0”“2”都删除掉tr-d'02'<j1.txt十二、文件编辑处理11、将文件j1.txt中的换行符'\n'、空格符'\040'删除tr-d'\n\040'<j1.txt12、删除文件中多余的换行符和空白字符,仅保留其中的一个tr-s'\n\040'<ts.txt十二、文件编辑处理13、删除j1.txt文件中不是字母、数字、换行和空格的字符tr-d-c'a-zA-Z0-9\n\040'<j1.txt十三、文件共享1、建立指向文件c1.c的符号链接lk-c1cln-sc1.clk-c1c2、读取符号链接文件本身的内容readlink-flk-c1c3、建立文件c1.c的硬链接hdlk-c1clnc1.chdlk-c1c操作系统实验教程
(Linux应用实例教程)申丰山S3、文件管理十四、文件目录属性操作十四、文件目录属性操作1、删除属主对文件prg/c1的执行权限sudochmodu-xprg/c12、增加属主对文件prg/c1的执行权限sudochmodu+xprg/c13、删除属组对文件prg/c1的写入和执行权限sudochmodg-wxprg/c1十四、文件目录属性操作4、删除所有人(包括属主、属组和其他人)对文件prg/c1的读取权限sudochmoda-rprg/c15、对所有人(包括属主、属组和其他人)增加对文件prg/c1的读取权限,删除执行权限sudochmoda+r-xprg/c1十四、文件目录属性操作6、对属主和属组赋予读和执行文件prg/c1的权限,对其他人赋予执行权限sudochmodug=rx,o=xprg/c17、将其他人对文件prg/c1的操作权限设为与属主相同sudochmodo=uprg/c1十四、文件目录属性操作8、将属组和其他人对文件prg/c1的操作权限设为与属主相同sudochmodog=uprg/c19、赋予属主对文件prg/c1的读和执行权限,然后将属组和其他人对文件prg/c1的操作权限设为与属主相同chmodu-w+x,o=u,g=uprg/c1十四、文件目录属性操作10、对文件prg/c1,属主可读、写、执行,属组和其他人可执行sudochmod711prg/c111、增加sfsug1组对/home/sfswork目录的读、写、执行权限sudochmodg+rwx/home/sfswork十四、文件目录属性操作12、撤销其他用户对/home/sfswork目录的读、写、执行权限sudochmodo-rwx/home/sfswork13、将文件ns10.txt的属主变改为sfssudochownsfs/usr/us1/ns10.txt14、将文件prg/c1的属组更改为sfsug1组sudochown:sfsug1prg/c1十四、文件目录属性操作15、将文件prg/c/s1.c的属组更改为sfsug1sudochgrpsfsug1prg/c/s1.c16、将prg目录和其下的所有文件及子目录属组设置为sfsug1sudochgrp-Rsfsug1prg操作系统实验教程
(Linux应用实例教程)申丰山S3、文件管理十五、文件压缩与解压缩十六、文件打包、解包十五、文件压缩与解压缩1、将当前目录下的文件c1.c压缩为c1.c.gzgzipc1.c2、将压缩文件c1.c.gz解压缩gunzipc1.c.gz3、压缩prg/UNIX目录下的每个文件gzipprg/UNIX/*十五、文件压缩与解压缩4、解压缩prg/UNIX目录下的各个压缩文件gzip-dvprg/UNIX/*5、压缩prg目录下的文件及各级子目录下的文件gzip-rvprg6、解压缩prg目录下的压缩文件及各级子目录下的压缩文件,并显示解压缩进程gzip-drvprg十五、文件压缩与解压缩7、压缩文件c1.cbzip2c1.c8、解压缩文件c1.c.bz2bzip2-dvc1.c.bz29、将prg/UNIX目录下的各个文件分别进行压缩bzip2-vprg/UNIX/*十五、文件压缩与解压缩10、解压缩prg/UNIX目录下的每个压缩文件bzip2-dvprg/UNIX/*十六、文件打包、解包1、将prg目录及其子目录中的文件一同打包成文件prgc.tartar-cvfprg.tarprg2、将打包文件prg.tar解包到目录prgtar下tar-xvfprg.tar-Cprgtar十六、文件打包、解包3、将prg目录及其各级子目录下的文件一同打包成一个文件,然后调用gzip压缩该文件tar-czvfprg.tar.gzprg4、将打包压缩文件prg.tar.gz解包解压缩到ptgz目录下tar-xzvftargz/prg.tar.gz-Cptgz十六、文件打包、解包5、将prg目录及其子目录下的文件一同打包成一个文件,然后调用bzip2压缩该文件tarjcvfprg.tar.bz2prg6、将prg.tar.bz2解包解压到目录tarbz2中tarxjvfprg.tar.bz2-Ctarbz2操作系统实验教程
(Linux应用实例教程)申丰山S4、进程和作业管理S5、设备I/O管理S4、进程和作业管理1、查看进程信息psaux2、查看进程树pstree3、即时跟踪进程信息topS4、进程和作业管理4、运行程序c1,查看其标识符pidofc15、运行一个后台任务,查看后台任务jobsS4、进程和作业管理6、运行一个程序或命令,然后终止该程序或命令./c1psauxkill2995 #终止进程2995,2995为c1的进程ID或者kill-TERM2995或者kill-SIGTERM2995或者pkillc1S4、进程和作业管理7、使进程c1在后台运行,将进程c1调至前台运行./c1&fg18、暂停和恢复进程运行gedit&fg1^Zbg1S5、设备I/O管理1、将ls命令输出保存到文件lstxt中ls>lstxt2、将ls命令输出追加到文件lsprgc尾部lsprg/c>>lsprgcS5、设备I/O管理3、将键盘输入重定向到命令cat,然后将cat输出重定向到文件cat<<EOF>s1in>5>EOFS5、设备I/O管理4、将来自键盘的输入切换到文件./c1<s1in5、将ls列出的文件中包含字符串“wh”的文件筛选列出ls|grepwh6、将cats1in的输出作为程序c1的输入cats1in|./c1操作系统实验教程
(Linux应用实例教程)申丰山S6、用户和工作组管理S6、用户和工作组管理1、查看用户信息Id2、显示用户名称logname3、查看用户操作historyS6、用户和工作组管理4、创建用户组ug1sudogroupaddug15、将用户组名ug1更改为sfsug1sudogroupmod-nsfsug1ug16、创建用户us1,为登录名us1产生一个主目录/usr/us1sudouseradd-d/usr/us1-mus1S6、用户和工作组管理7、为用户us1设置口令sudopasswdus18、查看用户us1和sfs所属的组sudogroupsus1sfs9、将用户名由us1更改为nus1sudousermod-lnus1us1S6、用户和工作组管理10、将用户nus1添加到组sfsug1中sudousermod-Gsfsug1nus111、将当前用户切换到nus1,工作目录也切换到nus1的工作目录/usr/us1su-lnus112、使用w命令查看当前登录用户名wS6、用户和工作组管理13、使用who命令查看当前登录用户名who14、使用users命令查看当前登录用户名users15、使用whoami命令查看当前登录用户名whoamiS6、用户和工作组管理16、删除用户us3,其主目录和文件一并删除sudouserdel-rus317、在/home目录下创建工作目录sfswork,并将所有权交给用户组sfsug1cd/homesudomkdirsfsworksudochgrpsfsug1sfswork/S6、用户和工作组管理18、删除用户组sfsug1groupdelsfsug1操作系统实验教程
(Linux应用实例教程)申丰山S7、批处理操作接口1S7、批处理操作接口11、判断cd为内部命令还是外部命令typecd2、为命令"ls/etc"取个别名“sls”aliassls="ls/etc“3、取消命令别名“sls”unaliasslsS7、批处理操作接口4、顺序执行命令“ls*.c”、“./c1”和“catc1.c”ls*.c;./c1;catc1.c5、执行命令“ls*.c”,若成功,则继续执行命令“./c1”,若又成功,则继续执行命令“catc1.c”ls*.c&&./c1&&catc1.cS7、批处理操作接口6、执行命令“ls*.c”,若不成功,则继续执行命令“./c1”,若又不成功,则继续执行命令“catc1.c”ls*.c||./c1||catc1.c7、为变量v1赋值123v1=123S7、批处理操作接口8、为变量v2赋值"abc345"v2="abc345"
9、将变量v2的值赋给v3v3=$v210、显示变量v1的值echo$v1echo${v1}S7、批处理操作接口11、Shell脚本程序命令行参数访问建立文件spa1.sh,内容如下:#!/bin/bashecho"这个脚本的名字是:$0"echo"命令行上总共有$#个参数"echo"所有参数列表是:$@"echo"第一个参数的名字是$1"echo"第一个参数的名字是$2"echo"第一个参数的名字是$3"S7、批处理操作接口执行脚本文件spa1.sh:方法1、./spa1.shp1p2p3(spa1.sh应有执行权限)方法2、../spa1.shp1p2p3方法3、source./spa1.shp1p2p3方法4、bashspa1.shp1p2p3S7、批处理操作接口12、查看命令返回值c1echo$?
13、数组整体全部赋值name=('s1''s2'123)14、数组元素单个赋值a[0]=1a[1]=s1S7、批处理操作接口15、数组个别元素赋值sc=([3]=30[5]=50[7]=70)
16、显示数组name全部元素值echo${name[@]}17、显示下标为3的数组name元素值echo${name[3]}S7、批处理操作接口18、显示数组sc全部元素值echo${sc[*]}
操作系统实验教程
(Linux应用实例教程)申丰山S7、批处理操作接口2S7、批处理操作接口21、获取数组name的长度echo${#name[@]}2、获取数组sc的长度echo${#sc[*]}3、获取数组元素sc[3]长度echo${#sc[3]}S7、批处理操作接口24、获取数组name自下标1起的连续三个元素值echo${name[@]:1:3}5、显示name数组元素name[3]自下标1起的连续4个字符echo${name[3]:1:4}6、连接数组name和sc,将结果赋给abab=(${name[@]}${sc[@]})S7、批处理操作接口27、将数组ab2中的元素值abc替换为os,并将替换后的数组赋给ab2ab2=(${ab2[@]/abc/os})8、建立文件Namespace1.sh,内容为:#!/bin/bashv1=100echov1in$0:$v1S7、批处理操作接口2运行:../Namespace1.shv1inbash:100S7、批处理操作接口29、建立文件Namespace3.sh,其内容为:#!/bin/bashfunctionch_var(){ echo在函数中修改前v1的值:$v1 v1=200}v1=100echo调用函数ch_var前v1的值:$v1ch_varecho调用函数ch_var后v1的值:$v1S7、批处理操作接口2运行:../Namespace3.sh调用函数ch_var前v1的值:100在函数中修改前v1的值:100调用函数ch_var后v1的值:200S7、批处理操作接口210、建立文件Namespace4.sh,其内容为:#!/bin/bashfunctionch_var(){ v2=200 #v2默认是global类型}echo尚未调用函数时v2的值:$v2ch_varecho调用函数ch_var后v2的值:$v2S7、批处理操作接口2运行:unsetv2../Namespace4.sh尚未调用函数时v2的值:调用函数ch_var后v2的值:200S7、批处理操作接口211、建立文件Namespace5.sh:#!/bin/bashfunctionch_var(){ localv3=200 #v3定义为local类型
echo在函数中执行时v3的值:$v3}echo尚未调用函数时v3的值:$v3ch_varecho调用函数ch_var后v3的值:$v3S7、批处理操作接口2运行:../Namespace5.sh尚未调用函数时v3的值:在函数中执行时v3的值:200调用函数ch_var后v3的值:S7、批处理操作接口212、建立文件Namespace6.sh:#!/bin/bashsfunc(){echo"参数:$@"}sfunc13abecho输出脚本命令行参数:$@S7、批处理操作接口2运行:../Namespace6.shp123p34a输出函数调用参数:13ab输出脚本命令行参数:p123p34aS7、批处理操作接口213、建立文件Namespace7.sh:#!/bin/bashsfunc(){echo在函数中输出全局变量v4的值:$v4 #行1localv4=200abc #行2echo在函数中输出局部变量v4的值:$v4 #行3}v4=100 #行4sfuncecho在函数外输出全局变量v4的值:$v4 #行5S7、批处理操作接口2运行:../Namespace7.sh在函数中输出全局变量v4的值:100在函数中输出局部变量v4的值:200abc在函数外输出全局变量v4的值:100操作系统实验教程
(Linux应用实例教程)申丰山S7、批处理操作接口3S7、批处理操作接口31、输出字符串“$Dollar”echo\$Dollar2、输出字符串“China'spanda”echoChina\'spanda3、比较对错sv=abc123sv='abc123‘echo'$sv'S7、批处理操作接口24、echo"$sv++++加上另一些字符!“abc123++++加上另一些字符!5、"ls"等同于ls命令6、'ls'等同于ls命令S7、批处理操作接口27、ab='ls'abab不等同于ls命令8、echo"Thisis${ab}"Thisisls9、echo"Thisis$ab"ThisislsS7、批处理操作接口210、echo"Thisis$(ab)"Theprogram'ab'iscurrentlynotinstalled.11、echo"astring..."$($ab)astring...a1.txta1.txt~abc.txtbaichuanccc1c1.cc1r12、echo"astring...$($ab)"astring...a1.txta1.txt~abc.txtS7、批处理操作接口213、echo"Thisis$(ls)"Thisisa1.txta1.txt~abc.txt14、echo"astring..."$(ls)astring...a1.txta1.txt~abc.txtbaichuanccc1c1.cc1rS7、批处理操作接口215、echo"astring...$(./c1)"5astring...1516、echo'It'\''sadog'It'sadog17、echo"It'sadog"It'sadogS7、批处理操作接口218、将命令date执行结果赋予变量date1date1=`date`19、将命令date执行结果赋予变量date2date2=$(date)20、echo"这是命令替换形式1...$date1"这是命令替换形式1...FriJan1219:48:52PST2018S7、批处理操作接口221、echo$date2FriJan1219:49:02PST201822、ls1=`ls-l`echo$ls1total1836-rw-rw-r--1sfssfs21Jan420:02a1.txt-rw-rw-r--1sfssfs12Jan419:59a1.txt~-rw-rw-r--1sfssfs18Sep2902:41abc.txtdrwxrwxr-x2sfsS7、批处理操作接口223、echo"$ls1"total1836-rw-rw-r--1sfssfs21Jan420:02a1.txt-rw-rw-r--1sfssfs12Jan419:59a1.txt~-rw-rw-r--1sfssfs18Sep2902:41abc.txtdrwxrwxr-x2sfssfs4096Oct106:22baichuancdrwxrwxr-x2sfssfs4096Dec505:47cS7、批处理操作接口224、k=$((3*(i+4)))echo$k1825、ls-l`findprg/*.c`-rw-rw-r--1nus1sfsug1137Jan205:29prg/c1.c操作系统实验教程
(Linux应用实例教程)申丰山S7、批处理操作接口4S7、批处理操作接口41、测试文件c/thread.c是否存在test-ec/thread.cecho$?或者[-ec/thread.c]echo$?S7、批处理操作接口42、编写Shell脚本文件testrwx.sh,对文件拥有的属性进行判断#!/bin/bashread-p"你想测试哪个文件?"filenameif[!-e"$filename"];thenecho"这个文件不存在。"#exit1fiif[-r"$filename"];thenecho"$filename是可读的。"#exit1fiif[-w"$filename"];thenecho"$filename是可写的。"#exit1fiif[-x"$filename"];thenecho"$filename是可执行的。"#exit1fiS7、批处理操作接口4运行:../testrwx.sh你想测试哪个文件?c/thread.cc/thread.c是可读的。c/thread.c是可写的。S7、批处理操作接口43、测试字符串str1是否为空,为空则返回0str1=""test-z"$str1"echo$?4、测试字符串str1是否为空,非空则返回0,为空返回非0test-n"$str1"echo$?S7、批处理操作接口45、比较str1与str2是否相同,相同则返回0,否则返回非0["$str1"="$str2"]echo$?6、比较str1与str2是否不同,不同则返回0["$str1"!="$str2"]echo$?S7、批处理操作接口47、比较str1与str2的大小["$str1"\>"$str2"]echo$?["$str1"\<"$str2"]echo$?S7、批处理操作接口48、建立文件comint.sh,进行整数比较#!/bin/sha=10b=20if[$a-eq$b]thenecho"$a-eq$b:aisequaltob"elseecho"$a-eq$b:aisnotequaltob"fiS7、批处理操作接口4if[$a-ne$b]thenecho"$a-ne$b:aisnotequaltob"elseecho"$a-ne$b:aisequaltob"fiif[$a-gt$b]thenecho"$a-gt$b:aisgreaterthanb"elseS7、批处理操作接口4
echo"$a-gt$b:aisnotgreaterthanb"fiif[$a-lt$b]thenecho"$a-lt$b:aislessthanb"elseecho"$a-lt$b:aisnotlessthanb"fiif[$a-ge$b]thenS7、批处理操作接口4echo"$a-ge$b:aisgreaterorequaltob"elseecho"$a-ge$b:aisnotgreaterorequaltob"fiif[$a-le$b]thenecho"$a-le$b:aislessorequaltob"elseecho"$a-le$b:aisnotlessorequaltob"fiS7、批处理操作接口4运行:../comint.sh10-eq20:aisnotequaltob10-ne20:aisnotequaltob10-gt20:aisnotgreaterthanb10-lt20:aislessthanb10-ge20:aisnotgreaterorequaltob10-le20:aislessorequaltobS7、批处理操作接口49、建立文件log.sh,进行逻辑运算#!bin/shiv=15if[!"$iv"-lt5-o"$iv"-gt30];thenecho"$iv不小于5或大于30"fiif["$iv"-lt20-a"$iv"-gt10];thenecho"$iv小于20且大于10"fiS7、批处理操作接口4运行:../log.sh15不小于5或大于3015小于20且大于10S7、批处理操作接口410、建立文件score.sh,使用if进行成绩等级的判断#!/bin/bashecho-n"请输入一个分数:"readscoreif["$score"-lt60];then echo"$score分属于不及格"fiif["$score"-lt70-a"$score"-ge60];then echo"$score分属于及格"fiif["$score"-lt80-a"$score"-ge70];then echo"$score分属于中等"fiS7、批处理操作接口4if["$score"-lt90-a"$score"-ge80];then echo"$score分属于良好"fiif["$score"-le100-a"$score"-ge90];then echo"$score分属于优秀"fiS7、批处理操作接口4运行:../score.sh请输入一个分数:9393分属于优秀S7、批处理操作接口411、建立文件check_file.sh,判断某个文件是否存在#!/bin/bashecho-n"请输入一个文件名及路径:"readFILEif[-e$FILE];then echo"$FILE存在"else echo"$FILE不存在"fiS7、批处理操作接口4运行:../check_file.sh请输入一个文件名及路径:score.shscore.sh存在S7、批处理操作接口412、建立文件ifelif.sh,对成绩等级进行判断#!/bin/bashecho-n"请输入一个分数:"readscoreif["$score"-lt60];then echo"$score分属于不及格"elif["$score"-lt70-a"$score"-ge60];then echo"$score分属于及格"elif["$score"-lt80-a"$score"-ge70];then echo"$score分属于中等"elif["$score"-lt90-a"$score"-ge80];then echo"$score分属于良好"else echo"$score分属于优秀"fiS7、批处理操作接口4运行:./ifelif.sh请输入一个分数:9797分属于优秀操作系统实验教程
(Linux应用实例教程)申丰山S7、批处理操作接口5S7、批处理操作接口51、建立文件case_score.sh,使用case对成绩等级进行判断#!/bin/bashecho-n"请输入一个分数:"readscorelev=$(echo$score/10|bc)if["$lev"-lt6];thenlev=5fiS7、批处理操作接口5if["$lev"-eq10];thenlev=9ficase"$lev"in5)echo"$score分属于不及格";;6)echo"$score分属于及格";;7)echo"$score分属于中等";;8)echo"$score分属于良好";;9)echo"$score分属于优秀";;*)echo"分值不合法";;esacS7、批处理操作接口5运行:../case_score.sh请输入一个分数:8787分属于良好S7、批处理操作接口52、建立文件for.sh,使用for循环对水果类型进行判断#!/bin/bashforFRUITinappleorangebananapeardo echo"当前水果是$FRUIT。"doneecho"不再有其它水果。"S7、批处理操作接口5运行:../for.sh当前水果是apple。当前水果是orange。当前水果是banana。当前水果是pear。不再有其它水果。S7、批处理操作接口53、改写for.sh为文件for2.sh,在in后使用新的循环列表形式${变量}#!/bin/bashfruits="appleorangebananapear"forFRUITin${fruits}do echo"当前水果是$FRUIT。"doneecho"不再有其它水果。"S7、批处理操作接口5运行:../for2.sh当前水果是apple。当前水果是orange。当前水果是banana。当前水果是pear。不再有其它水果。S7、批处理操作接口54、建立文件for3.sh,使用枚举的、简略的循环列表形式输出当前循环变量值#!/bin/bashi="12345"forviin${i}do echo"当前循环变量值=$vi。"doneS7、批处理操作接口5forviin12345do echo"当前循环变量值=$vi。"doneforviin{1..5}do echo"当前循环变量值=$vi。"doneS7、批处理操作接口5运行:../for3.sh当前循环变量值=1。当前循环变量值=2。当前循环变量值=3。当前循环变量值=4。当前循环变量值=5。当前循环变量值=1。…S7、批处理操作接口55、建立文件for4.sh循环累加1到100的自然数序列之和,使用命令替换作为循环列表#!/bin/bashsum=0forVARin`seq1100`#求1到100的自然数序列之和do let"sum+=VAR"doneecho"Total:$sum"S7、批处理操作接口5运行:../for4.shTotal:5050S7、批处理操作接口56、建立文件for5.sh循环计算1到100间隔为2的自然数序列之和#!/bin/bashsum=0forVARin$(seq12100) #求1到100间隔为2的自然数序列之和do let"sum+=VAR"doneecho"Total:$sum"S7、批处理操作接口5运行:../for5.shTotal:2500S7、批处理操作接口57、建立文件for6.sh,逐个查看目录中每个文件的属性#!/bin/bashcdcforVARin$(ls)do ls-l$VARdonecdS7、批处理操作接口5运行:../for6.sh-rwxrwxr-x1sfssfs7280Oct2108:42parent-child-fork-rw-rw-r--1sfssfs615Oct2108:42parent-child-fork.c-rw-rw-r--1sfssfs621Oct2108:41parent-child-fork.c~-rwxrwxr-x1sfssfs12306Nov104:13pc-rw-------1sfssfs15600Nov104:14pc.cS7、批处理操作接口58、建立文件for7.sh,输出命令行上的参数值#!/bin/bashforVARdo echo-n"$VAR"doneechoS7、批处理操作接口5运行:../for7.sh12341234S7、批处理操作接口59、建立文件for8.sh,输出命令行上的参数值#!/bin/bashforVARin$@do echo-n"$VAR"doneechoS7、批处理操作接口5运行:../for8.sh12341234S7、批处理操作接口510、使用c语言格式的for循环,输出循环变量值#!/bin/bashfor((i=1;i<=10;i++))do echo-n"$i"doneechoS7、批处理操作接口5运行:../for9.sh12345678910S7、批处理操作接口511、建立文件for11.sh,分别计算1到100的自然数序列之和及1到100间隔为2的序列之和#!/bin/bashsumi=0sumj=0for((i=1,j=1;i<=100;i++,j+=2))S7、批处理操作接口5do let"sumi+=i" if[$j-lt100];then let"sumj+=j" fidoneecho"sumi=$sumi"echo"sumj=$sumj"S7、批处理操作接口5运行:../for11.shsumi=5050sumj=2500S7、批处理操作接口512、建立文件for13.sh,执行无限循环#!/bin/bashfor((;1;))do echo"无限循环"doneS7、批处理操作接口5运行:../for13.sh无限循环无限循环无限循环无限循环^C操作系统实验教程
(Linux应用实例教程)申丰山S7、批处理操作接口6S7、批处理操作接口61、建立文件while0.sh,输出循环变量值#!/bin/bashCOUNTER=5while[[$COUNTER-gt0]]do echo-n"$COUNTER" let"COUNTER-=1"doneechoS7、批处理操作接口6运行:../while0.sh54321S7、批处理操作接口62、建立文件while.sh,使用while循环实现累加和#!/bin/bashsumi=0sumj=0while[["$i"-le"100"]]S7、批处理操作接口6do let"sumi+=i" let"j=i%2" if[$j-ne0];then let"sumj+=i" fi let"i+=1"doneecho"sumi=$sumi"echo"sumj=$sumj"S7、批处理操作接口6运行:../while.shsumi=5050sumj=2500S7、批处理操作接口63、建立文件while2.sh,使用while循环实现输入和判断#!/bin/bashgNUM=8echo"请输入1到10之间的数"whilereadGUESSdoS7、批处理操作接口6 if[[$GUESS-eq$gNUM]];then echo"你猜中了" break else echo"错误,重试" fidoneS7、批处理操作接口6运行:../while2.sh请输入1到10之间的数5错误,重试6错误,重试7错误,重试8你猜中了S7、批处理操作接口64、建立文件while3.sh,使用while循环读取文件内容并处理#!/bin/bashwhilereadLINEdo NAME=`echo$LINE|awk'{print$1}'` AGE=`echo$LINE|awk'{print$2}'` SEX=`echo$LINE|awk'{print$3}'` echo"我的名字是$NAME,今年$AGE岁,我是$SEX士。"done<student.txtS7、批处理操作接口6student.txt内容如下:S119女S220男S321男S7、批处理操作接口6运行:../while3.sh我的名字是S1,今年19岁,我是女士。我的名字是S2,今年20岁,我是男士。我的名字是S3,今年21岁,我是男士。S7、批处理操作接口65、建立文件while4.sh处理文件student.txt#!/bin/bashcatstudent.txt|whilereadLINEdo NAME=`echo$LINE|awk'{print$1}'` AGE=`echo$LINE|awk'{print$2}'` SEX=`echo$LINE|awk'{print$3}'` echo"我的名字是$NAME,今年$AGE岁,我是$SEX士。"doneS7、批处理操作接口6运行:../while4.sh我的名字是S1,今年19岁,我是女士。我的名字是S2,今年20岁,我是男士。我的名字是S3,今年21岁,我是男士。S7、批处理操作接口66、无限循环#!/bin/bashwhile((1))do echo"无限循环…"doneS7、批处理操作接口6运行:../while5.sh无限循环…无限循环…无限循环…^CS7、批处理操作接口67、无限循环#!/bin/bashwhiletruedo echo"无限循环…"doneS7、批处理操作接口68、无限循环#!/bin/bashwhile:do echo"无限循环…"done操作系统实验教程
(Linux应用实例教程)申丰山S7、批处理操作接口7S7、批处理操作接口71、建立文件Until.sh实现累加和#!/bin/bashsum01=0sum02=0i=1until[$i-gt100]S7、批处理操作接口7do let"sum01+=i" let"j=i%2" if[$j-ne0];then let"sum02+=i" fi let"i+=1"doneecho$sum01echo$sum02S7、批处理操作接口7运行:../Until.sh50502500S7、批处理操作接口72、无限循环#!/bin/bashuntil((0))do echo"无限循环…"doneS7、批处理操作接口7运行:../Until2.sh无限循环…无限循环…无限循环…^CS7、批处理操作接口73、无限循环#!/bin/bashuntilfalsedo echo"无限循环…"doneS7、批处理操作接口7运行:../Until3.sh无限循环…无限循环…无限循环…^CS7、批处理操作接口74、建立文件select.sh,给出操作系统类型菜单供用户选择#!/bin/bashecho"你选择哪种操作系统?"selectOSinLinuxWindowsUNIXAIXdo breakdoneecho"你选择了$OS"S7、批处理操作接口7运行:../select.sh你选择哪种操作系统?1)Linux2)Windows3)UNIX4)AIX#?1)Linux2)Windows3)UNIX4)AIX#?1你选择了Linux5、建立文件select2.sh,显示星期数供用户选择#!/bin/bashecho"今天星期几?"selectDAYin星期一星期二星期三星期四星期五星期六星期日do case$DAYin
星期一)echo"今天星期一";;
星期二)echo"今天星期二";;
星期三)echo"今天星期三";;
星期四)echo"今天星期四";;
星期五)echo"今天星期五";;
星期六|星期日)echo"今天双休日";; *)echo"未知输入,程序退出"&&break;; esacdoneS7、批处理操作接口7运行:../select2.sh今天星期几?1)星期一2)星期二3)星期三4)星期四5)星期五6)星期六7)星期日#?6今天双休日S7、批处理操作接口
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初中七年级地理地图的选择和应用教学设计
- 高中二年级信息技术教学设计:应用查询-让数据开口说话
- 高中一年级信息技术教学设计:信息系统安全技术之加密与认证(第1课时)
- 六年级综合实践活动简易互动媒体作品之课件设计教学设计
- 初中七年级英语上册Unit 1一轮复习备考教学设计-基于主题语境的基础随堂测高效讲评
- 初中地理八年级地球的运动单元整体教学设计
- 初中八年级地理下册中国的地域差异单元整体教学设计
- 2026年药士资格考试试卷及答案试题
- 园区物业企业安全双重预防机制建设方案
- 2026年农民资格考试试卷及答案
- 大型连锁超市组织架构与岗位职责
- 特种设备定期检验合规标准与实践指南
- 胖东来员工民主决策机制
- 《种子生产技术》课件-11-第三章第二节 玉米自交系种子生产技术
- 档案审核人员管理制度
- 肾内科患者血液透析中抗凝药物使用
- 腹部推拿课件
- 大连外国语学院英语语言文学专业研究生培养方案
- (正式版)DGTJ 08-2200-2024 建筑隔热涂料应用技术标准
- 退役兵防诈骗知识培训课件
- 2025孙子兵法考试题目及答案
评论
0/150
提交评论