文档库 最新最全的文档下载
当前位置:文档库 › Linux程序设计上机指导书3:Linux进程控制

Linux程序设计上机指导书3:Linux进程控制

Linux程序设计上机指导书3:Linux进程控制
Linux程序设计上机指导书3:Linux进程控制

上机三:Linux进程控制

1.目的

(1)掌握系统调用fork(),exex(),exit()等实现进程创建;

(2)掌握进程的终止方式(return、exit、_exit、abort);

(3)掌握僵尸进程的产生和避免,以及wait,waitpid的使用;

(4)了解守护进程的创建。

2.内容

主要上机分析代码文件。

systemtest.c

6-3.c

6-4.c

6-8.c

6-9.c

其他略。

3.步骤

1)Linux进程的创建

创建进程可以采用几种方式。可以执行一个程序(这会导致新进程的创建),也可以在程序内调用一个fork 或exec来创建新进程。fork 调用会导致创建一个子进程,而exec 调用则会用新程序代替当前进程上下文。exec系列函数并不创建新进程,调用exec前后的进程ID是相同的。

exec函数的主要工作是清除父进程的可执行代码映像,用新程序的代码覆盖调用exec的进程代码。如果exec执行成功,进程将从新程序的main函数入口开始执行。调用exec后,

除进程ID保持不变外,还有下列进程属性也保持不变。

(1)进程的父进程ID。

(2)实际用户ID和实际用户组ID。

(3)进程组ID、会话ID和控制终端。

(4)定时器的剩余时间。

(5)当前工作目录及根目录。

(6)文件创建掩码UMASK。

(7)进程的信号掩码。

与exec系统调用不同,system将外部可执行程序加载执行完毕后继续返回调用进程。

【例6.3】设计一个程序,用fork函数创建一个子进程,在子进程中,要求显示子进程

【步骤1】设计编辑源程序代码。

[root@localhost root]#vi 6-3.c

【步骤2】用gcc编译程序。

[root@localhost root]#gcc 6-3.c –o 6-3

【步骤3】运行程序。

编译成功后,执行6-3,此时系统会出现运行结果,根据result的值,先显示Linux系统分配给子进程的进程号(PID)和父进程号(PPID),接着运行ls程序,显示当前目录下的文件信息。再等待10秒钟后,显示父进程的进程号(PID)和父进程号(PPID)。

【步骤4】在6-3.c代码中改变:

execl(“/bin/ls”,”ls”,”-l”,0); /*调用ls程序,显示当前目录下的文件信息*/

替换为:

printf("执行前的进程号(PID)是:%d\n",getpid()); /*显示输出进程号*/

printf("执行前的父进程号(PPID)是:%d\n",getppid());/*显示输出父进程号*/

execv(“6-1”, NULL); /*调用6-1程序*/

执行后观察进程的PID和PPID是否有改变。

2)Linux进程的终止

(1) 正常终止:

(a) 在main函数内执行return语句,这等效于调用exit。

(b) 调用exit函数。此函数由ANSIC定义,其操作包括调用各终止处理程序,然后关闭所有标准I/O流等。

(c) 调用_exit系统调用函数,此函数由exit调用。

(2) 异常终止:

(a) 调用abort 。

(b) 由一个信号终止。

exit, _exit, _Exit 都是进程终止函数。

abort产生SIGABRT 信号。非正常退出,即在程序碰到灾难性错误时强制退出。由于是非正常退出,因此不会做其它任何操作。

return与exit的区别

在进程操作中exit是结束当前进程或程序并把控制权返回给调用该程序或者进程的进程即父进程并告诉父进程该当前进程的运行状态,而return是从当前函数返回,如果是在main 函数中,main函数结束时隐式地调用exit函数,自然也就结束了当前进程。

return是语言级别的,它表示了调用堆栈的返回;而exit是系统调用级别的,它表示了一个进程的结束。exit函数是退出应用程序,并将应用程序的一个状态返回给OS,这个状态标识了应用程序的一些运行信息。

在main函数里面return(0)和exit(0)是一样的,子函数用return返回;而子进程用exit退出,调用exit时要调用一段终止处理程序,然后关闭所有I/O流。

3)Linux的僵尸进程(wait/waitpid的使用)

僵尸进程是指的父进程已经退出,父进程没有处理子进程的退出信息(包括子进程的返回值和其他的一些东西),使得已退出的子进程就成为僵尸进程Defunct ("zombie")。僵尸进程只是在process table里有一个记录,没有占用其他的资源,除非系统的进程个数的限制已经快超过了,zombie进程不会有更多的坏处。

通过在父进程里增加一个wait/waitpid可以解决僵尸进程问题。一般来说,当父进程fork()一个子进程后,它必须用wait() 或者waitpid() 等待子进程退出。正是这个wait() 动作完全清除子进程退出后的信息。

【例题】设计一个程序,要求用户可以选择是否创建子进程,子进程模仿思科(Cisco)1912交换机的开机界面,以命令行的方式让用户选择进入,父进程判断子进程是否正常终止。

fun[0]=display0;

fun[1]=display1;

fun[2]=display2;

printf("1.创建子进程\n2.不创建子进程\n请输入您的选择:");

scanf("%d",&select);

if(select==1) /*如果用户输入1,创建进程*/

{

result=fork(); /*调用fork函数创建进程,返回值存在变量result中*/

if(result==-1)

{

perror("创建进程出错");

exit(1);

}

}

if (result==0) /*子进程*/

{

printf("这是子进程(进程号:%d,父进程号:%d): ",getpid(),getppid());

printf("进入思科(Cisco)1912交换机开机界面。\n ");

printf("1 user(s) now active on Management Console.\n");

printf("\tUser Interface Menu\n");

printf("\t[0] Menus\n");

printf("\t[1] Command Line\n");

printf("\t[2] IP Configuration\n");

printf("Enter Selection:");

scanf("%d",&num); /*运用函数指针,运行相应的子程序*/

if(num>=0&&num<=2)

(*fun[num])();

exit(0);

}

else

{

waitpid(result,&status,0); /*父进程调用waitpid函数,消除僵尸进程*/

printf("这是父进程(进程号:%d,父进程号:%d)\n ",getpid(),getppid());

if(WIFEXITED(status)==0)

printf("子进程非正常终止,子进程终止状态:%d\n", WIFEXITED(status));

else

printf("子进程正常终止,子进程终止状态:%d\n", WIFEXITED(status));

exit(0);

}

}

/*子程序部分*/

void display0()

{

【步骤1】:设计编辑源程序代码

[root@localhost root]#vim 6-8.c

【步骤2】:用gcc编译程序

[root@localhost root]#gcc 6-8.c –o 6-8

【步骤3】:运行程序

[root@localhost root]#./6-8

1.创建子进程

2.不创建子进程

请输入您的选择:2

这是父进程(进程号:5028,父进程号:4739)

子进程非正常终止,子进程终止状态:0

@再次运行程序

[root@localhost root]#./6-8

1.创建子进程

2.不创建子进程

请输入您的选择:1

这是子进程(进程号:5044,父进程号:5043): 进入思科(Cisco)1912交换机开机界面。

1 user(s) now active on Management Console.

User Interface Menu

[0] Menus

[1] Command Line

[2] IP Configuration

Enter Selection:0

您选择进入了菜单模式

这是父进程(进程号:5043,父进程号:4739)

子进程正常终止,子进程终止状态:1

【步骤4】:修改程序

试着不用waitpid函数,如下所示:

//waitpid(result,&status,0); /*父进程调用waitpid函数,消除僵尸进程*/

再次运行程序

[root@localhost root]#./6-8

1.创建子进程

2.不复创建子程

请输入您的选择:1

这是子进程(进程号:5067,父进程号:5064): 进入思科(Cisco)1912交换机开机界面。

1 user(s) now active on Management Console.

User Interface Menu

[0] Menus

[1] Command Line

[2] IP Configuration

Enter Selection:这是父进程(进程号:5064,父进程号:4739)

子进程非正常终止,子进程终止状态:0

2)Linux守护进程

守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。

守护进程的特性:(1)守护进程最重要的特性是后台运行。(2)守护进程必须与其运行前的环境隔离开来。这些环境包括未关闭的文件描述符,控制终端,会话和进程组,工作目录以及文件创建掩码等。这些环境通常是守护进程从执行它的父进程(特别是shell)中继承下来的。(3)守护进程的启动方式有其特殊之处。它可以在Linux系统启动时从启动脚本/etc/rc.d中启动,也可以由作业规划进程crond启动,还可以由用户终端(通常是shell)执行。

编写守护进程的要点:

(1)创建子进程,终止父进程

(2)在子进程中创建新会话

(3)当前工作目录换成其他的路径,如“/”或“/tmp”等

(4)把文件创建掩码设置为0

(5)关闭文件描述符

【例】设计两段程序,主程序6-9.c和初始化程序init.c。要求主程序每隔10秒钟向/tmp 目录中的日志6-9.log报告运行状态。初始化程序中的init_daemon函数负责生成守护进程。

分析把生成守护进程的部分写成独立的函数init_daemon,放在程序init.c中,方便调用,程序init.c中要编写的是前面守护进程的五步。主程序先调用init_daemon函数,使得主程序运行后成为守护进程,接着主程序用while语句无限循环,每隔10秒钟往6-9.log文件中写入一行文字和当前时间。

while(1) /*无限循环,每隔10秒钟向6-9.log写入运行状态*/

{

sleep(10); /*睡眠10秒钟*/

if((fp=fopen("6-9.log",”a+”)) >=0)/*打开6-9.log文件,若没有此文件,创建它*/

{

t=time(0);

fprintf(fp,"守护进程还在运行,时间是:%s",asctime(localtime(&t)) );

fclose(fp);

}

}

}

/*初始化程序init.c程序代码如下:

init.c程序:生成守护进程*/

#include

#include

#include

#include

#include

#include

void init_daemon(void)

{

pid_t child1,child2;

int i;

child1=fork();

if(child1>0) /*(1)创建子进程,终止父进程*/

exit(0); /*这是子进程,后台继续执行*/ else if(child1< 0)

{

perror("创建子进程失败"); /*fork失败,退出*/

exit(1);

}

setsid(); /*(2)在子进程中创建新会话*/

chdir("/tmp"); /*(3)改变工作目录到"/tmp"*/

umask(0); /*(4)重设文件创建掩码*/

for(i=0;i< NOFILE;++i) /*(5)关闭文件描述符*/

close(i);

return;

}

【步骤1】:设计编辑源程序代码

[root@localhost root]#vim 6-9.c

[root@localhost root]#vim init.c

【步骤2】:用gcc编译程序

[root@localhost root]#gcc 6-9.c init.c –o 6-9

【步骤3】:运行程序

编译成功后,执行可执行文件6-9,程序运行后,没有任何提示,等待一段时间后,查看一下6-9.log文件中有没有文字写入,输入“tail -6 /tmp/6-9.log”,显示6-9.log文件中的最后6行,从时间上看,说明守护进程在暗地里每隔10秒写入一串字符,如下所示:[root@localhost root]#./6-9

[root@localhost root]#tail -6 /tmp/6-9.log

守护进程还在运行,时间是:Fri Oct 21 14:30:12 2011

守护进程还在运行,时间是:Fri Oct 21 14:30:22 2011

守护进程还在运行,时间是:Fri Oct 21 14:30:32 2011

守护进程还在运行,时间是:Fri Oct 21 14:30:42 2011

守护进程还在运行,时间是:Fri Oct 21 14:30:52 2011

可见,6-9确实一直在运行,而且看到“?”,结合Linux环境下进程的知识,知道确实有了一个守护进程。结束此守护进程可用kill命令,如kill 5108撤销PID为5108的进程6-9。

4. 验收要求

1)掌握fork进程创建函数的使用特点。

a)解释fork、exec后父进程与子进程的PID、PPID分别有何特点。

b)能用ps查看进程状态。

2)掌握进程退出的几种方式。

a)return、exit等的异同。

3)掌握Linux僵尸进程的特点及wait/waitpid函数的使用。

a)掌握僵尸进程的作用。

b)如何体现子进程与父进程迸发执行的效果,并且子进程退出后父进程才退出。

c)利用wait/waitpid来获取子进程的返回信息。

d)能用ps查看进程状态。

4)了解Linux守护进程的特点及编写模式

a)守护进程的使用特点

b)守护进程的编写要点

c)会话的含义及setsid的作用

linux进程控制 实验报告

长安大学 操作系统实验报告 实验课程:操作系统 实验名称:linux进程控制 学院:信息学院 专业:软件工程 学号:2406090106 姓名:刘建 日期:2012-5-09

一、实验目的 熟悉进程的创建过程,了解系统调用函数fork() 和execl()。 二、实验内容 1、阅读实例代码fork1,并编辑、编译、运行,记录程序的运行结果,尝试给出合理的解释,查阅有关资料,掌握系统调用fork( )的用法,返回值的意义。 2、阅读实例代码fork2,并编辑、编译、运行,记录程序的运行结果,尝试给出合理的解释,查阅有关资料,掌握在程序中运行一个操作系统命令和运行一个程序的方法。 3、修改fork2,使之能把运行的命令和程序作为参数传给fork2。 三、设计思想 1、程序框架

pid = -1 pid = 0pid> 0 2、用到的文件系统调用函数 fork() 和execl() 四、调试过程 1、测试数据设计 (1)fork1 命名程序1: 编写程序1:

编译程序1: 运行程序1: (2)fork2

编写程序2: 运行程序2:

(3)修改fork2 编写修改程序2: 修改后的运行结果: 2、测试结果分析 (1)对于程序1:因为系统调用fork()函数是一次调用两次返回值,而且先生成子进程还是父进程是不确定的,所以第一次执行生成子进程的时候返回的pid = 0,判断pid!=-1,所以输出了I’m the child. I’m the parent. 第二次,执行父进程的时候,返回的是子进程的进程号pid> 0,即pid的值仍然不为-1,所以又输出了一次I’m the child. I’m the parent。 (2)对于程序2:第一次调用fork()函数时,由于执行的是子进程还是父进程是随机的,所以第一次对父进程返回的是子进程的进程号(大于0),即pid> 0,所以输出I’m the parent. Program end.当第二次执行子进程时返回值是0,即pid = 0,所以输出I’m the child. 并调用了execl()函数,查看了指定路径中的文件。

Linux 系统课程设计报告

Linux 系统课程设计报告 专业班级: 学号: 姓名: 同组成员: 2016年6月2日星期四

序论实验要求 实验目的 了解Linux内核源代码的目录结构及各目录的相关内容。 了解Linux内核各配置选项内容和作用。 掌握Linux内核配置文件的作用。 掌握Linux内核的编译过程。 掌握将新增内核代码加入到Linux内核结构中的方法。 实验指引 尽管目前Linux 2.6版本内核已经增加了很多对ARM体系甚至是S3C2440 CPU 的支持,但仍然需要对内核作一些小的修改来适应我们的开发板,并且需要重新配置、编译和重新生成新的内核映像。本实验从软硬件准备到下载到开发板等一系列连贯的操作来进行嵌入式Linux内核的移植。本实验的内核版本为2.6.29.1。 第一章Linux内核基础知识 1.1Linux版本 Linux主要的版本定义为“[主].[次].[发布].[修改]”的样式,次版本为奇数表示此版本为开发中版本,次版本为偶数表示此版本为稳定版本。 Linux内核的版本号可以从源代码的顶层目录下的Makefile中看到,比如2.6.29.1内核的Makefile中: VERSION = 2 PATCHLEVEL = 6 SUBLEVEL = 29 EXTRA VERSION = .1 其中的“VERSION”和“PATCHLEVEL”组成主版本号,比如 2.4、2.5、2.6等,稳定版本的德主版本号用偶数表示(比如2.6的内核),开发中的版本号用奇数表示(比如2.5),它是下一个稳定版本内核的前身。“SUBLEVEL”称为次版本号,它不分奇偶,顺序递增,每隔1~2个月发布一个稳定版本。“EXTRAVERSION”称为扩展版本号,它不分奇偶,顺序递增,每周发布几次扩展本版号。 1.2什么是标准内核 按照资料上的习惯说法,标准内核(或称基础内核)就是指主要在https://www.wendangku.net/doc/a03290243.html,/维护和获取的内核,实际上它也有平台属性的。这些linux

Linux实验指导书

Linux程序设计 实验指导书 计算机应用系 2012年11月

实验一:Linux常用命令及编程环境 1.实验相关知识简述 Unix/Linux环境下使用C语言程序开发的项目主要经历设计、开发、调试、集成、部署和维护几个阶段。目前典型的开发环境,主要使用vi、emacs、gedit等文字编辑工具完成源代码的编辑工作;通过指定不同的GCC编译器编译选项指定编译结果,根据编译器提示改正程序中的语法错误,最终生成符合目标要求的可执行二进制文件;当可执行文件执行结果与预期结果不一致时,使用GDB调试器跟踪程序执行过程,查看中间变量,改正源程序中存在的逻辑错误。在大型项目管理中,由于文件较多,整个编译过程费时较长,安装、调试难度较大。为解决手工管理效率低下的问题,引入Make工具,将项目编译、安装、维护等工作以脚本的形式组织在Makefile中,从而简化项目维护成本。手工编写Makefile脚本难度较大且不利于统一规范,推荐使用Autotools工具集直接生成。本实验仅设置手工编辑、编译Linux C源代码,生成可执行文件并调试。 GNU CC(简称为GCC)是GNU 项目中符合ANSI C 标准的编译系统,能够编译用C、C++和Object C 等语言编写的源程序。GCC也可理解为一个工具集合,包含多个编译相关工具,如gcc编译C语言源程序,g++编译C++语言源程序,ld链接器等。在编译C语言程序时,可直接使用gcc指令通过配置不同的参数选项达到指定GCC工具集的目的。 GCC的常用选项如表1.1所示 表1.1 GCC常用选项 功能选项描述 与编译相关的GCC 选项-c 只是编译不链接,生成目标文件“.o” -S 只是编译不汇编,生成汇编代码 -E 只进行预编译,不做其他处理 -g 在可执行程序中包含标准调试信息 -o file 把输出文件输出到file 里 -v 打印出编译器内部编译各过程的命令行信息和编译器的版本-I dir 在头文件的搜索路径列表中添加dir 目录 -L dir 在库文件的搜索路径列表中添加dir 目录 -static 链接静态库 -llibrary 连接名为library 的库文件 报警与出错相关的-ansi 支持符合ANSI 标准的C 程序 -pedantic 允许发出ANSI C 标准所列的全部警告信息

linux实验项目 进程控制操作

重庆电力高等专科学校 实 验 报 告 书 实验名称:Linux文件命令学院:信息工程学院 指导老师:黄泽伟 班级:软件1311 学号:201303100243 姓名:周贵波

实验项目进程控制操作 一、实验目的 1.了解进程的概念。 2.熟悉Linux的前台与后台进程控制操作。 3.掌握利用进程监控工具来维护系统的正常运行。 二、实验环境 安装了Red Hat Linux9.0和windows虚拟机系统的计算机一台。 三、实验内容 1.Linux的前台与后台进程控制操作。 2.系统监视器(system monitor)的使用和系统维护。 四、实验步骤 1.进程的前台工作方式 1)yes ok ←┘ 终端窗口显示___ok___,此时键盘能否输入其它命令____不能___,为什么? 2)按键:Ctrl+Z,暂停一个前台进程的运行,并转为挂起进程。 3)jobs ←┘记录下看到的结果_____yes ok_________________。 4)fg %1 ←┘作用:把挂起进程转为前台进程执行; 5)再按键:Ctrl+Z 作用与2)相同; 6)jobs ←┘记录下看到的结果________yes ok______________。 7)bg %1 ←┘作用:重新运行挂起进程,但以后台方式运行; 8)此时能否再按键:Ctrl+Z暂停一个后台进程的运行?____不能__,

键盘能否输入其它命令__不能_____,为什么? 9)用鼠标点击,关闭终端窗口。 2.进程的后台工作方式 除上面把前台进程转到后台进程的过程外,一般在shell提示符下,输入的命令后加上&,即以后台方式运行命令。再次进入终端方式。 1)xclock & ←┘后台进程1,记录其时钟的时间___16:40____ xcalc & ←┘后台进程2 find / -name ?*.jpg‘–print > templist & ←┘后台进程3 2)jobs ←┘有几个后台进程:__2______,记录显示结果: xclock xcalc & ps ←┘记录下看到的结果: 4036 pts/0 00:00:00 bash 4061 pts/0 00:00:00 xcalc 4063 pts/0 00:00:00 ps 3)fg %1 ←┘将时钟进程转到前台运行。 4)按键:Ctrl+Z, 将时钟进程挂起,记录时钟的时间___16:50______。 jobs ←┘观察显示结果____xcalc &________________。 回顾上述操作,经过二~三分钟后,看图形时钟有走动吗?____否___。 5)bg %1 ←┘ 将挂起的时钟进程转到后运行,现在再观察时钟是否会有变化,为什么? 有后台继续运行 jobs ←┘ kill %2 ←┘杀死计算器进程,看计算器是否消失__否______。 6)ps ←┘ 观察屏幕显示,记录时钟(xclock)进程的进程号pid=__________。 7)kill ←┘ pid为xclock的进程号,作用__newline____________。 试比较与上述步骤5)中的kill命令的区别。 8)ls –l ←┘是否有templist文件? ____否____。 9)rm templist ←┘删除临时文件。

2011180021-Linux操作系统-课程设计报告-基于Linux的进程调度模拟程序

河南中医学院 《linux操作系统》课程设计报告 题目:基于Linux的进程调度模拟程序 所在院系:信息技术学院 专业年级:2011级计算机科学与技术完成学生:2011180021 郭姗 指导教师:阮晓龙 完成日期:201X 年06 月22 日 目录 1. 课程设计题目概述3 2. 研究内容与目的4 3. 研究方法5 4. 研究报告6 5. 测试报告/实验报告7 6. 课题研究结论8 7. 总结9

1、课程设计题目概述 随着Linux系统的逐渐推广,它被越来越多的计算机用户所了解和应用. Linux是一个多任务的操作系统,也就是说,在同一个时间内,可以有多个进程同时执行。如果读者对计算机硬件体系有一定了解的话,会知道我们大家常用的单CPU计算机实际上在一个时间片断内只能执行一条指令,那么Linux是如何实现多进程同时执行的呢?原来Linux使用了一种称为"进程调度(process scheduling)"的手段,首先,为每个进程指派一定的运行时间,这个时间通常很短,短到以毫秒为单位,然后依照某种规则,从众多进程中挑选一个投入运行,其他的进程暂时等待,当正在运行的那个进程时间耗尽,或执行完毕退出,或因某种原因暂停,Linux就会重新进行调度,挑选下一个进程投入运行。因为每个进程占用的时间片都很短,在我们使用者的角度来看,就好像多个进程同时运行一样了。本文就是对进程调度进行研究、实验的。 本文首先对Linux系统进行了简要的介绍, 然后介绍了进程管理的相关理论知识。其次,又介绍最高优先数优先的调度算法(即把处理机分配给优先数最高的进程)、先来先服务算法的相关知识,并对进程调度进行最高优先数优先的调度算法和先来先服务算法模拟实验,并对比分析两种算法的优缺点,从而加深对进程概念和进程调度过程/算法的理解 设计目的:在多道程序和多任务系统中,系统内同时处于就绪状态的进程可能有若干个。也就是说能运行的进程数大于处理机个数。为了使系统中的进程能有条不紊地工作,必须选用某种调度策略,选择某一进程占用处理机。使得系统中的进程能够有条不紊的运行,同时提高处理机的利用率以及系统的性能。所以设计模拟进程调度算法(最高优先数优先的调度算法、先来先服务算法),以巩固和加深处理进程的概念,并且分析这两种算法的优缺点。关键词:linux 进程调度调度算法

Linux程序设计上机指导书3:Linux进程控制

上机三:Linux进程控制 1.目的 (1)掌握系统调用fork(),exex(),exit()等实现进程创建; (2)掌握进程的终止方式(return、exit、_exit、abort); (3)掌握僵尸进程的产生和避免,以及wait,waitpid的使用; (4)了解守护进程的创建。 2.内容 主要上机分析代码文件。 systemtest.c 6-3.c 6-4.c 6-8.c 6-9.c 其他略。 3.步骤 1)Linux进程的创建 创建进程可以采用几种方式。可以执行一个程序(这会导致新进程的创建),也可以在程序内调用一个fork 或exec来创建新进程。fork 调用会导致创建一个子进程,而exec 调用则会用新程序代替当前进程上下文。exec系列函数并不创建新进程,调用exec前后的进程ID是相同的。

exec函数的主要工作是清除父进程的可执行代码映像,用新程序的代码覆盖调用exec 的进程代码。如果exec执行成功,进程将从新程序的main函数入口开始执行。调用exec 后,除进程ID保持不变外,还有下列进程属性也保持不变。 (1)进程的父进程ID。 (2)实际用户ID和实际用户组ID。 (3)进程组ID、会话ID和控制终端。 (4)定时器的剩余时间。 (5)当前工作目录及根目录。 (6)文件创建掩码UMASK。 (7)进程的信号掩码。 与exec系统调用不同,system将外部可执行程序加载执行完毕后继续返回调用进程。 【例6.3】设计一个程序,用fork函数创建一个子进程,在子进程中,要求显示子进程号与父进程号,然后显示当前目录下的文件信息,在父进程中同样显示子进程号与父进程号。

Linux课程设计

摘要 Linux是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变,这让Linux 吸收了无数程序员的精华,不断壮大。 Linux的基本思想有两点:第一,一切都是文件;第二,每个软件都有确定的用途。其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。 这次的课程设计为了熟悉以下内容Linux 基本网络命令,配置网络文件,建立个人账户,配置samba服务器,配置vsFTp服务器,shell编程。 关键词:Linux 基本网络命令配置网络文件建立个人账户配置samba服务器配置vsFTp服务器 shell编程

Linux课程设计 目录 1. 绪论 (1) 1. 1引言 (1) 2. 操作系统特性 (1) 2.1 linux的主要特性 (1) 2.2 UNIX的主要特点 (2) 3.系统设计 (3) 3.1设计的目的与意义 (3) 3.2课程设计的目标 (3) 3.3课程设计的要求 (3) 4 .课程设计的具体内容 (4) 4.1 基本网络命令及使用方法 (4) 4.2 telnet建立多账户测试 (8) 4.3 配置samba服务器,实现不同系统之间的文件共享 (10) 4.4 配置vsFTP服务器 (11) 4.5 简单shell编程 (14) 总结 (17) 参考文献 (18)

1.绪论 1. 1引言 Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux 版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。Linux是一个领先的操作系统,世界上运算最快的10台超级计算机运行的都是Linux操作系统。严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。Linux得名于天才程序员林纳斯?托瓦兹。 Linux操作系统是UNIX操作系统的一种克隆系统,它诞生于1991 年的10 月5 日(这是第一次正式向外公布的时间)。以后借助于Internet网络,并通过全世界各地计算机爱好者的共同努力,已成为今天世界上使用最多的一种UNIX 类操作系统,并且使用人数还在迅猛增长。 Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX 和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。它主要用于基于Intel x86系列CPU的计算机上。这个系统是由全世界各地的成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。 2. 操作系统特性 2.1 linux的主要特性 (1)基本思想 Linux的基本思想有两点:第一,一切都是文件;第二,每个软件都有确定的用途。其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。至于说Linux是基于Unix的,很大程度上也是因为这两者的基本思想十分相近。 (2)发展领域 职业领域:系统应用类(网管\系统管理和维护人员\安全管理人员中低端行业领域)待遇属于中下。 系统开发类行业(JAVA软件开发\C语言软件开发\WEB开发\嵌入式软件开发)其中嵌入式软件开发是linux应用最广的领域待遇属于中等发展方向:UNIX往高端领域和产业发展,例如:AIX、HP-UX、Solaris 等等。 (3)完全免费 Linux是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变,这让Linux吸收了无数程序员的精华,不断壮大。

linux实验指导书

实验一Linux安装和环境熟悉以及常用命令的练习 一、实验内容 掌握Linux下常用的文件及目录的操作命令;掌握文件打包及压缩命令;学会使用帮助信息。 二、实验目的及要求 1.了解Linux下的Shell常用命令; 2.掌握文件及目录操作命令; 3.掌握文件打包、压缩命令; 4.掌握联机帮助命令的使用方法。 三、实验环境及条件 奔腾以上微机一台,Linux操作系统。 四、实验设计及实施指导(写出每个命令的测试用例及期望输出与实际输出) 1、文件及目录操作命令 (1)练习常用shell命令 Date、bc、echo、last、history等。 (2)练习文件及目录常用的管理命令 ls find cat grep sort comm diff cp rm mv wc; mkdir rmdir chmod chown ln pwd cd。 (3)重定向和管道命令: 输入重定向 输入重定向是指把命令(或可执行程序)的标准输入重定向到指定的文件中。输入重定向主要用于改变一个命令的输入源,特别是改变那些需要大量输入的输

入源。 例如: wc< /etc/passwd wc<this text forms the content >this text forms the content2s >this text forms the contents >! ?输出重定向 输出重定向是指把命令(或可执行程序)的标准输出或标准错误输出重新定向到指定文件中。这样,该命令的输出就不显示在屏幕上,而是写入到指定文件中。 例如: ls >directory.out ls >>directory.out 利用重定向将命令组合在一起,可实现系统单个命令不能提供的新功能。例:统计/usr/bin目录下的文件个数: ls /usr/bin>/tmp/dir wc –w

linux_课程设计模板

辽宁工业大学linux 课程设计(论文) 题目:REDHAT LINUX 系统下搭建FTP 服务器 学院:软件学院 专业班级:软件工程125班 学号: 121301143 学生姓名:张白冰 指导教师:陈浩 教师职称:讲师 起止时间: 2012.12.1—2012.12.5

课程设计(论文)任务及评语

目录 第一章安装VSFTP套件 (1) 1.1首先查看我的Redhat5上是否已经安装 (1) 1.2 如果没有安装话,就要选择一种方式安装 (1) 1.3 VsFtp的配置文件 (3) 第二章配置FTP服务器 (4) 2.1最简单的vsfrpd.conf设定 (4) 2.2 配置好FTP服务器后,使用匿名用户及实体用户上传下载文件进行测试。 (5) 第三章总结 (9) 参考文献 (10)

第一章安装VSFTP套件 1.1首先查看我的Redhat5上是否已经安装 rpm -qa| grep vsftpd 如果已经安装就会出现vstfp的版本号相关的信息,如果没有出现就是没有安装1.2 如果没有安装话,就要选择一种方式安装 可以到官方网站去下载 https://www.wendangku.net/doc/a03290243.html, 也可以用光盘安装,RedHat 5的安盘里自带的,所以我选择光盘安装 (1)先把光盘挂载到系统上: mount /dev/cdrom /mnt 这样光盘的内容就被挂载到/mnt的设备上,现在可以通过/mnt访问光盘上的内容了 (2)在光盘上安装vsftp,并且启动vsftp rpm -ivh vsftpd* (3)修改启动方式,改为系统启动时,自动启动 chkconfig vsftpd on 也可以查看启动方式 chkconfig --list |grep vsftpd 只要在第2--5为on就能随机启动 (4)启动ftp service vsftpd start (5)连接测试 vsftp默认安装目录是:/etc/vsftpd 默认有一个ftp目录:var/ftp vsftp默认是用允许匿名用户【anonymous】登陆,允许下载,但是不允许上传 如果连不上,可能是linux 防火墙的原因 停止防火墙:service iptables stop 开启防火墙:service iptables start (1)从光盘中找到从光盘中找到从光盘中找到从光盘中找到 vsftp的的的的rpm 安装包安装包安装包安装包

Linux操作系统实验指导书

《Linux系统管理与维护》实验指导书 实验一初识Linux操作系统 一实验名称 初识Linux操作系统 二实验目的与要求 掌握Linux的启动、登录与注销。 三实验内容 1.以root用户和普通用户两种不同身份登录Linux,说出其登录后得差异。 2.图形模式下的注销、重启与关机。 3.学会在虚拟机上登录和注销Linux。 四操作步骤与结果分析 五问题与建议

实验二Linux的桌面应用 一实验名称 Linux的桌面应用 二实验目的与要求 熟悉Linux操作系统桌面环境 熟悉Linux文件系统及常用的操作 掌握Linux下使用外部存储设备、网络设备 掌握Linux下安装应用程序 三实验内容 1.查看GNOME提供的“应用程序”、“位置”或者“系统”菜单,运行其中的应用程 序和工具。 2.查看Linux文件目录结构,学会常用的文件目录操作,如复制、粘贴、移动、删 除、更名、创建文档、创建文件夹等。 3.练习在Linux下使用光盘和U盘。 4.学会网络配置,使计算机能够进行网络浏览等操作。 5.学会在Linux下安装新的应用软件。 四操作步骤与结果分析 五问题与建议

实验三Linux操作系统的安装 一实验名称 Linux操作系统的安装 二实验目的与要求 掌握安装Linux操作系统 三实验内容 1.通过学习《项目五Linux操作系统的安装及远程服务》的内容,学会如何安装Linux。 环境:windows 系统、vmware虚拟机、Redhat Linux镜像光盘。 通过安装向导将安装分为两步:1、基本安装,2、配置及具体安装。 在第一阶段重点如何分区,在第二阶段重点掌握如何设置密码及安装桌面环境。四操作步骤与结果分析 五问题与建议

【IT专家】Linux中进程的几种状态

本文由我司收集整编,推荐下载,如有疑问,请与我司联系 Linux中进程的几种状态 2015/03/29 4411 1R (task_running) :可执行状态 ?只有在该状态的进程才可能在CPU上运行。而同一时刻可能有多个进程处于可执行状态,这些进程的task_struct结构(进程控制块)被放入对应CPU的可执行队列中(一个进程最多只能出现在一个CPU的可执行队列中)。进程调度器的任务就是从各个CPU的可执行队列中分别选择一个进程在该CPU上运行。 ?很多操作系统教科书将正在CPU上执行的进程定义为RUNNING状态、而将可执行但是尚未被调度执行的进程定义为READY状态,这两种状态在linux下统一为TASK_RUNNING状态。 ? 2S (task_interruptible):可中断的睡眠状态 ?处于这个状态的进程因为等待某某事件的发生(比如等待socket连接、等待信号量),而被挂起。这些进程的task_struct结构被放入对应事件的等待队列中。当这些事件发生时(由外部中断触发、或由其他进程触发),对应的等待队列中的一个或多个进程将被唤醒。 ?通过ps命令我们会看到,一般情况下,进程列表中的绝大多数进程都处于task_interruptible状态(除非机器的负载很高)。毕竟CPU就这么一两个,进程动辄几十上百个,如果不是绝大多数进程都在睡眠,CPU又怎么响应得过来。 ? 3D (task_uninterrupible)不可中断的睡眠状态 ?与task_interruptible状态类似,进程处于睡眠状态,但是此刻进程是不可中断的。不可中断,指的并不是CPU不响应外部硬件的中断,而是指进程不响应异步信号。绝大多数情况下,进程处在睡眠状态时,总是应该能够响应异步信号的。但是uninterruptible sleep状态的进程不接受外来的任何信号,因此无法用kill杀掉这些处于D状态的进程,无论是”kill”, “kill -9″还是”kill -15″,这种情况下,一个可选的方法就是reboot。

Linux课程设计

目录 前言 (1) 正文 (2) 1设计背景 (2) 1.1设计的目的与意义 (2) 1.2课程设计的目标 (2) 1.3课程设计的要求 (2) 1.4课程设计的方案 (2) 2 网络命令 (3) 2.1 常用的网络命令 (3) 2.2 telnet建立多账户测试 (7) 2.3 smba服务器的配置 (9) 2.4 ftp服务器配置 (12) 2.5 shell编程 (15) 总结 (16) 参考文献 (17)

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux 版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中。Linux 是一个领先的操作系统,世界上运算最快的10台超级计算机运行的都是Linux 操作系统。严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。Linux得名于天才程序员林纳斯·托瓦兹。 Linux操作系统是UNIX操作系统的一种克隆系统,它诞生于1991 年的10 月5 日(这是第一次正式向外公布的时间)。以后借助于Internet网络,并通过全世界各地计算机爱好者的共同努力,已成为今天世界上使用最多的一种UNIX 类操作系统,并且使用人数还在迅猛增长。 Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX 和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。它主要用于基于Intel x86系列CPU的计算机上。这个系统是由全世界各地的成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。 UNIX特点: (1)模块化程度高 (2)源码公开 (3)广泛的硬件支持 (4)安全性及可靠性好内核高效稳定 (5)具有优秀的开发工具

实验指导书1-vmware与redhat-linux-7.3安装

实验指导书1-vmware与redhat-linux-7.3安装

实验一、Vmware虚拟机与Redhat linux 7.3安装 【实验目的】 1、了解和熟悉Vmware的使用方法 2、熟悉Redhat linux7.3的安装过程 3、安装vmware tools,安装显卡驱动 4、实现vmware和linux的共享目录。 5、实现telnet远程访问 【实验准备】 1、vmware 4.5.2虚拟机软件 2、redhat linux 7.3三个ISO映像文件 valhalla-i386-disc1.ISO valhalla-i386-disc2.ISO valhalla-i386-disc3.ISO 【实验内容】 1、在Vmware虚拟机中安装redhat linux 7.3操作系统 步骤:(1)在主机的D盘或者E盘建立redhat linux 7.3的目录 (2)启动vmware 虚拟机软件,按照课件上方法新建一个操作系统 (1) (2) (3) (4)

(5) (6) (7) (8) 步骤3:启动虚拟机,准备安装redhat linux 7.3,我们使用光盘镜像来安装Linux,点击菜单[VM]-[settings],在[hardware]-[CD Rom] 中选择 [ISO image],点击“浏览”选择ISO 文件valhalla-i386-disc1.iso

步骤4.启动vmware,安装redhat linux 7.3,在boot:后输入text 回车。 提示:在安装界面上采用图形方式装,如果采用图形方式安装,在安装到840M时,会提示出错。可以退出,再次重新安装基本第二次都会成功。

Linux课程设计进程控制

课程设计报告 课程名称Linux操作系统课程设计 指导教师张玲 起止日期2014-03-01 至2014-06-13 实验项目实验二进程控制 学院信息与通信工程学院 专业电子信息工程 学生姓名 班级/学号 成绩 指导老师签字

1. 课程设计概述 本次课设意在利用进程控制相关的系统调用编程进行进程控制实验,观察进程从创建、运行到终止的控制过程,加深对进程概念的理解。 1.1 课程设计的目的 本实验的目的是掌握进程的概念,理解进程的创建、执行、等待、终止的过程。熟悉有关进程控制的命令和系统调用,理解Shell 的工作原理。 1.2 课程设计的内容 1) 进程控制命令 ● 使用进程控制命令ps ,kill 监视和控制进程的活动 2) 编程部分 ● 用fork ,wait ,exec 系统调用编程实现进程控制; ● 编写一个简单的shell 。 1.3 设计原理 进程是一个其中运行着一个或多个线程的地址空间和这些线程所需要的系统资源。 构建的文件构架如图: 图1 实验目录树的结构 2012010948 exp2 exp1 exp3 vis vis2

2.实验步骤 2.1操作 2.1.1进程控制命令(在此终端窗口的操作截图见图1) 1.执行ps命令,查看bash进程的PID: PID就是各进程的身份标识,程序一运行系统就会自动分配给进程一个独一无二的PID。进程中止后PID被系统回收。 2.在后台运行一个yes进程: yes > /dev/null & 3.用ps -f命令观察yes进程的pid和ppid,用ps u命令观察yes进程的状态。 yes进程的父进程是哪个进程?通过查看yes程序的PPID可知其父进程为bash 4.根据命令名搜索特定的进程: ps-ef|grep yes: 5.用kill命令杀掉yes进程: kill 【PID】: 图1 进程控制命令

Linux实验指导书

Linux操作系统 (适用于计算机专业专科学生) 实 验 指 导 书 信息科学与技术学院二0一0年八月制

目录 实验一 Red Hat Linux 9.0系统的安装 (3) 实验二常用命令的使用(一) (15) 实验三常用命令的使用(二) (21) 实验四 Vi编辑器的使用 (27) 实验五 Linux系统管理与配置 (29) 实验六 shell编程(一) (32) 实验七 shell编程(二) (37) 实验八 shell编程及图形环境的使用 (39)

实验一 Red Hat Linux 9.0系统的安装 一、实验目的 1.掌握安装Linux系统时收集计算机硬件信息的方法 2.掌握Linux硬盘的分区方法和硬盘分区的大小 3.掌握Linux系统安装的过程和在安装过程中各选项的设置 二、实验环境 微型计算机一台,Red Hat Linux9.0系统盘一套 VMware Workstation v5.5.16325 sn:8UX0R-686FT-Z054V-4PDQPORLCT4T-24GFE-A816V-4MTQQ 三、实验内容及步骤 1.安装前的准备工作 步骤一:关闭BIOS中的病毒报警功能,如果硬盘大于8G设置硬盘为LBA模式。 步骤二:备份硬盘上的所有重要数据! 步骤三:为Linux系统准备足够的硬盘空间。 2.安装Red Hat Linux 9.0 将Red Hat Linux 9.0安装光盘插入光驱,然后启动计算机,即可从CD-ROM启动Linux 安装程序。 步骤1:boot:提示。 机器启动之后,显示boot: 提示屏幕,其中包括了几个不同的引导选项,每个引导选项还有一个或多个与之关联的帮助屏幕。要访问帮助屏幕,可按在屏幕底部列出的恰当的功能键。 为以图形方式从光盘中安装Red Hat Linux,单击回车键。 步骤2:安装程序检测用户系统并试图识别光驱。如果找到了,会进入安装进程的下一阶段。 这时若要中止安装进程,应取出引导磁盘或光盘,重新引导机器。在“即将安装”屏幕(步骤19) 之前的任何时候,都可以安全地中止安装。 步骤3:欢迎使用Red Hat Linux。 “欢迎”屏幕并不提示做任何输入。可阅读左侧面板内的帮助文字来获得附加的说明,以及关于如何注册Red Hat Linux产品的信息。

Linux 进程管理实验

Linux 进程管理实验 一、实验内容: 1. 利用bochs观测linux0.11下的PCB进程控制结构。 2. 利用bochs观测linux0.11下的fork.c源代码文件,简单分析其中的重要函数。 3. 在fork.c适当位置添加代码,以验证fork函数的工作原理。 二、Linux进程管理机制分析 Linux有两类进程:一类是普通用户进程,一类是系统进程,它既可以在用户空间运行,又可以通过系统调用进入内核空间,并在内核空间运行;另一类叫做内核进程,这种进程只能在内核空间运行。在以i386为平台的Linux系统中,进程由进程控制块,系统堆栈,用户堆栈,程序代码及数据段组成。Linux系统中的每一个用户进程有两个堆栈:一个叫做用户堆栈,它是进程运行在用户空间时使用的堆栈;另一个叫做系统堆栈,它是用户进程运行在系统空间时使用的堆栈。 1.Linux进程的状态: Linux进程用进程控制块的state域记录了进程的当前状态,一个Linux 进程在它的生存期中,可以有下面6种状态。 1.就绪状态(TASK_RUNNING):在此状态下,进程已挂入就绪队列,进入准备运行状态。 2.运行状态(TASK_RUNNING):当进程正在运行时,它的state域中的值不改变。但是Linux会用一个专门指针(current)指向当前运行的

任务。 3.可中断等待状态(TASK_INTERRUPTIBLE):进程由于未获得它所申请的资源而处在等待状态。不管是资源有效或者中断唤醒信号都能使等待的进程脱离等待而进入就绪状态。即”浅睡眠状态”。 4.不可中断等待状态(TASK_UNINTERRUPTIBLE):这个等待状态与上面等待状态的区别在于只有当它申请的资源有效时才能被唤醒,而其它信号不能。即“深睡眠状态”。 5.停止状态(TASK_STOPPED):当进程收到一个SIGSTOP信号后就由运行状态进入停止状态,当收到一个SINCONT信号时,又会恢复运行状态。挂起状态。 6.终止状态(TASK_ZOMBIE):进程因某种原因终止运行,但进程控制块尚未注销。即“僵死状态”。 状态图如下所示: 2.Linux进程控制块:

Linux课程设计报告书模版

Linux系统与程序设计课程设计报告书 报告人:

目录: 1、实验项目目的3 2、实验项目的功能及模块划分2 3、实验项目的人员组成及指责划分2 4、设计与实现3 4.1 系统结构3 4.2 客户端界面3 4.2.1 注册3 4.2.2 登录4 4.2.3 界面设计4 4.2.4查找好友4 4.3服务器的实现5 4.3.1 用户登录5

4.3.2用户管理5 4.3.3转发聊天消息5 4.4 文件操作6 4.5 通信模块的实现6 4.5.1 通信方式的选择6 5、测试与调试6 6、总结7 7、附录:程序代码9 1、实验目的 在Linux下利用java编程实现类似于QQ的通信功能。实现简单的qq功能:注册、登陆、查找好友、聊天功能服务端还需实现配置文件设置、用户管理、日志显示的功能。同时使用到相关的的文件操作以及java编程。通过这次实验来锻炼在Linux下的编程能力,主要是熟悉Linux的编程环境,相关命令的操作、java 软件的安装、以及对文件的操作,网络通讯等相关的方面东西。

2、实验项目的功能及模块划分 本实验是一个Linux下的网络即时通信工具,实现三人间的通讯。这个项目总共分为五个模块客户端,服务器,通讯,文件操作以及文档维护与测试。客户端的在分为登录、从服务器端获取在线人员并显示、选择联系人、向在线人员发送消息。实时显示别人发给你的消息。服务端主要是为客户端提供相关的信息服务,包括保存登录人员的IP信息、发送给客户端其他登录人员的IP、操作数据库等相关操作。基本上完成了注册、登陆、聊天功能总体来说可以分为几下几个模块:1)客户端与服务器的界面设计 2)客户端的通信部分 3)服务端的通信部分 4)文件操作 5)文档测试与维护 3、实验项目的人员组成及指责划分 xx:组长,系统分析、整体设计和模块划分 xx:通信模块设计和编码。 xx:客户端以及服务器界面设计和编码。 xx:文档维护和测试。 xx:文件操作的设计和编码。 4、设计与实现

linux操作系统实验指导书第2周

第3周Linux文件与目录管理 一、实验内容 1.练习Linux文件和目录操作命令。 2.实验目的练习Linux文件权限和文件查找命令。 二、实验目的 1.掌握文件与目录管理命令 2.掌握文件内容查阅命令 3.了解文件与目录的默认权限与隐藏权限 4.掌握如何改变文件属性与权限 5.掌握命令与文件的查询方法 三、实验题目 1. 文件与目录管理 (1) 查看Ubuntu根目录下有哪些内容? (2) 进入/tmp目录,以自己的学号建一个目录,并进入该目录。 (3) 显示目前所在的目录。 (4) 在当前目录下,建立权限为741的目录test1,查看是否创建成功。 (5) 在目录test1下建立目录test2/teat3/test4。 (6) 进入test2,删除目录test3/test4。 (7) 将root用户家目录下的.bashrc复制到/tmp下,并更名为bashrc (8) 重复步骤6,要求在覆盖前询问是否覆盖。 (9) 复制目录/etc/下的内容到/tmp下。 (10) 在当前目录下建立文件aaa。 (11)查看该文件的权限、大小及时间 (12) 强制删除该文件。 (13) 将/tmp下的bashrc移到/tmp/test1/test2中。 (14) 将/test1目录及其下面包含的所有文件删除。 2. 文件内容查阅、权限与文件查找 (1) 使用cat命令加行号显示文件/etc/issue的内容。 (2) 反向显示/etc/issue中的内容。 (3) 用nl列出/etc/issue中的内容。

(4) 使用more命令查看文件/etc/man.config (5) 使用less命令前后翻看文件/etc/man.config中的内容 (6) 使用head命令查看文件/etc/man.config前20行 (7) 使用less命令查看文件/etc/man.config后5行 (8) 查看文件/etc/man.config前20行中后5行的内容 (9) 将/usr/bin/passwd中的内容使用ASCII方式输出 (10) 进入/tmp目录,将/root/.bashrc复制成bashrc,复制完全的属性,检查其日期 (11) 修改文件bashrc的时间为当前时间 3. 文件权限 (1) 执行echo pwd >> pwd.sh,然后使用ls -al查询一下,发生了什么事? (2) 以两种方式查看系统中新建文件或目录的默认权限 (3) 新建文件test1和目录test2,查看它们的权限是否与(2)中的默认权限相符 (4) 修改pwd.sh文件权限为r-xr--r--。 (5) 执行pwd.sh。(提示:执行本路径下文件的命令是./文件名)。 (6) 添加用户stu,修改密码为123。 (7) 修改文件test1的属主为stu,test1所属的组为stu。 (8)增加test1的属主具有可执行的权限。 4. 文件查找 (1) 查看文件/root/.bashrc的类型 (2) 查询ifconfig和cd命令的完整文件名 (3) 只找出跟passwd有关的“说明文件”文件名 (4) 找出系统中所有与passwd相关的文件名 (5) 将过去系统上面3天前的24小时内有改动(mtime)的文件列出 (6) 使用find查找当前目录下比man.config新的文件,并存储到man.config.new文件。 (7) 列出/etc下比/etc/man.config新的文件 (8) 查找系统中所有属于root的文件及不属于任何人的文件 (9) 使用find查找/下面所有名称为man.config的文件。 (10) 找出文件名为man.config的文件 (11) 使用locate查找所有名称为man.config的文件。 (12) 11步和12步的结果一样么?为什么? (13) 找出/etc下文件类型为f的文件 (14) 找出系统中大于1M的文件

相关文档
相关文档 最新文档