鸟哥的linux私房菜一书
第一章 计算机概论计算机的容量单位速度单位CPU的指令周期使用MHz或者GHz为单位,Hz就是秒分之一。网络传输使用的bit为单位,Mbps-Mbitsper second-就是每秒多少Mbitcpu是中央处理器,有控制器和运算器组成。整个计算机系统中的重要组成部分。主频:cpu运算时的工作频率(1秒内发生的同步脉冲数),单位Hz外频:系统总线的工作频率,cpu与外部(主板芯片组)交换数据、指令的
第0章 计算机概论
- 计算机的容量单位
- 速度单位
CPU的指令周期使用MHz或者GHz为单位,Hz就是秒分之一。网络传输使用的bit为单位,Mbps-Mbits per second-就是每秒多少Mbit
cpu是中央处理器,有控制器和运算器组成。整个计算机系统中的重要组成部分。
主频:cpu运算时的工作频率(1秒内发生的同步脉冲数),单位Hz
外频:系统总线的工作频率,cpu与外部(主板芯片组)交换数据、指令的工作时钟频率
倍频:是cpu外频与主频相差的倍数。
关系:主频=外频x倍频
高速缓存:高速交换的存储器。一级缓存(L1)、二级、三级缓存
第一章linux
- linux是什么
linux是开源的具有可移植性的操作系统。
支持多用户、多任务、多线程、多cpu的操作系统、支持多种硬件平台 - 基本思想
第一:linux系统里面一切都是文件(包括命令,硬件,软件设备,操作系统,进程等),第二:每个文件都有确定的用途
Linux下一切皆文件的解释以及利弊
第二章 主机规划与磁盘分区
- 目录树结构
整个目录树架构最重要的就是根目录 / 表示
2. 文件系统与目录树的关系(挂载)
含义:挂载就是利用一个目录当成进入点,将磁盘分区槽的数据放置在该目录下。进入该目录就可以读取该分区槽的数据。 这个进入点目录称为挂载点。
linux的根目录必须要挂载在某个分区槽下。其他目录根据用户需求挂载到不同的分区槽下。
第五章 Linux文件权限与目录配置
- List item
第一个字符表示这个东西是文件、目录还是链接文件等
d 就是目录
- 就是文件
l 就是连接文档(类似windows下面的快捷方式)
b 表示文件里面是可供存储的接口设备(区块设备文档,就是一些存储数据)
c 表示为装置文件里面的串行端口设备 ,键盘 鼠标等
-
linux文件权限的重要性
a、系统保护功能(无论文件权限如何,root都可以进行操作)
b、团队开发软件或者数据共享的功能 -
改变文件属性和权限
命令:
chgrp :改变文件所属群组 格式:chgrp [-r] filename/dirname
chown:改变文件拥有者 格式:chown[-r] user filename
chown [-r] user:group filename
chmod :改变文件的权限
r:4 w:2 x:1
格式:chmod 数字 filename
格式: chmod u[g],[o],[a] +、-、= r[w],[x]
a就是all 所有人,比如牛知道test这个文件的权限 ,但是想让所有人都可以执行该文件,命令为:chmod a+x test
=的用法:test文件的所有者可读写执行 所有群组只可以读 其他人没有任何权限,命令为:chmod u=rwx, g=r test
总结
useradd | 增加用户:eg:useradd test |
---|---|
userdel | 删除用户 :eg:userdel test |
usermod | 修改用户信息 最常用的是修改用户的用户组 usermod -G groupname username |
– | – |
groupdel | 删除群组 groupdel groupname |
groumod | 修改群组信息 最常用的是修改群组名称 groupmod -n newgroupname oldgroupname |
– | – |
-
文件权限对于文件和目录的不同意义
一句话概括就是:文件的rwx是针对文件内容来的,目录的rwx是针对目录里面的文件而言,比如:目录的r 表示可以读取该目录下面的文件名,w表示可以修改该目录下面的文件名,x 表示可以进入该目录 -
linux的FHS(Filesysytem Hierarchy Standard)标准(简单概括)
作用:规范每个目录下应该放置什么样的数据。
主要有四种交互形态:
FHS:主要定义出了一下三层目录架构
/(root,根目录):与开机系统有关
/usr:与软件安装/执行有关
/var:与系统运作过程有关
- 根目录的意义和内容
所有的目录由根目录衍生出来,又是开机/还原/系统修复等动作有关
因此:根目录所在的分区槽,应该越小越好,程序安装的软件路径也不能在根目录的分区槽内
通常有以下目录:
第六章 linux文件与目录管理
-
cp命令详解
cp -s 建立连接
cp -u 比较两个文件是否有差异,(也可以比较两个文件 的新旧)
cp -u test2 ./test/test3 如果test2比test3里面的文件内容多就覆盖test3 -------这个命令常用来备份
复制连接文档,直接cp 是复制的源文件, cp -d filename 才是复制 的连接文档
复制多个文件的命令: cp filename1 filename2 ./dirname -
查看文件内容
cat -b(-n) filename 也可以查看文件内容加行号
查看help可以知道,-b 空白行不标行号 -n 显示全部行号
- more less命令
在这里插入图片描述
- 文档截取内容 head tail
head就是显示前面几行 默认十行,格式:head -n number
filename (n就是行数)
eg:head -n 20 filename 就是显示前面20行
如果只留最后几行不打印,前面的都打印,格式:head -n -number filename
eg:留最后100行不打印,前面的都打印, head -n -100 filename
tail命令就是相反的 比如:tail -n 20 filename 就是打印这个文件的最后20行
那一个文件有200行,只打印最后100行,格式:tail -n +100 filename
- umask 文件预设权限
umask 查看文件预设权限,默认是0022,数字的含义是拿掉数字对应的权限,022的意思就是拿掉组和其他所有者的w权限。在此文件预设权限下,创建文件所有者和组是没有执行权限的,因为文件是记录数据,创建目录的权限就是,drwxr-xr-x - linux下的三种时间
而在Linux下,一个文件也有三种时间,分别是:访问时间(Access time)、修改时间(Modify time)、状态时间(Change time)
那么可以知道,在linux中是文件是没有创建时间的,只是如果刚刚创建一个文件,毋庸置疑它的三个时间是都等于创建时间的,就像刚才创建的test文件,我们看到它的三个时间是相等的。那么在linux上这三个时间分别代表着什么,随着什么而改变:
修改时间:文件的内容被最后一次修改的时间,我们经常用的ls -l命令显示出来的文件时间就是这个时间,当用vim对文件进行编辑之后保存,它的mtime就会相应的改变;
访问时间:对文件进行一次读操作,它的访问时间就会改变。例如像:cat、more等操作,但是像之前的state还有ls命令对atime是不会有影响的;
状态时间:当文件的状态被改变的时候,状态时间就会随之改变,例如当使用chmod、chown等改变文件属性的操作是会改变文件的ctime的。
查看一个文件或者目录三种时间的当前时间命令 stat filename
- find 与时间相关的命令
数字0 表示一天之内更改时间的文件
- 文件特殊权限 SUID SGID SBIT
SUID:
其实就是其他所有者会暂时获取该文件所有的权限,仅仅是在执行程序的过程中
SUID对目录无效
GID:
SBIT
就是说
如果该目录有t这个权限,即便你用root把该目录下的文件设置为777的权限,其他人也不能够删除该目录下的任何文件,只能目录所有者或者root才能删
SBIT不能用在文件上
不管是SUID SGID SBIT都必须具备X权限,只不过SBIT多了w权限
- 如何设置SUID SGID SBIT 权限
设置SUID:chmod 4766 test
设置SGID:
文件:chmod 2676 test
目录:chmod 2676 dirname
设置SBIT权限:
chmod 1766 dirname
还有一种就是u+s g+s o+t 也可以设置权限
PATH环境变量的意义
指定执行文件的时候,指令搜寻的指令路径
umask的用处和优点
第七章linxu磁盘与文件系统管理
-
文件系统的运作
与操作系统的文件数据有关,操作系统除了文件的实际内容还有文件的属性等。文件系统就将这两部分的数据放在不同的区块中,权限和属性放在inode,文件的实际数据放在data block 区块中,还有一个超级区块记录文件系统的整体信息,包括inode block 的总量 使用量 剩余量等
-
索引式文件系统
因为一个文件占用一个inode,一个inode里面会记录该文件的block号码,所以找到该文件的inode就可以找到该文件的实际数据
这种文件存储方法就叫索引式文件系统 -
linux的Ext2文件系统
Ext2一开始就将所有的inode和block规划好了,除非格式化 否则就保持不变
为方便管理有多个区块群组,每个区块群组有各自的inode/block/superblock系统
- data block(资料区块)
用来放文件内容的地方。
Ext2 只支持三种类型的block ,1K 2K 4K,每个类型支持的最大磁盘容量和最大单一文件容量如下
这里的block 大小为1k 最大单一文件限制为16GB 不是说一个block里面支持最大单一文件限制为16GB 而是说使用1k block的EXT2文件系统支持的最大单一文件为16G,该文件系统里面的每个Block可以存放的最大文件是1k
5.inode table(inode表格)
6.挂载点的意义
7.目录与磁盘的容量
df:列出文件系统整体磁盘使用量
du:评估文件系统的磁盘使用量(也就是目录所占容量)
第七章没有认真看 以后回过头来看
第八章 文件与文件系统的打包 压缩备份
这一章也需要后面来阅读
第九章vim程序编辑器
vim三种模式的关系:
菜鸟教程中的:
- vim中的区块选择
- vim多文件编辑
可以使用一个vim 命令打开多个文件,eg:vim test.txt test_vim.txt
使用files查看开启的所有文件
- 多窗口功能
同一个文件(不同文件)在不同窗口打开
使用ctrl+w+箭头进行窗口切换
第十章 shell
- 为什么Linux使用bash
a、命令编修能力
指令记忆能力
b、命令与文件补全功能(tab键)
c、命令别名设置功能
eg:ailas lm=“ls -al”;
d、程序化脚本
- shell的变量功能
- 取用变量
echo取用变量,eg:echo $PATH 或者 echo ${PATH} - 设定变量
在bash中,没有设定变量的内容,直接echo $myname 显示为空,在其他shel中会显示错误信息
- 变量的设定规则
以=号连接变量与变量内容
=号两边不能有空格 eg; myname= tom; 或者myname= to m ;都是错的
变量名以英文字母和数字组成,不能以数字开头;
就是同时显示多个名字用\分割多个名字也可以用\分割
- bash的键盘输入指令 read
read -p 输入提示符 -t 输入等待时间
2. declare 宣告变量的类型
-
数组
定义:var[index]=content; var[1]=“tom”,var[2]=“jack” 显示:echo ${var[1]}
-
ulimit 限制用户使用某些资源
-
变量内容的取代,删除、替换
从最前面开始 删除:echo ${variable#/variable}
echo ${variable##/variable} 删除文字中最长的一个,比如路径
也就是从该路径前面的依次删除
从最后面开始删除:
echo ${variable%/variable} 删除文字中最短的一个,比如路径
echo ${variable%%/variable} 删除文字中最长的一个,比如路径
总结
6.变量的替换
如果该字符串不存在就是
如果为空字符串上面就不能替换,要替换就是
7.指令的执行顺序
8.覆盖字符> 追加字符>> 和< <<
个人理解< 就是cp
<< 可以指定在某个字符时结束输入
在end输入时,就结束该次用户输入
cat > catfile 是覆盖catfile中的内容,>>是将输入的字符追加到文件末尾
eg:对文件追加内容,输入end时结束输入
输入end时,end是不会记录在文件中的
9.指令回传值(
?
=
0
表示指令执行正确,
?=0表示指令执行正确,
?=0表示指令执行正确,?!=0表示指令执行错误) 与&& 或||
cmd1 && cmd2 若cmd1运行完毕且正确运行($?=0),则开始运行cmd2;
若cmd1运行完毕且为错误($?!=0),则cmd2不运行;
cmd1 || cmd2 若cmd1进行完毕且正确运行($?=0),则cmd2不运行;
若cmd1运行完毕且为错误($?!=0),则开始运行cmd2;
****与JAVA不同的是,或,为或条件时,如果前一个命令正确后一个命令就不执行,前一个命令错误后一个命令就执行****
**与还是一样的两者为真就为真,或不一样了,或就是前者为真后者就不执行,前者为假则执行后者**
还有分号 ; 在两个命令之间输入; 不考虑命令1的错误与否直接执行命令2
10.管线命令(|)
经过多个命令才能得到想要的内容就需要使用管线命令
用途:管
11.cut
截取:
12.wc
查看一个文件有多少行,多少字数。多少字符数
表示该文件有3行,共8个字,38个字符
十一章正规表示法和文件格式化处理
- grep命令
grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为 -,则 grep 指令会从标准输入设备读取数据
grep解释
在某个文件中查找某个内容:grep test filename
在某个文件夹中查找某个内容: grep -r ‘test’ /目录名
grep中的[] 搜寻集合字符
任意一个字符和通配符
任意一个字符是. 通配符是*(通配符表示从一到无穷)
eg:在文件中查找good:grep -n ‘g…d’ filename
大概看了一下正则,后面有时间再回来看
第十二章Shell scripts(程序化脚本)
- 加减乘除取余数 + - * / %
第一种:echo(var*var)
第二种:declar -i total=(var+var) echo$total - bc
bash仅支持整数的运算。小数的运算要加bc
echo “1.2*1.3” | bc - 条件判断式if then fi
if[];then fi
多重条件判断式
if[判断式];then elif[判断式];then else fi;
十六章进程管理和SElinux
更多推荐
所有评论(0)