实验1:Linux操作系统基本操作
一、实验目的
1:掌握Linux操作系统的安装,熟悉Linux的基本操作,对Linux有一个初步认识。
2:学会使用vi编辑器编辑简单的C语言程序,能对其编译和调试。
二、实验任务
1:在虚拟机模式下,安装Linux操作系统。
2:Linux常用命令练习。
3:完成实验报告,并给出实验操作结果的截屏。
三、实验过程
1:准备Linux实验环境,下载虚拟机和Linux操作系统软件,并安装。
【1-1】VMware配置虚拟机
参考链接:
VMware Workstation Pro 17 虚拟机安装Ubuntu18.4.06-CSDN博客
注意事项:
(1)在【使用VMware创建虚拟机】第8点处,需要选择NAT网络类型,避免后面无法同步本机的网络配置。
(2)在【使用VMware创建虚拟机】第14点处,需要取消勾选【启动时链接】,否则后续鼠标会锁定在linux界面部分区域,同时需要使用ISO映像文件。
(3)在【配置Ubuntu】第0点处,执行【sudo apt install vim】出现错误【E:有几个软件包无法下载】时,需要按照提示并采用【sudo apt-get update】更新指令。具体内容如下图所示。
【1-2】Ubuntu18配置gcc、g++编译器
参考链接:
https://blog.csdn.net/weixin_43290551/article/details/125970965
2:以root用户身份登录系统,创建新用户。
【2-1】以root身份登陆到linux服务器
【2-2】使用useradd命令添加账号
一般格式为:useradd [username]
但是ubuntu格式为:sudo useradd -m [username]
【2-3】使用passwd命令修改用户的密码
此处将user1的密码设置为123456,方便记忆
一般格式为:passwd [username]
但是ubuntu格式为:sudo passwd [username]
【2-4】/home目录下新增加的帐号的主目录名
结果为:user1
【2-5】分析/etc/passwd文件内容,说明每个数据项的含义
数据项含义如下表所示:
位置 | 数据项显示 | 数据项含义 |
1 | -rw- r— r-- | user的权限:可读可写 group的权限:只读 other的权限:只读 |
2 | 1 | 文件数:1 |
3 | root | 拥有者:root |
4 | root | 所属的group:root |
5 | 2437 | 文件大小:2437 |
6 | 11月 13 19:35 | 建档日期:11月13日 19:35 |
7 | /etc/passwd | 文件名:/etc/passwd |
【2-6】使用su命令进行用户切换练习
下图使用xwk和user1之间进行切换
3:userdel命令删除账号
【3-1】创建1个用户
此处创建user2
验证是否成功创建
【3-2】删除创建的用户
一般格式为:userdel -r [username]
但是ubuntu格式为:sudo userdel -r [username]
验证是否成功删除
【3-3】r参数的含义
在删除用户账号的同时,也删除用户的宿主目录以及用户的邮件文件
【3-4】检查用户的主目录是否存在
方法1:如【3-1】和【3-2】的验证所示
方法2:ls -a [path]
4:文件和目录操作命令练习
【4-1】pwd显示当前工作的绝对路径
【4-2】cd目录导航命令
change directory到/etc根目录处
change directory到用户主目录处
一般格式为:cd [directory]
cd不带参数的功能:当前工作目录变为用户的根目录
cd~命令的功能:使当前工作目录指向用户的主目录
将/etc设为当前目录,命令为:cd /etc
【4-3】ls查看文件和目录,参数:-l -a -R
查看user1下的文件和目录
【4-4】mkdir创建目录,注意-p参数的使用
在主目录中建立a1,a2,a3子目录的命令为:mkdir -p ./a1/a2/a3
【4-5】rmdir删除空目录
删除a1,a2,a3
【4-6】more分屏显示文件内容
回车键:一行一行往下翻
空格键:一屏一屏往下翻 q:退出
显示/etc/passwd的信息:more /etc/passwd
完整屏幕内容显示:
回车键测试:
空格键测试:
q键测试:
【4-7】cp拷贝文件
参数:-r,-f
cp -r 源文件 目的文件
将/etc/passwd文件拷贝到自己的主目录下,命令为:cp -r /etc/passwd ~/passwd
【4-8】rm删除文件
参数:-i,–f,-r
删除刚刚拷贝的passwd文件
【4-9】chmod<用户类别><增减符号><访问权><文件名>
〈用户类别〉:u为文件主; g为同组用户;
o为其他用户;a为所有用户。
〈增减符号〉:+为增加访问权;-为删除访问权;=为授予访问权。
〈访问权〉: r为读取权;w为写入权;x为执行权。
格式:chmod a+rwx [filename]
操作:将自己的主目录权限设置为所有人有所有权限
5:使用vi编辑器编写C程序(显示“hello world!”),并用gcc命令进行编译和链接,并用a.out来进行输出结果。
main() {printf("hello world\n"); } |
操作步骤:
启动vi编辑器编写程序命令:vi [filename]
使用GCC生成可执行文件命令:gcc [filename]
运行文件命令:./a.out
实际操作步骤:
(1)利用命令创建文件,此处我们使用【vim hello.c】
(2)按a/i/o或其大写字母按键,切换为输入模式,此处我们使用【i】
(3)编写c语言代码:
(4)按esc按键切换为命令模式
(5)保存文件编写内容,此处我们使用【:wq】
(6)使用gcc生成可执行文件,此处我们使用【gcc hello.c】
(7)运行文件,此处我们使用【./a.out】
注意事项:
在(6)中,如果直接使用gcc命令,可能会出现以下报错。
在查询资料后发现,没有标准的头文件需要安装【build-essential】来解决。于是在终端使用命令【sudo apt-get install build-essential】,安装完成后即可正常使用。
参考资料:【C语言】gcc编译时报错 fatal error: stdio.h: 没有那个文件或目录-CSDN博客
四、实验思考
1:什么是虚拟机?安装Linux操作系统时遇到了哪些问题以及如何解决的?
虚拟机(Virtual Machine, VM)是一种软件仿真,具备模拟计算机系统的功能,使得用户可以在一个物理硬件系统上运行一个或多个与主机环境隔离的操作系统。虚拟机主要包括资源可共享性、隔离性、安全性、环境模拟性、便捷性等优点。在本次实验中,我们使用VMware虚拟机软件进行了linux虚拟机的初始化和ubuntu18的配置。
遇到的问题及其解决方案,如【1-1】和【5】处的注意事项所示。
2:与windows操作系统相比,Linux系统在操作界面、用户管理、文件管理等方面有哪些特点?
Windows和Linux的比较如下表所示。
比较方面 | Windows | Linux |
操作界面 |
|
|
用户管理 |
|
|
文件管理 |
|
|
综上所述,Linux 提供了更多的定制化选项和强大的命令行工具,适合技术用户和那些需要高度控制的环境。即Linux在用户和文件管理方面提供更高级的功能,适合需要精细管理权限的场合。
APPENDIX
Linux操作系统基本操作
预备知识:
熟悉Linux操作系统环境
常用命令:(注意Linux命令区分大小写。)
-
- 通过用户名和密码登录系统
- 注销(退出)系统:logout 或exit
- 练习使用命令ls
使用ls查看当前目录内容;使用ls查看指定目录内容,如/目录,/etc目录
使用ls–all 查看当前目录内容;使用dir查看当前目录内容
-
- 使用cd改变当前目录; cd ..回到上层目录;cd / 回到根目录
- 显示当前路径 pwd
- 建立目录mkdir
mkdir目录名;例:mkdir /home/s2001/newdir
- 删除目录 rmdir
- 复制文件 cp,如cp文件名1 文件名2
- 移动文件或目录 mv
- 删除文件 rm
- 显示文件内容 more (分页显示)
- 显示文件 cat文件名;cat >文件名,ctrl+d结束输入
VI编辑器
- 进入linux的文本模式之后,在命令行键入vi filename.c然后回车。
说明:首先vi命令是打开vi编辑器,后面的filename.c是用户即将编辑的c程序文件名。
- 最基本的命令:当进入刚打开的文件时,不能写入信息,这时按下键盘上的字母i键(insert),就进入了编辑模式。
- 当文件编辑完后,需要保存退出,这时需要经过以下几个步骤:
1)按下键盘上的Esc 键;
2)键入冒号(:),在冒号后面键入wq(意思是保存并退出)。如果不想保存退出,则在键入冒号之后,键入q!(未保存直接退出)。
- 退出vi编辑器的编辑模式之后,使用GCC对程序进行编译。
GCC编译器
编译命令:gcc filename.c [-o outputfilename] 其中gcc是c的编译器。
参数:
filename.c是要编译的源文件的名称
outputfilename表示输出文件名称,中括号表示括号内部的内容是可选项。如果不输入outputfilename.out,默认的输出文件是a.out。
运行程序:./outputfilename.out