Linux实验四
Linux实验手册四
#su
#关闭当前终端, 再打开一个终端
#echo $var1
#echo $var2 //应该均为空
14 环境变量的配置文件
#uname -a
#uname -r
#version='uname -r' //注意是倒引号
#lm
#rm aaa //不再提示,直接删除
#lm
#unalias lm
#alias
#lm //已经被unalias 取消, 报错
6 #cd /e<Tab>sys<Tab>c<Tab>ne<Tab>-<Tab>
8 历史记录
#history
#history 30
#上下键
#!!: 执行最近一次使用的命令;
#!n: 其中 n 为一个具体的数字,表示执行在命令历史记录中的第 n 个命令;
#!s: 其中 s 为一个字符串,表示执行命令历史记录中以该字符串开头的最近的一个命令。
10 #env 查看常见环境变量说明
#set 查看所有变量
11 环境变量的显示: echo
# echo $PATH 或者
# echo ${PATH}
12 变量的设置: 注意空格报错
# var1=“lang is $LANG”
# var2=‘lang is $LANG’ //注意区分
#ls -l [0-9]*
#ls -l [a-z]*.txt
#ls -al *.??
#ls *[a][b]*
#ls ab[!z]*
#rm -rf a*.txt
操作系统实验04 Linux 多进程编程
《操作系统》实验报告实验序号:实验四实验项目名称:实验04 Linux 多进程编程学号1207022103 姓名陈华荣专业、班网络工程实验地点实1-311 指导教师李桂森实验时间2014.10.26一、实验目的及要求1.通过本实验的学习,使学生掌握Linux多进程编程的基本方法。
2.实验内容:利用Linux多进程实现题目所要求的功能。
3.以学生自主训练为主的开放模式组织教学二、实验设备(环境)及要求PC机三、实验内容与步骤1、编写一个显示“HELLO”的c语言程序,并利用GCC编译,然后运行此程序。
(提示:若没有gcc,需先安装gcc编译程序)指令:Apt-get install updateApt-get install gccCd /home/normaluesrTouch helloworld.cVim helloeorld.c在helloworld里编辑进:#include<stdio.h>Int main(){Printf(“helloworld”);Return 0;}然后用gcc进行编译运行:或者直接2、进程的创建:编制一程序,利用系统调用fork()创建两个子进程。
程序运行时,系统中有一个父进程和两个子进程活动,分别让他们显示“A”、“B”和“C”,分析程序运行结果。
3、用ctrl+alt+F2切换到第二个终端(tty2)并使用另外一个用户登录(可利用第二个实验创建的用户登录),然后使用who命令查看用户登录情况。
用ctrl+alt+F1切换到第二个终端(tty1),修改第二步的程序,在每个进程退出前都加上一个sleep(20)的函数来延缓进程的退出,然后运行此程序,立即切换到tty2,使用ps -a命令查看系统运行的进程,观察程序创建的进程都有哪些?pid是多少?4、进程的管道通信:编制一程序,使用系统调用pipe()建立一管道,两个子进程P1和P2分别向管道各写一句话,父进程则从管道中读取出来并显示在屏幕。
Linux_实验指导书4版
嵌入式操作系统实验指导书目录实验一常用命令的使用实验二 vi编辑器实验三 shell编程(一)实验四 shell编程(二)实验五常用开发工具实验六 Linux环境编程(一)实验七 Linux环境编程(二)实验八系统及网络管理实验一常用命令的使用班级:姓名:学号:上机时间:任课教师:实验教师:实验成绩:一、实验目的1.掌握Linux的一般命令格式。
2.掌握有关文件和目录操作的常用命令。
3.掌握有关进程操作的常用命令。
4.熟练使用man命令。
二、实验任务1.正确登录和退出系统。
2.熟悉data,cal,who,echo,clear命令。
3.在用户主目录下对文件进行操作:复制一个文件、显示文件内容、查找指定内容、排序、文件比较、文件删除等。
4.对目录进行管理:创建和删除子目录、改变和显示工作目录、列出和更改文件权限、链接文件等。
5.利用man显示date,echo等命令的手册页。
三、实验注意事项实验环境与系统是共用设施,请不要在系统内做对系统或对其他用户不安全的事情。
要求每个同学登录后系统后,要在主目录(/home/student)下创建一个属于自己的子目录(以自己(拼音)名字或学号)。
以后所有工作都要在自己的目录内进行。
建议以后的实验都在同台计算机上做,这样可以保持连续性。
四、实验内容:1.登录进入系统。
开机,选择 VMware Workstation 进入,再选择 Ubuntu 登陆窗口,输入用户名: student ,输入密码: 111111 ,进入Ubuntu图形桌面环境。
2.使用简单命令:date,cal,who,echo,clear等,了解Linux命令格式。
要启动一个终端,可以选择在窗口左侧点击终端按钮。
在终端提示符下输入:date↲显示: 2015年 10月 15日星期四 08:31:50 CST 。
在终端提示符下输入:who ↲显示: student pst/1 2015-10-15 08:22(:0) 。
linux实验报告
linux实验报告实验目的:通过对Linux操作系统的实践,掌握基本的Linux命令和操作方法,了解Linux操作系统的特点和优势。
实验一:Linux环境搭建在实验一中,我们首先需要搭建Linux操作系统的环境。
根据实验指导书的要求,我们选择了Ubuntu作为实验平台。
通过下载Ubuntu镜像文件,并利用虚拟机软件创建一个虚拟机,将镜像文件安装到虚拟机中。
在安装过程中,我们需要选择合适的分区和网络配置等,并设置root用户的密码。
实验二:基本命令的使用在实验二中,我们主要学习了Linux的基本命令的使用方法。
首先,我们了解了Linux文件系统的结构,包括根目录、用户目录、系统目录等。
然后,通过命令行终端进行一系列的实践操作,比如查看文件内容、创建目录、复制文件等。
这些命令的使用不仅提高了我们的工作效率,同时也增强了对Linux操作系统的理解。
实验三:软件安装与卸载实验三主要涉及到Linux的软件安装与卸载。
我们首先学习了使用APT工具进行软件包管理,通过安装命令行界面的方式安装了一些常用的软件,比如文本编辑器、终端工具等。
此外,我们还学习了如何卸载已安装的软件包,清理不需要的文件,以保持系统的整洁性。
实验四:权限管理在实验四中,我们学习了Linux的权限管理机制。
Linux操作系统采用了基于用户和组的权限模型,通过设置文件和目录的权限,实现对文件的读、写、执行的控制。
我们通过实际操作,创建了新的用户和组,并为不同的用户和组设置了不同的权限。
这样,可以有效地保护系统的文件和数据的安全性。
实验五:网络配置与服务搭建在实验五中,我们主要学习了Linux的网络配置和服务搭建。
通过设置网络接口、IP地址和网关等参数,实现了网络的正常连接。
同时,我们还学习了一些常用的网络命令,比如ping、ssh等。
此外,我们尝试搭建了一个简单的Web服务器,通过浏览器访问,可以查看服务器上的网页。
实验六:系统监控和故障恢复在实验六中,我们学习了Linux的系统监控和故障恢复方法。
linux 基本操作 实验报告
linux 基本操作实验报告《Linux基本操作实验报告》Linux操作系统是一款开源的操作系统,具有稳定性高、安全性强等特点,因此在服务器领域得到了广泛的应用。
对于初学者来说,熟悉Linux的基本操作是非常重要的,下面我将分享一份Linux基本操作的实验报告。
实验一:登录和退出Linux系统首先,我们需要了解如何登录和退出Linux系统。
在登录界面输入用户名和密码后,我们就可以进入系统。
在系统中,我们可以使用命令“exit”来退出系统。
实验二:文件和目录操作在Linux系统中,文件和目录的操作是非常重要的。
我们可以使用命令“ls”来查看当前目录下的文件和目录,使用命令“cd”来切换目录,使用命令“mkdir”来创建新的目录,使用命令“rm”来删除文件或目录。
实验三:文件编辑在Linux系统中,我们可以使用命令行工具来编辑文件。
比较常用的编辑器有vi和nano。
我们可以使用命令“vi”或“nano”来打开文件进行编辑,然后保存并退出。
实验四:用户和权限管理Linux系统中的用户和权限管理也是非常重要的。
我们可以使用命令“useradd”来添加新用户,使用命令“passwd”来修改用户密码,使用命令“chmod”来修改文件或目录的权限。
实验五:系统管理最后,我们还可以使用一些命令来管理系统。
比如使用命令“ps”来查看当前系统进程,使用命令“top”来查看系统资源占用情况,使用命令“shutdown”来关闭系统。
通过以上实验,我们可以初步了解Linux系统的基本操作。
当然,Linux系统还有很多其他的功能和命令,需要我们不断学习和实践。
希望大家能够通过实践不断提升自己的Linux操作技能,为今后的工作和学习打下坚实的基础。
linux实验四
实验四:磁盘管理、Linux文件系统一、实验目的1.掌握使用fdisk进行硬盘分区;2.掌握Linux文件系统的创建、挂载、卸载;3.掌握Linux下使用光盘;4.掌握交换空间添加、删除。
二、实验预备内容理解相关的操作系统知识:硬盘分区、文件系统;学习课本第十章至第十一章内容三、实验具体内容及详细步骤1.使用fdisk进行硬盘分区1)显示硬盘分区信息。
2)创建和删除主分区。
3)创建扩展分区和逻辑驱动器。
4)查看并转换文件系统。
5)保存分区设置信息,并退出fdisk。
6)在非交互式界面下显示当前硬盘的分区信息(fdisk -l)。
2.逻辑卷管理1)创建LVM类型的分区:fdisk /dev/sdbp 列出当前分区表l 查看分区类型帮助信息t 转换分区类型先指定分区号,再输入分区类型代码8ep 查看是否更改成功w 保存退出2)创建物理卷:pvcreate /dev/sdb5(提示successfully created,即为成功)查看物理卷信息使用命令:pvdisplay3)创建卷组:vgcreate vgsdb5 /dev/sdb5(提示successfully created,即为成功)查询卷组信息使用命令:vgdisplay4)创建逻辑卷:lvcreate -n lvsdb5 -L 32M vgsdb5(提示“lvsdb5” created)查询逻辑卷信息使用命令:lvdisplay5)格式化逻辑卷使用lvdisplay查看逻辑卷,看到路径为:/dev/vgsdb5/lvsdb5再进行格式化:mkfs -t ext3 /dev/vgsdb5/lvsdb56)挂载逻辑卷到系统的/opt目录:mount /dev/vgsdb5/lvsdb5 /opt(成功挂载后可以使用mount命令查看系统已经挂载的文件系统情况)3.创建Linux文件系统将分区/dev/sdb5格式化为ext2文件系统:mkfs –t ext2 /dev/sdb1将分区/dev/sdb2格式化为ext3文件系统:mkfs.ext3 /dev/sdb2将分区/dev/sdb1格式化为FAT32文件系统:mkfs.vfat /dev/sdb34.挂载和卸载Linux文件系统挂载:mkdir /home/kkmount /dev/sdb1 /home/kk(使用mount或df命令查看挂载情况)卸载:umount /dev/sdb1或umount /home/kk5.Linux下使用光盘:mkdir /media/cdrommount -t iso9660 /dev/cdrom /media/cdromls /dev/cdrom(可在挂载后的目录看到光盘内容即表明正确挂载)6.查看Linux系统分区挂载情况:1)通过df命令2)通过mount–s命令3)查看/etc/mtab文件获取信息7.添加交换分区A.创建交换分区mkswap /dev/sdb2B.启用交换分区swapon /dev/sdb2C.确认已经启用交换分区cat /proc/swaps也可以用free命令查看D.如果要在系统引导时启用交换文件,编辑/etc/fstab文件添加如下内容。
linux实验四
实验四文件和目录管理一、实验目的和要求1) 掌握在Linux系统下的文件和文件系统的概念及命令;2) 掌握Linux系统下的目录操作。
二、实验内容和原理a)插入U盘,进行格式化,创建vfat文件系统;b)将/etc/passwd文件拷贝到U盘;c)查看所有磁盘的使用情况;d)卸载U盘;e)在用户主目录下创建两个目录dir1和dir2,然后将dir2目录移动到dir1中,最后删除dir2目录;f)从根目录下查找fstab文件g)将fstab文件中所有包含”ext3”的行存入f4文件。
h)将f4文件复制到dir1目录,并在dir1目录中创建/etc/fstab文件的符号链接文件fstabt-linki)将/etc/passwd按照用户的ID号进行排序并保存为用户的主目录下passwd.txtj)将/etc/X11目录归档压缩为X.tar.gz文件k)将X.tar.gz解压到dir1目录下三、实验环境l)硬件:PC机m)软件:Red Hat Enterprise linux server操作系统、虚拟机四、算法描述及实验步骤a)插入U盘,进行格式化,创建vfat文件系统;输入命令fdisk /dev/sdb对U盘进行分区输入m获得帮助输入d删除现有分区输入w保存并退出输入命令fdisk /dev/sdb对U盘进行分区创建1个分区查看写入分区表输入命令mkfs -t vfat /dev/sdb1格式化U盘b)将/etc/passwd文件拷贝到U盘;c)查看所有磁盘的使用情况;d)卸载U盘;e) (1)输入命令“ls -l”,查看当前目录中的所有文件。
(2)创建两个目录,输入命令“mkdir dirl dir2”。
(3)再次输入命令“ls -1”,确认两个目录是否成功创建。
(4)输入命令“mv dir2 dirl”,将dir2目录移动到dirl目录。
(5)输入命令“cd dirl”,切换到dirl目录,再输入“ls”命令,查看到dir2目录。
Linux实验4
实验四:Linux常用命令练习一.实验目的熟悉Linux操作环境,熟悉Linux中用户系统相关命令、基本目录、文件命令的使用方法。
二.预备知识1.获取命令帮助命令man语法:man (command)功能:查阅指定命令或资源的联机手册。
说明:man命令后直接跟需要帮助的命令所需参数,显示过程中按q退出。
例man ps2.常用的文件操作命令包括:(1) pwd功能说明:显示工作目录。
语法:pwd补充说明:执行pwd指令可得知工作目录的绝对路径名称。
(2) cd功能说明:切换目录。
语法:cd [目的目录]补充说明:cd指令可让用户在不同的目录间切换,但该用户必须拥有足够的权限进入目的目录。
(3) ls功能说明:列出目录内容。
语法:ls [-1aAcdlrR]补充说明:执行ls指令可列出目录的内容,包括文件和子目录的名称。
参数:-1 每列仅显示一个文件或目录名称。
-a 显示下所有文件和目录。
-A 显示所有文件和目录,但不显示现行目录和上层目录。
-c 以更改时间排序,显示文件和目录。
-d 显示目录名称而非其内容。
-l 使用详细格式列表。
-r 反向排序。
-R 递归处理,将指定目录下的所有文件及子目录一并处理。
(4) mkdir功能说明:建立目录语法:mkdir [-p][--help][--version][-m <目录属性>][目录名称]补充说明:mkdir可建立目录并同时设置目录的权限。
参数:-m<目录属性>或--mode<目录属性> 建立目录时同时设置目录的权限。
-p 若所要建立目录的上层目录目前尚未建立,则一并建立上层目录。
--help 显示帮助。
--verbose 执行时显示详细的信息。
--version 显示版本信息。
(5) rmdir功能说明:删除目录。
语法:rmdir [-p][--help][--verbose][--version][目录...]补充说明:当有空目录要删除时,可使用rmdir指令。
实验四 linux进程通信
2、进程的管道通信
3、信号量实现进程同步
特点
Unix早期版本
在进程间通信方面表现较弱,利用pipe来传递大量数据
Unix system V版本
由三部分组成:消息(用于进程之间传递分类的格式化数据)、共享存储器(使得不同进程通过共享彼此的虚拟空间而达到互相对共享区操作和数据通信的目的)、信号量(机制用于通信进程之间的同步控制。信号量通常与共享储存器方式一起使用。)
实验报告
姓名
学号
专业班级
课程名称
操作系统实验
实验日期
成绩
指导教师
批改日期Biblioteka 实验名称实验四linux进程通信
一、实验目的:
1、理解信号和管道的概念及实现进程间通信的原理。
2、掌握和使用消息对流实现进程间的通信。
3、掌握和使用信号量实现进程同步。
4、掌握使用共享主存实现进程间的通信。
二、实验要求:
IPC版本
Linux
完整继承了system V进程间通信IPC
三、实验内容和步骤:
1、利用信号机制实现进程软中断通信
经过以上步骤,查阅相关资料,我学习到两点知识:
1、警告与错误是两个概念,警告存在的情况下程序仍能编译通过,但有错误就不可以。
2、exit与return功能相似,但主要用于非main函数中,正常执行即返回0值。
linux实验4
实验4 重定向和管道1、实验目的:1、熟悉Linux操作系统环境2、掌握Linux的输入重定向、输出重定向和管道机制3、为后续课程及实验做准备2、实验步骤1,打开终端2,在shell提示符下输入:cat回车Hello worldBye(ctrl + d 结束)观察显示结果cat命令会读取指定文件的内容,并输出到标准输出设备上(如显示器)。
若不指定任何文件名称,或指定的文件名为"-",则cat命令从标准输入设备读取数据(如键盘),然后再把所得到的数据输出到输出设备。
3,用vi编辑器,编辑名为inputfile的文件,内容如下:Hi,This is a inputfile保存并退出文件⑴输入命令.⑵按A a I i O o(其中一个)进入编辑模式,输入文本.文本输入完毕后,按Esc 退出编辑模式,进入命令模式,按: 进入末行模式.输入wq 进行保存.⑶最终结果如下图所示.4,在shell提示符下输入:cat < inputfile理解输入重定向输入重定向主要用于改变一个命令的输入源.如图可以看出,命令的输入来源文本文件,而不是键盘.5,在shell提示符下输入:ls观察显示信息ls指令可列出目录的内容,包括文件和子目录的名称。
6,在shell提示符下输入:ls > ls.Out7,查看文件ls.out内容,理解输出重定向输出重定向主要用于改变一个命令的输出源,将命令的“输出”送到文件而不是显示器. 如上图可以看出ls的命令输出的方式是文本,而不再是显示器.8,用vi编辑器,编辑文件名为students的文件,内容如下:zhangsanlisiwangwutomjackylisizhangsanmaliujim保存并退出文件⑴输入命令.⑵按A a I i O o(其中一个)进入编辑模式,输入文本.文本输入完毕后,按Esc 退出编辑模式,进入命令模式,按: 进入末行模式.输入wq 进行保存.⑶最终结果如下图所示.9,在shell提示符下输入:sort students > students_sort 使用排序命令sort对文件students排序,并使用输出重定向符合,将排序后的内容重定向到文件students_sort⑴输入命令.使用了输出重定向,所以不在显示器显示.⑵结果如下图所示,学生的姓名都按顺序排列了.10,在shell提示符下输入:cat students_sort观察并分析显示结果第9题重定向了student_sort 的输出.把“输出”送到文件而不是显示器.而cat命令会读取指定文件的内容,并输出到标准输出设备上(如显示器)。
Linux实验报告(实验四)shell编程实验
Linux实验报告(实验四)shell编程实验实验四 shell编程实验(二)班级:姓名:学号:上机时间:年月日任课教师:实验教师:实验成绩:一、实验目的综合Linux常用命令和vi编辑器的使用,熟练掌握shell脚本编程。
二、实验注意事项实验室内的实验环境与系统是共用设施,请不要在系统内做对系统或对其他用户不安全的事情。
要求每个同学登录后系统后,要在自己的家目录下创建一个属于自己的子目录(以自己(拼音)名字或学号)。
以后所有工作都要在自己的目录内进行。
建议以后的实验都在同台计算机上做,这样可以保持连续性。
三、实验内容1. 编写一个脚本,求斐波那契数列的前10项及总和。
num1=1num2=1echo -n “$num1+$num2”sum=2for((i=1;i<=8;i++))dotmp=$(expr $num1 + $num2)echo -n “+$tmp”((num1=num2))((num2=tmp))sum=$(expr $sum + $tmp)doneecho “=$sum”2.编写一个脚本,求一个数的逆序。
echo -n please input num:read numecho -n The num iswhile [ $num -gt 0 ]dosd=$(($num % 10))echo -n "$sd"num=$(($num/10))doneecho3.设计一个Shell程序,在用户主目录下建立一个userdata目录,在此目录下再建立5个目录,即user1~user5,并设置每个目录的权限,其中其他用户的权限为:读;文件所有者的权限为:读、写、执行;文件所有者所在组的权限为:读、执行。
(注意:最后删除自己所建立的目录,恢复原样,以便后面同学做此实验)mkdir -m 754 /home/userdatai=1temp=/home/userdata/userwhile[ $i -le 5 ]domkdir -m 754 $temp$ilet”i=i+1”#done4.用Shell编程,判断一文件是不是普通文件,如果是将其拷贝到/home/student/test 目录下,用命令查看test目录内容,最后再删除test目录。
操作系统 实验4:文件管理实验报告
一、实验题目:文件管理实验--Linux下的文件管理二、实验目的和要求:实验目的:(1)加深对文件、目录、文件系统等概念的理解。
(2)掌握 Linux 文件系统的目录结构。
(3)掌握有关 Linux 文件系统操作的常用命令。
(4)了解有关文件安全性方面的知识。
实验要求:(1)正确使用文件管理命令,能熟练地对文件进行浏览、拷贝、移动和删除。
(2)能熟练地确定和更改工作目录,查看内容和文件属性,创建和删除目录。
(3)正确地理解文件的权限,并能进行相应更改。
(4)理解文件的类型及其表示形式。
(5)理解文件名的表示形式,在模式匹配中能正确使用通配符。
三、实验内容:(1)使用pwd,cd,ls等命令浏览文件系统。
(2)使用cat,cp,mv,head,tail,rm等命令查看你的文件。
(3)使用ln命令进行文件的硬连接和符号连接。
软中断通信(4)使用find,grep命令进行文件查找和模式匹配。
(5)使用chmod命令修改文件的权限。
四、实验步骤:(说明:对本实验涉及的教材中的相关内容进行归纳总结,只需简要说明即可。
)1、用root账号登录到终端,使用pwd命令查看当前目录2、用cd命令将当前目录切换到“/”目录下3、使用ls明令查看Linux的目录结构,了解各目录存放与系统相关的文件14、使用 cat、more、head、tail等命令显示 /etc/inittab文件内容5、使用grep 命令在/etc/inittab 文件中查询“initdefault”字符串26、使用find 命令查找 /目录下所有以main 开头的文件7、使用 cp 命令将/etc目录下的inittab文件拷贝到/root目录下8、使用 sort 和uniq 命令对 /root目录下的inittab文件排序后输出其结果39、统计inittab文件的字节数、行数、字数10、用mkdir命令在/root目录下创建一个test目录11、用cp命令将/etc目录及其下所有内容复制到test目录下12、使用cd和ls查看/root/test/etc 下的内容413、将test目录改名为test214、删除test2五、实验总结:通过本次实验,让我懂得了怎样创建文件以及文件管理命令的使用,对Linux的掌握和了解进一步加深。
中南大学linux程序设计环境实验四
实验4 Linux 高级程序设计1、实验目的(1) 了解Linux操作系统下应用程序开发流程(2) 掌握gun工具链的使用(3) 了解Linux高级编程技巧(例如IPC机制、系统调用等)2、实验内容(1) 编写一个简单的C语言程序,编写Makefile文件。
了解编译过程,并用gdb进行调试。
(2) 编写一段程序,适用系统调用fork( )创建两个新的子进程,此程序运行使系统中有三个活动进程存在。
控制让一个进程在屏幕上显示一个字符:父进程显示“a”,子进程分别显示字符“b”和字符“c”。
试观察屏幕上的显示结果,并对输出结果进行分析。
在实验报告中写出说明和分析。
(3) 编写一段程序实现父进程创建一个子进程,通过系统调用使子进程和父进程执行不同的任务。
(提示:利用system(), exec系列函数)试思考,怎样实现进程间的同步?(4) 编写一段C程序完成:父进程创建一个子进程,父进程对子进程设置一个报警信号,然后父进程等待子进程的结束,如果此时报警信号先到,就终止子进程。
3、实验要求(1) 写出源程序,并编译运行(2) 详细记录程序调试及运行结果4、实验思路及过程(1)makefile文件:main.c文件:1.c文件:2.c文件:-o写成-c,函数库导入不正确:(2)出现acb的结果:p1=fork()会创建一个新的进程,父进程遇到p2=fork()创建又一个新的进程,此时,父进程运行完毕输出a,p2=fork()创建的子进程运行完毕输出c,最后p1=fork()创建的子进程运行完毕输出b;出现abc的结果:p1=fork()会创建一个新的进程,父进程遇到p2=fork()创建又一个新的进程,此时,父进程运行完毕输出a,p1=fork()创建的子进程运行完毕输出b,最后p2=fork()创建的子进程运行完毕输出c;出现bca的结果:p1=fork()会创建一个新的子进程,运行完毕输出b,父进程遇到p2=fork()创建又一个新的子进程,运行完毕输出c,最后父进程运行完毕输出a;出现bac的结果:p1=fork()会创建一个新的子进程,运行完毕输出b,父进程遇到p2=fork()创建又一个新的子进程,父进程运行完毕输出a,最后子进程运行完毕输出c;(3)system是用shell来调用程序=fork+exec+waitpid,而exec是直接让你的程序代替原来的程序运行。
LINUX实验四报告
一、实验目的
掌握Linux系统中常用命令的作用和命令中各选项的作用。
二、实验环境
安装了fedora17系统的计算机一台
三、实验过程(实验步骤、记录、数据、分析、结果)
1.查看当前系统下用户Shell定义的环境变量的值。
2.定义变量AK的值为200,并将其显示在频幕上。
3.定义变量AM的值为100,并使用test命令语句比较其值是否大于150。
4.创建一个简单的Shell程序,其功能为显示计算机主机名以及显示系统日期和时间。
5.使用for语句创建一个shell程序,其功能为1+2+3+4+5+……n.
6.使用until语句创建一个shell程序,其功能为计算1~10的平方。
7.
按步骤依次写出命令包括运行结果(可截屏)
1.查看当前系统下用户Shell定义的环境变量的值。
2.定义变量AK的值为200,并将其显示在频幕上。
3.定义变量AM的值为100,并使用test命令语句比较其值是否大于150。
4.创建一个简单的Shell程序,其功能为显示计算机主机名以及显示系统日期和时间。
5.使用for语句创建一个shell程序,其功能为1+2+3+4+5+……n.
6.使用until语句创建一个shell程序,其功能为计算1~10的平方。
四、实验总结
(掌握了什么知识,实验中遇到的问题及解决方法)
在实验中,我掌握了创建shell程序的语法:#!/bin/bash和chmod u+x 文件名
也了解了shell定义的环境变量,并且掌握了test语句的用法,数字的比较,循环控制中的for语句、until语句的用法。
实验4 实验名Linux常见命令。
Linux实验4
实验内容
有一个简单的工程,其目录和文件 结构如下所述:工程的最高层目录 test中有一个hello.c文件和lib、 include两个子目录。在lib目录中有 一个print.c文件,在include目录中 有一个print.h文件。 (1)为该工程编写automake的输入 配置脚本Makefile.am,configure.ac (2)请上机练习使用Gnu Autotools 工具为该工程创建Makefile文件, 并编译该工程。
掌握gcc编译器的使用
掌握gdb调试器的使用
掌握make工程管理器的使用 理解Makefile文件的格式,掌握 Makefile文件的编写规则. 掌握automake autoconfigure等工具
的用法.
实验设备
硬件:PC机 软件: Red Hat linux 9.2 一台
#endif
实验内容: print.c源代码
#include “print.h” void print(char *string) { printf(“%s”,string); }
实验内容: hello.c的源代码
#include “print.h” int main(void) { print(“Hello,the Linux world!\n”); return 0; }
实验内容: print.h源代码
#ifndef PRINT_H #define PRINT_H
#include <stdio.h> void print(char *string);
Linux实验
实验4、Linux C/C++编程工具的
使用
实验目的 实验设备 实验内容 实验报告上交时间: 实验报告要求:应包括各个 Makefile.am文件的具体内容、使用 autotools配置、执行make工具的生 成可执行文件、运行该可执行文件 具体过程的拷屏。
作业6 全练习 Linux下用户和组的管理
实验四Linux下用户和组的管理一.实验目的:1.掌握在Linux系统下利用命令方式实现用户和组的管理;2.掌握利用Linux-conf进行用户和组的管理;二.实验内容:1.用户和组的管理;2.磁盘限额。
三.实验步骤:1.用户的管理切换用户:su - user01●创建一个新用户user01,设置其主目录为/home/user01:#useradd –d /home/user01 -m user01创建一个新用户user02,设置其主目录为/home/user02:#useradd –d /home/user02 -m user02●查看/etc/passwd文件的最后一行,看看是如何记录的。
# cat /etc/passwd●查看文件/etc/shadow文件的最后一行,看看是如何记录的。
cat /etc/shadow●给用户user01设置密码:#passwd user01。
给用户user02设置密码:#passwd user02。
●再次查看文件/etc/shadow文件的最后一行,看看有什么变化。
cat /etc/passwd●使用user01用户登录系统,看能否登录成功。
#su –user01。
●锁定用户user01:#passwd -l user01。
切换到用户user02 # su – user02再登录user01#su – user01查看能否登录(普通用户间切换才能检查是否被root锁定密码,root可以任意进入普通用户)●查看文件/etc/shadow文件的最后一行,看看有什么变化。
cat /etc/shadow●再次使用user01用户登录系统,看能否登录成功。
●解除对用户user01的锁定:#passwd -u user01●更改用户user01的帐户名为user02:#usermod –l user02 user01。
●查看/etc/passwd文件的最后一行,看看有什么变化。
Linux实验4-Linux文件系统-目录和文件管理
实验报告课程名称: Linux操作系统实验名称:实验4、Linux文件系统-目录和文件管理学生姓名:班级学号学院(系):指导教师:实验时间:年月日实验成绩:实验四、Linux文件系统-目录和文件管理一、实验要求(1)掌握目录和文件管理的操作命令;(2)掌握文件权限的修改方法。
(3)掌握文件链接的方法。
二、实验内容和实验步骤【操作要求1】查看Linux系统常见的目录。
【操作步骤】输入命令:ls,查看Linux系统常见的目录,截图如下:【操作要求2】显示当前目录下文件类型。
【操作步骤】输入命令:ls –l|more,截图如下:说明:●“-”:表示普通文件●“d”:表示目录文件●“c”:表示字符设备文件●“b”:表示块设备文件●“l”:表示符号链接文件【操作要求3】查看当前目录下所有文件类型【操作步骤】输入命令:file *,截图如下:【操作要求4】先创建两个新目录dir1和dir2,然后将dir2目录移到dir1目录中,最后删除dir2目录。
【操作步骤】(1)以普通用户user登陆字符界面,输入命令:pwd,当前目录为用户的主目录:/home/user。
(2)输入命令:ls –l,查看当前目录中的所有文件。
(3)创建两个目录,输入命令:mkdir dir{1,2}。
(4)输入命令:ls –l,确认两个目录创建成功。
以上4个步骤截图如下:(5)输入命令:mv dir2 dir1,将dir2目录移动到dir1目录。
(6)输入命令:cd dir1,切换dir1目录,再输入:ls命令,查看到dir2目录。
截图如下:(7)删除dir2目录,输入命令:rm –rf dir2。
【操作要求5】查找profile文件。
【操作步骤】(1)切换用户为超级用户,输入命令:su -,并输入密码。
(2)输入命令:find /etc -name profile, 截图如下:(3) 使用exit命令,退出超级用户身份。
【操作要求6】将/etc/profile文件中所有包含“HOSTNAME”的行存入f4文件,并修改f4文件的权限,让所有用户都可以读写。
实验4 Linux 文件权限管理实验
第四部分:其他人权限
对于文件/etc/passwd,其他人可读、不可写,不可执行
对于文件/etc/shadow,其他人不可读、不可写,不可执行
5.尝试向没有写权限的文件写入数据,如图1-5:
图1-5
命令如下:
echo "test" >> /etc/passwd
写标记位:即文件(目录)可以被写,记为w
执行标记位:即文件可以被执行或目录可以被访问,记为x
因为系统有能力支持多用户,在每一方面系统都会做出谁能读、写和执行的资源权力限制。这些权限以三个八位元的方式储存着,一个是表示文件所属者,一个是表示文件所属群组,一个是表示其他人。这些数字以下列方式表示,文件(目录)的每种所属关系均从下表中取一种以组合表示:
真实用户ID (uid)是拥有或启动进程的用户UID。生效UID (euid)是进程以其身份运行的用户ID。
举例来说,passwd工具通常是以发起修改密码的用户身份启动,也就是说其进程的真实用户ID是那个用户的ID;但是,由于需要修改密码数据库,它会以root用户作为生效用户ID的身份运行。这样,普通的非特权用户就可以修改口令,而不是看到“Permission Denied”错误了。
重复上面的图1-11所示步骤,以普通帐号sample创建文件abcd;
重复上面的图1-12所示步骤,到以普通帐号test尝试删除/sample/abcd时,发现这次删除不了了,如图1-14:
图1-14
S位(suid / sgid)
S位分为SUID和SGID,分别作用于属主和属组的权限位。
uid和euid
Linux内核最初是为英特尔386微处理器设计的。现在Linux内核支持从个人电脑到大型主机甚至包括嵌入式系统在内的各种硬件设备。
linux实验四
%MEM进程使用内存的百分比
TIME进程使用CPU的时间
COMMAND被执行的命令行
(2)输入“k”,选择PID号。
(3)输入“r”,选择PID号。如图五:
图5
3、用ps命令察看系统当前的进程,并把系统当前的进程保存到文件/tmp/process中。如图六:
答:命令:#find /etc –size +15k –a –size -20k
结果如图十一:
10、将1题中text中的love文件移动到tmp下并改名为lv,将lv拷贝到text下,回到tmp中删除lv文件。
答:如图十二:
图8
图9
图10
图11
图12
五、实验心得:
通过这次上机实验,我了解到了vim编辑器的使用;初步掌握了如何监视系统运行状态,查看、删除进程的正确方法;以及命令在后台运行的用法以及前后台运行的切换命令;与文件操作及目录操作相关命令。但是在第三题时保存文件时遇到了麻烦,在和同学的交流、讨论下,顺利的完成了实验。我深刻的体会到了在上机中能力得到了提高。
some say love, it is a razor
some say love, it is a hunger
i say love it is a flower
it's the heart afraid of breaking
用vi创建一个以自己名字(拼音首字母)命名的文件,将love中的内容读入到vi所创建文件中,使用什么命令?然后全文复制一份接续在末尾,使用什么命令?将其中的i全部替换为u,退出并保存在text中,使用什么命令?
答:
(1)#cd /tmp进入tmp下,输入命令:mkdir text创建text目录。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
常熟理工学院《Linux程序设计》实验报告 2016 — 2017 学年第 1 学期
专业计算机科学与技术
班级 2班
学号 Z09314222
姓名张磊
实验地点 N6-113
指导教师刘在德
计算机科学与工程学院
实验要求
1.每次实验前,认真复习与本次实验有关的教学内容,认真预习本次实验内容。
2.按照实验要求认真完成实验,把实验内容详细记入实验报告。
3.每一次新实验,实验报告另起一页。
4.报告封面要求(1)信息填写完整;(2)下划线右对齐,力求做到美观大方。
5.打印实验报告(包括封面及本页),装订成册。
6.严谨抄袭,如果有n人实验报告内容雷同,每人得分为总分除以n。
实验四 Shell程序设计(一)(四号黑体)
【一】实验目的(小四黑体)
1.掌握vi文本编辑器的定制
2.掌握vi编辑器的基本命令
3.掌握Shell脚本环境变量的引用
【二】实验内容(小四黑体)
1.调用apt-get命令升级vim编辑器:sudo apt-get install vim
2.把vim编辑器配置文件vimrc拷贝到当前用户家目录下,利用vi编辑器打开它,在末尾添加
syntax on //语法
set nu //行号
set tabstop=4 //tab键
set softtabstop=4
set shiftwidth=4
set autoindent //自动缩进
set cindent //C语言缩进
set cursorline //标示当前行
set ruler //显示光标行列标尺
set nobackup
另存为隐藏文件.vimrc
3.启动vi编辑器,建立文件1,输入如下文本
One little, two little, three little Indians
Four little, five little, six little Indians
Seven little, eight little, nine little Indians
Ten little Indian boys
存盘退出。
要求先输入第一行,复制它,粘贴到第二行,然后修改第二行;再复制前两行,粘贴到后面,再修改三、四行。
4.启动vi编辑器,建立文件2,编辑如下
Title: A song of Indian boys
存盘(不退出)。
5.在文件2中,调用“:sp 文件1”命令,进入多窗口编辑。
按Ctrl+w,然后按j或者k键在上下窗口之间切换光标。
然后调用“:-r 文件1”命令,把文件1内容全文复制到文件2,存盘(不退出)。
6.关闭文件1(现在只剩下文件2),在第一行中查找第一个little替换为big;第二和第三个little替换为small,然后撤销对该行的操作。
全文查找,把所有的little 替换为big;删除第一行的单词Tilte,并在Indian 和boys之间添加big。
存盘(不退出)。
7.在当前文件中调用:!command,执行shell命令,比如date、cal等,验证Shell
和vi的交互。
然后执行:r !echo “Edited by `logname`”,另存为文件2并退出。
8.启动vi,键入如下脚本
#! /bin/bash
#This is a shell script to say hello.
echo Hello World!
echo -n “Today is ”
date "+%Y %B %d %A“
保存为hello,退出vi,调用. hello执行此脚本,观看运行结果。
再次执行. hello > mydoc.txt。
察看是否有mydoc.txt结果生成。
调用cat -n mydoc | more,测试管道并察看结果。
9.启动vi,新建一个script文件,显示各环境变量的值。
具体可包括LOGNAME、HOSTNAME、HOME、PWD、UID、PATH等。
(提示:显示变量的值为echo “$变量名”,比如echo “$LOGNAME”。
【三】实验步骤(小四黑体)
1.调用apt-get命令升级vim编辑器:sudo apt-get install vim
2.把vim编辑器配置文件vimrc拷贝到当前用户家目录下,利用vi编辑器打开它,在末尾添加
syntax on //语法
set nu //行号
set tabstop=4 //tab键
set softtabstop=4
set shiftwidth=4
set autoindent //自动缩进
set cindent //C语言缩进
set cursorline //标示当前行
set ruler //显示光标行列标尺
set nobackup
另存为隐藏文件.vimrc
3.启动vi编辑器,建立文件1,输入如下文本
One little, two little, three little Indians
Four little, five little, six little Indians
Seven little, eight little, nine little Indians
Ten little Indian boys
存盘退出。
要求先输入第一行,复制它,粘贴到第二行,然后修改第二行;再复制前两行,粘贴到后面,再修改三、四行。
4.启动vi编辑器,建立文件2,编辑如下
Title: A song of Indian boys
存盘(不退出)。
5.在文件2中,调用“:sp 文件1”命令,进入多窗口编辑。
按Ctrl+w,然后按j或者k键在上下窗口之间切换光标。
然后调用“:-r 文件1”命令,把文件1内容全文复制到文件2,存盘(不退出)。
6.关闭文件1(现在只剩下文件2),在第一行中查找第一个little替换为big;第二和第三个little替换为small,然后撤销对该行的操作。
全文查找,把所有的little
替换为big;删除第一行的单词Tilte,并在Indian 和boys之间添加big。
存盘(不退出)。
7.在当前文件中调用:!command,执行shell命令,比如date、cal等,验证Shell 和vi的交互。
然后执行:r !echo “Edited by `logname`”,另存为文件2并退出。
8.启动vi,键入如下脚本
#! /bin/bash
#This is a shell script to say hello.
echo Hello World!
echo -n “Today is ”
date "+%Y %B %d %A“
保存为hello,退出vi,调用. hello执行此脚本,观看运行结果。
再次执行. hello > mydoc.txt。
察看是否有mydoc.txt结果生成。
调用cat -n mydoc | more,测试管道并察看结果。
9.启动vi,新建一个script文件,显示各环境变量的值。
具体可包括LOGNAME、HOSTNAME、HOME、PWD、UID、PATH等。
(提示:显示变量的值为echo “$变量名”,比如echo “$LOGNAME”。
【四】实验结果(小四黑体)
1、升级
2、设置个性化
3、4、5、6输入内容,以及复制粘贴替换操作
7、插入一行代码
8、运行. hello
9、显示各环境变量的值
【五】实验结果分析(小四黑体)
实验结果按照实验报告的步骤预期结果已经全部达到。
本次实验的收获包括两个方面:一个方面、在编写代码的时候应该更细心一些,这样就可以避免一些不必要的错误也不用浪费时间去检查。
另一个方面就是关于vim指令方面要多多熟悉,比如说,执行脚本,需要“vi . 脚本名”中的空格就不能遗忘,这属于常识性错误,一次之后不可再犯。