浙江大学Linux程序设计实验报告

合集下载

浙江大学Linux程序设计实验报告(8)

浙江大学Linux程序设计实验报告(8)

序 问题 号
1 Shell 环境下 gdialog 命令的使用
在 Shell 编程中,gdialog 是使用内置 GUI 的命令。使用图形化编程,可以提高用户 使用程序的舒适度,增强人机关系。 gdialog 命令系列用法列举如下: //TestGdialog.sh
2 Linux C 编译环境下随机数产生规律
Ctrl + l:清屏 Ctrl + o:执行当前命令,并选择上一条命令 Ctrl + s:阻止屏幕输出 Ctrl + q:允许屏幕输出 Ctrl + c:终止命令 Ctrl + z:挂起命令
重新执行命令
Ctrl + r:逆向搜索命令历史 Ctrl + g:从历史搜索模式退出 Ctrl + p:历史中的上一条命令 Ctrl + n:历史中的下一条命令 Alt + .:使用上一条命令的最后一个参数
编辑命令
Ctrl + a :移到命令行首 Ctrl + e :移到命令行尾 Ctrl + f :按字符前移(右向) Ctrl + b :按字符后移(左向) Alt + f :按单词前移(右向) Alt + b :按单词后移(左向) Ctrl + xx:在命令行首和光标之间移动 Ctrl + u :从光标处删除至命令行首 Ctrl + k :从光标处删除至命令行尾 Ctrl + w :从光标处删除至字首 Alt + d :从光标处删除至字尾 Ctrl + d :删除光标处的字符 Ctrl + h :删除光标前的字符 Ctrl + y :粘贴至光标后 Alt + c :从光标处更改为首字母大写的单词 Alt + u :从光标处更改为全部大写的单词 Alt + l :从光标处更改为全部小写的单词 Ctrl + t :交换光标处和之前的字符 Alt + t :交换光标处和之前的单词 Alt + Backspace:与 Ctrl + w 类似,分隔符有些差别

linux实验报告

linux实验报告

linux实验报告实验目的:通过对Linux操作系统的实践,掌握基本的Linux命令和操作方法,了解Linux操作系统的特点和优势。

实验一:Linux环境搭建在实验一中,我们首先需要搭建Linux操作系统的环境。

根据实验指导书的要求,我们选择了Ubuntu作为实验平台。

通过下载Ubuntu镜像文件,并利用虚拟机软件创建一个虚拟机,将镜像文件安装到虚拟机中。

在安装过程中,我们需要选择合适的分区和网络配置等,并设置root用户的密码。

实验二:基本命令的使用在实验二中,我们主要学习了Linux的基本命令的使用方法。

首先,我们了解了Linux文件系统的结构,包括根目录、用户目录、系统目录等。

然后,通过命令行终端进行一系列的实践操作,比如查看文件内容、创建目录、复制文件等。

这些命令的使用不仅提高了我们的工作效率,同时也增强了对Linux操作系统的理解。

实验三:软件安装与卸载实验三主要涉及到Linux的软件安装与卸载。

我们首先学习了使用APT工具进行软件包管理,通过安装命令行界面的方式安装了一些常用的软件,比如文本编辑器、终端工具等。

此外,我们还学习了如何卸载已安装的软件包,清理不需要的文件,以保持系统的整洁性。

实验四:权限管理在实验四中,我们学习了Linux的权限管理机制。

Linux操作系统采用了基于用户和组的权限模型,通过设置文件和目录的权限,实现对文件的读、写、执行的控制。

我们通过实际操作,创建了新的用户和组,并为不同的用户和组设置了不同的权限。

这样,可以有效地保护系统的文件和数据的安全性。

实验五:网络配置与服务搭建在实验五中,我们主要学习了Linux的网络配置和服务搭建。

通过设置网络接口、IP地址和网关等参数,实现了网络的正常连接。

同时,我们还学习了一些常用的网络命令,比如ping、ssh等。

此外,我们尝试搭建了一个简单的Web服务器,通过浏览器访问,可以查看服务器上的网页。

实验六:系统监控和故障恢复在实验六中,我们学习了Linux的系统监控和故障恢复方法。

浙江大学软件学院嵌入式操纵系统实验报告实验3:添加并编译Linux内核模块

浙江大学软件学院嵌入式操纵系统实验报告实验3:添加并编译Linux内核模块
rm -rf *.o *.ko *.mod.c .*.cmd .tmp_versions *.order *.symvers
实验过程设计:(10 分) 1、 建立源文件(Hello.c) 2、 写 Makefile 3、 编译源文件 4、 加载模块 insmod hello.ko 5、 观察是否成功 dmesg 可以看到系统的内核模块加载信息。 6、 卸载模块 rmmod hello.ko 7、 观察是否成功 dmesg 可以看到系统的内核模块卸载信息。
嵌入式操作系统实验报告
实验 3:添加并编译 Linux 内核模块
姓名 包子·陳 任课教师 童春洋
院系
实验地点 实验课表现
S207 出勤、表现得分 10% 操作结果得分 50%实验目的:Βιβλιοθήκη 添加并编译Linux内核模块
软件学院 指导教师 实验时间 实验报告 得分 40%
学号 2145xxxx 童春洋 2014 年 12 月 5 日星期五
static int hello_init(void) { printk(KERN_ALERT "Hello World!/n"); return 0; }
static void hello_exit(void) { printk(KERN_ALERT "Bye World!/n"); }
module_init(hello_init); module_exit(hello_exit);
实验中遇到的问题及解决方法,思考题:(5 分)
得分:
1、 在编写 Makefile 过程中,内核版本号未知。
解决方法:用 uname –a 命令查看
2、 在 Makefile 编写完毕后报语法错误

Linux课程设计实验报告

Linux课程设计实验报告

pdata->activity_mode = !pdata->activity_mode; gtk_progress_bar_pulse (GTK_PROGRESS_BAR (pdata->pbar)); gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (pdata->pbar),0.00); gtk_progress_bar_set_text (GTK_PROGRESS_BAR (pdata->pbar), "0.00"); gtk_container_add (GTK_CONTAINER (align), pdata->pbar); gtk_widget_show (pdata->pbar); /* 加一个定时器(timer), 以更新进度条 的值 */ pdata->timer = gtk_timeout_add (100, progress_timeout, pdata); separator = gtk_hseparator_new (); gtk_box_pack_start (GTK_BOX (vbox), separator, FALSE, FALSE, 0); gtk_widget_show (separator); /* 行数、 列数、 同质性(homogeneous) */ table = gtk_table_new (2, 2, FALSE); gtk_box_pack_start (GTK_BOX (vbox), table, FALSE, TRUE, 0); gtk_widget_show (table);
3. 通过系统调用实现文件拷贝
5
a.程序说明: 要在 linux 下实现系统调用,首先修改内核中的三个文件,分别是 unistd.h,sys.c 和 syscalltable.s(这个是 2.6 版本和 2.4 版本的区别所在,2.4 版本要改的文件是 entry.s), 然后需要重新编译内核,具体步骤如下: Make clean Make bzImage Make modules Make modules_install Make install 最后一步最为关键,2.6 版本不需要手动修改 grub,只需要执行 make install 就会自动 修改 grub,然后只要在启动时选择新内核即可,完全不需要手工操作. 此外还需要一个测试文件,文件拷贝的代码当然是原先写在内核里,这里是 sys.c 文 件.编译后的内核下通过系统调用同样实现了程序一文件拷贝的效果. b.程序源码 测试程序: while(!feof(f1)) #include <stdio.h> { #include <stdlib.h> #include <string.h> s=fgetc(f1); if(s==EOF) break; fputc(s,f2); int mysyscall(char *f1,char *f2) } { sys_close(f1); sys_close(f2); printk("Copy complete!!\n"); f1=sys_open(f1,"r"); } f2=sys_open(f2,"w"); int s=0; Sys.c 里的文件拷贝代码:

linux编程实验报告

linux编程实验报告

linux编程实验报告Linux编程实验报告一、引言在计算机科学领域中,Linux操作系统一直以其开源、稳定和灵活的特性而受到广泛关注和使用。

作为一名计算机科学专业的学生,我有幸参与了一项关于Linux编程的实验,并在此报告中分享我的实验结果和心得体会。

二、实验目的本次实验的目的是通过编写Linux程序,熟悉Linux操作系统的基本命令和编程环境。

具体而言,我们需要使用C语言编写一个简单的程序,实现文件的读取、写入和修改等功能,并在Linux环境下进行测试和验证。

三、实验过程1. 环境准备在开始实验之前,我们首先需要确保已经安装了Linux操作系统,并具备基本的命令行操作能力。

此外,我们还需要安装C语言编译器,以便能够编译和运行我们的程序。

2. 编写程序根据实验要求,我们需要编写一个程序,实现文件的读写功能。

在编写程序之前,我们先进行了详细的需求分析和设计,确定了程序的基本架构和功能模块。

3. 调试和测试在编写完程序之后,我们进行了一系列的调试和测试工作,以确保程序的正确性和稳定性。

我们使用了一些常见的测试用例,包括读取已存在的文件、写入新文件以及修改已有文件等情况,并对程序的输出结果进行了验证。

四、实验结果经过多次的调试和测试,我们最终得到了一个功能完善、稳定可靠的程序。

该程序能够准确地读取、写入和修改文件,并能够处理各种异常情况,如文件不存在、权限不足等。

五、实验心得通过参与这次实验,我收获颇多。

首先,我对Linux操作系统的理解更加深入了。

在实验过程中,我学会了使用Linux的命令行工具,熟悉了Linux的文件系统和权限管理机制。

其次,我对C语言的编程能力也得到了提升。

在编写程序的过程中,我学会了使用C语言的文件操作函数和错误处理机制,提高了自己的编程技巧。

此外,我还意识到编程实践的重要性。

通过亲自动手编写程序,我不仅仅是理论上了解了Linux的一些特性,更重要的是深入了解了其背后的设计原理和实现细节。

浙江大学软件学院嵌入式操纵系统实验报告实验0:使用C语言模拟Linux系统调度

浙江大学软件学院嵌入式操纵系统实验报告实验0:使用C语言模拟Linux系统调度

scanf("%s",p->name); /*输入进程名*/
scanf("%d",&p->needtime); /*输入进程要求运行时间*/
p->cputime=0;
p->state='W'; /*表示就绪队列中未在队首先执行,但也是就绪状态*/
}
void insert(PCB *q) /*插入新进程,把进程按优先数大小排序*/
{
PCB *p1,*s,*r;
int b;
s=q;
/*指针 s 指向新要插入的进程*/
p1=ready; /*指针 p1 指向原来的进程队列的队首*/
r=p1;
/*使用指针 r 是指向 p1 前面的进程*/
b=1;
while((p1!=NULL)&&b)
{ run->state='W';
run->next=NULL; /*队首进程退出进程队列*/
insert(run); /*在进程队列中重新插入原来的队首进程*/
run=ready;
/*重新置就绪队列的头指针*/
run->state='R';
ready=ready->next;
}
prt();
}
}
void main()
run->prio=run->prio-1; /*运行一次优先数减一*/
if(run->needtime==0) /*若要求运行时间为 0 时*/
{ run->next=finish;
/*退出队列*/
finish=run;

linux实验系统实验报告

linux实验系统实验报告

linux实验系统实验报告Linux实验系统实验报告一、引言Linux实验系统是一个基于Linux操作系统的实验平台,旨在提供一个实践学习的环境,帮助学生深入了解Linux操作系统的原理和应用。

本实验报告旨在总结和分析我在使用Linux实验系统进行实验时的经验和收获。

二、实验环境1. 硬件环境:我使用的是一台配备Intel Core i5处理器和8GB内存的个人电脑。

2. 软件环境:我下载并安装了Linux实验系统的最新版本,该版本基于Ubuntu操作系统,并预装了一系列常用的开发工具和软件包。

三、实验内容1. 实验一:Linux基础命令的使用在这个实验中,我通过终端窗口使用了一些常用的Linux命令,如ls、cd、mkdir、rm等。

通过实际操作,我熟悉了Linux文件系统的结构和基本操作,掌握了如何在Linux中创建、删除和移动文件夹,以及如何查看文件和文件夹的属性。

2. 实验二:Shell脚本编程这个实验要求我们使用Shell脚本编写一个简单的程序,实现对指定文件夹中所有文件进行备份的功能。

通过这个实验,我学会了如何使用Shell编程语言,掌握了一些基本的语法和命令,比如if语句、for循环和cp命令。

我还学会了如何将Shell脚本保存为可执行文件,并在终端中运行。

3. 实验三:网络配置与管理这个实验主要涉及Linux系统的网络配置和管理。

我学会了如何配置网络接口,包括设置IP地址、子网掩码和网关。

我还学会了如何使用ping命令测试网络连接,以及如何使用ifconfig命令查看和管理网络接口的状态。

通过这个实验,我对Linux系统的网络配置有了更深入的了解。

四、实验收获通过使用Linux实验系统进行实验,我获得了以下收获:1. 对Linux操作系统有了更深入的了解:通过实际操作,我对Linux操作系统的基本原理和文件系统有了更深入的了解。

我学会了如何在Linux中进行文件和文件夹的管理,以及如何使用命令行界面进行各种操作。

浙江大学Linux程序设计实验报告(5)

浙江大学Linux程序设计实验报告(5)

浙江大学Linux程序设计姓名:方专业:计算机科学与技术学号:3110000155一、列出10个有关linux程序设计的知识点(可以是函数、函数参数、表达式、系统变量、结构体成员等等),谈谈掌握此知识点的要领、难点、技巧、应用列举(程序语句或程序段),或能反映自己在学习过程中的应用体会,更欢迎通过自学的知识要点。

2014年9月10日前发到:问题序号1 Vi/Vim编辑器使用方法和快捷键。

这个虽然算不上是问题,但是是我觉得学习Linux最先需要牢记和多多使用的。

虽然gedit编辑器更为方便,但是在远程登录的情况下对Linux主机进行操作的时候没有图形界面只有vi/vim这种命令行界面可以使用,而且根据我所学的课程,比如操作系统实验和嵌入式系统等,这种vi/vim的使用是非常普遍而且频繁的,所以我认为学习Linux首先就要学会vi/vim的使用方法,这会对以后的学习和程序开发提供莫大的便利,而且可以极大的提高效率。

2 Shell编程的特殊变量,例如$0、$#、$*、$@、$?、$$、$!、$-、$_等等。

熟练运用这些变量可以使程序的适应性更加广泛,比如可以通过给程序加参数的方法让同一个程序执行不同的功能,这样调用的话比程序中手动输入的效率要高,应用面也更加的广。

3 Makefile文件的编写,包括语法,语义和常用方法等。

这个文件可以说是非常重要,用的也非常的多,像我这个学期设计了一个编译器,生成目标代码的时候大多都是靠Makefile文件进行的,熟练的使用该文件可以让工作变得简单有序,可以合理有序的生成我们需要的目标文件,在Linux内核和其他地方也广泛应用,学好这个受益无穷。

4 Gdb调试命令的使用。

学习了很长时间的C,但是要说起gdb的使用我自己也不是很熟练,这无疑是一个难点,因为gdb的配置比较麻烦,需要和编译器和系统配合,而且调试过程比较繁琐。

一般我都是采用在程序里加入print命令来进行调试取代gdb的,我觉得这是一个难点,但并不是太重要的地方。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Linux程序设计实验报告1——操作系统基本命令使用一、实验目的1.通过对Emacs、vi、vim、gedit文本编辑器的使用,掌握在Linux环境下文本文件的编辑方法;2.通过对常用命令mkdir、cp、cd、ls、mv、chmod、rm等文件命令的操作,掌握Linux操作系统中文件命令的用法。

二、实验任务与要求1.emacs的使用,要求能新建、编辑、保存一个文本文件2.vi或vim的使用,要求能新建、编辑、保存一个文本文件3.gedit的使用,要求能新建、编辑、保存一个文本文件4.掌握mkdir、cd命令的操作,要求能建立目录、进入与退出目录5.掌握cp、ls、mv、chmod、rm命令的操作,要求能拷贝文件、新建文件、查看文件、文件重命名、删除文件等操作。

三、实验工具与准备计算机PC机,Linux Redhat Fedora Core6操作系统四、实验步骤与操作指导任务1.学习emacs的使用,要求能新建、编辑、保存一个文本文件(1)启动emacs(2)输入以下C程序(3)保存文件为kk.c(4)用emacs打开文件kk.c(5)修改程序(6)另存为文件aa.txt并退出。

任务2.vi或vim的使用,要求能新建、编辑、保存一个文本文件(1)点击”应用程序”→“附件”→“终端”,打开终端,在终端输入命令:[rootlocalhost root]#vi kk.c按i键,进入插入状态。

(2)输入以下C程序#include<stdio.h>int main( ){printf(“Hello world!\n”);return 0;}此时可以用Backspace、→、←、↑、↓键编辑文本。

(3)保存文件为kk.c按Esc键,进入最后行状态,在最后行状态输入:wq保存文件,退出vi。

(4)用vi打开文件kk.c,输入命令:[rootlocalhost root]#vi kk.c(5)修改程序为:#include<stdio.h>int main( ){printf(" Hello world!\n");printf("*****************\n");return 0;}(6)按Esc键,进入最后行状态,在最后行状态输入:wq aa.txt保存文件,如图1所示,另存为文件aa.txt并退出vi。

图1 程序编辑环境任务3.gedit的使用,要求能新建、编辑、保存一个文本文件(1)启动gedit,点击”应用程序”→“附件”→“文本编辑器”,打开文本编辑器,如图所示。

(2)输入以下C程序(3)保存文件为kk.c(4)用gedit打开文件kk.c(5)修改程序(6)另存为文件aa.txt并退出。

任务4.掌握mkdir、cd命令的操作,要求能建立目录、进入与退出目录(1)打开终端”应用程序”→“附件”→“终端”,在终端用命令新建目录kkk [rootlocalhost root]#mkdir kkk(2)进入目录kkk,并在kkk目录下新建目录kkka,进入kkka目录[rootlocalhost root]#cd kkk[rootlocalhost kkk]#mkdir kkka[rootlocalhost kkk]#cd kkka[rootlocalhost kkka]#(3)执行命令cd .. 命令,然后再进入kkka目录,输入命令cd 、cd /etc,观察其结果。

[rootlocalhost kkka]#cd ..[rootlocalhost kkk]#cd kkka[rootlocalhost kkka]#cd[rootlocalhost root]#cd /etc[rootlocalhost etc]#任务5.掌握cp、ls、mv、chmod、rm命令的基本操作,要求能拷贝文件、新建文件、查看文件的权限、修改文件以及删除文件。

(1)在kkka目录下建立文件kk.c[rootlocalhost root]#cd /root/kkk/kkka[rootlocalhost kkka]#vi kk.c(2)查看文件kk.c的属性[rootlocalhost kkka]#ls kk.c -l编辑kk.c文本,并用:wq存盘。

(3)把kk.c更名为aa.c[rootlocalhost kkka]#mv kk.c aa.c(4)把文件夹/root/kkk/kkka下的文件aa.c拷贝到/root/kkk目录下,文件取名为kk.c [rootlocalhost kkka]#cp aa.c /root/kkk/kk.c(5)修改文件kk.c的权限,使得文件所有者为可读、可写、可执行,对组内人及其他人可读、不可写、不可执行。

[rootlocalhost kkka]#cd ..[rootlocalhost kkk]#chmod u=rwx,go=r kk.c此时可用命令ls查看[rootlocalhost kkk]#ls -l(6)删除文件与文件夹删除kkka文件夹下的文件aa.c[rootlocalhost kkk]#rm kkka/aa.c查看文件夹kkka下否删除了文件aa.c[rootlocalhost kkk]ls kkka/aa.c -l删除kkka文件夹下[rootlocalhost kkk]#rmdir kkka查看是否删除了文件夹[rootlocalhost kkk]ls kkka -l(7)新建一个linux_d目录,并设置它的权限为666。

(8)在指定的目录中搜索文件,利用find命令搜索含有通配符的文件*.c。

(9)练习命令:ping\netstat\mount\ifconfig\(10)在根目录下用find查找.c文件。

(11)练习检查磁盘命令fdisk的使用。

列出结果中有关/dev/sd的磁盘信息。

/sbin/fdisk -l |grep /dev/sd(12)设置当前的时间为2013年10月01日10点23分。

(13)在后台运行命令gedit,并用命令kill杀死gedit的进程。

(14)检查磁盘,列出目录/dev/sd的磁盘信息。

(15)查找/usr/sbin及/usr/bin/两个目录中所有的C语言程序。

(16)统计当前目录下txt文件的总字节数。

(17)把ps命令的标准输出结果输入给sort,经过排序后结果被保存到pssort.out中。

五、实验结果记录任务2.vi或vim的使用1、输入vi kk.c创建kk.c文件并用vi编辑,在最后行输入wq保存退出2、输入vi kk.c打开该文件,修改文件,在最后行输入wq! aa.txt另存为aa.txt文件并退出任务3.gedit的使用1、输入gedit命令打开gedit编辑器,输入以下文字,保存为kk.c2、在保存目录下输入gedit kk.c打开,使用ctrl+h替换,另存为aa.txt任务4.掌握mkdir、cd命令的操作1、输入mkdir kkk新建目录kkkcd kkk进入kkk文件夹mkdir kkka新建目录kkkacd kkka进入kkka文件夹,结果如图2、输入cd ..返回上级目录,cd kkka再进入kkka文件夹输入cd进入用户主目录,即root文件夹,可使用pwd命令查看当前路径输入cd/etc进入etc文件夹任务5.掌握cp、ls、mv、chmod、rm命令的基本操作1、输入cd /home/brs/work/kkk/kkka 即绝对路径,可直接进入指定文件夹,vi kk.c建立文件编辑保存后,输入ls kk.c –l查看指定文件详细属性输入mv kk.c aa.c将文件kk.c重命名为aa.c(此时mv命令源文件和目标文件在同一文件夹下,故起到重命名作用)输入cp aa.c /home/brs/work/kkk/kk.c将aa.c文件拷贝到kkk下并命名为aa.c 输入chmod u=rwx,go=r kk.c修改文件权限,所有者读写运行,组内可读,查看输入rm kkka/aa.c删除kkka文件夹下aa.c文件,使用ls命令查看是否删除输入rmdir kkka删除kkka文件夹,再次查看是否删除2、新建一个linux_d目录,设置权限为使用chmod 666 linux_d设置其权限为可读可写可执行3、输入find /home/brs/work/kkk -name *.c 在指定目录搜索.c文件输入find ~ -name *.c 在根目录下搜索.c文件4、输入ping .baidu.查看与百度连接情况,使用ctrl+c中断输入netstat显示各种网络相关信息,如网络连接,路由表,接口状态输入ifconfig查看网络配置信息,如IP地址5、mount /dev/sda1 /mnt/usb将设备名为sda1的U盘挂载至/mnt/usb使用umount /mnt/usb卸载U盘6、输入/sbin/fdisk –l|grep /dev/sd列出有关/dev/sd的磁盘信息,此处使用管道命令|将fdisk的输出作为grep的参数输入7、输入date -s "20131001 10:23:00" 设置系统时间8、输入gedit& 在后台运行gedit,此时输入ps查看gedit进程PID号为100963,再输入kill -9 100963结束进程。

9、输入find /usr -name *.c 查找usr目录下所有.c文件10、输入wc –c *.txt统计当前目录下txt文件的总字节数10、输入ps > sort > result 把ps命令的标准输出结果输入给sort,经过排序后结果被保存到result中六、实验结果分析通过使用shell命令可直接完成文件命令操作,文本文件的编辑,并更改简单的系统设置七、实验心得(思考和意见)Linux的shell命令让用户可以使用功能强大的命令,完成一些windows上无法完成或繁琐的操作,为以后程序的编写,系统管理提供了便利,我们应熟练掌握这些基础知识。

在学习过程中遇到了不少问题,通过网络得到了解决。

1、sodu apt-get命令在使用vi编辑器时,上下左右按键变成了ABCD,这是由于vi版本号不同所造成的,此时需要使用sudo apt-get remove vim卸载原版vim,再输入sodu apt-get install vim安装最新版本,便可解决问题。

此外sudo apt-get upgrade 用于更新已安装的软件。

2、su命令以常规用户登录时权限不足,在修改系统文件时会遭到拒绝,此时输入su及root密码可临时切换至root用户,获取最高命令。

相关文档
最新文档