【操作系统】实验一 Linux基础

本人一直想找时间系统整理一下之前做过的一些实验,便于后续用到的时候可以尽快的使用,po出来也便于大家交流学习,有问题欢迎交流指正,与诸君共勉!

操作系统实验一,包含Linux操作系统常用命令的使用演示。

目录

背景知识

     1. Linux系统的Shell

    2. Linux系统的文件、目录和权限

    3. Linux文件系统

实验目的

实验环境

基本命令

   1. 有关目录的命令

    2. 有关文件的命令

    3. 其他的命令

    4.vi编辑器的基本操作

    5. 编译工具gcc的使用

    6. 程序的运行

实验内容

实验环境

实验步骤

实验结果与分析

1.  系统环境设置

2. 常用命令的使用

1.有关目录的命令

pwd命令:

cd命令:

2.有关文件的命令

ls命令

cat命令

chown命令

cp命令

date命令

touch命令

mkdir/rmdir命令

mv移动文件命令

rm删除文件/目录命令

3.其他的命令

kill命令

clear命令

reboot命令

passwd命令

su命令

grep命令

ps命令

4.vi编辑器的基本操作

5. 编译工具gcc的使用

6. 程序的运行

实验收获及体会


背景知识

Linux是一个与DOS或Windows完全不同的操作环境,具有它自己独特的风格。

     1. Linux系统的Shell

使用Linux系统时,用户多数时间是通过Shell与系统进行对话的。Shell是一个接收用户输入命令并将其转换成指令的程序,它是用户与Linux系统之间的界面之一。通过shell命令来操作和控制操作系统,比如Linux中的Shell命令就包括ls、cd、pwd等等。总结来说,Shell是一个命令解释器,它通过接受用户输入的Shell命令来启动、暂停、停止程序的运行或对计算机进行控制。

    2. Linux系统的文件、目录和权限

Linux的文件名与DOS有许多相似之处也有其自身的特点。

Linux文件名没有标准格式。通常文件名中可以包含任何字符 (“/”字符除外,“~”字符不能作为文件名的第一个字符) ,文件名的长度限制在256个字符以内。Linux的文件名也提供了功能强大且精确的通配符。

文件的权限是Linux系统安全的核心部分,包括:

1) Read (可读) 权限:表示可以读取文件内的数据。

2) Write (可写) 权限:表示可以改变或删除该文件。

3) Execute (可执行) 权限:表示可以把该文件当成程序执行。

除文件权限之外,Linux系统上还有目录和很多其他类型的文件,其中包括特殊文件 (设备) 、Socket和符号连接等等 (平时我们经常使用的Windows设备如软驱、光驱等在Linux中也是一种特殊的文件) 。

拥有root口令的用户称为超级用户,超级用户有权访问整个系统,包括建立普通用户帐号、修改密码、安装与卸载软件等一切权限。超级用户的提示符为“#”,普通用户提示符为“$”。

几个用户在一个系统下共用一个帐号,其个人文件的安全就得不到保障。建立普通用户帐号后,系统能保证用户是唯一能够存取其个人文件的人。另一方面,即使没有与人共享一个系统,建立普通用户帐号也是必要的。因为如果总是以超级用户登录进行操作 (超级用户的权限是整个系统) ,一旦出现误操作 (如:破坏或移动、删除一个重要的系统文件) 处理起来也很棘手。

    3. Linux文件系统

Linux的文件系统是文件和目录层次的集合。了解Linux文件系统的结构有助于更好地理解和使用Linux。在Linux文件系统根目录下,有如下子目录:bin、dev、etc、home、install、lib、mnt、proc、root、tmp、user、var (不同版本,目录会略有不同) 。

1) /bin目录  该目录中存放许多基本的系统程序。

2) /dev目录  该目录中存放的文件是设备驱动程序,用来访问系统设备和资源,如磁盘设备、调制解调器、内存等。

/dev目录下常用的设备文件:

/fd0、/fd1:/fd0代表第一个软盘,/fd1代表第二个软盘。

/console:  /console指系统控制台,也就是直接连接系统的监视器。

/hda:        /hda1代表第一个硬盘。

/tty:         /tty开头的设备名代表用户系统上的虚拟控制台。

/tty1代表第一个虚拟控制台,

/tty2代表第二个虚拟控制台。

实验目的

1. 通过Internet资源,从感性上认识操作系统的功能和应用,了解市场上常见的操作系统,为进一步的学习操作系统打下基础。

2. 熟悉Linux实验环境,掌握一些有关基础知识和实验技能。

3. 熟悉使用Linux字符界面的常用命令。

4. 学习并掌握Linux编辑器vi和编译工具gcc的使用方法

5. 掌握在Linux操作系统环境上编辑、编译、调试、运行一个C语言程序的全过程。

实验环境

实验机房软件Ubuntu或在VMware虚拟机上安装Centos操作系统。

基本命令
   1. 有关目录的命令

(1) pwd命令

pwd (即print working directory,打印工作路径) 命令的功能是显示当前的工作路径(显示当前路径的绝对路径)。如现在是在“/home/CAI”目录下,则可以用此命令来证实。例如:

$ pwd                                      “$”表示在Linux系统的提示符下

/home/CAI                              pwd命令证明的确是在“/home/CAI”下

(2) cd命令

cd命令用来切换目录,如:

cd ccec /*相对路径,当前路径下的ccec目录*/

cd /home/ccec  /*绝对路径*/

cd ~  /*进入当前用户的home*/

cd -  /*返回上一次访问的目录*/

cd .. /*进入当前目录的父目录*/

假设在刚才的目录切换到另一目录,例:

        $ cd /usr/bin                            将当前的目录转到“/usr/bin”下

        $ pwd

        /usr/bin

        $ cd                                         此命令返回工作目录(上一次访问的工作目录)

        $ pwd

        $ /home/CAI

$ cd ..                 ,进入当前目录的父目录

    2. 有关文件的命令

(1) ls命令

ls命令的功能是显示指定目录的内容,包括

-a 显示指定目录下所有子目录与文件,包括隐藏文件。

-A 显示指定目录下所有子目录与文件,包括隐藏文件。但不列出“.”和 “..”。

-c 按文件的修改时间排序。

-l 以长格式来显示文件的详细信息。这个选项最常用。

-p 在目录后面加一个“/”。

-r 按字母逆序或最早优先的顺序显示输出结果。

-t 显示时按修改时间(最近优先)而不是按名字排序。若文件修改时间相同,则 按字典顺序。修改时间取决于是否使用了c或u选顶。缺省的时间标记是最后一次修 改时间。

-u 显示时按文件上次存取的时间(最近优先)而不是按名字排序。即将-t的时间 标记修改为最后一次访问的时间。

-x 按行显示出各排序项的信息

-i 显示inode号

例如:

        $ cd

        $ ls –a                                      此命令显示当前工作目录下的所有文件 (参数

“a”表示所有文件,“-”号是用来控制参数)

显示时,文件名前带“.”号表示隐含文件。

输入“ls -l”命令,参数“-l”表示额外文件的信息,给出文件或者文件夹的详细信息。

(2) cat命令

cat命令的功能是显示文件内容,也可用于文件的连接。

-n :由 1 开始对所有输出的行数编号

-b :和-n 相似,只不过对于空白行不编号

-s :当遇到有连续两行以上的空白行,就代换为一行的空白行。例如:

cat  -n test1.txt  把test1.txt的内容加上行号显示出来(包括空行)

cat  -b test1.txt  test2.txt  把test1.txt和test2.txt的内容显示出来,test2.txt的内容显示在test1.txt后面(除空行外加上行号)

cat  null > test.txt       把test.txt清空

cat  test1.txt >test2.txt  把test1.txt中的内容写到test2.txt中,覆盖原内容

cat  test1.txt >>test2.txt   把test1.txt中的内容写到test2.txt中,增加在原内容后

此命令常用来快速浏览文件,使用方法如:

$ cat file1.txt

 (3) chown命令

chown命令的功能是改变文件的属主和组 (“属主”可以是用户名或用户ID;“组”可以是组名或组的ID;文件名是以空格分开的要改变权限的文件列表,支持通配符) 。例如:

        $ chown host:cai file1             将文件file1的属主改为host组的cai

(4) cp命令

cp命令的功能是复制文件,用法是:

cp [options] 源文件 目标文件

cp命令还可以使用以下参数:

-f:强行覆盖已存在的目标文件。

-i:在强行覆盖已存在的目标文件时给出提示。

-R:整个目录复制。

如:

$cd /tmp/

$cp file1.txt /tmp/test

$cd /tmp/test

$ls

File1.txt

(5) date命令

date命令的功能是打印或设置系统日期和时间,其用法与DOS中的date命令相似,例如:

$ date

  1. touch命令

touch [选项]…  文件…

无参数:若文件不存在,则创建之,否则更改文件时间戳为当前时间

-c 若文件不存在,不创建任何新文件

-d 时间戳更改为指定的日期

-t 时间戳更改为指定的时间

示例:

1)若file1不存在,则创建之:touch file1

2)若file2不存在,仍不创建:touch -c file2

3)更改file1的时间戳为现在时间(file1若不存在,先创建之):touch file1

4)更改file1的时间戳为指定时间2015.11.09 22时34分(file1若不存在,先创建之) :touch  -t 201511092234 file1

5)更改file1的时间戳为指定日期2016.11.09 (file1若不存在,先创建之) :touch  -d 20161109 file1

例如:

        $touch file1.txt

创建一个file1.txt文档。

(7) mkdir命令

创建一个目录,用法是:

mkdir [选项] dir-name,例如

$cd /tmp/

$mkdir test

$ls

Test

rmdir:删除空目录

- p 递归删除目录dirname,当子目录删除后其父目录为空时,也一同被删除。

如果整个路径被删除或者由于某种原因保留部分路径,则系统在标准输出上显示相应的信息。

(8) mv移动文件命令

用法是:

mv 路径/文件 目标目录

如:$mv file1.txt  /tmp

$cd /tmp/

$ls

file1.txt

(9) mr删除文件/目录

用法是:

rm[选项] 文件

$cd /tmp/

$ls

Test file1.txt

$rm –r /tmp/test

$ls

file1.txt

$rm file1.txt

$ls

    3. 其他的命令

(1) kill命令

kill命令的功能是中止一个进程,用法是:

kill [-s信号] [p] [-a] 进程号

kill -l [信号] 列出所有进程号

(2) clear命令

clear命令的功能是清除屏幕,用法如同DOS中的cls命令:

$ clear

(3) reboot命令

reboot命令的功能是重新启动系统,用法是:

$ reboot

(4) passwd命令

passwd命令的功能是设置用户密码,用户可以使用passwd这个命令来更改自己的登录密码:一般用户只能更改自己的密码;超级用户不但能更改自身的密码,还能更改其他用户的密码。还可以用这个命令来更改用户的其他信息,如用户的全名,用户的登录Shell,用户的密码失效时间间隔等。

(5) su命令

su命令的功能是使普通用户以root帐号登录,用法是:键入su命令,Shell要求root密码。键入密码按回车键则进入root帐号。键入exit回到以前的普通用户。

(6) grep命令

grep:一个强大的文本搜索工具,它能使用正则表达式搜索文本

-c:只输出匹配行的计数。

-I:不区分大 小写(只适用于单字符)。

-h:查询多文件时不显示文件名。

-l:查询多文件时只输出包含匹配字符的文件名。

-n:显示匹配行及行号。

-s:不显示不存在或无匹配文本的错误信息。

-v:显示不包含匹配文本的所有行。

注:grep一般和其他命令一起配合使用。

(6) ps命令

ps:显示当前瞬间,进程的状态

-a 列出所有的进程

-w 显示加宽可以显示较多的信息

-au 显示较详细的资讯

-aux 显示所有包含其他使用者的线程

表1-1 Linux常用命令

命令名

功能

使用举例

adduser

创建新用户

#adduser

cp

复制文件

$cp 源文件 目标文件

rm

删除文件

$rm 文件名

mkdir

创建新目录

$mkdir 目录名

rmdir

删除目录

$rmdir 目录名

pwd

显示当前目录

$pwd

ps

显示进程状态

$ps

ls

显示当前目录下内容

$ls -l

cat

显示文件内容

$cat 文件名

cd

转换当前目录

$cd 路径名

mv

移动文件

$mv 源文件 目标文件

more

分页显示

$ls –l|more

chmod

改变文件权限

$chmod 777 文件名

clear

清屏

$clear

4.vi编辑器的基本操作

(1) 进入vi编辑器:$vi文件名↙,如vi aaa.c(若aaa.c不存在,将新建该文件,否则打开该文件)

按i以插入模式进入编辑状态,就可编辑代码;按esc就从编辑状态回到命令状态;输入“:wq”回车,保存并退出。

(2) vi编辑器常用命令

表1-2 vi编辑器常用命令

输入的字符

        

          

Esc

进入命令模式

i

在光标前输入文字

A

在光标后输入文字

X

删除光标后输入的文字

Dd

删除当前行

删除后内容自动进入剪贴板

/abc

向前查找字符字符串

然后输入n,则继续向前查

?abc

向后查找字符字符串

Yw

将光标所在单词拷入剪贴板

Yy

将光标所在行拷入剪贴板

P

将剪贴板内容贴在光标后

:q

不保存退出……..0

q!表示强制退出

:w

保存

:w!表示强制保存

:wq

保存退出

:x

保存退出

:3,7 co 9

将第3行至第7行拷到第9

:3,7 m 9

将第3行至第7行移到第9

u

取消前次命令

:g/abc/s//123/g

将全部的abc替换成123

5. 编译工具gcc的使用

gcc编译常用格式为:$gcc源文件名↙

例如:$gcc aaa.c↙,将生成默认可执行文件a.out

或者$gcc -o 目标文件名 源文件名↙

例如:$gcc –o aaa  aaa.c或$gcc aaa.c –o aaa.out

6. 程序的运行

$./可执行文件名↙(例如:$./a.out↙)

实验内容

1.掌握在VMware下安装Linux操作系统。

2.熟悉Linux字符界面,练习并掌握常用的Linux操作命令。

3.掌握一种Linux的编辑器,特别是字符界面的vi工具的使用。

4.使用vi编辑一个打印“Hello,I am a C program”字串的C语言程序,然后编译并运行它。熟悉gcc等编译器、调试器的使用。

例程:

#include<stdio.h>

int main( )

{

int i=getuid( );

printf("Hello world! This is my uid: %d\\n",i);

}

实验环境

VMware虚拟机、CentOS操作系统

实验步骤

1. VMware下安装Linux操作系统CentOS,并进行系统环境的设置。

2. 进行常用命令的使用

3. 进行部分其他命令的使用

4. 完成vi编辑器的基本操作

5. 使用gcc编译器编译源文件

6. 运行.out文件

实验结果与分析

1.  系统环境设置

  • 下载图形用户界面

安装CentOS操作系统后,在root用户下安装用户图形界面,用yum grouplist查看GNOME名称,然后用yum groupinstall "GNOME Desktop" 命令进行安装。

安装成功提示“complete!”如图1

1 命令行界面安装图形用户界面成功

安装完通过命令 startx (如图2)进入图形界面。

查看系统版本,如图3

修改终端主题为暗色调。

  • 设置语言为简体中文

terminal界面输入su命令,输入密码,切换至root用户,如图4

4 切换至root用户

locale”命令查看系统当前语言包,如图5。存在简体中文语言包。

5 系统当前语言包

使用LANG=zh_CN.UTF-8”命令修改系统语言,如图6

6 修改系统语言为简体中文

将配置写入文件,实现永久修改,如图7

7 向文件写入语言配置

输入cat i18n指令查看文件内容进行确认,如图8

8 查看语言配置文件内容

使用该方法修改配置文件后,再次打开系统,系统语言仍为英文,且locale查询到的仍然为en_US。故使用另一方法进行设置,如图9

9修改系统语言为简体中文

由于英文不易出现乱码,后又更改系统语言为英文。

  • 修改时区

键入ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime修改时区为亚洲上海,如图8

8 修改时区为亚洲上海

键入reboot,重启系统。

2 常用命令的使用

1.有关目录的命令

pwd命令:

9 pwd命令

cd命令:

10 cd相对路径

11 cd – 命令返回上一次访问的目录

12 cd绝对路径

13 cd ..进入当前目录的父目录

14 cd ~进入当前用户的home

15 切换到另一目录

16 返回上一次访问的工作目录

2.有关文件的命令

  • ls命令

ls命令的功能是显示指定目录的内容。具体命令测试结果如下。

ls -a命令显示指定目录下所有子目录与文件,包括隐藏文件,如图17

17 ls -a命令

ls -A命令显示指定目录下所有子目录与文件,包括隐藏文件,但不列出“.”和“..”,如图18

18 ls -A命令

     ls -c:

19 ls -c按文件的修改时间排序

20 ls -l以长格式显示文件的详细信息

21 ls -p在目录后面加一个/

22 ls -r按字母逆序或最早优先的顺序显示输出结果

ls -t显示时按修改时间(最近优先)而不是按名字排序。若文件修改时间相同,则 按字典顺序。修改时间取决于是否使用了c或u选顶。缺省的时间标记是最后一次修改时间,如图23。

23 ls -t显示按修改时间排序

Ls -u显示时按文件上次存取的时间(最近优先)而不是按名字排序。即将-t的时间标记修改为最后一次访问的时间,如图24。

图24 ls -u按文件上次存取时间排序

图25 ls -x按行显示出各排序项的信息

图26 ls -i显示inode号

图27 ls -1

  • cat命令

cat命令的功能是显示文件内容,也可用于文件的连接。

使用cat命令创建文件

输入cat > teatcat.txt,之后输入文本,按ctrl+c退出,如图28。使用ls命令可查看,testcat.txt文件已创建。

图28 使用cat命令创建文件

图29 ls命令查看创建的文件是否存在

使用cat命令查看文件

图30 cat命令查看文件

图 31 cat -n查看文件由1开始对所有输出的行数编号

图 32 cat -b查看文件由1开始对输出的行数(除空行外)编号

图33 cat -s两行以上空行代换为一行空行

cat -b testcat02.txt testcat03.txt 将文件testcat02.txt、testcat03.txt的内容显示出来,testcat03.txt的内容显示在testcat02.txt后面(除空行外加上行号)。

图34 文件连接显示

图35 清空testcat04.txt文件

图36 把testcat04.txt的内容写到testcat03.txt中 覆盖原内容

图37 把testcat03.txt的内容写到testcat04.txt中 在原内容后

chown命令

chown命令的功能是改变文件的属主和组 (“属主”可以是用户名或用户ID;“组”可以是组名或组的ID;文件名是以空格分开的要改变权限的文件列表,支持通配符) 。

图38 使用普通用户权限 chown命令失败

图39 使用root用户权限 chown命令成功

cp命令

图40 将testcat03.txt复制到Mycodes文件夹下

图41 强行覆盖Mycodes文件夹下testcat03.txt文件

图42 在强行覆盖文件时给出提示

date命令

date命令的功能是打印或设置系统日期和时间,其用法与DOS中的date命令相似。

图43 date命令显示时间

touch命令

图44 touch更改文件时间戳为现在时间 若文件不存在则创建之

图45 touch -c若文件不存在 不创建新文件

图46 touch更改testouch0.txt时间戳为现在时间

图47 更改testouch0.txt时间戳为指定时间2022.09.09 13时14分

图48 更改testouch0.txt时间戳为指定日期2022.10.10

mkdir/rmdir命令

mkdir创建一个目录。rmdir删除空目录。

图49 创建一个目录Mytxt

图50 删除空目录Mytxt

mv移动文件命令

图51移动文件test04.txt到Mycodes文件夹下

rm删除文件/目录命令

图52 使用rm -r删除test0文件夹

3.其他的命令

kill命令

53 ps -au命令查看进程

54 执行kill命令 结束pid24683./testrol进程

clear命令

55 clear命令清空屏幕

reboot命令

reboot命令重启系统。

56 键入reboot命令

passwd命令

57 passwd命令

su命令

58 su命令切换超级用户 exit命令返回普通用户

grep命令

59 使用grep命令查看安装java软件的版本

图60 使用grep命令查询每个网卡和ip地址

图61 使用grep -c命令统计字符串出现的次数

图62 使用grep -w精准全匹配搜索

图63 使用grep -r所有子目录下的搜索

图64 使用grep -i忽略大小写搜索

图65 使用grep -v过滤文件中的‘bb’

图66 使用grep -n查找含有‘bb’的行 并输出行号

图67使用grep -nv查找不含有‘bb’的行 并输出行号

图68 使用grep –color高亮显示搜索结果

ps命令

69 使用ps命令显示当前瞬间进程的状态

70 使用ps -a命令列出所有进程

71 ps -w命令显示加宽 可以显示较多的信息

72 ps -au可以显示较详细的咨讯

73 ps -aux显示所有包含其他使用者的线程、

4vi编辑器的基本操作

74 键入进入vi编辑器的指令

75 进入vi编辑器

76 i以插入模式进入编辑状态 可编辑代码

77 ese返回命令状态 输入“:wq”回车 保存并退出

78 “:12 co 10”前两行拷到第十行

79 “:12 co 10”前两行拷到第十行结果

80 将所有的bb换为abc

81 将所有的bb换为abc结果

5 编译工具gcc的使用

82 新建c语言文件

83 安装gccc++编译器及内核文件

84 gccc++编译器及内核文件安装成功

85 使用gcc命令编译源文件

6 程序的运行

86 运行程序a.out

实验收获及体会

        本次实验过程中,通过对CentOS的基本操作以及常用指令的使用,我对操作系统的功能和应用有了更深的认识,并熟练掌握了一些指令的使用方法,可以熟练使用Linux的编辑器vi和编译工具gcc,熟练掌握了编译运行一个c语言文件的过程,学会了使用符号界面下载系统软件,为进一步的学习操作系统打下基础。

        实验中每次遇到含义不够清楚的指令,我都通过网络查询相关信息,将每一条指令、每一个操作都弄懂弄通,熟练掌握。

        对Linux实验环境从初期的生疏到后期的熟悉,对Linux指令从初期的陌生到逐渐的内化,是一个令人有成就感的过程。

实验一:Linux基础操作 1)练习使用启动Linux虚拟机 2)练习同时使用多个控制台登录Linux 3)练习使用date、shutdown、exit、halt、reboot等命令 a.使用date命令修正系统时间,改为当前日期时间 b.使用shutdown命令发出警告信息,查看其他控制台上的用户是否收到信息。 c.通过Internet查找,是否还有其他的关机命令 4)练习操作shell中的特殊按键 在做以下实验之前,用root登录到虚拟控制台1(下面简称vc1),增加一个普通用户,用户名自定: 添加用户命令:useradd 用户名 修改用户密码命令:passwd 用户名 然后用新增加的用户分别登录虚拟控制台2和3 在虚拟控制台3下用新增加的用户登录成功后,运行如下命令: su (变换身份到超级用户,需要输入root的密码) 5)练习所学习的基础命令,完成以下问题: a.logname和whoami的区别,举例说明 b.从vc1向vc3用write命令发信息,写出这条完整的命令 c.假设当前路径为:/var/log,需要变换到绝对路径为/etc/init.d目录下,则该命令用相对路径怎么写? 6)用tar命令实现如下备份和恢复:(备份文件均放在/root目录下,做本实验前必须先将系统时间设置为2013年9月26日) a.对/home目录进行压缩备份(采用gzip压缩),备份文件名为home.tar.gz b.对/home目录进行压缩备份(采用bzip2压缩),备份文件名为home.tar.bz2,比较二种工具的压缩能力 c.在/home目录下建立文件a,在/home目录下建立目录test,在/home/test目录下建立文件b(用vi编辑任意内容) d.对/home目录进行增量备份,备份2013年9月26日以来变化的文件,备份文件名为home.20130926.tar e.删除目录/home,会出现什么情况?然后利用上述备份恢复所有文件。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值