鸟哥Linux基础学习

16 阅读7分钟

鸟哥Linux基础.png

一、初步介绍

零基础学运维,从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文件权限的概念

要了解文件的权限就先要知道文件的属性。

image.png

通过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也就是全部身份。那如何实现

chmodu,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 目录与文件之权限意义
元件内容叠代物件rwx
文件详细数据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 端浏览,以得到运算后的网页结果呢!

Linux目录配置

image.png