
Linux是一款开源操作系统,自从1991年由芬兰的林纳斯·托瓦兹创建以来,它就一直以稳定、灵活、高效的特点赢得了众多人的青睐。本文将对Linux的操作进行实验,从而深入了解Linux的运作机制。
一、Linux文件系统
Linux的文件系统采用树形结构,根目录为“/”,系统上所有的文件和目录都可以通过根目录来访问。下面是Linux文件系统的一些重要目录:
1. /bin
该目录存放了很多Linux系统中基本的工具与命令,例如ls、cp、pwd和cat等等。这些工具与命令直接都可以使用,无需先加载模组。
2. /etc
该目录保存了Linux的系统配置文件,例如网络、用户账户和密码等等信息。
3. /home
该目录是用户主目录,当新添加用户时候,用户的默认主目录就会创建在这里。
4. /usr
该目录中包含了许多系统的默认安装文件、库文件以及文档等等。
二、Linux操作系统的基本命令
Linux的操作命令的格式一般如下:
“`
命令 [选项] [参数]
“`
其中,命令表示要执行的动作,选项是可选的,并会影响命令的行为,参数是与命令一起使用的数据。
1. cd命令
用于改变当前工作目录,具体语法为:
“`
cd [目录]
“`
其中目录参数是要进入的目录名称。
2. ls命令
用于打印当前工作目录下的文件列表,具体语法为:
“`
ls [-alh] [目录]
“`
选项-a表示所有文件和目录(包括以.开头的隐藏文件)都会被列出来,选项-l表示列出“长格式”的文件信息,选项-h表示使用人类可读的文件大小格式。
3. mkdir命令
用于创建新目录,具体语法为:
“`
mkdir [选项] 目录
“`
其中选项可以不指定,目录为要创建的目录名称。
4. touch命令
用于创建或修改文件的时间戳,如果文件不存在则创建一个空文件,具体语法为:
“`
touch 文件名
“`
其中文件名为要更新的文件名。
三、Linux管理用户和用户组
Linux系统的用户和用户组是由管理员管理的,每个用户都有独立的账户和密码。下面是Linux管理用户和用户组的基本命令:
1. useradd命令
用于添加新用户,具体语法为:
“`
useradd [-c comment] [-d home_dir] [-s shell] [-g initial_group] [-G group1,group2,…] [-m] [-k skel_dir] username
“`
其中,选项-c用于添加用户的注释信息,-d设定新用户的家目录,-s指定新用户登录后默认shell,-g指定新用户的初始组,-G设置新用户的附加组,-m创建新用户的家目录,-k把被指定目录下的文件当做创建新家目录的内容。
2. userdel命令
用于删除用户,具体语法为:
“`
userdel [-r] username
“`
选项-r表示连同用户主目录一起删除。
3. passwd命令
用于修改用户账户的密码,只有root用户才能修改其他用户的密码,具体语法为:
“`
passwd username
“`
其中,username指定要修改密码的用户名。
4. groupadd命令
用于添加新用户组,具体语法为:
“`
groupadd [-g GID] groupname
“`
其中,-g选项可以指定新组的GID。
四、Linux安装软件包和更新系统
Linux自带众多软件包,但是有些软件包可能需要手动安装,下面是Linux安装软件包和更新系统的基本命令:
1. apt-get命令
用于从系统的预设源中下载和安装软件包,具体语法为:
“`
apt-get [选项] 命令 [包名]
“`
其中,选项用于修改软件包的下载和安装方式,命令包括安装、卸载、配置、更新等,包名用于指定要安装或卸载的软件包。
2. aptitude命令
用于管理 Debian 系统中的安装包,包括安装、卸载、升级、清理等操作,具体语法为:
“`
aptitude [命令] [选项] [包名]
“`
命令包括安装、卸载、清除、升级等等。
3. apt命令
用于和apt-get命令一样管理Ubuntu和Debian系统的软件包,具体语法为:
“`
apt [选项] 命令 [包名]
“`
其中,选项用于修改软件包的下载和安装方式,命令包括安装、卸载、配置、更新等,包名用于指定要安装或卸载的软件包。
五、Linux的系统管理
Linux管理员可以使用一些命令来管理Linux系统,例如backup、users、top、ps等等。下面是Linux的系统管理命令:
1. backup命令
用于在指定目录或文件上创建或更新备份,具体语法为:
“`
backup [-d dest_folder] [-o archival_file] [-v level] source_file
“`
其中,-d选项为设置备份的目标路径,-o选项则是设定备份文件的名称,-v用于指定备份级别,source_file是要备份的文件或目录。
2. users命令
用于显示系统中正在登录的用户列表和信息,具体语法为:
“`
users [-|user]
“`
其中,-选项用于显示当前所有用户,user的命令则仅用于显示指定用户。
3. top命令
用于实时监视系统的运行状态,包括CPU使用率、内存使用率、磁盘IO等等信息,具体语法为:
“`
top
“`
该命令将会持续以制表符为分隔符输出当前的进程信息。
4. ps命令
用于显示当前运行在系统中的进程列表,具体语法为:
“`
ps [-a] [-l] [-u username]…
“`
其中-a选项用于显示所有的进程(包括其他用户),-l选项则是显示进程详细信息,-u指定显示哪个用户的进程信息。
六、Linux的网络管理
Linux支持众多网络服务和协议,包括FTP、TP、SNMP、HTTP等等。下面是Linux的网络管理命令:
1. ifconfig命令
用于显示网络接口的配置信息,可以用于配置、启动和停止网络接口,具体语法为:
“`
ifconfig [interface] [up/down]
“`
其中,interface为要操作的网络接口名称,up用于启动网络接口,down则是关闭网络接口。
2. netstat命令
用于显示网络统计信息,包括协议、IP地址、端口号等等,具体语法为:
“`
netstat [-an] [-p protocol]
“`
其中,-a选项列出所有的网络连接(包括TCP、UDP等等),-n选项用于以数值的方式显示地址和端口,-p指定输出哪种协议的连接。
3. ping命令
用于测试网络连接是否正常,具体语法为:
“`
ping [-c count] [-s packetsize] [-i interval] host
“`
其中,-c选项用于指定发送和接收的数据包数目,-s选项指定数据包大小,-i选项则是指定数据包之间的时间间隔,host为目标主机的IP地址或域名。
通过实验,我们深入了解了Linux操作系统的文件系统、基本命令、用户和用户组管理、安装软件包和更新系统、系统管理以及网络管理。这些命令和操作使得Linux成为一个非常灵活和强大的操作系统,适用于各种需求,包括Web服务器、数据中心、云计算等等。实验对我们对Linux的认识更加清晰,也对我们进行系统管理有了更深入的了解。
相关问题拓展阅读:
- 操作系统原理实验报告代码在哪里运行
- 能不能把那个计算机操作系统的那个进程调度的实验报告给我发一份的饿 谢谢了
操作系统原理实验报告代码在哪里运行
理解操作系统生成的概念和过程;
2)理解操作系统两类用户界面(操作界面,系统调用)概念;
二、实验内容
1)在 Ubuntu 或其他 Linux 平台环境下裁剪和编译 Linux 内核,并启用新的内核。
2)在 Ubuntu 或其他 Linux 平台为 Linux 内核增加 1-3 个新的系统调用,并启用新的内核,编写一个应用程序测试新增加的系统调用是否能正确工作。
3)在 Windows 环境下,编写一个批处陪让理程序(算命大师.bat),程序运行后,输入:出生年月日(例如)。系统输出相应的属相和亏洞星座,例如:你属兔, 狮子座。要求:输入进行合法性检查,能循环接收用户的输入,直到输入 q 或Q 就退出。
三、实验过程
(一)实验步骤
1)重新编译Linux内核
1. 资源下载
Linux版本:Linux5.5.7
环境:ubuntu-18.04.4(虚拟机)
2. 移动文件夹
1.将压缩包拖入ubuntu主目录下
2.解压
3.sudo mv /home/Linux5.5.7/ /usr/src/
3.更新和安装相关依赖
重新编译新内核
#make –j4
6.生成新内核
#make modules_install
#make install
2)在 Linux 增加系统调用
1.进入主目录下
2.打开添加自销乱枯定义的系统调用号的文件,添加调用和内容
sudo gedit arch/x86/entry/syscalls/syscall_64.tbl
sudo gedit include/linux/syscalls.h
sudo gedit kernel/sys.c
编译内核
4.编写C语言函数验证
#include
#include
#include
#include
int main(int argc,int **argc)
{
printf(“System call sys_first return %ld\n”,syscall(335));
long temp;
temp=syscall(336,2);
printf(“System call sys_second return %ld\n”,temp);
temp=syscall(337,2,3);
printf(“System call sys_third return %ld\n”,temp);
return 0;
运行程序
sudo gcc -o test test.c
sudo ./test
6.查看调用
sudo dmesg
3)编写一个批处理程序“算命大师.bat”
1.打开记事本,新建文档
2.编写代码,编码为ANSI,保存格式.bat
echo off 是为了 此语句以下的命令语句不会在输出屏显示
set /p birthday= –>进行读入赋值时 要加/p 会将输入的字符串赋值给birthday
set year=%birthday:~0,4% –>时从 birthday的第0位开始向后截取4个字符, 并赋给year
set /a yy=%year%%%12
进行运算赋值时 要加/a %year% 代表year指代的值 %% 表示取余运算
%day% leq 19 leq是小于等于的意思
3.运行
双击bat文件即可运行。
(二)解决错误和优化
1.网络连接问题,环境配置错误。表现为虚拟机上的ubuntu无法上网,不能更新,解决方法是改变虚拟机的网络连接方式,由直连改为桥连。
2.部份依赖无法安装,环境配置错误。解决方法是重新#apt-get update,然后重新安装,不断重复。
3.#make menuconfig报错,编译错误。
在这里插入图片描述
解决方法是将终端窗口更大化。
4. 特殊的语法错误。比如在命令行输入时,经常会忘记“.”和空格,解决方法是多熟悉linux的命令,写代码时要更仔细。
在一个进程中创毕棚建3个线程,名字分别为threada、threadb、threadc。 threada输岩辩出“hello world! ”。 threadb输出“手枣则My name is …”。
能不能把那个计算机操作系统的那个进程调度的实验报告给我发一份的饿 谢谢了
实验二 进程创建与通信(4学时)
一、实验目的
1、熟悉在C语言源程序中使用LINUX所提供的系统调用的方法
2、加深和巩固学生对于进程概念的理解,明确进程和程序的区别。
3、掌握判颂linux中子进程的创建方法及进程的同步具体实现过程。
二、实验内容
1、进程的创建
编写一段程序,使用操作系统调用fork( )创建3个子进程。让每一个进程运行时在屏幕上显示一个字符:观察纪录屏幕上的显示结果,并分析原因。
2、编写程序–使用软中断实现父子进程同步即父—子—父的同步序列
三、实验要求
实验课时4学时。进程的创建与进程的控制的设计在linux环境下用C语言编写
四、源程序指导(实验步骤)冲祥
1、#include
main()
{
int p1,p2;
while ( (p1 = fork() ) =-1)
if(p1=0)
putchar(‘b’) ;
else
{while( (p2 = fork())=-1)
if(p2=0)
putchar(‘c’);
else
putchar(‘a’);
}
}实验结果为abc bca cab cba 等多种结果
2、#include
#include
int k1;
void int_fun1(int sig)
{
k1=0;
}
main()
{
int k,p1;
while((p1=fork())==-1)
if(p1>0)
{
for(k=1;k
{
printf(“HoW are you !\n”);
sleep(1);
kill(p1,12);
wait(0);
printf(“OK!\n”);
exit(0);
}
else
signal(12,int_fun1);
k1=1;
while(k1==1){
printf(“I come\n”);
sleep(1);}
printf(“I exited!\n”);
exit(0);
}
五、实验结掘判郑果分析
1、在没有严格的同步控制下,程序运行后父子进程随机输出。
2、在子进程创建后,与父进程平等竞争CPU
3、父子进程仅在各自的分支中才会执行有别于对方的程序
不知道是你要的不???
linux操作实验报告的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux操作实验报告,Linux操作实验报告:探索开源系统的运作机制,操作系统原理实验报告代码在哪里运行,能不能把那个计算机操作系统的那个进程调度的实验报告给我发一份的饿 谢谢了 的信息别忘了在本站进行查找喔。
香港服务器首选树叶云,2H2G首月10元开通。
树叶云(www.IDC.Net)提供简单好用,价格厚道的香港/美国云服务器和独立服务器。IDC+ISP+ICP资质。ARIN和APNIC会员。成熟技术团队15年行业经验。
文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/188587.html<