unix作业
unix期末试题及答案
unix期末试题及答案在这里我为您提供一份"Unix期末试题及答案"的文档,按照试题和答案的形式进行排版。
请注意,由于篇幅的限制,此处仅为示例文档的导言部分,具体内容请自行编写。
-------------------------------Unix期末试题及答案1. 题目一题目描述:请解释什么是Unix操作系统,并提供三个Unix操作系统的实际应用案例。
答案:Unix操作系统,简称Unix,是一种多用户,多任务的操作系统。
它最早由美国贝尔实验室开发,现在被广泛应用在各种计算设备上,包括个人电脑、服务器和嵌入式系统等。
实际应用案例:1) 服务器操作系统:Unix操作系统在服务器领域非常常见,例如常用的Linux服务器就是基于Unix系统的,它提供了高性能、高可靠性和安全性,适合构建各种网络服务和应用。
2) 大数据处理:Unix操作系统对于大规模数据处理非常适用,在数据分析、数据挖掘和机器学习等领域有广泛应用。
例如Hadoop和Spark等大数据处理框架就是基于Unix操作系统的。
3) 嵌入式系统:Unix操作系统还被广泛应用于嵌入式系统,例如智能手机、路由器和工业控制设备等。
它提供了稳定的运行环境和强大的功能,满足了各种应用领域的需求。
2. 题目二题目描述:请解释Unix文件权限的概念,并列举常用的文件权限设置和对应的数值表示。
答案:在Unix操作系统中,文件权限用来控制文件的访问级别,主要包括读取权限、写入权限和执行权限。
这些权限可以分别设置给文件的所有者、所属组和其他用户。
常用的文件权限设置及对应的数值表示如下:- r(读取权限):表示可以读取文件的内容。
对应的数值表示为4。
- w(写入权限):表示可以修改文件的内容。
对应的数值表示为2。
- x(执行权限):表示可以执行文件。
对应的数值表示为1。
- -(无权限):表示没有相应的权限。
对应的数值表示为0。
例如,权限设置为"rwxr-xr--"的文件,数值表示为"754"。
电子科技大学14秋《unix操作系统》在线作业2答案
正确答案:B
6.在UNIX下,用于关机或进入单人维护模式的命令是()。
A. dmesg
B. shutdown
C. free
D. cal
?
正确答案:B
7.在UNIX下,不能作为文件名通配符使用的是()。
A. *
B. #
C.?
D. []
?
正确答案:B
8.关于UNIX操作系统的命令行格式,下面描述正确的是()。
14秋《unix操作系统》在线作业2
一,单选题
1.使用哪个命令可以实时监控进程状态()。
A. ps
B. netstat
C. mesg
D. top
?
正确答案:D
2. UNIX系统有一个突出特性,即只有()的用户才可使用系统命令。
A.使用
B.开机
C.授权
D.上网
?
正确答案:C
3. UNIX系统中文件的复制命令是()。
D. sort
?
正确答案:B
10.在UNIX下,列出当前目录下的清单所常用的命令是()。
A. vim
B. cd
C. dir
D. ls
?
正确答案:D
11. UNIX完成启动过程后,()程序为系统中的每一个终端激活一个getty程序。
A. LILO or GRUB
B. BIOS
C. login
D. init
?
正确答案:D
12.目录的可读意味着()。
A.可在该目录下建立文件
B.从该目录中删除文件
C.可以从一个目录转到另一个目录
D.可以查看该目录下的文件。
?
正确答案:D
13. UNIX系统显示本终端用户的信息的命令是()。
16春华师《UNIX操作系统》在线作业
16春华师《UNIX操作系统》在线作业华师《UNIX操作系统》在线作业⼀、单选题(共 20 道试题,共 40 分。
)1. 除了Tlnt之外,下⾯选项中还可以登录到远程主机的命令是( )。
. UUP. RP. rlogin. Ping正确答案:2. 要编译程序,在命令提⽰符输⼊( )。
. 程序名. -o 程序名. 程序名. 程序名正确答案:3. sh语⾔中的循环语句不包含(). whil循环. until循环. for循环. forh循环正确答案:4. 在系统中建⽴⽤户组的命令为( )。
. groupl. group. group. Usr正确答案:5. 进程的同步是指进程间在逻辑上的相互( )关系。
. 联接. 制约. 继续. 调⽤正确答案:6. op表⽰操作符,它不可以是下列()操作符. “:-”. “:=”7. 管道特点是(). 双向的. ⼀致的. 共享的. 单向的正确答案:8. 修改⼝令的命令是( )。
. who. pssw. psswor. Pw正确答案:9. UNIX的⽹络协议是()协议. TP/IP. TP. IP#ISO正确答案:10. 如何将shll脚本xm.sh设置为所有⽤户都能执⾏ ( )。
. hmo +x xm.sh. hmo +w xm.sh. hmo +r xm.sh. hmo u+x xm.sh正确答案:11. UNIX⽂件系统的⽬录结构是⼀棵倒挂的树,⽂件都按其作⽤分门别类地放在相关的⽬录中。
现有⼀个外部设备⽂件,我们应该将其放在()⽬录中。
. /in. /t. /v. /li正确答案:12. ⽤来查找特定字符串的命令是()。
. fin. whris13. 要把消息回复给指定的⽤户, 在mil模式下,输⼊( )。
. r usrnm. R usrnm. s usrnm. m usrnm正确答案:14. shll提供()维数组,并且没有限定数组的⼤⼩. ⼀. ⼆. 多. N正确答案:15. ()是⾯向屏幕编辑的邮件程序. LM. Pin. mil. pop正确答案:16. UNIX⽂件和⽬录的存取权限不包含(). r(r). w(writ). x(xut). (xut)正确答案:17. fin -links n 命令的作⽤是( )。
unix操作系统命令练习 答案
unix操作系统命令练习答案unix操作系统命令练习-答案I.文件和目录操作1.如何创建一个目录?MkDirName2.如何一个命令创建多级目录src/main/java?mkdir psrc/main/java3.如何将文件修改为可执行?chmoda+xfilename4.如何查看当前目录的全路径?pwd5.如何重复执行最近执行过的netstat命令?上下方向键切换已连续执行的命令6.怎样用find命令列出/home/app下面所有子目录中的test.txt文件?查找/主页/应用程序名称测试。
txt7.怎样为/home/app/resin-3.1.11创建一个软链接/home/app/resin? ln-s/home/app/resin-3.1.11/home/app/resin8.如何删除/home/demo目录及子目录下三天前产生的所有log文件find/home/democmtime+3*.logcexecrm-r{}\\;9.请在系统任务要求中添加/home/shell/demo SH周一至周五9:00到15点每分钟执行一次并将回显写入到/home/log/demo.logcrontabce *9-15**1-5/主页/外壳/演示。
sh1>;/主页/日志/演示。
log2>;&一10.如何使用vi编辑器将一个文件内容所有“abc”替换成“def”?:1,$s/abc/def/g11.创建文件s.sh,将其复制到桌面上的主文件夹,并更改s.sh的权限为765touchdesktop/s.shcpdesktop/s.sh~/s.shchmod765~/s.sh12.在主目录下创建一个文件夹mx,在mx文件夹下面创建一个s.sh文1.s.sh的功能是在MX目录txtmkdircp~/mxtouch~/MX/s.sh中创建一个文本文件echo?touch../1.txt?>~/mx/s.shchmoda+x~/mx/s.sh13.将/TMP/K目录的权限更改为所有者读/写执行组用户读/写其他用户无权限chmod740/tmp/k14.列出当前目录中的所有文件用什么命令?lsca.15.使用什么命令显示当前目录路径?pwd16.用vi编辑文件时用什么命令保存文件?在命令模式下:wq17.在主目录中创建文件和文件夹,并分别用RM删除touch~/filemkdir~/dirrmdirfile1二过滤内容18.如何在文件内容中输出带有“ABC”的行?grep?abc?filename19.如何输出内容不包含“ABC”的行?格雷普科夫?abc?文件名20。
模拟UNIX文件系统的设计及实现操作系统大作业
模拟UNIX文件系统的设计及实现操作系统大作业UNIX文件系统是一种常见的操作系统文件系统,它提供了一种以层次结构组织文件和目录的方式来管理存储设备上的数据。
为了完成这个大作业,我们需要设计并实现一个简化版的UNIX文件系统,包括文件和目录的管理、文件的读写操作、文件权限的管理等。
首先,我们需要设计文件系统的存储结构。
文件系统可以在硬盘上以一个分区的形式存在,我们可以使用一个整数数组来表示硬盘,每个数组元素表示硬盘上的一个块。
我们还可以使用一个超级块来记录文件系统的信息,例如文件系统的状态、块的总数、块的使用情况等。
此外,我们还需要设计并实现一个索引节点表,用于保存文件或目录的元数据信息,例如文件的大小、权限、创建时间等。
接下来,我们需要实现文件和目录的管理功能。
文件和目录可以通过其在索引节点表中的索引来标识。
我们可以使用一个数组来表示目录,数组的每个元素都是一个目录项,记录了文件或子目录的名字和索引节点的索引。
我们还可以使用一个栈来保存当前目录的路径,方便用户在不同目录之间切换。
为了支持目录的嵌套,我们可以在目录项中添加一个指向父目录的索引。
在文件和目录的管理基础上,我们还需要实现文件的读写操作。
文件可以通过其索引节点的索引来标识。
当用户要读取文件时,我们需要根据文件的索引节点找到文件的块地址列表,然后将列表中的块读取到内存中。
当用户要写入文件时,我们需要找到文件的块地址列表中最后一个块,如果该块已满,则需要申请一个新的块,并将新块的地址添加到块地址列表中。
同时,我们还需要更新文件的大小和修改时间等元数据信息。
最后,我们还需要实现文件权限的管理功能。
文件的权限信息可以通过文件的索引节点来保存。
我们可以使用一个整数来表示文件的权限,例如八进制数,每一位代表一个权限,例如读取权限、写入权限和执行权限等。
当用户要访问文件时,我们需要根据用户的权限和文件的权限来判断用户是否具有相应的权限。
总结起来,要完成这个大作业,我们需要设计并实现一个模拟UNIX文件系统,包括文件和目录的管理、文件的读写操作、文件权限的管理等。
unix命令
Unix命令1. 简介Unix是一个多用户、多任务操作系统,因其稳定性、安全性和可靠性而广泛应用于服务器和工作站环境中。
Unix系统提供了丰富的命令行工具,这些工具可以通过命令行终端或shell程序来调用和使用。
本文档将介绍Unix系统中常用的一些命令,涵盖文件和目录操作、进程管理、系统监控等方面。
2. 文件和目录操作2.1 lsls命令用于列出目录下的文件和子目录。
常用选项包括:•-l:以长格式显示文件和目录的详细信息•-a:显示所有文件和目录,包括隐藏文件•-h:以人类可读的格式显示文件大小例如,执行ls -l命令可以列出当前目录下的所有文件和子目录,并显示详细信息。
2.2 cdcd命令用于切换当前工作目录。
可以使用绝对路径或相对路径作为参数。
例如,执行cd /home/user可以切换到/home/user目录。
执行cd ..可以返回上一级目录。
2.3 cpcp命令用于复制文件或目录。
常用选项包括:•-r:递归复制目录及其内容•-i:覆盖已存在的文件时进行提示例如,执行cp file1 file2可以复制file1到file2。
2.4 mvmv命令用于移动文件或目录,也可用于重命名文件或目录。
例如,执行mvfile1 file2可以将file1重命名为file2。
2.5 rmrm命令用于删除文件或目录。
常用选项包括:•-r:递归删除目录及其内容•-f:强制删除,无需确认例如,执行rm file1可以删除file1。
3. 进程管理3.1 psps命令用于列出系统中运行的进程。
常用选项包括:•-e:显示所有进程,包括系统级进程•-f:显示详细信息,包括进程间的关系例如,执行ps -e可以列出系统中所有进程的信息。
3.2 toptop命令用于实时监测系统中的进程。
它可以显示当前资源使用情况和每个进程的详细信息,如CPU使用率、内存使用量等。
按下q键可以退出top命令。
3.3 killkill命令用于终止指定的进程。
Unix操作指令大全
UNIX系统操作命令大全UNIX系统操作命令第一章登录和退出用户在登录前,首先要向系统管理员申请一个用户注册名,不论用户从哪台计算机登录到ITPNET上都将访问相同的文件系统。
1.1 登录当屏幕上出现Login提示符时,用户可以输入自己的用户注册名,并按回车键。
若有口令,系统将提示用户输入密码,并按回车键,口令输入正确后,用户登录成功。
这时,屏幕上会显示出一些信息和命令提示符。
如:Login: guest [Enter]passwd: ****** [Enter]sun%注: 用户名要用小写字母输入,UNIX系统区分大小写字母。
[hide]1.2 退出当用户准备退出自己的计算机帐号时,可在系统示符下输入logout或exit或按[Ctrl-D]。
当屏幕出现Login时,用户可以安全地离开计算机了。
如:sun% logout [Enter]Login:1.3 修改口令为了防止他人使用自己的帐号,在你首次登录后,请用passwd命令修改只有本人知道的保密口令,口令通常由此可6到8个字母数字组成。
如:sun% passwd[Enter]Old Passwd: ******New Passwd: ******update 更新磁盘 val SCCS实用程序 vc SCCS实用程序 vi 全屏幕编辑器 volcopy 文件系统的文字拷贝 wait 等待所有字进程结束 while 循环语句 who 显示谁在使用系统w hodo 显示哪些用户在做什么 write 和另一用户直接对话 xargs 建立参数表并执行命令y acc 语法分析程序生成器;)cl注:当你退出系统再次登录时,就要使用新的口令。
第二章目录操作命令2.1 显示目录命令:pwd(print working directory)格式:pwd功能:显示出用户当前工作目录的全路径名。
例如:% pwd2.2 建立目录命令:mkdir(make directory)格式:mkdir directory_name功能:建立新目录例如:% mkdir directory2.3 改变目录命令:cd(change directory)格式:cd directory_name功能:改变当前工作目录注释:目录名选项有:(1) 目录名,转到当前目录下的子目录。
模拟UNIX文件系统的设计及其实现操作系统大作业(含源文件)
华南理工大学“计算机操作系统”课程设计大作业(含答案)一、题目: 模拟UNIX文件系统的设计及实现多用户、多目录的文件系统的设计------用VC或Delphi编程模拟文件系统的管理二、目的通过OS文件子系统的设计、增强OS设计的技巧,达到提高解决实际OS的设计能力的提高。
三、内容多用户的多级目录的文件系统设计。
四、功能要求1. 多用户:usr1,usr2,usr3,……,usr8 (1-8个用户)2. 多级目录:可有多级子目录;3. 具有login (用户登录)4. 系统初始化(分配内存空间,创建文件卷,初始化根目录)5. 文件的创建:create6. 文件的打开:open7. 文件的读:read8.文件的写:write9. 文件关闭:close10. 删除文件:delete11. 创建目录(建立子目录):mkdir12. 改变当前目录:cd13. 列出文件目录:dir(包括文件属性)14. 删除目录:rmdir15. 退出:logout五、实现方法该大作业是实现一个类似unix的文件系统,只需要实现上述功能要求中所列出的功能,代码中不能调用OS系统提供的与文件操作和磁盘操作有关的系统调用。
设计提示:用内存模拟磁盘操作,对文件和目录的创建、删除、读写都用对内存的操作来模拟。
文件的属性信息用内存数据结构保存;所有文件内容和目录信息保存在内存中。
文件属性包括:文件名,所有者,创建时间,最后访问时间,文件大小,数据区指针或I-node指针等。
当程序运行结束时回收内存,信息不需要保存到磁盘,下次重新运行程序时重头开始。
六、实验要求每人完成一份大作业实验报告。
报告分设计思想、数据定义、处理流程、源程序、运行结果截图、设计体会等部分。
1)给出数据定义和详细说明;2)给出实现思想和设计流程;3)调试完成源程序;4)屏幕观察运行结果;5)总结自己的设计体会;编程语言及操作系统平台不限。
七、提交内容本大作业每个人必须单独完成。
电子科技大学14秋《unix操作系统》在线作业3答案
?
正确答案:B
13. UNIX标准是()。
A. Bourne shell
B. SVID、POSIX
C. TC shell、C shell
D. Korn shell
?
正确答案:B
14.在UNIX下当你完成任务,想要退出系统时,可在提示符后面输入()之后,按下Enter键
A. shell
B. logout
D. q、q!、tab、h、j、k、l、b
?
正确答案:C
17.在vi命令方式下要删除光标所在的一整行内容,所用的操作命令是()。
A. a
B. dd#del
C. U?Biblioteka 正确答案:B二,判断题
1.使用passwd改变用户的口令,任何用户都需要输入原来的密码。
A.错误
B.正确
?
正确答案:B
2.使用who命令可以列出该计算机上所有的用户名。
B.版本标识号
C.用户标识号
D.用户组标号
?
正确答案:D
11.在UNIX下,用来格式化软盘的命令是()。
A. format
B. fdformat
C. fddformat
D. fformat
?
正确答案:B
12.在UNIX下,存放系统配置文件及其管理相关的目录是()。
A. /proc
B. /etc
C. /sbin
B. Netware
C. DOS和Windows
D. os/2
?
正确答案:A
3.在UNIX下只有一个小圆点的文件是()。
A.可执行文件
B.子目录
C.隐藏文件
D.当前目录
?
unix试题及答案(一
unix试题及答案(一一、单选题(每题1分,共10分)1. Unix系统中,哪个命令用于查看当前目录下的文件和文件夹?A. lsB. pwdC. cdD. mkdir答案:A2. 在Unix中,如何查看当前系统的运行时间和平均负载?A. uptimeB. topC. psD. who答案:A3. Unix系统中,哪个命令用于改变文件的权限?A. chmodB. chownC. chgrpD. chmode答案:A4. 在Unix中,如何查看一个文件的内容而不编辑它?A. viB. catC. editD. view答案:B5. Unix系统中,哪个命令用于搜索文件系统中的文件?A. findB. searchC. locateD. query答案:A6. 在Unix中,如何查看当前目录下的所有文件和文件夹,包括隐藏文件?A. ls -aB. ls -lC. ls -rD. ls -h答案:A7. Unix系统中,哪个命令用于查看当前系统的磁盘使用情况?A. dfB. duC. diskusageD. diskinfo答案:A8. 在Unix中,如何复制一个文件?A. copyB. cpC. duplicateD. clone答案:B9. Unix系统中,哪个命令用于查看当前系统的版本信息?A. versionB. unameC. sysinfoD. osinfo答案:B10. 在Unix中,如何删除一个文件?A. delB. rmC. deleteD. remove答案:B二、多选题(每题2分,共10分)1. Unix系统中,哪些命令用于查看当前路径?A. pwdB. lsC. cdD. path答案:A2. 在Unix中,哪些命令用于查看进程信息?A. psB. topC. jobsD. task答案:A, B3. Unix系统中,哪些命令用于文件权限的修改?A. chmodB. chownC. chgrpD. chmode答案:A, B, C4. 在Unix中,哪些命令用于文件内容的查看?A. catB. lessC. moreD. view答案:A, B, C5. Unix系统中,哪些命令用于文件的复制?A. cpB. copyC. duplicateD. clone答案:A三、判断题(每题1分,共10分)1. Unix系统中,使用“cd ..”命令可以进入上级目录。
电子科技大学14秋《unix操作系统》在线作业1答案
14秋《unix操作系统》在线作业1
一,单选题
1. UNIX系统中显示指定年份日历表的命令是()。
A. last
B. date
C. cat
D. cal
?
正确答案:D
2. UNIX系统对初学者和健忘者提供的帮助有()。
A. or
B. 使用电子手册,即manu命令
C. man/help/info/learn
D. 各种命令及其UNIX在线手册
?
正确答案:C
3. 在UNIX下,进程是一个程序或者任务的()。
A. 编号
B. 执行进度
C. 完成情况
D. 执行过程
?
正确答案:D
4. 当用户退出系统时,()程序终止执行,UNIX系统在终端上启动一个新的getty程序并等待新的用户登录。
A. shell
B. 内核
C. init
D. LILO or GRUB
?
正确答案:A
5. 在UNIX操作系统下,对命令的使用可以是()。
A. 不区分大小写字母
B. 只能识别小写字母
C. 要区分小写或大写字母
D. 只能是大写字母
?
正确答案:B。
认识UNIX 作业系统
體)、other(其他人)三部份,其中相對應的符號(r﹑w﹑x﹑-)之意義如下 所示: r 表示有讀取權利 w 表示有寫入權利 x 表示有執行權利 則表示對應項目的動作無使用權 更改檔案使用權限 chmod o-rwx file1 chmod g-wx file1
計算機概論計算機概論
total 3 - r--r--r-- 1 student 512 sep 5 10:10 a.out - rwxrwxrwx 1 student 512 sep 6 11:05 temp
p7-12
計算機概論計算機概論
cat (顯示檔案內容)
格式:cat file-list(檔案清單) 檔案清單﹕是一個(或多個)檔案名稱﹐同ls之說明。 範例:host1% cat file1.c file2.c 結果﹕將在螢幕上顯示file1.c及file2.c之檔案內容。
計算機概論計算機概論
p7-11
ls (查詢工作目錄內容) 格式:ls〔options(選項)〕〔file-list(檔案清單)〕 選項說明﹕
-a 列出所有檔案,包括隱藏檔。因為要求列出所有檔案﹐所 以不需要〔檔案清單〕之選項。 -l 列出檔案名稱﹐並加上各種資訊。如果沒有此項,則只列 出檔名。 檔案清單﹕選擇欲列出之檔案名稱的條件。 範例:host1%ls -l 列出目前工作目錄下之檔案及子目錄名稱﹐並加 上各種資訊。 結果﹕(解釋每一個欄位)
樹狀結構 (tree) UNIX的三種主要檔案
一般檔案 (regular file)
目錄或稱檔案夾 (directory) 特殊檔案(special file)
C1 C2
Unix作业系统.
Unix 行程運作-BSD
Unix 排程
4.2BSD
0.1秒的循環分時排程 每秒重定優先權排程
Solaris
純粹的優先權排程
Unix 記憶體管理
當磁碟閒置時
依優先權事先載入資訊到磁碟 載入資訊至主記憶體
當主記憶體需要作分頁替換
可直接從磁碟載入
Unix檔案系統
Unix檔案系統分做下列幾大部分 boot blocks:
1970年時,那部PDP-7卻只能支援兩個使用者, Brian Kernighan 就開玩笑地戲稱他們的系統其實是: “UNiplexed Information and Computing System”,縮 寫為“UNICS”,後來,取其諧音稱為“Unix”。固 為Unix元年。
Unix 簡史
Unix作業系統
指導老師:黃兆武 學生:江文欽 93404773
Unix 簡介
Unix並非指單一作業系統而是系統的規範
/standing/sd11.html
全名:
UNiplexed Information and Computing System
組成:
開機啟動用的
superblock:源自 紀錄一些表示這是Unix 檔案系統的魔術數字和其它說明
該系統的幾何與統計變數的重要數據
cylinder groups:
Superblock的備份
類似superblock 紀錄著cylinder group 的相關數據 紀錄檔案屬性的 inodes
data blocks
Unix 未來方向
計世資訊(CCW
Research)研究指出,當前 Unix的發展面臨三大挑戰
UNIX作业--讲解
作业1:存在文件/student.txt,文件格式为Sname:S#:Sdept:Sage:Ssex,从文件中查找Sdept 为“cs”的行信息,输出到文件/csStudent.txt文件中去。
#include <stdio.h>#include <string.h>void main(){FILE *fpr, *fpw;char buf[1024], *p1, *p2;if((fpr = fopen(“/student.txt”, “r”)) == NULL) {printf(“open file /student.txt failed.\n”);return;}if((fpw = fopen(“/csStudent.txt”, “w”)) == NULL) {printf(“open file /csStudent.txt failed.\n”);fclose(fpr);return;}while ((memset(buf, 0, sizeof(buf)),fgets(buf, sizeof(buf), fpr)) != NULL) {if((p1 = strstr(buf, “:”)) == NULL) break;if((p1 = strstr(p1 + 1, “:”)) == NULL) break;if((p2 = strstr(p1, “:cs:”)) == NULL) continue;if(p1 == p2) {puts(buf);fputs(buf, fpw);fputs(“\n”, fpw);}}fclose(fpr);fclose(fpw);}作业2:利用管道技术实现父子进程间通信,具体流程:父进程以3秒为周期接收用户输入并发送到子进程,子进程接收到信息后显示并回传,父进程接收到回传信息后显示。
父子进程在通信过程中采用信号中断处理方式进行处理,接收到“exit”字符串后父子进程均退出。
UNIX的shell大作业
LINUX/UNIX Shell编程大作业在Linux系统的/etc目录下有这样一个文件passwd,该文件里包含系统中所有用户信息的记录,记录里包含每个用户的如下信息:用户名、密码、用户ID、组ID、用户全名、用户主目录和用户登录所用的shell。
请设计一个脚本(shell)程序能实现增加、删除、查找和显示特定用户信息的功能。
你们可以通过创建一些UNIX/LINUX shell 脚本文件来满足以上需求。
可以用文本编辑器打开passwd文件,该文件里包含用冒号分隔开的字段组成的记录,如下所示:root:x:0:0:root:/root:/bin/bashzxj:x:500:500:zxj303:/home/zxj:/bin/bash..在主Shell脚本文件里(必须以menu 命名)要有一个多操作选项的菜单以便用户从中选择。
在以下不同的任务中,通过这些操作能实现以下功能:1、在屏幕上显示当前所有用户的记录2、在屏幕上显示当前所有用户(经过按规定格式排列和排序的)的记录3、只在屏幕上显示用户名和用户ID4、只在屏幕上显示(经过按规定格式排列和排序的)用户名和用户ID5、查询并显示特定用户的记录6、往passwd文件里增加新的用户记录7、从passwd文件里删除某个用户记录可以使用UNIX/LINUX中一些比较简单的命令或命令组合来执行1、2、3、4、5项的任务。
对于任务6和7,需要编写单独的Shell 脚本文件(必须分别命名为add和delete)并且在你的主脚本menu 文件中调用这些脚本文件。
可能还需要查询一些Unix/Linux命令,比如awk,、sort、tr、cut、paste、sed、grep;也可能还需要查询其他的Unix/Linux命令。
建议大家在主目录下建立一个以10zsb-xx(x座号)命名的目录,并且在本次作业中使用它作为工作目录。
主脚本文件中的菜单在menu脚本文件里将创建如下菜单,菜单里包含供用户选择的一些操作。
Unix 、 Linux、Mac OS作业系统
14
8-2 Linux 作業系統
Linux 是這幾年崛起的作業系統, 其標榜著 「自由」 (Free) 與 「開放」 (Open)的精神, 讓眾人得以分享 成果, 也使各種軟體的發展與更新速度更快。本節 將介紹Linux 作業系統的起源、版本、特色及常用 的操作指令, 帶您揭開其神祕面紗。
13
Unix 的特色
可靠的安全性:Unix 屬於多人作業系統, 因此在成員間 彼此的資料保密方面, 做了妥善的規劃。每個使用者均 可針對自己的檔案做權限設定 (讀、寫及執行權限),以 防資料外洩, 當然也可以指定將某些檔案開放給其他使 用者使用。 良好的系統架構:此外, 不管是在行程控制、檔案系統、 記憶體管理、輸入輸出系統、甚至網路系統方面, Unix 都有相當好的規劃。
9
Unix 的起源
今日, Unix 作業系統仍活躍於許多工作站之上。 不過, 在個人電腦方面, 則出現了另一個由 Unix 移 植的作業系統 ― Linux 。有關這個頗受注目的作 業系統, 我們將在稍後做進一步介紹。
10
Unix 名稱的由來?
其實 Unix 這個名稱的由來, 是為了諷刺當初 MULTICS (MULTiplexed Information and Computing System) 計畫的龐大, 因而取名為 UNICS (UNiplexed Information and Computing System), 後來便稱為Unix 。雖然名字中充滿了譏 諷的意味, 但當初 Unix 作業系統的許多設計概念 卻還是來自於MULTICS 計畫, 因此其對 Unix 的影 響, 仍不容忽視。
7
Unix 的起源
隨著 Unix 的逐漸發展, 功能也越形強大。貝爾實 驗室便想將 Unix 移植到更為先進的 PDP-11 主機。 由於硬體架構的不同, 彼此組合語言的差異很大 (當時的作業系統都是用組合語言寫的), 導致移植 過程非常艱辛。 有鑑於此, Ken Thompson 便發展出一套新的高階 程式語言 ― C 語言, 並將大部分的 Unix 程式碼以 C 語言重新改寫。由於 C 語言與硬體架構關連性 不大, 因此若想將 Unix 移植到其他主機上, 只需要 修改少部分的程式, 即可順利移植。
Unix命令大全
Linux 命令速查一. 启动,关机,登入,登出相关命令<login> 登录<logout> 登出<exit> 登出<shutdown> 停止系统<halt> 停止系统<reboot> 重启动<poweroff> 切断电源<sync> 把内存里的内容写入磁盘<lilo> 安装lilo启动管理程序<grub> 安装lilo启动管理程序二. Shell相关命令<chsh> 切换Shell<history> 显示命令履历<alias> 设置命令别名<unalias> 取消命令别名<which> 显示命令所在位置<type> 查询命令种类<echo> 显示字符串或者变量内容<set> 设置/显示Shell变量<printenv> 显示环境变量<export> 设置环境变量<env> 设置临时环境变量<unset> 释放环境变量<setenv> 设置环境变量<unsetenv> 释放环境变量<source> 执行文件当中的命令<man> 查询命令手册<info> 查询超文本命令手册<whatis> 显示命令简介<apropos> 通过关键字查询手册三. 用户管理相关命令<su> 切换到其他用户<useradd> 追加用户<adduser> 追加用户<userdel> 删除用户<usermod> 修改用户设置<chfn> 修改用户私人信息<groupadd> 追加组<groupdel> 删除组<groupmod> 修改组设置<passwd> 更改密码<whoami> 显示用户名<logname> 显示登录用户帐号<users> 显示所有登录用户信息<who> 查询登录用户信息<w> 查询登录用户信息<id> 显示指定用户的ID信息<groups> 显示指定用户的所属组<finger> 显示指定用户的个人信息<mesg> 开关与他人收发消息<write> 给其他用户发消息<wall> 给所有用户发消息<talk> 和其他用户聊天四. 系统消息相关命令<date> 显示/设置当前时间<uptime> 显示系统运行时间<arch> 显示机器的核心构架(如i386)<uname> 显示操作系统信息<tty> 显示终端名<last> 显示登录/登出在履历<lastb> 显示非法登录信息<dumpkeys> 显示当前键盘配置<loadkeys> 变更键盘配置<df> 查询磁盘使用信息<du> 查询磁盘使用信息<dmesg> 显示系统启动消息<script> 保存输入输出到文件五. 文件操作相关命令<ls> 显示文件列表<tree> 显示目录树<pwd> 显示当前路径<cd> 更改当前路径<pushd> 追加路径到目录堆栈<popd> 从目录堆栈删除路径<dirs> 显示目录堆栈的内容<mkdir> 创建路径<rmdir> 删除路径<cp> 复制文件/目录<rm> 删除文件/目录<mv> 移动文件/目录,修改文件名<chown> 更改文件/目录的所有者<chgrp> 修改文件/目录的所有组<chmod> 修改文件/目录的权限<touch> 更改文件时间<ln> 建立文件/目录链接<whereis> 显示文件存在的路径名<file> 查询文件种类<size> 查询文件大小六. 文件编辑相关命令<cat> 显示文件内容<tee> 输出到文件和屏幕<more> 分屏显示文件内容<less> 分屏显示文件内容<head> 显示文件头部内容<tail> 显示文件尾部内容<fold> 折叠显示长行<sort> 排列文件的行<cmp> 比较文件内容<diff> 显示文件差异<nkf> 更改日语文件编码<dd> 变更文件之后复制<wc> 统计文本单词数,文件大小等<split> 分割文件<paste> 以行连接文件<join> 以字段连接文件<grep> 查询文字<uniq> 过滤重复部分显示文件内容<tr> 替换文字<sed> 替换文字七. 压缩/解压缩相关命令<ar> 压缩/解压缩文件<tar> 压缩/解压缩文件<compress> 压缩/解压缩文件<uncompress> 解压缩<gzip> 压缩/解压缩文件<gunzip> 解压缩<zcat> 显示压缩文件的内容<lha> 压缩/解压缩文件<uuencode> 把二进制文件编码为文本文件<uudecode> 把经过编码的文本文件还原为二进制文件八. MS-DOS工具集[mtools]命令<mdir> 显示文件列表<mcd> 改变当前目录<mmd> 新建目录<mrd> 删除目录<mdeltree> 删除目录树<mcopy> 复制文件<mmove> 移动文件<mren> 更改文件或目录名<mattrib> 修改文件属性<mtype> 显示文件内容<mdu> 查询文件或目录大小<minfo> 显示磁盘信息<mformat> 以MS-DOS方式格式化磁盘<mlabel> 设置磁盘标签九. 控制外部设备相关命令<mount> mount上设备<umount> 解除已经mount上的设备<eject> 弹出(CD/DVD等)<fdformat> 格式化软盘<fdisk> 配置/显示硬盘分区<mkfs> 格式化磁盘分区<fsck> 检查/修复磁盘错误<lpr> 打印到打印机<lprm> 中断打印任务<lpq> 显示打印任务的状态<lpc> 管理/控制打印任务<ifconfig> 显示/设定NIC配置十. 进程及任务管理相关命令<ps> 显示正在运行的进程<jobs> 显示后台运行任务<fg> 把任务切换到前台<bg> 把任务切换到后台<kill> 中止进程或任务<killall> 中止进程或任务<wait> 等待进程或任务的结束<at> 设置定时执行任务<atq> 显示尚未执行的任务<atrm> 删除定时执行任务<batch> 在系统负荷减轻的时候执行任务<nice> 改变优先度并执行任务<nohup> 在后台执行任务,Logout之后也不退出<sleep> 休眠一定的时间十一. 网络管理相关命令<netstat> 显示当前网络连接状况<route> 显示/设置路由<host> 显示网络主机情况<hostname> 显示/设置当前主机的名字<ping> 确认和远程机器的连接情况<traceroute> 显示路由信息<rwho> 查询网上机器的登陆用户<ruptime> 查询网上机器的系统运行时间<rlogin> 登陆到远程机器<telnet> 用telnet登陆到远程机器<rsh> 给远程机器发送命令<rcp> 在远程机器之间复制文件<mail> 收取邮件<sendmail> 发送邮件<mailq> 确认邮件队列<ftp> 用ftp传输文件十一. 其他命令<cal> 显示日历<clear> 清屏<gcc> 编译C语言代码<as> 汇编<bc> 计算<rpm> Redhat的包管理<dpkg> Debian的包管理<installpkg> Slackware的包安装(删除命令则是removepkg)<XF86Setup,turboxfg,Xconfigurator> 配置 X 服务器<startx> 启动 X-Window 系统附:组合命令重定向,如$ ls -l /bin > ls-output$ more ls-output管道命令,如$ cat file1 file2 | sort | uniq经常被用于管道的命令awk, fold, grep, head, nnkf, pr, sed, sort, tail, tee, tr, uniq, wcUNIX操作命令第一章登录和退出用户在登录前,首先要向系统管理员申请一个用户注册名,不论用户从哪台计算机登录到ITPNET上都将访问相同的文件系统。
Unix程序设计实验课程作业
Unix程序设计实验课程作业
一、题目
1、题目一:利用进程通信实现聊天程序
功能:利用FIFO、消息队列或socket通信(任选一种)实现聊天程序,可以是一对一的聊天,也可以是客户机和服务器模式的聊天(单客户或多客户)加上必要的出错处理信息。
2、题目二、利用网络通信实现FTP文件下载功能
功能:利用网络通信(TCP或UDP通信)实现客户机请求服务器的文件,服务器接收请求后,检查文件存在就打开返回给客户机文件内容;如果文件不存在,返回错误信息。
加上必要的出错处理信息。
3、题目三:利用socket客户机/服务器模拟实现银行叫号功能
功能:
(1)客户机显示叫号界面,用户将输入的选择发送给服务器
(2)服务器收到客户机连接请求后,返回服务选项给客户机(可以根据用户选择将一行对应的字符串返回给客户机
(3)客户机接收到服务选项信息,在屏幕打印
(4)客户机退出,服务器继续等待新请求
可以选择并发服务器的处理模型的一种来进行处理。
任选其一,实现要求的功能
二、提交
1、调试过的源代码
2、程序文档:对程序简要说明,实现的功能,处理方式(如通信方式,并发处理等),程序结构,运行截图
三、时间
18周周五(7.10)之前,打包后以“学号+姓名”的方式命名文件,发送到指定邮箱unix_programming@。
B29-Unix-unix作业
Unix作业第一章:●练习1-4以下这些命令有何不同?$ ls junk $ echo junk$ ls/$ echo/$ ls $ echo$ ls * $ echo“$ ls ‘*’$ echo ‘*’●练习1-5解释为什么$ ls > ls.out导致ls.out被包括在名单中。
●练习1-6解释来自如下的输出$ wc temp > temp如果拼错了命令名,比如$ who > temp会发生什么?●练习1-7解释如下两者的不同$ who | sort与$ who > sort第二章:●练习2-5 练习使用chmod, 尝试各种简单的模式,如0和1。
小心不要毁坏登录目录。
●练习2-6为什么ls –l报告recipes有4条链?提示:试一下$ ls –ld /home/you为什么这是有用的信息?●练习2-7下面两者有何不同$ mv junk junk1和$ cp junk junk1$ rm junk●练习2-13你怎样判断是否一个用户已经在终端激活?第三章:●练习3-9查看一下/bin和/usr/bin目录中有多少是真正的shell文件。
可以用一条命令完成这件事吗?提示:参见file(1)。
若用文件长度作依据,准确性如何?●练习3-10如果在下列句子中,反斜杠被省略:$ echo `echo \`date\``将会得到什么结果?●练习3-11在机器上尝试$ `date`●练习3-14 试将114的here document版本与原始文件作比较,哪一个更容易维护?对一般服务性而言哪一个基础更好?●练习3-15 若diff循环被放入一个shell文件中,pick也将放入文件中吗?为什么?●练习3-17 应该怎样利用bundle传送一个目录里的所有子目录和文件?提示:shell文件可以是递归的。
第四章:●练习4-5修改older和newer,使得它们在输出中不包含参数指定的文件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《UNIX_Linux操作系统内核结构》课程报告题目1、如果几个进程竞争一个缓冲区,内核保证没有一个进程会永远睡眠等待,但并不保证不会出现一个进程一直等待得不到缓冲区的情况发生。
请重新设计算法getblk 以保证一个进程最终能用上一个缓冲区。
2、在通常的目录结构中,对目录项的搜索都是线性的。
请设计一种新的目录结构,其中各目录项是按其hash 值以某种方式排列的,对其中目录项的搜索也是按其hash值来查找的。
3、一个进程可以用“追加写(APPEND)”方式打开一个文件,这表明每次写操作都是从标识当前文件尾的字节偏移量处开始。
如果一个进程以“追加写”方式打开一个文件,并定位于文件头,会发生什么呢?4、设计一个系统调用,该系统调用将一个已存在的文件截为任意给定的大小,并说明实现方法。
5、UNIX系统V允许一个路径名分量最长达14个字符。
namei算法把一个路径名分量中多余的字节截掉。
假设保持定长目录项的目录结构,应该怎样设计目录结构和namei算法,才能允许任意长度的目录项名称?6、在UNIX的文件系统中,文件的物理存储结构是以索引方式来组织的。
如果将存储结构改为串联方式,即在每个数据块的末尾加上一个指向下一个数据块的指针,则文件系统应做哪些修改?7、如果有10个进程都要对同一个文件进行顺序地读操作,请分析比较这10个进程分别在串行运行和并行运行这两种运行模式下,哪一种的综合效率更高?8、下面的代码段创建一个具有两个进程的环。
int fd[2];pipe(fd);dup2(fd[0], STDIN_FILENO);dup2(fd[1], STDOUT_FILENO);close(fd[0]);close(fd[1]);pipe(fd);if(fork()==0)dup2(fd[1], STDOUT_FILENO);elsedup2(fd[0], STDIN_FILENO);close(fd[0]);close(fd[1]);其中dup2(oldfd, newfd)函数是把文件描述符oldfd指向的内容复制到文件描述符newfd 中,STDIN_FILENO和STDOUT_FILENO是进程的标准输入和标准输出文件描述符。
试分析其主要工作过程。
如果用此结构来建立三个进程的环,又该如何修改该程序?报告上交时间:2013年11月21日(周四)上午8:30~10:00报告上交地点:信软学院大楼西106室1、每次当进程被唤醒去争夺缓冲区时,恰好有其他更高优先级也在等待该缓冲区资源,此时该进程由于得不到缓冲区而继续睡眠等待下去,这样就会出现一个进程一直等待得不到缓冲区的情况发生。
可以用以下办法解决上述问题:当一个进程连续多次因为得不到缓冲区而睡眠等待时,使该进程以较高的优先级睡眠等待缓冲区资源的出现,当该进程再次被唤醒时,就可以争夺到缓冲区。
重新设计的getblk算法如下:算法 getblk_new输入:文件系统号块号输出: 现在能被磁盘使用的上的上了锁的缓冲区{int waitNum = 0;int max = ox01;while(没有找到缓冲区){if(块在散队列中){if(快忙){if(++waitNum > max){sleep(以较高的优先级等待“缓冲区变为空闲”事件);continue;}else{sleep(等待“缓冲区变为空闲”事件);continue;}为缓冲区标记为“忙”从空闲表上取下缓冲区;return (缓冲区);}}else{if(缓冲表上无缓冲区){if(++waitNum > max){sleep(以较高的优先级等待“任何缓冲区变为空闲”事件);continue;}else{sleep(等待“任何缓冲区变为空闲”事件);continue;}从空闲表上取下缓冲区;if(缓冲区标记着延时写){把缓冲区异步写到磁盘上;continue;}从旧的散列队列中取下缓冲区;把缓冲区投入新的散列队列;return (缓冲区);}}}}2、新的目录结构中,目录项结构如下:字节偏移量(hash值)索引结点号文件名Hash函数的关键字取文件名的第一、第二个字符的ASCII码值的和拼接第三、第四个字符的ASCII码值的和,再拼接第五、第六个字符的ASCII码值的和。
最后加上其它所有字符的ASCII码值的和。
如passwd,关键字key为:209230219(112+97,115+115,119+100)。
Hash函数如下:hash地址1=(key mod 40960) - ( (key mod 40960) mod 16)hash地址2=(key mod 4235264) - ( (key mod 4235264) mod 16)hash地址3=(key mod 4299202560) - ( (key mod 4299202560) mod 16)这三个hash函数能够保证hash地址的值是16的整数倍。
三式中的40960,4235264,4299202560分别表示直接块、一次间接块、二次间接块的存储空间的最大偏移量。
所以求得的hash地址分别映射到直接块、一次间接块、二次间接块的数据存储空间。
事实上,我们更希望多数文件目录存放在直接块中,因为读一次间接块和二次间接块需要额外的磁盘操作时间,所以,我们在设计系统时考虑的是充分利用直接块中的存储空间。
在新建文件或者目录时或者搜索数据时,先存取直接块,如果直接块中找不到所需数据或找不到合适的存取地址。
就在间接块的存储空间中搜索。
利用线性探测法和建立公共溢出区解决hash冲突。
新建一个文件或目录时,首先用计算hash地址1,通过bmap算法把这个hash地址转换成磁盘块号,同时也计算出块内偏移量。
再通过bread算法把该块读人内存,根据块内偏移量访问对应的目录项。
3、如果一个进程以“追加写”方式打开一个文件,那么定位文件读写指针到文件任何位置对文件的写操纵没有任何影响,每次写操纵之前都会将写指针定位到文件尾。
因为O_APPEND的出现实际上是为了解决以前多个进程对同一文件写操作时候,lseek 和write是分开进行的,这样在移动文件指针和写之间进程有可能被切换,从而导致文件内容被意外覆盖等等错误。
O_APPEND告诉write操作,写之前要移动文件指针到文件末尾,这成为了一个原子操作,从而不会被打断。
4、算法思想:遍历给定的要截取的大小序列,首先新建一个i节点,然后将目标文件数据块链接到新的数据块索引表中,链接的数据块的总大小等于给点的截取大小。
接着再建立i 节点、链接,直到遍历完给定的大小序列或目标文件大小为0。
算法现实如下:算法:cut输入:文件大小序列输出:无{如果目标文件索引节点未上锁,则将其上锁;for(遍历给定的要截取的大小序列size_0到size_n){if(目标文件大小为0)return;新建inode node;将目标文件数据块链接到node中的数据块索引表中(总大小等于size_i);修改目标文件大小;修改inode中相关字段;}为目标文件索引节点解锁;}5、一个目录项最多存储路径名分量的14字符,当路径名分量超过14个字符时,利用多个目录项存储,在原来的direct数据结构中增加字段short next,新的目录项结果如下:#define MAXNAMLEN 14struct direct{short d_ino; /*目录项i节点号*/char d_name [MAXNAMELEN]; /*目录项名字字符串*/short next;}当next >= 0时,next指向下一个目录项,该目录项中d_name[]存放路径分量名的下一部分,当next < 0 时,表示当前目录项中d_name[]已存放完路径分量名。
例如有一个42个字符的路径名分量,需要三个目录项d1,d2,d3存放该分量,d1.next = d2.d_ino,d2.next = d3.d_ino,d3.next = -1。
在namei算法中,仅只需在从目录块中读取目录(工作索引节点)时,添加判断目录分量是否读取完整的操纵,以保证目录分量被完整读取。
6、A.在每个数据块的末尾加上一个指针,初始为NULL。
B.将icommon表中数据块索引表指针字段改为文件的起始块号。
7、不管是并行还是串行,从微观上看,每一时刻只有一个进程对文件进行读操纵,而且这10个进程共享一个读指针,该读指针在file表中,10个进程并行读文件时,进程上下文切换比串行读时频繁,处理机时间开销较大。
但另一方面,并行读操纵时,读取的磁盘块在缓冲区中找到的可能性较大,因为该块可能被其他的进程刚刚读过,此时减少了读取磁盘的次数,特别是当文件较大时更为明显。
因为磁盘速度比磁盘I/O慢得多,因此并行读的综合效率更高。
8、程序的主要过程:首先建立一个管道(假设为pipe1),并且将标准输入输出定位到pipe1,然后再建立一个管道(假设为pipe2),创建一个新进程,此时父进程和子进程的标准输入输出都是pipe1。
把子进程的标准输入定位到pipe2,把父进程的标准输出定位到pipe2。
此时就形成两个进程的环。
建立三个进程的环,代码修改如下:int fd[2];pipe(fd); //建立管道pipe1dup2(fd[0], STDIN_FILENO); //把管道pipe1的读指针复制到标准输出dup2(fd[1], STDOUT_FILENO); //把管道pipe1的写指针复制到标准输入close(fd[0]); //关闭不再需要的管道描述符close(fd[1]);pipe(fd); //建立新管道pipe2if(fork()==0)//将新管道pipe2的写指针复制到子进程的标准输出 dup2(fd[1], STDOUT_FILENO);else{//将新管道pipe2的读指针复制到父进程的标准输入dup2(fd[0], STDIN_FILENO);/*下面是添加的代码,方法与上面类似*/close(fd[0]);close(fd[1]);pipe(fd);if(fork()==0)dup2(fd[1], STDOUT_FILENO);else{dup2(fd[0], STDIN_FILENO);}}close(fd[0]);close(fd[1]);。