shell编程实验报告总结(shell脚本编程实验总结)
Linux实验报告 第八章
linux实验报告
第八章?
帮助命令
? 内建命令????? 通常在 Linux 系统加载运行时 shell 就被加载并驻留在系统内存中 解析内部命令shell不需要创建子进程,执行命令速度比外部快
外部命令? ? ? ? Linux 系统中的实用程序部分? 在系统加载时并不随系统一起被加载到内存中,而是在需要时才将其调用内存
一个是天生自带的天赋技能,一个是后天得来附加技能。我们可以使用 type 命令来区分命令是内建的还是外部的
帮助命令的使用
1,help命令?
若环境中没有help命令,可以进入bash中内置该命令
若实验环境是 zsh,而 zsh 中内置并没有 help 命令,我们可以进入 bash 中,在 bash 中内置有该命令
使用? help ls????????
help 命令是用于显示 shell 内建命令的简要帮助信息
help 命令只能用于显示内建命令的帮助信息
外部命令的话基本上都有一个参数--help
2,man 命令
man 没有内建与外部命令的区分,因为 man 工具是显示系统手册页中的内容
3,info命令
如果man现实的信息都还不够,可以使用info
什么是shell
Shell俗称壳,它提供了用户与内核进行交互操作的一种接口,它接收用户输入的命令并把它送入内核去执行
Shell实际上是一个命令解释器,它通过解释用户输入的命令并把它传输给系统内核去执行。
Shell有自己的编程语言,它允许用户编写由shell命令组成的程序。Shell编程语言具有普通编程语言的很多特点,比如它也有循环结构和分支控制结构等。
内部命令:在系统启动时就调入内存,是常驻内存的,所以执行效率高
外部命令:是系统软件的功能,用户需要时才从硬盘中读入内存
如何区分内外部命令?
使用type命令 ?,语法 : type ??要检测的命令
[root@xuegod63 ~]# type cat
cat 是 /usr/bin/cat
[root@xuegod63 ~]# type pwd
pwd 是 shell 内建
总结: 通过SHELL,我们可以对LINUX实现哪些操作或管理:
例如:
对文件的管理(创建、删除、复制、修改)
1、对用户的管理(添加、删除)
2、相关权限的管理(授权用户对相关文件的管理,比如增删改查)
3、对磁盘的管理(分区、raid、lvm)
4、对软件的管理
5、对网络的管理
求高人帮做操作系统的实验报告,只需把实验内容写下即可
#includealgorithm
#includeiomanip
#includeconio.h
using namespace std;
struct PCB
{
string p_name;//程序名
int super;//优先级
double ndtime;//需要时间
double runtime;//运行时间
string state;//状态
bool operator(const PCB nd)
{
return supernd.super ;
}
};
int main()
{
int n,i,j,nn=0;
cout"\n请输入进程总个数?";
cinn;
PCB *PB=new PCB[n];
for(i=0;in;i++)
{
cout"\n\n进程号No."i":"endl;
cout"\n输入进程名:";
cinPB[i].p_name ;
cout"\n输入进程优先级数0~99:";
cinPB[i].super ;
cout"\n输入进程运行时间:";
cinPB[i].ndtime ;
nn +=PB[i].ndtime ;
PB[i].runtime =0;PB[i].state ="W";
}
sort(PB,PB+n);
int k=PB[0].super ;
queuePCB *que=new queuePCB[k+1];
for(i=0;in;i++)
que[PB[i].super ].push (PB[i]);
coutsetfill(' ');
coutsetiosflags(ios::left);
for(i=0;inn;i++)
{
PCB PP=que[k].front() ;
int kk;
for(kk=0;kkn;kk++)
if(PP.p_name ==PB[kk].p_name) break;
PB[kk].state ="R";
cout"\n\n按任意键继续......";
getch();
cout"\n\n*-*-*-*-*-*-*-* The excute number:"i+1" *-*-*-*-*-*-*-*";
cout"\n\n*-*-*-*-*-*-* 当前正在运行的进程是: "PP.p_name " *-*-*-*-*-*-*";
cout"\n\np_name state super ndtime runtime";
cout"\n |"setw(10)PP.p_name " |"setw(6)PB[kk].state " |"setw(6)
PP.super " |"setw(11)PP.ndtime " |"PP.runtime ;
PP.runtime +=1;PB[kk].runtime +=1;
if(PB[kk].super 0) PB[kk].super -=1;
que[k].pop ();
cout"\n\n*-*-*-*-*-*-* 当前就绪队列状态为: *-*-*-*-*-*-*";
for(j=0;jn;j++)
if(PB[j].state =="W")
{
cout"\n\np_name state super ndtime runtime";
cout"\n |"setw(10)PB[j].p_name " |"setw(6)PB[j].state " |"setw(6)
PB[j].super " |"setw(11)PB[j].ndtime " |"PB[j].runtime ;
}
if(PP.runtime ==PP.ndtime )
{
PB[kk].state ="F";
cout"\n\n时间片到期,此时进程["PB[kk].p_name "]已完成.";
if(que[k].empty ()k0) k--;
}
else
{
PB[kk].state ="W";
if(k0) que[k-1].push (PB[kk]);
else que[k].push (PB[kk]);
if(que[k].empty ()k0) k--;
}
}
cout"\n\n进程已全部完成."endlendl;
return 0;
}
整个程序都是模拟“最高优先级”进程调度算法的程序啊
我是用C++写的 你用编译器编译下 然后运行下 就知道怎么回事了
轮转法很简单,,,就不写了
不给我分数我觉得很冤枉 因为为了这个程序我写了1个多小时
没有功劳也会苦劳啊