操作系统实验一

实验1 linux系统安装及初级命令熟悉

个人博客地址

一、实验目的

  1. 掌握Ubuntu的安装过程。
  2. 熟悉Linux命令的格式。
  3. 熟悉一些常用的命令。
  4. 熟悉如何使用帮助。

二、实验要求

本次实验要求完成以下内容:

  • 用root登录进入Linux系统,创建自己的账号
  • 执行常用的命令
  • 使用特殊控制键,进行命令行的编辑
  • 使用man命令,来查找特定命令的帮助信息

三、实验预备知识

准备Ubuntu镜像,本次实验采用Ubuntu 20.04版本

四、实验内容

1. 安装linux操作系统

如图所示,Ubuntu系统已经预先安装完成。中文语言输入法均已安装。

image-20211029092634926
2. 基本命令
⑴ 在终端用户下为自己创建一个用户

image-20211029095025375

image-20211029095100329

⑵ 为yuliya用户创建一个密码

image-20211029095125075

⑶ 登录创建的用户

image-20211029095223103

⑷ 查看当前用户

image-20211029095400878

image-20211029095241084

⑸ 查明具体用户

image-20211029095318256

⑹ 退出当前用户

image-20211029095338451

⑺ 在命令行下进行关机操作

image-20211029095831358

⑻ 重新启动

image-20211029102955840

3. 特殊键的使用

回车键RETURN或者CONTROL-m或CTL-m,它表示输入行结束
CTL-d 它表示终端的输入结束;
CTL-g 控制终端响铃;
CTL-h 称为退格键,用于改正输入的错误;
CTL-i 常称作Tab键
DELETE键表示立即终止程序
BREAK键与DELETE键、CTL-c的功能

4. linux下的帮助命令
⑴ #man 命令

image-20211029103608022

image-20211029103551797

⑵ #help

image-20211029103740702

⑶ #命令 --help

image-20211029103908087

5. 文本编辑器

要在linux下编写文本或语言程序,可以选择适用vi,pico,joe,jove,mc编辑器等这样的文本模式,还可以使用像Gedit,Kate等视窗环境下的编辑器,或是使用KDevelop,它是在linux下的XWindow下执行的C/C++整合式开发环境。

实验2 文件目录与操作

一、实验目的

使学生熟悉目录与文件的操作

二、实验要求

本次实验要求完成下列内容:

  • 显示当前目录的目录名
  • 改变当前目录
  • 使用ls命令的各种选项查看文件与目录属性
  • 创建和删除目录
  • 创建0长度的文件
  • 拷贝、移动、重命名及删除文件
  • 查看文件的内容
  • 对文件和目录进行压缩和解压缩

三、实验预备知识

1. 什么是文件

从通常意义上来说,文件是一些数据的集合,这些数据通常是文本或机器操作码。用户所创建的大多数文件都是文本文件,而在Linux上运行的大多数程序则是机器操作码文件。每当执行一条Linux命令时,就是告诉计算机去执行某个文件或某组文件中的命令,这样的文件以半永久的形式存储在像磁盘或磁带这样的稳定介质中。

在Linux系统中,除了通常意义上的文件外,每个物理实体也都是以文件的形式出现的。Linux系统视所有文件为简单的数据字节序列,但用户或应用程序可以对文件内容附加特定的结构。

2. 什么是目录

目录是文件系统中的一个单元,它存放着各种文件。事实上,Linux系统中的每个文件都是包含在某个目录中的。这样的安排保持了文件的组织,并减少系统寻找某一特定文件所花的时间。

在Linux系统中,目录实际上也是一种文件。它不包含文本或可执行的机器操作码,但它具有文件名列表和有关这些文件的其它信息。

由于目录也是一种文件,因此也可以把一个目录放到另一个目录中。这有助于作为整体解释文件系统,因为系统实际上是目录和文件组成的层次结构。

3. 文件的命名规则

为了区别各个文件,必须给每个文件取个名字。在Linux系统中,一个合格的文件名由字母、数字和某些特殊符号组成。文件名中不应该包含空格、制表符、换行符和退格符,也不应该包含任何对shell有特定含义的字符,这些特定字符包括:`!@#$%^&*()|[]{}’";<>/

4. 文件系统的层次结构

Linux的文件系统是一个包含文件和目录的层次结构,被称为目录树。目录树的最顶端只有一个目录,被称为根(root)目录。根目录以斜线字符(/)表示,由它再分支出若干其他目录和文件,。这些目录中的每一个又可能再分支出其他的一些目录和文件。下图显示了一个典型的Linux文件系统的部分结构。

image-20211029104920799

在图中,home是/的子目录,jame、john和sjp是home的子目录。相应地,/是bin、dev、lib、home和usr等的父目录,home又是jame、john和sjp的父目录。

5. Linux一些主要的标准目录

/bin目录保存引导系统所需要的全部可执行程序以及最常用的Linux命令。

/boot目录用来存放Linux启动时所需要的一些数据和文件。

/dev目录包含有链接硬件设备的文件。

/etc目录含用于管理Linux系统的文件和工具。

/home目录用来存放各个用户的主目录。

/lib目录含有C编译程序所需要的函数库。

/usr目录包含X Windows系统的可执行程序、函数库以及游戏等。

四、实验内容

1. 显示当前目录的目录名

使用pwd命令,确认你现在所处的目录。命令pwd可以告诉用户目前是在哪个目录中,这一命令将显示当前目录的全路径名。

image-20211029111012656

2. 改变当前目录

命令cd使用方式为cd [目录路径名],用于变换工作目录至指定目录,[目录路径名]可为相对路径,也可以为绝对路径。

image-20211029111604450

3. 使用ls命令的各种选项查看文件与目录属性

用户经常要查看某个目录中有哪些文件和子目录,这可以使用ls命令来完成。ls命令有非常多的选项,用来修正ls命令的行为,以便满足
用户的不同需求。

  • 在最简单的情况下,ls命令可以不带任何实参。这时ls命令将以字母顺序列出当前目录中的所有文件和子目录的名字。

    • 命令为:$ls

    image-20211029112513317

  • 使用带参数“l”(小写的“L”)的ls命令可以显示当前目录下所有的文件名、文件的类型、文件的访问权限、文件的链接数、文件拥有者及其所属的组、文件大小和文件最近一次被修改的日期和时间等属性。

    • 命令为:$ls -l

    image-20211029112536299

  • 有些情况下命令ls任何输出,并不表示该目录中没有文件和子目录,因为通常情况下ls命令并不显示隐含文件(或目录) 。要显示隐含文件,可以使用参数“a”的ls命令。

    • 命令为:$ls -a

    image-20211029112607485

  • 要列出某个目录下的所有文件,包括其任何一层子目录下的文件,可以用带参数“R”的ls命令实现。该命令递归地显示指定目录(或当前目录)下的所有内容。

    • 命令为:$ls -R

    image-20211029112705638

4. 创建和删除目录
(1) 创建目录

每个用户在实际中都需要创建自己的目录,这是通过mkdir命令来完成的。

语法形式为:$ mkdir [-p] dirName,
用于建立名称为dirName 之子目录。其中,参数-p确保目录名称存在,不存在的就建一个。

image-20211029113441518

(2) 删除目录

删除目录的命令为rmdir,使用语法为:$rmdir [dirName]

作用是删除目录名为dirName的目录。

  • 注意:rmdir命令不能删除一个非空的目录。

image-20211029113655911

5. 创建0长度的文件

touch命令用于改变档案的时间记录。touch使用方式touch [-acfm] [-r reference-file] [-t MMDDhhmm [[CC][YY][.ss]] [-dtime] [–date=time] [–time] [–version]file1 [file2 …]

其中,touch命令的参数为:a改变档案的读取时间记录。m改变档案的修改时间记录。c假如目的档案不存在,不会建立新的档案。r使用参考文件的时间记录。d设定时间与日期。t设定档案的时间记录。

touch的另外一个功能就是创建一个0长度的文件。
例如,使用touch命令在OS目录创建名为myfile1,myfile2的两个文件:
$ touch myfile1 myfile2

image-20211029114053508

6. 拷贝、移动、重命名及删除文件
(1) 文件的拷贝

使用cp命令可以将某个文件复制一份,cp命令的一般语法形式为如下:cp <原文件路径名> <新文件路径名>

image-20211029114825468

(2) 文件的移动和文件的重命名
  • 命令mv可以对某个文件进行改名,以及将某个文件从一个文件夹移动到另一个文件夹。
    使用方式:mv [-i] <文件原路径> <文件新路径>
    说明:将一个档案移至另一档案,或将数个档案移至另一目录。
    参数:-i 若目的地已有同名档案,则先询问是否覆盖旧档

  • 改名

    image-20211029115420223

  • 移动

    image-20211029115710886

(3) 删除文件

删除文件命令为:rm
使用方式:rm [-options] 文件名

options参数:
-i 删除前逐一询问确认。
-f 直接删除档案,无需逐一确认。
-r 将目录及以下之档案逐一删除。

示例:

image-20211029120134543

7. 查看文件的内容

cat和more这两个命令可以查看文件的内容。

(1) cat命令
  • 使用方式:cat [-option] fileName

  • 参数:

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

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

    image-20211029120548660

    image-20211029120612315

(2) more命令
  • 使用方式:more [-option] [+/pattern] [+linenum] [fileNames]

  • 使用范例

    从第20 行开始显示testfile 之档案内容

    image-20211029120937071

    查看/etc/passwd文件的内容:

    image-20211029121012612

8. 对文件和目录进行压缩和解压缩
  • 压缩文件可以减少所需的存储空间,也可以减少网络传输文件所需的时间,因此压缩和解压缩在Linux中很常用。Linux中压缩和解压缩的指令很多,如gzip、zip、bzip2等等,这里介绍比较常用的gzip指令。

  • 使用方法:gzip [-option] [-S <压缩字尾字 符串>] [-<压缩效率>] [–best/fast] [文件]

  • 补充说明:gzip是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多出".gz"的扩展名。

  • 使用范例:

    • 对文件np使用gzip命令进行压缩:
      $ gzip np

      image-20211029121428777

    • 将np压缩后的文件进行解压缩并列出详细信息
      $ gzip -dv np.gz

      image-20211029121510000

    • 将goodstuff目录下的所有文件进行压缩:
      $ gzip -r goodstuff

      image-20211029121702889

    • 对goodstuff目录进行解压缩:
      $ gzip –dr g oodstuff

      image-20211029121727712

实验3 权限

一、实验目的

给学生一个操作文件与目录权限的机会。作完这些练习之后,使学生能够对LINUX中文件所有者的概念和权限的概念有基本的理解。

二、实验要求

本次实验要求完成下列内容:

  • 使用长列表命令来查看文件与目录的信息
  • 能够解释文件与目录权限中各位的含义
  • 能够对普通文件与目录的权限进行操作
  • 能够更改文件和目录所属的用户和

三、实验预备知识

在linux系统中,每个文件或者一个目录属于一个用户或一个组。Linux权限通过允许每个文件系统对象设置三种独立的权限级别来工作。3种独立的权限级别为:

  • 文件拥有者(u);
  • 文件拥有者所在用户组中的其它成员(g);
  • 所有其它用户(o)。

每个文件均拥有下列三种权限:

  • read ®: 查看文件内容
  • write (w): 修改文件
  • execute (x): 如同命令一样执行文件

每个目录均拥有下列三种权限:

  • read ®: 列出目录内容
  • write (w): 在目录中增删文件
  • execute (x): 访问目录中的文件

当你创建一个文件的时候,系统保存了有关该文件的全部信息,包括:

  • 文件的位置。
  • 文件类型。
  • 文件长度。
  • 哪位用户拥有该文件,哪些用户可以访问该文件。
  • i节点。
  • 文件的修改时间。
  • 文件的权限位。

在进行各种操作时,首先必须弄清楚自己所在的目录。如果你对自己目前的位置失去了感觉,那么各种命令可能都会失效。最有效的方法就是,经常使用pwd命令,来查看你所在的当前目录。

四、实验内容

1. 使用长列表命令来查看文件与目录的信息

对一个文件使用ls –l 命令,就会按如下顺序显示下列信息:

  • 文件类型(第1个字符)

    • -: 普通文件
    • d: 目录
    • l: 符号链接
    • c: 字符型设备节点
    • b: 块设备节点
  • 文件访问权限(接下来的9个字符,每3个一组依次代表user、group和other)

  • 文件的硬链接数

  • 文件拥有user的用户名

  • 文件所属group的用户组名

  • 文件的字符数size (bytes)

  • 文件的date and time (mtime)

  • 文件的name

image-20211029162532418

2. 解释文件与目录权限中各位的含义

对于文件a.out

第一个字符为-,表示它是一个普通文件,接下来9个字符每三位分别代表所有者权限、同组用户权限和其他用户权限,在上例中,九个字符分别为:rwx、rwx、r-x,因此a.out文件具有所有者类中的读写和执行权限,对于组类也有读写和执行权限,而对于其他用户类也只有读和执行权限。

后面的信息依次表示a.out文件的硬链接数为1,文件所属的用户名为zino,文件所属组名为zino,文件大小为16696byte,最后是文件创建的时间为6月21日19:22和文件名为a.out。

3. 对普通文件与目录的权限进行操作

改变文件权限的命令是chmod

  • chmod命令的一般格式为: chmod [who] operator [permission] filename

  • who 的含义是:

    • u 文件属主权限。
    • g 同组用户权限。
    • o 其他用户权限。
    • a 所有用户(所有者、同组用户及其他用户)。
  • operator的含义:

    • + 增加权限。
    • - 取消权限。
    • = 设定权限。
  • permission的含义:

    • r 读权限。
    • w 写权限。
    • x 执行权限。
    • s 文件属主和组set-ID。
    • t 粘性位*。
    • l 给文件加锁,使其他用户无法访问。
  • 举例:
    $chmod a-x a.out 收回所有用户的执行权限

    image-20211029165852610

    $chmod u+x myfile 赋予文件属主执行

    image-20211029165929699

上面所述的改变用户权限的方法被称为权限符号法,还有一种更为简便的方法用来更改用户权限:二进制掩码法(绝对方法)。

  • 含义

    绝对方法就是使用八进制数字作为掩码来设置不同的文件权限。每个八进制数字应用于一种用户类。你可以将这个数字想象为从所有者类开始从左到右与权限类别相匹配。

    第一个八进制数字应用于所有者类,第二个是同组类,而第三个是其他用户类

    你所选择的实际的八进制数字可以为每个用户类确定读、写和执行权限。从这一点上说,需要了解八进制数字是如何转换为二进制格式的。
    可以认为首先将八进制数转换为二进制格式,然后每个三位二进制数字用于设置读、写和执行权限。每个二进制数字从左到右和相应的权限相匹配。如果一个二进制数字是0,那么该权限则被禁止,如果是1则被打开。第一个二进制位设置了读权限的打开与关闭,第二个设置了写权限,第三个设置了执行权限。
    例如,一个八进制数字6转换为二进制数字110。这会将读写权限打开,执行权限关闭

    由八进制到二进制的转换很麻烦,这里有个简便方法:如果赋予读权限,算4;如果赋予写权限,算2;如果赋予执行权,算1;将这些数字累加起来,如果同时拥有读取和写权限,
    那就是2+4=6,也就是二进制里面的110。

  • 举例:

    $chmod 666 myfile :
    赋予所有用户读和写的权限(读+写=2+4=6)

    image-20211029170150062

    $chmod 744 myfile :
    赋予文件所有者读、写和执行的权限(读+写+执行=1+2+4=7),所有其他用户读的权限(读=4)。

    image-20211029170209608

4. 更改文件和目录所属的用户和组

改变文件所有者的命令是chown

  • chown命令的一般形式为:chown -R -h owner file

  • -R选项意味着对所有子目录下的文件也都进行同样的操作。

  • -h选项意味着在改变符号链接文件的属主时不影响该链接所指向的目标文件。

  • 举例

    在终端中运行:$ls –l a.out
    我们可以看到文件的拥有者是zino。
    接着运行:$ chown root a.out
    运行完成后我们继续运行:$ ls –l a.out
    我们可以看到文件的拥有者是root。

    image-20211029171209781

改变文件所有组的命令为chgrp

  • chgrp命令的使用方式与chown基本相同:chgrp –R –h group file

  • -R选项意味着对所有子目录下的文件也都进行同样的操作。

  • -h选项意味着在改变符号链接文件的所属组时不影响该链接所指向的目标文件。

  • 举例:在终端中运行:$ ls –l a.out
    我们可以看出文件所属的用户组为zino。
    接着运行:$ chgrp root a.out
    然后继续运行:$ ls –l a.out
    可以看出文件的所属的组为root。

    image-20211029171327096

  • 提示:

    • 如果你想知道自己属于哪几个用户组,可以使用group
      和id命令:
      $ group 或
      $ id

      image-20211029172200328

    • 如果想要知道其它用户属于哪几个用户组,就在group
      命令后面接上用户名,如:
      $ group aifi
      ​$ users admin general
      上面的命令告诉我们,aifi属于users、admin和general这三个用户组。

    • cat /etc/group 查看分组

      image-20211029172141101

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值