linux入门常用知识点part2-用户和用户组以及磁盘管理(干货系列小郭学习Linux的第二天)
目录
- 查找、搜索文件
- 硬链接和软链接
- 用户和用户组
- 磁盘管理
之前学过的内容
1.查找、搜索文件
命令:which
、whereis
、locate
、find
、stat
、file
which:查看可执行文件的位置。
whereis:查看文件的位置。
locate:配合数据库查看文件的位置。
(1)which
which命令的作用:在PATH变量指定的路径中搜索某个系统命令的位置,并且返回第一个搜索结果。即使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。
例如:which ls
(2)whereis
whereis很简单,你告诉需要找什么,它就能反馈
例如:whereis ls
(3)locate
locate命令用于在系统全局范围内搜索文件。
locate原理:locate不是直接搜索整个文件系统,而是从后台数据库里读数据,由于updatedb一般一天执行一次,所以导致locate不能即时的找到刚创建的文件,可以手动更新。
后台数据库路径:/var/lib/mlocate/mlocate.db
这个是需要先安装,运行命令:yum install -y mlocate
安装完成后先更新数据库,运行命令:updatedb
完成后搜索想要的文件,小郭还是用ls实验
运行完成后它把所有包含“ls”的文件全部找出来了,文件名中只要有ls的都会被列出来
4.find
因为在Linux系统里一切皆文件,所以find命令很强大
举个例子(以/home/confidence目录为例)
查找所有文件:find /home/confidence *
或者查找一下当前目录里的名字包含".txt"的文件:find ./ -name \*.txt
(5)stat
stat描述的是文件和文件属性信息,inode信息
我们以1.txt为例子看一下:stat 1.txt
这里面的信息可以看出底下的三个时间节点,第一行时间是访问时间,第二行时间是文件内容修改时间,第三行时间是状态时间,最开始的时候这三个时间是一样的,因为是创建文件的同时修改了它的内容,相当于一次访问,所以在创建成功退出后三个时间一致。
我们试着vi一下,但不进入编辑模式,且不做任何修改
只有访问时间改变
我们试着用echo往里面写点东西:echo hi > 1.txt
内容改变时间和状态时间都变了
如果修改文件权限的话:chmod 777 1.txtt
只有最后一行状态被修改了
(6)file
显示文件的格式,例如:file 1.txt
2.硬链接和软链接
命令:ln
:link 做连接文件,是指对某一个文件的链接,相当于是一个别名
命令ln
:硬链接,一个文件只参做一个硬连接,对目录不能做硬链接
命令ln-s
:软链接,可以对一个文件做多个软链接
我们试一下
命令:ln -s p.txt ppp
我们改一下内容:cp /etc/passwd ppp
再cat一下
发现ppp内容已经改变,ll看一下详细信息
ppp -> p.txt属性不改变
再cat一下p.txt
p.txt 也改变了
删除ppp再看一下
删除链接文件不删除被链接文件
3.用户和用户组
之前学习到文件的权限里有用户本身,同一组内的用户,组外的用户
这里有几个配置文件需要了解
(1)/etc/passwd
(2)/etc/shadow
(3)/etc/group
(1)/etc/passwd
/etc/passwd 是用户数据库,其中的域给出了用户名、加密口令和用户的其他信息
这是一个记录linux系统里的用户的配置文件,增加或删除用户都是改这个文件里的记录,由7个字段生成,每个字段间都由“:”分隔
先cat一下看看:
(1)用户名:它的规则是可以有大小写字母,数字,减号(不能放在首位),点以及下划线,其他字符不合法
(2)密码:一般都是加密状态,只显示为x,映射在/etc/shadow文件内
(3)UID:(0-4294697294(2的32次方-2)之间)0是root的UID,1-499是系统使用的UID,普通用户是从500开始的
(4)GID:组ID,映射在/etc/guoup里
(5)用户的属性说明
(6)用户的家目录
(7)登录使用的Shell,就是对登录命令进行解析的工具,一般有/bin/bash、/bin/false、/sbin/nologin
(2)/etc/shadow
/etc/shadow是在安装了影子(shadow)口令软件的系统上的影子口令文件,由9个字段生成,每个字段由“:”分隔
cat一下
(1)用户名
(2)密码:这里是用mod5加密过的,但高手也可以解密的。要主要安全问题(代!符号标识该帐号不能用来登录)
(3)上次修改密码的日期
(4)需要多少天才能修改密码(0表示不限制)
(5)密码多少天后到期(默认是99999,表示不会过期)
(6)密码到期前的警告期限
(7)帐号失效期限(到期后过多少天锁定账号)
(8)帐号的生命周期
(9)保留条目,目前没用
(3)/etc/group
/etc/group 存储有关本地用户组的信息,和/etc/passwd类似
cat一下
(1)groupname GID到名称的一种映射,组名
(2)password 保存密码的位置
(3)GID 组ID
(4)user 组成员
用户与组的操作命令:
groupadd :添加组,参数:-g指定GID
添加后到/etc/group里看
groupdel :删除组
useradd :添加用户,参数:-u、-g、-d(指定家目录)、-M(不指定家目录)、-s(自定义shell)
直接添加用户不加参数,系统默认添加同名组
userdel --删除用户,参数:-r(删除用户家目录)
不删除家目录的话,之后不可以重复建立同名家目录
usermod :修改用户,参数:-u、-s、-d、-L、-U、-g、-G21
chfg :修改用户
passwd :修改用户密码
su :switch user 切换用户,加参数:- :代表在切换用户的时候,会应用用户的环境变量,会去读用户家目录下的配置文件:.bashrc文件、.bash_profile文件和 .bash_logout文件(通过ll -a看一看)
我们添加一组试验一下,命令:useradd -u 1001 -g oracle -s /bin/bash oracle
cat一下passwd看一下
我们再修改一下,命令:usermod -u 1002 oracle
用户密码的修改
命令:passwd
(修改密码时密码不会显示)(规则:长度大于10,包含大小写字母数字和特殊字符,不规则性,不带有自己信息)
直接passwd是改root的密码,如果后面加了用户名的话,就是改用户名的密码
也有直接生成密码的工具:mkpasswd
命令,这需要先下载安装expect包,运行命令:yum install -y expect
完成后直接mkpasswd
命令就会生成一个密码。
4.磁盘管理
(1)物理磁盘
linux使用的物理磁盘就是一块物理硬盘,这个跟之前安装时会问你需要多大的磁盘空间和接口(推荐的是使用SCSI)
查看磁盘的命令df
:disk free ,参数df -m
、df -h
六行内容
(1)Filesystem:代表该文件系统是哪个分区,列出的是设备名称。
(2)1K-blocks:说明下面的数字单位是1KB,可利用-h或-m来改变单位大小,也可以用-B或者–block-size=1g("="后边写需要设置的单位 1g/1m…)来设置。
(3)Used:已经使用的空间大小。
(4)Available:剩余的空间大小。
(5)Use%:磁盘使用率。如果使用率在90%以上时,就需要注意了,避免磁盘容量不足出现系统问题,尤其是对于文件内容增加较快的情况(如/home、/var/spool/mail等)。
(6)Mounted on:磁盘挂载的目录,即该磁盘挂载到了哪个目录下面。
(2)对磁盘分区
分区:对物理磁盘进行逻辑上的划分,可以是一块物理磁盘就分一个区也可以是一块物理磁盘分成多个区,如果分成多个区的时候,要理解分区的类型:
a)主分区—最多只能有4个,如果一块物理磁盘都分给主分区了,就不能再分扩展分区了
b)扩展分区–最多只能有一个,对除了主分区以外的所有空间进行管理,是逻辑分区的基础
c)逻辑分区—最多可以有64个,是基于扩展人来的进行实际的管理空间
分区模式:3+1,即一块物理磁盘分3个主分+1个扩展分区,再基于扩展分区创建逻辑分区
对磁盘进行分区的命令:fdisk
,参数:fdisk -l
命令:fdisk -l
:列出当前系统的磁盘分区情况
命令:fdisk /dev/sda
:对/dev/sda这块磁盘进行分区操作(SCSI类型的磁盘接口,用sd表示,a代表第一块硬盘,b代表第二块硬盘)
我们先加一块磁盘给虚拟机(虚拟机必须先关机后再进行操作)
先编辑虚拟机设置
点击添加
选择硬盘,点击下一步
选择SCSI下一步
下一步
这里的话各位大佬按照自己的需求分
完成
完成后开机我们通过fdisk -l
查看
这样就显示我们成功添加了一块新磁盘
然后我们fdisk /dev/sdb
对新磁盘进行分区
这里m可以查看帮助,帮助有什么我就略过了
我们分区,在命令行输如n
p就是主分区(括号内的显示的是当前状态下,磁盘有0个主分区,0个扩展分区,有4个区域可以划分)
e就是扩展分区
接下来就按照需要进行分区,注意分区所选的位置,确保是2048的位置开始
同理我们分了第二块和第三块分区,现在我们再加的话,因为三加一模式,系统会默认添加扩展分区,但不代表不能添加主分区
此时我们再进行添加分区的操作将会失败
所以我们删除一个分区并把剩下的所有大小全部分给扩展分区进行代替
删除分区的操作默认是从后往前的,也就是从第4个开始删
然后我们再把剩下的全部分给扩展分区
此时再添加新的分区将会在扩展分区里添加新的逻辑分区
然后wq退出,再通过命令fdisk -l
进行查看
框出来的就是我们的新的磁盘
(3)格式化
格式化:对指定分区进行文件系统的格式化
命令:mksf
运行命令:mkfs.xfs /dev/sdb1
对第一块进行分区
通过命令:blkid
可以查看到已经格式化了的分区以及分区的UUID
(4)挂载分区
建一个挂载点,用于挂分区的,便于操作。命令:mount
我们先创建一个目录,并把刚才已经格式化了的sdb1挂在上去
此时df -h
就会看到刚才格式化的磁盘分区和u01的信息
但是上面的只是手动挂载,系统下一次重启,这个挂载会失效,自动挂载就只需要修改一个文件就可以实现
命令:vi /etc/fstab
,在后面添加相关信息
第一列为设备号或该设备的卷标
第二列为挂载点
第三列为文件系统在这里插入代码片
第四列为文件系统参数
第五列为是否可以用demp命令备份。0:不备份,1:备份,2:备份,但比1重要性小。设置了该参数后,Linux中使用dump命令备份系统的时候就可以备份相应设置的挂载点了。
第六列为是否在系统启动的时候,用fsck检验分区。因为有些挂载点是不需要检验的,比如:虚拟内存swap、/proc等。0:不检验,1:要检验,2要检验,但比1晚检验,一般根目录设置为1,其他设置为2就可以了。
图中框出来的就是我新增的分区,添加进去的挂载记录。
注意挂载点一定要设置准确的绝对路径
完成后记得保存并退出
也可以通过命令umount
进行卸载
此时我们如果想再挂载的话只需命令:mount -a
就可以了
命令:mount -a
:自动挂载,会去读配置文件/etc/fstab,下一次系统重启,也会自动挂载
(5)使用分区
挂载完分区后,就可以在分区上创建文件,进行相应的操作了
du —disk usage:磁盘使用量
du -sh / :告诉我们这个目录下用掉了多少的空间
du -sh /etc/passwd :查看这个文件的具体大小
总步骤
添加磁盘–>对磁盘进行分区–>格式化分区–>设置挂载以及自动挂载–>使用