目录
实验一 Linux系统简介
1.Linux为何物
操作系统中,内核负责控制硬件资源分配,而如果只有内核,则只能让计算机硬件运行,而不能有任何功能,因此需要系统调用提供给开发者使用,从而开发应用程序;内核能够控制硬件,比如:让CPU可以运算、让硬盘可以读写数据等;只有内核的话,只能让计算机运行,但是我们不能控制计算机;而系统调用是操作系统提供给开发者的调用接口;任何硬件都不会默认就被操作系统控制,而需要开发商根据操作系统提供的接口开发驱动程序,只有安装了驱动程序才能够控制硬件设备。
Linux 主要是系统调用和内核那两层。当然直观地看,我们使用的操作系统还包含一些在其上运行的应用程序,比如文本编辑器、浏览器、电子邮件等。
2.Linux历史简介
1984年,Richard Stallman组织开发了一个完全基于自由软件的软件体系计划——GNU(GNU是GNU is Not UNIX的递归缩写),并且拟定了一份通用公共许可证(General Public License,简称GPL)。1991年芬兰赫尔辛基大学的学生Linus Torvalds在自己的Intel 386个人计算机上开发了属于他自己的第一个程序,并利用Internet发布了他开发的源代码,将其命名为Linux,从而创建了Linux操作系统。
企鹅的来源:1994年发表 Linux 正式核心 1.0 的时候,大家要 Linus Torvalds 想一只吉祥物,怪怪的 Torvalds 突然想到小时候去动物园被一只企鹅追着满地打滚~还被咬了一口!既然想不到其它的吉祥物了,干脆就以这支企鹅来当吉祥物算了!所以,目前我们常常看到这一只企鹅就是这么来的!
3.Linux重要人物
Ken Thompson(肯汤普森):C 语言之父和 UNIX 之父。 C语言前身B语言的作者,Unix的发明人之一,Belle(一个厉害的国际象棋程序)的作者之一,操作系统Plan 9的主要作者。
Dennis Ritchie(丹尼斯里奇):C 语言之父和 UNIX 之父。对C语言和其他编程语言Multics和Unix等操作系统的发展做出了巨大贡献,被誉为C语言之父、UNIX之父,曾获图灵奖,与布莱恩·科尔尼干(Brian W. Kernighan)出版了《C程序设计语言(The C Programming Language)》,这本书随后被誉为C语言的圣经。
4.Linux 与 Windows 有哪些不同
Linux | Windows | |
费用 | 免费或少许费用 | Windows10需付费购买 |
软件与支持 | 开源软件,Linux开发者提供支持 | 收费软件,微软官方提供支持 |
安全性 | 较好 | 一般 |
使用习惯 | 兼具图形界面操作和命令行操作,入门较难 | 纯图形界面,操作简单 |
可定制性 | 好 | 差 |
应用范畴 | 世界上大部分软件和服务都是运行在Linux上的 | —— |
缺点 | 缺少游戏娱乐支持度、专业软件支持度 | 系统不稳定,安全性和漏洞无法快速修复,缺少可选择的多种图形用户界面,…… |
5.如何学习Linux
实验二 基本概念与操作
1.实验内容
1.1实验楼环境介绍
Linux桌面环境:相对于现在的 Windows 系统,UNIX/Linux 本身是没有图形界面的,我们通常在 UNIX/Linux 发行版上看到的图形界面实际都只是运行在 Linux 系统之上的一套软件,大家熟知也最流行的实现了客户端功能的桌面环境有 KDE,GNOME,XFCE,LXDE,实验楼目前使用的 XFCE 桌面环境。
终端:通常我们在使用 Linux 时,并不是直接与系统打交道,而是通过一个叫做 Shell 的中间程序来完成的,在图形界面下为了实现让我们在一个窗口中完成用户输入和显示输出,Linux 系统还提供了一个叫做终端模拟器的程序(Terminal)。目前我们的实验中的终端程序是 xfce 桌面环境自带的 xfce-terminal 。
shell:通常在图形界面中对实际体验带来差异的不是上述的不同发行版的各种终端模拟器,而是这个 Shell(壳)。普通意义上的 Shell 就是可以接受用户输入命令的程序。它之所以被称作 Shell 是因为它隐藏了操作系统底层的细节。在 UNIX/Linux 中比较流行的常见的 Shell 有 bash、zsh、ksh、csh 等等,Ubuntu 终端默认使用的是 bash,默认的桌面环境是 GNOME 或者 Unity(基于 GNOME),但我们的环境中使用的分别是 zsh 和 xfce。
1.2常用shell命令及快捷键
使用键盘上的方向上键↑
,恢复之前输入过的命令;
表格:Shell 常用快捷键
按键 | 作用 |
---|---|
Tab | 补全命令,补全目录,补全命令参数 |
Ctrl+c | 强行终止当前程序,不会使终端退出 |
Ctrl+d | 键盘输入结束或退出终端 |
Ctrl+s | 暂停当前程序,暂停后按下任意键恢复运行 |
Ctrl+z | 将当前程序放到后台运行,恢复到前台为命令fg |
Ctrl+a | 将光标移至输入行头,相当于Home 键 |
Ctrl+e | 将光标移至输入行末,相当于End 键 |
Ctrl+k | 删除从光标所在位置到行末 |
Alt+Backspace | 向前删除一个单词 |
Shift+PgUp | 将终端显示向上滚动 |
Shift+PgDn | 将终端显示向下滚动 |
表格:Shell 常用通配符
字符 | 含义 |
---|---|
* | 匹配 0 或多个字符 |
? | 匹配任意一个字符 |
[list] | 匹配 list 中的任意单一字符 |
[^list] | 匹配 除 list 中的任意单一字符以外的字符 |
[c1-c2] | 匹配 c1-c2 中的任意单一字符 如:[0-9][a-z] |
{string1,string2,...} | 匹配 string1 或 string2 (或更多)其一字符串 |
{c1..c2} | 匹配 c1-c2 中全部字符 如{1..10} |
图片:通配符使用实例
1.3查看帮助文档
man命令:man
命令,它是Manual pages
的缩写。Manual pages 是 UNIX 或类 UNIX 操作系统中在线软件文档的一种普遍的形式, 内容包括计算机程序(包括库和系统调用)、正式的标准和惯例,甚至是抽象的概念。用户可以通过执行man命令调用手册页。
用如下方式来获得某个命令的说明和使用方式的详细介绍:
man <command_name>
man 手册的内容很多,手册通常被分为 8 个区段,安排如下:
区段 | 说明 |
---|---|
1 | 一般命令 |
2 | 系统调用 |
3 | 库函数,涵盖了 C 标准函数库 |
4 | 特殊文件(通常是/dev 中的设备)和驱动程序 |
5 | 文件格式和约定 |
6 | 游戏和屏保 |
7 | 杂项 |
8 | 系统管理命令和守护进程 |
要查看相应区段的内容,就在 man 后面加上相应区段的数字即可,如:
man 1 ls
会显示第一区段中的ls
命令 man 页面。
图片:使用“man man”命令查看 man 命令本身的使用方式
想要获得更详细的帮助,还可以使用info
命令。如果知道某个命令的作用,只是想快速查看一些它的某个具体参数的作用,可以使用--help
参数.
图片:使用“ls --help"命令查看一些ls的作用
2.作业
图片:打印自己的学号姓名
使用的命令有:
sudo apt-get update
sudo apt-get install sysvbanner
banner 20222802
banner qiaoqianqian
实验三 用户及文件权限管理
1.Linux用户管理
Linux 是一个可以实现多用户登录的操作系统,但是由于 Linux 的 用户管理 和 权限机制,不同用户不可以轻易地查看、修改彼此的文件。
1.1查看用户
图片:查看用户
1.2创建用户
一般我们登录系统时都是以普通账户的身份登录的,要创建用户需要 root 权限,这里就要用到 sudo
这个命令了。不过使用这个命令有两个大前提,一是你要知道当前登录用户的密码,二是当前用户必须在 sudo
用户组。
图片:创建新用户,用户名为qiaoqianqian
图片:登录用户qiaoqianqian, 分辨who am i
和 whoami
命令的区别
1.3用户组
在 Linux 里面每个用户都有一个归属(用户组),用户组简单地理解就是一组用户的集合,它们共享一些资源和权限,同时拥有私有资源。
图片:使用groups命令查看所属用户组
图片:使用cat /etc/group | sort命令查看用户组信息
这里 cat
命令用于读取指定文件的内容并打印到终端输出, | sort
表示将读取的文本进行一个字典排序再输出。
1.4删除用户和用户组
图片:使用 --remove-home
参数删除用户和用户组
2.Linux文件权限
文件权限就是文件的访问控制权限,即哪些用户和组群可以访问文件以及可以执行什么样的操作。Unix/Linux 系统是一个典型的多用户系统,不同的用户处于不同的地位,对文件和目录有不同的访问权限。为了保护系统的安全性,Unix/Linux 系统除了对用户权限作了严格的界定外,还在用户身份认证、访问控制、传输安全、文件读写权限等方面作了周密的控制。
2.1查看用户权限
图片:使用“ls -l”命令用较长格式列出文件
图片:使用“ls -a"命令列出目录下的所有文件,包括以 . 开头的隐含文件
图片:使用”ls -al"命令查看
图片:使用“ls -asSh"命令查看所以文件大小
图片:使用”man ls"命令查看其他排序方式
2.2变更文件所有者
图片:用户qiaoqianqian创建文件20222802
可见文件所有者是qiaoqianqian。
图片:变更文件所有者为 shiyanlou
可见文件所有者是shiyanlou。
2.3修改文件权限
如果你有一个自己的文件不想被其他用户读、写、执行,那么就需要对文件的权限做修改。文件的权限有两种表示方式:
方式一:二进制数字表示
每个文件有三组固定的权限,分别对应拥有者,所属用户组,其他用户,记住这个顺序是固定的。文例如我们刚刚新建的文件 20222802的权限是 rw-rw-rw-
,换成对应的十进制表示就是 666,这就表示这个文件的拥有者,所属用户组和其他用户具有读写权限,不具有执行权限。
图片:更改文件权限为只有所有者拥有读和写的权限
图片:检验发现用户qiaoqianqian已经不具备读写权限
方式二:加减赋值操作
要完成上述实验相同的效果,可以使用命令“chmod go-rw 20222802”,其中g
、o
还有 u
分别表示 group(用户组)、others(其他用户) 和 user(用户),+
和 -
分别表示增加和去掉相应的权限。
3.adduser和user add的区别
useradd
只创建用户,不会创建用户密码和工作目录,创建完了需要使用 passwd <username>
去设置新用户的密码。adduser
在创建用户的同时,会创建工作目录和密码(提示你设置),做这一系列的操作。其实 useradd
、userdel
这类操作更像是一种命令,执行完了就返回。而 adduser
更像是一种程序,需要你输入、确定等一系列操作。
4.作业
图片:添加用户loutest
图片:loutest用户获取sudo权限
图片: 用户 loutest创建一个空文件
图片:文件
/opt/forloutest
设置成用户 loutest
可以读写
实验四 Linux目录结构及文件基本操作
1.Linux目录结构
1.1 FHS标准
FHS(英文:Filesystem Hierarch标准y Standard 中文:文件系统层次结构标准),多数 Linux 版本采用这种文件组织形式,FHS 定义了系统中每个区域的用途、所需要的最小构成的文件和目录同时还给出了例外处理与矛盾处理。
FHS 定义了两层规范,第一层是, /
下面的各个目录应该要放什么文件数据,例如 /etc
应该放置设置文件,/bin
与 /sbin
则应该放置可执行文件等等。
第二层则是针对 /usr
及 /var
这两个目录的子目录来定义。例如 /var/log
放置系统日志文件,/usr/share
放置共享数据等等。
1.2 目录路径
Linux cd 命令是Linux中最基本的命令语句,同时也是常用的命令,其他的命令语句要进行操作,都是建立在使用 cd 命令上的。因此先要学好 cd 命令的使用方法技巧。
使用 cd
命令可以切换目录,在 Linux 里面使用 .
表示当前目录,..
表示上一级目录,-
表示上一次所在目录,~
通常表示当前用户的 home
目录。使用 pwd
命令可以获取当前所在路径(绝对路径)。
绝对路径:以根" / "目录为起点的完整路径,以你所要到的目录为终点,表现形式如: /usr/local/bin
,表示根目录下的 usr
目录中的 local
目录中的 bin
目录。
相对路径;相对路径是以当前目录 .
为起点,以你所要到的目录为终点,表现形式如: usr/local/bin
(这里假设你当前目录为根目录)。