服务转换为端口
user_name --UID
字符解析成数字 数字解析成字符
www.baidu.com IP
/etc/passwd
/etc/hosts
应用程序 名称解析库
nsswitch 配置文件 /etc/nsswitch.conf
服务转换为端口
user_name --UID
字符解析成数字 数字解析成字符
www.baidu.com IP
/etc/passwd
/etc/hosts
应用程序 名称解析库
nsswitch 配置文件 /etc/nsswitch.conf
''~~``
| 连接多条命令,前一条命令输出结果作为后一条命令的输入。。
ps -ef | grep tomcat
进程:父子关系 进程状态 优先级
进程优先级:0-139数字,共140个优先级,数字越小,优先级越高
0-99:系统分配优先级
100-139:nice值
高优先级进程:获取更多的cpu运行时长,更优先的让cpu执行
大O标准:O(1)
ps -e 显示左右进程信息
ps aux
USER 用户
PID 进程号/proc目录存放着和进程相关的信息,pid为1的进程是systemd,是所有进程的父进程
cpu:该进程占用的cpu百分比
%CPU
%MEM 该进程占用内存的百分比
VSZ 虚拟内存集
RSS常驻内存机
TTY 运行在哪个终端
STAT进程状态
START 进程启动时间
TIME该进程在cpu中实际运行的时长
COMMAND该进程命令名称
ps -elf
进程状态:
D:不可终端睡眠状态
S:可终端睡眠状态
R:运行
T:停止
Z:僵尸
s:serssion leader会话领导者
<优先级较高的进程
N优先级较低的进程
l多线程
L在内存中锁定分页
+:前台进程组中的进程
pstree:查看进程数,查看父进程
远程管理:
进程:应用程序或者数据在系统中按照书序执行的过程。是操作系统架构基础;在磁盘中应用程序后者数据在内存中的映射。
OS:kernel+process:进程只能在CPU和内存中
进程特性:动态性并发性等
kernel:内存管理 网络管理 安全功能 驱动程序 进程管理等。
CPU分环运行:
0环:特权环,运行内核(内核空间)
1-2环:库文件
3环:进程环(用户空间)
mkdir:mkdir /data:system call:系统 I/O
cpu:暂时的退出
task struct:进程的数据结构(存放在内核中)
task struct结构:状态 进程信息和内核栈 运行列表(指令等) MM(内存管理):memory mangement
PID:进程id号 群组信息 用户信息 文件系统 文件描述符号等
线程地址
物理地址
MMU:memory
yum 配置文件 :etc/yum.conf
yum功能:
install:安装软件包
update:升级软件包
check-update:检查软件包的升级信息
upgrate:更新软件包
remove:卸载软件包
list:显示所有已经安装和未安装的软件包
info:查看软件包信息
clean:清除软件包一些信息
search:查看软件包依赖关系列表
deplist:查询软件包依赖关系列表
repolist:查看可用的yum源
repoinfo:查看可用yum源的信息
groupinstall:安装软件包组
groupinfo:查看软件包组的信息
grouplist:显示所有已经安装和未安装的软件包组
groupremove:卸载指定软件包组
配置yum源
cd /etc/yum.repos.d
[base]
name=163
baseurl=http://mirrors.163.com/centos/7/os/x86_64/
enabled=1
gpgcheck=1
gpgkey=file://etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
软件包工具包工具:RPM
应用程序:和CPU架构有关系
源代码--编译
编译:生成二进制文件(可执行文件),匹配底层架构
程序=数据+指令 应用程序运行时,申请cpu和内存资源
内存地址空间:
text:存放指令
data+bss:data存放数据,bss:block system of symbol:存放初始化为0的变量
堆:heap存放运行中临时文件
栈:stack存放应用程序的变量和函数等。
前端工具:yum,apt-get,自行解决依赖关系
后端工具:RPM,dpt
RPM优点:
1、RPM软件包中包含了编译过的程序与配置文件,用户不用重新编译
2、RPM在安装之前,首先会检查硬盘容量,操作系统版本等,避免被错误安装
3、RPM使用RPM数据库管理,数据中记录应用程序的参数,便于升级,卸载,查询等,RPM数据库/var/lib/rpm
4、RPM本身会提供应用程序版本信息,相关属性,软件名称,用途等,便于用户连接软件。
安装、查询、卸载、升级、校验、数据库的重建、验证数据包工作;
rpm命名:
包:组成部分
主包:
bind-9.7.1-1.315.i586.rpm
子包:
bind-libs-9.7.1-1.315.i586.rpm
bind-utils-9.7.1-1.315.i586.rpm
包名格式
主版本号:重大改进
此版本号:某个子功能
发行版本号:修正了部分bug,调整了一点功能
RPM包:经过源代码编译的软件包
.tar.gz:源码包,没有经过编译
1安装: rpm -ivh name.rpm
-i:安装软件包
-h:以#显示进度;每个#表示2%
-v:显示详细过程
rpm -ivh /path/to/package_file
--nodeps:忽略依赖关系
--replacepkgs:重新安装
--force:强行安装,重装或者降级
2.查询
rpm -q package_name:查询指定的包是否已经安装
rpm -qa 查询已经安装的所有包
rpm -qi package_name:查询指定包的说明信息
rpm -ql package_name:查询指定包安装后生成的文件列表
rpm -qc package_name:配置文件
rpm -qd package_name:帮助文件
rpm -q --script package_name:查询指定包中包含的脚本
rpm -qf /path/to/somefile:查询指定的文件是由哪个rpm包安装生成的;
rpm -qf /usr/bin/ls
rpm -qpl :查看未安装软件包列表
rpm -qpi:查看未安装软件包信息
3.升级
rpm -Uvh /path/to... :有老版本升级,没有安装
rpm -Fvh :有升级,没有退出
--oldpackage:降级
4.rpm -e Package_name
--nodeps
5.校验:验证软件包列表和配置文件的完整性
rpm -V package_name
应用程序配置文件完整性破坏以后的代码:
S:file size differs
6. 重建数据库
rpm
--rebuilddb:重建数据库,一定会重新建立
--initdb:初始化数据库,没有才建立,有就不用建立
7.检验来源合法性,及软件包完整性
ls /etc /pki/rpm-gpg
RPM-GPG-KEY-redhat-release
rpm -k /PART/TO/PACKAGE_FILE
dsa,gpg:验证来源合法性,也验证签名
sha1,md5:验证软件包完整性;可以使用--nodigest,略过此项
rpm --import etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release:导入密钥文件
设备文件: /dev/
b:块设备
c:字符设备
主设备号:标识某一类设备
次设备号:标识一类设备下不同设备
mknod:创建设备:mknod options name type主设备号 次设备号
-m:设置权限
磁盘:
IDE ATA:hd 主板:2IDE接口
SATA:sd
SCSI:sd
USB:sd
Linux以字母标识磁盘的个数 a:第一块 b:第二块
Linux用数字标识分区:1-4标识主分区或扩展分区 逻辑分区从 5开始
sda1
低级格式化:划分磁道
高级格式化:为分区装载文件系统
文件系统:内核功能。
FAT32 NTFS EXT2 EXT3 EXT4 XFS等
创建文件系统 mkfs
-t : 指定文件系统
mkfs -t ext3 dev_name
vfs:虚拟文件系统
fdisk:针对MBR分区类型的工具
gdisk:针对GPT分区类型的工具
fdisk:交互式工具
d:删除一个分区
l:显示linux支持的分区类型
m:显示帮助信息
n:创建一个新分区
p:创建主分区
e:创建扩展分区
p:显示当前分区列表
q:不保存退出
w:保存更改并退出
t:更改分区的系统ID
Centos6:按照柱面分区
Centos7:按照扇面分区
磁盘ID:
5:扩展分区
82:交换分区
83:linux系统分区
8e:LVM(逻辑卷管理)
/proc/partitions:查看系统分区情况
mount:挂载工具
mount src des
/sdb1 mount /dev/sdb1 /sdb1
实现开机自动挂载
/etc/fstab添加内容:
UUID=id号 挂载点 文件系统 默认选项 是否开机检查 是否备份
UUID= xxxxxx /sdb1 xfs defaults 0 0
装系统选中installtab键后追加
inst.gpt
控制器
存储器:内部存储器 RAM()
io
外部存储器:硬盘等
IO:磁盘:机械式硬盘
接口:IDE SATA iSCSI接口
磁盘组成结构:盘片
盘片逻辑结构:
磁道:盘片
扇区:磁道被分为多个扇区
柱面:不同盘片上相同编号的磁道组成柱面
MBR:主引导记录,位于0磁道0柱面1扇区,512字节,三部分组成:446字节的boot
loader启动加载器,存放引导代码,64字节磁盘分区表,2字节magic
number(检查MBR是否有效)
主分区:主分区+扩展分区 <=4
扩展分区:16字节空间,只能有一个,扩展分区是一个指针,指向磁盘另外的位置,不能直接存储数据
逻辑分区:
名称即系:字符解析成数字、数字解析成字符
file
dns
db(数据)
ldap(轻量级目录服务访问协议)
设计内核时,添加响应代码完成解析
应用程序 nsswtich 名称解析库
nsswitch 配置文件:etc/nsswitch
方法:nsswich.conf文件控制搜索信息类型的方法,对于每一种信息类型,都可以指定下面的一种或多种方法:
files:搜索本地文件,如: /etc/passwd和 /etc/hosts
nis:搜索nis数据库,nis还有一个别名yp
dns:查询dns(值查询主机)
compat:passwd、group和shadow文件中的±语法
组:逻辑容器,存放用户,实现集中授权
配置文件:
file:查看文件类型
语法:file 【option】 args
-b:显示结果时,不显示文件名
-c:显示执行file命令的执行过程(file是如何去判断文件类型),便于排村或分析file命令执行过程
-i:输出mime类型的字符串
-z:显示压缩文件的内容
-L:查看软里阿尼额对应的类型
-f:查看文件中文件名的类型
根目录下目录以及子目录的作用
linux文件类型
-:普通文件
纯文本文件(Ascii):配置文件
二进制文件(binary file):命令
数据格式文件(data):var/log/wtmp
d:目录文件
l:连接文件:软连接文件
设备文件:(/dev)
b:block块设备
c:character字符集设备:一次性读取,按顺序读取
s:socket套接字文件:通常用在网络上数据连接:IP:port
p:管道:特殊的文件类型,解决多个程序同时访问一个文件所造成的错误问题
file:查看linux中文件类型
语法:file【optons】file_name
linux文件名限制
1.单个文件或者目录的名称不能超过255字符
2.文件命中不能包含特殊字符(/ . - +等)
FHS标准(filesystem hierarchy standard):希望用户可以了解已经安装的程序在那个目录下
根文件系统:rootfs:root filesystem
/bin:二进制,存放命令
/boot:存放启动和内核相关文件
/dev:存放设备文件
/etc:存放应用程序的配置文件
/home:普通用户的家目录,默认为/home/username
/lib和lib64:存放系统开机时需要用的函数库及/bin 和sbin命令调用函数库
/lib/modules:存放内核相关的模块
/lib/modules:存放内核相关的模块(驱动程序等)
/media和/mnt:挂载点,/media、挂载移动设备 /mnt挂载临时设备
/opt:第三方软件存放目录,现在一般安装到usr/local下
/proc:为文件系统,数据存放在内存中,存放关于进程的相关信息
/root:管理员的家目录
/sbin:存放管理员使用的命令
/srv:service缩写,存放服务数据目录,如可以把www服务的网页存放到该目录
/tmp:存放临时文件,所有用户都可以把文件创建,但是每个用户只能删除自己的文件
/sys:为文件系统,存放在内存中,记录内核相关的信息,包括加载模块和内核检测到的硬件设备等。
/usr:UNIX software resource:存放安装的应用程序
/usr/bin:普通用户使用的命令和bin区别是否与开机有关
/usr/sbin:网络服务器命令
/usr/lib和/usr/lib64:包含各种应用程序函数库
/usr/share:存放共享文件目录(在线帮助文件,杂项,时区文件等)
/usr/include:存放头文件
/usr/src:释放源代码目录
/var:vary缩写,存放经常变动的文件,比如日志,mail等
/var/cache:存放应用程序运行是产生僧的缓存文件
/var/lib:程序运行是,需要使用的文件存放目录
/var/lock:设备或资源一次只能被一个应用程序使用,如果多应用程序会产生错误,因为要为设备上锁。
var/log:存放日志目录(系统,用户登录,服务日志)
linux命令的帮助信息:
ls -i 显示文件所在inode节点(index node)
内部命令:help 【command】
外部命令:【command】 --help
cd 切换命令
which 查看命令所在的路径
查看全部帮助文档
man 【command】
pagedown:向下翻页
pageup:向上翻页
/word:从上往下查找关键字
?word:从下往上查找关键字
q:退出
man目录说明:
1 Executable programs or shell commands
2 System calls (functions provided by the kernel)
3 Library calls (functions within program libraries)
4 Special files (usually found in /dev)
5 File formats and conventions eg /etc/passwd
6 Games
7 Miscellaneous (including macro packages and conventions), e.g. man(7), groff(7)
8 System administration commands (usually only for root)
9 Kernel routines [Non standard]
1可执行程序或shell命令
2个系统调用(内核提供的函数)
3个库调用(程序库中的函数)
4个特殊文件(通常在/dev中找到)
5文件格式和约定,例如/etc/passwd
6场比赛
7杂项(包括宏包和约定),例如man(7)、groff(7)
8个系统管理命令(通常仅适用于root)
9内核例程[非标准]
man 使用说明:
name :命令名称及简要用法
synopsis:语法格式,可能包括一些选项的使用
description:命令选项的详细使用
exit status 退出状态
reportiong bugs :发现bug反馈信息
options :选项的详细用法
whatis:查看命令所在的帮助信息目录,该命令再系统启动大约70分钟后会生成whatis的数据库,如果时间太短,该命令不会执行,我们可以用makewhatis初始化该命令。
man手册页
pwd:print working directory:侠士单签所处的工作目录
查看IP:ifconfig
管道
控制器、运算器、存储器、输入设备、输出设备、计算机总线:
地址总线:内存寻址
数据总线:传输数据
控制总线:控制指令
变量
管道:连接多条命令,过滤条件 “|”
head:默认查看文本文件前十行
-n:前几行
tail:默认查看文本文件后十行
-n:后n行
nginx: