linux系统学习
学习架构图如下 ----->传送门
一、说明
本篇文章,我将结合自己的实践以及简介,来对linux系统做一个直观清晰的介绍,使得哪些刚接触Linux的小伙伴可以快速入门,也方便自己以后进行复习查阅。
二、基本知识整理
1.Linux文件系统架构
1).文件或目录起始于"/"根目录,并且以树装结构呈现
2).最顶层以"/"开始
3).linux文件系统的文件或者目录名严格区分大小写,并且以/分隔开
4).".."表示上层目录
5)."."表示当前目录
6).隐藏目录或者文件名称都以"."开头
7).#代表当前登陆用户为root用户
8).$代表当前登陆用户为普通用户
2.Linux重要文件目录说明
1)./ 所有其他目录的最顶级根目录
2)./home 系统用户的家目录,每个用户在该文件夹下有一个与登录名同名的目录作为该用户的家目录,但是root用户的家目录就在根目录下。
3)./root root用户的家目录
4)./boot 系统内核和开机必须文件所在目录
5)./etc 系统配置文件所在目录
6)./dev 系统所有设备文件所在的目录
7)./usr(unix system resource) 保存程序的相关文件
8)./tmp 临时文件所在的目录
9)./var 主要放置系统执行过程中经常变化的文件,例如缓存(cache)或者是随时更改的登录文件(log file)
10)./opt 用于存储第三方软件的目录,不过我们还是习惯放在/usr/local下
11)./bin、/usr/bin 常用的可执行指令文件目录
12)./sbin root用户才有权限执行的指令
13)./lib、/usr/lib、/usr/local/lib 系统可复用类库目录
14)./mnt、/media 外部设备的mountpoint,当检测到设备接入时会自动产生挂载点
15)./lost+found 每个分区都会创建一个该目录,用户系统异常时恢复丢失的东西
16)./proc 系统进程以及网络状态信息目录,在内存中
3.Linux目录和文件的命名规则
1).长度不能超过255个字符
2).严格区分大小写
3).除了"/"以外,所有可用字符都合法
首字符避免使用"+"、"-"、"."等字符
避免使用空格、制表符、"@"、"#"、"$"、"%"、"["、"]"、"("、")"等字符
4).最好使用有意义的名称来命名
4.相对路径和绝对路径
1).绝对路径以"/"开头,从根目录开始
2).相对路径以当前路径开始,一般比较短
5.Linux安全性模型
1).linux使用User和Group控制使用者对文件的存取权
2).用户使用账号和口令登陆linux
3).每个文件都有Owner,且owner属于某个Group
4).每个资源都有owner和group
6.Linux用户概述
1).每个用户都有一个唯一的UserID
2).User的信息存储在/etc/passwd文件中
(1).存储用户名和home目录等信息
(2)./etc/shadow文件来保存每个用户的密码信息
3).每个用户都有一个专属自己的home目录
4).user未经授权将禁止读写或执行其他User的文件
5).root用户
(1).是超级管理员账号、具有至高无上的权限
(2).一般不要随便用root登录并操作系统
7.Linux用户群组概述
1).每个用户都属于一个group,具有唯一的标识符gid
2).Group信息
(1)./etc/group存储gid、成员等信息
(2)./etc/gshadow存储群组的密码信息
3).系统会为每个user关联一个和user同名的group
(1).每个user至少存在于自己同名的group中
(2).user也可以加入其他group中
4).在同一个group中的成员可以共享其他成员的文件
8.Linux权限种类
1).只读权限,用r表示(read)
2).可写权限,用w表示(write)
3).可执行权限,用x表示(execute)
(1).可以执行可执行文件
(2).可以使用cd命令进入目录
4).没有任何权限用"-"表示
9.Linux文件和目录权限解读
ls -l命令将看到以下格式:
[d|-] [r|-w|-x|-] [r|-w|-x|-] [r|-w|-x|-]
d代表是目录,-代表是文件
后面三个分别代表所属用户、组、用户和组以外的角色拥有的权限
比如:d rwx-w---- 代表
1.是目录
2.owner权限为可读可写可执行
3.group的权限为可写
4.others没有任何权限
- rwxrwxr-x 代表
1.文件
2.owner权限为可读可写可执行
3.group的权限为可读可写可执行
4.others的权限为可读可执行
10.linux系统权限验证流程
解读:1.首先判断是否为Root用户
2.是root用户则直接允许操作
3.非root用户判断文件的uid和当前用户的uid是否一致
4.uid一致则根据文件的owner权限进行判断是否可以对该文件进行操作
5.uid不一致,则判断文件的gid和是否包含在当前用户的gid中
6.包含则根据文件的group的权限进行判断是否可以对该文件进行操作
7.不包含则根据文件的others的权限进行判断是否可以对该文件进行操作
11.设置Linux文件和目录的权限
1).字符表示法: chmod [-R] mode file_or_directory
-R 递归改变权限
mode模式类别
例:chmod u+r owner增加读权限
chmod a= 所有角色取消所有权限
chmod -R a=rwx 递归给目录及目录下所有子目录和文件增加读写执行权限
2.数字表示法
使用一组三位数字来表示,第一组代表owner的权限;第二组代表group的权限;第三组代表others的权限.
权限数字 r:4 w:2 x:1 -:0
例:rwx = 4+2+1=7
r-x = 4+0+1=5
12.用户的主要群组和次要群组
1).主要群组:
每个文件必须有一个组所有者,因此必须有一个与每个用户相关的默认群组,这个默认群组成为新建文件的组所有者,被称为用户的主要群组。
用户的主要群组中在/etc/passwd文件中的第四个字段定义.
2).次要群组:除了主要群组,用户也可以根据需要在隶属于其他群组,这写组被称为次要群组,在/etc/group文件中的第四个字段中定义
3).使用groups命令可以查看当前用户的所有群组,第一个为主要群组,后面的N个为次要群组
13.用户的管理
1).useradd [-u UID] [-g 主要群组] [-G 次要群组] [-m|M] [-c 说明] [-d 家目录位置] [-s shell]
1.-u 指定一个UID给该账号
2.-g 指定一个主要群组名称,会修改/etc/passwd文件
3.-G 指定一个次要群组名称,会修改/etc/group文件
4.-m 强制建立用户家目录,一般账号默认
5.-M 强制不要建立用户家目录,系统账号默认
6.-c /etc/passwd文件中的第五个字段,账号简述
7.-d 指定用户家目录位置,不要使用默认的值
8.-s 指定默认的shell,如果没有指定则默认是/bin/bash
2).usermod [-cdegGlsuLU] username
1.-c修改该账号的说明文字
2.-d修改账号的家目录
3.-e指定用户账号禁用日期,格式YY-MM-DD
4.-G修改次要群组的名称,会修改/etc/group文件
5.-g修改主要群组名称
6.-a与-G合用,可增加次要群组
7.-l将当前账号的名称重命名为指定名称
8.-u修改UID
9.-L暂时将用户的密码冻结无法登陆
10.-U解冻账号,其实就是删除/etc/shadow的!字符
3).userdel [-r] username
-r连同用户的家目录一起删除
4).passwd 修改用户密码
14.用户信息的检查
1.finger [-s] username 查阅用户相关的信息
-s仅仅列出用户的账号、全名、登录时间等
2.id 可以查阅当前登陆用户关联的UID、GID信息
3.whoami|who|w 查看当前登录用户名
4.users 查看登陆系统的所有用户
5.groups查看当前登录用户的组信息
15.默认权限的控制
1.内核级别,新建文件的默认权限是666
2.内核级别,新建目录的默认权限是777
3.还要通过umask来阻止一些权限,从而产生最终的权限
4.非管理员账号的umask为0002,root账号的umask为0022
5.umask的作用原理
1.原理说明
2.做减法是错误的,实际结果应该是644
16.群组管理
1).groupadd [-g gid] [-r] 组名
-g 后面接特定GID,用来指定GID
-r 建立系统群组,系统群组小于500,普通群组大于500
2).groupmod [-g gid] [-n group_name] 群组名
3).groupdel [groupName] 删除特定的群组
17.文件的压缩和打包
1).文件压缩
1.通过压缩算法将文件的体积缩小,同时将多个文件合并至一起,方便交换、传输
2.Linux支持的压缩格式
1.*.Z compress程序压缩文件
2.*.gz gzip程序压缩文件
3.*.bz2 bzip2程序压缩文件
4.*.tar tar程序打包文件,并未压缩
5.*.tar.gz tar程序打包后使用gzip压缩
6.*.tar.bz2 tar程序打包后使用bzip2压缩
3.gzip [-cdtv#] fileName 压缩指定文件
拓展名为*.gz
-c将压缩的数据输出到屏幕上
-d解压缩
-t进行文件一致性校验看是否损坏
-v显示和原文件相比的压缩比
-#压缩等级,-1最快,-9最慢,默认是-6
4.bzip2 [-cdkzv#] filename 压缩指定文件
扩展名为*.bz2
-c将解压的数据输出到屏幕上
-d解压缩参数,该参数代表执行解压缩操作
-k保留原文件进行压缩
-z压缩参数,该参数代表执行压缩操作
-v显示和原文件对比的压缩比
-#压缩等级,-1最快,-9最慢,默认是-6
2.文件打包
1.将多个文件或者整个目录合并成一个文件,用来进行文件的备份、分发、传输
2.tar 命令打包文件
1.将某个文件或者目录打包并使用bzip2压缩成一个文件
tar [-jcv] -f filename.tar.bz2 待压缩的档案或者目录名
2.将压缩文件解压至特定的目录
tar [-jxv] -f filename.tar.bz2 -C 解压缩到的目录
3.参数解释
1.-c 建立打包档案
2.-t 查看打包的文件都有哪些文件名
3.-x 解压缩或者解打包文件,和-C搭配适用解压缩到指定目录
4.-j 通过bz2支持进行压缩或者解压缩
5.-z 使用gzip进行压缩或者解压缩
6.-v 将正在处理的文件名显示出来
7.-f 紧跟要被处理的文件名,建议单独写一个选项
三、Linux基本操作及命令概述
1.cd:切换目录
1).cd .. 切换到上级目录
2).cd ~ 切换到用户家目录
3).cd - 切换到上个路径
2.pwd:查看当前所在路径
3.cp:复制文件和目录
1).cp [options] file destination 复制文件到指定位置
2).cp [options] file file2... destination 复制多个文件到指定位置
3).cp -r dir1 destination_dir 递归复制目录到指定位置
4.mv:移动和重命名文件和目录
1).移动操作类似于cp
5.rm:删除文件或目录
rm [options] filenmes|directory ...
-i 交互式
-r 递归删除
-f foce强制删除
6.touch filename 新建文件
7.mkdir directoryName 新建目录
8.file:确定文件的格式
file[options] filenames 打开文件前确定格式
9.查看文本文件
1).cat [options] filenames
2).less [options] [filename]
pageup/pagedown向上向下翻页
g 到文件顶端
G 到文件底端
q 退出
/ keywords 根据关键字搜索
n:查找下一个
N:查找上一个