一、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/iptables
CentOS6,service iptables save | start | stop | restart
CentOS7,yum install iptables-services
firewallD
服务,如下所示:
firewallD
的特点,支持区域"zone
"概念,firewall-cmd
systemctl 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 ftp
systemctl 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=YES
guest_username=vuser
user_config_dir=/etc/vsftpd/vuserconfig
allow_writeable_chroot=YES
pam_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.service
Linux
客户端,mount -t cifs -o username=user1 //127.0.0.1/user1/mnt
Windows
客户端,资源管理器访问共享,映射网络驱动器
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
,保证数据安全方式,磁盘阵列。