linux综合实验
- 格式:doc
- 大小:418.00 KB
- 文档页数:9
Linux综合实验项目指导书学院:计算机学院专业:软件工程课程:Linux课程设计制订人: **审核人:**制订时间:2020年5月目录内容及时间安排 (2)项目一Linux文件和目录操作 (3)一、实训目标及要求 (3)二、实验设备与工具 (3)三、实验内容与要求 (3)四、实验步骤 (3)项目二Linux系统用户管理策略分析 (6)一、实训目标及要求 (6)二、实验设备与工具 (6)三、实验内容与要求 (6)1、实训内容 (6)2、设计要求 (6)3、设计思路 (6)项目三进程管理 (10)一、实训目标及要求 (10)二、实验设备与工具 (10)三、实验内容与要求 (10)1、掌握内容 (10)2、实验步骤 (11)项目四shell编程综合设计 (13)一、实训目标及要求 (13)二、实验设备与工具 (13)三、实验内容与要求 (13)附:几种素数算法....................................................................................错误!未定义书签。
项目五Apache服务器配置与个人Web站点配置 (14)一、实训目标及要求 (14)二、实验设备与工具 (14)三、实验内容与要求 (14)内容及时间安排项目一Linux文件和目录操作一、实训目标及要求1. 掌握Linux一般命令格式2. 掌握有关文件和目录操作的常用命令。
3. 熟练使用man命令。
二、实验设备与工具PC计算机,安装虚拟机Vmware workstation 10.0,在虚拟机安装了Redhat Linux 9.0,或者云桌面终端实验室,安装Centos 6.5(或7、8版本) Linux 操作系统。
三、实验内容与要求1.正确地登录和退出系统。
2.熟悉date,cal,who,echo,clear,passwd命令。
3.在用户主目录下对文件进行操作:复制一个文件,显示文件内容,查找指定内容,排序,文件比较,文件删除等。
linux实验报告实验目的:通过对Linux操作系统的实践,掌握基本的Linux命令和操作方法,了解Linux操作系统的特点和优势。
实验一:Linux环境搭建在实验一中,我们首先需要搭建Linux操作系统的环境。
根据实验指导书的要求,我们选择了Ubuntu作为实验平台。
通过下载Ubuntu镜像文件,并利用虚拟机软件创建一个虚拟机,将镜像文件安装到虚拟机中。
在安装过程中,我们需要选择合适的分区和网络配置等,并设置root用户的密码。
实验二:基本命令的使用在实验二中,我们主要学习了Linux的基本命令的使用方法。
首先,我们了解了Linux文件系统的结构,包括根目录、用户目录、系统目录等。
然后,通过命令行终端进行一系列的实践操作,比如查看文件内容、创建目录、复制文件等。
这些命令的使用不仅提高了我们的工作效率,同时也增强了对Linux操作系统的理解。
实验三:软件安装与卸载实验三主要涉及到Linux的软件安装与卸载。
我们首先学习了使用APT工具进行软件包管理,通过安装命令行界面的方式安装了一些常用的软件,比如文本编辑器、终端工具等。
此外,我们还学习了如何卸载已安装的软件包,清理不需要的文件,以保持系统的整洁性。
实验四:权限管理在实验四中,我们学习了Linux的权限管理机制。
Linux操作系统采用了基于用户和组的权限模型,通过设置文件和目录的权限,实现对文件的读、写、执行的控制。
我们通过实际操作,创建了新的用户和组,并为不同的用户和组设置了不同的权限。
这样,可以有效地保护系统的文件和数据的安全性。
实验五:网络配置与服务搭建在实验五中,我们主要学习了Linux的网络配置和服务搭建。
通过设置网络接口、IP地址和网关等参数,实现了网络的正常连接。
同时,我们还学习了一些常用的网络命令,比如ping、ssh等。
此外,我们尝试搭建了一个简单的Web服务器,通过浏览器访问,可以查看服务器上的网页。
实验六:系统监控和故障恢复在实验六中,我们学习了Linux的系统监控和故障恢复方法。
目录实验一Linux基本操作一、实验目的1、掌握linux操作系统的登录与其他基本口令2、掌握linux操作系统的基本命令二、实验内容1、linux命令的格式2、Linux命令的输入、修改、执行、分类、联机帮助3、Linux文件操作三、实验环境安装有Fedora操作平台的计算机一台四、实验过程与结果分析一、linux基本操作由于实验中我们使用的不是root权限,所以对于一些用户建立,关机等都没有相应的权限。
1)登录1.控制台登录提供用户名与密码方可登录2.远程登录这部分由于实验环境所限为进行练习2)修改口令Password pass3)退出4)关机与重启关机:shutdown now重启:reboot二、linux命令这部分主要是练习主要的命令格式(命令格式为:命令名选项一选项二…参数一参数二… )命令的输入与修改,命令的执行等等,这些操作也都及其简单。
主要是用以下几个命令1)$who$who –q /*显示登录用户名和用户数*/$who am I /*显示当前用户和登录时间*/2)echo命令:$ echo Hello! */显示字符串中的参数字符串/*-n /*输出字符串后不换行*/3)data命令用法示例:$date …+Today is %D,now is %r‟ /*显示今天的日期,和现在的时间*/$date …%B %d,%Y‟ /*显示月日年*/4)cal /*显示当年当月的日历*/三、文件操作Linux文件通常是由字母、数字、“.”、“_”和“-”字符组成。
在对大量文件进行操作时可以使用通配符。
个人觉得文件的通配符非常的重要,使用起来及其方便,主要的通配符有以下几种:?:匹配任意单个字符* :匹配0或多个任意字符[ ]:匹配方括号中列出的字符集中的任意单个字符集例如:输出所有以.c结尾的文件$ echo *.c对文件的操作主要有创建新文件,对文件权限的操作,文件的转移等等,命令操作如下所示:1)文件的创建1.cat > newfile2.vi newfile2)文件的权限文件主要有权限有读权限、写权限、执行权限、无权限四种3) 常用文件操作的命令1.文件显示:cat 、more、less2.文件复制、删除和移动cp、rm、mv3.文件内容的统计和排序wc、sort4.改变文件的存取权限chmod5.改变文件的时间标签touch6.设置文件掩码umask7.文件查找、搜索find、grep四、目录操作目录操作是本章最重要的内容,它结合文件操作,用户必须熟练使用在各种目录下进行文件操作。
实验1:安装Linux系统【实验目的和要求】:安装Linux系统,掌握操作系统的系统配置,建立应用环境的过程。
【实验内容】:1、首先在windows系统中安装虚拟机。
在网上找到VMwareWorksttionPro版本,确定安装目录。
一直下一步,不需要太多的说明。
2、图为安装完成后的界面。
3、然后在阿里巴巴开源镜像网站下载centos系统镜像,然后虚拟机创建新的虚拟机,进行一些简单的虚拟机设置,设置了网络链接nat模式等等。
安装完成后的界面实验2:Linux下c语言开发【实验目的】:学会和掌握用c语言开发一个应用程序的全过程,包括,编译,调试等等。
【实验步骤】:首先在系统中查看是否已经安装有gcc,输入查看命令发现没有,于是需要安装gcc。
在centos系统中可以使用比较简便的yum命令。
在之前已经配置好了yum源。
直接输入yuminstallgcc。
回车自动安装程序和需要的依赖包。
因为虚拟机中和电脑很多地方切换使用不方便,所以安装了xshell软件。
图为xshell中的截图。
安装完毕。
然后使用vi或者vim编写hello.c运行,在屏幕上打印出hello,world。
实验3:进程创建【实验目的和要求】1.了解进程的概念及意义;2.了解子进程和父进程3.掌握创建进程的方法。
【实验内容】1.子进程和父进程的创建;2.编写附件中的程序实例【实验步骤】一1、打开终端,输入命令gedit1_fork.c,在1_fork.c文件中输入1_fork.bmp中的代码;2、输入命令gcc1_fork.c-o1_fork,回车后显示无错误;3、输入命令:./1_fork运行程序。
二、1、打开终端,输入命令gedit2_vfork.c,在2_vfork.c文件中输入2_vfork.bmp中的代码;2、输入命令gcc2_vfork.c-o2_vfork,回车后显示无错误:3、输入命令:./2_vfork运行程序。
从上面可以看到两次的运行结果不一样。
linux实验报告1《Linux 实验报告 1》一、实验目的本次 Linux 实验的主要目的是让我们熟悉 Linux 操作系统的基本操作和常用命令,了解其文件系统结构,并能够在终端环境下进行一些简单的任务处理。
二、实验环境本次实验使用的是虚拟机软件 VirtualBox 中安装的 Ubuntu 2004LTS 操作系统。
三、实验内容及步骤(一)用户登录与系统信息查看1、打开虚拟机,进入 Ubuntu 系统登录界面,输入用户名和密码登录。
2、在终端中输入命令“uname a”查看系统内核信息,包括操作系统类型、内核版本等。
3、输入“lsb_release a”命令查看系统的发行版信息,如发行版名称、版本号等。
(二)文件和目录操作1、使用“cd”命令切换到不同的目录,如“cd /home”切换到用户主目录,“cd /etc”切换到系统配置目录等。
2、使用“ls”命令列出当前目录下的文件和子目录,结合“l”选项查看详细信息,包括文件权限、所有者、大小、修改时间等。
3、创建新目录,使用“mkdir testdir”命令在当前目录下创建一个名为“testdir”的目录。
4、在新创建的目录中创建一个文本文件,使用“touch testfiletxt”命令创建一个空的文本文件。
5、使用“cat”命令查看文本文件的内容,由于文件为空,此时没有输出。
6、使用“vi”或“nano”编辑器编辑文本文件,输入一些内容后保存退出。
7、使用“cp”命令复制文件,如“cp testfiletxt testfile_copytxt”复制文件并命名为“testfile_copytxt”。
8、使用“mv”命令移动文件,将“testfile_copytxt”移动到其他目录。
9、使用“rm”命令删除文件和目录,注意删除目录时需要使用“r”选项,如“rm r testdir”删除“testdir”目录及其包含的所有文件。
(三)文件权限管理1、使用“ls l”命令查看文件的权限信息,了解权限的表示方式,如“rwrr”等。
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课程综合训练实验报告1) 实验目的:熟练掌握Linux操作系统的使用,掌握Linux的各项系统管理功能,掌握Linux下各类网络服务的安装、配置以及使用,并能用shell脚本实现简单的管理任务。
2) 实验内容:准备工作:利用虚拟机安装Linux操作系统,要求对/home目录单独分区,在系统中安装适当的软件包以备后续的实验需要,可关闭防火墙和SeLinux。
完成安装后将/root中的anaconda-ks.cfg文件的内容附到报告中。
(5分)1.查看Linux系统磁盘空间的使用情况(给出显示结果)(3分)在命令行新建几个用户,如tux,tom,lily等,给每个用户创建密码,测试各个用户是否创建成功。
(2分)并为/home分区创建磁盘配额,使得你所创建的每个用户的可用空间的软限制为100M,硬限制为150M,且每个用户可用的inodes的软限制为300,硬限制为400。
试编写shell测试脚本验证你的磁盘配额设置。
(10分)2.配置网络,并进行检测,确保能够在本地网络中联网通信(给出网络接口配置文件ifcfg-eth0)。
(5分)假设本地网络中大部分客户端是windows系统,请建立Linux Samba服务器使得windows客户端能够共享Linux服务器的资源,具体要求如下:创建一个共享文件夹/home/Public,使得所有用户都可以匿名访问(可读写)。
(5分)每个用户可以访问自己的主目录,具有完全权限,采用用户验证的方式;(5分)为用户tux和tom创建一个共享目录/home/share,可供这两个用户进行文件的共享(可读写);(5分)测试:使用smbclient客户端程序登录Samba服务器,访问服务器中的共享资源。
注:以上用户以及文件夹需要自己创建,并使之具有适当的权限。
实验报告中需要给出配置文件及相关的运行结果。
3.请思考如下场景并考虑解决方案:Root用户有事外出,委托tux进行必要的系统维护工作,使得tux虽然并不具备管理员权限但能进行诸如shutdown,httpd,samba等服务的管理工作(如启动,关闭,重启等)。
linux期末实验报告总结1. 实验概述本次Linux期末实验主要包括对Linux操作系统的基本操作、文件管理、进程管理、权限管理、Shell脚本编程等方面的实践,旨在加深对Linux操作系统的理解,提高实际应用能力。
2. 实验过程2.1 基本操作通过命令行操作,掌握Linux 操作系统的基本指令。
包括登录、注销、重启等命令的使用。
2.2 文件管理对文件和目录的创建、删除、复制、移动等操作进行练习,掌握文件和目录的属性设置、查看文件和目录的内容等技巧。
2.3 进程管理学习进程的基本概念和相关命令,如查看进程、杀死进程等,了解进程的状态转换、进程优先级等。
2.4 权限管理学习 Linux 文件权限的概念和设置方式,掌握用户和用户组的管理方法。
2.5 Shell脚本编程学习 Shell 脚本的编写、运行和调试方法,实现一些简单的自动化任务,如文件备份、日志分析等。
3. 实验心得通过本次实验,我对 Linux 操作系统有了更深入的认识。
在实验过程中,我遇到了以下几个问题,并通过上网查询和向同学请教解决了:3.1 命令行操作一开始对命令行操作不太熟悉,不知道如何快速切换目录、查看文件内容等。
后来学会了使用 cd 命令切换目录,使用 cat 命令查看文件内容,大大提高了工作效率。
3.2 文件管理对于文件和目录的复制、移动等操作会出现一些权限问题,需要先设置权限或者以管理员身份执行命令才能成功。
通过学习 chmod 命令设置权限,以及使用 sudo 命令以管理员身份执行命令,解决了这些问题。
3.3 进程管理在了解了进程的基本概念后,我开始试着使用 ps 命令查看进程,发现有很多参数可以选择,有时候会有困惑。
后来通过查阅ps 命令的帮助文档,了解到了不同参数对应的含义,解决了这个问题。
3.4 权限管理对于用户和用户组的管理操作,刚开始不太熟悉。
通过学习 useradd、usermod、groupadd 等命令的使用方法,成功创建了用户和用户组,并进行了相关设置。
《网络操作系统》综合实训指导书院系:信息科学与工程学院班级:07网络教师:温静静实验一、Linux的基本操作和常用命令的使用一、实验目的1.学会不同Linux用户登录的方法。
2.掌握常用Linux命令的使用方法。
3.了解Linux命令中参数选项的用法和作用。
二、实验工具与设备1.已安装Linux操作系统的计算机。
2.或装有Windows操作系统的计算机并通过网络与Linux服务器连接。
三、实验内容和步骤1.登录系统以适当的用户名在Windows 95/98下远程登录Linux主机,或在装有Linux系统的计算机中登录Linux系统。
2.文件操作命令(1)查看文件与目录ls(2)显示文件内容命令(cat)(3)文件复制命令(cp)(4)文件改名命令(mv)(5)删除文件命令(rm)3.目录操作命令的使用(1)改变当前目录命令(cd)和显示当前目录命令(pwd)(2)建立子目录命令(mkdir)在用户目录下创建如图所示的目录结构。
图创建的目录结构(3)删除子目录命令(rmdir)4.用户管理命令的使用(1)登录命令(login)和注销命令(logout)提示:可以直接用Ctrl+d退出或注销用户。
(2)添加和更改用户命令①添加用户②转换用户(3)修改用户密码命令(passwd)(4)关机命令(shutdown,终止或重启系统的命令)命令格式:shutdown [-r] [-h] [-c] [-k] [[+]时间]5.其他操作命令的使用(1)链接命令(ln)(2)查看用户命令who命令:查看当前正在登录的其他用户的命令。
whoami命令:查看当前正在使用(登录)的用户名。
(3)查看命令帮助信息命令(man)man命令:联机帮助命令。
用于查询命令和程序的使用方法和参数。
四.实验要求:1.写出实验报告2.练习题(1)熟悉Linux命令的功能和使用。
(2)将图1-5所示的目录结构变为图1-6所示的目录结构。
Linux实验报告Linux 实验报告实验[ 一]:Linux操作系统的基本操作学生:学号:班级:实验时间:报告时间:系别:学院:实验一:Linux操作系统的基本操作一、实验目的:1、熟悉Linux的桌面环境;2、了解Linux所安装的软件包3、了解Linux的文件目录结构;4、熟悉Linux的终端方式或文本方式下文件目录操作命令。
5、了解Linux的命令及使用格式。
6、熟悉Linux系统的文件和目录二、实验要求1、Linux的桌面环境GNOME、KDE;2、Linux的终端方式和文本方式下的命令操作。
3、练习并掌握常用的Linux操作命令,如ls、cat、ps、who、echo、cd、more、cp、rm、ps等;4、学习使用Linux的在线求助系统,如man和help命令等。
三、实验内容1、系统的使用进入终端、文本模式,分别以用户身份登录,在窗口模式中打开终端(Termainal)仿真程序:点击:系统工具/终端(SystemTools/Terminal);在窗口模式中按:Ctrl+Alt+F1,进入文本模式,Ctrl+Alt+F7,反回GUI模式。
第一次进入文本模式时需登录(login),输入用户名及口令。
进入后提示:[root@ylinux root]# _提示符#:超级用户,提示符$:普通用户。
2、命令的使用(1)显示目录文件ls执行格式:ls [-atFlgR] [name] (name可为文件或目录名称)例:ls 显示出当前目录下的文件ls -a 显示出包含隐藏文件的所有文件ls -t 按照文件最后修改时间显示文件ls -F 显示出当前目录下的文件及其类型ls -l 显示目录下所有文件的许可权、拥有者、文件大小、修改时间及名称ls -lg 同上ls -R 显示出该目录及其子目录下的文件注:ls与其它命令搭配使用可以生出很多技巧(最简单的如"ls -l | more"),更多用法请输入ls --help查看,其它命令的更多用法请输入命令名--help 查看.(2)建新目录mkdir执行格式:mkdir directory-name例:mkdir dir1(新建一名为dir1的目录)(3)删除目录rmdir执行格式:rmdir directory-name 或rm directory-name例:rmdir dir1 删除目录dir1,但它必须是空目录,否则无法删除rm -r dir1 删除目录dir1及其下所有文件及子目录rm -rf dir1 不管是否空目录,统统删除,而且不给出提示,使用时要小心(4)改变工作目录位置cd执行格式:cd [name]例:cd 改变目录位置至用户login时的working directorycd dir1 改变目录位置,至dir1目录cd ~user 改变目录位置,至用户的working directorycd .. 改变目录位置,至当前目录的上层目录cd ../user 改变目录位置,至上一级目录下的user目录cd /dir-name1/dir-name2 改变目录位置,至绝对路径(Full path)cd - 回到进入当前目录前的上一个目录(5)显示当前所在目录pwd执行格式:pwd(6)查看目录大小du执行格式:du [-s] directory例:du dir1 显示目录dir1及其子目录容量(以kb为单位)du -s dir1 显示目录dir1的总容量(7)显示环境变量echo $HOME 显示家目录echo $PATH 显示可执行文件搜索路径env 显示所有环境变量(可能很多,最好用"env | more","env | grep PATH"等)(8)修改环境变量,在bash下用export,如:export PATH=$PATH:/usr/local/bin想知道export的具体用法,可以用shell的help命令:help export2、文件操作(1)查看文件的内容cat执行格式:cat filename或more filename 或cat filename|more 例:cat file1 以连续显示方式,查看文件file1的内容more file1或cat file1|more 以分页方式查看文件的内容(2)删除文件rm执行格式:rm filename例:rm file?rm f*(3)复制文件cp执行格式:cp [-r] source destination例:cp file1 file2 将file1复制成file2cp file1 dir1 将file1复制到目录dir1cp /tmp/file1 将file1复制到当前目录cp /tmp/file1 file2 将file1 复制到当前目录名为file2cp –r dir1 dir2 (recursive copy)复制整个目录。
xxx大学2019-2020学年第2学期Linux应用实践实验报告一、实验目的1、掌握gcc的编译流程、编译方法和使用;2、掌握中大型项目的需求分析、系统设计、编码、测试,以及项目的部署运行,具备复杂工程问题的解决能力;3、掌握综合应用Linux知识点进行管理和软件开发的能力;4、掌握文献检索、系统建模、文档写作等方面的能力。
二、实验内容编写程序1.要求使用C语言实现一个数独生成器,可以随机生成数独题,并调试输出2.编写一个解数独程序,并调试输出三、实验代码和过程1.数独生成程序void shiftarray(int a[9]) //左移3位{int temp[3] = { 0 };for (i = 0; i < 3; i++){temp[i] = a[i];}for (i = 0; i < 6; i++){a[i] = a[i+3];}for(i=0;i<3;i++)a[i+6] = temp[i];}void print(int array[9][9]){printf( "******数独答案*******\n");for (i = 0; i < 9; i++){for (j = 0; j < 9; j++)printf("%d " ,array[i][j] );printf("\n");}printf( "**********************\n");}void swap(int &a, int &b) //交换{int tmp;tmp = a;a = b;b = tmp;}void creatsudo(){printf("创建数独\n");srand(time(0));int m, c[9] = { 0 };int tmpi, tmpj;for (j = 0; j < 9; j++){if (j==3) { //每三次左移1位int tmp = a[0];for (i = 1; i < 9; i++)a[i - 1] = a[i];a[8] = tmp;for (i = 0; i < 9; i++)b[j][i] = a[i];shiftarray(a);}else if (j==6) {int tmp = a[0];for (i = 1; i < 9; i++)a[i - 1] = a[i];a[8] = tmp;for (i = 0; i < 9; i++)b[j][i] = a[i];shiftarray(a);else {for (i = 0; i < 9; i++)b[j][i] = a[i]; //填充行shiftarray(a);} //左移}x = 0;tmpi = rand() % 3;tmpj = rand() % 3;while(tmpj==tmpi)tmpj = rand() % 3;for (j = 0; j < 3; j++){swap(b[j][tmpi], b[j][tmpj]);swap(b[j][tmpi + 3], b[j][tmpj + 3]);swap(b[j][tmpi + 6], b[j][tmpj + 6]);//交换行}for(j=3;j<6;j++){swap(b[j][tmpi], b[j][tmpj]);swap(b[j][tmpi + 3], b[j][tmpj + 3]);swap(b[j][tmpi + 6], b[j][tmpj + 6]);//交换行}for (j = 6; j < 9; j++){swap(b[j][tmpi], b[j][tmpj]);swap(b[j][tmpi + 3], b[j][tmpj + 3]);swap(b[j][tmpi + 6], b[j][tmpj + 6]);//交换行}for (j = 0; j < 3; j++){swap(b[tmpi][j], b[tmpj][j]);//交换列swap(b[tmpi + 3][j], b[tmpj + 3][j]);//交换列swap(b[tmpi + 6][j], b[tmpj + 6][j]);//交换列}for (j = 3; j <6; j++){swap(b[tmpi][j], b[tmpj][j]);//交换列swap(b[tmpi + 3][j], b[tmpj + 3][j]);//交换列swap(b[tmpi + 6][j], b[tmpj + 6][j]);//交换列}for (j = 6; j < 9; j++)swap(b[tmpi][j], b[tmpj][j]);//交换列swap(b[tmpi + 3][j], b[tmpj + 3][j]);//交换列swap(b[tmpi + 6][j], b[tmpj + 6][j]);//交换列}for (i = 0; i < 9; i++){for (j = 0; j < 9; j++){if (b[i][j] == 1)b[i][j] = 8;else if (b[i][j] == 8)b[i][j] = 1;}}for (i = 0; i < 9; i++)for (j = 0; j < 9; j++)answer[i][j] = b[i][j]; //存放答案for (i = 0; i < 9; i++)for (j = 0; j < 4; j++){tmpi = rand() % 9;b[i][tmpi] = 0; //随机扣去几个数}for (i = 0; i < 9; i++)for (j = 0; j < 9; j++){if (b[i][j] == 0)printf( "# ");else printf("%d " ,b[i][j] );if (j == 8)printf( "\n");}printf(" 输入 # 查看答案");char p;p = getchar();if (p == '#')print(answer);else return;}2.解数独程序//从二维数组的左上角开始,向右搜索int backtrack(int s[9][9], int row, int col) {if (row == 9)return 1;//最后一个,在这之前是s[8][8];递归到最深处;成功返回if (s[row][col] != 0) {if (col == 8) {row++;col = 0;}elsecol++;return backtrack(s, row, col);}//如果 s[row][col]本来就有数据,需要跳过,分析下一个// s[row][col]是空的,则放入1~9for (int k = 1; k < 10; k++) {s[row][col] = k;if (place(s, row, col)) {//判断是否合法,如果合法就分析下一个if (col == 8) {if (backtrack(s, row + 1, 0)) {return 1;}}else {if (backtrack(s, row, col + 1)) {return 1;}}}s[row][col] = 0;//在后面的某次中发现,所有的数都有冲突,则前面的数放错了,所以需要恢复}//从1~9没有找到合适的数放入,之前的出错了return 0;}//判断整个数独是否合法int place(int s[9][9], int t, int j){for (int i = 0; i < 9; i++){if (s[t][i] == s[t][j] && i != j) {return 0;if (s[i][j] == s[t][j] && i != t) {return 0;}//判断列上没有冲突}//判断块中是否有重复的int x = t % 3;int y = j % 3;/*00 01 0210 11 1220 21 22*/if (x == 0 && y == 0) {if (justIsRepeatIN9(s, t, j, t, j)) {return 1;}else {return 0;}}if (x == 0 && y == 1) {if (justIsRepeatIN9(s, t, j - 1, t, j)) { return 1;}else {return 0;}}if (x == 0 && y == 2) {if (justIsRepeatIN9(s, t, j - 2, t, j)) { return 1;}else {return 0;}}if (x == 1 && y == 0) {if (justIsRepeatIN9(s, t - 1, j, t, j)) { return 1;}else {return 0;}if (x == 1 && y == 1) {if (justIsRepeatIN9(s, t - 1, j - 1, t, j)) { return 1;}else {return 0;}}if (x == 1 && y == 2) {if (justIsRepeatIN9(s, t - 1, j - 2, t, j)) { return 1;}else {return 0;}}if (x == 2 && y == 0) {if (justIsRepeatIN9(s, t - 2, j, t, j)) { return 1;}else {return 0;}}if (x == 2 && y == 1) {if (justIsRepeatIN9(s, t - 2, j - 1, t, j)) { return 1;}else {return 0;}}if (x == 2 && y == 2) {if (justIsRepeatIN9(s, t - 2, j - 2, t, j)) { return 1;}else {return 0;}}int justIsRepeatIN9(int s[9][9], int x, int y, int m, int n) {//判断一个九宫格中是否有重复的数//其中s是数组,x是起始的位置,y是起始是位置//因为之前的数据都是有序的,并不需要判断其他的是否合法,只要判断指定的数,只要知道特殊的//m,n是需要判断的内容for (int i = 0; i < 3; i++) {for (int j = 0; j < 3; j++) {if (s[x + i][y + j] == s[m][n] && x + i != m && y + j != n) {return 0;}}}return 1;}//打印数独中各个格子的值void showsudo(){for (int i = 0; i < 9; i++) {for (int j = 0; j < 9; j++){printf("%d ", sudo[i][j]);/*if (j % 3 == 2){printf(" ");}*/}printf("\n");/*if (i % 3 == 2) {printf("\n");}*/}printf("\n");}int main(){j = 0;for (i = 0; i < 9; i++)a[i] = i + 1;creatsudo();for(i=0;i<9;i++){sudo[i][j] = b[i][j];}backtrack(sudo, 0, 0);showsudo();system("pause");return 0;}四、实验结果分析第一个9*9的方块为随机生成的数独题,第二个9*9的方块为数独原本的解,第三个9*9的方块为用解数独程序得到的解五、实验中遇到的问题和解决问题的方法本次实验使用c语言随机生成9*9的数独,原思路是用一维数组存放1到9,之后分别左移一位再装入二维数组,然后随机交换4列4行,但是存在一个小9宫格内有相同数字的问题。
实验二:Linux系统的基本操作实验Linux系统的基本操作实验实验内容:安装 Linux操作系统;查看 Linux 的目录结构;在字符界面下各种基础命令的使用。
实验目的:通过亲自动手实践安装Linux 操作系统,对Linux 有个初步的认识,并且加深对Linux 中的基本概念的理解,并熟悉Linux 文件系统目录结构,熟悉Linux操作系统的环境。
掌握Linux系统下的基本操作;掌握字符界界面下基础命令的使用。
实验步骤(适当截图):1.环境搭建完成,用普通用户登录到Linux 下。
(提示:登录用户名为bc,密码为123456)2.使用文件浏览器熟悉文件的目录结构。
3.以root用户登录到Linux系统4.创建用户帐号1)在图形用户界面下创建自己的用户帐号及帐号密码;2)在字符界面下通过相关命令创建自己的帐号,通过相关命令设置自己帐号的密码;5.注销和重起Linux系统1)在图形用户界面下完成系统的注销、用自己的帐号重起系统;2)在字符界面下通过相关命令完成系统重启;3)命令shutdown有什么功能及学习如何使用;用法: shutdown[-i | -l | -s | -r | -a] [-f] [-m \computername] [-t xx] [-c "comment"] [-d up:xx:yy]没有参数显示此消息(与 ? 相同) -i 显示 GUI 界面,必须是第一个选项-l 注销(不能与选项 -m 一起使用)-s 关闭此计算机-r 关闭并重启动此计算机-a 放弃系统关机-m \computername 远程计算机关机/重启动/放弃-t xx 设置关闭的超时为 xx 秒-f 强制运行的应用程序关闭而没有警告-d [p]:xx:yy 关闭原因代码u 是用户代码p 是一个计划的关闭代码xx 是一个主要原因代码(小于 256 的正整数)yy 是一个次要原因代码(小于 65536 的正整数)-m \计算机名:控制远程计算机-i:显示图形用户界面,但必须是Shutdown的第一个选项-l:注销当前用户-r:关机并重启-t时间:设置关机倒计时-c "消息内容":输入关机对话框中的消息内容(不能超127个字符6.关闭系统1)在图形用户界面下关闭系统;2)在字符界面下通过相关命令关闭系统;7.启动计算机,利用root用户登录到系统,进入字符提示界面。
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目录。
Linux文件操作综合实验实验目的(1)掌握Linux文件操作命令和使用方法;(2)熟悉Linux操作环境.实验内容与要求练习使用Linux常用文件命令实验步骤(1)启动计算机,利用root用户登录系统,进入字符提示界面。
(2)用pwd命令查看当前所在的目录。
(3)用ls命令列出此目录下的文件和目录。
(4)用-a选项列出此目录下包括隐藏文件在内的所有文件和目录。
(5)用man命令查看ls命令的使用手册。
(6)在当前目录下,创建目录lesson。
(7)利用ls命令列出文件和目录,确认lesson目录创建成功。
(8)进入lesson目录,查看当前目录(9)利用touch命令,在当前目录创建一个新的空文件abc(10)利用cp命令复制系统文件/etc/fstab到当前目录下(11)复制文件fstab到一个新文件fstab.bak,作为备份(12)列出当前目录下的所有文件的详细信息,注意比较每个文件的长度和创建时间的不同(13)用less命令分屏查看文件fstab的内容,注意练习该命令的各个子命令,例如b,p,q等并对ext3关键词查找(14)用grep命令在文件中对关键字ext4进行查询,并与上面的结果作比较(15)用ln命令给文件fstab创建一个软链接fstab.lns和一个硬链接fstab.lnh(16)用ls -l显示文件fstab及其链接的详细信息(17)用mv命令删除用户主目录下的fstab,显示文件fstab.lns与fstab.lnh的详细信息,比较文件fstab.lnh的链接数的变化(18)用cat命令查看文件fstab.lnh的内容,看有什么结果(19)用cat命令查看文件fstab.lns的内容,看有什么结果(20)用mv命令删除以f开头且文件名中包含ln的所有文件,显示当前目录下的文件列表,回到上层目录(21)用tar命令把目录lesson打包(22)用gzip命令对打好的包进行压缩操作(23)把文件lesson.tar.gz改名为back.tar.gz(24)显示当前目录下的文件和目录列表,确认重命名成功(25)把文件backup.tar.gz移动到lesson目录下(26)显示当前目录下的文件和目录列表,确认移动成功(27)进入lesson目录,显示目录中的文件列表(28)把文件backup.tar.gz解包(29)显示当前目录下的文件和目录列表,复制lesson目录为lessonbak目录作为备份(30)查找root用户自己的主目录下的所有名为abc的文件(31)删除lesson子目录下的所有文件(32)利用rmdir命令删除空子目录lesson(33)回到上层目录,利用rm命令删除目录lesson及其下所有文件思考题(1)find命令与grep命令各用于何种场合?(2)如何把两个文件合并为一个文件?(3)理解重定向与管道命令在Linux命令操作中的角色。
Linux程序设计实验报告姓名:杨帆班级:计1242学号: 121842284专业:计算机科学与技术指导老师:赵帼英实验一 Linux系统安装与启动(选做实验)一、实验目的(通过实践及查阅资料完成如下实验)1.掌握虚拟机的配置过程。
2.掌握Linux系统的安装过程和简单配置方法。
3.掌握与Linux相关的多操作系统的安装方法。
4.掌握Linux系统的启动、关闭步骤。
5.了解Linux文件系统和目录结构。
二、实验内容1.安装虚拟机软件(如VMware、Virtualbox)。
2.在虚拟机软件中安装Linux操作系统(如Fedora、Ubuntu、redhat等)。
3.配置Linux系统运行环境。
4.正确地启动、关闭系统。
三、实验步骤1 .安装虚拟机软件(VMware Workstation 7.0) 。
2.在虚拟机软件中新建Linux虚拟机2.1设置内存大小(建议大于256MB)2.2设置虚拟硬盘大小(建议大于8GB)2.3设置虚拟光驱(虚拟方式,镜像文件)2.4设置网络连接模式(建议采用桥接方式)2.5设置共享目录(建议英文目录名)1.在Linux虚拟机中安装Linux操作系统(fedora10 )。
3.1选择安装界面3.2检测安装截介质(建议跳过)3.3安装过程中的语言、键盘选择3.4磁盘分区(采用自动分区,总大小与2.2相匹配)3.5引导程序选择(采用GRUB)3.6注意事项(禁用SELinux)2.通过相关命令实现对操作系统的登录、退出与关机3.使用文件浏览器査看Linux操作系统目录结构四、实验思考题1.举例说明Linux操作系统不同目录下文件的主要作用。
2.列出你发现的Linux与Windows操作系统区别。
3.列出决定文本界面及图形界面显示的关键文件,并说明设置的关键。
4.列出你所能想到的虚拟机软件的用途。
实验结论:实验二:linux基本命令(必做实验)一、实验目的、要求(请在操作后附实验结果)1.熟悉Linux操作环境。
(Linux实验报告汇总)本文是有关 Linux 实验的一份报告汇总,总结了完成了课程中的实验内容以及所得到的经验和收获。
本次实验是在 Linux 环境下进行的,主要学习的内容包括 Linux 的基本命令、文件系统管理、shell 编程、进程管理等。
# 实验一基本命令本次实验主要学习了 Linux 中的基本命令,如切换目录、常用文本编辑器、文件操作等。
通过实验,我对 Linux 中的基本命令有了更深入的理解和掌握,例如:1. cd 命令用于切换当前所在目录,可以通过相对路径和绝对路径进行切换。
2. Vim 是一款文本编辑器,可以通过命令和 insert 模式进行编辑操作,建立文本文件及目录。
3. touch 命令可以使用时和日期更新文件时间戳。
4. ls 命令可以查看当前所在目录及其文件和子文件夹的信息。
# 实验二文件系统管理该实验以文件系统为视角,通过对文件系统的管理、权限、修改等操作,深入理解Linux 文件系统的结构。
我通过实验学习了以下内容:1. mount 命令可以将文件系统分区挂载到指定的目录。
2. chown 命令用于改变文件或目录的所有者,需要管理员权限。
3. chmod 命令用于改变文件或目录的权限,包括读、写和执行权限,可以通过数字或字符进行表示。
4. ln 命令用于创建一个链接文件,可以将多个文件进行关联。
# 实验三 Shell 编程该实验是以 shell 编程为主题,通过编写 shell 脚本加深对 shell 的了解与掌握,同时了解向 shell 脚本传入参数等。
在该实验中,我学习了以下内容:1. shell 编程中的变量,如定义变量以及引用变量的方式。
2. if-else 语句的使用,用于逻辑判断和条件分支。
3. for 和 while 循环的使用,用于重复执行指定的语句块。
4. 将参数传入 shell 脚本中,可以通过 $1、$2 等特定方式进行引用。
该实验是以进程管理为主题,通过学习进程的状态、查找、调度及其相关管理工具,更好地了解 Linux 中的进程管理。
Linux综合作业实验报告1.实验目的本实验的主要目的是通过实践的方式学习和掌握Linux操作系统的基本使用方法及常用命令,加深对Linux操作系统的理解和认识。
2.实验环境本实验在一台装有Ubuntu操作系统的虚拟机中进行,使用的Linux 版本为Ubuntu 18.04 LTS。
3.实验内容本实验主要包括以下几个部分的内容:3.1文件操作在终端中使用命令创建一个名为test的目录,并在该目录中创建一个名为test.txt的文件,并在文件中写入一段文字。
3.2权限管理在test目录下创建一个名为test2的子目录,并将其权限设置为其他用户只能读取,自己及所在组用户可读写。
3.3系统操作使用命令查看当前系统的进程信息,并使用命令杀死一个进程。
3.4网络操作使用命令查看当前系统的网络连接信息,并使用命令查看一些特定IP地址的端口连接情况。
4.实验步骤4.1文件操作首先,打开终端,使用以下命令创建一个名为test的目录:```mkdir test```然后,使用以下命令进入test目录并创建一个名为test.txt的文件:```cd testtouch test.txt```保存文件后,使用以下命令查看文件内容并确认是否写入成功:```cat test.txt```4.2权限管理在test目录下,使用以下命令创建一个名为test2的子目录,并将其权限设置为其他用户只能读取,自己及所在组用户可读写:```cd testmkdir test2chmod 750 test2```4.3系统操作使用以下命令查看当前系统的进程信息:```ps aux```可以看到当前运行的进程列表及其详细信息。
使用以下命令杀死一个进程:```kill 进程ID```其中,进程ID为要杀死的进程的ID号。
4.4网络操作使用以下命令查看当前系统的网络连接信息:```netstat -an```可以看到当前系统的网络连接情况,包括本地地址、外部地址、状态等信息。
华北科技学院计算机学院综合性实验实验报告课程名称Linux操作系统实验学期2015 至2016 学年第二学期学生所在院部计算机学院年级大三专业班级信管B132班学生姓名学号成绩评定:1、工作量:A(),B(),C(),D(),F( )2、难易度:A(),B(),C(),D(),F( )3、答辩情况:基本操作:A(),B(),C(),D(),F( )代码理解:A(),B(),C(),D(),F( )4、报告规范度:A(),B(),C(),D(),F( )5、学习态度:A(),B(),C(),D(),F( )总评成绩:指导教师:兰芸计算机系制《Linux操作系统》课程综合性实验报告开课实验室:基础七2016年6月29日四、程序、调试步骤1、根据实验内容建立需要的目录与文件图1 /home/stu/abc目录图2 x1文件的填写内容图3 建立/home/stu/backup目录内的bak01.txt文件图4 建立data文件图5 显示backup目录下的内容2、利用crontab –e编辑定时任务图6 编辑任务3、shell程序#!/bin/bash#usage:procfile fileswhile truedoecho -n "1:定时删除文件2:定时复制文件内容3:定时打包文件4:定时卸载U盘[1|2|3|4|q]:"read choicecase $choice in1* ) crontab /home/stu/task1.cron;;2* ) crontab /home/stu/task2.cron;;3* ) crontab /home/stu/task3.cron;;4* ) crontab /home/stu/task4.cron;;q* ) exit 0;;* ) echo Illegal Options;;esacdone程序说明:crontab执行任务命令格式:crontab [-u user] file利用while do循环语句,让用户进行选择,分为1,2,3,4执行不同的语句。
华北科技学院
计算机学院综合性实验
实验报告
课程名称 Linux操作系统
实验学期 2015 至 2016 学年第二学期学生所在院部计算机学院
年级大三专业班级信管B132班
学生姓名学号
成绩评定:
1、工作量: A(),B(),C(),D(),F( )
2、难易度: A(),B(),C(),D(),F( )
3、答辩情况:
基本操作: A(),B(),C(),D(),F( )
代码理解: A(),B(),C(),D(),F( )
4、报告规范度: A(),B(),C(),D(),F( )
5、学习态度: A(),B(),C(),D(),F( )
总评成绩:
指导教师:兰芸
计算机系制
《Linux操作系统》课程综合性实验报告
开课实验室:基础七 2016年6月29日
1、根据实验内容建立需要的目录与文件
图1 /home/stu/abc目录
图2 x1文件的填写内容
图3 建立 /home/stu/backup目录内的bak01.txt文件
图4 建立data文件
图5 显示backup目录下的内容
2、利用crontab –e编辑定时任务
图 6 编辑任务
3、shell程序
#!/bin/bash
#usage:procfile files
while true
do
echo -n "1:定时删除文件 2:定时复制文件内容 3:定时打包文件 4:定时卸载U盘 [1|2|3|4|q]:"
read choice
case $choice in
1* ) crontab /home/stu/task1.cron;;
2* ) crontab /home/stu/task2.cron;;
3* ) crontab /home/stu/task3.cron;;
程序说明:crontab执行任务命令格式:crontab [-u user] file
利用while do循环语句,让用户进行选择,分为1,2,3,4执行不同的语句。
即若要执行第一个任务,则:crontab /home/stu/task1.cron,其他任务相同。
图7 shell 程序
五、指令执行前、后截图
首选使用root用户登录系统。
①task1 定时删除文件
递归显示/home/stu目录下的文件。
在/home/stu/abc下建立文件aa。
图8 建立aa
执行前:
图9 查看aa存储场所
执行后:abc内的子目录和子文件aa已被删除
图10 执行后abc目录
②task2 定时复制文件内容
执行前:x1内容
图11 X1内容
执行后:显示bak01.txt中的内容可以看到读取/home/stu /xyz目录下x1文件中每行第一个域的全部数据加入到/home/stu /backup目录下的bak01.txt文件内
图12 bak01 内容
③task3 定时打包文件
在/home/stu/data在建立两个文件xpc1.txt,xpc2以及目录xpc3
图13 建立文件
查看root目录, /home/stu/data中文件以及文件夹已经成功压缩到了backup.tar.gz文件夹中
图14 压缩
④task4 定时卸载U盘
图15 u盘挂载脚本
执行后
图 16 执行成功
如有侵权请联系告知删除,感谢你们的配合!。