五种IO模型
2020-08-13 17:35:16 0 举报
AI智能生成
linus初学者知识点1
作者其他创作
大纲/内容
常用shell命令
命令格式
命令名 【选项】【参数】
文件管理命令
ls
ls 显示结果以不同的颜色来区分文件类别
-a
显示所有文件,包括隐藏文件(以.号开头的文件)
-h
以 K、M、G 等单位显示文件大小( 默认为字节),提高可读性
-l
以长格式(内容更详细)显示文件或目录的详细信息
通配符的使用
?
可以匹配文件名中的一个任意字符
*
可以匹配文件名中的任意多个字符
创建目录(文件夹)
mkdir 路径/目录名
-p
创建连续目录
-m
创建目录,同时设置权限
删除目录或文件
rmdir 路径/文件名
-p
删除连续目录
rm 文件名
默认只删除文件,不删除目录
复制目录或文件
cp 源文件 目标文件
移动文件或目录
mv 源文件 目标文件
新建文件
touch 文件名
查看文件内容命令
cat
显示文件的内容
cat –n 显示行号。 cat 在显示文本文件的内容时不进行停顿,因此不适合查看长文件
more
分页显示文件内容
less
分页显示文件内容
head
默认情况下,head 显示前 10 行内容
tail
tail 显示后 10 行内容
wc
用于统计指定文件中的行数、单词数、字节数
-l
-w
-c
查找命令
find
搜索文件与目录
-name
按名称查找
-type
按文件类型查找文件类型包括:普通文件(f)、目录(d)、块设备 文件(b)、字符设备文件(c)
-user
按文件所有者查找,根据文件是否属于某个目标用户进行查找
-size
按文件大小查找,使用“+”、“-”号设置超过或小于指定的大小 作为查找条件
grep
查找文件内容
^
表示以什么字符开头
$
表示以什么字符结尾
权限指令
文件属性说明
drwxr-xr-x. 2 root root 4096 Sep 26 08:31 Templates
1 2 3 4 5 6 7
1 2 3 4 5 6 7
第1组:文件类型,其中第一个字符代表文件的类别。
- 普通文件 d 目录 l 符号链接 c 字符设备 b 块设备
文件的权限 r:可读 w:可写 x:可执行 -:没有权限
- 普通文件 d 目录 l 符号链接 c 字符设备 b 块设备
文件的权限 r:可读 w:可写 x:可执行 -:没有权限
第2组:文件间的连接数
第 3 组:文件所有者
第 4 组:文件属组
第 5 组:文件大小,默认单位为字节
第 6 组:文件创建时
第 7 组:文件名称
修改文件的权限
chmod
字母修改方式
文件所有者权限(u)
所属组权限(g)
其他用户权限(o)
所有用户(a)
数字修改方式
r=4 w=2 x=1 -=0
修改文件的所有者与所属组
chown
chown 用户名 文件名
chown :属组 文件名
chown 用户名:属组 文件名
特殊权限
ACl
setfacl -m u:用户名:权限 文件名
针对其他用户单独设置的一个特殊权限。
设置了ACL后的文件的权限中 . 会变成+
设置了ACL后的文件的权限中 . 会变成+
getfacl 文件名
删除ACL
setfacl -x u:用户名 文件名
setfacl -b 文件名
SBIT
chmod o+t 文件名
chmod o-t 文件名
chmod o-t 文件名
针对用户设置,只能删除自己的,不能删除别人的
SGID
chmod g+s 文件名
针对同组用户进行设置
SUID
chmod u+s 文件名
只针对执行操作
用户和用户组
用户
新建用户
useradd 用户名
查看用户
cat /etc/passwd
为用户设置密码
passwd 用户名
查看密码是否设置完成
cat /etc/shadow
设置用户为组长
gpasswd -A 用户名 用户组
删除用户
userdel -r 用户名
修改用户属性
usermod 选项 用户名
修改用户口令有效期
chage 选项 用户名
修改用户注释信息
chfn 选项 用户名
用户组
新建用户组
groupadd 组名
查看用户组
cat /etc/group
将用户加入用户组
gpasswd -a 用户名 用户组
将用户从用户组中删除
gpasswd -d 用户名 用户组
用newgrp临时加入用户组
删除用户组
groupdel 组名
修改用户组信息
groupmod 选项 组名
连接文件与别名
连接文件
软连接
#ln -s sourefile object
硬链接
#ln soure /file object
别名
定义别名
#alias [name[=value]]
#alias li=’cat /etc/passwd’
#alias li=’cat /etc/passwd’
删除别名
unalias li
查看别名
alias
子主题
LVM卷管理
LVM概念
LVM可以实现对磁盘的动态管理,在磁盘不用重新分区的情况下动态调整文件系统的大小,利用LVM管理的文件系统可以跨越磁盘。
LVM的管理命令
功能 物理卷管理 卷组管理 逻辑卷管理
scan 扫描 pvscan vgscan lvscan
Create 建立 pvcreate vgcreate lvcreate
Display 显示 pvdisplay vgdisplay lvdisplay
Remove 删除 pvremove vgremove lvremove
Reduce 缩减 vgreduce lvreduce
Extend 扩展 vgextend lvextend
scan 扫描 pvscan vgscan lvscan
Create 建立 pvcreate vgcreate lvcreate
Display 显示 pvdisplay vgdisplay lvdisplay
Remove 删除 pvremove vgremove lvremove
Reduce 缩减 vgreduce lvreduce
Extend 扩展 vgextend lvextend
1、创建磁盘分区
fdisk /dev/stb
2、创建物理卷PV
pvcreate /dev/sdb1 /dev/sdb5
3、创建卷组VG
vgcreate wgroup /dev/sdb1 /dev/sdb5
4、创建逻辑卷
lvcreate -L 容量大小 -n 逻辑卷名 卷组名
5、创建并挂载文件系统
mkfs -t ext4 /dev/wgroup/ftp
然后创建挂载目录点,将逻辑卷挂载
mkdir /var/ftp
挂载:mount /dev/wgroup/ftp /mnt/ftp
修改/etc/fstab文件,实现永久挂载
vim /etc/fstab
然后创建挂载目录点,将逻辑卷挂载
mkdir /var/ftp
挂载:mount /dev/wgroup/ftp /mnt/ftp
修改/etc/fstab文件,实现永久挂载
vim /etc/fstab
6、扩展逻辑空间
最后将第三块硬盘/dev/sdc加入到逻辑卷中。
先将硬盘分成一个分区/dev/sdc1,并将分区标记修改为8e
然后将分区转换为物理卷:pvcreate /dev/sdc1
将物理卷/dev/sdc1添加到卷组wgroup中:vgextend wgroup /dev/sdc1
扩展逻辑卷的空间:lvextend -L +10G /dev/wgroup/ftp
执行resize2fs命令重设文件系统的大小:resize2fs /dev/wgroup/ftp
再次查看文件系统/var/ftp的空间大小,可以看到已经变成了29GB: df -hT
先将硬盘分成一个分区/dev/sdc1,并将分区标记修改为8e
然后将分区转换为物理卷:pvcreate /dev/sdc1
将物理卷/dev/sdc1添加到卷组wgroup中:vgextend wgroup /dev/sdc1
扩展逻辑卷的空间:lvextend -L +10G /dev/wgroup/ftp
执行resize2fs命令重设文件系统的大小:resize2fs /dev/wgroup/ftp
再次查看文件系统/var/ftp的空间大小,可以看到已经变成了29GB: df -hT
7、逻辑空间删减
服务与进程
Linux 系统的运行级别
七种不同的运行级别
系统运行级别之间的切换
查看系统的当前运行级别:runlevel 查看系统启动时的运行级别:ll /etc/systemd/system/default.target
系统运行级别之间的切换
使用 init 命令进行切换
关闭 Ctrl+Alt+Del 键的功能
字符界面按 Ctrl+Alt+Del 键系统会自动重启,为避免误操作带来的损失,需要禁用此功能
使用 systemctl 管理服务
服务的启动与停止
命令格式:systemctl 选项 服务名 选项说明: start:启动;stop:停止;restart:重启;status:服务状态 服务名:一般以“.service”结尾,输入服务名时了可省略
设置服务的自启动状态
①使用 ntsysv 命令设置服务的自启动 命令格式:ntsysv [--back][--level] 选项说明:back,在互动界面不显示 cancel;level,在指定的运行级别中设置服务的自启动。 ②使用 systemctl 命令设置服务的自启动 查看服务的自启动状态:systemctl is-enabled [服务名称] 开启服务的自启动:systemctl enable 服务名称 关闭服务的自启动:systemctl disable 服务名称
查看所有的服务
命令格式:systemctl [选项] [–type=TYPE] [–all] 选项说明: (1) list-units:依据 unit 列出所有启动的 unit。加上–all 会列出没启动的 unit; (2) list-unit-files:依据/usr/lib/systemd/system/ 内的启动文件,列出启动文件列表
进程的延迟与周期调度
进程的概念
进程的查看:ps 命令
查看各进程继承关系的命令:pstree
进程的终止
进程的调度
软件安装与包管理工具
RPM 包管理工具的使用
RPM 工具的使用
RPM 主要有5种基本功能:查询、安装、升级、刷新、卸载
查询
软件包的查询功能主要由-q选项完成 rpm -q
安装
#rpm -ivh telnet-server-0.17-59.el7.x86_64.rpm
刷新
#rpm -Fvh telnet-server-0.17-59.el7.x86_64.rpm
卸载
#rpm -e telnet-server
常见问题
使用 RPM 管理 telnet-server 软件包
在服务器端安装 telnet-server 和 xinetd,启动相应的服务。
在服务器端开启防火墙(图形界面与命令)
在客户端访问(默认不允许 root 用户 telnet 登录)
YUM 工具的使用
设置本地 YUM 源
YUM 工具主要有查询、安装、升级、刷新、卸载软件包等功能。 命令格式:yum [选项] [指令] [软件包]
TAR 包管理工具简介
网络连接
主机名的配置
使用 hostname 命令临时设置主机名
永久设置主机名
网卡信息的配置
网卡配置文件
/etc/sysconfig/network-scripts
配置网卡信息
#vim /etc/sysconfig/network-scripts ifcfg-ens33
ifconfig 命令
网卡常用命令
ifdown(禁用网卡)
ifup(重启网卡)
绑定 IP 和 MAC 地址
客户端域名解析服务器的配置
客户端域名解析服务器的配置文件是/etc/resolv.conf
文件内容格式:nameserver 指定 DNS 服务器的 IP 地址
常用网络调试命令与故障排查
.ping 命令:测试网络中是否畅通以及网络质量
netstat 命令:显示网络连接、路由表、正在监听的端口等信息
traceroute 命令:路由跟踪。
nslookup 命令:检测指定的 DNS 服务器工作是否正常
Web服务器
发布公司网站
安装Apache服务
# yum install -y httpd
#systemctl start httpd.service
测试Apache是否安装成功
在浏览器的地址栏输入:localhost进行测试
将公司网站exam复制到/var/www/html/目录下,并修改配置文件
发布个性化网站
改首页名字:#mv /var/www/html/exam/index.html /var/www/html/exam/exam.html
修改配置文件:Vim /etc/httpd/conf/httpd.conf
重启服务:systemctl restart httpd
访问测试:192.168.75.128:8080
将首页改为exam.html DirectoryIndex exam.html index.html
使用8080端口访问 Listen 8080
iptables2
工作原理
默认的4个规则表
raw表:确定是否对该数据包进行状态跟踪
mangle表:为数据包设置标记
nat表:修改数据包中的源、目标ip地址或端口
filter表:确定是否放行该数据包(过滤)
mangle表:为数据包设置标记
nat表:修改数据包中的源、目标ip地址或端口
filter表:确定是否放行该数据包(过滤)
默认的5种规则链
INPUT:处理入站数据包
OUTPUT:处理出站数据包
FORWARD:处理转发数据包
POSTROUTING:在进行路由选择后处理数据包
PREROUTING:在进行路由选择前处理数据包
其中input、output链主要用在“主机型防火墙”中,主要针对服务器本机进行保护;
而FORWARD\POSTROUTING\PREROUTING多用在“网络型防火墙”中,如使用Linux防火墙作为网关服务器,在公司内网与Ineternet之间进行安全控制
OUTPUT:处理出站数据包
FORWARD:处理转发数据包
POSTROUTING:在进行路由选择后处理数据包
PREROUTING:在进行路由选择前处理数据包
其中input、output链主要用在“主机型防火墙”中,主要针对服务器本机进行保护;
而FORWARD\POSTROUTING\PREROUTING多用在“网络型防火墙”中,如使用Linux防火墙作为网关服务器,在公司内网与Ineternet之间进行安全控制
匹配顺序
规则表之间的顺序:raw mangle nat filter
规则链之间的顺序
规则链内部各条防火墙规则之间的顺序:从上往下,一旦匹配,立即终止
iptables语法格式
iptables [-t 表名] 管理选项 [链名] [条件匹配] [-j 目标动作]
规则的匹配条件
通用匹配
协议匹配
子主题
地址匹配
子主题
接口匹配
子主题
TCP标记匹配
子主题
ICMP类型匹配
子主题
Apache
Apache服务的配置
安装:yum install httpd
查看版本号:httpd -v
主配置文件:/etc/httpd/conf/httpd.conf
默认网站的目录:/var/www/html
服务名称:httpd
网站的发布
基于域名
基于端口
基于IP地址
虚拟主机配置
vim /etc/httpd/conf/httpd.conf
网站权限的配置
客户机地址限制
用户限制:通过设置用户名和密码进行访问
日志分割
Tomcat
Tomcat布署
安装JDK
安装mysql
安装tomcat
Tomcat配置
Tomcat配置相关说明
Tomcat的主目录为/usr/local/tomcat8/
主要目录说明
配置文件说明
Tomcat主配置文件说明
基于域名的虚拟主机的配置
Tomcat+Nginx负载均衡集群
Centos7下使用tomcat发布JSP电商网站
Centos7安装JDK
Centos7安装Maven
Centos7安装Git
安装mysql并导入网站数据库
安装tomcat环境
发布电商网站
访问网站
case语句与循环语句
使用case分支语句
case语句的结构
case 变量值 in
模式 1)
命令序列1
;;
模式 2)
命令序列2
;;
.......
*)
默认命令序列
esac
case语句应用示例
使用for循环语句
for循环语句的语法结构
for 变量名 in 取值列表
do
命令序列
Done
for语句应用示例
根据姓名列表批量添加和删除用户
根据IP地址列表检查主机状态
使用while循环语句
while循环语句的语法结构
while 条件测试操作
do
命令序列
done
while语句应用示例
批量添加或删除规律编号的用户
猜价格游戏
Shell函数应用
定义函数的语法结构
[function]函数名(){
命令序列
[return x]
}
定义并调用函数的应用示例
shell脚本调试
使用echo命令进行调试
echo命令是最有用的调试脚本工具之一,一般在可能出现问题的脚本中加入echo命令,采用的是分段排查的方式
使用bash命令参数进行调试
格式:sh [-nvx] 脚本名
Linus的基本操作
目录切换
cd 目录
当前路径显示
pwd 显示完整路径
切换用户
su 用户名
辅助操作
自动补齐
Tab键
多个命令间隔
;
管道符
“|”
查看历史命令
history
清空快捷键
清空至光标前
Ctrl+U
清空至光标尾
Ctrl+K
清屏
Ctrl+L
终止命令的执行
Ctrl+C
查看内部命令的帮助信息
--help
man
Linus文件和目录的基本概念
目录结构
将所有的目录和文件数据组织为一个树型的目录结构,整个系统中 只存在一个根目录,所有的分区、目录、文件都在同一个根目录下面。
相对路径
当前目录下的某个文件或路径
绝对路径
指目录或文件的完整路径
关机指令
shutdown
init
参数说明
-t
在改变到其它 runlevel 之前﹐告诉 init 多久以后关机。
-r
重启计算器。
-k
并不真正关机﹐只是送警告信号给每位登录者〔login〕。
-h
关机后关闭电源〔halt〕。
-n
不用 init﹐而是自己来关机。不鼓励使用这个选项﹐而且该选项所产生的后 果往往不总是你所预期得到的。
-c
cancel current process 取消目前正在执行的关机程序。所以这个选项当然 没有时间参数﹐但是可以输入一个用来解释的讯息﹐而这信息将会送到每位使用者。
-f
在重启计算器〔reboot〕时忽略 fsck。
-F
在重启计算器〔reboot〕时强迫 fsck。
子主题
设定关机〔shutdown〕前的时间。
命令提示符
[root@localhost~]#
root
当前登录的用户名
localhost
本机的主机名
~
用户当前所在目录,~代表家目录
#
当前登录的用户为管理员用户
$
当前登录的用户为普通用户
root 用户的家目录是:/root
普通用户的家目录是:/home
输入输出重定向
输入重定向
<
从键盘以外的其他输入设备读取数据
<<
输出重定向
>
将命令的输出结果重定向到一个文件中,而不是显示在屏幕上
>>
错误重定向
2>
将错误信息输出到文件
2>>
vim编辑文档
光标移动
上下左右
翻页 page Down 或 Ctrl +F
pagr Up Ctrl+B
pagr Up Ctrl+B
快速跳转 #+左右方向键
快速跳转
gg
G或#G
符号显示
set nu
set nonu
复制粘贴删除
删除dd,x,Del,#dd,d^,d$
复制yy,#yy
粘贴 p
文件内容查找
/
从上而下查找字符
?
从下而上查找字符
磁盘分区和挂载
磁盘分区
(1)最多可以分为四个主分区(包含扩展分区:只能有一个,将剩余的所有空间包含在内)。
(2)主分区和扩展分区的编号:1-4为主分区和扩展分区的编号。
(3)扩展分区不能直接使用,必须在扩展分区上建立逻辑分区并格式化后才能使用。
(4)逻辑分区编号从5开始。
(2)主分区和扩展分区的编号:1-4为主分区和扩展分区的编号。
(3)扩展分区不能直接使用,必须在扩展分区上建立逻辑分区并格式化后才能使用。
(4)逻辑分区编号从5开始。
fdisk 磁盘设备名
对新加的磁盘进行分区:(分2个主分区,1个扩展分区,2个逻辑分区)
mkfs -t 分区类型(ext2 ext3 ext4) 磁盘分区名
对磁盘进行格式化
mount [-t 文件系统类型] 设备分区名 挂载点
新建挂载点,并将分区进行挂载
mount -t iso9660 /dev/sr0 /mnt/cdrom
挂载光驱设备
vim /etc/fstab
mount -a
mount -a
永久挂载
挂载文件系统
mount [选项] [设备名] [挂载点]
卸载文件系统
umount [设备名或者挂载点]
quota 磁盘配额管理
磁盘配额的概念
设置磁盘配置
先将其挂载到“/data”目录下,然后在文件系统中实现磁盘配额
启用 quota 磁盘配额
生成配额文件
编辑用户的配额设置
编辑组的配额设置
激活磁盘配额
验证并查看磁盘配额
关闭磁盘配额
利用 quotaoff -vug 命令关闭磁盘配额
VSFTP服务器
FTP:文件传输协议
工作模式[客户端/服务器],FTP服务的端口号:tcp/21、tcp/20
FTP主动模式
FTP被动模式
FTP服务器简介
FTP服务器的安装
使用默认yum源安装vsftpd软件包
#yum install vsftpd ftp
2、启动服务并设置开机自启
#systemctl start vsftpd.service 启动服务
#systemctl enable vsftpd.service 开机自启
#systemctl enable vsftpd.service 开机自启
设置防火墙与selinux机制
#firewall-cmd --permanent --zone=public --add-service=ftp
#firewall-cmd --reload
#systemctl stop firewalld
#setenforce 0
#firewall-cmd --reload
#systemctl stop firewalld
#setenforce 0
访问ftp服务器
Linux系统中使用ftp命令进行访问:
在windows客户端访问ftp服务器:软件
在windows客户端访问ftp服务器:软件
三种用户访问ftp
匿名用户访问FTP
默认允许匿名用户与系统用户访问ftp,访问的默认目录是:/var/ftp
ftp的配置文件是:/etc/vsftpd/vsftpd.conf
设置匿名用户登录ftp时不输入密码
设置匿名用户上传、新建、删除文件
设置文件权限
设置匿名用户上传或新建文件的权限
设置不允许系统用户登录,只能匿名用户登录
设置匿名用户访问ftp的默认目录
配置系统用户访问FTP
系统用户默认访问主目录,具有上传、下载、新建、删除的权限,还可以切换到的系统其他目录
设置系统用户只能访问自己的主目录并具有所有权限,不允许切换到系统的其他目录
设置系统用户访问指定目录,不允许切换到系统的其他目录,并具上传、下载、新建、删除的权限
基于本地用户的访问控制
虚拟用户访问FTP
安装Vsftpd虚拟用户需要用到的软件及认证模块
创建虚拟用户临时文件/etc/vsftpd/ftpusers.txt
生成Vsftpd虚拟用户数据库认证文件,设置权限为600
配置PAM认证文件:vim /etc/pam.d/vsftpd.vu
创建一个系统用户,用于虚拟用户映射
修改配置文件:#vim /etc/vsftpd/vsftpd.conf
分别为虚拟用户创建私有的虚拟目录与独立的配置文件
Vsftpd日志管理
Vsftp软件搭建的FTP服务器的日志文件
日志文件输出格式
samba服务
samba服务器的搭建
首先:在服务端安装samba服务
其次:配置samba服务(共享文件的路径、访问权限)
最后:做测试
samba具体操作步骤
第一步:准备软件仓库:yum安装(本地源)
第二步:安装samba服务----yum install samba samba-client
samba :服务端程序
samba-client:客户端程序
第三步:配置samba服务
第四步:启动服务(重启服务)【每次修改完配置文件后都需要重启才生效】
服务名称:smb.service nmb.service
重启服务:systemctl restart smb nmb
第五步:关闭防火墙和selinux配置
systemctl stop firewalld 关闭防火墙
setenforce 0 关闭selinux
第六步:新建samba用户并设置密码
useradd -s /bin/nologin smbsuer1 新建一个不能登录到系统的用户
mbpasswd -a smbsuer1 将用户设置为samba用户
第七步:测试
1.在Linux客户端测试:
查报服务器有哪些共享文件:smbclient -L ens33地址
访问服务器的共享文件:smbclient -U smbsuer1 //ens33地址/共享文件名
2.在windows客户端测试
在资源管理器中输入:\\Linux地址\共享文件名
补充:访问权限受两个地方影响
文件本身的权限
配置文件中的共享权限:
远程访问与控制
配置SSH及配置文件
sshd服务的配置文件是:/etc/ssh/sshd_config
服务监听选项
vim /etc/ssh/sshd_config
用户登录控制
PermitRootLogin no //禁止root用户登录
登录验证方式
密码验证
密钥对验证
PubkeyAuthentication yes //启用密钥对验证
AuthorizedKeysFile .ssh/authorized_keys //指定公钥库数据文件
AuthorizedKeysFile .ssh/authorized_keys //指定公钥库数据文件
命令程序ssh、scp、sftp
ssh远程登录
举例:以student用户远程登录到主机192.168.75.158的2345端口
[root@localhost ~]#ssh -p 2345 student@192.168.75.158
[root@localhost ~]#ssh -p 2345 student@192.168.75.158
scp远程复制
举例:将远程主机的/etc/passwd文件复制到本机,
将本机的/var/log/复制到远程主机。
[root@localhost ~]#scp root@192.168.75.158:/etc/passwd /root/pwd11.txt
[root@localhost ~]#scp -r /var/log root@192.168.75.158:/logbak
将本机的/var/log/复制到远程主机。
[root@localhost ~]#scp root@192.168.75.158:/etc/passwd /root/pwd11.txt
[root@localhost ~]#scp -r /var/log root@192.168.75.158:/logbak
sftp安全ftp
举例:使用sftp远程登录,并进行文件上传与下载。
[root@localhost ~]#sftp student@192.168.75.158
[root@localhost ~]#sftp student@192.168.75.158
图形工具MobaXterm
MobaXterm是windows下一款功能非常强大的安全终端模拟软件,支持Telnet、SSH、SFTP等协议,可以方便地对Linux主机进行远程管理。
构建密钥对验证的SSH体系
在Linux客户端使用密钥对登录服务器
在客户端创建密钥对
将公钥上传至服务器
在服务器中导入公钥文本
配置sshd_config文件允许密钥对访问
客户端使用密钥对登录服务器
在windows系统中使用putty实现密钥对登录服务器
首先要用PuTTYgen 生成密钥对
点击Save private key按钮,选择一个存放文件的路径并定义名称,点击“保存”
复制公钥到Linux服务器
关闭SELinux
设置Putty通过密钥登陆
TCP Wrappers访问控制
CP Wrappers概述
TCP Wrappers 的访问策略
策略的配置格式
<服务程序列表>:<客户机地址列表>
服务程序列表、客户机地址列表之间以冒号分隔,在每个表内的多个项之间以逗号分隔。
服务程序列表、客户机地址列表之间以冒号分隔,在每个表内的多个项之间以逗号分隔。
访问控制的基本原则
实际应用TCP Wrappers机制时,较宽松的策略可以是“允许所有,拒绝个别”,只在hosts.deny文件中添加拒绝策略就可以了。较严格策略是“允许个别,拒绝所有”,除了在hosts.allow中添加允许策略外还需要在hosts.deny文件中设置“ALL:ALL”的拒绝策略。
举例:只允许61.63.65.67的主机或者位于192.168.2.0/24网段的主机访问sshd服务,拒绝其他地址。
[root@aminglinux ~]#vim /etc/hosts.allow
sshd:61.63.65.67,192.168.2.*
[root@aminglinux ~]#vim /etc/hosts.deny
sshd:ALL
举例:只允许61.63.65.67的主机或者位于192.168.2.0/24网段的主机访问sshd服务,拒绝其他地址。
[root@aminglinux ~]#vim /etc/hosts.allow
sshd:61.63.65.67,192.168.2.*
[root@aminglinux ~]#vim /etc/hosts.deny
sshd:ALL
DNS服务
服务器端的设置
安装DNS服务相关的软件包:bind
子主题
配置文件
首先配置主配置文件
子主题
其次配置包含文件(配置区域):vim named.rfc1912.zones
子主题
最后配置区域配置文件:区域配置需要手动添加
子主题
firewalld防火墙
基础概念及优点
区域的概念
字符管理工具
区域管理
服务管理
端口管理
伪装IP
端口转发
多区域的应用
firewalld富规则
图形管理工具
Nginx服务与LNMP部署
Nginx服务的基本配置
使用网络源安装Nginx服务
配置文件Nginx
访问状态统计
Nginx服务管理
Nginx访问控制
基于授权的访问控制
基于客户端的访问控制
Nginx虚拟主机
基于域名的虚拟主机
基于IP的虚拟主机
基于端口的虚拟主机
LNMP应用布署
安装和配置mariadb数据库
安装PHP解析环境
LNMP应用布署
部署Nginx+Apache动静分离
shell
基本命令
系统工作指令
参考手册
man
输出
echo [字符串 | $变量]
显示、设置时间
date [选项] [+指定的格式]
网络下载
wget [下载地址]
-b 后台下载模式
-P 下载到指定目录
-t 最大尝试次数
-c 断点续传
-p 下载页面内所有资源,包括图片、视频等
-r 递归下载
进程相关
ps
-a 显示所有进程(包括其他用户的进程)
-u 用户以及其他详细信息
-x 显示没有控制终端的进程
top
pidof [服务名称]
kill [进程 PID]
ps
系统状态检测指令
网卡配置与网络状态
ifconfig [网络设备]
系统内核与系统版本
uname [-a]
性能
系统负载
uptime
内存的使用量
free -h
磁盘使用量
df -h
磁盘IO
iostat
cpu等
vmstat
mpstat
pidstat
网络io
ifstat
用户终端信息
who
登录记录
last
历史执行过的命令
history
工作目录指令
工作目录
pwd
切换工作路径
cd [目录名称]
..
-
~
~[username]
显示目录中的文件
ls [文件|文件夹]
-a 全部文件
-l 参数信息
-d 查看文件夹
ll
tree
文本文件编辑命令
查看内容
cat [文件]
-n 显示行号
more [文件]
enter 下一行
space 下一页
head -n [num] [文件]
tail -n [num] [文件]
-f 持续刷新
查看信息
stat [文件]
按列提取文本字符
cut [文本] -d[分隔符] -f[第几列]
比较
diff
文件目录管理命令
创建空文件、设置文件的时间
touch
创建目录
mkdir
-p 同时创建多层
复制文件
cp [源文件] [目标文件]
-a
dd if=[] of=[] bs=[] count=[]
剪切文件
mv [源文件] [目标路径|目标文件名]
删除文件或目录
rm
-f 不询问
-r 删除目录
查看文件类型
file
打包压缩与搜索命令
tar
-c 创建压缩文件
-x 解开压缩文件
-z 用 Gzip 压缩或解压
-v 显示压缩或解压的过程
-f 目标文件名
-C 指定解压到的目录
grep [文件]
-b 将可执行文件(binary)当作文本文件(text)来搜索
-c 仅显示找到的行数
-i 忽略大小写
-n 显示行号
-v 反向选择—仅列出没有“关键词”的行
find [查找路径] [寻找条件] [操作]
-name 匹配名称
-perm 匹配权限(mode 为完全匹配,-mode 为包含即可)
-exec [] {} \;
重定向
输入重定向
命令 < 文件 将文件作为命令的标准输入
命令 << 分界符 从标准输入中读入,直到遇见分界符才停止
命令 < 文件 1 > 文件 2 将文件 1 作为命令的标准输入并将标准输出到文件 2
输出重定向
命令 > 文件 将标准输出重定向到一个文件中(清空原有文件的数据)
命令 2> 文件 将错误输出重定向到一个文件中(清空原有文件的数据)
命令 >> 文件 将标准输出重定向到一个文件中(追加到原有内容的后面)
命令 2>> 文件 将错误输出重定向到一个文件中(追加到原有内容的后面)
命令 &>> 文件 将标准输出与错误输出共同写入到文件中(追加到原有内容的后面)
管道命令符
身份与权限命令
用户身份与权限
查看
id [用户名]
添加
useradd [用户名]
-d 指定用户的家目录(默认为/home/username)
-e 账户的到期时间,格式为 YYYY-MM-DD.
-g 指定一个初始的用户基本组(必须已存在)
-N 不创建与用户同名的基本用户组
-u 指定该用户的默认 UID
groupadd [群组名]
修改
usermod [用户名]
-c 填写用户账户的备注信息
-d -m 重新指定用户的家目录并自动把旧的数据转移过去
-e 账户的到期时间,格式为 YYYY-MM-DD
-g 变更所属用户组
-L 锁定用户禁止其登录系统
-U 解锁用户,允许其登录系统
-s 变更默认终端
-u 修改用户的 UID
passwd [用户名]
-l 锁定用户,禁止其登录
-u 解除锁定,允许用户登录
--stdin 允许通过标准输入修改用户密码
echo "NewPassWord" | passwd --stdin Username
-d 使该用户可用空密码登录系统
-e 强制用户在下次登录时修改密码
删除
userdel [用户名]
-f 强制删除用户
-r 同时删除用户及用户家目录
文件权限与归属
文件分类
-:普通文件
d:目录文件
l:链接文件
b:块设备文件
c:字符设备文件
p:管道文件
特殊权限
SUID
让二进制程序的执行者临时拥有属主的权限
SGID
让二进制程序的执行者临时属主组的权限
SBIT
确保用户只能删除自己的文件
设置
文件或目录的权限
chmod [权限] [文件或目录名称]
-R 文件夹递归操作
文件或目录的所有者和所属组
chown [所有者:所属组] [文件或目录名称]
-R 文件夹递归操作
文件的隐藏属性
设置文件的隐藏权限
chattr [文件] [+参数]|[-参数]
i 无法对文件进行修改
若对目录设置了该参数,则仅能修改其中的子文件内容而不能新建或删除文件
a 仅允许补充(追加)内容,无法覆盖/删除内容(Append Only)
S 文件内容在变更后立即同步到硬盘(sync)
s 彻底从硬盘中删除,不可恢复(用 0 填充原文件所在硬盘区域)
显示文件的隐藏权限
lsattr 文件
文件访问控制列表
管理文件的 ACL 规则
setfacl [文件名称]
-R 递归参数
-m 普通文件
-b 删除ACL
显示文件上设置的 ACL 信息
getfacl 文件名称
su
-
sudo
脚本
参数
$0 当前 Shell 脚本程序的名称
$# 总共有几个参数
$* 对应所有位置的参数值
$? 上一次命令的执行返回值
条件测试语句
文件测试语句
-d 测试文件是否为目录类型
-e 测试文件是否存在
-f 判断是否为一般文件
-r 测试当前用户是否有权限读取
-w 测试当前用户是否有权限写入
-x 测试当前用户是否有权限执行
-w 测试当前用户是否有权限写入
-x 测试当前用户是否有权限执行
逻辑测试语句
&&
||
!
整数值比较语句
-eq
-ne
-gt
-lt
-ge
-le
字符串比较语句
= 比较字符串内容是否相同
!= 比较字符串内容是否不同
-z 判断字符串内容是否为空
流程控制语句
if
if [] then{}
elif[]{}
else{}
fi
elif[]{}
else{}
fi
for
for [] in []
do{}
done
do{}
done
while
while []
do{}
done
do{}
done
case
case [] in
[])
do{}
[])
do{}
*)
do{}
[])
do{}
[])
do{}
*)
do{}
计划任务
at
crontab

收藏

收藏
0 条评论
下一页