一、系统启动过程

1、内核引导
当计算机通电后,首先进行BIOS自检,读取磁盘0扇区,执行MBR主引导代码,将控制权交给内核。当操作系统接管硬件后,会先读入/boot目录下的内核文件。
2、运行init
init是启动第一个用户进程,它是内核加载后的瞬间动作。init是系统初始化的执行者
3、系统初始化
系统初始化就是将内核变成可用系统的配置过程,init读取配置,执行脚本,启动服务,设置运行级别。在系统初始化后会产生可登录,有网络,带服务的操作系统环境。

所以init和系统初始化的关系就像是,init是一个执行者,而系统初始化是一个执行的过程。
4、用户登录
一般来说用户登录分为三种:命令行登录;ssh登录;图形界面登录。
二、Linux系统的目录结构

其中几个最重要的目录:
- /etc :系统配置核心
- /bin、/usr/bin :普通用户使用的基础指令区
- /sbin、/usr/sbin:root使用的指令区
- /var:系统运行时写入的数据均在这里
三、文件的权限
1、文件权限的概念
#显示文件权限的指令:
[root@iZ2vcgai63tgvyg5e57rohZ /]# ls -l
总用量 60
lrwxrwxrwx 1 root root 7 7月 3 2019 bin -> usr/bin
dr-xr-xr-x 5 root root 4096 11月 23 21:41 boot
drwxr-xr-x 19 root root 3000 12月 4 16:57 dev
drwxr-xr-x. 77 root root 4096 12月 5 10:18 etc
在linux中文件属性的第一个字符代表着不同含义:
- d:目录
- -:文件
- l:链接文档
- b:装置文件里面的可供存储的接口设备
- c:装置文件里面的串行端口设备(键盘,鼠标等)
接下来的字符三个为一组分别代表文件的所有者拥有的权限;文件所有者同组用户的拥有权限;其他用户拥有权限。
2、更改文件属性
(1)更改文件属组
chgrp -R 属组名 文件名 (-R的含义是:该文件夹下所有文件的属组都会跟着变)
修改前:
[chris@iZ2vcgai63tgvyg5e57rohZ ~]$ ls -l
drwxrwxr-x 2 chris chris 4096 12月 3 16:57 mysql
drwxrwxr-x 2 chris chris 4096 12月 5 17:18 test[chris@iZ2vcgai63tgvyg5e57rohZ ~]$ sudo chgrp -R root test
修改后:
[chris@iZ2vcgai63tgvyg5e57rohZ ~]$ ls -l
drwxrwxr-x 2 chris chris 4096 12月 3 16:57 mysql
drwxrwxr-x 2 chris root 4096 12月 5 17:18 test
(2)更改文件所有者
chown -R 所有者 文件名
chown -R 所有者:属组名 文件名(所有者和属组名一起变)
修改前:
[chris@iZ2vcgai63tgvyg5e57rohZ ~]$ ls -l
drwxrwxr-x 2 chris chris 4096 12月 3 16:57 mysql
drwxrwxr-x 2 chris root 4096 12月 5 17:18 test[chris@iZ2vcgai63tgvyg5e57rohZ ~]$ sudo chown root test
修改后:
[chris@iZ2vcgai63tgvyg5e57rohZ ~]$ ls -l
总用量 8
drwxrwxr-x 2 chris chris 4096 12月 3 16:57 mysql
drwxrwxr-x 2 root root 4096 12月 5 17:18 test
(3)更改文件的权限
方法一:chomd -R xyz 文件或目录(其中xyz代表三组rwx数值,其数值分别为2的次方)
如果将权限变为-rwxr-xr-- 那么xyz的值为:754
方法二:chomd u=rwx,g=rx,o=r 文件或目录
三、文件与目录管理
1、目录操作常用指令
ls (列出目录)
参数:
-a:全部文件包括隐藏文件
-d:仅列出目录本身
[chris@iZ2vcgai63tgvyg5e57rohZ ~]$ ls -d
.-l:包含文件属性与权限等数据
cd (切换目录)
cd ~ 回到家目录
cd .. 去上一级目录
pwd (显示目前所在的目录)
参数:
-P:显示出真实的路径而不是链接路径
mkdir -mp 目录名称 (创建目录/文件夹)
-m:后面可以直接配置文件的权限
mkdir -m 711 test2-p:可以创建多个目录(平级)
mkdir -p test1/test2/test3/test4
rmdir -p 目录名称 (删除空的目录)
-p:删除多个空目录
cp 参数 原文档 目标文档 (复制文档)
参数:
-a:相当于参数pdr合伙的作用
-d:若原文档为链接属性,则复制链接文档属性而非本身
-f:强制性
-i:目标文档已存在,则覆盖
-l:进行硬式链接而非复制文档本身
-p:连同文件属性一起复制
-r:用于目录复制
-s:复制成为符号链接
rm 参数 文件或目录 (移除文件或目录)
参数:
-f:强制
-i:删除前会询问
-r:递归删除
mv 参数 文件 目录 (移动文件)
参数:
-f:强制
-i:若文件已存在则询问
注意:
使用mv移动文件时需要配合cp指令;如果mv后面的对象是目录则代表修改目录名称
2、文件查看的常用指令
cat 参数 文件名 (由第一行开始显示文件内容)
参数:
-A:相当于-vET,可列出一些特殊字符而不是空白
-b:列出行号(非空白不标行号)
-E:将结尾的断行字节¥显示出来
-n:列出所有行行号(包括空白)
-T:将tab键以^I显示出来
-v:列出一些看不出来的特殊字符
tac 文件名 (文件内容从最后一行开始显示)
nl -bnw 文件名 (显示行号)
参数:
-b:-b位置有两种参数可选,表示行号的指定方式:
ba 无论是否为空白行均列出
bt 空白行不列出行号
-n:-n位置有三种参数可选,表示列出行号的方法
nln 行号在行号位置的最左边
nrn 行号在行号位置的最右边不加0
nrz 行号在行号位置的最右边且加0


more 文件名 (一页一页翻)

在浏览文件时可以配合一些按键:
- 空白键:向下翻一页
- enter键:向下翻一行
- /字符串:在显示的内容中向下搜索字符串
- :f:立刻显示文档名及目前显示的行数
- q: 立刻离开more
- b或者ctrl b:表示往回翻页,只对文件有用
less 文件名 (一页一页翻,可上下翻动,是more的增强版)
在浏览文件时可以配合一些按键:
- 空白键:向下翻一页
- [pagedown]:向下翻一页
- [pageup]:向上翻一页
- /字符串:向下搜索
- ?字符串:向上搜索
- n:重复前一个搜索
- N:反向的重复前一个搜索
- q:离开
head -n number 文件名 (取出文件前面几行)(number表示取几行的数字)
tail -n number 文件名 (取出文件后面几行)(number表示取几行的数字)
四、用户与用户组的管理
1、用户账号的管理
(1)添加账号
useradd 参数 用户名
参数:
- -c comment:指定一段注释性描述
- -d 目录:指定用户主目录,若目录不存在可用-m创建主目录
- -g 用户组:指定用户所属用户组
- -G 用户组: 用户组指定用户所属的附加组
- -s shell文件:指定用户的登录shell
- -u 用户号:指定用户的用户号
(增加用户账号就是在/etc/passwd文件中为新用户增加一条记录,同时更新其他的系统文件,并且创建家目录,设置权限所有权,复制骨架文件:从/etc/skel/复制.bashrc等配置文件,自动分配唯一的id)
(2)删除账号
userdel 选项 用户名
参数:
-r:把用户的主目录一起删除
(3)修改账号
usermod 选项 用户名
参数:
- -c:注释/描述信息 例:sudo usermod -c "李四 - 运维工程师" lisi
- -s:默认shell
- -d:新家目录路径 例:-d /home/newhome
- -m:移动家目录内容 例:usermod -d /home/zhangsan_new -m zhangsan(将 home/zhangsan移动到home/zhangsan_new)
- -g:修改主组
- -G:修改附加组(会覆盖原有的附加组,一般使用-aG用来追加附加组)
- -L:锁定账户
- -U:解锁账户
- -e:设置账户过期日期 例:sudo usermod -e 2024-12-31 zhangsan(到期后无法登 录,但文件和进程还存在)
- -u:修改uid
- -l:修改登录名(仅仅是重命名,家目录uid均不会变)
(4)用户口令(也就是密码设置)
passwd 选项 用户名
选项:
- -l:锁定口令,禁用账号
- -u:口令解锁
- -d:使账号无口令
- -f:强迫用户下次登陆时修改口令
2、用户组管理
(1)增加用户组
groupadd 选项 用户组名
选项:
- -g GID:指定新用户组的组标识号
- -o:一般与-g共同使用(一般情况下GID是唯一的,但-o参数表示可重复使用GID)
(3)删除用户组
groupdel 用户组名
(4)修改用户组
groupmod 选项 用户组
选项:
- -g GID:修改GID值
- -o:与-g同时使用
- -n 新用户组:将用户组重命名
(5)切换用户组
newgrp 用户组名(一个用户属于多个用户组,切换的前提是该用户属于这个组)
3、与用户账号有关的系统文件
- /etc/passwd :系统为每个用户都在该文件里创建一个对应的记录行,记录用户的一些基本信 息。

- /etc/shadow :记录行与passwd文件一一对应只用超级用户才有权限(由于linux系统为了提高安全性,所以将加密口令分离出来,放在shadow文件中)

登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
最后一次修改时间:为时间戳最小时间间隔:两次修改口令所需的最小天数
最大时间间隔:口令保持的最大天数
警告时间:系统开始警告用户到密码正是失效之间的天数
- /etc/group:用户组的所有信息均在这里

4、批量添加用户
- 先编辑一个文本用户文件

- 执行 newusers < user.txt 创建用户(成功后去passwd文件查看是否创建成功)

- 执行 pwunconv 取消shadow password功能
- 编辑密码对照本

- 执行chapasswd < passwd.txt 将密码批量写入passwd文件
- 执行 pwconv 将密码写入shadow中

注意txt文件中不要有空白行,否则会报错
五、磁盘管理
1、三个常用指令
(1)df(disk free):列出文件系统的整个磁盘使用量
df 参数 文件名
参数:
- -h:可读的方式显示输出结果
- -T:显示文件系统的类型
- -t 文件系统类型:只显示指定类型的文件系统
- -i:显示inode使用情况
- -H:显示会以1000字节作为基本单位而不是1024字节
- -k:会以KB作为单位显示
- -a:显示所有的文件系统(包括虚拟文件系统)


拓:Linux常见的文件系统
由于linux秉持一切皆文件的理念,所以有着多种文件系统:
- 磁盘文件系统

- 特殊/虚拟文件系统

- 网络文件系统

挂载点:其实就是一个目录,它像是一个对接接口(一个指示牌,本身不工作),通过它才能访问存储设备上的文件系统。(例:程序需要临时文件-->选择保存到某个目录-->若该目录为tmpfs的挂载点-->文件实际存在内存中-->程序用文件API操作-->看起来是文件,实际上是内存)
(2)du(disk used):检查磁盘空间使用量
du 参数 文件/目录
参数:
- -a:列出所有文件与目录的容量
- -h:以G/M形式显示
- -s:仅显示指定目录或文件总大小(不包括子目录)
- -S:在-s的基础上并显示子目录
- -k:以KBytes形式显示
- -m:以MBytes形式显示
注意:直接输入du会显示当前所在目录里的子目录所占的硬盘空间
(3)fdisk:linux磁盘分区表操作工具

2、磁盘格式化
mkfs -t 文件系统格式 装置文件名
-t:表示可以接文件系统格式(例ext等)
(例:mkfs -t ext3 /dev/hdc6 --------->表示将/dev/hdc6格式化为ext3)
3、磁盘检验
fsck [-t 文件系统] [参数] 装置名称 (用来检查和维护不一致的文件系统)
参数:
- -s:依序一个个执行fsck指令来检查
- -A:对/etc/fstab中所列出的分区进行检查
- -C:显示完整的检查进度
- -d:打印出e2fsck的调试结果
- -p:同时有-A条件时,同时有多个fsck检查一起执行
- -R:同时有-A条件时,省略/不检查
- -V:详细显示模式
- -a:检查出错误自动修复
- -r:检查出错误询问后修复
- -f:强制检查,会一项项显示过程
4、磁盘挂载与卸除
磁盘挂载:
mount [-t 文件系统] [-L label名] [-o 额外选项] [-n] 装置文件名 挂载点
例:将新创建的/dev/hdc6挂在到/mbt/hdc6上面:mount /dev/hdc6 /mnt/hdc6
磁盘卸载:
umount [-fn] 装置文件名/挂载点
参数:
-f:强制卸除(可用于类似网络文件系统无法读取的情况下)
-n:不升级/etc/mtab情况下卸载
Linux基础入门与系统管理






