linux就该这么学--资料整理--持续更新
基础命令
服务管理
systemctl redhat7
systemctl start foo.service
启动服务
systemctl restart foo.service
重启服务
systemctl stop foo.service
停止服务
systemctl reload foo.service
不重启服务下重新加载配置文件
systemctl status foo.service
查看服务状态
systemctl enable foo.service
设置服务开机自动启
systemctl disable foo.service
设置服务开机不启动
systemctl is-ebabled foo.service
查看服务是否开机自启
systemctl list-unit-files --type=service
查看各个界别下的服务的启动与禁用情况
常用命令
man
man [数字] 命令|配置文件 获取命令,配置文件的帮助信息
whatis
whatis 命令 查看命令帮助信息中的NAME字段
help
help 命令 获取shell内置命令的帮助信息,which等命令找不到路径的命令都是shell内置命令(bash)
apropos
apropos 配置文件信息 查看配置文件信息中的name字段
echo
echo 字符
输出字符
echo $变量
输出变量
dete
date
查看系统当前时间
date "+%Y-%m-%d %H:%M:%S"
按照年月日小时分钟秒格式
date -s "20190101 8:30:00"
设置当前日期为2019年1月1日8:30分
reboot
reboot
重启
shutdown
shutdown [选项] 时间 关闭
-c 取消前一个关机命令
-h 关机 now.马上关机 20:20定时关机
-r 重启
halt
init
系统运行级别 /etc/inittab
0 关机
1 单用户
2 不完全多用户,不含NFS服务
3 完全多用户
4 未分配
5 图形界面
6 重启
runlevel
runlevel
查询系统的运行级别
logout
logout
退出登陆
poweroff
poweroff
关机
ps
-a 显示所有进程,包括其他用户的进行
-u 用户以及其它详细信息
-x 显示没有控制终端的进程
top
top
动态监视进程活动与系统负载等信息,类似windows任务管理器
pidof
pidof [参数] [服务名]
查询服务进程的PID值
kill & killall
kill [参数] [进程ID]
终止某个pid的服务进程
kiliall [参数] [服务名称]
终止某个指定名称的服务所对应的全部进程,类似windows任务管理器的结束进程树
alias
alias rm='rm -i'
定义一个命令的别名
write
write 用户名 给在线用户发信
Ctrl+D 保存并发送
wall
wall [发送信息] 给所有在线用户发送广播信息
ping
ping [选项] ip地址
-c num 指定ping的次数
mail [用户名] 直接mail是收信,mail 用户名是给用户发信
Ctrl+D 保存发送
h 返回邮件列表
d num 删除邮件
q 退出
系统状态检测命令
ifconfig
ifconfig [网络设备] [参数] 获取网卡配置与网络状态等信息
ifconfig 网卡名 IP地址 给网卡设置IP地址,临时生效,重启失效
ifconfig 网卡名:1 IP地址 增加虚拟网卡,绑定多个IP
uname
uname [-a]
查看系统名称,系统内核,主机名,内核发型版本,节点名,系统时间,硬件名称,硬件平台,处理器类型,操作系统名称等
uptime
uptime
查看系统的负载信息
free
free [-h]
显示系统内存的使用量
who
who [参数]
查看当前登陆主机的用户终端信息
格式:登陆的用户名 登陆终端(tty本地,pts远程终端) 登陆时间 登陆的主机地址
w
w [参数] [用户名]
显示目前登入系统的用户信息
last
last [参数]
查看所有系统的登陆记录
lastlog
lastlog [选项] [用户] 显示所有系统用户的最后登陆信息
-u uid 查看指定用户的最后登陆信息
setup
setup 配置网络
netstat
netstat [选项] 显示网络相关信息
-t tcp协议
-u udp协议
-l 监听
-r 路由
-n 显示ip地址和端口号
netstat -an 查看本机所有的网络连接
netstat -tlun 查看本机监听的端口
netstat -rn 查看本机路由表
traceroute
traceroute ip|域名
显示数据包到主机间的路径,windows中的tracert
history
history [参数]
显示历史执行过的命令 -c 删除历史命令记录
sosreport
sosreport
收集系统配置和架构信息并输出诊断文档
工作目录切换
pwd
pwd
显示用户当前所处的工作目录
cd
cd [目录名称] 切换工作路径
cd - 切换上一个目录
cd ~ 切换到家目录
cd ~username 切换到username的家目录
ls
文件类型(d目录,l软链接,-文件) 权限(ugo) 引用计数(链接) 所有者 所属组 文件大小(字节) 文件最后修改时间
ls [选项] [文件] 显示目录文件信息
ls -a all,查看全部文件,包括隐藏文件
ls -d 查看目录属性
ls -l long,查看详细信息
ls -h 显示容易阅读的文件大小
ls -i 查看文件的i节点
文本文件编辑命令
cat
cat [参数] [文件名] 查看内容较少的纯文本文件
cat -n 显示行号
tac
tac 文件
倒着显示文本,cat的倒着写
more
more [选项] 文件
查看内容较多的纯文本文件
快捷键 | 功能 |
---|---|
Q|q | 退出 |
enter | 换行 |
空格\f | 翻页 |
less
less 文件名
分页显示文件内容
快捷键 | 功能 |
---|---|
enter | 换行 |
空格\f | 翻页 |
向上箭头 | 向上换行 |
/关键词 | 搜索关键词 |
n | 下一个搜索的关键词 |
pageup | 向上翻页 |
head
head [选项] [文件] 查看纯文本文档的前N行
head -n 20 [文件名] 查看前20行
tail
tail [选项] [文件] 查看纯文本文件的后N行
tail -n 20 文件名 查看后20行
tail -f 文件名 持续刷新文件内容
tr
tr [原始字符] [目标字符] 替换文本文件中的字符
cat 1.txt | tr a m 将1.txt中的a替换成m,实际文件中并没有改变,只在输出时改变
wc
wc [参数] 文本 统计指定文本的行数
wc -l 只显示行数
wc -w 只显示单词数
wc -c 只显示字节数
stat
stat 文件名
查看文件的具体存储信息和时间等信息
cut
cut [参数] 文本 按列提取文本字符
-d 分隔符
-f 取的列数
cut -d: -f1 /etc/passwd 提取passwd文件中的第一列(用户名)信息
diff
diff [参数] 文件... 比较多个文本文件的差异
--brief 比较两个文件是否相同
diff --brief 1.txt 2.txt
-c 详细比较多个文件的差异之处
diff -c 1.txt 2.txt
ln
硬链接相当于 cp -p + 同步更新
通过i节点判断软硬链接,软链接在ls -l时会有箭头指向->
硬链接不能针对目录创建,不能跨分区创建
ln [参数] 源文件 目标文件
-s 创建软链接
文件目录管理
touch
touch [选项] [文件...] 创建空白文件或设置文件时间
touch -a 修改文件读取时间(atime)
touch -m 修改文件修改时间(mtime)
touch -d "2019-09-01" 文件名 同时修改atime和mtime
mkdir
mkdir [选项] 目录名 创建空白目录
mkdir -p a/b/c 递归创建目录
rmdir
rmdir 目录名
删除空目录
cp
cp [选项] 源文件1,2,3 目标文件 复制文件或目录
cp -p 保留原始文件的属性
cp -d 若对象为链接文件,保留链接文件的属性
cp -r 递归复制(用于目录)
cp -i 如果目标文件存在,则询问是否覆盖
cp -a 相当于-pdr
mv
mv [选项] [源文件] [目标路径|目标文件名] 剪切文件或者文件重命名
rm
rm [选项] 文件 删除文件或目录
rm -f 文件 强制删除,不显示确认信息
rm -r 目录名 删除目录和目录里的文件
dd
dd [参数] 按照指定大小和个数的数据块来复制文件或者转换文件
if 输入的文件名
of 保存的文件名
bs 设置每个块的大小
count 设置要复制块的个数
dd if=/ect/passwd of=newpass count 1 bs=560m 从passwd文件中取出一个560m的数据块,保存成newpass
dd if=/dev/cdrom of=redhat7.0.iso 将光驱设备中的光盘制作成iso格式的镜像文件
file
file [文件|目录]
查看文件类型
打包压缩与搜索
gzip
只能压缩文件,不能压缩目录
不保留源文件
默认后缀 .gz
gzip 文件名 压缩
-d 解压缩 解压缩
gunzip 压缩包 解压缩
tar
压缩文件名 file.tar.gz 一般都是先tar然后gzip压缩,tar命令配合-z使用
tar [选项] [压缩后的文件名(配合-f使用)] [文件] 对文件压缩或解压
-c 创建压缩文件
-x 解压
-t 查看压缩包中文件
-z 用Gzip压缩或解压
-f 指定文件名(压缩或解压时都可以使用)
-j 用bzip2压缩或解压
-v 显示压缩和解压过程
-f 目标文件名
-P 保留原始权限和属性
-p 使用绝对路径来压缩
-C 指定解压到目录
tar -czvf 文件名.gz 打包目录 将目录使用Gzip方式打包
tar -xzvf 压缩包 -C 解压目录 将压缩包解压到指定目录
zip
zip [选项] [压缩后的文件名] [文件或目录] 压缩文件或目录
-r 压缩目录
unzip
unzip [压缩文件] 解压zip文件
bzip2
bzip2 [选项] [文件] 压缩文件
-k 压缩后保留源文件
grep
grep [选项] [文件] 在文本中执行关键词搜索并显示匹配的结果
-b 将可执行文件(binary)当作文本文件来搜索
-c 仅显示找到的行数
-i 忽略大小写
-n 显示行号
-v 反向选择--仅列出没有关键词的行
grep 1111 1.txt 在1.txt中搜索1111
find
find [查找路径] 寻找条件 操作 按照指定条件查找文件
-name 匹配名称
-iname 不区分大小写
-perm 匹配权限(mode为完全匹配,-mode为包含即可)
-user 匹配所有者
-group 匹配所有组
-mtine -n +n 匹配修改内容的时间(-n是n天以内,+n是n天以前)
-atime -n +n 匹配访问文件的时间
-ctime -n +n 匹配修改文件权限的时间
-nouser 匹配无所有者的文件
-nogroup 匹配无所有组的文件
-newer f1 f2 匹配比文件f1新但是比f2旧的文件
-a 两个条件同时满足 find / -size+1600 -a -size -2000
-o 两个条件满足一个即可
--type b/d/v/p/l/f 匹配文件类型(块设备/目录/字符设备/管道/链接文件/文本文件)
-inum 根据i节点查找
-size 匹配文件大仙(+50k是查找超过50k的文件,-50k是查找小于50k的文件,50是等于50k)
-prune 忽略某个目录
-exec …… {} \; 后面跟用于进一步处理搜索结果的命令 find / -name inittab -exec ls {} \;
-ok …… {} \; 询问是否执行,后面跟用于进一步处理搜索结果的命令 find / -name inittab -ok ls {} \;
find /etc -name "host*" 搜索etc目录下所有以host开头的文件
find / -perm -4000 搜索整个系统中权限中包括SUID权限的所有文件
find / -user mrhonest -exec cp -a {} /root/findfile/ \; 在整个文件系统中找出所有归属于mrhonest用户的文件并复制到root/findfile目录,({}表示find命令搜索出的每一个文件)
locate
locate 文件名 搜索文件,基于资料库查找文件,/tmp等临时文件目录的文件不会更新到资料库中
-i 不区分大小写
updatedb 更新资料库,此命令直接使用,updatedb不是参数
which
which 命令 搜索命令所在目录及别名信息
whereis
whereis 命令 搜索命令所在目录及帮助信息位置
管道符,重定向,环境变量
输入输出重定向
标准输入重定向(STDIN,文件描述符为0):默认从键盘输入,也可以从其它文件或者命令中输入
标准输出重定向(STDOUT,文件描述符为1):默认输出到屏幕
错误输出重定向(STDERR,文件描述符为2):默认输出到屏幕
- 输入重定向
命令 < 文件 将文件作为命令的标准输入
命令 << 分界符 从标准输入中读入,知道遇见分界符才停止
命令 < 文件1 > 文件2 将文件1作为命令的标准输入并将标准输出到文件2
wc -w < 1.txt 把1.txt中的内容交给wc统计
- 输出重定向
命令 > 文件 将标准输出重定向到一个文件中(清空原有的文件数据)
命令 2> 文件 将错误输出重定向到一个文件中(清空原有文件的数据)
命令 >> 文件 将标准输出重定向到一个文件中(追加到原有的内容后面)
命令 2>> 文件 将错误输出重定向到一个文件中(追加到原有的内容后面)
命令 >> 文件 2>&1 将标准输出与错误输出共同写入到文件中(追加到原来的内容后面)
命令 &>> 文件 同上,将标准输出与错误输出共同写入到文件中(追加到原来的内容后面)
管道命令符
- | 将前一个命令原本要输出到屏幕的标准正常数据当作最后一个命令的标准输入
grep "/sbin/nologin" /etc/passwd | wc -l 统计被限制登陆用户的数量
ls -l /etc | more 用翻页的形式查看/etc下的文件列表信息
echo "111111" | passwd --stdin root 一条命令修改root用户密码
命令行的通配符
* 匹配多个字符
? 匹配单个字符
[0-9] 匹配0-9之间的单个数字字符
[abc] 匹配a,b,c单个字符
[a-z] 匹配a-z的单个字符
常用转义字符
\ 反斜杠:后面的变量变为单纯的字符串
'' 单引号:转义其中所有的变量为单纯的字符串
"" 双引号:保留其中的变量属性,不进行转义处理
`` 反引号:把其中的命令执行后返回给结果
mrhonest = 5 定义变量
echo "$mrhonest" 输出变量
echo '$mirhonest' 输出$mrhonest
重要的环境变量
HOME 用户的主目录
SHELL 用户在使用的shell解释器名称
HISTSIZE 输出的历史命令记录条数
HISTFILESIZE 保存的历史命令记录条数
MAIL 邮件保存路径
LANG 系统语言,语系名称
PANDOM 生成一个随机数字
PS1 Bash解释权的提示符
PATH 定义解释器搜索用户执行的命令路径
EDITOR 用户默认的文本编辑器
WORKDIR=/HOME/WORK 创建变量
export WORKDIR 提升为全局变量
VIM与Shell命令脚本
vim文本编辑器
- 命令模式
i 输入模式,光标当前位置
a 输入模式,光标后以为
o 输入模式,光标下面插入一个空行
ESC 退出写入模式
- 输入模式
dd 删除(剪切)光标所在的整行
5dd 删除(剪切)光标开始的5行
yy 复制光标所在的整行
5yy 复制光标处开始的5行
n 显示搜索命令定位到的下一个字符串
N 显示搜索命令定位到的上一个字符串
u 撤销上一步的操作
p 将之前删除(dd)或复制(yy)过的数据粘贴到光标后面
- 末行模式
:w 保存
:q 退出
:q! 强制退出(放弃对文档的修改内容)
:wq! 强制保存退出
:set nu 显示行号
:set nonu 不显示行号
:命令 执行该命令
:整数 跳转到该行
:s/one/two 将光标所在行的第一个one替换成two
:s/one/two/g 将光标所在行的所有one替换成two
:%s/one/two/g 将全文中的所有one替换成two
?字符串 在文本中从下至上搜索该字符串
/字符串 在文本中从上到下搜索该字符串
配置Yum软件仓库
编写Shell脚本
运行
bash shell.sh
执行sh脚本接收用户的参数
$0 当前shell脚本程序的名称
$# 参数的总数
$* 所有位置的参数值
%? 显示上一次命令的执行返回值
$N 第N个参数的值
判断用户的参数
测试语句格式 [ 条件表达式 ] 条件表达式两边均有一个空格
文件测试语句
-d 测试文件是否为目录类型
-e 测试文件是否存在
-f 判断是否为一般文件
-r 测试当前用户是否具有权限读取
-w 测试当前用户是否具有权限写入
-x 测试当前用户是否具有权限执行
逻辑测试语句
&& 与
|| 或
! 非
整数值比较语句
** 0 = true ** ** 非0的数字 = false **
-eq 是否等于
-ne 是否不等于
-gt 是否大于
-lt 是否小于
-le 是否等于或小于
-ge 是否大于或等于
字符串比较语句
= 比较字符串内容是否相同
!= 比较字符串内容是否不同
-z 判断字符串内容是否为空
流程控制语句
if条件测试语句
```shellif [ 表达式 ]
then如果表达式成立,执行
fi
```shell
if [ 表达式 ]
then
如果表达式成立,执行
esle
表达式不成立时,执行
fi
if [ 表达式 ]
then
如果表达式成立,执行
elif [ 表达式 ]
表达式成立时,执行
else
以上两个表达式均不成立时,执行
fi
- for条件循环语句
for 变量名 in 取值列表
do
命令序列
done
- while条件循环语句
while 条件测试操作
do
命令序列
done
- case条件测试语句
case 变量值 in
模式1
命令序列1
;;
模式2
命令序列2
;;
……
*)
esac
计划任务服务程序
- 一次性计划任务:今晚23:30开启网站服务
at 23:30 设定任务时间
at>systemctl restart httpd 设定任务详情
at>Ctrl+D结束编写
at -l 查看任务
atrm 任务序号 删除任务
echo "systemctl reatart httpd" | at 23:30
一条命令建立任务
- 周期性计划任务:每周一03:25分把/home/wwwroot目录打包备份为bacaup.tar.gz
crontab -e 创建,编辑周期任务
crontab -l 查看任务
crontab -u 编辑他人的计划任务
分,时,日,月,星期,命令 任务格式
8,9,12 设置月份,表示8月,9月,12月
12-15 设置日期,表示12日到15日
/2 执行任务的间隔时间,每隔2分钟执行一次
计划任务中的"分"字段必须有数值,不能空或者是号,"日"和"星期"字段不能同时使用
usage: crontab [-u user] file
crontab [-u user] [ -e | -l | -r ]
(default operation is replace, per 1003.2)
-e (edit user's crontab)
-l (list user's crontab)
-r (delete user's crontab)
-i (prompt before deleting user's crontab)
-s (selinux context)
*/2 * * * * echo
date >> $HOME>test.txt
每隔2分钟输出时间到文件
用户身份与文件权限
用户身份与能力
管理员UID为0
系统用户UID为1-999
普通用户UID从1000开始
用户组号码:GID
useradd
useradd [选项] 用户名 创建新用户
-d 指定用户的家目录(默认为/home/username)
-e 账号到期时间,格式为:YYYY-MM-DD
-u 指定用户的默认UID
-g 指定一个初始的已存在的用户基本组
-G 指定一个或多个扩展用户组
-s 指定该用户默认的shell解释器
groupadd
`groupadd [选项] 组名 创建用户组`
usermod
usermod [选项] 用户名 修改用户属性
-c 填写用户账户的备注信息
-d -m -d和-m连用,可重新指定用户的家目录并自动吧旧的数据转移过去
-e 账户到期时间,格式为:YYYY-MM-DD
-g 变更所属用户组
-G 变更扩展用户组
-L 锁定该用户禁止其登陆系统
-U 解锁用户,允许登陆系统
-s 变更默认终端
-u 修改用户的UID
passwd
passwd [选项] [用户名] 修改用户密码,过期时间,认证信息等
-l 锁定用户,禁止登陆
-u 解锁用户,允许登陆
--stdin 允许通过标准输入修改用户密码,如 echo "newpassword" | passwd --stdin username
-d 用户可用空密码登陆系统
-e 强制用户在下次登录时修改密码
-S 显示用的密码是否呗锁定,以及密码所采用的加密算法名称
userdel
userdel [选项] 用户名 删除用户
-f 强制删除用户
-r 同时删除用户及家目录
文件权限与归属
代表符号 | 权限 | 对文件的含义 | 对目录的含义 |
---|---|---|---|
r | 读 | 可以查看文件内容 | 可以列出目录中的内容 |
w | 写 | 可以修改文件内容 | 可以在目录中创建,删除文件 |
x | 执行 | 可以执行文件 | 可以进入目录 |
- : 普通文件
d : 目录文件
l : 链接文件
b : 块设备文件
c : 字符设备文件
p : 管道文件
- 权限分配 文件所有者 文件所属组 其他用户
r:4 读
w:2 写
x:1 执行
- SUID
SUID是一种对二进制程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有属主的权限(仅对拥有执行权限的二进制程序有效)
- SGID
让执行者临时拥有属组的权限(对拥有执行权限的二进制程序进行设置)
在某个目录中创建的文件自动继承该目录的用户组(只可以对目录进行设置)
- SBIT
设置SBIT(粘滞位|保护位),可确保用户只能删除自己的文件
chmod -R o+t 文件|文件夹
设置SBIT特殊权限
chmod
-R 递归
chmod [参数] 权限 文件或目录名 设置文件或目录权限
chmod -R o+t 文件|文件夹 设置SBIT特殊权限
chmod [{ugoa}{+-=}{rwx}] 文件或目录
chmod u+w,g-w,o=rwx 文件或文件名
chmod mode=777 文件或目录
chown
-R 递归
只有管理员才可以执行
chown [参数] 所有者:所属组 文件或目录名 设置文件或目录的所有者和所属组
chown username 文件或目录 将目录的所有者改为username
chgrp
chgrp [参数] 用户组 文件或目录 更改文件或目录的所属组
-R 递归
umask
默认新建的文件(非目录)没有x执行权限
umask [参数] [缺省权限值] 显示,设置文件的缺省权限
-S 以rwx形式显示
## 文件的隐藏属性
+ chattr
```shell
chattr [+|-][参数] 文件 设置文件的隐藏权限
i 无法对文件进行修改,若对美剧设置了该参数,则仅能修改其中的子文件内容,不能新建或删除文件
a 仅允许补充(追加)内容,无法覆盖/删除内容(Append Omy)
S 文件内容在变更后立即同步到硬盘(sync)
s 彻底从硬盘中删除,不可恢复(用0填充原文件所在硬盘区域)
A 不再修改这个文件或目录的最后访问时间(atime)
b 不再修改文件或目录的存取时间
D 检查压缩文件中的错误
d 使用dump命令备份时忽略本文件/目录
c 默认将文件或目录进行压缩
u 当删除该文件后依然保留其在硬盘中的数据,方便日后恢复
t 让文件系统支持尾部合并(tail-merging)
X 可以直接访问压缩文件中的内容
lsattr
lsattr [参数] 文件
显示文件的隐藏权限
文件访问控制列表
setfacl
setfacl [参数] 文件名称 管理文件的ACL(访问控制权限)规则
-R 递归设置,针对目录
-m 针对普通文件
-b 删除ACL规则
setcacl -Rm u:mrhonest:rwx /root 设置mrhonest对root目录的rwx权限
dr-wrwx---+ +表示该文件已经设置了ACL
+ getfacl
`getfacl 文件名称` 显示文件上设置的ACL信息
## su和sudo
+ su
`su [-] 用户名` 切换用户身份,-代表把环境表里信息也变更为新用户的相应信息
+ sudo
```shell
sudo [参数] 命令名称 给普通用户提供额外的权限来完成原本root管理员才能完成的任务
-h 列出帮助信息
-l 列出当前用户可执行的命令
-u用户名或UID值 以指定的用户身份执行命令
-k 情况密码的有效时间,下次执行sudo时需要再次进行密码认证
-b 在后台执行指定的命令
-p 更改询问密码的提示语
- visudo
存储结构与磁盘划分
常见的目录名称以及相应内容
- FHS
- 绝对路径 以根目录开始
- 相对路径 以当前路径开始
/boot 开机所需文件--内核,开机菜单以及所需配置文件等
/dev 以文件形式存放任何设备与接口
/etc 配置文件,系统内所有采用默认安装方式的服务的配置文件全部保存在这个目录中,如用户账户密码,服务启动脚本,常用服务的配置文件等
/home 用户家目录
/bin 存放单用户模式下还可以操作的命令,所有用户均可以执行
/sbin 保存和系统环境设置相关的命令,只有超级用户可以使用,部分命令普通用户允许查看
/usr/bin 存放系统命令的目录,所有用户都可以执行,这些命令和系统启动无关,但是在单用户模式下不能执行
/usr/sbin 存放根文件系统不必要的系统管理命令,例如多数服务程序
/lib 开机过程中需要的命令,系统调用的函数库保存位置
/media 用于挂在设备文件的目录,建议挂载软盘,光盘
/opt 放置第三方的软件,不建议使用,建议安装到/usr/local中
/root 系统管理员的家目录
/srv 一些网络服务的数据文件目录,一些系统服务启动后,在这个目录保存所需的数据
/tmp 任何人均可使用的"共享"临时目录
/proc 虚拟文件系统,列入系统内核,进程,外部设备及网络状态等
/usr/local 用户自行安装的软件
/usr/sbin linux系统开机时不会使用到的软件/命令/脚本
/usr/share 帮助与说明文件,也可以放置共享文件
/var 动态数据保存目录,主要存放动态变化的文件,如日志等
/lost+found 当文件系统发生错误时,将一些丢失的文件片段存在在这里,这个目录只在每个分区中出现
/mnt 挂载目录,建议挂载U盘,移动硬盘等
/misc 挂载目录,建议挂载NFS服务的共享目录
/proc 虚拟文件系统,存在内存中,存在硬件信息
/sys 虚拟文件系统,存放内核相关信息
/usr 系统软件资源目录,类似c:/windows文件夹
物理设备的命名规则
IDE设备 /dev/hd[a-d]
SCSI/STAT/U盘 /dev/sd/[a-p]
软驱 /dev/fd[0-1]
打印机 /dev/lp[0-15]
光驱 /dev/cdrom
鼠标 /dev/mouse
磁带机 /dev/st0或/dev/ht0
- 主分区或扩展分区的编号从1开始到4结束
- 逻辑分区从编号5开始
文件系统与数据资料
Ext3 是一款日志文件系统,能够在系统异常宕机时避免文件系统资料丢失,并能自动修复数据的不一致与错误
Ext4 Ext3的改进版本,支持的存数容量高达1EB,能够有无限多的子目录,Ext4文件系统能够批量分配block块,提高了读写效率
XFS 是一种高性能的日志文件系统,最大支持存储容量18EB
- super block 硬盘地图
挂载硬件设备
- mount
mount 文件系统 挂载目录 挂载文件系统
-a 挂载所有在/etc/fstab中定义的文件系统
-t 指定文件系统的类型
mount /dev/sdb2 /backup 把设备/dev/sdb2挂载到/backup目录
etc/fstab
** 设备文件 挂载目录 格式类型 权限选项 是否备份 是否自检**
设备文件 一般为设备的路径+设备名称,也可以写唯一的识别码(UUID)
挂载目录 指定要挂载到的目录,需挂载前创建好
格式类型 指定文件系统的格式,如Ext3,Ext4,XFS,SWAP,iso9600(光盘设备)等
权限选项 若设备为defaults,则默认权限问:rw,suid,dev,exec,auto,mouser,async
是否备份 若为1则开机后使用dump进行磁盘备份,为0则不备份
是否自检 若为1则开机后自动进行紫盘自检,为0则不自检
umount
umount [挂载点/设备文件]
撤销已挂载设备文件,如umount /dev/sdb2
添加硬盘设备
- fdisk
fdisk [磁盘名称] 管理磁盘分区
m 查看全部可用的参数
n 添加新的分区
d 删除某个分区信息
l 列出所有可用的分区类型
t 该表某个分区的类型
p 查看分区信息
w 保存并退出
q 不保存直接退出
mkfs.*
mkfs.* 磁盘名称
按照*的文件系统格式格式化磁盘du
du [选项] [文件] 查看文件数据占用量
du -sh /* 查看系统根目录下所有文件占用多大的硬盘空间
添加交换分区
mkswap 目录名 格式化交换分区
swapon 目录名 将SWAP分区挂载到系统中
磁盘容量配额
- quota
软限制 当达到软限制时会提示用户,但仍允许用户在限定的额度内继续使用
硬限制 当达到硬限制时会提示用户,并强制终止用户的操作
- xfs_quota
xfs_quota [参数] 配额 文件系统
-c 以参数的形式设置要执行的命令
-x 专家模式
xfs_quota -x -c 'limit bsoft=3m bhard=6m isoft=2 ihard=6 tom' /boot 设置用户tom对/boot目录容量的配额:软限制3MB,硬限制6MB,创建文件数量的软限制3个,硬限制6个
- edquota
edquota [参数] [用户] 编辑用户的quota配额限制
-u 针对用户设置
-g 针对用户组设置
软链接 硬链接
硬链接(hard link) "指向源文件inode的指针",不能跨分区对目录文件进行链接
软链接(符号链接[symbolic link]) 仅包含链接文件的路径名,可跨文件系统进行链接+ inin [选项] 目标 链接文件 创建链接文件
-s 创建软链接"符号链接",不带-s参数默认创建硬链接
-f 强制创建文件或目录链接
-i 覆盖前询问
-v 显示创建链接的过程
使用RAID与LVM磁盘阵列技术
RAIL(独立冗余磁盘列阵)
RAID 0
RAIL 0技术能够有效的提升硬盘数据的吞吐速度,但不具备数据备份和错误修复能力
RAID 1
将数据同时写入到多块硬盘设备上(镜像或备份),当其中某一块应硬盘发生故障后,一般立即自动以热交换的方式来恢复数据的正常使用
RAID 5
把硬盘设备的数据奇偶校验信息保存到其它硬盘设备中
RAID 10
RAID 1 + RAID 0的"组合体",该技术至少需要4块硬盘
部署磁盘列阵
- mdadm
mdadm [模式] <RAID设备名称> [选项] [成员设备名称] 管理linux系统中的软件RAID硬盘列阵
-a 检测设备名称
-n 指定设备数量
-l 指定RAID级别
-C 创建
-v 显示过程
-f 模拟设备损坏
-r 移除设备
-Q 查看摘要信息
-D 查看详细信息
-S 停止RAID磁盘列阵
mdadm -Cv /dev/md0 -a yes -n 4 -l 10 /dev/sdb /dev/sdc /dev/sdd /dev/sde -C代表创建一个RAID阵列卡,-v显示创建过程,后面跟上设备名/dev/md0 ,-a yes代表自动创建设备文件,-n4 代表使用4块硬盘来部署这个RAID磁盘列阵,-l 10代表使用RAID 10方案,最后加上4块硬盘设备的名称
mkfs.ext4 /dev/md0 将制作好的RAID磁盘列阵格式化为ext4格式
mkdir /RAID 建立目录,创建挂载点
mount /dev/md0 /RAID 将硬盘设备进行挂载
mdadm -D /dev/md0 查看磁盘列阵的相信信息
echo "dev/md0 /RAID ext defaults 0 0" >> /etc/fatab 将挂载信息写入配置文件
损坏磁盘列阵及修复
mdadm /dev/md0 -f /dev/sdb
在磁盘阵列中移除/dev/sdb磁盘
磁盘列阵+备份盘
mdam -Cv /dev/md0 -n 3 -l 5 -x 1 /dev/sdb /dev/sdc /dev/sdd /dev/sde 创建RAID 5磁盘列阵+备份盘 ,-n 3代表创建这个列阵所需的硬盘数,-l 5代表列阵的级别,-x 1代表有一块备份盘
mlfs.ext4 /dev/md0 格式化
LVM(逻辑卷管理器)
部署逻辑卷
常用LVM部署命令
功能/命令 | 物理卷管理 | 卷组管理 | 逻辑卷管理 |
---|---|---|---|
扫描 | pvscan | vgscan | lvscan |
建立 | pvcreate | vgcreate | lvcreate |
显示 | pvdisplay | vgdisplay | lvdisplay |
删除 | pvremove | vgremove | lvremove |
扩展 | vgextend | lvextend | |
缩小 | vgreduce | lvreduce |
pvcreate /dev/sdb /dev/sdc 让新添加的凉快硬盘设备支持LVM技术
vgcreate storage /dev/sdb /dev/sdc 把两块硬盘设备加入到storage卷组中
lvcreate -n -vo -l 37 storage 切割出一个约为150MB的逻辑卷设备 -l 37等于-L 150M
msfs.ext4 /dev/storage/vo 把生成好的逻辑卷格式化
mount /dev/storage/vo 目录名 挂载
扩容逻辑卷
扩容前记得卸载设备和挂载点的关联
umount 目录名 卸载挂载
lvextend -L 290M /dev/storage/vo 将vo扩展至290MB
e2fsck -f /dev/storage/vo 检查硬盘完整性
resize2fs /dev/storage/vo 重置硬盘容量
mount -a 重新挂载即可
缩小逻辑卷
umount 目录名 卸载挂载
e2fsck -f /dev/storage/vo 检查硬盘完整性
resize2fs /dev/storage/vo 128M 把逻辑卷vo的容量减小到128MB
mount -a 挂载
逻辑卷快照
快照的容量必须等于逻辑卷的容量
快照仅一次有效,一旦执行怀远操作后则会立即自动删除
vgdisplay 查看卷组的信息
lvcreate -L 120M -s -n SNAP /dev/storage/vo -s参数生产快照,-L指定大小
umount 目录名 先卸载挂载,此部是为了验证是否能恢复
lvconvert --merge /dev/storage/SNAP 恢复vo的快照
monut -a 重新挂载
删除逻辑卷
umonut 目录名 卸载挂载
vim /etc/fstab 编辑fatab文件,删除配置文件中永久生效的设备参数(挂载的设备)
lvremove /dev/storage/vo 删除逻辑卷设备,需要输入y来确认操作
vgremove storage 删除卷组,此处只写卷组名称即可,不需要设备的绝对路径
pvremove /dev/sdb /dev/sdc 删除物理卷设备
iptables与firewalld防火墙
iptables
策略与规则链
在进行路由选择前处理数据包(PRERPUTING)
处理流入的数据包(INPUT)
处理流出的数据包(OUTPUT)
处理转发的数据包(FORWARD)
在进行路由选择后处理数据包(POSTROUTING)
- ACCEPT 允许流量通过
- REJECT 拒绝流量通过,在拒绝流量后在回复一条"您的信息收到,但是被扔掉",发送方会看到端口不可达的响应
- LOG 记录日志信息
- DROP 拒绝流量通过(将流量直接丢弃,并不响应它),发送方显示响应超时,默认规则链的拒绝动作只能是这个
iptables中的基本命令参数
-P 设置默认策略
-F 清空规则链
-L 查看规则链
-A 在规则链的末尾加入新规则
-I num 在规则链的头部加入新规则
-D num 删除某一条规则
-s 匹配来源地址IP/MASK,加叹号"!"表示除这个IP外
-d 匹配目标地址
-i 网卡名称 匹配从这块网卡流入的数据
-o 网卡名称 匹配从这块网卡流出的数据
-p 匹配协议,如TCP,UDP,ICMP
--dport num 匹配目标端口号
--sport num 匹配来源端口号
iptables -L 查看防洪墙规则链
iptables -F 清空已有的防火墙规则链
iptables -P INPUT DROP 把INPUT规则链的默认策略设置为拒绝
iptables -I INPUT -s 192.168.10.0/24 -p tcp --dport 22 -j ACCEPT 将INPUT规则链设置为只允许指定网段的主机访问本机的22端口,在INPUT默认规则上添加
iptables -I INPUT -p tcp --dport 12345 -j REJECT 禁止所有人通过tcp协议访问本机12345端口
iptables -I INPUT -p udp --dport 12345 -j REJECT 禁止所有人通过udp协议访问本机12345端口
iptables -A INPUT -p tcp --dport 1000:102 -j REJECT 向INPUT规则链中添加拒绝所有主机访问本机1000-1024端口的策略
service iptables save 防火墙规则永久生效(重启后也不失效)
firewalld
firewalld中常用的区域名称及策略规则
区域 | 默认策略规则 |
---|---|
trusted | 允许所有的数据包 |
home | 拒绝流入的流量,除非与流出的流量相关,而如果流量与ssh,mdns,ipp-client,amba-client与dhcpv6-client服务相关,则允许流量 |
internal | 等同于home区域 |
work | 拒绝流入的流量,除非与流出的流量相关,而如果流量与ssh,ipp-client,dhcpv6-client服务相关,则允许流量 |
public | 拒绝流入的流量,除非与流出的流量相关,而如果流量与ssh,dhcpv6-client服务相关,则允许流量 |
external | 拒绝流入的流量,除非与流出的流量相关,而如果流量与ssh服务相关,则允许流量 |
dmz | 拒绝流入的流量,除非与流出的流量相关,而如果流量与ssh服务相关,则允许流量 |
block | 拒绝流入的流量,除非与流出的流量相关 |
drop | 拒绝流入的流量,除非与流出的流量相关 |
终端管理工具
firewalld-cmd命令中使用的参数以及作用
参数 | 作用 |
---|---|
--get-default-zone | 查询默认的区域名称 |
--get-default-zone=<区域名称> | 设置默认的区域,使其永久生效 |
--get-zones | 显示可用的区域 |
--ger-services | 显示预先定义的服务 |
--get-active-zones | 显示当前正在使用的区域与网卡名称 |
--add-source= | 将源自此IP或子网的流量导向指定区域 |
--add-interface=<网卡名称> | 将源自该忘啦的所有流量都导向某个指定区域 |
--remove-source= | 不再将源自此IP或子网的流量导向某个指定区域 |
--change-interface=<网卡名称> | 将某个网卡与区域进行关联 |
--list-all | 显示当前区域的网卡配置参数,资源,端口以及服务等信息 |
--list-all-zones | 显示所有区域的网卡怕配置参数,资源,端口以及服务等信息 |
--add-service=<服务名> | 设置默认区域允许该服务的流量 |
--add-port=<端口号/协议> | 设置默认区域允许该端口的流量 |
--remove-service=<服务名> | 设置默认区域不再允许该服务的流量 |
--remove-port=<端口号/协议> | 设置默认区域不再允许该端口的流量 |
--reload | 让"永久生效"的配置规则立即生效,并覆盖当前的配置规则 |
--panic-on | 开启应急状况模式 |
--panic-off | 关闭应急状况模式 |
firewalld-cmd --get-default-zone 查看firewalld服务当前所使用的区域
firewalld-cmd --get-zone-of-interface=eno16777728 查看eno16777728网卡在firewalld服务中的区域
firewalld-cmd --permanent --zone=external --change-interface=eno16777728 把friewalld服务中的eno16777728网卡的默认区域修改成external,并在系统重启后剩下
图形管理工具
iptables不错
服务的访问控制列表
- TCPWrappers
使用ssh服务管理远程主机
配置网络服务
配置网络参数
- nmtui
创建网络会话
- nmcli
绑定两块网卡
远程控制服务
配置sshd服务
基于口令的验证
基于密钥的验证
sshd服务配置文件中包含的参数以及作用/etc/ssh/sshd_config
|参数|作用|
|-----|-----|
|port 22|默认的sshd服务端口|
|listenAddress 0.0.0.0|设置sshd服务器监听的ip地址|
|protocol 2|ssh协议的版本号|
|HostKey /etc/ssh/ssh_host_key|ssh协议版本为1时,DES私钥存放的位置|
|HostKey /etc/ssh/ssh_host_res_key|ssh协议版本为2时,RSA私钥存放的位置|
|HostKey /etc/ssh/ssh_host_dsa_key|ssh协议版本为2时,DEA私钥存放的位置|
|PermitRootLogin yes|是否允许root管理员直接登陆|
|StrictModes yes|当远程用户的私钥改变时直接拒绝连接|
|MaxAuthTries 6|嘴打密码尝试次数|
|MaxSessions 10|最大终端数|
|PasswordAuthentication yes|是否允许密码验证|
|PermitEmptyPasswords no|是否允许空密码登陆|
ssh [参数] ip地址
ssh连接
安全密钥验证
ssh-keygen 在客户端生成"密钥树"
ssh-copy-id 服务器ip 把客户端主机中生产的公钥文件传送至远程主机
远程传输命令
- scp
scp [参数] 本地文件 远程账户@远程IP地址:远程目录
|参数|作用|
|---|---|
|-v|显示详细的连接进度|
|-p|指定远程主机的sshd端口|
|-r|用于传输文件夹|
|-6|使用IPV6协议|
scp /root/q.txt 192.168.1.1:/home 将本地q.txt传到192.168.1.1的home目录,使用远程的root账号
scp 192.168.1.1:/etc/passwd /root 将远程的passwd文件下载到本机root目录下
不间断会话服务
- screen
|参数|作用|
|--|--|
|-S|新建会话|
|-d|将会话"离线"|
|-r|恢复指定会话|
|-x|恢复所有会话|
|-ls|查看所有会话|
|-wipe|删除无法使用的会话|
|exit|退出会话|
Apache服务部署静态网站
配置服务文件参数
配置文件的名称 | 存放位置 |
---|---|
服务目录 | /etc/httpd |
主配置文件 | /etc/httpd/conf/httpd.conf |
网站数据目录 | /var/www/httml |
访问日志 | /var/log/httpd/access_log |
错误日志 | /var/log/httpd/error_log |
注释行信息
全局配置
区域配置
|参数|用途|
|----|----|
|ServerRoot|服务目录|
|ServerAdmin|管理员邮箱|
|User|运行服务的用户|
|Group|运行服务的用户组|
|ServerName|网站服务器的域名|
|DocumentRoot|网站数据目录|
|Directory|网站数据目录的权限|
|Listen|监听的ip地址与端口|
|DirectoryIndex|默认的索引页页面|
|ErrorLog|错误的日志文件|
|Customlog|访问日志文件|
|Timeout|网页超市时间,默认为300秒|
个人用户主页功能
htpasswd -c /etc/httpd/passwd mrhonest 生成范文mrhonest个人主页所需要的密码
配置401认证 见书228页
虚拟主机功能
vim /etc/httpd/conf/httpd.conf
编辑配置文件,添加虚拟主机,格式如下:
<VirtualHost 192.168.1.1:80>
DocumentRoot /home/wwwrorr/www1
ServerName www.mrhonest.com
<Directory /home/wwwroot/www1>
AllowOVerride None
Require all granted
</VirtualHost>
基于主机域名
基于端口号
Apache的访问控制
使用vsftpd服务传输文件
文件传输协议
主动模式:ftp服务主动向客户端发起连接请求
被动模式:ftp服务器等待客户端发起连接请求(ftp的默认工作模式)
vsftpd服务程序常用的参数以及作用
|参数|作用|
|----|----|
|listen=[YSE|NO]|是否以独立运行的方式监听服务|
|listen_address=IP|设置要监听的IP地址|
|listen_port=21|设置ftp服务的监听端口|
|download_enable=[YES|NO|是否允许下载文件|
|userlist_enable=[YES|NO] userlist_deny=[YES|NO]|设置用户列表为"允许"还是"禁止"操作|
|max_clients=0|最大客户端连接数,0为不限制|
|max_per_ip=0|同一IP地址的最大连接数,0为不限制|
|anonymous_enable=[YES|NO]|是否允许匿名用户上传文件|
|anon_upload_enable=[YES|NO]|是否允许匿名用户上传文件|
|anon_umask=022|匿名用户上传文件的umask值|
|anon_root=/var/ftp|匿名用户的ftp根目录|
|anon_mkdir_write_enable=[YES|NO]|是否允许匿名用户创建目录|
|anon_other_write_enable=[YES|NO]|是否开放匿名用户的其它写入权限(包括重命名,删除等操作权限)|
|anon_max_rate=0|匿名用户的最大传输速率(字节/秒),0为不限制|
|local_enable=[YES|NO]|是否允许本地用户登陆|
|local_umask=022|本地用户上传文件的umask值|
|locao_root=/var/ftp|本地用户的ftp目录|
|chroot_local_user=[YES|NO]|是否将用户权限禁锢在ftp目录,以确保安全|
|local_max_rate=0|本地用户最大的传输速率(字节/秒),0为不限制|
vsftpd服务
匿名开放模式
本地用户模式
虚拟用户模式
匿名开放模式
默认目录就/var/ftp目录
245页
本地用户模式
/etc/vsftpd/user_list 和 /etc/vsftpd/ftpusers 里存放着禁止登陆的用户名
默认目录是用户家目录
249页
虚拟用户模式
虚拟用户数据文件需要创建 奇数行为用户名,偶数行为密码
252页
vim /etc/vsftpd/user.txt
db_load -T -t hash -f user.txt user.db 将用户文件内容hash加密
useradd -d 虚拟用户ftp目录 -s /sbin.nologin 虚拟用户名 创建一个禁止登陆的用户,指定其家目录(ftp目录)
简单文件传输协议
- tftp
UDP协议 无需认证
tftp ip
建立tftp连接
|命令|作用|
|----|---|
|?|帮助信息|
|put|上传文件|
|get|下载文件|
|verbose|显示详细的处理信息|
|status|显示当前的状态信息|
|binary|使用二进制进行传输|
|ascii|使用ASCII码进行传输|
|timeout|设置重传的超时时间|
|quit|退出|
256页
使用samba或NFS实现文件共享
Samba文件共享服务
不同操作系统之间文件共享
Samba服务程序中的参数以及作用
|[global]|参数|作用|
|----|----|----|
||workgroup=MYGROUP|工作组名称|
||server string = Samba Server Version %v|服务器介绍信息,参数%v为显示SMB版本号|
||log file=/var/log/samba/log.%m|定义日志文件的存放位置与名称,参数%m为来访的主机名|
||max log size=50|定义日志文件的最大容量为50KB|
||security=user|安全验证的方式,总共分4种, :
share:来访主机无需验证口令
user:需验证来访主机提供的口令后才可以访问
server:使用独立的远程主机验证来访主机提供的口令(集中管理账户)
domain:使用域控制器进行身份验证|
||passdb backed=tdbsan|定义用户后台的类型,共3种:
smbpasswd:使用smbpasswd命令为系统用户设置samba服务程序的密码
tdbsam:穿件数据库文件并使用pdbedit命令建立samba服务程序的密码
ldapsam:基于LDAP服务进行账户验证|
||load printers=yes|设置在samba服务启动时是否共享打印机设备|
||cups options=raw|打印机的选项|
|[homes]||共享参数|
||comment=Home Directories|描述信息|
||browseable=no|指定共享信息是否在"网上邻居"中可见|
||writable=yse|定义是否可以执行写入操作,与"read only"相反|
|[printers]||打印机共享参数|
配置共享资源
用于设置Samba服务程序的参数以及作用:/etc/samba/smb.conf
参数 | 作用 |
---|---|
[database] | 共享名称为database |
comment = Do not arbitrarily modify the database file | 警告用户不要随意修改数据库 |
path = /home/database | 共享目录为/home/database |
public = no | 关闭"所有人可见" |
writable = yes | 允许写入操作 |
pdbedit [选项] 账户 管理SMB服务程序的账户信息数据库
-a 用户名 建立Samba账户
-x 用户名 删除samba账户
-L 列出账户列表
-Lv 列出账户详细信息的列表
pdbedit -a -u mrhonest 为系统账号mrhonest创建smb账号
mkdir /home/database 创建用于共享资源的文件目录
chown -Rf mrhonest:mrhonest /home/database 设置共享资源的文件目录的所有者和所有组
264页
windows访问文件共享服务
\\ip
连接文件共享服务器
linux访问文件共享服务
268页
yum install cifs-utils 安装cifs-utils
vim auth.smb 编辑配置文件
username=mrhonest 目标用户名
password=222222 目标密码
domain=MUGROUP 目标所在组
chmod 600 auth.smb 由于密码明文,将文件设置只有root可以读写
mkdir /localdatabae 本机建立用于挂载目标的目录
vim /etc/fstab 编辑配置文件
//目标ip/databse /localdatabase cifs credenttials=root/auth.smb 0 0 写入自动挂载信息
NFS(网络文件系统)
linux之间文件共享
yum install nfs-utils
安装NFS服务
NFS配置文件参数:/etc/exports,格式"共享目录的路径 允许放的NFS客户端(默认权限参数)"
|参数|作用|
|----|----|
|ro|只读|
|rw|读写|
|root_squash|当NFS客户端以root管理员访问时,映射为NFS服务的的匿名用户|
|no_root_squash|当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员|
|all_squash|无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名文虎|
|sync|同时将数据写入到内存与硬盘中,保证不丢失数据|
|async|优先将数据保存到内存,然后在写入硬盘,这样效率更高,但可能会丢失数据|
vim /etc/exports
/nfsfile 192.168.1.*(rw,sync,root_squash) //IP地址与权限之间没有空格
systemctl restart rpcbind //nfs需要RPC服务,用于将NFS服务器的ip地址和端口等信息发送给客户端
systemctl enable rpcbind 将rpc(远程过程调用)服务加入开机自启
systemctl start nfs-server 启动nfs服务
systemctl enable nsf-server 加入开机自启
客户端showmount命令可用的参数和作用
参数 | 作用 |
---|---|
-e | 显示NFS服务器的共享列表 |
-a | 显示本机挂载的文件资源情况 |
-v | 显示版本号 |
-t | 指定挂载的文件系统类型 |
showmount -e 192.168.10.10 显示目标ip的共享列表
mkdir /nfsfile 建立用于挂载目标共享文件的目录
mount -t nfs 192.168.10.10:/nfsfile /nfsfile 将目标ip的共享目录nfsfile挂载到本地nfsfile目录
## autofs自动挂载服务
挂载配置文件:/etc/auto.master格式: "挂载目录 子配置文件" 详见273页
```shell
yum install autofs
vim /etc/auto.master 编辑配置文件
/media /etc/iso.misc 编辑内容
vim /etc/iso/misc 编辑子配置文件
iso -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom 编辑内容
systemctl enable sutofs 加入开机自启
使用BIND提供域名解析服务
DNS域名解析服务
279页
主服务器
从服务器
缓存服务器
安装bind服务程序
bind服务配置文件
文件 | 文件名 | 作用 |
---|---|---|
主配置文件 | /etc/named.conf | 定义bind服务程序的运行 |
区域配置文件 | /etc/named.rfc1912.zones | 保存域名和IP地址对应关系的所在位置 |
数据配置文件目录 | /var/named | 保存域名和IP地址真是对应关系的数据配置文件 |
yum install bind-chroot
安装bind和chroot扩展包
正向解析实验
281页
反向解析实验
283页
部署从服务器
285页
安全的加密传输
286页
部署缓存服务器
290页
分离解析技术
293页
使用DHCP动态管理主机地址
动态主机配置协议
299页
linux就该这么学--资料整理--持续更新的更多相关文章
- docker学习资料整理(持续更新中..)
docker最近可以说火得一踏糊涂,跟 51大神在交流技术的时候这个东西会多次被提到,当我们还玩vm+linux/freebsd的时候,人家已经上升到更高层次了,这就是差距,感觉好高大上的样子,技术之 ...
- BAT 前端开发面经 —— 吐血总结 前端相关片段整理——持续更新 前端基础精简总结 Web Storage You don't know js
BAT 前端开发面经 —— 吐血总结 目录 1. Tencent 2. 阿里 3. 百度 更好阅读,请移步这里 聊之前 最近暑期实习招聘已经开始,个人目前参加了阿里的内推及腾讯和百度的实习生招聘, ...
- Linux系统各发行版镜像下载(持续更新)
Linux系统各发行版镜像下载(持续更新) http://www.linuxidc.com/Linux/2007-09/7399.htm Linux系统各发行版镜像下载(2014年10月更新),如果直 ...
- java视频教程 Java自学视频整理(持续更新中...)
视频教程,马士兵java视频教程,java视频 1.Java基础视频 <张孝祥JAVA视频教程>完整版[RMVB](东西网) 历经5年锤炼(史上最适合初学者入门的Java基础视频)(传智播 ...
- linux硬盘IO优化相关资料整理
内核相关参数 相关内核参数,有条件的话可以修改参数测试验证一下. 1./proc/sys/vm/dirty_ratio 这个参数则指定了当文件系统缓存脏页数量达到系统内存百分之多少时(如10%),系统 ...
- 【Linux系列汇总】小白博主的嵌入式Linux实战快速进阶之路(持续更新)
我把之前在学习嵌入式Linux和工作中遇到问题和相关经验等,一起整理到这里,方便自己查阅和学习,温故而知新,如果能帮助到您,请帮忙点个赞: 本文的宗旨 嵌入式Linux 的项目通常需要一个团队来开发, ...
- 上百本电子书(Java/Hadoop/Spark/Linux/机器学习/)免费分享 百度云持续更新
分享一下自己整理的超多电子书, 其中包括:Java,Hadoop,Spark,Linux,Hbase,Hive,机器学习,区块链 目录如下: 1 Java 基础 2 Java 虚拟机 3 Java 并 ...
- Linux编程遇到的问题汇集(持续更新中)
1.源代码编译redis报告错误: undefined reference to `__sync_add_and_fetch_4' 最近项目组在实验Redis,源代码编译的时候,遇到了错误:undef ...
- linux里的那么点东西(持续更新)
作为一个程序猿的确是应该上的了windows,下的了linux的.但是由于没有对linux产生一些刚性的需求,所以使用的次数还是略少,对一些基本的concept和command还是有一些生疏.借着最近 ...
随机推荐
- 【Dart学习】-- Dart之注释
Dart支持三种注释类型: 单行注释,多行注释,文档注释. 单行注释单行注释以//开头,从//开始到一行结束的所有内容都会被Dart编译器忽略,示例代码如下: main(){ //打印输出 print ...
- JAVA导出excel如何设置表头跨行或者跨列,跪求各位大神了
sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, 0));// 开始行,结束行,开始列,结束列.只能是POI了吧?java还有其他方法吗?
- C#获取局域网ip
string hostName = System.Net.Dns.GetHostName();//本地计算机的 DNS 主机名的字符串 IPHostEntry hostInfo = Dns.GetHo ...
- js基础关系运算符
js基础关系运算符 == 是否相等(只检查值) x=5,y='-5';x==y true === 是否全等(检查值和数据类型) x=5,y='-5';x===y false != 是否不等于 5!=8 ...
- asp.net core容器&mysql容器network互联 & docker compose方式编排启动多个容器
文章简介 asp.net core webapi容器与Mysql容器互联(network方式) docker compose方式编排启动多个容器 asp.net core webapi容器与Mysql ...
- 1. Python版本的选择与安装
Python综述 Python由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年.Python是一种解释型.面向对象.动态数据类型的高级程序设计语言,它具有卓越的通 ...
- vuex-along解决vuex中存储的数据在页面刷新之后失去的问题
1. 为什么会失去? vuex可以看成是一个"提升变量"的一个工具,它是将state当做全局变量存储.F5刷新页面之后自然随着页面的刷新重新初始化state. 2. 如果解决数据保 ...
- linux 查看服务器序列号(S/N)
[root@node1~]# dmidecode -t 查看支持的参数 dmidecode: option requires an argument -- 't' Type number or key ...
- GarsiaWachs算法
解决石子问题: 题目描述如下: 有n堆石子排成一列,每堆石子有一个重量w[i], 每次合并可以合并相邻的两堆石子,一次合并的代价为两堆石子的重量和w[i]+w[i+1].问安排怎样的合并顺序,能够使得 ...
- http/tcp/ip/端口
http是www服务器和本地浏览器之间传输超文本的协议. 每一台机器都有一个属于自己的ip地址,计算机也需要知道是哪个程序来接受信息,这里也就引入了端口号,可以简单地理解每一个程序都有一个唯一的端口号 ...