一、初步介绍
零基础学运维,从Linux学起。鸟哥的Linux私房菜感觉不错,打算通过一个月~两个月左右的时间,将Linux基础学一遍。
鸟哥的Linux书的目录结构比较合适。同时也希望通过这种写博客的方式增加自己的学习效率,将学习过的费曼学习法实际运用一下,如果有刷到该文章的各位技术大佬给出指导。第一部分Linux安装的部分已经做过无数次了,所以我会直接略过从第二部分开始。
并且我个人认为我的总结能力不太行,写文档的能力也不行,但是想到今后工作一定会涉及到写技术文档呀,等等一些。刚开始学习的时候,可能只会去抄鸟哥的书。但是我会尽力做到学习完一章内容之后,自己再去写这个文档。同时我也会将上课学习的内容在创建一个专栏来课堂笔记。
二、Linux文件、目录与磁盘格式
2.1 Linux的文件权限与目录配置
Linux一般文件可存储的身份分为三个类别,分别是owner/group/other,三种身份分别read/write/execute等权限。为什么要设置三个身份呢,这跟Linux系统有关系,Linux是一个多任务多用户的系统,为了保护每个用户的隐私以及个人习惯。
(1)文件拥有者:为了考虑每个人的工作隐私以及个人的工作环境喜好,文件拥有者的身份就显得十分重要。
(2)群组:群组最有用的功能之一就是,团队开发资源的时候。同群组之间可以存取相应权限的内容,对非同组的人可以设置访问权限
(3)其他人:这个当然就是,既不是文件的使用者,也不是这个群组中的人,就是第三者咯。
具体该怎么理解这三个身份,我们还是借用鸟哥书中的例子,家庭概念。现在王大毛有一套房子,王大毛有两个兄弟,分别是王二毛,王三毛,其中他们三个分别有自己的卧室和一个公共的客厅,三个人可以互相进入对方的房间但是并不能动他们的房间的东西,这就是文件使用者,只有这个东西的主人可以用。
而客厅就是群组,在客厅他们可以随意干任何事情。如果其中王大毛将自己的游戏机拿到了客厅供大家使用,这就是文件使用者将文件的使用权限给群组分配。
如果这个时候来了个外人,除非王家的人与这个外人认识,才可能进入到王家,虽然进到了王家,但是也不可能随便动人家的东西除非被允许。
不过这里还有一个身份比较特殊,那就是root,他是最高权限的身份,它可以去到任何他想去的地方。
在Linux系统中所有的系统账号与一般使用者,root相关信息都记录在/etc/passwd
下面,个人密码则是记录在/etc/shadow
下面。Linux所有群组名称则记录在/etc/group下面。
2.2 Linux文件权限的概念
要了解文件的权限就先要知道文件的属性。
通过ls -al
我们可以看出,他分了好几栏,每个栏目代表的是什么呢?
1)-rw-r--r--
:文件类型权限(permission)
第一个字符代表这个文件是“目录、文件或链接文件等等”:
-
[ d ]则是目录,例如上表文件名为“.config”的那一行;
-
[ - ]则是文件,例如上表文件名为“initial-setup-ks.cfg”那一行;
-
[ l ]则表示为链接文件(link file);
-
[ b ]则表示为设备文件里面的可供储存的周边设备(可随机存取设备);
-
[ c ]则表示为设备文件里面的序列埠设备,例如键盘、鼠标(一次性读取设备)。
接下来的rwx
三个为一组
-
第一组为“文件拥有者可具备的权限”,该文件的拥有者 可以读写,但不可执行;(own)
-
第二组为“加入此群组之帐号的权限”;(group)
-
第三组为“非本人且没有加入本群组之其他帐号的权限”。(other)
2.2.1 如何改变文件的属性和权限
-
chgrp :改变文件所属群组
-
chown :改变文件拥有者
-
chmod :改变文件的权限, SUID, SGID, SBIT等等的特性
如何改变权限:chmod
- 数字
r:4 w:2 x:1
如果想设置-rwxr-xr--
,权限的数字分别是[4+2+1][4+0+1][4+0+0]=754 ,所以只需下达
chmod 754 filename
- 符号
(1)user,(2)gorup,(3)others三种身份,我们可以借助u,g,o来代表三种身份的权限,此外a代表all也就是全部身份。那如何实现
chmod | u,g,o | +,-,= | r,w,x | 文化或目录 |
---|
案例1:设置一个文件权限为-rwxr-xr-x
chmod u=rwx,go=rx
案例2:设置一个文件权限为-rwxr-xr--
chmod u=rwx,g=rx,o=r
案例3:设置一个文件权限为-rw-r-xr--
chmod u-x filename
2.2.2 目录与文件之权限意义
元件 | 内容 | 叠代物件 | r | w | x |
---|---|---|---|---|---|
文件 | 详细数据data | 文件数据夹 | 读文件内容 | 修改文件内容 | 执行文件内容 |
目录 | 文件名 | 可分类抽屉 | 读到文件名 | 修改文件名 | 进入该目录的权限 |
2.2.3 Linux文件种类与拓展名
文件种类
-
正规文件(regular file ):
-
纯文本文件(ASCII):这是Linux系统中最多的一种文件类型啰, 称为纯文本文件是因为内容为 我们人类可以直接读到的数据,例如数字、字母等等。
-
二进制档(binary):的Linux当中的可可执行文件 (scripts, 文字体批处理文件不算)就是这种格式。
-
数据格式文件(data):有些程序在运行的过程当中会读取某些特定格式的文件,那些特定格式 的文件可以被称为数据文件 (data file)。
-
-
目录(directory)
-
链接文件(link)
-
设备与设备文件(device):与系统周边及储存等相关的一些文件, 通常都集中在/dev这个目录之下!通常又分为两种:
-
区块(block)设备文件:存储数据,例如硬盘软盘
/dev/sda
,[b] -
字符(character)设备文件:亦即是一些序列埠的周边设备, 例如键盘、鼠标等等!这些设备的 特色就是“一次性读取”的,不能够截断输出。[c]
-
数据接口文件(sockets):这种类型的文件通常被用在网络上的数据承接了。我们可以启 动一个程序来监听用户端的要求,而用户端就可以通过这个socket来进行数据的沟通了。第一个属性为[s]
-
数据输送文档(FIFO,pipe):FIFO也是一种特殊的文件类型,他主要的目的在解决多个程序同时存取一个文件所造成的错误问题。 FIFO是first-in-first-out的缩写。第一个属性为[p]
-
文件扩展名
Linux实际上没有所谓的扩展名,文件能不能被执行主要是看文件的被设置的权限,但是是否能执行成功还是要看文件的内容。 下面有数种常用的扩展名:
*.sh
: 脚本或批处理文件 (scripts),因为批处理文件为使用shell写成的,所以扩展名就.sh
*Z, *.tar, *.tar.gz, *.zip, *.tgz
: 经过打包的压缩文件。这是因为压缩软件分别为gunzip, tar等等的,由于不同的压缩软件,而取其相关的扩展
*.html, *.php
:网页相关文件,分别代表HTML语法与PHP语法的网页文件啰! *.html
的文件可使用网页浏览器来直接打开,至于.php
的文件, 则可以通过client 端的浏览器来server 端浏览,以得到运算后的网页结果呢!