上一份工作结束了,时间也过去了2年半,刚入行我是什么都不懂的一个小白,今天来看我可能还是一个什么都不懂的小白,报着初心者的态度决定再读一遍鸟哥的私房菜,看看是否2年半过去了,自己有什么长进。
第0章计算机概论
这章内容如果大学有学过计算机课,应该都懂就不再赘述了。
第1章Linux是什么和如何学习
1.Linux是一种运行在常见于服务器运行的操作系统,因其比windows相比作为服务器系统有着很多优势,所以现在主流服务器都是Linux系统的。现在的学生在各种云服务器上也可以优惠价格租一台来玩玩,如果是新手的话很推荐尝试一下。
2.Linux历史,也蛮有趣的,学习一个东西的开端,一般会从他的创始人和历史讲起,我想应该是创始人发明的时候,一开始就为这些发明物赋予了自己色彩,所以一般要从历史讲起。
第2章主机规划与磁盘分区
1.第一台linux主机的选择,鸟哥书里推荐的是用虚拟机直接虚拟一台出来,2年前确实我也这么干过,我推荐可以用云主机,更方便,而且如果租一台其实省很多精力,自己电脑上虚拟一台也是可以的。
2.介绍了linux的核心思想之一,在linux系统中,每个设备都被当成一个文件来对待。
3.启动流程,有时候面试会问,这个应该后续还有流程
1.BIOS:开机主动执行的韧体,会认识第一个可开机的装置;
2. MBR:第一个可开机装置的第一个扇区内的主要启动记录区块,内含开机管理程序;
3.开机管理程序(boot loader):一支可读取核心文件来执行的软件;
4.核心文件:开始启动操作系统
5.挂载硬盘,一般喜欢把大硬盘挂在data目录,操作尽量往这块写,对于大容量分区需要做好容量监控。
6.发行版,目前大部分使用的还是centos7,要注意不要用6或者其他版本,centos是有维护周期的,一开始选用合适的发行版,可以避免很多问题。
7.延申思考一下,如果我把主机划成一个个资源,把cpu,硬盘,内存等资源抽象化,我就能考虑服务不用部署在特定机器上,目前这个方向才是主流技术。
第3章安装centos7
1.照着文档装就行了,注意需要什么业务,怎么划分分区,说不定以后安装centos7会成为历史,告别手动安装时代。
第4章首次登录
1.以前跟着鸟哥教程还安装过centos7带图形的界面,我建议有window基础的跳过图形版,直接敲命令。如果不熟悉windows的,可以跟着装一下。
2.tab键操作,tab懒人救星,再也不用记完一个命令的名字,也不用管目录里有啥分区,tab一下都能找到。
3.ctrl+c 指令 停止按钮,如果程序卡主或者是不小心删错,或者执行错,ctrl+c救你一命。
4.man 指令 学好英文,你可以看介绍和帮助,包括怎么用,英文不好,那只能看天书了。
5.nano 感觉是没啥机会用到,现在一般用vim
6.shutdown -h关机指令 rebooot重启指令,服务器不要瞎关机和重启,不是windows关机重启解决90%问题,如果在生产环境操作,一定要请示后再执行。
第5章文件权限和目录配置
1.本章内容非常重要,建议彻底搞懂,本人才疏学浅,不多讲解了,搞不懂会踩无数个坑。建议不懂的同学,仔细百度学习下。
第6章 Linux文件与目录管理
1.相对路径和绝对路径,需要区别清楚。脚本里最好还是写绝对路径,避免出现错误,操作的时候可以哪个方便用哪个
cd .. #返回上个目录,这个就是用相对路径#
2.常用的4个目录相关指令
cd:变换目录
pwd:显示当前目录
mkdir:建立一个新的目录
rmdir:删除一个空的目录
3.$PATH 环境变量,也是一个很重要的概念,可以在这章先理解。
4.ls -l /ll 指令 大部分情况最常用的指令,显示当前目录下所有文件
5.cp 指令 复制指令,使用的时候要特别注意权限相关,不然可能复制了也无法使用。
6.rm 指令 删除指令,删除特别要注意,不要被人忽悠了rm -rf /*,删除之前要仔细思考,以及检查指令,文件数目少,建议不要加上-f强制删除,小心操作,驶得万年船。
7.mv 指令 移动或者重命名,感觉比复制指令用的多,很方便的指令。
8.cat 指令 查看文件内容,短文件的时候用的比较多。
9.head 和tail 两个指令 分别看文件头和尾巴,tail -f 可以实时查看尾部日志,用的比较多。
10.touch 指令 创建新文件,偶尔用到,
11.文件默认权限 umask ,可以查看创建的文件的默认权限,以数字表示,与实际权限是取反的,实际要777减去后三位才能得知。
12.find 指令 查找文件,我比较喜欢用find,缺点就是时间可能比较长点。
find / -name "你想要搜的内容"
第7章 Linux磁盘与文件系统管理
1.一般在初始化机器后挂载磁盘会用到,先将磁盘格式化,之后挂载到机器上,再写入开机自动挂载。挂载也有分大于2t和小于2t操作是不一样的。
parted /dev/vda1 print
[root@VM-4-3-centos ~]# parted /dev/vda1 print
Model: Virtio Block Device (virtblk)
Disk /dev/vda1: 42.9GB
Sector size (logical/physical): 512B/512B
Partition Table: loop
Disk Flags:
Number Start End Size File system 标志
1 0.00B 42.9GB 42.9GB ext4
列出磁盘的分区表类型与分区信息,可以看看是什么分区表的。我的云主机用的是loop分区。
下列分区以/dev/sdb 和 /data1 举例,适用于MBR 分区表,小于2t时操作,实际情况可以自行按需要更改
fdisk -l #查看服务器已挂在的磁盘
fdisk /dev/sdb
m 帮助
n 添加新的分区
p 创建单个分区
起始位置:1 (默认回车)
终止位置:... (默认回车)
w 保存退出
检查:
fdisk -l
分区格式化:#这里用的是xfs 格式
#centos7.0开始默认文件系统是xfs,centos6是ext4,centos5是ext3。#
mkfs.xfs /dev/sdb1
挂载:
mkdir -p /data1
mount /dev/sdb1 /data1
检查:
df -ihT #检查磁盘挂载目录情况。
df -lh #检查磁盘大小。
vim /etc/rc.d/rc.local
写入
mount /dev/sdb1 /data1
添加开机自动挂载
# /etc/fstab比较敏感,如果错误了无法远程服务器,
#尽量还是写在/etc/rc.d/rc.local
大于2t的磁盘需要把分区设置成为gpt模式,再进行挂载,命令会有所区别。
2.inode 也是和磁盘息息相关的一个概念,很多面试或者题目中会有提到。
inode记录的信息
- 该文件的存取模式(read/write/excute);
- 该文件的拥有者与群组
- 该文件的容量
- 该文件建立或状态改变的时间(ctime)
- 最近修改的时间(mtime)
- 定义文件特性的旗标(flag),如 SetUID…
- 该文件真正内容的指向 (pointer)
inode 特色 - 每个inode 大小均固定为 128 bytes (新的ext4 与xfs 可设定到256 bytes);
- 每个文件都仅会占用一个 inode 而已;
- 承上,因此文件系统能够建立的文件数量与inode 的数量有关;
- 系统读取文件时需要先找到 inode,并分析 inode 所记录的权限与用户是否符合,若符合才能够开始实际读取block 的内容。
3.df命令和du命令 一般结合使用可以看出文件占用情况
- df:列出文件系统的整体磁盘使用量;常跟-h参数
- du:评估文件系统的磁盘使用量(常用在推估目录所占容量)常跟-sh参数
4.1 ln -s 被链接文件 链接文件 类似windows快捷方式,符号链接也被称为软链接,原链接文件被删除后,该符号链接会不可用
4.2 ln 被链接文件 链接文件 硬链接,删除单个另一个不会受到影响,其实是链接到同一个inode号码。可以同步文件修改。
5.swap交换分区,把硬盘上切一块当作临时内存,对这个应该有专门监控,如果使用到交换分区了,说明系统内存不足了,如果该使用达到满,系统可能会因为内存不够,而开始自杀程序,会十分危险。
面试也常问到。
需要休眠的话,建议2倍内存大小,不需要的话跟内存一样大就行。
第8章 文件与文件系统的压缩
1.基本记住tar的用法就行了
解压 tar -zxvf 文件名.tar.gz
压缩 tar -zcvf 文件名.tar.gz 目标名
tar -zcvf xxx.tar.gz 要打包的目录 --exclude=dir1 --exclude=file–exclude=file 不需要某些文件。