LINUX实验打印机管理

上传人:文*** 文档编号:68570034 上传时间:2022-04-03 格式:DOC 页数:27 大小:1.31MB
返回 下载 相关 举报
LINUX实验打印机管理_第1页
第1页 / 共27页
LINUX实验打印机管理_第2页
第2页 / 共27页
LINUX实验打印机管理_第3页
第3页 / 共27页
点击查看更多>>
资源描述
实验五 打印机管理一、实验目的掌握Linux 系统中打印机的管理与使用方法。二、实验内容Linux 系统中打印机、U 盘、光盘、软盘等移动设备的管理与使用。1.2.3.4.5.6.实验六 Shell程序设计一、实验目的 1、掌握shell程序设计和运行的过程。2、掌握变量的定义,输入输出重定向命令的使用。3、了解使用shell程序设计进行系统管理的方法. 二、实验工具1已安装Linux操作系统的计算机。 三、实验原理1. 什么是shell? Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口(命令解释器)。 Shell接收用户输入的命令并把它送入内核去执行。 Shell起着协调用户与系统的一致性和在用户与系统之间进行交互的作用2.shell脚本的一般执行过程Shell脚本就是一个包含若干行Shell或者linux命令的文件。对于一次编写,多次使用的大量命令,就可以使用文件单独保存下来,以便日后使用. 通常Shell脚本以.sh为后缀。在编写Shell时,第一行一定要指明系统需要那种Shell解释用户的shell程序.默认采用#!bin/bash,例如run.sh #!/bin/bash #comments #Program #Author #History #Date ls -l 执行过程: 方式一:chmod 755 run.sh,./run.sh 方式二:sh ./run.sh 或bash ./run.sh3.Shell里的特殊字符 和其他编程语言一样,Shell里也有特殊字符。常见的有美元符号($)、反斜线()和引号。 1美元符号 美元符号“$”表示变量替换,即用其后指定的变量的值来代替变量。 2双引号() 由双引号括起来的字符,除$、倒引号()和反斜线()仍保留其特殊功能外,其余字符均作为普通字符对待。 3单引号() 由单引号括起来的字符都作为普通字符出现。 4倒引号() 由倒引号括起来的字符串被Shell解释为命令行,在执行时,Shell会先执行该命令行,并以它的标准输出结果取代整个倒引号部分。倒引号的例子 rootlocalhost # echo ls anaconda-ks.cfg Desktop dir.txt install.log install.log.syslog run1.sh run.sh runshell.sh rootlocalhost # ls 例子 rootlocalhost # pwd=/root rootlocalhost # echo $pwd /root rootlocalhost # echo pwd and $LOGNAME /root and root rootlocalhost # echo pwd and $LOGNAME /root and $LOGNAME rootlocalhost # echo pwd and $LOGNAME pwd and $LOGNAME 4Shell变量在Shell中有3种变量:系统变量、环境变量和用户变量。其中系统变量在对参数判断和命令返回值判断会使用,环境变量主要是在程序运行的时候需要设置,用户变量在编程过程中使用最多。Shell常用的系统变量并不多,但在做一些参数检测的时候十分有效。表10-1是Shell常用的系统变量。 四、实验过程1,查询系统使用的shell. Echo $SHELL 2.使用vi编辑器编辑一个shell脚本#!/bin/bash#a Simple shell Script Example#a Functionfunction say_hello()echo Enter Your Name,Please. :read nameecho Hello $nameecho Programme Starts Here.say_helloecho Programme Ends.实验七 Linux编程工具的使用一、实验目的1掌握Linux环境下Gcc编译器的使用。2了解Linux环境下gdb调试器的配置二、实验工具一台带网卡的已安装好Linux的计算机三、实验原理1. GCC编辑器 GCC=GNU Compiler Collection,是由Stallman所开发的linux下的编译器,可以编译的语言包括:C, C+, Objective-C, Fortran, Java,Ada等。不过,现在GCC也有了许多Win32下的移植版本。 MinGW,即 Minimalist GNU For Windows。它是一些头文件和端口库的集合,该集合允许人们在没有第三方动态链接库的情况下使用 GCC 产生 Windows32 程序2. gcc的部分约定规则 .c为后缀的文件,C语言源代码文件; .a为后缀的文件,是由目标文件构成的档案库文件; .C,.cc,.cpp或.cxx 为后缀的文件,是C+源代码文件; .h为后缀的文件, 是程序所包含的头文件; .i 为后缀的文件,是已经预处理过的C源代码文件; .ii为后缀的文件,是已经预处理过的C+源代码文件; .m为后缀的文件,是Objective-C源代码文件; .o为后缀的文件,是编译后的目标文件; .s为后缀的文件,是汇编语言源代码文件; .S为后缀的文件,是经过预编译的汇编语言源代码文件。3. GCC编译过程四个步骤 预处理,生成.i的文件(预处理器cpp) 将预处理的文件不转成汇编语言,生成.s文件(编译器egcs) 有汇编的变目标代码生成.o的文件(汇编器as) 连接目标代码,生成可执行程序(连接器ls)4. Gcc最基本的用法 gcc options filenames options编译器参数,filenames文件名称 -c,只编译,不连接成为可执行文件 -o output_filename,输出文件名, 默认为a.out . -g,产生符号调试工具(GNU的gdb)所必要的符号资讯 -O,对程序进行优化编译、连接 -O2,比-O更好的优化编译、连接 -e:激活预处理,例子使用VI编辑器编辑hello.c #include int main() printf(hello,worldn); 编译hello.c rootlocalhost # gcc -E hello.c hello.pre rootlocalhost # gcc -S hello.c rootlocalhost # gcc -o hello.o hello.c rootlocalhost # gcc -o hello.i hello.c rootlocalhost # dir hello.c hello.pre hello.i hello.s hello.o rootlocalhost # gcc hello.c rootlocalhost # ./a.out Hello world rootlocalhost # ./hello.o Hello world rootlocalhost # ./hello.i Hello world5. gdb简介 gdb是一个功能相当强大的调试器,能在程序运行时观察程序的内部结构和内存堆栈的情况。总体说来,gdb具有如下几个主要的功能: (1)监视程序中变量的值 (2)设置程序断点 (3)逐行执行代码6. gdb的基本用法命 令 说 明file 装入想要调试的可执行文件kill 终止正在调试的程序list 列出产生执行文件的源代码的一部分next 执行一行源代码但不进入函数内部step 执行一行源代码而且进入函数内部run 执行当前被调试的程序quit 终止gdbwatch 监视一个变量的值而不管它何时被改变break 在代码里设置断点,这将使程序执行到这里时被挂起make 不退出gdb的情况下,就可以重新产生可执行文件shell 能不离开gdb就执行UNIX shell命令四、实验内容1. 按照实验原理的程序编辑hello.c的程序并进行编译验证。2. 按照实验原理的程序编辑test.c的程序并进行gdb调试验证gdb的实例 1 #include 2 3 int func(int n) 4 5 int sum=0,i; 6 for(i=0; in; i+) 7 8 sum+=i; 9 10 return sum; 11 12 13 14 main() 15 16 int i; 17 long result = 0; 18 for(i=1; i=100; i+) 19 20 result += i; 21 22 23 printf(result1-100 = %d n, result ); 24 printf(result1-100 = %d n, func(100) ); 25 使用GDB调试 gcc编译 rootlocalhost Desktop# gcc -o test.o test.c rootlocalhost Desktop# ./test.o result1-100 = 5050 result1-100 = 4950 启动GDB rootlocalhost Desktop# gdb test.o GNU gdb Red Hat Linux (6.5-25.el5rh) Copyright (C) 2006 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are. 等待输入gdb命令 (gdb) 光标10 用GDB调试(file) gdb) file test.o Reading symbols from /root/Desktop/test.o.(no debugging symbols found).done. (gdb) list No symbol table is loaded. Use the file command. 注意,在编译test.c时需要将调试选项打开 rootlocalhost Desktop# gcc -g -o test.o test.c (gdb) file test.o Load new symbol table from /root/Desktop/test.o? (y or n) y Reading symbols from /root/Desktop/test.o.done.使用GDB调试(list,简写为l) (gdb) l (gdb) list 1(gdb) 直接回车表示,重复上一次命令 .(gdb) 直接回车表示,重复上一次命令 .设置断点 设置断点,在源程序第15行处 (gdb) break 15 Breakpoint 1 at 0x80483c2: file test.c, line 15. 设置断点,在函数func()入口处 (gdb) break func Breakpoint 2 at 0x804838a: file test.c, line 4. 查看断点信息 (gdb) info break Num Type Disp Enb Address What 1 breakpoint keep y 0x080483c2 in main at test.c:15 2 breakpoint keep y 0x0804838a in func at test.c:4运行程序,run命令简写r (gdb) run Starting program: /root/Desktop/test.o Breakpoint 1, main () at test.c:15 15 long result = 0; 在断点处停住单条语句执行,next命令简写n gdb) n 16 for(i=1; i=100; i+) (gdb) n 18 result += i;继续运行程序,continue命令简写c (gdb) c Continuing. result1-100 = 5050打印变量i的值,print命令简写 p (gdb) r Starting program: /root/Desktop/test.o Breakpoint 1, main () at test.c:15 15 long result = 0; (gdb) p result $4 = 7181248 (gdb) n 16 for(i=1; i=100; i+) (gdb) p i $5 = 8536052_实验八 GTK+图形界面程序设计一、实验目的1.了解Linux GTK+的用途。2.掌握GTK+图形界面程序设计的基本方法。3.掌握用户账户管理及安全管理。二.实验设备硬件:PC 机。软件:VMware Workstation 虚拟机、fedora 操作系统。三.实验原理GTK+ 是一种函数库是用来帮助制作图形交互界面的。整个函数库都是由C语言来编写的。 GTK+函数库通常也叫做 GIMP 工具包。因为,一开始GTK+是用来编写“GIMP”这个图形处理软件的。 从那以后, GTK+就逐渐成为了Linuxand BSDUnix 下最受欢迎的用于图形交互界面(GUI)设计的工具包之一。时至今日,大多数的Linux 下的GUI 软件(有图形交互界面)都是由GTK+或者QT 来编写的。GTK+是一种面向对象式的API(applicationprogramming interface)。Glib是GTK+的基础,而这种“面向对象系统”正是由“Glib”来提供的。 GObject 也就是这种面向对象的机制可以为 GTK+绑定很多种开发语言。目前存在的语言有:C+, Python, Perl, Java, C#,PHP,等其他高级语言。GTK+ 编程需要以下几个步骤: 初始化GTK+ 建立窗口 事件循环 结束应用程序 回调函数(1)写GTK+程序需要调用gtk_init函数对GTK+ 库函数进行初始化 名称::gtk_init功能:初始化GTK+ 库头文件:#include 函数原形:void gtk_init(int *argc,char *argv); 参数:argc 指向主函数argc的指针 argv 指向主函数argv的指针返回值:无(2)在GTK+中建立构件分两步:建立构件,然后使它可以看得见。gtk_window_new函数负责建立窗口。gtk_widget_show函数负责使它成为可见。(3)对GTK+进行初始化并将窗口和构件置于屏幕以后,程序就调用get_main函数等待某种事件的执行。名称::gtk_main功能:等待事件的发生头文件:#include 函数原形:void gtk_main(void);参数:无返回值:无(4)名称:结束应用程序gtk_main_quit 功能:结束应用程序 头文件:#include 函数原形:void gtk_main_quit(void); 参数:无 返回值:无 gtk_main_quit函数可以结束程序,它通常在回调函数中被调用。(5)回调函数 在GTK+中经常产生各种信号,多数情况下信号被忽略。以按钮构件为例,应用软件有专门用于按钮的信号。当用户按下鼠标或释放鼠标按钮时,当用户电机鼠标时,或者当鼠标移过按钮或离开按钮时都产生各自的信号。应用程序可以忽略掉一些信号,只对感兴趣的事件加以处理。 当需要对信号进行处理时,需要用GTK+登记回调函数,并将它和构件联系在一起。构件可以登记回调函数,回调函数可与多个构件联系在一起。名称::g_signal_connect 功能:信号登记函数 头文件:#include 函数原形:gulong g_signal_connect(gpointer *object,const gchar *name,GCallbackfunc,gpointer data);参数:object 发出信号的控件name 信号名称func 回调函数(对信号要采取的动作)data 传给回调函数的数据返回值 四.实验内容1.使用GTK+编写一个简单的图形界面。五.实验步骤(1)使用Vi 编写程序helloworld.c 。代码如下:#include void on_btn_clicked(GtkWidget *widget, gpointer data)g_print(HelloWorld!n);void on_delete(GtkWidget *widget, GdkEvent *event, gpointer data)g_print(WindowClosed.n);gtk_main_quit();int main(int argc, char *argv )GtkWidget *window;GtkWidget *button;gtk_set_locale();gtk_init(&argc,&argv);window = gtk_window_new(GTK_WINDOW_TOPLEVEL);gtk_window_set_title(GTK_WINDOW(window),HelloWorld!);gtk_container_set_border_width(GTK_CONTAINER (window), 10);g_signal_connect (G_OBJECT (window), delete_event,G_CALLBACK (on_delete), NULL);button = gtk_button_new_with_label (Hello World);g_signal_connect (G_OBJECT (button), clicked,G_CALLBACK (on_btn_clicked), NULL);gtk_container_add (GTK_CONTAINER (window), button);gtk_widget_show_all(window);gtk_main();return 0;(2)源文件保存在当前工作目录中;(3)利用gcc 编译:命令:$gcc helloworld.c o helloworld pkg-config gtk+-2.0 -cflags -libs说明:输出文件为helloworld以命令pkg-config gtk+-2.0 -cflags -libs 的运行结果为gcc 的额外参数;(4)运行:./helloworld_运行27 / 27
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 商业管理 > 销售管理


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!