一、Linux 的 awk 判断及循环、awk 数组及函数、防火墙、iptables 规则及过滤、firewalld、SSH、FTP、vsftpd 配置文件及虚拟用户、samba 服务、NFS 服务、Nginx 基本配置文件及域名虚拟主机、LAMP、DNS 和 NAS
awk 条件语句,如下所示:
- 条件语句使用
if 开头,根据表达式的结果来判断执行哪条语句,如下:
if (表达式)
awk语句1
[else
awk语句2
]
- 如果有多个语句需要执行可以使用
{} 将多个语句括起来
- 循环,如下所示:
awk 数组的定义,数组是一组有某种关联的数据变量,通过下标依次访问。数组名[下标] = 值,下标可以使用数字也可以使用字符串。- 数组的遍历,
for(变量 in 数组名),使用数组名[变量]的方式依次对每个数组的元素进行操作。删除数组,delete 数组[下标]。
命令行参数数组,ARGC 和 ARGV。 AWK 的函数,算数函数、字符串函数,自定义函数。- 算数函数,
sin()、cos()、int()、rand()、srand()。 - 字符串函数,
gsub(r,s,t)、index(s,t)、length(s)、match(s,r)、split(s,a,sep)、sub(r,s,t)、substr(s,p,n)。 - 自定义函数,如下:
function 函数名 (函数) {
awk语句
return awk 变量
}
- 防火墙分类,如下所示:
- 软件防火墙和硬件防火墙
- 包过滤防火墙和应用层防火墙,
CentOS 6 默认的防火墙是 iptables,CentOS 7 默认的防护墙是 firewallD,底层使用 netfilter。
iptables 的表和链,如下所示:
- 规则表,
filter nat mangle raw - 规则链,
INPUT OUTPUT FORWARD、PREROUTING POSTROUTING
iptables 的 filter 表,iptables -t filter 命令 规则链 规则,命令,-L、-A -I、-D -F -P、-N -X -E。iptables 的 nat 表,iptables -t nat 命令 规则链 规则,PREROUTING 是目的地址转换,POSTROUTING 是源地址转换。iptables 的配置文件,如下所示:
/etc/sysconfig/iptablesCentOS6,service iptables save | start | stop | restartCentOS7,yum install iptables-services
firewallD 服务,如下所示:
firewallD 的特点,支持区域"zone"概念,firewall-cmdsystemctl start | stop | enable | disable firewalld.service
SSH 服务介绍,远程管理的必要性,telnet 服务的问题。SSH 服务配置文件,sshd_config,如下所示:
Port 22 默认端口PermitRootLogin yes 是否允许 root 登录AuthorizedKeysFile .ssh/authorized_keys
SSH 命令,如下所示:
systemctl status | start | stop | restart | enable | disable sshd.service- 客户端命令,
ssh [-p 端口] 用户 @远程ip,SecureCRT,Xshell,putty
SSH 公钥认证,密钥认证原理,常用命令,ssh-keygen -t rsa,ssh-copy-id。FTP 服务介绍,FTP 协议,主动模式和被动模式。vsftpd 服务安装和启动,如下所示:
yum install vsftpd ftpsystemctl start vsftpd.service- 建议将
selinux 改为 permissive,getsebool -a | grep ftpd,setsebool -P <sebool> 1
vsftpd 服务配置文件,如下所示:
/etc/vsftpd/vsftpd.conf/etc/vsftpd/ftpusers/etc/vsftpd/user_list
- 使用虚拟用户进行验证,如下所示:
guest_enable=YESguest_username=vuseruser_config_dir=/etc/vsftpd/vuserconfigallow_writeable_chroot=YESpam_service_name=vsftpd.vuser
- 常见共享服务的区别,如下所示:
Samba 服务安装,yum install samba。Samba 服务配置文件,/etc/samba/smb.conf,如下所示:
[share]
comment = my share
path = /data/share
read only = No
Samba 用户的设置,如下所示:
smbpasswd 命令,-a 添加用户,-x 删除用户pdbedit,-L 查看用户
Samba 服务的启动,如下所示:
systemctl start | stop | smb.serviceLinux 客户端,mount -t cifs -o username=user1 //127.0.0.1/user1/mntWindows 客户端,资源管理器访问共享,映射网络驱动器
NFS 服务的配置和启动,如下所示:
/etc/exports,/data/share *(rw,sync,call_squash)showmount -e localhost- 客户端使用挂载方式访问,
mount -t nfs localhost:/data/share /ent - 启动
NFS 服务,systemctl start | stop nfs.service
Nginx 和 Web 服务介绍,如下所示:
Nginx 是一个高性能的 Web 和反向代理服务器Nginx 支持 HTTP、HTTPS 和电子邮件代理协议OpenResty 是基于 Nginx 和 Lua 实现的 Web 应用网关,集成了大量的第三方模块
OpenResty 的下载和安装,yum-config-manager --add-repo https://openresty.org/package/centos/openresty.repo,yum install openresty。OpenResty 的配置文件,/usr/local/openresty/nginx/conf/nginx.conf,service openresty start | stop | restart | reload。- 基于域名的虚拟主机,如下所示:
server {
listen 80;
server_name www.servera.com;
location / {
root html/servera;
index index.html index.html;
}
}
LNMP,LAMP 是 Linux+Apache+PHP+MySQL,LNMP 是 Linux+Nginx+PHP+MySQL。LNMP 环境的搭建,MySQL 安装,如下所示:
- 可以使用
mariadb 替代 yum install mariadb mariadb-server- 修改默认编码,
character_set_server=utf8,init_connect='SET NAMES utf8' systemctl start mariadb.service,show variables like '%character_set%';PHP 安装,yum install php-fpm php-mysql- 启动
php-fpm,system start php-fpm.service
Nginx 配置,如下所示:
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
DNS 服务介绍,如下所示:
DNS 域名系统FQDN 完全限定域名- 域分类,根域、顶级域
TLD - 查询方式,递归、迭代
- 解析方式,正向解析、反向解析
DNS 服务器的类型,缓存域名服务器、主域名服务器、从域名服务器
- 安装
BIND,/etc/hosts,yum install bind bind-utils,systemctl start named.service。从域名服务器 BIND 配置文件,如下所示:
zone 'test.com' IN {
type slave;
file 'slaves/test.com.zone';
masters { 10.211.55.3;};
}
- 反向解析配置文件,如下所示:
zone '0.20.10.in-addr.arpa' IN {
type master;
file '10.20.0.zone';
};
100 IN PTR www.test.com
NAS,NAS 是网络附属存储,NAS 支持的协议 NFS、CIFS、FTP,保证数据安全方式,磁盘阵列。