一、计算机操作系统及组成
- CPU(Central Processing Unit):运算器、控制器、寄存器、缓存;
- 存储器:内存、RAM
- RAM(Random Access Memory):随机存储,掉电不会保存数据
- 内存速度要远远大于硬盘的读写速度
- Input:输入指令,提供数据;
- Output:输出指令,数据加工的结果;
1.1 程序
组成:指令 + 数据(算法 + 数据结构)
最小存储单元:1字节(1Byte)= 8bits (1个Cell)
1GB = 1024MB; 1MB = 1024KB; 1KB = 1024Bytes;
内存中的每一个存储单元都有地址;
数据 和 内存 都存在内存中
解释:32位CPU最多使用4GB内存原因:
232=1024 * 1024 * 1024 * 4 Byte
= 1024 * 1024 * 4 KB
= 1024 * 4 MB
= 4 GB
二、Linux三大发行版本
linux遵循GPL协议发展至今,发行版数量种类众多,其中最主要的三大发行版:Debian系列、Slackware系列、Redhat系列
- Debian:ubuntu
- Slackware:S.u.S.E
- redHat:centOS、Fedora
具体详细的发行版的演化可访问:Linux发行时间表 进行查看
解释:
- GPL(General Public License):强开源约束授权
GPL的出发点是代码的开源/免费使用和引用/修改/衍生代码的开源/免费使用,但不允许修改后和衍生的代码做为闭源的商业软件发布和销售。
这也就是为什么我们能用免费的各种linux,包括商业公司的linux和linux上各种各样的由个人,组织,以及商业软件公司开发的免费软件了。- BSD(Berkeley Software Distribution):
对于使用了BSD协议的代码:
1.如果在发布的代码中有源代码,则需要在源代码中带有BSD协议
2.如果发布的是二进制库,则需在类库和版权说明中包含原来代码中的BSD协议
3.不可以用原开源代码的作者或者机构做市场推广- Apache2.0
1.需要给代码的用户一份Apache Licence
2.如果你修改了代码,需要再被修改的文件中说明。
3.在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明。
4.如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache Licence。你可以在Notice中增加自己的许可,但不可以表现为对Apache Licence构成更改。
三、Linux基础及基础命令
3.1 远程连接
- ssh(secure shell):
- ~]# ss -tnl :查看系统是否监听于tcp协议的22号端口
3.2 确保防火墙处于关闭状态
- ~]# iptables -L -n :查看当前防火墙状态
- ~]# iptables -F :清空当前防火请设置(关机不保存)
- centOS7:
- ~]# systemctl disable firewalld.service 禁用防火墙
- ~]# systemctl stop firewalld.service 停止防火墙
- centOS6:
- ~]# service iptables stop 禁用
- ~]# chkconfig iptables off 停止
- centOS7:
3.3 Linux终端类型
概念:终端是一种字符型设备,分为多种类型,简称:tty
- 物理终端:console
- 虚拟终端(tty):
- 伪终端(pty):使用远程telnel到主机
- 串行终端(/dev/ttySn):使用计算机串行端口连接的终端设备
- 图形终端
3.4 命令行接口
[root@node1 ~]# COMMAND
- root:当前登录用户
- node1:当前主机的主机名,完整格式:node1.root.com
- ~:当前用户所在目录,也称为工作目录:相对路径
- #:命令提示符
- #:管理员,root;拥有最高权限,能执行所有操作
- $:普通用户,非root用户;不具有管理权限,不能执行系统管理类操作
注意:请使用非管理员账户登录,执行管理操作临时切换管理员账号,操作完及时退回普通用户
3.5 关机命令
centOS7:
- ~]# systemctl poweroff 关机
- ~]# systemctl reboot 重启
其他: - ~]# poweroff 关机
- ~]# reboot 重启
3.6 查看ip命令
- ~]# ifconfig
- ~]# ip addr list
3.7 linux的哲学思想
-
一切皆文件:把几乎所有资源 统统抽象为文件格式;包括硬件设备,甚至通信接口等;
open(). read(). write(). close(). delete(). create()
-
由众多功能单一的程序组成;一个程序只做一件事,并且做好;
组合小程序完成复杂任务
-
尽量避免跟用户交互;
目标:易于以编程的方式实现自动化任务
-
使用文本文件保存配置信息;
3.8 命令的通用格式
~]# COMMAND OPTIONS ARGUMENTS
- COMMAND:命令(程序–>进程,静态–>动态(有生命周期))请求内核将某个二进制程序运行为一个进程
- 命令本身是一个可执行的程序文件:二进制格式的文件,有可能会调用共享库文件;多数程序文件都存放在:
- 普通命令:/bin /usr/bin /usr/local/bin
- 执行命令:/sbin /usr/sbin /usr/local/sbin
- 共享库:/lib /lib64 /usr/lib64 /usr/local/lib /usr/local/lib64
- 32bits的库:/lib /usr/lib /usr/local/lib
- 64bits的库:/lib64 /usr/lib64 /usr/local/lib64
- 并非所有命令都有一个在某目录与之对应的可执行程序文件
- 命令必须遵循特定格式规范:exe、msi、ELF(Linux)
- 命令分类(两大类)
- 由shell程序自带的命令:内置命令(builtin)
- 独立的可执行程序文件,文件名即为命令名(外部命令)
- shell程序是独特的程序,负责解析用户提供的命令
- 环境变量:PATH:从哪些路径中查找用户键入的命令字符串所对应的命令文件
- ~]# echo $PATH
- 查找次序:自左至右
- 环境变量:PATH:从哪些路径中查找用户键入的命令字符串所对应的命令文件
- 查看命令类型
- ~]# type COMMAND
- 命令本身是一个可执行的程序文件:二进制格式的文件,有可能会调用共享库文件;多数程序文件都存放在:
- OPTIONS:选项 指定命令的运行特性
- 有些选项可以带参数,叫选项参数
- 两种表现形式
- 短选项:-C, 例如-r -n
- 注意:
- 有些命令没有前面的-
- 如果同一命令同时使用多个短选项,多数可合并,例如:-d -l可写为 -dl
- 长选项:–word, 例如:–help,–human-readable
- 注意:
- 长选项不能合并
- ARGUMENTS:参数 命令作用的对象
- 注意:不同的命令的参数不同;有些命令可同时代多个参数,多个之间以空白字符分割
解释:文件是什么?众多文件如何有效组织起来?
答:目录:路径映射; 文件:存储空间上的一段数据流,对数据可以做到按名存取; 文件系统:等次结构
/:原初起点
倒置的树状结构
- /dev/pts/2
- 最左侧 / :表示根目录
- 其他的 / :表示路径分隔符
- linux的分割路径是 / ,windows的是 \- 文件的路径表示
- 绝对路径:从根目录开始表示的路径
- 相对路径:从当前位置开始表示的路径- 文件名的使用规则
- 严格区分字符大小写:file1,File1,FILE1
- 目录也是文件,在同一路径下,两个文件不能同名
- 支持使用除 / 外的任意字符
- 最长不超过255个字符- 用户的家目录:home
- 用户的起始目录:普通用户管理文件的位置;- 工作目录:/etc/sysconfig/network-scripts/ifcfg-eno12344422
- basename:最右侧的文件或目录名
- dirname:basename左侧的路径
3.9 获得命令的使用帮助
- 内部命令:help COMMAND
- 外部命令:
- 命令自带简要格式的使用帮助 COMMAND --help
- 使用手册:manual
- 1 位置:/usr/share/man
- 2 ~]# man COMMAND
- SECTION:
- NAME:功能性说明
- SYNOPSIS:语法格式
- DESCRIPTION:描述
- OPTIONS:选项
- EXAMPLES:使用示例
- AUTHOR:作者
- BUGS:报告程序bug的方式
- SEE ALSO:参考
- SYNOPSIS
- []:可选内容
- <>:必须提供的内容
- a|b:多选一
- …:同类内容可出现多个
- SECTION:
- 3 使用手册:压缩格式的文件,有章节之分
- /usr/share/man
man1:用户命令
man2:系统调用
man3:C库调用
man4:设备文件及特殊文件
man5:文件格式(配置文件格式)
man6:游戏使用帮助
man7:杂项
man8:管理工具及守护进程
- /usr/share/man
- 4 ~]# man CHAPTER COMMAND
- 注意:并非每个COMMAND在所有章节下都有手册
- 查看:~]# whatis COMMAND
其执行过程是查询数据库进行的
手动更新数据库:~]# makewhatis
- 5 man命令打开手册以后的操作方法
- 翻屏:
SPACE:向文件尾部翻一屏幕
b:向文件首部翻一屏幕
ctrl+d:向文件尾部翻半屏幕
ctrl+u:向文件首部翻一屏幕
ENTER:向文件尾部翻一行
k:向文件首部翻一行
G:跳转到最后一行
n+G:跳转至指定行 n:数字 - 文本搜索:
- /keyword 从文件首部向尾部依次查找;不区分字符大小
- ?keyword 从文件尾部向首部依次查找
- n:与查找命令方向相同
- N:与查找命令方向相反
- 退出:~]# q
- 翻屏:
- 6 选项:-M /PATH/TO/SOMEDIR:到指定目录下查找命令手册并打开之;
- info COMMAND:获取命令的在线文档
- 很多应用程序会自带帮助文档:/usr/share/doc/APP-VERSION
- README:程序的相关信息
- INSTALL:安装帮助
- CHANGES:版本迭代时的改动信息
- 官方文档
- 搜索引擎
3.10 linux的常用基础命令
- pwd(print working directory):显示工作目录
- cd (change directory)
- ~]# cd ~:切换回自己家目录
- ~]# cd ~USERNAME:切换回指定用户的家目录
- ~]# cd -:在上一个所在目录与当前目录间来回切换
- $PWD:当前工作目录
- $OLDPWD:上一次工作目录
- ls (list ):ls [OPTION]…[FILE]…列出指定目录下的内容
- ~]# ls -a :显示多有文件,包括隐藏文件
- ~]# ls -A :显示除了. 和 … 外的所有文件
- ~]# ls -l :–long,长格式系列,显示文件的详细信息
- dr-xr-xr-x 5 root root 4096 2月 25 09:15 boot
- d:文件类型:- d b c l s p
- r-xr-xr-x:
- 左:r-x 文件属主的权限
- 中:r-x 文件属组的权限
- 右:r-x 其他用户(非属主、数组)的权限
- 5:表示文件被硬链接的次数
- root:文件的属主
- root:文件的数组
- 4096:文件大小,单位:字节(Byte)
- 2月 25 09:15:文件最近一次被修改的时间
- boot:文件名
- dr-xr-xr-x 5 root root 4096 2月 25 09:15 boot
- ~]# ls -h:–human-readable:对文件大小单位换算,换算后的值会非精确值
- ~]# ls -d:查看目录自身而非其内部的文件列表
- ~]# ls -r:逆序排列
- ~]# ls -R:recursive 递归显示
- cat:concatnate,文件文本查看工具
- cat后接上多个文件,表示连接
- cat -n FILE :给文本编号
- cat -E FILE :显示行结束符
- tac:文件文本查看工具
- 文件内容逆序排列
- file:查看文件内容类型
- echo:回显命令,echo [SHORT-OPTION]…[STRING]…
- echo -n:不进行换行
- echo -e:让转义符生效
- STRING 可以使用引号,单引号和双引号
- 单引号:强引用,不替换变量
- 双引号:弱引用,替换变量
- 注意:变量引用的正规符号${name}
- shutdown:关机并重启 shutdown [OPTIONS…] [TIME] [WALL…]
- OPTIONS
- -h:halt
- -r:reboot
- -c:cancel
- TIME
- now
- hh:mm
- +m
- WALL
- OPTIONS
- 日期相关命令
- linux:系统启动时从硬件读取日期和时间信息;读取完成后,就不在与硬件相关联
- date
- date [OPTION]… [+FORMAT] 显示日期时间
- date [-u|–utc|–universal] [MMDDhhmm[[CC]YY][.ss]] 设置日期时间
- clock
- hwclock
- cal
协议
参考链接
https://blog.csdn.net/xiaoxiao133/article/details/83049959
https://wenku.baidu.com/view/70df4f7402768e9951e738dc.html
https://zhuanlan.zhihu.com/p/87855729