Unix操作系统实验报告_第1页
Unix操作系统实验报告_第2页
Unix操作系统实验报告_第3页
Unix操作系统实验报告_第4页
Unix操作系统实验报告_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Unix 操作系统实验报告 计算机科学与技术学院 实验一 实验一 LinuxLinux 基本命令基本命令 一 实验目的一 实验目的 掌握 linux 平台下的基本命令 40 个 二 实验说明二 实验说明 在介绍所有的命令之前 先介绍一下 Linux 的在线帮助 man 在 Linux 下 当你要查找一个命令的用法的 你可以通过 man 命令名 来源得命令的详细说 明 因为每个 Linux 都有一份 man 文档 所以介绍命令的时候我们只是简直介 绍一下命令的学用选项 如果想查看命令的详细说明 请自己看 man 下面是 man 各小节的内容 1 用户命令 2 系统调用 3 库函数 4 特殊文件 设备和网络接口 5 文件格式 6 游戏和演示 7 系统环境 表格和宏 8 系统管理和相关命令 三 命令说明三 命令说明 1 apropos 依据所给关键字查找相关的命令和系统调用 格式 apropos keyword 例 查找与 ftp 相关的命令和系统调用 apropos ftp 注 类似的命令有 man k man k 其实就是执行 apropos 2 at 在某一特定时间执行指定的命令 格式 at V q 队列 f 文件 m time 选项说明 选项说明 V 显示标准的错误输出 f 可将作业存在一个文件中 用这个选项指定文件 例如一个 shell 文 件 q 指定队列名称 默认为 c m 执行后给用户发邮件 time 指定开始执行的时间 时间格式为 HH MM 日期格式 MM DD YY 或MM DD YY 或 MMDDYY 下面的例子演示了在 2004 年 3 月 11 日 21 点 34 分执行一个 at 命令 at 21 34 03 11 04 执行这条命令后会得到一条 warning commands will be executed using in order a SHELL b login shell c bin sh 然后就出现 at 的提示符 这时你就可以输入你 要执行的命令了 结束后按 Ctrl d 你就可以去喝茶了 到时间后系统 会自动执行它 相关配置文件 相关配置文件 etc at allow 如果这个文件存在 仅允许这个文件里列出的用户使用 at etc at deny 如果这个文件存在 该文件列出的用户都不能使用 at 服 务 当 这个文件为空时 任何用户都可以使用 at 这是默认配置 当运行 at 命令时 先检查 etc at allow 文件是否存在 如果不存在 再检查 etc at deny 文件是否存在 不管这两个文件是不是存在 root 用户都可以执行 at 命令 相关命令 相关命令 atq 列出用户待执行的任务 除了 root 用户的外 每个用户的任务都 将被列出 atrm 通过任务号删除 at 任务 batch 当系统负载允许的时候执行命令 比如当负载低于 0 8 或者一个 指定的值时 指行 atrun 3 cat 查看文件内容 从键盘读取数据 合并文件等 格式 cat b A E T n s v 文件名 选项说明 选项说明 b 不显示文件中的空行 A 相当于 v E T vET E 在文件的每一行行尾加上 字符 T 将文件中的 Tab 键用字符 I 来显示 n 在文件的每行前面显示行号 s 将连续的多个空行用一个空行来显示 v 显示除 Tab 和 Enter 之外的所有字符 下面的命令演示了如何显示 file 文件中的行号 cat n file 4 chmod 修改文件权限 格式 chmod 选项 文件或目录名 选项说明 选项说明 u 文件所有者 g 文件所属组 o 其它用户 增加权限 取消权限 赋给权限 a 所有用户 r 读权限 w 写权限 x 执行权限 下面的命令演示了如何使所有用户都可以读写 file 文件 chmod a rw file 5 chown 改变文件所有者 格式 chown R c 用户名 组名 文件或目录名 选项说明 选项说明 c 文件属主改变时显示说明 R r 改变目录下的文件及其子目录下所有文件的属主 下面的命令演示了如何改变 dir 目录下的文件及其子目录下的文件的属 主为 bugboy chown R bugboy dir 6 cp 复制文件 格式 cp 选项 源文件名 目标文件名 选项说明 选项说明 R 复制整个目录 f 删除己存在的目标文件 i 使用 f 遇到删除文件时给出提示 下面的命令演示了如何把 file 文件复制到当前用户的根目录下 cp file 7 crontab 制定计划任务 crontab 通过 cron 服务使用户能够在指定的时间执行某些程序 它通过 cron 复制 创建列出 删除 crontab 文件来管理用户权限和计划 命令格式 crontab u username l e r 选项说明选项说明 e 编辑当前用户的 crontab 文件 或者当一个 crontab 文件不存在时 创建一个 crontab 文件 编辑并保存后文件被当前用户的 crontab 安装 l 列出当前 crontab 文件内容 r 删除当前用户的 crontab 文件 u username 指定用户名 crontab 文件格式 crontab 文件有六个域 每个域之间用空格或者 Tab 键分开 前五个域 都是整数或者 格式如下 括号里面是取值范围 分钟 0 59 小时 0 23 日 1 31 月 1 12 星期 0 6 要执行的命令 其中星期取值 0 指星期日 其它取值递推 前面五个域 每个域都可以 用 表示所有合法的值 或者用一个列表列出合法的值 各值之间用 隔开 也可以用 表示一个范围 下面的命令演示每个星期 星期日到星期四晚上 23 30 分关机 30 23 0 4 halt p 下面的例子示出每星期星期一到星期五 3 15 分清除用户目录下的 core 文件 15 3 1 5 find HOME name core 2 dev null xargs rm f 下面是一个 crontab 文件的例子 请用 crontab e 命令编辑 SHELL bin bash PATH usr bin bin usr sbin sbin MAILTO bugboy HOME home bugboy 30 23 0 4 halt p 前面四行定义环境变量 最后一行是执行的命令 你可以定义要执行多 个命令 如果你的 crontab 文件已经正确编辑 保存退出后会得到一条 crontab installing new crontab 的信息 相关文件 相关文件 etc cron d cron allow 如果这个文件存在 文件中包含的用户名 可以使用 crontab etc cron d cron deny 如果这个文件存在 文件中包含的用户不 能使用 crontab 你可以自己编辑这两个文件 注意每个用户名占一行 8 df 查看磁盘剩余空间 格式 df t x k p a m filename 选项说明 选项说明 t 只输出类型列在 fstype 中的文件系统 x 只输出类型没有列在 fstype 中的文件系统 k 显示空间以 K 为单位 m 显示空间以 M 为单位 a 将空间为 0 的文件系统也输出 filename 指定要查看的文件的大小 9 fdisk sfdisk 查看硬盘分区信息 10 格式 fdisk l u device 11 fdisk s partition 选项说明 选项说明 u 列出分区表的时候以扇区的大小代替柱面大小 l 列出给定设备的分区表 如果没有给定设备 则列出 proc partions 中 设备的分区表 s partition 给出 partition 分区的大小 以块为单位 12 file 识别文件类型 格式 file 文件名 13 find 查找文件 格式 find 路径 匹配表达示 其中匹配表达示有几种类型 其中匹配表达示有几种类型 name filename 查找指定名称的文件 user username 查找指定用户名的文件 group grpname 查找指定级名的文件 print 显示查找的结果 size n 查找大小为 n 块的文件 一块等于 512 字节 符号 n 表示查 找大小大于 n 块的文件 符号 nc 表示查找大小为 n 个字符的文件 同 样的也有符号 nc inum n 查找索引结点号 i node 为 n 的文件 atime n 查找 n 天前被访问的文件 n 表示超过 n 天前被访问的文件 n 表示不超过 n 天前被访问的文件 mtime n 类似于 atime 但是检查的是文件内容被修改的时间 ctime n 类似于 atime 但检查的是文件索引结点被改变的时间 perm mode 查找与给定权限匹配的文件 必须以八进制的形式给出访 问权限 newer file 查找比指定文件新的文件 即最后修改时间离现在较近 exec command 对匹配文件执行 command 命令 command 后用了个大 括号包括文件名 command 必须以反斜杠和一个分号结尾 ok command 执行 command 的时候请求用户确认 其它与 exec 相同 例 查找当前目录下所有以 bak结尾的文件 并删除它们 find name bak exec rm 注 这里 bak 必须要用单引号或者双引号引起来 或者可以写成 bak 14 head 输出文件内容前面的部分 格式 head 选项 文件 选项说明 选项说明 n 输出文件的前 n 行 默认输出 10 行 c 指定输出文件的大小 单位为 byte 15 kill 终止进程 格式 kill s p a PID 选项说明 选项说明 s 指明发送给进程的信号 例如 9 强行终止 默认发送 TERM 信号 p 显示进程的 ID 不发送信号 a 终止所有进程 0 给所有在当前进程组中的进程发送信号 1 给所有进程号大于 1 的进程发送信号 16 less 交互式显示文件内容 格式 less 文件名 说明 说明 可以通过 C v Page Down C b Page Up 向后向前翻页 C p C n 向后 向前移一行 这个命令和后面要说的 more 命令都可以按 q 键退出 17 ln 在文件之间建立链接 格式 ln b d F f i n s v 源文件 目录文 件或目录 选项说明 选项说明 b 为删除的文件建立备份 d 允许 root 用户建立硬链接 F 与 b 相同 f 强行删除目标文件 i 在删除文件时给出提示 n 当目标文件是目录的符号链接时 替代该符号链接 s 用符号链接代替硬链接 建立符号链接 v 输出被链接文件的文件名 18 ls 用于浏览目录 查看当前目录下的文件和文件名 格式 ls 选项 选项说明 选项说明 a 显示所有文件 包括隐藏文件 l 显示文件的详细信息 k 显示文件大小 以 K 为单位 color 显示文件时用不同颜色加以区别文件类型 d 将根目录作为文件显示 19 more 一页一页地显示文件内容 格式 more 选项 文件名 选项说明 选项说明 n 由第 n 行开始显示 str 由含有 str 字符串的地方开始显示 20 mount 加载文件系统 格式 mount 磁盘或分区的设备文件 载入点 选项 选项说明 选项说明 t 文件系统类型 fat32 为 vfat o 选项 常用的选项有 codepage iocharset 对于中文 codepage 936 iocharset gb2312 loop 挂载 ISO 文件时用 举个例子 挂载 dev hda5 到 mnt wind 目录下并且目录支持中文 命令 如下 mount t vfat dev hda5 mnt wind o codepage 936 iocharset gb2312 21 mv 重命名文件或移动文件 格式 mv b f i u v 源文件 目标文件或文件夹 选项说明 选项说明 b 为源文件作备份 f 文件重命名时强制覆盖己有文件 i 覆盖文件时给出提示 u 目标文件比源文件新时不覆盖 v 移动文件时给出相应的提示 22 oggenc 压缩音乐文件为 ogg 格式 格式 oggenc 文件名 把 wav 文件压缩为 ogg 格式 oggenc wav 同等条件下 ogg 会比 mp3 获得较好的音乐效果 23 ps 查看进程状态 格式 ps 选项 选项说明 选项说明 e A 列出所有进程 u 选择有效的用户 ID p 选择指定终端下的进程 C 选择指定的文件名 f 列出所有详细信息 l 按长格式显示 j 按 job 格式显示 x 选择没有控制终端的进程 24 quota 显示磁盘的使用情况 一般用户可以查看自己使用磁盘的权限 格式 quota g u v p 用户名或组名 选项说明 选项说明 g 显示用户所在组使用磁盘的权限 u 显示用户自己使用磁盘的权限 p 使显示信息简洁化 25 rename 批量修改文件名 格式 rename from to file 选项说明 选项说明 from 源字符 to 目标字符 file 要改名的文件 下面的命令演示了把所有文件的后辍由 rm 改为 rmvb rename rm rmvb 下面的命令把所有文件名中的大写改为小写 rename tr A Z a z 26 rpm redhat 软件包管理工具 格式 rpm 选项 文件名 软件包名 选项说明 选项说明 version 获得 rpm 程序的版本信息 vv 获得详细的帮助信息 v 打印冗长的信息 常与 i 选项合用 获得安装进度 i 安装软件包 U 升级软件包 如果没有旧版的软件包就安装它 F 更新软件包 当有旧的软件包的时候 force 相当于 replacepkgs repalcefiles oldpackage nodigest 不验证软件包的独立性 nosignature 不验证软件包或者页眉签名 nodeps 不检查软件包的安装路径 oldpackage 用新软件包替换旧软件包 prefix PATH 指定软件包的安装路径 relocate OLDPATH NEWPATH 把原来安装在 OLDPATH 下的软件 包重新安装到 NEWPATH 去 replacefiles 安装软件包 即使它们替换掉其它的文件 replacepkgs 替换掉已经安装的同名软件包 e erase 软件包名 删除软件包 allmatches 删除软件包的所有版本 q 查询已经安装的软件包 a 选择所有软件包 h 当解开软件包时 打印 50 个标记 通常与 iv 选项一起用 特别说明 特别说明 在删除软件包时 软件包的名称不等于安装时的文件名 通常一个 rpm 包由软件包名称 版本号 发行号 发行平台 后辍构成 比如有个文件名 为bugboy 1 01 1 i386 rpm 那么它的软件包名称是bugboy 版本号是 1 0 1 发行号是1 发行平台是intel 386 27 rm 删除文件或者目录 格式 rm d i r v f 文件名或目录名 选项说明 选项说明 d 使用这个选项后 rm 大体想当于 unlink i 删除每个文件时给用户提示 r 删除整个目录 包括文件和子目录 v 删除每个文件时给出提示 f 强制删除 并且不给提示 28 sox 转换音频文件 格式 sox 选项 from 选项 to 选项说明 选项说明 t 文件格式 r 采样频率 例 把 file1 wav 转换成 file1 au 文件 sox file1 wav file1 au 把 file1 wav 转换成 file1 voc 文件 并把采样频率由 10000 Hz 降为 5000 Hz sox r 10000 file1 wav r 5000 file1 voc 减小文件噪音 让文件通过低通滤波器 sox file1 wav file1 voc lowp 2200 注 对于一些没有许可授权的文件格式 sox 不支持 29 su 改变当前用户的 ID 30 tail 输出文件内容后面的部分 格式 tail 选项 文件名 选项说明 选项说明 n 只显示后面的 n 行 f 动太显示 常用于跟踪消息文件 31 tar 解压或压缩文件 格式 tar 选项 文件 文件 1 目录 目录 1 选项说明 选项说明 A 将一个 tar 文件追加到一个存档中 c 生成一个新的存档文件 delete 从存档中删除 r 将文件添加到一个存档的末尾 l 列出一个存档的内容 u 仅将些存档中内容较新的文件添加到存档中 x 从存档中解压缩文件 v 详细地列出处理过的文件的信息 z 用 gzip 来处理文件 remove files 将文件解压之后就删除它们 Z 用 compress 来处理文件 注意 选项中必须包含有 A c d r t u x 中的一个或多个 32 top 查看 CPU 的使用率 修改进程运行优先级 格式 top 选项 选项说明 选项说明 d delay 指定刷新的秒数 p pid 查看指定 pid 的 CPU 使用率 默认情况下进程按 CPU 使用率排序 可按 PID N 时限 A 常驻内存 使用率 M 时间 T 和 CPU 使用率 P 来排序 33 type 查看一个命令所在路径 格式 type command 例 查找 ls 命令所在路径 type ls 34 umount 卸载系统 格式 umount 磁盘或分区的设备文件 也可以是载入点 35 useradd 添加用户或更新新创建用户的默认信息 格式 useradd 选项 选项说明 选项说明 c comment 描述新用户帐号 通常为用户全名 d home dir 设置用户主目录 默认值为用户的登录名 并放在 home 目录下 D 创建新帐号后保存为新帐号设置的默认信息 e expire date 用 MM DD YYYY 格式设置帐号过期日期 f inactivity 设置口令失效时间 该值为 0 使口令失效后帐号立即失效 为 1 使该选项失效 g 设置基本组 k skel dir 设置框架目录 该目录包含用户的初始配置文件 创建用户 时该目录下的文件都被复制到用户主目录下 m 自动创建用户主目录 并把框架目录 默认为 etc skel 下的文件复制 到用户主目录下 M 不创建用户主目录 r 允许保留的系统帐号使用用户 ID 创建一个新帐号 s shell 指定用户的登录 shell u user id 设置用户 ID 例 useradd m g users G Wheel student s bin sh c Yan Dingcheng bugboy 例用 usermod 修改用户帐号时各选项与 useradd 命令相似 36 userdel 删除用户帐号 格式 userdel username 选项说明 选项说明 r 删除帐号时连同帐号主目录一起删除 注意 删除用户帐号时非用户主目录下的用户文件并不会被删除 管理 员必须以 find 命令搜索删除这些文件 下面这条命令删除 bugboy 用户 的所有文件 find user bugboy exec rm 37 whatis 查看可以使用的 man page 和命令的基本功能介绍 例 whatis top 38 whereis 定位可执行文件 源代码文件 帮助文件在文件系统中的位 置 格式 whereis bmsu BMS 目录名 f 文件名 选项说明 选项说明 b 定位可执行文件 m 定位帮助文件 s 定位源代码文件 u 搜索默认路径下除可执行文件 源代码文件 帮助文件以外的其它 文件 B 指定搜索可执行文件的路径 M 指定搜索帮助文件的路径 S 指定搜索源代码文件的路径 39 w 查看登录用户和他们正在做什么 格式 w hsfV user 选项说明 选项说明 h 不打印信息头 s 使用短格式显示信息 f 打印用户来源 V 显示版本信息 40 who 查看当前用户的便当情况 格式 who i u m 选项说明 选项说明 i 显示用户的活动状况 u 与 i 相同 m 显示用户自身的情况 四 补充说明四 补充说明 本次实验很难完成所有命令的操作 建议参考 Linux 命令大全 修改版 掌握 linux 平台下的所有命令 五 实验结果五 实验结果 六 实验体会六 实验体会 经过本次实验 我对 linux 的命令有了一定的了解 使我使用 linux 系统更 加的方便 为下次 shell 编程打下了一定的基础 实验二 实验二 shellshell 编程编程 一 实验目的一 实验目的 熟练掌握 Shell Script 编程 加深对 linux 系统的理解 二 实验要求二 实验要求 1 知道如何执行 shell 程序 2 在 shell 脚本中要体现条件控制 如 if 结构和条件分支 3 在 shell 脚本中要体现循环 for while 和 until 循环 4 掌握 shell 程序的调试 三 三 ShellShell 脚本举例脚本举例 1 赶走一些你不希望进入的用户 while true do kill 9 ps aux grep bigman awk print 2 done 2 一个简单的目录菜单 bin bash while true do echo List Directory 1 echo Change Directory 2 echo Edit File 3 echo Remove File 4 echo Exit Menu 5 read choice case choice in 1 ls 2 echo Enter target directory read dir cd dir 3 echo Enter file name read file vi file 4 echo Enter file name read file rm file 5 break esac done 3 函数调用 bin bash function func echo 1 echo 2 return 1 func Hello function 4 Shell 脚本的感染 for file in do if test f file then if test x file then if test w file then cp file file head n 15 0 file cat file file fi fi fi done 四 实验结果四 实验结果 五 实验体会五 实验体会 经过本次实验 我对 shell 脚本编程有了一定的了解 但是了解的还是很少 以后一定要在这方面多多加强才行 实验三 进程控制实验三 进程控制 一 实验目的一 实验目的 了解与进程控制相关的各种系统调用 加深对进程的状态变迁与进程调度的 理解 二 实验要求二 实验要求 1 掌握进程的创建 fork 系统调用的原理 2 掌握 exec 系统调用的原理 3 掌握 exit 系统调用的原理 4 掌握 wait 系统调用的原理 三 代码范例三 代码范例 1 Fork main int pid printf Just 1 process now n printf Calling fork n pid fork if pid 0 子进程 printf I m the child n else if pid 0 父进程 printf I m the parent n else print fork failed n print Program end n 2 exec 调用 main int pid printf Just 1 process now n printf Calling fork n pid fork If pid 0 子进程 printf I m the child n execl bin ls ls 1 fork test c 0 perror exec error exit 1 子进程终止 else if pid 0 父进程 printf I m the parent n else pid 0 fork 失败 printf fork failed n wait 0 printf programe end n 父进程等待进程终止 3 wait 调用 include main int i j status i fork if i 0 子进程 execlp ysh ysh c expr sh 1st 2st 3rd 4th NULL 执行失败 错误返回 perror exec error exit 5 wait 父进程接收子进程返回状态度 printf status returned xH n status printf that is x in exit n status 8 四 实验结果四 实验结果 五 实验体会 五 实验体会 由于这次是用 C 环境来做的 所以相对而言比较得心应手 但是对于进程 的编程还是遇到了不少问题的的 经过不停的调试和努力之后还是顺利的完成 了此次任务 实验四 网络编程实验四 网络编程 一一 实验目的实验目的 了解与 linux 下 socket 编程相关的各种系统调用 加深对 tcp udp 协议的 理解 二二 实验要求实验要求 1 掌握 linux 下 socket 编程相关的各种系统调用 socket bind connect listen accept read recvfrom write sendto close 2 理解 tcp 与 udp 通讯机制的区别 三三 代码范例代码范例 1 一个简单的 TCP Server include include include include include include include include define MYPORT 3490 监听端口 define BACKLOG 10 listen 的请求接收队列长度 void main int sockfd new fd 监听端口 数据端口 struct sockaddr in my addr 自身的地址信息 struct sockaddr in their addr 连接对方的地址信息 int sin size if sockfd socket AF INET SOCK STREAM

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论