昨日内容回顾
1.解析映射文件DNS
/etc/hosts
2.磁盘挂载文件
/etc/fatab
3.设置开机自启动脚本的步骤
1 修改/etc/rc.local
2 设置可执行权限
chmod +x /etc/rc.d/rc.local
4.系统启动级别
0 关机
1 单用户
2 多用户无网络
3 完全多用户(有网络)
4 待定
5 桌面模式
6 重启
5.变量加载文件
/etc/profile
/etc/profole.d
/etc/bashrc
~/.bashrc
~/.bash_profile
6.添加环境变量的格式
export 变量名=路径
7.登录提示文件
/etc/motd 登录成功后
/etc/issue 登录之前
8.修改root用户密码
1 重启
2 在启动选择系统页面 按e进入
3 找到Linux16开头行 删除ro 并在ro位置添加 rw init=/sysroot/bin/sh
4 执行 CTRL + x
5 执行 chroot /sysroot
6 执行 passwd root
7 执行 touch /.autorelabel
8 重启系统
今日内容概要
- 文件类型概念说明
- 软硬链接说明
- 存储数据相关 -inode 和 block
- 用户和用户组
内容详细
文件类型概念说明
# 1.文件详细信息
ll -i 获取文件详细编号信息
134319695 -rw-------. 1 root root 1689 Dec 9 15:11 anaconda-ks.cfg
134319695 Linux系统编号(唯一)
- 文件类型
rw------- Linux权限
1 硬链接数量
root 所有者
root 所属的组
1689 文件大小
Dec 9 15:11 文件修改时间
anaconda-ks.cfg 文件名
# 2.inode编号
Linux系统中文件的唯一编号,就相当于身份证号
'''
对于Linux系统来说,文件名只是inode号码便于识别的别称或者绰号。
表面上,用户通过文件名,打开文件。
实际上,系统内部这个过程分成三步:
首先,系统找到这个文件名对应的inode号码
其次,通过inode号码,获取inode信息
最后,根据inode信息,找到文件数据所在的block,读出数据
'''
# 3.硬链接与软连接
1.硬链接
硬链接直接指向index node编号
相当于文件的入口
'''
一般情况下,文件名和inode号码是一一对应关系,每个inode号码对应一个文件名。
但是,Unix/Linux系统允许,多个文件名指向同一个inode号码。
这意味着
可以用不同的文件名访问同样的内容
对文件内容进行修改,会影响到所有文件名
但是,删除一个文件名,不影响另一个文件名的访问
这种情况就被称为 硬链接
'''
2.软连接
相当于Windows中的快捷方式
主要用来指向对应文件的路径
'''
文件A和文件B的inode号码不一样,文件A的内容是文件B的路径
读取文件A时,系统会自动将访问者导向文件B
因此,无论打开哪一个文件 最终 读取的都是文件B
这时,文件A就称为文件B的 软链接(softlink)或者 符号链接(symbolic link)
'''
3.创建命令
创建硬链接:(硬链接只能对文件创建 不支持文件夹或目录)
ln + 源文件 + 目标文件
创建软链接:
ln -s + 源文件或目录 + 目标文件或目录
"""
软链接与硬链接最大的不同:
文件A和文件B的inode号码不一样,文件A的内容是文件B的路径
文件A指向文件B的文件名,而不是文件B的inode号码
文件B的inode'链接数'不会因此发生变化
"""
# 4.Linux系统删除文件的底层逻辑
1.删除的是硬链接
2.执行删除操作时 会先判断该文件硬链接数是否为 0
3.如果硬链接数为 0 则在磁盘中删除文件(夹)
4.如果硬链接数不为 0 则只删除一个硬链接(硬链接数同步减1)
文件类型详述
# 类型
普通文件 f(-)
文件夹 d
链接文件 l
设备文件 b c
b 磁盘文件
c 字符文件
套接字文件(socket) s
管道文件 p
'''不能以颜色判断文件类型'''
文件属性 |
文件类型 |
- |
常规文件,即file |
d |
目录文件 |
b |
block device 即块设备文件,如硬盘;支持以block为单位进行随机访问 |
c |
character device 即字符设备文件,如键盘支持以character为单位进行线性访问 |
l |
symbolic link 即符号链接文件,又称软链接文件 |
p |
pipe 即命名管道文件 |
s |
socket 即套接字文件,用于实现两个进程进行通信 |
用户与用户组
# 用户
相当于账号 root test
# 用户组
一些具有相同属性的账号的集合
# 创建用户命令:
useradd + 用户名
adduser + 用户名
参数:
-g 指定用户组(用户必须存在)
-r 创建系统用户
-M 不创建家目录
-u 指定创建用户的id
-s 指定解析器
系统用户:uid在 0 - 999 之间的用户,我们就看作系统用户
一般用在启动应用程序上,一般不需要登录系统
普通用户:uid在 1000及以上的用户,我们就看作普通用户
一般用在登录上
'''
添加用户时 出现错误:Creating mailbox file:
是因为linux下添加用户后 会在系统里自动加一个邮箱(系统邮箱)
路径是:/var/spool/mail/用户名
执行 userdel 用户名 其实并没有删除该路径 所以无法创建同一用户名新用户
可以执行 rm -rf /var/spool/mail/用户名 后再重新创建
当然 建议删除用户时使用递归删除
userdel -r 用户名
这样就不会删除不干净了
'''
# 创建用户组
groupadd
参数:
-g 指定用户组的ID
# 切换用户
su 用户名 (是不改变当前变量)
su - 用户名 (是改变为切换到用户的变量)
su只能获得新用户的执行权限,不能获得环境变量
而su -是切换到新用户并获得新用户的环境变量及执行权限
# 查看用户的ID或组的ID
id [用户名]
# 查看用户详情的文件
cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
root 用户名
x 密码占位符
0 userid
o 组id
root 用户简介
/root 家目录
/bin/bash 默认的解析器
# 不使用useradd创建用户
1.vim /etc/passwd
li:x:1000:1000::/home/li:/bin/bash
2.vim /etc/group
li:x:1000:
3.cp -r /etc/skel/ /home/li
4.chown -R li:li /home/li
5./etc/shadow 要密码就改
echo stu4:x:504:504::/home/stu4:/bin/bash >>/etc/passwd
cp -r /etc/skel /home/stu4
echo stu4:x:504: >>/etc/group
ll /home/ 确定下 home目录下是否存在用户路径
chown -R stu4:stu4 /home/stu4