文章目录
1.进程三种状态
- 运行态 (Running) : 占有CPU,并在CPU上运行
- 就绪态 (Ready): 已经具备运行条件,但由于没有空闲CPU,而暂时不能运行
- 等待态 (Waiting/Blocked): 因等待某一事件而暂时不能运行:如等待读盘结果
2.交换分区
在内存小于2G的情况下,交换分区应为内存的2倍,超过2G的话,交换分区为物理内存加上2G
3.文件权限
⑴首先我们看一张图
444 -r--r--r--
600 -rw-------
644 -rw-r--r--
666 -rw-rw-rw-
700 -rwx------
744 -rwxr--r--
755 -rwxr-xr-x
777 -rwxrwxrwx
注:使用ll命令查看文件/文件夹属性时候,一共有10列,第一个小格表示是文件夹或者连接等等
d表示文件夹,l表示连接文件,-表示文件
⑵用户分组权限
从左至右:
1-3位数字代表文件所有者的权限
4-6位数字代表同组用户的权限
7-9数字代表其他用户的权限
⑶符号解析
读®=4 写(w)=2 执行(x)=1 读+写+执行=4+2+1=7
通过4、2、1的组合,得到以下几种权限:
0(没有权限)
4(读取权限)
5(4+1 | 读取+执行)
6(4+2 | 读取+写入)
7(4+2+1 | 读取+写入+执行)
⑷总结
以755为例
1-3位7等于4+2+1,rwx,所有者具有读取、写入、执行权限
4-6位5等于4+1+0,r-x,同组用户具有读取、执行权限但没有写入权限
7-9位5,同上,也是r-x,其他用户具有读取、执行权限但没有写入权限
4.配置ip地址
- ifconfig命令临时配置ip地址,重启失效
- setup工具永久配置ip地址,redhat独有的
- 修改网络配置文件
5.常用的压缩格式
- .zip
- .gz 只压缩目录下子文件
- .bz2 压根不压缩
- .tar.gz 先打包后压缩
- .tar.bz2 先打包后压缩
6.Inode以及软连接和硬链接
⑴inode(索引节点)
存储文件元信息的区域叫inode,即索引节点。硬盘进行格式化的时候,操作系统会将硬盘分成两个区域,一个是数据区,存放文件数据,一个是inode区,存放inode信息。
包含内容:
* 文件的字节数
* 文件拥有者的User ID
* 文件的Group ID
* 文件的读、写、执行权限
* 文件的时间戳,共有三个:ctime指inode上一次变动的时间,mtime指文件内容上一次变动的时间,atime指文件上一次打开的时间。
* 链接数,即有多少文件名指向这个inode
* 文件数据block的位置
查看文件的元信息可以用stat 命令
每个inode都有一个号码,操作系统用inode来识别不同的文件。对于系统而言,文件名只是inode号码便于识别的一个绰号。
我们打开一个文件时,实际分为三步:
- ①找到对应的inode号码
- ②通过inode号码获取inode信息
- ③通过inode信息找到文件的block,读出数据
⑵硬连接
指的是多个文件名指向同一索引节点,硬连接可以使同一文件有多个有效路径,可以防止误删。A是B的硬连接,则A和B目录项中inode节点号相同,即同一个inode对应两个不同的文件名,A和B是完全平等的,删除一个不影响另一个对文件的访问。
硬连接的两个限制(这俩限制软连接没有):
- 不允许给目录创建硬连接
- 只有在同一文件系统中的文件才能创建硬连接
创建硬连接的方式:ln 源文件 目标文件
⑶软连接
类似于快捷方式,源文件删了快捷方式就没用了。软连接权限是777,真正权限由源文件决定。
创建软连接的方式:ln -s 源文件 目标文件
7.定时任务
⑴at命令
一次执行
⑵crontab
循环定时任务
⑶anacron
没开机的情况下开机后可以补偿定时任务,但是重复的只会执行一次,比如每周执行的关机四周,开机后只会执行一次。
8.ubuntu软件源
1.什么是软件源
在Ubuntu下,相当于软件库,当我们需要安装软件时:
sudo apt-get install 软件名
当我们需要卸载软件时:
sudo apt-get remove 软件名
2.原理
当通过sudo apt-get install命令去安装软件源时,apt包管理工具就会从系统的一个源列表中读取软件源的网址信息,查找可以包
含该软件的软件源网址并且下载,然后由apt包管理工具进行解压安装。
3.软件源分类
⑴ubuntu官方软件源
它对应的源列表在 /etc/apt/sources.list中,为了提高下载速度,我们可以对软件源地址进行替换。·
⑵PPA软件源
很多软件包由于各种原因不能进入官方镜像仓库
我们可以搜索PPA地址进行安装
9.linux可执行文件目录
s就是system的意思,/bin里面一般是普通可执行程序,而/sbin里多为系统管理程序和服务程序
⑴bin(binary)
系统的必备执行
⑵sbin(system binary)
系统管理
⑶usr/bin
应用软体工具的必备执行,系统预装的可执行程序,会随着系统升级而改变
⑷usr/sbin
网路管理,系统预装的可执行程序,会随着系统升级而改变
⑸usr/local/bin
存放所有用户都可用的与本地机器无关的程序,即第三方软件程序,不会随着系统升级而改变
⑹usr/local/sbin
存放超级用户才能使用的与本地机器无关的程序,不会随着系统升级而改变
10.进程
每个进程都有自己独立的进程内存空间,一个进程的内存空间是很大的,32位是4G,64位更大,都是按需申请,只有真正去使用时才会使用内存管理的系统来分配内存。
进程切换:
11.X86架构
⑴CPU架构
其中最重要的是CPU,总线(主板上的电路),内存(保留中间结果)
CPU包含:
- 运算单元(负责算)
- 数据单元(CPU内部缓存和寄存器组,CPU上飞快的小内存)
- 控制单元(总指挥)
控制单元有指令指针寄存器,存放下一条指令在内存中的地址,控制单元会不断将指令拿到寄存器。
指令又分为两部分,一部分是做什么操作(交给运算单元),一部分是对应的数据(交给数据单元)
CPU和内存传输数据,靠的是总线。总线分两种
- 地址总线,总线位数决定了访问的地址范围
- 数据总线,位数表示一次能拿多少个数据进来
⑵x86最为经典的8086处理器
数据单元(通用寄存器位置):
有8个16位的通用寄存器AX、BX、CX、DX、SP、BP、SI、DI,在计算过程中暂存数据。
其中AX、BX、CX、DX可以分成两个8位的寄存器来使用,分别是AH、AL、BH、BL、CH、CL、DH、DL,其中H就是High(高位),L就是Low(低位)的意思。
控制单元(段寄存器位置):
- IP(Instruction Pointer Register)寄存器就是上面的指令指针寄存器,指向下一个指令位置。
- 为了指向不同进程的地址空间,有四个段寄存器
- CS 代码段寄存器(Code Segment Register),通过它可以找到代码在内存中的位置
- DS 数据段的寄存器(Data Segment),运算中需要加载内存中的数据,需要通过DS找到内存中的数据,加载到数据单元的通用寄存器中。
- SS 栈寄存器(Stack Segment)
- ES 附加段寄存器ES(Extra Segment)
对于8086CPU,最多只能访问1M的内存空间
⑶32位处理器
在32位处理器中,有32根地址总线,可以访问2^32=4G的内存
12.软中断和硬中断
⑴软中断
硬中断处理那些短时间就可以完成的工作,而将那些处理事件比较长的工作,放到中断之后来完成,也就是软中断(softirq)来完成,软中断是由中断指令产生
⑵硬中断
由系统连接的硬件外设产生,比如键盘,网卡之类的
13.Linux发行版
- Arch Linux
- Linux Mint
- Kali Linux
14.POSIX
可移植操作系统接口(英语:Portable Operating System Interface,缩写为POSIX)是IEEE为要在各种UNIX操作系统上运行软件,而定义API的一系列互相关联的标准的总称,其正式称呼为IEEE Std 1003,而国际标准名称为ISO/IEC 9945
15.Unix, Linux, BSD, and GNU的区别
GNU是GNU是“GNU is Not Unix”的递归缩写,因为GNU的设计类似Unix,但它不包含具著作权的Unix代码。GNU的内核,称为Hurd,发展尚未成熟。在实际使用上,多半使用Linux内核、FreeBSD等替代方案,作为系统核心,其中主要的操作系统是Linux的发行版。Linux操作系统包涵了Linux内核与其他自由软件项目中的GNU组件和软件,可以被称为GNU/Linux
BSD是unix的分支,由于bsd的协议允许你直接使用\修改他的代码,并且可以作为商业用途,所以很多公司的unix都是从bsd衍生过来的,比如hp-unix,ibm的aix等等.
Linux 严格意义上说是一个内核,它并没有参照UNIX代码,是一个类UNIX架构,和GNU以及其他核心组件结合到一起我们认为它是一个完整的操作系统
16.cli
cli是Command Line Interface or Command Language Interpreter的缩略语,它是控制系统最重要的功能。
在类UNIX系统,CLI是一个用户可以键入命令去执行的接口,CLI功能很多,但是没有很强的容错性。
17.如何获取命令行帮助
- man XXX
- XXX -h或者–help
18.GNU
GNU 项目创始于一九八四年,旨在开发一个类似 Unix ,且为 自由软件 的完整的操作系统: GNU 系统。
GNU 的内核尚未完成,所以 GNU 使用 Linux 作为其内核。GNU 和 Linux 以这样的方式组合成为 GNU/Linux 操作系统,目前有数百万用户。(这个组合有时被错误地称为 Linux。)
19.挂载
在Linux中,任何设备都是文件,它们有自己的一套文件目录结构,在Linux中使用硬件设备时,需要将Linux本身的文件目录和硬件设备合二为一
挂载,指的就是将设备文件中的顶级目录连接到 Linux 根目录下的某一目录(最好是空目录),访问此目录就等同于访问设备文件
另外,挂载不要覆盖原有目录
20.字符设备
字符设备是指在I/O传输过程中以字符为单位进行传输的设备,例如键盘,打印机等。在UNIX系统中,字符设备以特别文件方式在文件目录树中占据位置并拥有相应的结点
结点中的文件类型指明该文件是字符设备文件。可以使用与普通文件相同的文件操作命令对字符设备文件进行操作,例如打开、关闭、读、写
当一台字符型设备在硬件上与主机相连之后,必须为这台设备创建字符特别文件。操作系统的mknod命令被用来建立设备特别文件。例如为一台终端创建名为/dev/tty03的命令如下(设主设备号为2,次设备为13,字符型类型标记c):
mknod /dev/tty03 c 2 13
此后,open, close, read, write等系统调用适用于设备文件/dev/tty03。
设备与驱动程序的通信方式依赖于硬件接口。当设备上的数据传输完成时,硬件通过总线发出中断信号导致系统执行一个中断处理程序。中断处理程序与设备驱动程序协同工作完成数据传输的底层控制
rpm和deb
rpm包主要应用在RedHat系列包括 Fedora等发行版的Linux系统上,
deb包主要应用于Debian系列包括现在比较流行的Ubuntu等发行版上。