Linux学习

这里写目录标题

一、Linux介绍

1.常见的操作系统

2.为什么要使用Linux操作系统

3.Linux简介(了解)

3.1、Linux操作系统

一、Linux介绍

1.常见的操作系统

• Windows

它微软公司开发的一款桌面操作系统(闭源系统)。版本有dos、win98、win NT、win XP、win 7、win vista、win 8、win 10。服务器操作系统:win server 2003、win server 2008、win server 2012。

• Mac

苹果公司开发的一款操作系统(闭源系统),目前最新的版本是IOS14。界面风格还是不错。对于系统底层的优化也是很好。

• Linux

Linux是一个开源的操作系统,目前是市面上占有率极高的服务器操作系统。目前其分支有很多。安卓

• Unix(了解)

Unix是Linux操作系统的前身,Unix时间戳是指1970年1月1日0时0分0秒,1970年是Unix的时间元年,也就是Unix诞生的年份。

2.为什么要使用Linux操作系统

之所以大部分的公司开发的时候都是使用Linux操作系统,取决于两个特性:

稳定性:取决于系统的底层架构,一般情况下Linux系统能做到很长时间不关机一点也不卡顿;

安全性:开源系统,所有人都可以贡献自己的源代码为Linux系统打补丁; github

3.Linux简介(了解)

3.1、Linux操作系统

• 人 物 Linus

Linux的开发作者,李纳斯·托瓦兹。荷兰在校大学生。

• 1991年 0.0.1版本

李纳斯当时学校使用的就是Unix操作系统,然后其对系统的底层代码进行了修改,放到了学校为学生开放的网站上,原先他把文件命名写成了Linus’s Unix,后期网络管理发现之后觉得这个名字不好,自己手动的将名字改成Linux。随后其他同学下载之后发现这个版本还是挺好用的,随后都把自己代码贡献给李纳斯。github

• 1992年 0.0.2版本

• 1994年 1.0版本

• 2003年 2.6版本

上面所说的版本是指Linux的内核版本,不是指分支的发行版本。

3.2、开源文化

Linux是开源的操作系统。所谓开源就是指开放源代码。

• 人 物 Stallman 斯特曼

开源文化的倡导人。

• 1983年 GNU计划 格奴计划

• 1985年 FSF基金会

• 1990年 Emacs、GCC(C语言编译器)、程序库

• 1991年 Stallman去找Linus,商谈让Linux加入其开源计划(GNU计划)

• 1992年 GNU/Linux

3.3、Linux分支

目前分支比较多,常见的有centos(社区企业网络操作系统)、RedHat、乌班图、debian等等。

具体的分支,可以查看Linux分支图。

二、Linux安装

通常情况下安装分为真机安装、在虚拟环境中安装。

真机安装:是指将电脑上的操作系统真实的换做其他的操作系统;

虚拟环境安装:是指通过一些特殊的软件虚拟出一个安装环境,然后在安装环境中进行安装;

​ (虚拟机≠虚拟主机)

1、安装虚拟环境

虚拟环境可以通过特殊的软件来实现:VMare Wrokstation(墙裂推荐)、Virtual Box等。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZjMKzNoK-1616225825323)(img/clip_image002.jpg)]

32位安装:适用于32位电脑;

64位安装:是用于64位电脑;

系统的位数可以在【计算机】-【属性】中查看:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jlS6iKX1-1616225825325)(img/clip_image004.jpg)]

CentOS-7-x86_64-DVD-1511.iso:镜像文件,也就是Linux的安装包

第一步:先运行VM****的安装程序,然后点击下一步

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XaFatnpy-1616225825327)(img/clip_image006.jpg)]

第二步:同意其许可协议,然后点击下一步

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-q7gcQklI-1616225825330)(img/clip_image007.png)]

第三步:选择安装的位置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Pz2SHK64-1616225825333)(img/clip_image008.png)]

说明:该路径是指虚拟机软件的安装路径

第四步:选择是否帮助VM****公司提高软件的用户体验,可以不选。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9q0oG3OU-1616225825334)(img/clip_image009.png)]

第五步:勾选快捷方式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gMwt1sir-1616225825335)(img/clip_image010.png)]

第六步:点击安装按钮

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LFYZ4gMV-1616225825336)(img/clip_image011.png)]

第七步:安装完成

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XUGZQzdf-1616225825338)(img/clip_image012.png)]

桌面上会有这个图标:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zqwqH653-1616225825338)(img/clip_image013.png)]

要求在网卡里面要多出2****个网卡

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mPE6DFHK-1616225825340)(img/image-20210312124653499.png)]

安装完成之后打开软件会看到下面的界面:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-v5vVR10f-1616225825340)(img/clip_image016.jpg)]

2、Linux安装

1、创建新的虚拟机

2、安装流程

第一步:打开软件,点击屏幕中大的“+****”或者选择【文件】选项卡中的【创建新的虚拟机】创建新的虚拟机

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EiIXI0zV-1616225825341)(img/clip_image018.jpg)]

第二步:在弹出的引导界面,选择【自定义(高级)】,点击【下一步】

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rxegjnOl-1616225825342)(img/clip_image019.png)]

第三步:在选择虚拟机兼容性界面直接点击下一步

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wRCPiZmt-1616225825343)(img/clip_image020.png)]

第四步:选择介质来源,这个时候选择第三个【稍后安装操作系统】,然后点击【下一步】

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TGvsPqCv-1616225825344)(img/clip_image021.png)]

第五步:选择操作系统类型,然后点击下一步

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6yAChHI7-1616225825344)(img/clip_image023.jpg)]

第六步:设置虚拟机的名称已经其安装目录

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vCXnVeV7-1616225825345)(img/clip_image025.jpg)]

说明:这个路径是指虚拟机安装的操作系统所产生的文件存放目录,不是指虚拟机的安装目录;

第七步:选择虚拟操作系统的cpu****核心数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pHq2AT0e-1616225825346)(img/clip_image026.png)]

说明:此处以及后续的配置设置中设置的配置不要超过当前运行电脑的配置

第八步:设置操作系统的内存数值,一般情况下2GB

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6NMHH6pW-1616225825347)(img/clip_image027.png)]

说明:

1**、设置内存的数值必须是4****的倍数;**

2**、内存的设置数值不要超过当前电脑的内存数值;**

第九步:选择网络类型,选择【NAT**】,然后点击【下一步】**

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-I9fa8i3c-1616225825348)(img/clip_image028.png)]

第十步:选择I/O****控制器类型,默认即可,点击【下一步】

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mwfwTWKf-1616225825348)(img/clip_image029.png)]

第十一步:选择磁盘类型,默认即可,点击【下一步】

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PaUzf0ER-1616225825349)(img/clip_image030.png)]

第十二步:选择磁盘位置,选【创建新的磁盘】,然后点击【下一步】

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2zW1cwDN-1616225825350)(img/clip_image031.png)]

第十三步:选择磁盘大小,默认20G

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-y582vyOI-1616225825351)(img/clip_image032.png)]

第十四步:设置磁盘文件位置,默认即可,点击【下一步】

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xTYOqrgb-1616225825351)(img/clip_image033.png)]

第十五步:安装向导结束,点击【完成】就可以

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-P1n7g7TE-1616225825352)(img/clip_image034.png)]

安装完成看到下面这个界面:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mcpkppjw-1616225825353)(img/clip_image036.jpg)]

3、安装CentOS

1.连接光盘

右击刚创建的虚拟机,选择设置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zVfyCIoC-1616225825354)(img/clip_image001.png)]

先选择CD/DVD,再选择使用ISO映像文件,最后选择浏览找到下载好的镜像文件。启动时连接一定要勾选上后确定。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jtwvhvm0-1616225825354)(img/clip_image002.png)]

2.开启虚拟机

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jPkPtW1a-1616225825355)(img/clip_image003.png)]

3.安装操作系统

开启虚拟机后会出现以下界面:

· Install CentOS 7 安装CentOS 7

· Test this media & install CentOS 7 测试安装文件并安装CentOS 7

· Troubleshooting 修复故障

选择第一项,安装直接CentOS 7,回车,进入下面的界面

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-16wubSEQ-1616225825355)(img/clip_image004.png)]

选择安装过程中使用的语言,这里选择英文、键盘选择美式键盘。点击Continue

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QtL2svxd-1616225825356)(img/clip_image005.png)]

首先设置时间

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UndLctCX-1616225825357)(img/clip_image006.png)]

时区选择上海,查看时间是否正确。然后点击Done

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-980mDaQ7-1616225825358)(img/clip_image007-1615464063640.png)]

选择需要安装的软件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-doLwoYaJ-1616225825359)(img/clip_image008-1615464063640.png)]

选择 Server with Gui,然后点击Done

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3bqCQUBK-1616225825360)(img/clip_image009-1615464063641.png)]

选择安装位置,在这里可以进行磁盘划分。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZlAGsiz3-1616225825361)(img/clip_image010-1615464063641.png)]

选择i wil configure partitioning(我将会配置分区),然后点击done

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LZmoF2uU-1616225825363)(img/clip_image011-1615464063641.png)]

如下图所示,点击加号,选择/boot,给boot分区分200M。最后点击Add

1、分/boot区,给200M,/boot放启动文件。

2、分交换分区(交换空间)swap,看内存总大小,如果内存足够大,这个空间就要设置太大了。如果内存小于2G。那么这个空间设置成内存的2倍大小。

3、所有空间给/(根分区)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-M1NS4qfD-1616225825363)(img/clip_image012-1615464063641.png)]

然后以同样的办法给其他三个区分配好空间后点击Done

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-46tTqxfF-1616225825364)(img/clip_image013-1615464063642.png)]

然后会弹出摘要信息,点击AcceptChanges(接受更改)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ISajmeX9-1616225825365)(img/clip_image014-1615464063642.png)]

设置主机名与网卡信息

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NilLaYVi-1616225825366)(img/clip_image015.png)]

首先要打开网卡,然后查看是否能获取到IP地址(我这里是桥接),再更改主机名后点击Done。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a19VdrOV-1616225825367)(img/clip_image016.png)]

最后选择Begin Installation(开始安装)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ltgjzgtj-1616225825368)(img/clip_image017.png)]

设置root密码

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-t3qCzAA8-1616225825368)(img/clip_image018.png)]

设置root密码后点击Done

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-X3AgUIOR-1616225825370)(img/clip_image019-1615464063642.png)]

点击USER CREATION 创建管理员用户

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZDmC9NC9-1616225825371)(img/clip_image020-1615464063642.png)]

输入用户名密码后点击Done

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-27ElgTto-1616225825371)(img/clip_image021-1615464063643.png)]

等待系统安装完毕重启系统即可

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lfNA8bgl-1616225825372)(img/clip_image022.png)]

如若重新开机启动后显示:

Initial setup of CentOS Linux 7 (core)

  1. Creat user 2) [!] License information

(no user will be created) (license not accepted)

Please make your choice from above [‘q’ to quit | ‘c’ to continue | ‘r’ to refresh]:

解决方法:

输入“1”,按Enter键

输入“2”,按Enter键

输入“q",按Enter键

输入“yes”,按Enter键

三、Linux目录介绍

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pxVeTMf9-1616225825373)(img/clip_image002-1615520791771.jpg)]

/:表示的是根的意思

/bin:(binary)存放的是一些二进制文件,但是在Linux中二进制文件是可以被执行的。这个目录中的命令文件是给普通用户使用(非超级管理员用户)。

/etc:Linux下所有的配置文件都会存放到etc目录。

/home:是所有非root用户家目录的一个集合。

/root:root用户的家目录。

/sbin:sbin表示super bin(shell bin),里面同样也类似于bin目录,也存放了一些二进制文件,只不过这些命令只能是让超级管理员去运行。

/usr:存放着一些用户自己安装的软件,其实类似于windows下的Program Files目录。

/var:(variable**)存放着Linux下的一些日志文件,在实际开发的时候有一些公司也习惯把Apache或者nginx**的站点目录也会放到这个目录中。

四、命令行(shell,壳)

了解:常见的shell。

Csh、tcsh、zsh、bash

在Linux中如何打开命令行界面?

打开方式:在Linux中的任意一个空白的地方(不要点着图标),右键然后选择【在终端中打开】,会看到一个类似于下面界面的窗口:
clip_image003-1615520791774.png

命令行符号介绍:
clip_image005.jpg

关于用户身份标记说明:

在Linux中 #**表示超级管理员身份,$**符号表示普通用户。

五、Xshell 安装及使用配置

1、ssh的应用

1.1、远程登录(重点)

终端工具主要帮助运维人员连接远程的服务器,常见终端工具有:Xshell、secureCRT、Putty等。以Xshell为例:

①获取服务器ip地址,可以通过ifconfig命令进行查看,然后顺手测试ip的连接相通性

#ifconfig
img/image-20210317110651391.png

此处获取的ip地址地址还是192.168.134.133

测试连通性:ping 192.168.134.133

image-20210319195546664.png
扩展:不借助第三方工具实现远程连接。

​ ①打开Windows的cmd黑窗口(前提是Windows必须安装ssh服务,如果没有而需要这个功能,则自行安装openSSH)

​ ②输入“ssh 需要登录的用户名**@**远程服务器的连接地址”回车

​ ③输入密码

例如:
clip_image119.jpg## 2、xshell安装
xshell官网,点此进入
1.双击安装包
image-20210313174604902.png

2.同意许可协议,点击下一步

image-20210313174713953.png
3.修改目录地址,点击下一步
image-20210313174820831.png
4.正式安装image-20210313174841592.png
5.安装完成
image-20210313174908892.png

6.打开xshell
image-20210313175553923.png

3、xshell使用配置

创建连接服务器:
1、使用软件时我们就需要创建连接,然后连接到我们的服务器上去,进行操作。第一次打开软件时,会自动弹出连接页面,这里我们可以点击左上角的按钮,创建服务器连接。202007031442566926.jpg
2、然后出来服务器信息页面,在这里需要填写的是:
(1)连接名称:自定义
(2)服务器IP: ifcongfig -a
(3)服务器端口(默认22)
202007031443061527.jpg
3、填写完毕后,点击确定,保存配置,回到连接页面,可以看到多了一个测试服务器的连接。
202007031443192418.jpg
4、我们点中那个测试服务器的连接,然后点击连接按钮。就开始连接服务器了。第一次连接会提示你是否保存服务器信息,点击接受并保存。
202007031443297867.jpg
5、然后要求你输入用户名,你输入可以连接服务器的合法用户名,勾选记住用户名,要不后面每次连接都要输入。
202007031443378699.jpg
6、然后进入到输入密码窗口,输入前面的用户密码。点击连接。
202007031443442618.jpg
7、如果认证通过了,那么就会显示出登陆信息。如下面图中所示,会显示出服务器的ip地址,以及上次登陆时间等信息。
202007031443522041.jpg

4、 文件传输

1.安装xftp

image-20210317105705900.png

2.安装完成之后即可实现文件互传了

/image-20210317110131925.png

五、基本命令(重点)

通用语法格式:# 指令名称 [选项] [操作的目标]

假设:让小明去楼下超市买清风牌的餐巾纸和农夫山泉牌矿泉水。

买东西是指令

水和餐巾纸是目标

清风和农夫山泉是选项。

1、简单命令

1.1、ls指令

语法1:**#ls [**路径]

表示列出指定路径下的文件夹和文件的名字,如果路径没有指定则列出当前路径下的(list)

例如:在root用户的家目录中输入ls命令,则会看到以下的效果:
clip_image002-1615627888228.jpg
要求列出/home的文档的名称。

#ls /home
clip_image004-1615627888228.jpg
语法2:**#ls -l [**路径]

表示以列表的形式列出指定路径下的文件夹和文件的名字

例如:使用ls –l的命令列出当前用户家目录中的文件夹和文件信息

clip_image006-1615627888229.jpg
语法3:**#ls -la [**路径]

表示以列表的形式列出指定路径下的文件夹和文件名(包含隐藏文件**,all**)

例如:在当前用户的家目录中输入ls –la命令可以查看全部的文件夹和文件名,并且包含了隐藏文件(特点是以“.”开头的名字
clip_image008.jpg
注意:如果一个指令拥有多个选项,一般情况下(95%+)对于选项的顺序没有要求,随意谁前谁后。但是为了避免混淆建议按照笔记里的顺序来记忆。

在Linux下严格区分大小写。

1.2、clear指令

表示的含义:清空当前屏幕中全部的命令(其实质是没有清空,只不过是顶到上面去了

语法:#clear

clip_image010.jpg

等效于快捷键:ctrl + L

清除Windows的cmd指令叫做:cls

1.3、su指令

作用:切换用户(switch user)。

语法:#su 需要切换到的用户名(用户名可以不写,则表示切换到root****用户)

例如:

1、从root用户切换到linux123用户。

#su linux123
clip_image012.jpg

2、从linux123用户切换到root用户。

#su root

clip_image014.jpg

等价于:

#su

通过上述两个命令的操作发现一个结论:

当切换到的用户权限如果比当前用户的权限低,可以直接切换,不需要密码;反之,如果从低往高切换则要求输入被切换到的账户对应的密码(高级权限账户密码)。

在输入密码的时候不会有任何的输入提示,输入完毕之后按下回车即可,如果输错了,可以按回车重新输入,或者按住backspace键3秒以上,然后重新输入。

1.4、cd指令

作用:切换目录(change directory)。

语法:#cd 需要切换到的路径(路径可以是相对路径,也可以是绝对路径)

路径可以写也可以不写,不写则表示切换到当前用户的家目录(一键回城)。

例如:

1、从root用户家目录中切换到linux123用户的家目录中

#cd /home/linux123

提示:在切换路径或者后期打开一个文件的时候可以多建议使用tab****键(可以自动补全命令路径)。

2、切换用户切换到linux123用户,然后从linux123用户的家目录使用cd切换到root的家目录
clip_image016-1615627888229.jpg
结论: 低级用户没有权限访问高级用户相关的资源(权限)

关于路径:

路径分为相对路径和绝对路径。

相对路径是相对当前路径的一种表现形式。

特点:只要不是以“/”开头的就是相对路径。

绝对路径是直接从“根”开始的一种路径形式。

特点:以“/”开头的路径称之为绝对路径。

/root/a/b/c

root/a/b/c

./root/a/b/c

…/root/a/b/c

案例:从root用户家目录中切换到linux123用户的家目录中,要求以相对路径形式书写。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-98gpowgk-1616225825395)(img/clip_image018-1615627888229.jpg)]

1.5、pwd指令

作用:打印当前的工作路径(print working directory**)**。

例如:在当前用户的家目录中使用pwd命令。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ztpZRL35-1616225825396)(img/clip_image020.jpg)]

2、文档的操作命令

2.1、创建文件

命令:touch

语法:#touch路径

例如:

1、在当前路径下创建一个文件名字叫php2019.txt。

# touch php2019.txt

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mUoCCZDa-1616225825397)(img/clip_image022.jpg)]

2、在磁盘根目录下创建文件php2019.txt。

# touch /php2019.txt

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZuSzWJ6A-1616225825398)(img/clip_image024.jpg)]

2.2、创建文件夹

命令:mkdir [make directory]

语法:#mkdir [-p] 文件夹路径

选项:

​ -p表示递归创建(parent),可同时创建多级不存在的文件夹

例如:在root的桌面上创建一个php的文件夹

#mkdir php

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wamYvQBN-1616225825399)(img/clip_image026.jpg)]

问题:

#mkdir index.php创建的是什么? 【文件夹】

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dGOg2ZzL-1616225825400)(img/clip_image028.jpg)]

注意:不能以后缀来判断文档是文件还是文件夹。应该看ls -l指令的执行结果的第一个字符。d表示文件夹,-表示普通文本文件。【c**:字符设备文件、b****:块状设备文件、l****:连接文件(快捷方式)、s****:套接字文件】**

问题:

在上述的指令执行的基础上行,执行#touch index.php,创建的是什么? 【没有任何效果

原因:因为在此之前已经产生同名的文件夹,系统不允许在同一路径下存在同名的文档,因此不执行创建文件操作。

2.3、复制

命令:cp (copy)

语法:#cp [-r] 需要复制的文档 需要保存的位置

选项说明:

​ -r:表示递归如果复制的是文件夹,则**-r****就不是选项,是必须要加的。**

问题:文档在复制的过程中,其名称一般是否变化? 【不变,数量变化】

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vbnPjxLm-1616225825401)(img/clip_image030.jpg)]案例1:需要使用root用户,将根下的php2019.txt复制到linux123用户的家目录下

案例2:将桌面上(当前目录)的php文件夹复制到linux123的家目录下

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GTaUATyd-1616225825402)(img/clip_image032.jpg)]

2.4、移动/剪切/重命名

命令:mv (move)【剪切+粘贴】

语法:#mv 需要操作的文档 新的文档的位置

案例:【移动/剪切】将linux123家目录下的php2019.txt,移动到root家目录下。

问题:移动操作会影响什么? 【路径变化,数量不变,名称不变

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-crhPrExU-1616225825402)(img/clip_image034.jpg)]

案例2:【重命名】将root下的php2019.txt重命名为php.doc。

问题:重命名操作会影响什么? 【名称变,路径不变,数量不变

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wSb5VN2P-1616225825404)(img/clip_image036-1615627888230.jpg)]

**
**

2.5、删除

命令:rm (remove)

语法:#rm [-rf] 需要删除的文档

选项说明:

​ -r:表示递归(当删除的类型是文件夹的时候就加**-r**)

​ -f:force,表示强制,没有删除确认提示(删除文件夹的时候也建议带上-f选项,避免重复的询问)

案例1:删除root下的php.doc

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dsRNqgtz-1616225825404)(img/clip_image038.jpg)]

案例2:删除桌面上的php文件夹

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-V1CPiXjw-1616225825405)(img/clip_image040.jpg)]

面试题:

​ 请问使用root用户“#rm -rf /”这个命令能不能执行?

3、文档的查看指令

3.1、tail指令

作用:查看一个文件的末n行

语法:#tail -n 文件的路径

说明:-n可以不写,不写,默认表示10行。

案例:使用tail指令查看root/install.log文件的末5行和末10行

# tail -5 /root/install.log

# tail /root/install.log

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-A7m6CSPC-1616227592838)(img/clip_image042.jpg)]

3.2、head指令

作用:查看文件的头n行

语法:#head -n 文件的路径

注意:如果不指定-n则默认头10行

案例:使用head指令查看root/install.log文件的头5行和头10行

# head -5 /root/install.log

# head /root/install.log

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Pg3vq0wI-1616227592839)(img/clip_image044.jpg)]

3.3、cat指令(重点)

作用:查看某个文件的全部内容(将内容全部输出在命令行中)【正序】

语法:#cat 文件路径1 文件路径2 文件路径3 …

案例:使用cat指令输出install.log文件内容

#cat /root/install.log

3.4、tac指令

作用:查看某个文件的全部内容(倒序的)

语法:#tac 文件路径1 文件路径2 文件路径3…

案例:使用tac指令输出install.log文件内容

#tac /root/install.log

3.5、vim指令

作用:打开一个文件,显示内容

语法:#vim 文件路径

例如:打开/root/install.log

#vim /root/install.log

退出输入“:q”按下回车即可。

4、关机重启指令(了解)

4.1、reboot指令

作用:重启计算机

语法:#reboot

注意:**部分情况下(除非自开机以来只有当前一个普通用户登录过)**普通用户无法执行reboot指令

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-A5MWj3x0-1616227592841)(img/clip_image046.jpg)]

4.2、shutdown指令

作用:关机

语法:#shutdown -h 时间

时间常见的值:

​ now:(shutdown -h now),表示立即关机

​ +m:(m表示minutes数字),例如+5,则表示五分钟之后关机

4.3、halt指令

作用:关机(关闭内存)

语法:#halt

其他:

关机:init 0

​ poweroff

重启:init 6

六、扩展(1)

1、ctrl+a

在命令行中可以使用ctrl+a,来进行光标的快速定位:可以将命令行中的光标从其他的位置快速移动到行首。【ahead】

2、ctrl+e

在命令行中可以使用ctrl+e,来进行光标的快速定位:可以将命令行中的光标从任意位置快速定位到行末。【end】

3、↑和↓键

在命令行输入的位置可以按下↑来查看之前的执行命令历史,可以按下↓来翻到最新的命令执行历史。【即使远程终端断开连接,下次连接上依然可以使用】

4、将命令执行结果保存到文件中去(重点)

按照下面的语法:

#需要执行有输出结果的命令 > 需要保存到的文件路径 【覆盖写】

或者

#需要执行有输出结果的命令 >> 需要保存到的文件路径 【追加写】

输出重定向

指令作用选项
ls列出指定路径下的目录结构名称-l、-a
clear清屏(快捷键Ctrl+L)
su切换用户

cd 切换当前工作路径

pwd 打印当前工作路径

touch 创建文件

mkdir 创建文件夹 -p(parent)

cp 复制文档 -r

mv 移动/重命名

rm 删除文档 -r、-f

七、进阶指令

1、du指令

作用:du表示directory used,显示出目录所占的磁盘空间大小的情况。

语法:#du -sh 目录路径

选项说明:

​ -s:表示sumary,汇总统计

​ -h:表示以较高可读性的形式显示

案例:使用du -sh指令统计出“/etc”的大小情况

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Wn8M40CP-1616227592843)(img/clip_image002-1615627999017.jpg)]

2、df指令

作用:disk free,查看磁盘的剩余空间的情况。

语法:#df -h

选项说明:

​ -h:表示以较高可读性单位进行查看。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OPvcQFa3-1616227592845)(img/clip_image004-1615627999018.jpg)]

3、free指令

作用:查看内存的使用情况

语法:#free -m

选项含义:

​ -m:表示以mb为单位进行查看

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ru2qkhGP-1616227592846)(img/clip_image006-1615627999018.jpg)]

注意:

​ 第一行表示memory,是内存各项的数字。

​ 其中,如果查看可用的剩余内存(已分配后剩余),应该是3527的位置。

​ 如果看的是剩余的内存(未被使用),则应该是3725的位置。

4、find指令(特例)

作用:表示根据条件去查询文档的所在位置。

场景:当用户想找一个文档,但是只记得其部分特征,这个时候就可以使用find指令查询路径。

指令 查找范围路径 选项 选项的值 选项 选项的值 选项 选项的值

语法:#find 范围路径 选项 **选项的值 [**选项 选项的值 ….]

常见的选项:

-name**:根据名字进行查询**

-type**:根据文档的类型进行查询。[d表示文件夹,f表示普通文件****,s表示套接字文件,l表示连接文件,c表示字符设备文件,b表示块状设备文件]**

​ -user:根据所有者进行查询

​ -group:根据所属的用户组进行查询

​ -size:根据大小进行查询

案例:我们记不清一个文件httpd.conf所在位置,现在要求使用find指令进行查询

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qvugPDSt-1616227592848)(img/clip_image008-1615627999018.jpg)]

补充:-name选项支持通配符(“*”),模糊查询,表示任意长度的任意字符。

例如:假设我需要查询磁盘中全部的.conf文件,则可以写成:#find / -name “*.conf” -type f

5、ps指令(重点)

作用:表示process show,查看进程

语法:#ps -ef 【补充语法:#ps aux,BSD格式进行输出】

选项含义:

​ -e:等价于-A,all,表示全部

​ -f:表示full,显示全部的列

操作效果:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NPBDoR15-1616227592849)(img/clip_image010-1615627999018.jpg)]

UID:该进程的启动用户名;

PID:process id,进程的id号

PPID:parent process id,父级进程id号

C:表示的cpu的使用情况

STIME:start time,启动时间

TTY:终端的设备编号,“?”表示该进程不是由终端发起的

TIME:持续运行的时间

CMD:command,显示进程的名称或者位置

补充:结束进程的指令

#kill PID

补充:top指令(查资源占用情况用top

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BTW5atLH-1616227592850)(img/clip_image012-1615627999019.jpg)]

退出按q****即可。

6、service指令

作用:操作服务的(启动/停止/重启)

语法:#service 服务名 start/stop/restart

服务名必须要在/etc/init.d中可见。

案例:使用service指令启动apache(httpd)

#service httpd start

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f1Uv1UP8-1616227592851)(img/clip_image014-1615627999019.jpg)]

注意:对于服务名是存在要求的,要求服务名必须存在于“/etc/init.d**”目录下。**

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WneEOnku-1616227592853)(img/clip_image016-1615627999019.jpg)]

除了可以用service指令操作服务,还可以通过如下语法:

**#/etc/init.d/**服务名 start/stop/restart

所以刚才apache的启动指令还可以写成:#/etc/init.d/httpd start

扩展:在CentOS7中如何控制服务的?

在7中兼容service指令,但是在执行之后实际上是跳转到systemctl指令去执行的操作。

Systemctl语法:

# systemctl start/stop/restart 服务名

7、grep指令(重点)

作用:搜索、过滤,主要用于对文件/内容进行筛选,选出需要的内容

语法:#**grep [**选项] 关键词 **文件路径/**内容

常见的选项:

​ -v:排除,取反

案例:使用grep筛选出ps.txt(ps执行的结果)中的gnome-session

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4Plmi9vR-1616227592854)(img/clip_image018-1615627999019.jpg)]

案例:使用grep -v实现排除gnome-session所在行

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ByJyKXBV-1616227592855)(img/clip_image020-1615627999019.jpg)]

扩展用法:

#grep -E “关键词1|关键词2|…” 文件路径或内容

​ 选项:-E表示extension,该语法表示多条件筛选,“|”表示or

上述扩展用法等价于:

#egrep “关键词1|关键词2|….” 文件的内容或路径

8、wc指令

作用:word count,其作用是用于统计文件的各项数值(行、单词数、字节数)

语法:#wc -lwc 文档的路径

选项含义:

​ -l:line,行数

​ -w:word,单词数

​ -c:byte,字节数

案例:使用wc指令分别统计文件/etc/passwd的行、单词数、字节数

#wc -lwc /etc/passwd

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6WNayIJd-1616227592856)(img/clip_image022-1615627999019.jpg)]

注意:lwc****选项的顺序,不影响其指令输出的结果的顺序,结果顺序一定是行 单词 、字节。

9、管道(重点)

管道严格意义上说其不是指令,其只是一个符号“|”。该符号主要起到辅助的作用,能够将多个指令合在一行上进行操作。主要用在搜索过滤等上面。

语法:# 必须在终端中有输出内容的指令 | **有输入的指令[**要求有读取文件内容的需求]

管道的核心理解概念:管道前面的指令的输出其实就是管道后面指令的输入

案例:通过ps指令查看进程,只查看httpd的进程。

# ps -ef | grep “httpd”

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cqkhNLj7-1616227592857)(img/clip_image024-1615627999019.jpg)]

课堂作业:

“/etc/passwd”文件是存储用户信息的文件,该文件中一行即为一个用户,要求使用所学的指令统计出当前计算机中一共有多少个用户。

# cat /etc/passwd | wc -l

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zkMPKUT4-1616227592858)(img/clip_image026-1615627999019.jpg)]

八、vim编辑器

1、vi介绍

Vi编辑器是所有Unix及Linux系统下标准的编辑器,类似于windows系统下的notepad(记事本)编辑器,由于在Unix及Linux系统的任何版本,Vi编辑器是完全相同的,因此可以在其他任何介绍vi的地方都能进一步了解它,Vi也是Linux中最基本的文本编辑器,学会它后,我们将在Linux的世界里畅行无阻,尤其是在终端中

关于vim:

vi和vim都是Linux中的编辑器,不同的是,vim****比较高级,可以视为vi的升级版本。vi使用于文本编辑,但是vim更适用于coding(写代码的)。

Vim****重点是光标的移动,模式切换,删除,查找,替换,复制,粘贴,撤销命令的使用

在后期使用的Linux系统中,有些可能没有初始自带vim,而自带了vi**,那么vim****指令是不能直接使用的,需要先安装。**

Vim被称之为编辑器之神。

2、三种模式

Vim中存在三种模式(大众的认知):命令模式、编辑模式(输入模式)、末行模式(尾行模式)

命令模式:在该模式下是不能对文件直接编辑,可以输入快捷键(命令)进行一些操作(删除行,复制行,移动光标,粘贴等等)【打开文件之后默认进入的模式】;

编辑模式:在该模式下可以对文件的内容进行编辑;

末行模式:可以在末行输入命令来对文件进行操作(搜索、替换、保存、退出、撤销、高亮等等);

Vim的打开文件的方式:

#vim 文件路径 **作用:打开指定的文件(**可以是不存在的)

#vim +数字 文件的路径 作用:打开指定的文件,并且将光标移动到指定行

#vim +/关键词 文件的路径 作用:打开指定的文件,并且高亮显示关键词(搜索)

重点**:先复制出一个/etc/passwd文件,复制当前桌面下(千万不要在etc下直接修改!!!****)**

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-m942fV4i-1616227592859)(img/clip_image028-1615627999019.jpg)]

2.1、命令模式

注意:该模式是打开文件的第一个看到的模式(打开文件即可进入)

2.1.1、光标移动

①光标移动到行首

按键:shift + 6 或 ^(T字母上面的6,不要按小键盘的6)

②光标移动到行尾

按键:shift + 4 或 $(R字母的左上角的4,不是小键盘的4)

③光标移动到首行行首

按键:gg

④光标移动到末行行首

按键:G [Capslk 再加 G键] / [Shift + G键]

⑤翻屏

向上翻屏:按键ctrl + b (before) 或 PgUp

向下翻屏:按键ctrl + f (after) 或 PgDn

⑥快速定位到指定行

数字G

2.1.2、复制操作

①复制光标所在行

按键:yy

粘贴:在想要粘贴的地方按下p****键【将粘贴在光标所在行的下一行】,如果想粘贴在光标所在行之前,则使用P

②以光标所在行为准(包含当前行),向下复制指定的行数

按键:数字yy

2.1.3、剪切/删除

**①剪切/**删除光标所在行

按键:dd (删除之后下一行上移)

注意:dd****严格意义上说是剪切命令,但是如果剪切了不粘贴就是删除的效果。

**②剪切/****删除光标所在行为准(包含当前行),向下删除/**剪切指定的行

按键:数字dd (删除之后下一行上移)

③剪切/删除光标所在的当前行(光标所在位置)之后的内容,但是删除之后下一行不上移

按键:D (删除之后当前行会变成空白行)

2.1.4、撤销/恢复

撤销:输入“:u”(不属于命令模式) 或者 u (undo)

恢复:ctrl + r 恢复(取消)之前的撤销操作【重做,redo】

2.2、模式间的切换

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aBlAwV4p-1616227592860)(img/clip_image030-1615627999019.jpg)]

末行模式进入之后的特征:光标在最后一行上

编辑模式进入之后的特征:在最后一行有类似于“------插入(insert)-----****”的提

注意:末行模式和编辑模式之间是没有办法直接切换的,必须先走命令模式。

2.3、末行模式

进入方式:由命令模式进入,按下“:”或者“/(表示查找)”即可进入

退出方式:

​ a. 按下esc

​ b. 连按2次esc键

​ c. 删除末行全部输入字符

①保存操作(write**)**

输入:“:w**”** 保存文件

输入:“:w 路径” 另存为 (了解)

②退出(quit**)**

输入:“:q” 退出文件

默认情况下,退出的时候需要对已经进行修改的文件进行保存(:w),然后才能退出。

③保存并退出

输入:“:wq” 保存并且退出

④强制 (!****)

输入:“:q!” 表示强制退出,刚才做的修改操作不做保存

**⑤搜索/**查找

输入:“**/**关键词”,再按下回车 【按下/也是进入末行模式的方式之一】

例如:想在passwd文件中搜索“sbin”关键词

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tY2XLXnv-1616227592861)(img/clip_image032-1615627999019.jpg)]

在搜索结果中切换上/下一个结果:N/n (next

如果需要取消高亮,则需要在末行模式中输入:“:nohl”【no highlight】

⑥替换

😒/搜索的关键词/新的内容 替换光标所在行的第一处符合条件的内容

😒/搜索的关键词/新的内容/g 替换光标所在行的全部符合条件的内容

:%s/搜索的关键词/新的内容 替换整个文档中每行第一个符合条件的内容

:%s/搜索的关键词/新的内容/g 替换整个文档的符合条件的内容

%表示整个文件(所有行)

g表示全局(global)

案例:将测试文件中的bin关键词全部替换成xxxx

⑦显示行号(临时)

输入:“*:set nu*”[number]

如果想取消显示,则输入:“:set nonu”

补充:要想永久显示行号,需要进行对vim****的配置。

建议创建文件:“~/.vimrc”(该配置是针对用户的,每个用户自己家下有一个独立.vimrc)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z0WSqj5R-1616227592862)(img/clip_image034-1615627999020.jpg)]

⑧扩展:部分命令模式操作使用末行模式实现

了解:

末行模式下的复制(yy)、剪切(dd)、删除(dd)操作

复制语法:“:开始行号,结束行号y”,例如输入“:1,10y”

剪切删除语法:“:开始行号,结束行号d”,例如输入“:1,10d”

一步到位的复制语法——“:开始行号,结束行号 co 粘贴到的行号”

剪切粘贴一步到位语法——“:开始行号,结束行号 m 粘贴到的行号”

2.4、编辑模式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FztK5oYJ-1616227592863)(img/clip_image036-1615627999020.jpg)]

重点看前2个进入方式:i(insert)、a(after)。

退出方式:按下esc****键

3、vim其他(补充)

3.1、异常退出

什么是异常退出:在编辑文件之后并没有正常的去wq(保存退出),而是遇到突然关闭终端或者断电的情况,则会显示下面的效果,这个情况称之为异常退出:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-arwQCUD7-1616227592864)(img/clip_image038-1615627999020.jpg)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TzgZrQH4-1616227592865)(img/clip_image040-1615627999020.jpg)]

解决办法:删除“.文件名.swp”文件即可解决上述问题。

3.2、别名机制(意义)

别名机制表示允许操作者对现有的指令/脚本进行重新的命名,例如clear指令表示清屏,其在Windows下叫做cls,但是Linux不支持cls指令,我们可以通过别名机制让Linux系统支持cls指令。

目的:允许用户创建自己的指令。

案例:如上,要求用户能够使用cls实现清屏

提示一下:要想给指令起别名,需要编辑文件“~/.bashrc”

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wP9ZKRPT-1616227592866)(img/clip_image042-1615627999020.jpg)]

语法:alias 别名=’原始名称/路径’

保存退出之后不会立即生效,需要当前用户重新登录到系统才会生效。因此建议su一下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nIpZwpMi-1616227592867)(img/clip_image044-1615627999020.jpg)]

作业:

创建自定义指令“cc”,要求效果:输入cc之后按下回车,直接显示当前系统中的用户数量。

九、用户与用户组(重点)

Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。

用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。

每个用户账号都拥有一个唯一的用户名和各自的密码。

用户在登录时键入正确的用户名和密码后,就能够进入系统和自己的主目录。

要想实现用户账号的管理,要完成的工作主要有如下几个方面:

用户账号的添加、删除、修改以及用户密码的管理。

用户组的管理(添加、删除、修改)。

注意三个文件:

/etc/passwd 存储用户的关键信息

/etc/group 存储用户组的关键信息

/etc/shadow 存储用户的密码信息

1、用户管理

①添加用户

语法:#useradd 选项 用户名

常用选项:

​ -g:表示指定用户的用户主(主要)组,选项的值可以是用户组的id,也可以是组名

​ -G:表示指定用户的用户附加(额外)组,选项的值可以是用户组的id,也可以是组名

​ -u:uid,用户的id(用户的标识符),系统默认会从500之后按顺序分配uid,如果不想使用系统分配的,可以通过该选项自定义【类似于腾讯QQ的自选靓号情况】

-c:comment,添加注释(选择是否添加)

-s:指定用户登入后所使用的shell 解释器 【专门的接待员】

​ -d:指定用户登入时的启始目录(家目录位置)

​ -n:取消建立以用户名称为名的群组(了解)

案例:创建用户zhangsan,不带任何选项

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AR00lOb3-1616227592867)(img/clip_image046-1615627999020.jpg)]

验证:验证是否真的成功了。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ghzC6wer-1616227592868)(img/clip_image048.jpg)]

验证是否成功:

​ a. 验证/etc/passwd的最后一行,查看是否有zhangsan的信息;

​ #tail -1 /etc/passwd

​ b. 验证是否存在家目录(在Centos下创建好用户之后随之产生一个同名家目录);

​ c. id zhangsan 指令来进行验证

扩展:认识passwd文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nRey0Tzu-1616227592869)(img/clip_image050.jpg)]

用户名:密码:用户ID:用户组ID:注释:家目录:解释器shell

用户名:创建新用户名称,后期登录的时候需要输入;

密码:此密码位置一般情况都是“x”,表示密码的占位;

用户ID:用户的识别符;【-u】

用户组ID:该用户所属的主组ID;【-g】

注释:解释该用户是做什么用的;【-c】

家目录:用户登录进入系统之后默认的位置;【-d】

解释器shell:等待用户进入系统之后,用户输入指令之后,该解释器会收集用户输入的指令,传递给内核处理;【如果解释器是/bin/bash表示用户可以登录到系统,/sbin/nologin表示该用户不能登录到系统】【-s】

注意:在不添加选项的时候,执行useradd****之后会执行一系列的操作

a. 创建同名的家目录;

b. 创建同名的用户组;

案例:添加选项,创建用户lisi,让lisi属于501主组,附加组****500,自选靓号666,并且要求不能登录到系统,可以写注释为“user lisi”。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hfWQMO8O-1616227592870)(img/clip_image052.jpg)]

验证是否创建成功:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-W1OS50jD-1616227592871)(img/clip_image054.jpg)]

注意:查看用户的主组可以查看passwd文件,查看附加组可以查看group文件。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JfsQSYjP-1616227592872)(img/clip_image056.jpg)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QYybsFeJ-1616227592873)(img/clip_image058.jpg)]

linux123行的含义:在linux123的组里(组id是500)有一个组内用户lisi(lisi的附加组就是500,附加组的名字是linux123)。

如果需要为一个用户指定多个附加组,只需要将多个附件组的id通过英文逗号“,”分割即可。

【主组只能有1个(类似于亲生父母只有一对),附加组可以多个,也可以没有附加组(类似于认干爹干妈,可以有也可以没有,也可以有多个)】

【主组必须有】

【文档的属组指的是主组】

②修改用户

语法:#usermod 选项 用户名

Usermod:user modify,用户修改

常用选项:

​ -g:表示指定用户的用户主组,选项的值可以是用户组的id,也可以是组名

​ -G:表示指定用户的用户附加组,选项的值可以是用户组的id,也可以是组名

​ -u:uid,用户的id(用户的标识符),系统默认会从500之后按顺序分配uid,如果不想使用系统分配的,可以通过该选项自定义【类似于腾讯QQ的自选靓号情况】

-l**:修改用户名**

​ -c<备注>:修改用户帐号的备注文字

-d<登入目录>:修改用户登入时的目录

-s:修改用户登入后所使用的shell

案例:修改zhangsan用户主组为500,附加组改为501

#usermod -g 500 -G 501 zhangsan

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Bb7dq42U-1616227592874)(img/clip_image060.jpg)]

案例:修改zhangsan用户用户名,改为wangerma

# usermod -l wangerma zhangsan

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MV3Ox11l-1616227592874)(img/clip_image062.jpg)]

③设置密码

Linux不允许没有密码的用户登录到系统,因此前面创建的用户目前都处于锁定状态,需要设置密码之后才能登录计算机。

**语法:#passwd [**用户名] 【如果不指定用户名则修改自己的密码】

案例:设置wangerma用户的密码

#passwd wangerma

在设置密码的时候也是没有任何输入提示的,放心输入,确保两次输入的密码一致,按下回车即可。

也可以使用弱密码,但是不建议,否则会看到以下的提示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mQV5eS9L-1616227592875)(img/clip_image064.jpg)]

设置密码之后shadow文件中的体现:能够看出lisi用户没有密码的。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eYzsHU6R-1616227592876)(img/clip_image066.jpg)]

在设置用户密码之后可以登录帐号,例如此处需要登录wangerma

切换用户命令:#su [用户名] (switch user)

如果用户名不指定则表示切换到root用户。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IP9Cq337-1616227592877)(img/clip_image067.png)]

切换用户需要注意的事项:

​ a. 从root往普通用户切换不需要密码,但是反之则需要root密码;

​ b. 切换用户之后前后的工作路径是不变的;

​ c. 普通用户没有办法访问root用户家目录,但是反之则可以;

④删除用户

语法:#userdel 选项 用户名

Userdel:user delete(用户删除)

常用选项:

​ -r:表示删除用户的同时,删除其家目录;

案例:删除wangerma用户

#userdel -r wangerma

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cqVzMEMn-1616227592878)(img/clip_image069.jpg)]

注意:已经登录的wangerma用户删除的时候提示删除失败,但是没有登录的lisi用户可以正常删除

解决办法:简单粗暴,kill对应用户的全部进程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-X7xKT6vm-1616227592879)(img/clip_image071.jpg)]

提示:所有跟用户操作的命令(除passwd外,只能修改自己的密码,即不指定用户名)只有root超级管理员有权限执行。

备注:也可以在登录需要删除的用户之后,按下快捷键“ctrl+d**”进行对当前用户的注销****,随后退回到上一个用户(root****)此时就可以对需要删除的用户进行删除操作。**

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-L6iQd4yL-1616227592879)(img/clip_image073.jpg)]

2、用户组管理

每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建

用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AylGUwKO-1616227592880)(img/clip_image075.jpg)]

文件结构:

**用户组名:****密码:****用户组ID:****组内用户名[**看附加组的]

密码:X表示占位符,虽然用户组可以设置密码,但是绝大部分的情况下不设置密码;

组内用户名:表示附加组是该组的用户名称;

①用户组添加

语法:#groupadd 选项 用户组名

常用选项:

​ -g:类似用户添加里的“-u”,-g表示选择自己设置一个自定义的用户组ID数字,如果自己不指定,则默认从500之后递增;

案例:使用groupadd指令创建一个新的用户组,命名为admins

#groupadd admins

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0dVyLTai-1616227592881)(img/clip_image077.jpg)]

②用户组编辑

语法:#groupmod 选项 用户组名

常用选项:

​ -g:类似用户修改里的“-u”,-g表示选择自己设置一个自定义的用户组ID数字

​ -n:类似于用户修改“-l”,表示设置新的用户组的名称

案例:修改admins用户组,将组ID改成520,将名称改为admin123

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cW8I1x3r-1616227592882)(img/clip_image079.jpg)]

③用户组删除

语法:#groupdel 用户组名

案例:删除admin组

#groupdel admin

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xRHfquxW-1616227592883)(img/clip_image081.jpg)]

注意:当如果需要删除一个组,但是这个组是某个用户的主组时,则不允许删除(附加组是可以的);如果确实需要删除,则先从组内移出所有用户。

提示

针对用户和用户组的管理指令,除了passwd指令之外,其他指令一般情况下只有root用户可以执行。

十、权限管理

1、权限介绍(重点)

在Linux中分别有读、写、执行权限:

读权限:

​ 对于文件夹来说,读权限影响用户是否能够列出目录结构

​ 对于文件来说,读权限影响用户是否可以查看文件内容

写权限:

​ 对文件夹来说,写权限影响用户是否可以在文件夹下“创建/删除/复制到/移动到”文档

​ 对于文件来说,写权限影响用户是否可以编辑文件内容

执行权限:

​ 一般都是对于文件来说,特别脚本文件。

​ 对于文件来说,执行权限影响文件是否可以运行。

​ 对于文件夹来说,执行权限影响对应的用户是否可以在文件夹内执行指令。

2、身份介绍(重点)

Owner身份(文件所有者,默认为文档的创建者)

由于Linux是多用户、多任务的操作系统,因此可能常常有多人同时在某台主机上工作,但每个人均可在主机上设置文件的权限,让其成为个人的“私密文件”,即个人所有者。因为设置了适当的文件权限,除本人(文件所有者)之外的用户无法查看文件内容。

例如某个MM给你发了一封Email情书,你将情书转为文件之后存档在自己的主文件夹中。为了不让别人看到情书的内容,你就能利用所有者的身份去设置文件的适当权限,这样,即使你的情敌想偷看你的情书内容也是做不到的。

Group身份(与文件所有者同组的用户)

与文件所有者同组最有用的功能就体现在多个团队在同一台主机上开发资源的时候。例如主机上有A、B两个团体(用户组),A中有a1,a2,a3三个成员,B中有b1,b2两个成员,这两个团体要共同完成一份报告F。由于设置了适当的权限,A、B团体中的成员都能互相修改对方的数据,但是团体C的成员则不能修改F的内容,甚至连查看的权限都没有。同时,团体的成员也能设置自己的私密文件,让团队的其它成员也读取不了文件数据。Linux中,每个账户支持多个用户组。如用户a1**、b1即可属于A用户组,也能属于B****用户组【主组和附加组】**。

Others身份(其他人,相对于所有者与同组用户)

这个是个相对概念。打个比方,大明、二明、小明一家三兄弟住在一间房,房产证上的登记者是大明(owner所有者),那么,大明一家就是一个用户组,这个组有大明、二明、小明三个成员;另外有个人叫张三,和他们三没有关系,那么这个张三就是其他人(others)了。

同时,大明、二明、小明有各自的房间,三者虽然能自由进出各自的房间,但是小明不能让大明看到自己的情书、日记等,这就是文件所有者(用户)的意义。

Root用户(超级用户)

在Linux中,还有一个神一样存在的用户,这就是root用户,因为在所有用户中它拥有最大的权限 ,所以管理着普通用户。因此以后在设置文档的权限的时候不必考虑root用户。

3、Linux的权限查看

要设置权限,就需要知道文件的一些基本属性和权限的分配规则。在Linux中,ls命令常用来查看文档的属性,用于显示文件的文件名和相关属性。

#ls -l 路径 【ls -l 等价于 ll】

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lfM18mkS-1616227592884)(img/clip_image083.jpg)]

标红的部分就是Linux的文档权限属性信息。

Linux中存在用户(owner)、用户组(group**)和其他人(others****)概念**,各自有不同的权限,对于一个文档来说,其权限具体分配如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RWr9NQzh-1616227592884)(img/clip_image084.png)]

十位字符表示含义:

第1位:表示文档类型,取值常见的有“d表示文件夹”、“-表示文件”、“l表示软连接”、“s表示套接字”、“c表示字符设备”、“b表示块状设备”等等;

第2-4位:表示文档所有者的权限情况,第2位表示读权限的情况,取值有r、-;第3位表示写权限的情况,w表示可写,-表示不可写,第4位表示执行权限的情况,取值有x、-。

第5-7位:表示与所有者同在一个组的用户的权限情况,第5位表示读权限的情况,取值有r、-;第6位表示写权限的情况,w表示可写,-表示不可写,第7位表示执行权限的情况,取值有x、-。

第8-10位:表示除了上面的前2部分的用户之外的其他用户的权限情况,第8位表示读权限的情况,取值有r、-;第9位表示写权限的情况,w表示可写,-表示不可写,第10位表示执行权限的情况,取值有x、-。

注意:除了权限位上的rwx以及-之外,还有一些特殊的权限代码“s”、“t”,这些不在本次考虑范围内。

权限分配中,均是rwx的三个参数组合,且位置顺序不会变化。没有对应权限就用 – 代替。

4、权限设置(重点)

**语法:#chmod [**选项] 权限模式 文档

注意事项:

​ 常用选项:

​ -R:递归设置权限 (当文档类型为文件夹的时候)

​ 权限模式:就是该文档需要设置的权限信息

​ 文档:可以是文件,也可以是文件夹,可以是相对路径也可以是绝对路径。

注意点:如果想要给文档设置权限,操作者要么是root****用户,要么就是文档的所有者。

4.1、字母形式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4xatwAJv-1616227592885)(img/clip_image086.jpg)]

给谁设置:

​ u:表示所有者身份owner(user)

​ g:表示给所有者同组用户设置(group)

​ o:表示others,给其他用户设置权限

​ a:表示all,给所有人(包含ugo部分)设置权限

如果在设置权限的时候不指定给谁设置,则默认给所有用户设置

权限字符:

​ r:读

​ w:写

​ x:表示执行

​ -:表示没有权限

权限分配方式:

​ +:表示给具体的用户新增权限(相对当前)

​ -:表示删除用户的权限(相对当前)

​ =:表示将权限设置成具体的值(注重结果)【赋值】

设置多个身份的权限时候,每个身份之间需要通过英文逗号分开。

例如:需要给/root/anaconda-ks.cfg文件(-rw-------.)设置权限,要求所有者拥有全部的权限,同组用户拥有读和写权限,其他用户只读权限。

答案:

​ 所有者(u):rwx

​ 同组用户(g):rw

​ 其他用户(o):r

方式1:

#chmod u=rwx,g=rw,o=r /root/anaconda-ks.cfg

方式2:

#chmod u+x,g+rw,o+r /root/anaconda-ks.cfg

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JiuYijPk-1616227592886)(img/clip_image088.jpg)]

提示:当文档拥有执行权限(任意部分),则其颜色在终端中是绿色。

#chmod ug=rwx 形式,如果有两部分权限一样则可以合在一起写的

等价于:

​ #chmod u=rwx,g=rwx

例如:如果anaconda-ks.cfg文件什么权限都没有,可以使用root用户设置所有的人都有执行权限,则可以写成

什么权限都没有应该是:----------

目标的效果:—x–x--x

#chmod a=x anaconda-ks.cfg

#chmod a+x anaconda-ks.cfg

#chmod u+x,g+x,o+x anaconda-ks.cfg

#chmod ugo=x anaconda-ks.cfg

#chmod ugo+x anaconda-ks.cfg

#chmod +x anaconda-ks.cfg

案例:设置文件“~/yunwei/yunwei.txt**”权限,要求所有者全部权限,同组用户拥有读权限、写权限,其他人拥有读权限**

#chmod u=rwx,g=rw,o=r ~/yunwei/yunwei.txt

更改要求:所有者全部权限,同组用户拥有读权限、写权限,其他人拥有读权限、写权限

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-doaYncNE-1616227592887)(img/clip_image090.jpg)]

练习:

①设置文件夹/tmp/yunwei****的权限(如果文件夹不存在,自行创建),要求权限为递归权限,并且所有者有全部权限,同组用户有读执行权限,其他用户只读权限;

②设置文件/tmp/yunwei/class04.sh****权限,文件如果不存在则自行创建,要求权限为所有者全部权限,同组用户读和执行权限,其他用户没有权限;

③使用普通用户在/tmp/yunwei目录下创建test目录,设置目录权限为所有者拥有全部权限,同组用户只读,其他用户只读;

4.2、数字形式

经常会在一些技术性的网页上看到类似于**#chmod 777 a.txt** 这样的一个权限,这种形式称之为数字形式权限(777)。

读:r 4

写:w 2

执行:x 1

没有任何权限(-):0

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZSnbSJgQ-1616227592889)(img/clip_image092.jpg)]

例如:需要给anaconda-ks.cfg设置权限,权限要求所有者拥有全部权限,同组用户拥有读执行权限,其他用户只读。

分析:

所有者:全部权限 = 读 + 写 + 执行 = 4 + 2 + 1 = 7

同组用户:读执行权限 = 读 + 执行 = 4 + 1 = 5

其他用户:只读权限 = 读 = 4

最终得出的结果是754

#chmod 754 anaconda-ks.cfg

面试题:用超级管理员设置文档的权限命令是#chmod -R 731 aaa**,请问这个命令有没有什么不合理的地方?**

所有者 = 7 = 4 + 2 + 1 = 读 + 写 + 执行

同组用户 = 3 = 2 + 1 = 写 + 执行

其他用户 = 1 = 执行

问题在权限731中3表示写+执行权限,但是写又不必须需要能打开之后才可以写,因此必须需要具备读权限,因此权限不合理。以后建议各位在设置权限的时候不要设置这种“奇葩权限”。单独出现2、3的权限数字一般都是有问题的权限

注意:在写权限的时候千万不要设置类似于上面的这种“奇葩权限”。如果一个权限数字中但凡出现2与3的数字,则该权限有不合理的情况。

练习:

​ ①使用root用户设置文件夹/root/20180811的权限为:所有者全部权限,同组用户拥有读和执行权限,其他用户没有权限,请使用数字权限的形式设置,写出指令;750

​ ②请使用root用户写出设置文件/root/20180811.txt文件的权限,权限要求为:所有者拥有全部权限,同组用户要求可以读写,其他用户只读,要求使用数字形式;764

​ ③张三疯(root)收到某个MM的情书,请使用数字形式设置张三疯的Email情书权限(文件为/root/email.doc),权限要求只有所有者可以读写,除此之外任何人没有权限;600

4.3、注意事项

使用root用户创建一个文件夹(/oo),权限默认,权限如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gPBd6vHs-1616227592889)(img/clip_image093.png)]

需要在oo目录下创建文件(oo/xx.txt),需要给777权限:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1DmkZn0G-1616227592890)(img/clip_image095.jpg)]

扩展:

​ 在Linux系统中,创建文档的权限有一个默认值,以当前的系统为例,其创建文件夹之后的默认权限是755,创建文件之后的权限是644。

​ 之所以会这样是受到了系统中umask(掩码)的值的影响,其是用于指定文档创建好之后的权限,umask默认为022。

​ 计算方式:

​ 对于文件:文件的权限 = 666 – umask掩码

​ 对于文件夹:文件夹的权限 = 777 - umask掩码

切换到linux123用户(不是文档所有者,也不是同组用户,属于other部分):

问题1:linux123用户是否可以打开oo/xx.txt文件?

问题2:linux123用户是否可以编辑oo/xx.txt文件?

问题3:linux123用户是否可以删除oo/xx.txt文件?

在Linux****中,如果要删除一个文件,不是看文件有没有对应的权限,而是看文件所在的目录是否有写权限,如果有才可以删除

5、属主与属组

属主:所属的用户(文件的主人),文档所有者

属组:所属的用户组(同组用户的组名称)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uymr5eLt-1616227592891)(img/clip_image097.jpg)]

前面的那个root****就是属主

后面的那个root****就是属组

这两项信息在文档创建的时候会使用创建者的信息(用户名、用户所属的主组名称)。

之所以需要设置这个:如果有时候去删除某个用户,则该用户对应的文档的属主和属组信息就需要去修改(类似离职之前的工作交接)。

5.1、chown(重点)

作用:更改文档的所属用户(change owner**)**

语法:#chown [-R] 新的username 文档路径

案例:将先前设置的/oo目录的所有者设置成成linux123

#chown -R linux123 /oo

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EErWaInw-1616227592891)(img/clip_image099.jpg)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nC7SwoH4-1616227592892)(img/clip_image101.jpg)]

5.2、chgrp(了解)

作用:更改文档的所属用户组(change group**)**

语法:#chgrp [-R] groupname 文档的路径

案例:将刚才oo目录的所有用户组名改为linux123

#chgrp -R linux123 /oo

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OwUJAANl-1616227592893)(img/clip_image103.jpg)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FayUEJCL-1616227592894)(img/clip_image105.jpg)]

思考,如何通过一个命令实现既可以更改所属的用户,也可以修改所属的用户组呢?

答:可以实现的,通过chown命令

​ 语法:#chown [-R] username:groupname 文档路径

案例:将刚才oo的文档的所属组所属用户修改为root

#chown -R root:root /oo

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-x5o00zek-1616227592895)(img/clip_image107.jpg)]

问题:zhangsan用户使用自己的帐号创建文件index.html,并且当时默认的权限是644**,后续管理员root将该文件的属主改成了lisi,属组改成lisi****,则zhangsan****对文件的操作权限有变化吗?如果有权限是多少?**

十一、用户与用户组(重点)

Linux系统是一个多用户、多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员(root)申请一个账号,然后以这个账号的身份进入系统。

用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问(权限);另一方面也可以帮助用户组织文件(家目录),并为用户提供安全性保护(权限)。

每个用户账号都拥有一个唯一的用户名和各自的密码。

用户在登录时键入正确的用户名和密码后,就能够进入系统和自己的主目录。

要想实现用户账号的管理,要完成的工作主要有如下几个方面:

用户账号的添加、删除、修改以及用户密码的管理。

用户组的管理。

注意三个文件:

/etc/passwd 存储用户的关键信息

/etc/group 存储用户组的关键信息

/etc/shadow 存储用户的密码信息

1、用户管理

①添加用户

语法:****#useradd 选项 选项的值 …. 用户名

常用选项:

-g**:表示指定用户的用户主(主要)组,选项的值可以是用户组的id,也可以是组名**

-G**:表示指定用户的用户附加(额外)组,选项的值可以是用户组的id,也可以是组名**

​ -u:uid,用户的id(用户的标识符),系统默认会从500之后按顺序分配****uid,如果不想使用系统分配的,可以通过该选项自定义【类似于腾讯QQ的自选靓号情况】

​ -c:comment,添加注释(选择是否添加)

​ -s:指定用户登入后所使用的shell 解释器 【专门的接待员】

​ -d:指定用户登入时的启始目录(家目录位置)

​ -n:取消建立以用户名称为名的群组(了解)

案例:创建用户zhangsan,不带任何选项

#useradd zhangsan

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tLCMCWOk-1616227592895)(img/clip_image002-1615628105174.jpg)]

验证是否成功:

​ a. 验证/etc/passwd的最后一行,查看是否有zhangsan的信息;

​ #tail -1 /etc/passwd

​ b. 验证是否存在家目录(在Centos下创建好用户之后随之产生一个同名家目录);

​ c. id zhangsan 指令来进行验证

扩展:认识passwd文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4GQw0rvp-1616227592896)(img/clip_image004-1615628105174.jpg)]

用户名:密码:用户ID:用户组ID:注释:家目录:解释器shell

用户名:创建新用户名称,后期登录的时候需要输入;

密码:此密码位置一般情况都是“x”,表示密码的占位;

用户ID:用户的识别符;【-u】

用户组ID:该用户所属的主组ID;【-g】

注释:解释该用户是做什么用的;【-c】

家目录:用户登录进入系统之后默认的位置;【-d】

解释器shell:等待用户进入系统之后,用户输入指令之后,该解释器会收集用户输入的指令,传递给内核处理;【如果解释器是/bin/bash表示用户可以登录到系统,/sbin/nologin表示该用户不能登录到系统】【-s】

注意:在不添加选项的时候,执行useradd之后会执行一系列的操作

a. 创建同名的家目录;

b. 创建同名的用户组;

案例:添加选项,创建用户lisi,让lisi属于501主组,附加组****500,自选靓号666,并且要求不能登录到系统,可以写注释为“user lisi”。

# useradd -g 501 -G 500 -u 666 -s /sbin/nologin -c “user lisi” lisi

验证是否创建成功:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ActAcojO-1616227592897)(img/clip_image006-1615628105175.jpg)]

注意:查看用户的主组可以查看passwd文件,查看附加组可以查看group文件。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ma5uQLMH-1616227592898)(img/clip_image008-1615628105175.jpg)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MidJVQas-1616227592898)(img/clip_image010-1615628105175.jpg)]

linux123行的含义:在linux123的组里(组id是500)有一个组内用户lisi(lisi的附加组就是500,附加组的名字是linux123)。

如果需要为一个用户指定多个附加组,只需要将多个附件组的id通过英文逗号“,”分割即可。

【主组只能有1个(类似于亲生父母只有一对),附加组可以多个,也可以没有附加组(类似于认干爹干妈,可以有也可以没有,也可以有多个)】

【主组必须有】

【文档的属组指的是主组】

②修改用户

语法:****#usermod 选项 选项的值 …. 用户名

Usermod:user modify,用户修改

常用选项:

​ -g:表示指定用户的用户主组,选项的值可以是用户组的id,也可以是组名

​ -G:表示指定用户的用户附加组,选项的值可以是用户组的id,也可以是组名

​ -u:uid,用户的id(用户的标识符),系统默认会从500之后按顺序分配****uid,如果不想使用系统分配的,可以通过该选项自定义【类似于腾讯QQ的自选靓号情况】

-l**:修改用户名**

​ -c<备注>:修改用户帐号的备注文字

-d<登入目录>:修改用户登入时的目录

-s:修改用户登入后所使用的shell

案例:修改zhangsan用户主组为500,附加组改为501

#usermod -g 500 -G 501 zhangsan

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TlYPVAQO-1616227592899)(img/clip_image012-1615628105175.jpg)]

案例:修改zhangsan用户用户名,改为wangerma

# usermod -l wangerma zhangsan

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4SFqZSgy-1616227592901)(img/clip_image014-1615628105175.jpg)]

③设置密码(特殊)

特殊点1:该指令普通用户也可以执行

特殊点2:只有root用户才可以指定用户名

Linux不允许没有密码的用户登录到系统,因此前面创建的用户目前都处于锁定状态,需要设置密码之后才能登录计算机。

语法:****#passwd [用户名] 【如果不指定用户名则修改自己的密码,只有root可以指定用户名**】**

案例:设置wangerma用户的密码

#passwd wangerma

在设置密码的时候也是没有任何输入提示的,放心输入,确保两次输入的密码一致,按下回车即可。

也可以使用弱密码,但是不建议,否则会看到以下的提示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OXrWfqcW-1616227592901)(img/clip_image016-1615628105175.jpg)]

设置密码之后shadow文件中的体现:能够看出lisi用户没有密码的。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kjHreZ5a-1616227592902)(img/clip_image018-1615628105175.jpg)]

在设置用户密码之后可以登录帐号,例如此处需要登录wangerma

切换用户命令:#su [用户名] (switch user)

如果用户名不指定则表示切换到root用户。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-22Akavqk-1616227592903)(img/clip_image019-1615628105175.png)]

切换用户需要注意的事项:

a. 从root往普通用户切换不需要密码,但是反之则需要root密码;

b. 切换用户之后前后的工作路径是不变的;

c. 普通用户没有办法访问root用户家目录,但是反之则可以;

④删除用户

语法:#userdel 选项 用户名

Userdel:user delete(用户删除)

常用选项:

​ -r:表示删除用户的同时,删除其家目录;

案例:删除wangerma用户

#userdel -r wangerma

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5ncAMx3v-1616227592904)(img/clip_image021.jpg)]

注意:已经登录的wangerma用户删除的时候提示删除失败,但是没有登录的lisi用户可以正常删除

解决办法:简单粗暴,kill对应用户的全部进程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DYzIs9Qd-1616227592905)(img/clip_image023-1615628105176.jpg)]

提示:所有跟用户操作的命令(除passwd外,只能修改自己的密码,即不指定用户名)只有root超级管理员有权限执行。

备注:也可以在登录需要删除的用户之后,按下快捷键“ctrl+d”进行对当前用户的注销**,随后退回到上一个用户(root)此时就可以对需要删除的用户进行删除操作。**

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bOo26tOz-1616227592906)(img/clip_image025-1615628105176.jpg)]

2、用户组管理

每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建(创建用户时不指定用户组的时候情形)

用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pnU3aIWS-1616227592907)(img/clip_image027.jpg)]

文件结构:

用户组名**:密码:用户组ID:组内用户名[看附加组的]**

密码:X表示占位符,虽然用户组可以设置密码,但是绝大部分的情况下不设置密码;

组内用户名:表示附加组是该组的用户名称;

①用户组添加

语法:****#groupadd 选项 选项的值 …. 用户组名

常用选项:

​ -g:类似用户添加里的“-u”,-g表示选择自己设置一个自定义的用户组ID数字,如果自己不指定,则默认从500之后递增;

案例:使用groupadd指令创建一个新的用户组,命名为admins

#groupadd admins

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bkgR3Pu8-1616227592907)(img/clip_image029.jpg)]

②用户组编辑

语法:****#groupmod 选项 选项的值 用户组名

常用选项:

​ -g:类似用户修改里的“-u”,-g表示选择自己设置一个自定义的用户组ID数字

​ -n:类似于用户修改“-l”,表示设置新的用户组的名称

案例:修改admins用户组,将组ID改成520,将名称改为admin123

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FeMybqT7-1616227592908)(img/clip_image031.jpg)]

③用户组删除

语法:****#groupdel 用户组名

案例:删除admin123组

#groupdel admin123

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kpwdml5A-1616227592909)(img/clip_image033.jpg)]

再次尝试删除一个用户组,删除linux123

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OiWZ3Aoi-1616227592909)(img/clip_image035.jpg)]

注意:当如果需要删除一个组,但是这个组是某个用户的主组时,则不允许删除(附加组是可以的);如果确实需要删除,则先从组内移出所有用户。

提示

针对用户和用户组的管理指令,除了passwd指令之外,其他指令一般情况下只有root用户可以执行。

十二、权限管理

1、权限介绍(重点)

在Linux中分别有读、写、执行权限:

读权限:

对于文件夹来说,读权限影响用户是否能够列出目录结构

对于文件来说,读权限影响用户是否可以查看文件内容

写权限:

对文件夹来说,写权限影响用户是否可以在文件夹下“创建/删除/复制到/移动到”文档

对于文件来说,写权限影响用户是否可以编辑文件内容,

执行权限:

一般都是对于文件来说,特别脚本文件。

对于文件来说,执行权限影响文件是否可以运行。

对于文件夹来说,执行权限影响对应的用户是否可以在文件夹内执行指令。

2、身份介绍(重点)

Owner身份(文档所有者,默认为文档的创建者)

由于Linux是多用户、多任务的操作系统,因此可能常常有多人同时在某台主机上工作,但每个人均可在主机上设置文件的权限,让其成为个人的“私密文件”,即个人所有者。因为设置了适当的文件权限,。【所有者可以更改文档的权限

例如某个MM给你发了一封Email情书,你将情书转为文件之后存档在自己的主文件夹中。为了不让别人看到情书的内容,你就能利用所有者的身份去设置文件的适当权限,这样,即使你的情敌想偷看你的情书内容也是做不到的。

Group身份(与文档所有者同组的用户)

与文件所有者同组最有用的功能就体现在多个团队在同一台主机上开发资源的时候。例如主机上有A、B两个团体(用户组),A中有a1,a2,a3三个成员,B中有b1,b2两个成员,这两个团体要共同完成一份报告F。由于设置了适当的权限,A、B团体中的成员都能互相修改对方的数据,但是团体C的成员则不能修改F的内容,甚至连查看的权限都没有。同时,团体的成员也能设置自己的私密文件,让团队的其它成员也读取不了文件数据。Linux中,每个账户支持多个用户组。如用户a1b1即可属于A用户组,也能属于B用户组【主组和附加组】

Others身份(其他人,相对于所有者与同组用户)

这个是个相对概念。打个比方,大明、二明、小明一家三兄弟住在一间房,房产证上的登记者是大明(owner所有者),那么,大明一家就是一个用户组,这个组有大明、二明、小明三个成员;另外有个人叫张三,和他们三没有关系,那么这个张三就是其他人(others)了。

同时,大明、二明、小明有各自的房间,三者虽然能自由进出各自的房间,但是小明不能让大明看到自己的情书、日记等,这就是文件所有者(用户)的意义。

Root用户(超级用户)

在Linux中,还有一个神一样存在的用户,这就是root用户,因为在所有用户中它拥有最大的权限 ,所以管理着普通用户。因此以后在设置文档的权限的时候不必考虑root用户

3、Linux的权限查看

要设置权限,就需要知道文件的一些基本属性和权限的分配规则。在Linux中,ls命令常用来查看文档的属性,用于显示文件的文件名和相关属性。

#ls -l 路径 【ls -l 等价于 ll】

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uTG6A81f-1616227592910)(img/clip_image037.jpg)]

标红的部分就是Linux的文档权限属性信息。

Linux****中存在用户(owner)、用户组(group)和其他人(others)概念,各自有不同的权限,对于一个文档来说,其权限具体分配如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VSF6IG3S-1616227592910)(img/clip_image038.png)]

十位字符表示含义:

第1位:表示文档类型,取值常见的有“d表示文件夹”、“-表示文件”、“l表示软连接”、“s表示套接字”、“c表示字符设备”、“b表示块状设备”等等;

第2-4位:表示文档所有者的权限情况,第2位表示读权限的情况,取值有r、-;第3位表示写权限的情况,w表示可写,-表示不可写,第4位表示执行权限的情况,取值有x、-。

第5-7位:表示与所有者同在一个组的用户的权限情况,第5位表示读权限的情况,取值有r、-;第6位表示写权限的情况,w表示可写,-表示不可写,第7位表示执行权限的情况,取值有x、-。

第8-10位:表示除了上面的前2部分的用户之外的其他用户的权限情况,第8位表示读权限的情况,取值有r、-;第9位表示写权限的情况,w表示可写,-表示不可写,第10位表示执行权限的情况,取值有x、-。

注意:除了权限位上的rwx以及**-**之外,还有一些特殊的权限代码“s”、“t”,这些不在本次考虑范围内。(黏贴位,特殊权限位)

权限分配中,均是rwx的三个参数组合,且位置顺序不会变化。没有对应权限就用 – 代替。

4、权限设置(重点)

语法:****#chmod [选项] 权限模式 文档路径

注意事项:

​ 常用选项:

​ -R:递归设置权限 (当文档类型为文件夹的时候

​ 权限模式:就是该文档需要设置的权限信息

​ 文档:可以是文件,也可以是文件夹,可以是相对路径也可以是绝对路径。

注意点:如果想要给文档设置权限,操作者要么是root用户,要么就是文档的所有者**。**

4.1、字母形式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b9TFI2kj-1616227592911)(img/clip_image040-1615628105177.jpg)]

给谁设置:

​ u:表示所有者身份owner(user)

​ g:表示给所有者同组用户设置(group)

​ o:表示others,给其他用户设置权限

​ a:表示all,给所有人(包含ugo部分)设置权限

如果在设置权限的时候不指定给谁设置,则默认给所有用户设置

什么权限-权限字符:

​ r:读

​ w:写

​ x:表示执行

​ -:表示没有权限

如何设置-权限分配方式:

​ +:表示给具体的用户新增权限(相对当前)

​ -:表示删除用户的权限(相对当前)

​ =:表示将权限设置成具体的值(注重结果)【赋值】

设置多个身份的权限时候,每个身份之间需要通过英文逗号分开。

例如:需要给**/root/anaconda-ks.cfg文件(-rw-------.)设置权限,要求所有者拥有全部的权限,同组用户拥有读和写权限,其他用户只读权限。**

答案:

​ #chmod u+x,g+rw,o+r /root/anaconda-ks.cfg

​ 或者:

​ #chmod u=rwx,g=rw,o=r /root/anaconda-ks.cfg

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HnMJPwyU-1616227592912)(img/clip_image042-1615628105177.jpg)]

提示:当文档拥有执行权限(任意部分),则其颜色在终端中是绿色。

#chmod ug=rwx 形式,如果有两部分权限一样则可以合在一起写的

等价于:

#chmod u=rwx,g=rwx

例如:如果anaconda-ks.cfg文件什么权限都没有,可以使用root用户设置所有的人都有执行权限,则可以写成

什么权限都没有应该是:****----------

目标的效果:****—x–x--x

#chmod a=x anaconda-ks.cfg

#chmod a+x anaconda-ks.cfg

#chmod u+x,g+x,o+x anaconda-ks.cfg

#chmod ugo=x anaconda-ks.cfg

#chmod ugo+x anaconda-ks.cfg

#chmod +x anaconda-ks.cfg [当不指定给谁赋予权限的是默认为“a]

案例:设置文件“~/php.txt”权限,要求所有者全部权限,同组用户拥有读权限、写权限,其他人拥有读权限

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z8q7IdyN-1616227592913)(img/clip_image044-1615628105177.jpg)]

更改要求:所有者全部权限,同组用户拥有读权限、写权限,其他人拥有读权限、写权限

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-q43OyWRo-1616227592914)(img/clip_image046-1615628105177.jpg)]

练习:

①设置文件夹**/tmp/php****的权限(如果文件夹不存在,自行创建),要求权限为递归权限,并且所有者有全部权限,同组用户有读执行权限,其他用户只读权限;**

②设置文件**/tmp/php/class.sh****权限,文件如果不存在则自行创建,要求权限为所有者全部权限,同组用户读和执行权限,其他用户没有权限;**

③使用普通用户在**/tmp/php目录下创建test****目录,设置目录权限为所有者拥有全部权限,同组用户只读,其他用户只读;**

4.2、数字形式

经常会在一些技术性的网页上看到类似于**#chmod 777 a.txt** 这样的一个权限,这种形式称之为数字形式权限(777)。

**读:**r 4

**写:**w 2

**执行:**x 1

没有任何权限(-):0

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-A0fufeft-1616227592914)(img/clip_image048-1615628105177.jpg)]

组合权限数字的时候遵循,最短路径要求,并且最多只能出现一次。

例如:需要给anaconda-ks.cfg设置权限,权限要求所有者拥有全部权限,同组用户拥有读执行权限,其他用户只读。

分析:

所有者(第1位):全部权限 = 4 + 2 + 1 = 7

同组用户(第2位):读执行 = 4 + 1 =5

其他用户(第3位):读 = 4

**组合:**754

最终得出的结果是754

#chmod 754 anaconda-ks.cfg

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Qb1ddzXa-1616227592915)(img/clip_image050-1615628105177.jpg)]

面试题:用超级管理员设置文档的权限命令是**#chmod 731 aaa.php****,请问这个命令有没有什么不合理的地方?**

所有者 = 7 = 4 + 2 + 1 = 读 + 写 + 执行

同组用户 = 3 = 2 + 1 = 写 + 执行

其他用户 = 1 = 执行

问题在权限731中3表示写+执行权限,但是写又不必须需要能打开之后才可以写,因此必须需要具备读权限,因此权限不合理。以后建议各位在设置权限的时候不要设置这种“奇葩权限”。单独出现2、3的权限数字一般都是有问题的权限

注意:在写权限的时候千万不要设置类似于上面的这种“奇葩权限”。如果一个权限数字中但凡出现2与3的数字,则该权限有不合理的情况。

练习:

​ ①使用root用户设置文件夹/root/20180811的权限为:所有者全部权限,同组用户拥有读和执行权限,其他用户没有权限,请使用数字权限的形式设置,写出指令;750

​ ②请使用root用户写出设置文件/root/20180811.txt文件的权限,权限要求为:所有者拥有全部权限,同组用户要求可以读写,其他用户只读,要求使用数字形式;764

​ ③张三疯(root)收到某个MM的情书,请使用数字形式设置张三疯的Email情书权限(文件为/root/email.doc),权限要求只有所有者可以读写,除此之外任何人没有权限;600

4.3、注意事项

使用root用户创建一个文件夹(/oo),权限默认,权限如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VIyMRcUF-1616227592916)(img/clip_image052-1615628105177.jpg)]

需要在oo目录下创建文件(oo/qq.txt),需要给777权限:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xRdBHpHw-1616227592916)(img/clip_image054-1615628105177.jpg)]

扩展:

在Linux系统中,创建文档的权限有一个默认值,以当前的系统为例,其创建文件夹之后的默认权限是755,创建文件之后的权限是644。

之所以会这样是受到了系统中umask(掩码)的值的影响,其是用于指定文档创建好之后的权限,umask默认为022。

计算方式:

​ 对于文件:文件的权限 = 666 – umask掩码

​ 对于文件夹:文件夹的权限 = 777 - umask掩码

切换到linux123用户(不是文档所有者,也不是同组用户,属于other部分):

问题1:linux123用户是否可以打开oo/qq.txt文件?

问题2:linux123用户是否可以编辑oo/qq.txt文件?

问题3:linux123用户是否可以删除oo/qq.txt文件?

Linux中,如果要删除一个文件,不是看文件有没有对应的权限,而是看文件所在的目录是否有写权限、执行权限,如果有才可以删除

5、属主与属组

属主:所属的用户(文件的主人),文档所有者

属组:所属的用户组(同组用户的组名称)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-imbysi5O-1616227592917)(img/clip_image056-1615628105177.jpg)]

前面的那个root就是属主

后面的那个root就是属组

这两项信息在文档创建的时候会使用创建者的信息(用户名、用户所属的主组名称)。

之所以需要设置这个:如果有时候去删除某个用户,则该用户对应的文档的属主和属组信息就需要去修改(类似离职之前的工作交接)。

5.1、chown(重点)

作用:更改文档的所属用户(change owner

语法:****#chown [-R] 新的****username 文档路径

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-55lgAOLg-1616227592918)(img/clip_image058-1615628105177.jpg)]

注意:修改所有者的人必须是root或者所有者自己(也可能出现没有权限的情况),其他人无权修改所有者。

案例:将先前设置的/oo目录的所有者设置成成linux123

#chown -R linux123 /oo

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Fw3Oj4JA-1616227592919)(img/clip_image060-1615628105178.jpg)]

5.2、chgrp(了解,凑数)

作用:更改文档的所属用户组(change group

语法:#chgrp [-R] groupname 文档的路径

案例:将刚才oo目录的所有用户组名改为linux123

#chgrp -R linux123 /oo

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9dTwsrwf-1616227592919)(img/clip_image062-1615628105178.jpg)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MAK25Gvd-1616227592920)(img/clip_image064-1615628105178.jpg)]

思考,如何通过一个命令实现既可以更改所属的用户,也可以修改所属的用户组呢?

答:可以实现的,通过chown命令

语法:#chown [-R] username:groupname 文档路径

案例:将刚才oo的文档的所属组所属用户修改为root

#chown -R root:root /oo

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2YchABA3-1616227592921)(img/clip_image066-1615628105178.jpg)]

补充:chown也可以只修改用户组的所属情况

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vfWwyhGw-1616227592921)(img/clip_image068.jpg)]

问题:zhangsan用户使用自己的帐号创建文件index.html,并且当时默认的权限是644,后续管理员root将该文件的属主改成了lisi,属组改成lisi,则zhangsan对文件的操作权限有变化吗?如果有权限是多少?

6、sudo(重点)

问题:reboot、shutdown、init、halt,在普通用户身份上都是操作不了,但是有些特殊的情况下又需要有执行权限。又不可能让root用户把自己的密码告诉普通用户,这个问题该怎么解决?

该问题是可以被解决的,可以使用sudoswitch user do)命令来进行权限设置。Sudo可以让管理员(root)事先定义某些特殊命令谁可以执行(事先放权规则)

默认sudo中是没有除root之外用户的规则,要想使用则先配置sudo。

Sudo配置文件:/etc/sudoers

该文件默认只读,不允许修改,因此不能直接修改。

a. 配置sudo文件请使用“#visudo”,打开之后其使用方法和vim一致

b. 配置普通用户的权限

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ADMbo6U6-1616227592922)(img/clip_image070.jpg)]

Root表示用户名,如果是用户组,则可以写成“%组名”

ALL:表示允许登录的主机(地址白名单)

(ALL):表示以谁的身份执行,ALL表示root身份

ALL:表示当前用户可以执行的命令,多个命令可以使用“,”分割

一般需要调整的就是用户/用户组名称与可以执行的指令名。

案例:使用linux123这个用户,赋予其添加用户权限。

注意:在写sudo规则的时候不建议写直接形式的命令,而是写命令的完整路径。

路径可以使用which(whereis亦可)命令来查看

语法:#which 指令名称

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O3i60Vgv-1616227592923)(img/clip_image072.jpg)]

whereis会找出一些非可执行文件,建议使用which

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cRItoN3I-1616227592924)(img/clip_image074.jpg)]

在添加好对应的规则之后就可以切换用户,切换到普通用户linux123,再去执行:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pgfnV7uM-1616227592924)(img/clip_image076.jpg)]

此时要想使用刚才的规则,则以以下命令进行:

#sudo 需要执行的指令(就是放权的指令名称)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Qa9jZVrE-1616227592925)(img/clip_image078.jpg)]

此时输入的密码是当前执行sudo指令的用户的密码,而非root密码。

在输入sudo指令之后需要输入当前的用户密码进行确认的操作(不是root用户密码),输入之后在接下来5分钟内再次执行sudo指令不需要密码

补充:在普通用户下怎么查看自己具有哪些特殊权限呢?

#sudo -l 表示****list

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aendb18r-1616227592926)(img/clip_image080.jpg)]

最后:sudo不是任何Linux分支都有的命令,常见centos与ubuntu都存在sudo命令。

作业:使用sudo实现让普通用户具备添加、删除用户的权限。

十三、运行级别

运行模式也可以称之为运行级别(Running Level

在linux中存在一个进程:init (initialize,初始化),进程id是1。

查看进程:#ps -ef|grep init

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oBiZoni5-1616227592926)(img/clip_image081.png)]

该进程存在一个对应的配置文件:inittab(系统运行级别配置文件,位置/etc/inittab)

文件的主要内容:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BVOwi6Y9-1616227592927)(img/clip_image083-1615628105179.jpg)]

根据上述的描述,可以得知,Centos6.5中存在7种运行级别/模式。

0 — 表示关机级别(不要将默认的运行级别设置成这个值)

1 — 单用户模式(找回root密码的)

2 — 多用户模式,不带NFS(Network File Syetem)

3 — 多用户模式,完全的多用户模式(不带桌面的,纯命令行模式)

4 — 没有被使用的模式(被保留模式)

5 — X11,完整的图形化界面模式

6 — 表示重启级别(不要将默认的运行级别设置成这个值)

与该级别相关的几个命令(临时切换,立即生效):

#init 0 表示关机

#init 3 表示切换到不带桌面的模式(CLI 命令行模式)

#init 5 切换到图形界面(前提必须先确保已经安装了图形化界面)

#init 6 重启电脑

注意:init指令需要超级管理员的权限,普通用户无法执行。

这些命令其实都是调用的init进程,将数字(运行级别)传递给进程,进程去读配置文件执行对应的操作。

①切换到纯命令行模式下(临时切换,重启之后又恢复

#init 3

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uHWfg9gA-1616227592928)(img/clip_image085.jpg)]

切换之后需要输入用户名和密码,在输入密码的时候没有“*****”提示输入,只要自己确认输入的密码没有错误,按下回车即可

②回到桌面模式

#init 5

③设置模式永久为命令行模式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gZRuB1pv-1616227592929)(img/clip_image086.png)]

将/etc/inittab文件中的initdefault值设置成3,然后重启操作系统。

切换重启之后默认即命令行模式:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-15rWJi3q-1616227592929)(img/clip_image088-1615628105179.jpg)]

十四、网络设置

1、ip地址查看

需要的场景:远程连接、配置相关软件时(vpn)

指令:#ifconfig

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MV3AD8PP-1616227592930)(img/clip_image090-1615628105179.jpg)]

得知的信息有:

​ ①有2块网卡,一个叫eth0,另一个lo(本地回环网卡,本机ip)

​ ②ip地址是 inet addr那一项

2、网卡配置文件

位置:/etc/sysconfig/network-scripts/ifcfg-*文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mgNHGHJo-1616227592930)(img/clip_image092-1615628105179.jpg)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kOq6IXqy-1616227592931)(img/clip_image094.jpg)]

ONBOOT:表示是否自动连接

BOOTPROTO(COL):网卡启动之后使用的协议,一般情况下是DHCP

HWADDR:硬件地址(mac地址,物理地址),计算机之间的通信都是依赖于mac地址

扩展:针对像网卡配置目录层次比较深的文件,如果需要频繁更改,可以将需要的文件设置一个快捷方式,将其放在经常操作的目录,以简化后续的打开文件操作。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-v5kEKwhb-1616227592932)(img/clip_image096.jpg)]

语法:****#ln -s 原始路径 快捷方式路径

案例:将ifcfg-eth0文件在root家目录下创建快捷方式。

#ln -s /etc/sysconfig/network-scripts/ifcfg-eth0 /root/wangka.conf

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JJl1bHAO-1616227592933)(img/clip_image098.jpg)]

3、网络服务操作(了解)

可以通过service指令来对网络的服务进行重启/停止/启动等操作。

语法:#service network start/stop/restart (操作所有的网卡设备)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-G3UMuhp6-1616227592933)(img/clip_image100.jpg)]

上述的指令还等价于:#/etc/init.d/network start/stop/restart

补充对于单个网卡的操作:

#ifdown 网卡名 停止某个网卡

#ifup 网卡名 启动某个网卡

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ULMnrTXo-1616227592934)(img/clip_image102.jpg)]

注意:上述这些操作不要随意在服务器上运行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值