Linux-轻巧且稳定

1.有很多的小程序,每个小程序完成单一的功能,实现复杂的任务

2.尽量避免捕获用户接口,用户与内核不直接接触,通过shell传递和反馈信息

3.配置文件为纯文本格式(可以用文本编辑器编辑vim)

网络连接的三种模式

桥接模式

image-20221025175038122

优点:方便

虚拟系统可以和外部系统通讯

缺点:容易造成ip冲突

NAT模式 网络地址转换模式

在本体的主机上产生另外一个ip,之间形成一个独立的可通讯的联系,不造成ip冲突

image-20221025175615867

虚拟机可通过代理到外部,而外部到不了虚拟机

主机模式

仅与本地物理通讯,不可上网。

虚拟机克隆

image-20221025185400089

Linux目录结构

FHS标准:希望用户可以了解已经安装的程序在哪个目录下

基本介绍

  1. linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录“/”,然后在此目录下再创建其他的目录。
  2. 记住一句经典的话:在Linux的世界里,一切皆文件 😀

Linux的结构与Windows不同是系统规划好的

root root用户所用到的一些文件

boot Linux在启动时用的文件,破坏会使Linux无法启动

dev 设备管理器

Linux特性:他会把硬件映射成一个文件来管理 例如CPU等

详解:

/bin

Binary的缩写,这个目录存放着最经常使用的命令

/usr/bin 普通用户使用的命令,和/bin 区别是否与开机有关

/usr/local/bin

/sbin

/usr/sbin 网络服务器命令

/usr/local/sbin

/usr/lib和/usr/lib64:包含各种应用程序函数库

/usr/share:存放共享文件目录(在线帮助文件,杂项,时区)

/usr/include :存放程序开发头文件

/usr/src:释放源代码目录

s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。

/hoom

存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名

每添加一个用户,便会多一个文件夹,删掉用户文件夹随之消失

/root

该目录为系统管理员,也称作超级权限者的用户主目录

/lib 系统开机所需要的最基本的 动态连接共享库,其作用类似于Windows里的DLL文件,几乎所有的应用程序都需要用到这些共享库

/lib/modules:存放内核相关的模块(驱动程序等)

/lost+found

这个目录下一般情况是空的,当系统非法关机后,这里就存放了一些文件。

/etc

所有的系统管所需要的配置文件和子目录

例如安装了mysql数据库 my.conf

/usr unix software resource 存放安装的应用程序

这是一个非常重要的目录,用户的程序和文件默认放在这个目录下,类似于Windows下的program files目录。

/*boot

Linux存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件

/proc 不能动

这个目录是一个虚拟的目录,他是系统内存的映射,访问这个目录来获取系统值。

伪文件系统,数据存放在内存中,存放关于进程的相关信息

/srv 不能动 service的缩写,该目录存放一些服务器启动之后需要提取的数据

/sys 不能动 伪文件系统,存放在内存当中,记录了内核相关的信息,包括目前加载的内核文件和内核检测到的设备

/tmp 存放一些临时文件,所有用户都可以创建访问文件,每个用户只能删除自己的文件

一个月清空一次

/dev 类似于Windows的设备管理器,八宿友的硬件用文件的形式存储。

/media Linux系统会自动识别一些设备,例如光盘、光驱等等,当识别后,Linux会把识别的设备挂载到这个目录下

/mnt 系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看里面的内容了

例如: d:/myshare

image-20221026233217794

/opt 给主机额外安装软件所摆放的目录,如安装ORACLE数据库就可放到该目录下,默认为空

/usr/local

这是另一个给主机额外安装软件所安装的目录,一般是通过编译源码方式安装的程序

与/usr不同的是,这个是安装目录,usr是exe

/var

这个目录中存放着不断扩充着的东西,习惯将经常被更改的目录放在这个目录下,包括各种日志文件,mail等

/var/cache:存放应用程序运行时产生的缓存文件

/var/lib:程序运行时,需要使用的数据文件的存放目录

/var/lock:存放锁文件,设备或资源一次只能被一个应用程序使用,如果多使用程序会产生错误,因此要为设备或资源上锁

/var/log:存放日志目录(系统,用户登录,服务日志)

/var/mail:存放个人电子邮件(系统报警产生邮件信息)

/var/run:存放应用程序运行时PID文件(进程号,pid结尾)

/var/spool:存放队列数据,排队等待其他应用程序使用的数据,数据通常情况使用完成后会被删除

/selinux security-enhanced linux

SELinux是一种安全子系统,它能控制程序只能访问特定文件,有三种工作模式,可以自行设置

类似于Windows的360等软件

FHS规定:/etc /bin /dev /lib sbin 五个目录必须要和根目录位于同一文件系统

Linux远程登陆

在虚拟机中ifconfig 获得虚拟机ip

建议用桥接模式

在母机ping相应ip地址,若能联通,就可以开始玩了

image-20221027162714167

一次性接受

接受并保存—相当于记住密码

通过xshell远程操控Linux的文件

xftp

image-20221027163942365

若传输失败

image-20221027164330682

或进入root账户

解决乱码问题image-20221027215755078

选utf编码

xshell

ssh +虚拟机ip地址进行连接

一次性接受

接受并保存—相当于记住密码

通过xshell远程操控Linux的文件

shell:使用者,计算机交互接口(人机交互接口)

shell中输入命令,shell把命令传递给内核,内核把命令结果反馈给shell,人从shell中读取命令执行结果

内核:图形界面/字符界面 收到的信息都是一样的

Linux支持的shell

bash:Linux默认支持的shell

ksh

csh

内核的作用:
进程的管理:进程:要执行的任务
内存管理:
文件系统:存储设备上存储数据的方式方法:Windows:NTFS/FAT32 存储方式不同但存储数据相同
网络功能:管理ip地址信息等
硬件驱动:
安全功能:管理密码

vim

image-20221027224849786

输入esc

输入: 进入命令行模式

关机重启与登陆注销

基本介绍

shutdown -h now 立刻关机

shutdown -h 1 1分钟后关机

shutdown -r now 现在重启计算机

halt 关机,同上

reboot 现在重启计算机

sync 把内存的数据同步到磁盘

shutdown 默认一分钟后关机

image-20221027233817272

小心驶得万年船

登陆时尽量少用root账号登陆,避免操作失误,在普通账户下可以先用

1
su - 用户名

命令来切换成管理员身份

在提示符下输入logout即可注销用户

图形运行级别:

image-20221028223456623

运行级别3

image-20221028223553471

image-20221028222824437

在root下logout,会退回到普通用户,在普通用户logout,会退出系统

21-26跳过了

命令提示符

[root@www ~]#管理员

[fff@www ~]$普通用户

root:当前登录的用户名

www:主机名

:当前用户所处的目录(代表用户宿主目录)

#:代表当前用户是管理员

$:代表当前登录用户是普通用户

Linux终端

多用户多任务系统

6个终端:ctrl+alt+fn

推出终端:exit

Linux界面

GUI:graphical user interface:图形用户接口(图形界面)切换图形界面:CTRL+alt+f7

GNOME:Linux默认图形界面 用C语言开发

KDE:C++开发

xface:简化的图形界面

CLT:command line interface 命令行接口(字符界面)

Linux 使用凭证

用户名和密码 用户获取资源权限的凭证

指纹/刷脸等

root:Linux默认管理员用户名

普通用户:

切换用户:su 用户名

退出当前用户:exit

switch user 的简写

当管理员切换至普通用户,不需要输入密码,普通用户切换至管理员,需要输入密码

添加用户:useradd student

Linux命令格式

命令字 [选项 ] [参数] 中括号代表可以省略

命令字是唯一的 ,实现某一项功能

如ls

选项:修改命令的执行方式(实现特定的功能)

​ 长选项:–来引导,是一个单词(多个长选项不能组合)

​ 短选项:-引导,是一个字符(多个多个短选项可以组合)

ls -a -l

ls -al

ls -la

效果相同(╹ڡ╹ )

参数:命令作用的对象

Linux高效获取命令帮助信息(一)

内核版本号:主.次.修订 3.6.28

Linux系统不认识用户名,只认识UID

3A认证

image-20221114183455920

认证机制:

​ 密码认证

  1. 符合复杂性要求(数字,小写字母,大写字母,特殊符号至少三种)
  2. 密码要足够长(至少7位)
  3. 不要使用比较易记的密码,使用随机的字符
  4. 定期更改密码
  5. 重复密码的时间要长123 456 123 456间隔要长

Linux登录信息:

/etc/issue

查看:

1
cat /etc/issue

Linux命令分类:

  • 内部命令:shell自带的命令
  • 外部命令:在Linux文件系统中存在一个应用程序

查看命令类型:

type 命令

( )is a shell buildin:buildin关键字说明该命令是内部命令

( )is /bin/mkdir:有路径显示(外部命令)

路径:

绝对路径:从根(/)开始的路径是绝对路径 Windows中的根即C盘,D盘等,而Linux中的根只有一个

相对路径:需要有参照点,以现在所处的工作目录为参照点

. 代表当前路径.. 代表上一级路径 ~代表用的宿主目录

列出目录:

ls:list简写(命令字)

ls -l

image-20221114192842314

第一位:文件类型

  • -:代表普通文件

    • 纯文本文件(ASCII):配置文件

    • 二进制文件( binary file):命令

    • 数据格式文件(data):/var/log/wtmp

  • d:代表目录 directory

  • 设备文件

    • b: 块设备 block 如硬盘,U盘等 一块一块的读取东西

    • c:字符设备 char 如键盘等 一个字符一个字符的读取,一次性读取,按顺序读取

  • s: socket套接字文件 symbolic link file 用在网络上数据连接 ip+port

  • 192.168.12.10:20

  • l:链接文件:软链接文件

  • p;特殊的文件类型,解决多个程序同时访问一个文件所造成的错误问题

第二到十位:权限位rwx:读写执行

234位:文件属主权限 owner

自个儿

567位:文件属组权限 group

家庭成员

8910位:其他用户权限 other

剩下的人

tom登录:新建一个文件 a.txt文件属主tom

1:代表文件硬链接的次数

第一个root:代表文件属主 owner

第二个root:代表文件属组 group

1207 文件的大小

Nov 6 18:51 文件的时间戳 文件最后被访问的时间戳

文件的时间戳:

  • access:访问的时间戳
  • Modify:文件被修改的时间戳(修改文件数据,添加删除数据)
  • change:文件被更改的时间戳(更改文件属性)

查看时间戳命令

stat 文件名

ls -l

什么都不加的话,会作用于当前的目录

ls -h

为文件大小添加单位

ls -a

显示目录下所有文件(包括 . .. 和以.开头的隐藏文件)

ls -A

和-a相同,但是不显示.和..

ls -R

递归显示目录中的内容(一并显示子目录中的所有内容)

ls -r

逆序显示文件目录内容

ls -i

显示文件所在的i节点( index node)

补充

. 当前目录

.. 上一级目录

变量

环境变量:内存中的命名空间

PATH变量:存放系统命令路径,以冒号隔开,每一个冒号就代表一个路径

查看PATH变量

1
echo $PATH

注:Linux命令严格区分大小写

随便输一个命令,如果该命令不存在

image-20221114195641438

如果在以上路径中没有找到相关命令(该命令为外部命令)

提示用户command not found

如果一个命令在以上多个路径中存在,系统会按照从前往后的顺序查找,查找到该命令后,后面的路径不再查找

hash:查看命令缓存及命中率

image-20221114200133144

Linux高效获取命令帮助信息(二)

Linux的帮助信息:

内部命令:help 命令

外部命令:命令 –help

先type一下判断命令类型

pwd 显示当前位置

man :帮助

语法:man 命令

查看内部命令信息时显示的是bash帮助信息

使用的时候可以用上下方向键翻行

enter 向下翻行

pgdn向下翻页

pgup向上翻页

/word :从上往下查找关键字

?word: 从下往上查找关键字

q:退出当前帮助信息

man目录说明

image-20221115184437238

  1. 普通用户命令 (/bin /usr/bin /usr/local/bin)
  2. 系统调用库
  3. 库调用
  4. 设备或特殊文件 通常指硬件设备 /dev
  5. 查看配置文件格式
  6. 游戏
  7. 杂项
  8. 管理命令 (/sbin /usr/sbin /usr/local/sbin) secret binary

cd:change directory(切换目录)

cd 不加选项,返回到当前用户的宿主目录

cd -username 切换到username的宿主目录

cd -返回到上一次的工作目录

which 命令 查看命令所在的路径

whatis:当打开操作系统一段时间后这个命令才可以使用,这个时间一般是七十分钟,该命令在系统启动大约70分钟后会生成whatis的数据库,如果时间太短,该命令不会执行,我们可以使用makewhatis 初始化该命令

该命令的作用是查看命令所在的帮助信息的目录

whatis查看该命令在哪几个目录级别中,级别如上八个

man+级别+命令 来查看帮助信息

man使用说明:

NAME:命令名称及简要用法

SYNOPSIS:语法格式,可能还包括一些选项的使用

DESCREIPTION:命令或选项的详细说明

Exit status:退出状态码

AUTHOR:作者信息

REPORTING BUGS(BUG):发现BUG时如何反馈信息

SEE ALSO :另外参照的帮助信息

COPYRIGHT:该命令的版权信息

OPTIONS:说明该命令每一个选项的详细用法

example:命令使用实例

man手册页目录 /usr/share/doc( 工作中主要查看内核信息)

<>:必须使用的选项的或参数,不可以省略

[]:可以省略的选项或参数

|:代表多选一

…:代表可以使用多个选项或参数

{}:分组,没有特殊意义

info:在线查看帮助,注重于命令历史和版权信息

pwd:print working directory

显示当前所处的工作目录

11-15

Linux根文件系统

根目录下目录以及子目录的作用

file:查看Linux中文件类型

file 文件名

在Linux文件名限制

  1. 单个文件或目录的名称不能超过255字符
  2. 文件名中不能包含特殊字符 / . - + 等

Linux常见命令

文件惯例

目录管理

系统管理

网络管理

file

查看文件类型(Windows是用扩展名识别文件类型)

语法:file [options] 文件名

option:

-b:显示结果时,不显示文件名

-c:显示执行file命令的执行过程

-i:输出MIME类型的字符串

-z:显示压缩文件的内容

-L:查看软件类对应文件的类型

-f:查看文件当中文件名的类型

cat

一次性查看整个文件

语法:cat [options] 文件名

从键盘输入创建一个新文件:

cat >new_file_name <<EOF //end of the file

image-20221117220727310

不想输入时输入EOF结束

从现有文件当中添加数据

cat >> 文件名 << EOF

把多个文件内容合并到一个文件输出

cat file1 file2 > file3

option:

-n:显示文件内容的同时显示行号

-b:与-n的功能相同,但不包括空行

-s:当文件中有多个空行时,合并为一个空行

-E:在显示内容时,结尾♥显示‘$’符号

cp

复制文件或目录

语法: cp [options] [src_file] [des_file]

image-20221117223603852

一些规则

如上图

option

-f:force,强制复制文件或目录不进行提示

-r:递归复制目录

-s:为某个文件创建符号链接( 软链接),而不是复制文件

-b:覆盖原有的文件前,对文件进行备份

image-20221117225428902

-l:为文件创建硬链接,而不是复制文件

-p:复制文件时保留文件的原有属性

-d:当复制软链接文件时,把目标文件或目录也会创建为软链接,并指向最原始的文件

mv

move

移动或重命名文件和目录

当原位置和目标位置是同一目录时,是重命名:

当原位置和目标位置不是同一目录时,是移动

-b:移动前先对源文件进行备份

-f:强制覆盖

-i:覆盖目标文件前询问

-t:将多个文件移动到同一个目录(目标目录在前面,后面跟文件)

image-20221117232534366

rm

删除文件或目录

-d:删除可能存在数据的目录

-f:强制删除

-i:删除前进行询问

-r:递归删除整个目录

-v:显示命令执行过程

mkdir

make dirictory 创建空目录

-m:创建目录时同时设置权限

-p:递归显示创新目录

image-20221117233104787

image-20221117233134321

a下的bcd同级

image-20221117233438290

{a,b}-{c,d}

-v:显示创新目录的过程

touch

创建新文件或者修改文件时间戳

-a:只改变访问时间戳

-c:不创建文件

-d:使用指定时间戳访问文件,而不是系统文件

image-20221117234038474

-f:解决bsd系列与Linux的兼容性

tree

查看目录树

which

查找命令所在的路径

whereis

查看命令所在的路径,源代码文件,帮助信息文件所在的文件

-b 只查看文件所在的位置,相当于which

-m:只查看帮助信息所在的位置

-s:只查看源码所在的位置

locate

非实时性,根据自己的数据库查找文件,centos每天更新一次数据库,安装完locate后生成/var/lib/mlocate 目录,存放数据库模糊匹配

:# updatedb // 更新locate数据库

: # yum -y install mlocate

: # locate file_name

查看文本文件内容

Linux中是以$为结尾

Windows中是以ENTER键为结尾

cat

一次性查看文本内容

more

可翻页查看文本内容

可用回车键向下翻行

用空格键向下翻一屏

用ctrl+b向上翻一屏

ctrl+f向下翻一屏

m 显示当前的行号

v 调用vi编辑器

! 调用shell执行命令

q 退出more命令

more 数字 文件名 从第几行开始显示文件

less

翻页查看文本内容

可用回车键向下翻行

用空格键向下翻一屏

pgdn向下翻一屏

pgup向上翻一屏

上下方向键可以翻行

/word 在该文件当中查找关键字

​ n:查找下一个

​ NL查找上一个

q 退出less命令

less多用于管道当中

管道:选择多条命令,前一条命令输出结果作为后一条命令的输入条件

默认查看文件的前十行

-n:查看文本文件的前n行

tail

查看文本文件的后十行

-n:查看文本文件的后n行

-f :动态查看文本文件内容

如动态查看日志:tail -f /var/log/messages

find

image-20230105183653876

压缩解压命令

压缩.gz

只有这种不保留源文件

gzip 文件

解压

gunzip/gzip -d 文件

压缩zip

zip -r 文件名 目录

解压缩

unzip 文件名

image-20230105184250482

网络命令

image-20230105184647374

其他命令

image-20230105200001359

查看进程

image-20230105200031980

Shell特性(上)

GUI:包括GNOME KDE XFACE等

CLI:sh ksh bash

bashshell是默认使用的shell程序

bash是一个应用程序

shell启动:当用户登陆完成后,系统会自动启动shell程序

进程:应用程序的副本;是joy拍卖行Pid区分( 在系统中,一个进程只认为自己存在)

shell:父shell程序和子shell程序(父子shell之间环境相互独立)

:# cat /etc/shells 查看当前系统所支持的shell程序

:# yum -y install ksh csh //安装ksh,csh的shell程序

:# exit //退出当前shell程序

bash的特性

  1. 命令历史 Linux会自动记录系统过去执行的命令,并保存在内存的缓冲区中

    ​ 。 # history //查看Linux的历史

    在每个用户的家目录下,有个隐藏文件 bash _history保存命令历史

    -c:清空命令历史

    -d:删除某一条命令历史 history -d 数字

    history -d 10 4 从第十行往下删四行

    -w:将命令历史保存到某个文件中

    变量:PATH命令路径变量

    HISTSIZE:命令历史大小变量

    。$ echo HISTSIZE //查看histsize的变量值

    命令历史使用技巧

    !n :使用命令历史的第n个命令(n是编号)

    !-n:执行命令历史中的倒数第n条命令

    !word:执行命令历史中最近一次以word开始的命令(word必须能够唯一标识用户想执行的命令)

    !!:执行上一条命令

    !$:引用前一个同种命令的参数

    image-20221119154440661

    ESC键 按完松开 按.键:引用前一个同种命令的参数

  2. 管道,重定向

    计算机体系结构:

    ​ 控制器:CPU,读取系统指令

    ​ 运算器:CPU,运算

    ​ 存储器:RAM,(内部存储器;易失性存储器)

    ​ 输入设备(input):输入数据,如键盘,硬盘等

    ​ 输出设备(output):显示指令执行结果,如显示器,音响,硬盘等。

    计算机总线:

    ​ 地址总线:负责内存寻址

    ​ 数据总线: 传输数据

    ​ 控制总线: 控制指令

    寄存器:CPU当中内部临时存储空间

    I/O设备:负责计算机内部存储设备和外部存储设备(硬盘,U盘,光盘)进行交互的设备

    程序:指令+数据

    ​ 指令:有程序提供,负责加工数据

    ​ 数据:系统中数据可以有多种来源,比如来自变量,来自文件,来自输入设备

    当用户没有为指令指定数据来源时,系统要有默认的数据来源

    ​ 标准输入输出设备:

    ​ 标准输入设备:键盘(stdin)

    ​ 标准输出设备:显示器(stdout)

    ​ 标准错误输出设备:显示器(stderr)

    三种数据流:

    ​ 标准输入数据流/标准输出数据流/标准错误输出数据流

    当在Linux中打开一个文件时,内核会被反复调用,对于文件表示就很重要了,用文件描述符来标识文件,文件加载完成后用数字标识

    fd:file descriptor(文件描述符 )

    IO重定向:把默认输入输出数据来源重新定向到其他的文件或设备

    输出重定向:

    :> 覆盖输出重定向 覆盖原来的

    :>>追加输出重定向 不覆盖只添加

    :2>错误输出重定向 错误才实行

    image-20221123145732807

    :2>>错误追加输出重定向

    : &>>混合覆盖输出重定向

    :&>>混合追加输出重定向

    输入重定向:

    :<:输入重定向

    管道:连接多条命令,把前一条命令的输出结果作为后一条命令的输入条件

    tr:实现字符转换,不修改原文件

    image-20221123150138543

    image-20221123150314276

    tee

    既输出到显示器,又输出到文件

    image-20221123151420856

  3. 命令别名

    。# alias COMM _ALIAS=command

    image-20221119164625687

    我的理解是c语言中的define

    alias别名旨在当前shell生效

    注意:执行alias命令是,command最好用‘ ’引起来

    image-20221119165116055

    。# unalias COMM _ALIAS //取消命令别名

  4. 命令行编辑

    ctrl+a :光标快速跳转到命令头部

    ctrl+e: 光标快速行动到行尾

    ctrl+u:快速删除光标位置到命令行行首

    ctrl+k:快速删除光标位置到命令行行尾

    ctrl+l:清屏(命令clear:清屏)

  5. 命令行展开 //提高工作效率

    5.1命令补齐:在PATH变量当中搜索命令并补齐(PATH变量必须正常,输入要补齐的命令的字符数一定能够唯一标识这条命令;tab补齐)

    按tab键两次,列出以某个字符为首的所有命令

    。# echo $PATH //查看PATH变量的值

    路径和文件补齐:在系统路径中查找

    命令行补齐功能不能补齐选型

    5.2:命令替换

    命令替换就是把命令中的子命令

    。# echo “字符串”

    image-20221119170949011

    先执行pwd命令,输出他的结果

    “ ”双引号:弱引用 可以实现变量的替换,把变量名替换为变量值

    ‘ ’单引号:强引用 不能完成变量替换

    pwd显示当前路径

  6. 命令行通配:globbing

    *:匹配任意长度的任意字符

    ?:匹配任意单个字符

    [] :匹配指定范围内的任意单个字符

    [^] :匹配任意范围外的单个字符

    image-20221119174105251

    image-20221119174129470

    [:space:]:表示空格

    [:punct:]:表示所有标点符号

    [:lower:]:表示所有小写字母

    [:upper:]:表示所有大写字母

    [:alpha:]:表示所有字母 包括大小写

    [:digit:]:表示所有数字

    [:alnum:]:表示所有数字和大小写字母

    image-20221119174537237

  7. 变量

  8. 编程

用户(1)

process(进程):用户执行应用程序的过程

不同应用程序调用相同的库:权限

权限:用户对于应用程序的执行能力

文件属主:

​ 属性:

​ 其他用户:

用户:多任务,多用户

Linux实现权限隔离机制(多用户,)

操作系统识别用户

​ 用户:UID

​ 组:GID(逻辑容器:包含用户,实现多个用户对某个文件或应用程序分配相同的权限)

用户分类:
管理员用户:root UID:0

​ 普通用户:1000-65535
​ 程序(系统)用户:1-999

组分类:

​ 管理员组/普通组

​ 基本组:Linux中,新建用户时,没有指定隶属的组,系统会为其建立一个和用户同名的组,作为基本组

​ 附加组:方便以后为用户分配权限

解析:

/etc/passwd:存储用户基本信息

/etc/shadow/:存储用户的影子口令

/etc/group:存储用户的组信息

/etc/passwd解释:用冒号隔开

​ 第一列:用户的登录名

​ 第二列:加密密码(x表示密码占位符,密码保存在etc/shadow中)

​ 第三列:UID

​ 第四列:GID

​ 第五列:GECOS用户的描述信息

​ 第六列:用户宿主目录

​ 第七列:用户登录默认使用的一些shell(/etc/sheels)

/etc/shadow解释:用冒号隔开

​ 第一列:用户的登录名

​ 第二列:用户加密的密码

​ 第三列:最后一次更改密码的时间(从1970年到1月1号)

​ 第四列:密码最少使用时间 用户无法更改密码

​ 第五列:密码最长使用时间 用户必须更改密码的时间

​ 第六列:密码过期前的警告时间

​ 第七列:密码过期后的宽限时间

​ 第八列:密码失效时间

​ 第九列:保留

/etc/shadow密码区域解释(格式:$id$salt$encrypted):
三部分组成:用$隔开

​ 第一部分加密算法:

​ 1:MD5加密

​ 5:SHA-256加密

​ 6:SHA-512加密

​ 第二部分:随机序列号

​ 为了区分用同一密码和同种加密方法的两个用户

​ 第三部分:随机序列号和密码共同加密后的字符串

加密算法:

​ 对称加密:加密和解密使用相同的密码(效率高,但不够安全)

​ 非对称加密:加密和解密使用不同的密钥,公钥和私钥,用一个密钥加密,同时用另一个密钥解密

​ 单向加密,散列加密:提取数据的特征码,常用于数据完整性效验

单向加密

1:不可逆

2:定长输出

md5:128位定长输出

sha:160位 224位 256位 384位 512位

3:雪崩效应

用户管理(下)

添加用户 :useradd

/etc/default/useradd

image-20221127210909680

/etc/skel:目录(用户宿主目录模板目录,只对新建用户生效)

.bash_logout:用户注销时执行的命令

.bash_profile:用户登录系统时执行的命令

.bashrc:用户的能录一个新shell时执行的命令

前面带.代表隐藏文件

更改此目录就是更改模板,新建用户时都会生效

etc/login.defs文件解释(只对新建用户生效):

image-20221127213228274

用户管理命令(上)

image-20221129202107853

useradd:添加新用户 更改/etc/passwd /etc

useradd 命令 user_name

-c:为用户添加描述信息

image-20221129211952534

不加时如上

image-20221129215954638

使用后

image-20221129221155876

-d:指定用户的宿主目录目录 默认在/home目录

image-20221129223735890

-D:改变默认的值(修改配置文件)/etc/default/useradd文件中的

image-20221130000357052

image-20221130003358617

用户管理命令( 下)

passwd:为用户设置密码/锁定解锁用户/查看状态

语法:passwd [options] user_name

root用户可以给普通用户设置密码

-l:锁定用户(暂时无法登录操作系统)

-u:解锁用户

-S:查看用户状态

image-20221130152608053

/etc/shadow中的内容

-d:删除用户密码,允许普通用户以空密码登录(不建议使用)

-e:设置密码过期,用户再次登陆时,需要修改密码

-n:设置密码时设置最小使用期限/etc/shadow第四列,

-x:设置用户密码最大使用期限/etc/shadow第五列

-w:设置密码过期前的警告时间,修改第六列

-i:修改过期后的宽限时间,修改第七列

普通用户设置密码时,必须先验证当前密码,符合密码策略

root用户则不需要

userlde:删除用户 修改 /etc/shadow /etc/group /etc/passwd

​ 语法:userlde [options] user_name

-r:删除用户时连同宿主目录一同删除

usermod:修改用户属性 修改/etc/passwd

语法同上

-c:更改用户的描述信息

-d:更改用户的宿主目录目录 默认在/home目录

-e:更改用户的过期时间,格式参考之前

-f:修改/etc/shadow第七列内容

-g:修改基本组

-G:修改附加组

//前提是组要存在

-l:修改用户的登录名

-s:修改用户的shell(系统支持的shell)

-L:锁定

-U:解锁

chsh:修改用户的shell

语法:

相当于usermod -s

-s:后面跟shell,更改用户的shell

-l:显示当前系统支持的shell

finger:显示用户的基本信息

finger+user _name

chfn: 修改用户的基本信息

​ 语法 :

-o:修改办公室

-p:修改办公室电话号码

-f:修改用户名

id:显示用户和组的ID

​ 语法:

-a:忽略其他版本区别

-Z:显示安全上下文内容

-g:显示有效组的ID

-G:显示所有组的ID

-u:显示用户ID

-n:不显示组号,显示名字

chagel:修改用户密码的时间信息 /etc/shadow

​ 语法:chage o。。。 u。。。

-l:列出用户详细的密码参数

-d:修改shadow第三列

-E:修改第八列

-I大写的I:更改第七列,跟天数后面

-m:四

-M:五

-W:六 跟天数

Linux组管理

​ 组管理:groupadd,groupdel,groupmod,newgrp,groupmems,gpasswd 。

组分类:

管理员组:root

普通用户组:

系统用户组:

按照用户分类:

管理员组:root

基本组:初始化的组

附加组:有效组

组:逻辑容器,存放用户,实现集中授权

/etc/group:

第一列:组的名字

第二列:组的密码区域

第三列:组的ID号( GID)

第四列:组中的成员

groupadd:

-g:创建组时指定组的ID

image-20221205094557559

-r:添加一个系统组

groupdel:删除一个组

后面直接加组名

image-20221205095849735

可以把他的基本组转到别人名下,比如tom,就可以完全删除

转组在下面写

默认情况下我们不能删除一个用户的基本组,通过修改用户基本组来删除

可以删除用户的同时,系统会删除同名基本组(该组是一个用户的基本组是才能删除)

groupmod:修改组的属性

-g:修改组的GID号

image-20221205103624337

-n:为组重命名

gpasswd:为组设置密码,摄制组的管理员,设置组成员

-A:为组设置管理员

image-20221205104241059

-M:批量添加用户,用逗号隔开

-r:为组移除密码

-R:让组的密码失效

-a:为组添加成员( 组的管理员操作命令)

-d:删除组成员( 组的管理员操作命令)

newgrp:为用户修改有效组(只在当前shell有效)

exit:退出newgrp

groupmems:为组添加成员,显示组成员列表

Linux权限1

权限:是用户对于系统资源及数据等操作的能力

三类用户权限

属主:owner

属组:group

其他:other

image-20230113175002021

image-20230113192451334

chown

改变文件属主或数组,不加-R时只改变指定位置

image-20230113192823586

-R

能递归更改目录的属主或属组

image-20230113192913055

image-20230113193344505

image-20230113193420023

要想同时更改属组和属主

image-20230113193511476

chmod

修改文件或目录权限

image-20230113194042773

image-20230113194355629

可以同事基于一个文件行使多种操作