第一节:基础

《Linux就该这么学》第二期视频

Linux就该这么学第5期第二节:

------------
你的价值:你对公司做出的共享和你的不可替代性
------------
瑞尔系统RHEL:红帽企业系统的简写简称
------------------
ifconfig
测试性考试,竞争性考试(选择性考试)
投入程度:
----------------
百闻不如一见,看书不如实验
------------
VM虚拟机
RHEL7.0-红帽系统
有问题,千万不要不好意思,学习学到的只是之自己的,有问题一定要提出来
-------------
在新建虚拟机的时候需要选择:稍后安装操作系统:因为默认安装的是最小化的红帽系统,所以我们需要修改一下配置

虚拟机配置:
处理器核数:右键任务管理器--性能,CPU使用记录里有几个小框,就是几个核心

-------------
网络适配器:
勾选启动时连接
选择仅主机模式
--------------------
声卡-移除
USB控制器-移除
打印机-移除
--------------------
安装系统的时候:选择English English(US)
时区选择:上海

Software Selection 一定要选择:Server with GUI(带图形化界面的服务器)

-----------------
台式机的硬盘配置:机械硬盘,固态硬盘
-------------------
Subscriptiom Management Registration
选择:No.I prefer to register at later time
--------------
选择:English US
------------
快照:临时存储当前系统的状态,可以还原
用在:安装好系统后,配置好了网卡,配置好了防火墙,配置好了IP,
做一个快照,以后做服务的时候可以瞬间还原快照,而不需要重新安装一个系统了
------------
rpm:源代码安装难,用rpm安装软件包,可以降低源代码安装的难度
---------------
yum:羊仓库或是牙木仓库
Yum仓库是为了进一步去解决,rpm软件包的依赖关系
-------------
红帽的实验系统Fedora系统
----------
初始化进程:
RHEL7 使用了init
systemd 好处效率高,管理服务更加统一了,
-------------
进程:
守护进程:一直的驻扎在系统当中的进程,知道系统关系才会关闭的进程,(开机的键盘进程,鼠标进程)
----------------
一吃饭,胃里就充血了,大脑就缺血,所以就容易犯困了
------------
红帽系统是有美国军方背景支持的系统
------------
应用程序--调用系统接口API-反馈给内核--内核在把命令发给硬件
-------------
Linux中的内核:shell壳,充当了系统中人与硬件的翻译官
---------------
bash解释器
----------------
开启一个终端:特儿米脑 Terminal
--------
manual:男人,爷们,汉子,简称man,是linux系统中的帮助命令
--------------
Linux中命令和参数和对象之间必须要有空格,可以有多个空格,但是至少需要有一个空格
--------------
一个减好是字母:-
两个减号是单词:--
--------------------
若鸟与书有异,舍书而就鸟
一看到的实物为主

===========================================

第三节

echo:yikao
将字符串输出到屏幕,或是将变量提取出来
echo $PATH
提取PATH变量
----------------
date查看或是设置系统的日期和时间
date "+%Y-%m-%d"
输出系统当前的年月日
date +"%Y-%m-%d"

输出年月日时分秒
date +"%Y-%m-%d %H:%M:%S"
输出系统当前是上午还是下午
date "+%p"
输出系统中今天是这一年中的第几天
date "+%j"
----------------
重启命令
reboot
poweroff 关机 或是shutdown

----------------
清屏命令clear或是Ctrl+Alt
----------------
wget 网址
wget -c 断点续传
ps 查看系统中进程的状态
ps -aux

----------------
top查看Linux中的进程状态与负载

----------------
uptime
----------------
CPU us代表:cpu真正的使用资源,sy
id cpu的可用空间,是idle的缩写
----------------
free查看内存的使用情况

free -m 以M每秒来显示
free -h 以更人性化的方式显示出来
----------------
----------------
----------------
----------------
----------------

其他:
1.Linux中的命令大部分是区分大小写的
2.Terminal终端缩放
3.Swap交换分区
4.Mem物理内存的使用量
5.PID为1的是初始化进程

----------------------------------------------------------

-------------------------------------------

第四节

------------

=============================
第四节课
ifconfig
常用的Linux命令
1.touch 命令
Linux中一切皆文件
Linux中文件不区分后缀
Linux中文件之间之区分类型不区分后缀

目录文件
设备文件
链接文件

mtime:内容修改时间
ctime:更改权限和属性的时间
atime:读取文件内容的时间

使用touch命令创建的文件是文本文件或者叫普通文件
ls -l
查看一个文件的访问时间,修改时间
stat test

测试一下修改一个文件的时间
touch -d "07:20" test
查看一下时间是否修改过来了
ls -l test

------------------
2.file 命令 查看文件的类型
-------------
3.cat 命令 查看文件的内容
-------------------
4.mkdir 创建目录文件的命令
创建一个test目录
mkdir test
创建一个多层次的目录,递归创建,创建嵌套式的目录
mkdir -p 递归和嵌套式的为用户创建目录文件

复制操作Linux中的原始文件还是存在的
剪切操作的话原始文件是不存在的
-------------------
5.cp 复制命令
cp 源文件 需要复制到的目标文件
Linux中,命令与参数与对象之间都是需要有空格的 Linux很在意空格

复制目录的操作:递归操作
cp -r

-------------------
6.mv 剪切命令
Linux中支持Tab快捷键补齐操作

7.rm 删除文件
rm -f 删除的时候不提示确认是否删除

删除目录:需要用递归
rm -rf

dd 指定大小的复制文件
dd if=/dev/sda/ of=test bs=512 count=1指定大小的复制文件
count=1 复制1个
bs=512 大小是512字节的数据块

测试硬盘的读写速度:
dd if=/dev/zero of=abc count=1 bs=100M

-------------
把一个光盘中的东西完整的复制出来
Linux中将一个磁盘备份为一个光盘格式的镜像文件
dd if=/dev/cdrom of=rhel7.iso

----------------
8.tar 打包文件的命令
tar czvf 压缩一个文件
c 压缩
z 让打包的文件具有gzip属性
v 显示执行过程
f 指定打包出来的文件的名称是什么

tar xzvf 解压一个文件
x 解压
------------------------------
9.grep 在文本中搜索关键词的命令
查找一下sh 关键字,并显示在文本中的多少行
grep -n sh text

搜索一下那些用户不能登录系统
grep /sbin/nologin /etc/passwd
统计有多少个行
grep /sbin/nologin /etc/passwd | wc -l

| 管道符:将前一个命令的输出作为后一个命令的输入
------------
10.find / 在系统中搜索文件
从根目录开始搜索名字是fstab的文件
find / -name fstab

查找一个用户为 zhangsan的用户的所有文件
find / -user zhangsan
-------------------
find / -user zhangsan -exec cp -rf {} /home/test \;

r 递归(recursive)
f force 强制
------------
11.echo 打印命令,将字符串输出到屏幕上的
echo xxxxx
将root用户的登录密码修改为xxxx
echo xxxxx | passwd --stdin root

---------------
12.passwd 修改用户的密码的命令
修改root用户的密码
passwd root

---------------------
13.| 管道符的 重定向
输出重定向:将原本要输出到屏幕上的内容输入的后一个文件中,或是写入到后一个文件中去
输入重定向:

命令执行错误的输出:2>
命令执行正确的输出:>
小于号:< 输入
大于号:> 输出,覆盖写入
>> 追加写入,保留原始文件的数据
---------------

RAID存储
好处:
----------------
LVM:一个技术的出现总是要去解决一个问题的,因为有了问题才会出现新技术的,一个技术的出现总是伴随着问题之后出现的,
--------------
RAID的安全性和读写速度问题,于是出现了LVM技术,
磁盘的分区,格式化,挂在,磁盘配额,
----------------
对磁盘灵活的扩大或是缩小,
红帽67中已经默认启用了LVM
-----------
LVM出现时为了解决:
1.灵活调整分区的大小(增大或缩小),
2.屏蔽掉底层的硬盘属性
-------------
PV:让硬盘支持LV
VG: 合并
LV:切割
----------------
# ifconfig -a
查看IP
cd -
回到家目录
-----------------

-------------------------------------------

第五节

------------

覆盖写入:
ls > text.txt
查看一下写入的文件
cat text.txt

uptime 命令:查看系统开机运行了多长时间,系统运行时间,已登录用户的数量,平均负载量
追加重定向:
uptime >> text.txt
查看一下是否追加写入了
cat text.txt
----------------------
cp -a 复制文件后保存原始文件的权限,所有者,所有组,
----------
1.通配符
* 匹配没有,或是有无穷多个
查看硬盘:
ls /dev/sd*
或是
ls /dev/sda*

? 匹配单个字符

[] 匹配范围内的任意字符

查看已P开头的目录文件的权限
ls -ld P*

定义各一个变量:
PRICE=5
echo $PRICE
echo "Price is $PRICE"
使用转义字符
echo "Price is \$$PRICE"

"" 双引号:双引号中有变量的话,变量仍然生效
'' 单引号:如果有变量的话,当做是常量处理
`` 反引号:将括号中的内容当做命令来执行

linux的解析器是
bash

--------------------
1.alias 别名命令:
临时生效的别名命令
alias xx="cd /home"

重启后生效的别名命令在
/etc/profile 文件中写入后才生效

内部命令:bash内置的命令

外部命令:不是bash内置的命令
---------------------
Linux中的*是乘号或是通配符的意思
-----------
echo $PATH
用冒号间隔的每一个变量是
--------
公开的目录
cd /tmp
---------------
提取一个变量
echo $HOME

切换到普通用户xxx
su -xxx

--------------
env 命令
set 命令
-----------------------
Linux中的随机数变量
echo $RANDOM

查看系统中历史命令最多可以保存多少条
echo $HISTSIZE
------------
指定历史命令可以保存多少条
vim ~/.bashrc
写入
HISTSIZE=1000
执行一下
source ~/.bashrc
再查看一下当前的历史中可以保存多少条命令
echo $HISTSIZE
------------------------
su - 全局切换
su 局部切换
----------------
`` 反引号的效果等同于$()

echo "$(ifconfig)"
--------
全局变量保存在 /etc/profile文件中

设置了一个全局变量
export WWW
取消这个设置的全局变量
unset WWW
---------------
vim 编辑器 相比于vi 加强了代码着色和报错的一些提示

Linux系统中默认的编辑器是vim
Vim编辑器在Linux系统中通用性很强
-----------
vim编辑器的三种模式:
末行模式:保存退出文档,设置vim编辑器的使用环境
输入模式:编辑或是写入或是修改文件内容
命令模式:对文件的复制,剪切,搜索

vim中 o 换行输入:光标的所在位置的下一行
i在当前光标的下一个字符处开始输入
大写的O 光标的所在位置的上一行

A 移动光标到当前行的最后一行

: 冒号模式:末行模式
:wq 保存和退出
:wq! 强制保存和退出

新建一个文件
vim text.txt

vim命令模式下:
ZZ 保存并退出
ZQ 强制退出
/ 表示搜索
?把匹配的内容着色后显示出来
dd 删除光标所在行,也就是删除当前行
p 不管上一次的操作是剪切还是删除都把上一次操作的内容粘贴出来
yy 复制光标所在的当前行
从光标所在行,向下删除5行
5 dd
从光标所在行开始向下复制10行
10 yy

vim编辑器模式的模式是 命令模式
末行模式切换到命令模式 Esc
左下角:Insert
:set nu 末行模式下显示行号的
:set noun 取消行号

vim中临时显示行号
:set number

vim中永久行号显示的设置
复制一份vim配置模板到个人目录下
cp /etc/vimrc ~/.vimrc
vi ~/.vimrc
进入insert模式,在最后加二行
syntax on
set nu!
保存

设置vim编辑器默认的环境的信息
vim ~/.viminfo

/etc/vimrc 是系统范围的初始化配置
~/.vimrc 个人的vim初始化配置
进入个人配置文件
vim ~/.vimrc
写入
set number 或者 set nu
执行:wq ,保存并退出
执行一下配置文件
source ~/.vimrc

永久显示某个文件的行号
vim -c "set nu" text.txt

取消vim的高亮
:nohl
:syntax off

--------------

设置某个文件的编码格式

vim -c "set encoding=utf-8" text.txt

-------------------------------------------

-------------------------------------------

第六节

------------

linux中的命令
- 短格式
--长格式
------------------

Linux系统中文件的名字是严格区分大小写的
Windows系统中文件的名字不区分大小写,相同的文件名,Windows系统默认为:大小写是同一个文件

1.怎样配置yum仓库
vim /etc/yum.repos.d/rhel.repo
yum仓库文件的后缀必须是.repo结尾的

rpm是为了解决Linux系统中软件安装中的源码包安装的复杂性的
---------------
yum仓库的作用:
[test] 名字可以随便写
name=testtest 名字可以随便写的
baseurl=file:///media/cdrom yum软件仓库的位置
enabled=1 启用yum仓库
gpgcheck=0 不进行安装性的校验

yum的三种提供方式:

---------------
mechanical
adj. 机械的,机械学的; 呆板的; 体力的; 手工操作的;

搞技术的人在跟别人交流或是相处的时候,尽量活跃,积极一些
--------------
2.Linux中的脚本
写一个简单的脚本:
#!/bin/bash 脚本的声明
# 我是注释 脚本中的注释
ls
pwd
脚本中具体的命令
------------------
-d 测试一个文件是否是否是一个目录文件
[ -d /home ]

判断上一次的命令是否执行成功了
echo $?
0吧表示成功的执行了
1表示执行有错误

判断一个文件text是否存在,判断一个目录文件text是否存在,或是判断text这个人和文件是否存在
[ -e /home/text ]

上一条语句如果执行成功则执行打印
判断当前用户是否是root
[ $USER = root ] && echo "root"
判断当前用户是否是其他用户
[ $USER != root ] && echo "user"
判断当前用户是否是其他用户,如果是普通用户输出xxx
[ $USER != root ] && echo "user" || echo "xxx"
-----------
-eq 等于
-ne 不等于
-gt 大于
-lt 小于
-le 小于等于
-ge 大于等于
判断两个数字是否相等;
[ 80 -eq 80 ] && echo "equal"
小于
[ 80 -lt 80 ] && echo "equal"
---------------
判断一个变量是否是空值
[ -z $USER ]
echo $?
1 表示$USER变量不是空值

Linux中的变量是严格区分大小写的
--------------
3.Linux中的条件语句
#!/bin/bash
# 我是注释
DIR="/media/1234"
if [ ! -e $DIR ] 判断如果$DIR这个文件是否不都存在
then
mkdir -p $DIR 如果判断的文件目录不存在,则递归创建这个目录
fi

执行一下shell脚本
bash test.sh
查看一下这个目录是否存在
ls -ld /media/12334
------------
写一个简单的脚本
#!/bin/bash
# 我是注释
ping -c 3 -i 0.2 -w 3 $1
-c 3 ping 3次
-i 0.2 每次间隔 0.2秒
-w 3 等待时间是3秒
--------------
$0 系统内置变量,显示文件的名称
写一个简单脚本
#!/bin/bash
#
echo $0,$*,$1,$2,$3,$4,$5,

执行一下脚本
bash test.sh a b c d e f
a,b,c,d,e,

----------------
不论执行对错的输出重定向
&> /dev/null
写一个脚本
#!/bin/bash
ping -c 3 -i 0.2 -w 3 &> /dev/null
if [ $? -eq 0 ]
then
echo "HOST $1 is up"
else
echo "HOST $a is down"
fi

执行一下这个脚本
bash test.sh 192.168.20.20
----------------
写一个脚本
#!/bin/bash
read -p "Enter you score(0-100)" GRADE
if [ $GRADE -ge 85 ] && [ $GRADE -le 100 ] ;then
echo "$GRATE is Excellent"
elif [ $GRADE -ge 70 ] && [ $GRADE -le 84 ] ;then
echo "$GRADE is Pass"
else
echo "$GRADE is fail"
fi

执行一下这个脚本
bash test.sh
read -p "Enter the users password" PASSWD
for UNAME in `cat users.txt`
do
id $UNAME &> /dev/null
if [ $? -eq 0 ]
then
echo "Aleady exists"
else
useradd $UNAME &> /dev/null
echo "$PASSWD" | passwd --stdin $UNAME $> /dev/null
if [ $? -eq 0 ]
then
echo "Create Success"
else
echo "Create Failure"
fi
fi
done

执行一下这个脚本
bash test.sh redhat
--------------------------

vim 中自动设置对齐
:set autoindent
然后,按一下回车键就可可以自动设置对齐

Linux中定义一个变量可以用小写,但是尽量都用大写来定义变量
---------------
求和计算
aa=3
bb=5
dd=`expr $aa + $bb`
echo $dd
--------------------------------
vim ip.txt
192.168.10.1
192.168.10.10
192.168.10.100

写一个脚本
#!/bin/bash
HLIST=$(cat ip.txt)
for IP in $HLIST
do
ping -c 3 -i 0.2 -w 3 $IP &> /dev/null
if [ $? -eq 0 ] ; then
echo "HOST $IP is up"
else
echo "HOST $IP is down"
fi
done

执行一下这个脚本
bash test.sh
--------------------------
4.while 循环语句,只要条件成立则一直执行下去
写一个脚本
#!/bin/bash
# 我是注释
TIMES=0
PRICE=$(expr $RANDOM % 1000)
while true
do
read -p "PRICE:" INT
let TIMES++
if [ $INT = $PRICE ]
echo "IS Cool "
exit
elif [ $INT -gt $PRICE ] ;then
echo "too large"
else
echo "too small"
fi
done

执行一下这个脚本
INT 将用户猜到的值赋值给INT

-------------------------

5.case

写一个脚本
#!/bin/bash
read -p "Enter:" KEY
case "$KEY" in
[a-z]|[A-Z])
echo "zimu"
;;
[0-9])
echo "shuzi"
;;
*)
echo "error"
;;
esac

执行一下这个脚本
bash test.sh
----------------------------------

-------------------------------------------

第七节

------------

开源的代码一般质量都很高,如果你不能保证代码的质量的话,基本上是不好意思外外上传的,拿不出手
-------------
1.计划任务:
ifconfig
czvf 压缩文件
xzvf 解压文件
打包压缩命令的时候f一定是最后一位的

at 命令:设置一次性的计划任务
at 7:20
reboot
Ctrl+D 保存退出at计划命令

2.atq命令,查看一下系统中当前有哪些计划任务

查看一下编号为1的计划任务
at -c 1 查看一下具体的任务

删除编号为1的计划任务
atrm 1 删除计划任务

Linux中服务的配置就是修改了Linux中服务的配置文件
----------------
3.crontab 计划任务
分时日月星期,没有的项用*星号代替
50 3 2 1 * reboot 每年的1月2号3点50分执行重启任务
40 2 * * * reboot 每天的2点40分都会执行重启任务
40 2 * * 2 reboot 每周2的2点40分都会执行重启任务

查看一下当前系统中的计划任务
crontab -l

crontab -e -u zhangsan
20 1 21 4 * "tar czvf mysql.tar.gz /etc" 每年的4月21号的1点20执行打包mysql文件到etc
查看一下zhangsan 用户的计划任务
crontab -l -u zhangsan
------------------------------
多用户,多任务,
UDI:User IDentification
GID:Group IDentification

超级用户的uid是0
---------------------
4.useradd 命令:新建一个系统用户
useradd zhangsan
查看一下新建的这个用户的属性
id zhangsan

新建用户的时候指定用户的uid为xxxxx
useradd -u xxxxx zhangsan

新建一个用户,不允许这个用户登录系统
useradd -s /sbin/nologin zhangsan

---------------
5.passwd 命令修改用户的密码
修改zhangsan用户的密码为redhat
passwd zhangsan
redhat

uid 最大值是10亿个
修改zhangsan的用户组为xxxxx
usermod -g xxxxx zhangsan
查看一下是否修改了
id zhangsan

将用户添加到一个指定的组xxxxx中
usermod -g xxxxx zhangsan

删除一个组
groupdel xxxxx

用户组的配置文件:
vim /etc/group

每一列还是按照:冒号分隔的

组的名称
x组的密码
组id号码

用户信息的配置文件:每一列数据都是通过冒号来做间隔的,
vim /etc/passwd
x 表示是否有密码

etc/passwd:每一列用冒号作为分隔

root用户名称
x表示用户是否有密码
0用户的uid号码
0用户的gid号码
root用户的描述信息
/root用户自己的家目录
/bin/bash 用户使用的解释器是谁

文件的权限

复杂和精细保证了灵活性,
5.ls -l 命令:查看文件的属性
文件的类型:- 普通文件 d 目录文件 l 链接文件 b 块设备文件 c 字符设备文件 p 管道符文件

文件的权限9位3-3-3

3 文件所有者的权限

3 文件所属组的权限

3 既不是所有者也不是所属组的用户可以执行的权限;其他人的权限,其他用户可以对这个文件拥有的权限

. 点表示的是 fsl

1 连接数

root 文件的所有者是谁

root 文件的所有组是谁

1213 文件的大小,以字节为单位

文件的修改时间,mtime

文件的名称

----------------------------------

rwx 421 7 可读可写可执行

--------------

6.特殊权限:suid sgid sbit
让程序的执行者临时获取到文件的所有者权限

查看一下密码文件的权限
ls -l /etc/shadow
tail -n 1 /etc/shadow

切换都普通用户上面
su redhat
查看一下shadow文件的内容
cat /etc/shadow

ls -l /bin/passwd
---------
修改一个文件的权限
chmod u+s /bin/cat
创建一个目录
mkdir linux
cd linux
ls
创建一个文件
touch xxx

cd /tmp
mkdir linux
赋予权限
chmod -R g+s linux
chmod -Rf 777 linux/
----------
tmp 目录在Linux中是公用的目录
cd /tmp
touch abc
删除文件
rm abc
touch abc
chmod -Rf 777 abc
----------------------
ls -dl /tmp
chmod -Rf rwxr-xr-- /tmp
chmod -Rf 777 /tmp
查看一下目录的权限
ls -ld /tmp

chown -R xxx:xxx
chown -R xxx.xxx

添加权限
chmod o+t /tmp
ls -ld /tmp
撤销权限
chmod o-t /tmp
ls -ld /tmp
----------------
cd ~ 波浪线命令
-----------------
创建一个文件
touch abc
chattr +i abc
ls
删除这个文件 abc
rm abc
给予最高权限后再删除
chmod -Rf 777 abc
rm abc
查看一下这个文件的权限
ls -l abc
查看一下文件的隐藏权限
lsattr abc
去掉隐藏权限
chattr -i abc
查看一下文件的隐藏权限
lsattr abc
再次删除
rm -rf abc
-------------------
创建一个文件后,给这个文件添加隐藏权限
touch linux
chattr +a linux
写入信息
echo "123456" >> linux
查看一下这个文件是都写入了信息
cat linux
lsattr linux
chattr -a linux
lsattr linux
rm linux

-------------------------------------------

第八节

------------

超级管理员的账号UID一定是0
文件最大的权限是777 最小权限是000
sgid 权限

创建一个文件:touch linux
chmod 000 linux
chmod 000 -Rf /root
chattr +ai /root/linux
rm linux

chmod -Rf 555 /home/linux
ls -l
rm linux
查看隐藏权限
lsattr linux
取消隐藏权限
chattr -ai linux
lsattr linux
rm linux
chmod -Rf 777 linux
rm linux
rm -rf linux
ll
rwxrwxrwx 777
删除一个文件取决于你对这个文件的上一级目录有没有写入权限
对一个文件的编辑取决于对这个文件的编辑权限
cd /home
ls -ld linux/
赋予权限,再次删除
chmod -Rf 777 linux/
cd linux/
ls
rm linux
-----------------
切换用户
su
su - 环境变量也切换了
-----
vim /etc/sudoers
:set nu
ll /etc/shadow
sudo cat /etc/shadow

sudo 用来获取root用户的权限
--------
sui 来临时获取权限
chmod u+s /bin/cat
cat /etc/shadow
---------
隐藏权限是对所有人 都是有效的
sudo权限也是对所有人都是有效的
------
访问控制列表
setfacl
getfacl
cd /tmp
touch linux
ls
chmod -Rf 000 linux
echo "2222" > linux 重定向写入信息
对于目录
setfacl -R
对于文件,单独赋予某个文件权限
setfacl -m u:linux:rwx linux
ll linux
Linux中查看文件权限的有个小点. 是facl 访问控制列表
getfacl linux 获取控制列表的权限
再次写入
echo "2222" > linux 重定向写入信息
-----------------
粘滞位
setfacl -m u:linux:rwx linux
getfacl linux
-------------
setfacl -m u:linux:rwx tmp
cd /tmp
rm linux
-----------------
权限比较:
facl>隐藏权限>特殊权限>普通权限
. acl权限
----------------
Linux中一切都是从根目录中开始的

/boot 目录 保存开机所需文件的,
/dev 保存系统中的设备文件
/etc 存放配置文件的目录
/home 存放普通用户的家目录

/bin 存放可执行的命令的目录
/lib 存放可执行的命令的目录
/sbin 存放可执行的命令的目录

/media 挂载和删除设备用的目录
/opt 存放第三方软件的目录
/root 超级用户的家目录
/srv
/tmp 存放临时文件的目录
/proc 存放的是系统运行的状态,并不是一个真实存在的目录
/usr/local 存放系统中用户信息的
/usr/sbin 存放系统中用户信息的
/usr/share 存放帮助说明文档或是共享文件
/var 存放经常变化的文件,如日志文件,数据库
/lost+found 系统发生错误时丢失的一些文件存放在这里
----------------------
cat >> dir << EOF
>EOF
cat dir
--------------
绝对路径:已根目录开头的目录
相对目录:相对于当前所在目录写的路径
-------
1 16bytes 字节
1 16bytes 字节
1 16bytes 字节
1 16bytes 字节--512字节--32个逻辑分区(61字节)

主分区只有4个,扩展分区512字节--逻辑分区,每个逻辑分区占用16字节

主分区MBR=446字节
扩展分区+主分区=64字节
一个扇区一共512字节 446+64+2=512
最后两个字节是结束符
---------------------------
mount 准备
mount 在linux中是指挂载的意思
1EB
1GB
TB
XFS
---------------
Linux做云计算,大数据的,所以磁盘空间系统需要支持很大得到容量

linux中使用硬盘的时候需要先分区,格式化,然后在挂载后才能使用
Linux中的硬盘挂载就是将硬盘跟某个目录做关联操作
mount /dev/cdrom /media/cdrom 磁盘挂载
df -h
cd /media/cdrom
ls

卸载
umount /dev/cdrom 将硬盘的设备与目录做解除关联
cd /media/cdrom
ls
卸载的时候需要退出到其他目录才能进行操作

Linux中常见的硬件设备的目录

--------------------------------------------

rpm -q snmpd
yum list
yum install -y net-snmp*
cd /etc/yum.repos.d/
ls
vi
rpm -qa | grep snmp
cd /etc/snmp
ls
mv snmpd.conf snmpd.conf.bak Linux操作的时候,尽量不要删除原来的文件,复制一个出来或是重命名一个出来
复制的时候很长的一段,命令,在word文档中,为避免其他因素最后一个字母不复制或是第一个开头不复制,然后手敲缺少的
service snmpd status
配置开机启动
chkconfig snmpd on
chkconfig --list |grep snmpd
snmpd 0:关闭 1关闭2启用3启用4启用5启用6关闭
重启一下服务
service snmpd restart

chmod -R 775 *

df -h

mount -t nfs -o rw

-------------------------------------------

第九节

------------

mount使用的时候需要用绝对路径
mount /dev/xxx /media
-------------
新添加的磁盘
dev/sdb
对新添加的磁盘进行分区
fdisk /dev/sdb
m 查看帮助信息
p 查看分区的信息
n
p
3
+200M
--------------

2048之后的才可以使用

逻辑分区
p
l
4200
+300M
-----------------
w 保存退出
格式化,磁盘分区
mkfs
mkfs.ext4 /dev/sdb3
mkdir /backup
mount /dev/sdba3 /backup/
df -h
-------------
swap 交换分区 内存的小助手 临时的充当虚拟内存

ls /dev/sdb5
mkswap /dev/sdb5
swapon /dev/sdb5
free -h
df -h

加入到开机启动中
vim /etc/fstab
写入:
/dev/sdb3 /backup ext4 defaults 0 0
/dev/sdb5 swap swap defaults 0 0
0 是否开机自检
0 开机自检的优先级
-------------------

fstab文件的解释

开机自检的话会影响开机系统的速度,
free -m
df -h
cat /etc/fstab

设备的路径和名称
挂载点信息
文件系统的类型信息
文件系统的权限是什么,默认是defaults,
0 0 是否开机自检及自检的优先级

defaults权限

rpm -q quota
vim /etc/fstab
添加在root 行的后面 ,uquota
然后重启系统

mount | grep boot
显示系统中所有的挂载信息
mount
-------------
useradd xxx
su xxx
cd /boot
touch a b c

chmod -Rf 777 /boot
touch a b c
rm -rf a b c
------------------
xfs_quota -x -c 'linit bsoft=3m bhard=6m isoft=3 ihard=6 xxx' /boot

xfs_quota -x -c report /boot
dd if=/dev/zero of=/boot/xxx count=1 bs=6M

查看用户xxx的限制
edquota -u xxx
-------------------------
虚拟文件系统
vfs屏蔽掉底层文件系统的个性
---------
Linux中的软硬连接:快捷方式
ln -s
touch xxx
ln -s xxx1 xxx_bak
rm -rf xxx1
cat xxx_bak
------------------
软链接:相当于windows的快捷方式,指向的是源文件的名称,
硬链接:指向了磁盘物理位置的inode的 block,源文件删除后,依然可以找到数据

硬链接不能跨磁盘
软链接:指向了一个文件的路径
硬链接:重新创建了一个与inode文件
windows中文件的删除或是Linux中文件的删除
ln xx xxx
du -sh * 查看某个文件的大小
df -h

inode文件的个数

----------------
组件一个RAID 瑞得 阵列
mdadm -Cv /dev/md0 -a yes -n4 -l 10 /dev/sdb /dev/sdc /dev/sdd /dev/sde

格式化一下
mkfs.xfs /dev/md0
挂载到一个目录下
mkdir backup
mount /dev/md0 /backup
写入到开机启动中
vim /etc/fstab
/dev/md0 /backup xfs defaults 0 0
df -h
查看一下瑞得组的信息信息
mdadm -Q /dev/md0
mdadm -D /dev/md0
-----------------
mdadm -Cv /dev/md0 -n 3 -l 5 -x 1 /dev/sd{b,c,d,e}

mdadm -D /dev/md0
------------------

-------------------------------------------

Linux就该这么学第5期第十节

------------

LVM
fdisk 对磁盘进行分区
VG:把支持LVG的硬盘合并
PV:让硬盘支持LVM技术
LVM:把硬盘按所需进行任意切割
-----------
pvcreate /dev/sdb 让硬盘支持lvm技术
pvcreate /dev/sdc
vgcreate xxx /dev/sd{b,c} 将硬盘合并为一个卷组
查看一下信息
vgdisplay
lvcreate -n xsssss -l 50 dsdsdsdsd
查看一下信息
lvdisplay
------------
格式化一下
mkfs.etx4 /dev/xxx/dsdsds
挂载点,一个目录,挂载后叫挂载点
mkdir /backup
mount /dev/xxxx/dsdsds
df -h
查看占用空间
du -sh /backup

加入到开机启动项中
vim /etc/fstab
/dev/xxx/dsds /backup ext4 defaults 0 0

卸载挂载点
umount /dev/xxx/dsdsds
-----------
扩容
lvextend -L 300M /dev/xxx/dsds
mount -a
df -h
扫描一下磁盘
e2fsck -f /dev/xxxx/dsdsds
resize3fs /dev/xxx/dsdsds
mount -a
df -h
-------------------
缩小磁盘容量
umount /backup
e2fsck -f /dev/xxxx/dsdsds
resize2fs /dev/xxx/dsdsds 100M
进行缩小
lvreduce -L 100M /dev/xxxx/dsdsds
挂载一下
mount -a
tail -n 1 /etc/fstab
df -h
-------------
cd /backup
ls
-------
创建一个快照
lvcreate -L 100M -s -n xxx /dev/xxx/dsdsds
查看一下卷组信息
lvdisplay
-----------------
删除所有数据
rm -rf *
ls
pwd
---------------
umount /dev/xxxx/dsdsds
lvcreate -L 100M -s -n sxsxs /dev/xxx/dsdsds
lvdisplay
umount /backup
恢复快照
lvcovert --merge /dev/xxxx/dsdsds
--------------
对磁盘进行操作的时候,建立快照恢复快照的时候要是没有反映的话,重启一下系统
mount -a
cd /backup
-----------------

Linux中的命令是区分大小写的
iptables -L 显示
iptables -F 清空
service iptables save 保存
systemctl disable iptables
-----
cat /etc/redhat-release
------
配置一下网卡
仅主机模式:VMnet1
NAT模式:VMnet8

网卡的配置信息

vim /etc/sysconfig/network-scripts/ifcfg-eno16777728

配置好后的网卡

重启一下网络
systemctl restart network
查看一下网卡配置
ifconfig

--------------------------

第二种方法编辑网卡

nmtui 的方式配置网卡

重启一下网卡
systemctl restart network
查看一下网卡配置信息
ifconfig

------------------------------

第三种方式配置网卡

nm-connection-editor
systemctl restart network

-------------------------------------

第四种方式配置网卡信息

点一下关闭开启,相当于重启了网卡

往一个规则列中插入数据
iptables -I IINPUT -s 192.168.10.1 -p icmp -j REJECT
清空一下
iptables -F
iptables -I INPUT -p tcp --dport 22 -j REJECT
iptables -F
端口转发
iptables -I FORWARD
------------
设置一个列默认的规则是拒绝
iptables -P INOUT DROP
iptables -P INOUT REJECT
设置允许访问
iptables -I INPUT -s 192.168.10.1 -p tcp --dport 22 -j ACCEP
查看一下规则
iptables -L
删除规则
iptables -F
或者
iptables -D INPUT 1
查看一下规则
iptables -L
---------------------
内网地址是不能直接上完的
SNT:让多个用户通过单一IP地址进行上网,
DNAT:
-------------

-------------------------------------------

第11节

------------

防火墙,一般用来屏蔽掉网络或数据链路层
iptables 中的规则:
ACCEPT:允许通过
LOG:记录日志信息,然后给下一条规则继续匹配
REJECT:拒绝通过,必要时会给出提示
DROP:直接丢弃,不给出任何回应
-------------
iptables中规则的匹配的数据包:
PREROUTING:在进行路由选择前处理数据包
INPUT:处理入站的数据包
OUTPUT:处理出站的数据包
FORWARD:处理转发的数据包
POSTROUTING:在进行路由选择后处理数据包
-------------------
iptables -P INPUT DROP
----------------
Ipv4地址不够问题:

zone:区域默认的是public
firewall-cmd --get-
firewall-cmd --get-default-zone
firewall-cmd --get-zones
--------
查看某个服务是否被允许
firewall-cmd --zone=public --query-service=ssh
firewall-cmd --zone=public --query-service=http
会有报错的。写个服务的话
firewall-cmd --zone=public --query-service=httpd
清空一下
iptables -F
service iptables save
------------
查看所有的区域
firewall-cmd --get-zones
切换到某个区域
firewall-cmd --set-default-zone=trusted
firewall-cmd --set-default-zone=dmz
让防火墙立即生效
firewall-cmd --reload
查看当前防火墙的状态
firewall-cmd --get-default-zone

切断网络的所有连接
firewall-cmd --panic-on
取消切断
firewall-cmd --panic-off

firewall-cmd --zone=public --query-service=ssh

firewall-cmd --zone=public --query-service=http
写入到永久生效表中
firewall-cmd --permanent --zone=public --add-service=http
让永久配置表中的文件立即生效
firewall-cmd --reload
查看一下当前的http状态
firewall-cmd --zone=public --query-service=http
移除掉服务
firewall-cmd --zone=public --remove-service=http
firewall-cmd --permanent --zone=public --add-service=http
-----------------------
设置端口号
firewall-cmd --permanent --zone=public -add-port=8080-8085/tcp
firewall-cmd --permanent --zone=public -add-port=80/tcp
firewall-cmd --permanent --zone=public --list-ports
firewall-cmd --reload
----------------------------
图形化的界面firewall

firewall-config

邮件服务的端口号 25

查看某个服务的端口号

ICMP:

Rich Rule 富规则:更多,更复杂的设置来完成更精细的操作,更灵活
------
firewall-cmd --help|grep direct
-------------
第三种设置
vim /etc/hosts.allow 允许的操作
vim /etc/hosts.deny 不允许的操作

匹配优先级:先匹配的是allow

===================================

---------------------
两个网卡的绑定
cd /etc/sysconfig/network-scripts/
ls
---------
vim 主网卡配置

vim 次网卡配置

vim ifcfg-band0 绑定后的网卡配置

vim /etc/modprobe.d/bond.conf

写入信息

alias bond0 bonding
options bond0 miimon=100 mode=6
------------
重启一下网卡
systemctl restart network

-------------------------------------------

第12节

------------

在网上传文字块还是传图片块,就像问一斤棉花和一斤铁那个重一样
-------
cd /etc
cd ssh/
pwd
ls
vim sshd_config
写入
Port 3389 远程端口
重启一下服务
systemctl restart sshd
禁用SELinux
setenforce 0
本地连接测试一下
ssh 192.168.10.10 -p 3389
开启SELinux
setenforce 1
---------------
指定本地某个用户登录
ssh root@192.168.10.10 -p 3389
--------------
编辑一下配置文件
vim /etc/ssh/sshd_config
重启一下服务
systemctl restart sshd

---------
生成秘钥信息
ssh-keygen
cd ~/.ssh
ls
查看一下公钥信息
cat id_rsa.pub
访问一下
ssh 192.168.10.10
将公钥信息传送到服务端
ssh-copy-id 192.168.10.10

在服务器上查看一下客户端传递出来的公钥的信息
cat .ssh/

cat .ssh/known_hosts
--------
再次用客户端登录服务端
ssh 192.168.10.10
vim /etc/ssh/sshd_config

只能用秘钥验证登录

允许用远程的账户密码验证登录

禁用掉秘钥验证登录

重启一下服务,让修改的配置文件生效
systemctl restart sshd
========
linux机子之间文件的相互传递
echo "我是客户端的文件" > readme.txt
将文件传送到服务端的root目录中
scp readme.txt 192.168.10.10:/root
---------------
配置yum文件,yum文件的后缀必须是repo
vim /etc/yum.repos.d/sss.repo
写入一下信息
[xxxx]
name=sssss
baseurl=file:///demia/cdrom
enabled=1
gpgcheck=0
-----------------------
挂载一下光盘
vim /etc/fstab
/dev/cdrom /media/cdrom iso9660 defaults 0 0
安装screen
yum install screen
----------
创建一个会话
screen -S xxxx
查看一下会话
screen ls
切换到dddd会话中
screen -r dddd

--------------------
会话同步
在服务端创建一个会话、
screen -S linux

---------
客户端操作
screen -x
指定一个会话名称
screen -x 14267.linux
------------------------------

配置网站服务
IIS7 asp
NGINX php
Apache php
Tomcat jsp
-----------------
安装网站服务
yum install httpd
守护进程:一直在系统中运行的进程
以。。。d结尾的一般都是守护进程
----------
编辑一下服务的配置文件
vim /etc/httpd/
vim /etc/httpd/conf/httpd.conf
重启一下服务
systemctl restart httpd
加入到开机启动项中
systemctl enabled httpd
访问一下网站
192.169.10.10
查看一下网站文件的位置
cd /var/www/html
ls
-------------
在网站默认页面重写入信息
echo "xxxxxoooo" > index.html
pwd
-----------
修改网站的默认目录到其他目录中去
vim /etc/httpd/conf/httpd.conf
119行是网站的默认的文件的保存位置
DocumentRoot "/home/wwwroot"
systemctl restart httpd
mkdir /home/wwwroot
cd /home/wwwroot
ls
echo "sssssss" >index.html
Selinux 用来限制服务的,让服务只能获取到所需的资源,其他资源一律拒绝掉
cat /etc/selinux/config

SElinux有三种类型
强制类型
警告类型
禁止类型

SElinux的阈
SElinux的安全上下文
查看一个文件的安全上下文
ls -ldZ /var/www/html/
ls -ldZ /home/wwwroot/
----------
修改一个文件的安全上下文
semanage fcontext -a -t

查看一下文件的安全上下文
ls -lZ /home/wwwroot/index.html
让修改过的安全上下文立即去生效一下
restorecon -Rv
restorecon -Rv /home/wwwroot
-------------------
修改目录的权限
chmod -Rf 755
---------------
临时关闭SElinux
setenforce 0
临时开启SElinux
setenforce 1

---------------
getsebool -a |grep home
开机之后永久生效
setsebool -P httpd_enable_homedirs=on

消除SElinux阈的限制

生成一个密码文件
htpasswd -c /etc/httpd/passwd sssss
xxxxx
查看一下系统自动创建的密码信息
cat /etc/httpd/passwd
编辑一下配置文件
vim /etc/httpd/conf.d/userdir.conf

写入信息

systemctl restart httpd

向网页中写入内容
echo "wwwww" > www/index.html
echo "hhhhh" > bbs/index.html
echo "sssss" > tech/index.html

编辑一下主配置文件
vim /etc/httpd/conf/httpd.conf
写入下面信息

重启一下网卡
systemctl restart network
systemctl restart httpd

编辑一下上下文信息
semanage fcontext -a -t httpd_sys_content_t /home/wwwrooot/www
semanage fcontext -a -t httpd_sys_content_t /home/wwwrooot/www/*

查看一下

ls -Zd /home/wwwroot
ls -Zd /var/www/html

立即让修改过测值生效
restorecon -Rv /home/wwwroot

创建目录
mkdir -p /home/wwwroot/6111
mkdir -p /home/wwwroot/6222
写入信息
echo "6111111111" >/home/wwwroot/6111/index.html
echo "6222222222" >/home/wwwroot/6222/index.html
安装一下服务
yum install httpd
修改一下主配置文件
vim /etc/httpd/conf/httpd.conf

systemctl restart httpd
开启Selinux上下文端口
semanage fcontext -a -t httpd_user_content_t /home/wwwroot

查看一下允许的端口号有多少
semanage port -l |grep http
semanage port -a http_port_t -p tcp 6111
semanage port -a http_port_t -p tcp 6222
查看一下6111和6222是否加入了端口号中去
semanage port -l |grep http
重启一下服务
systemctl restart httpd

yum install httpd
cd /var/www/html
mkdir server
echo "Successful" >server/index.html
编辑一下配置文件
vim /etc/httpd/conf/httpd.conf

systemctl restart httpd
echo "oooxxxx" >index.html
清空一下防火墙
iptables -F

-------------------------------------------

第13节

------------

vsftd服务传输文件
SELinux限制的是服务的资源的分配
FTP:File Transfer Protocol 文件传输协议:让用户在互联网上上传与下载文件的协议
FTP服务器是支持FTP传输协议的主机,需要完成文件的传输协议需要服务端和客户端一起完成
FTP占用的是20和21端口
--------
VSFTPD:Very Secure FTP Daemon 是运行在类Unix操作系统的FTP服务器端程序
---------------
配置yum仓库
挂载设备镜像
tail -n l /etc/fstab
查看一下挂载信息
df -h
创建一个yum仓库的配置文件
vim /etc/yum.repos.d/xxxxx.repo
[dsdsdsds]
name=ssssssss
baseurl=file:///media/cdrom
enabled=1
gpgcheck=0
------------------
安装一下服务
yum install vsftpd
清空一下防火墙
iptables -F
停止一下防火墙
systemctl stop optables
禁用掉防火墙
systemctl disable iptables
编辑一下主配置文件
vim /etc/vsftpd/vsftpd.conf
修改配置文件的时候先备份一下配置文件
cd /etc/vsftpd/
ls
mv vsftpd.conf vsftpd.conf_bak
---------
反选过滤
grep -V "#" vsftpd.conf_bak
覆盖性的输出重定向
grep -V "#" vsftpd.conf_bak >vsftpd.conf

反选过滤后的配置文件:

修改后的配置文件

对于一个目录创建出来的默权限是755 目录最大的权限是777 然后就少了022权限 文件权限越小umask的值就越大
对于一个文件创建出来的默认权限是644 文件最大的权限是666
安装一下远程连接工具
yum install ftp

重启一下服务
systemctl restart vsftpd
ftp 192.168.10.10
进入到ftp中去
cd /var/ftp/pub
过滤一下ftp相关的值
getsebool -a |grep ftp

setsebool -P ftpd_full_access=on

查看一下ftp用户
id ftp
查看一下ftp的权限
cd /var/ftp
ls -ld ./
修改一下
chown -Rf ftp:ftp ./
登录一下主机上的匿名用户
ftp 192.168.10.10
anonymous
cd pub
mkdir files
---------------------------

普通用户模式

编辑一下配置文件

vim /etc/vsftpd/vsftpd.conf

修改好后的配置文件

cd /etc/vsftpd/
ls
cat ftpusers
重启一下服务
systemctl restart vsftpd

ftp 192.168.10.10
linux

root用户在ftpusers文件中所以用root用户登录ftp的时候,登录不进去的
vim ftpusers 删除root
vim user_list 删除root
重启一下服务
systemctl restart vsftpd

rename 重命名文件的名字
cd /etc/vsftpd
vim vuser.txt
单数行表示用户的名称
偶数行表示用户的密码
zhnagsan
123
lisi
123
zhaoliu
redhat
---------------
生成一个加密文件后使用
db_load -T -t hash -f vuser.txt vuser.db
查看一下
file vuser.db
file vuser.txt
修改一下权限
chmod 600 vuser.db

创建一个用户
useradd -d /var/ftproot -s /sbin/nologin virtual

chmod -Rf 755 /var/ftproot
vim /etc/pam.d/vsftpd.vu
写入一下信息
auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser
编辑一下配置文件
vim /etc/vsftpd/vsftpd.conf

修改好后的配置文件

单独给一个用户设置权限

重启一下服务

systemctl restart vsftpd
使用匿名用户登录一下ftp
ftp 192.168.10.10

------------------------------

Samba服务的实现

samba:解决Linux与windows之间的文件共享文件
安装一下服务
yum install samba
cd /etc/samba
ls
编辑一下主配置文件
cat smb.conf
备份一下配置文件
mv smb.conf smb.conf.bak
grep -V "#" smb.conf.bak
再次过滤
grep -V "#" smb.conf.bak |grep -V ";"
再次过滤# ; 空行
grep -V "#" smb.conf.bak |grep -V ";" |grep -V "^$"
重定向写入
grep -V "#" smb.conf.bak |grep -V ";" |grep -V "^$" >smb.conf

过滤后得到的文件

修改好后、的配置文件

mkdir /home/database
id linux 本地的用户
编辑一下用户
pdbedit -a linux
请空一下防火墙
iptables -F
访问一下共享
重启一下服务
systemctl restart samba
systemctl restart smb
从windows上访问一下
\\192.168.10.10 双反斜杠+IP地址

登录共享后需要有创建文件的权限

在Linux客户机子上设置共享
yum install cifs-utils
vim auth.smb
写入一下信息
username=linux
passwd=redhat
domain=MYGROUP
--------------------
设置一下权限
chmod -Rf 600 auth.smb
创建一个本地的挂载目录
mkdir /database
编辑一下开启启动的文件
vim /etc/fstab

mout -a
df -h
cd /database
ls
清空一下防火墙配置
iptables -F
创建一下挂载的目录
mkdir /mulu
设置一下权限
chmod -Rf 777 /mulu
编辑一下配置文件
vim /etc/exports
写入信息
/mulu 192.168.10.*(rw,sync,root_squash)
重启一下服务
systemctl restart rpcbind nfs
---------------------
编辑一下客户端
查看一下服务端共享出了那些可用的共享信息
showmount -e 192.168.10.10
创建一个共享目录
mkdir /mulu
编辑一下配置文件
vim /etc/fstab
写入
192.168.10.10:mulu /mulu nfs defaults 0 0
:wq
mount -a
df -h
cd /mulu
touch 1.txt

----------

AutoFs 服务:默认让共享不挂载
yum install autofs
重启一下服务
systemctl restart autofs
编辑一下配置文件
vim /etc/auto.master
写入
/media /etc/iso.misc
重建一个文件
vim /etc/iso.misc
写入
iso -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom
重启一下服务
systemctl restart autofs
df -h
cd /media
ls -a
查看一下挂载信息
df -h

cd iso
df -h
ls
pwd
卸载一下挂载的光盘
cd ~
umount /dev/sr0
df -h

每次进入iso目录都会自动的挂载光盘
cd iso
df -h

-------------------------------------------

第14节

------------

Bind域名解析
干扰越多的话,效果就越差劲
----------------
正向解析
反向机械
com 国外的域名,基本上是不会被别人删除的
cn 中国政府管理的域名,可以随时被别人删除,

域名服务器有13台
从服务器:加快了用户的访问速度,减轻了主服务器的压力
DNS:
----------
linux中一切都是文件,
对服务的配置就是在修改服务的配置文件,修改的是主配置文件
让服务的配置配置文件生效需要,重启服务
----------
systemctl restart named pid发生变化
systemctl relod named Pid不发生变化

编辑配置文件

vim /etc/named.rfc1912.zones

写入

查看一下文件
cat /etc/named.rfc1912.zones
cd /var/named
ls
cp -a 复制的时候保留文件所有的权限
cp -a named.localhost linux.con.zone
cp -a named loopback 192.168.10.arpa
vim linux.con.zone

在配置文件中写入信息,正向解析

反向解析的配置文件:反向解析:将域名解析成IP

vim 192.168.10.arpa

重启一下服务
systemctl restart network
ping 192.168.10.10
systemctl restart named
编辑一下网卡的配置文件
vim /etc/sysconfig/network-scripts/ifcfg-enoxxxxx

修改后的网卡信息

重启一下服务
systemctl restart network
ping www.linux.com
------------
nslookup
www.linux.com
192.168.10.10

------------------------------

从服务器的配置

yum install bind-chroot
vim /etc/named.conf

vim /etc/named.rfc1912.zones

写入一下信息

重启一下服务
systemctl restart named
清空一下防火墙
iptables -F
再次编辑一下配置文件
vim /etc/named.rfc1912.zones

重启一下服务
systemctl restart network
systemctl restart named

从服务器

systemctl restart network
systemctl restart named

systemctl restart network
systemctl restart named
nsloolup
www.linux.com
192.168.10.10

DNS的端口号是53
vim /var/named/chroot/etc/transfer.key
写入

scp /etc/transfer.key 192.168.10.20:/var/named/chroot/etc
cd /var/named/chroot/etc
chown root:named transfer.key
ln transfer.key /etc/

systemctl restart named

缓存服务器的配置
nm-connection-editor
systemctl restart network

yum install bind-chroot

编辑一下配置文件

vim /etc/named.conf

编辑配置文件
vim /etc/named.conf

删除掉不需要的信息

vim /etc/named.rfc1912.zones

重新写入

cd /var/named

ls
cp -a named.localhost linux.con.china
cp -a named.localhost linux.con.american
编辑一下
vim linux.con.china

vim linux.con.american

systemctl restart network
systemctl restart named
清空一下防火墙
iptables -F

-------------------------------------------

第15节

------------

DHCP:分发IP和回收IP
DHCP在同一个局域网中如果有两个的话,可能会造成IP地址冲突

作用域-排除范围(可以没有)=地址池(真正可以给用户分配使用的IP地址)
----------
yum install dhcp
编辑一下配置文件
vim /etc/dhcp/dhcpd.conf
写入
ddns-update-style interim;
ignore client-updates;
subnet 192.168.10.10 netmask 255.255.255.0 {
range 192.168.10.50 192.168.10.100;
option subnet-mask 255.255.255.0;
option routers 192.168.10.10;
option domain-name-servers 192.168.10.10;
default-lease-time 21600;
max-lease-time 43200;
}
配置一下网卡
nm-connection-editor
重启一下网卡
systemctl restart network
重启一下服务
systemctl restart dhcpd
-------------------------------
配置一下客户机:
同一个网络模式下
配置一下网卡
vim /etc/sysconfig/network-scripts/ifconfig-eno

修该好后的

重启一下网卡
systemctlrestart network
查看一下网卡信息
ifconfig
---------------------
基于mac地址的绑定网卡的IP地址的分配
tail -f /var/log/messages

配置mac地址绑定

在服务器端重启一下服务

systemctl restart dhcpd
在客户机上重启一下网卡
systemctl restart network
查看一下ip的网卡信息
ifconfig

--------------
电子邮件:
配置一下dns
yum install bind-chroot
配置一下主机名称
vim /etc/hostname
写入
mail.linux.com
编辑一下主配置文件
vim /etc/named.conf

修改后

继续编辑配置文件

vim /etc/named.rfc1912.zones
写入
zone "linux.com" IN {
type master;
file "linux.com.zone";
allow-update {none;};
}

-----------------

复制一份模板
cd /var/named
ls
cp -a named/localhost linux.com.zone
vim linux.con.zone

写入信息

重启一下网卡
systemctl restart network
systemctl restart named
清空一下防火墙
iptables -F
安装一下
yum install postfix
编辑一下主配置文件
vim /etc/postfix/main.cf
76行写入
myhostname = mail.linux.com
83行写入
mydomain = linux.com
99行写入
myorigin = $mydomain
116行写入
inet_interfaces = all
164行写入
mydestination = $myhostname,$mydoamin
--------------------
重建一个用户
useradd linux
重启一下服务
systemctl restart postfix
安装一下服务
yum install dovecot
编辑一下主配置文件
vim /etc/dovecot/dovecot.conf
写入
protocols = imap pop3 lmtp
disable_plaintext_auth = no
login_stusted_networks = 192.168.010.0/24
-------
编辑一下mail的配置文件
vim /etc/dovecot/conf.d/10-mail.conf

切换一下刚创建的用户
su - linux
mkdir -p mail/.imap/INBOX
exit
-----------------
重启一下服务
systemctl restart postfix
systemctl restart dovecot
iptables -F
-------------
设置一下用户的密码
echo "linux" | passwd --stdin linux
-------------------
测试一下发送邮件
mail xxx@linux.com
ashhg
asdsfdds
asfdfsf
.
EOT
----------------
查看邮件别名的配置文件
vim /etc/aliases
重启一下服务
systemctl restart postfix
systemctl restart dovecot
newaliases

-------------------------------------------

第16节

------------

Squid代理服务
配置两块网卡
nm-connection-editor
systemctl restart network
进入到网卡的配置文件中去
cd /etc/sysconfig/network-scripts/
--------------
正向代理模式:标准与透明
反向代理模式:
---------------------
安装一下
yum install squid
重启一下服务
systemctl restart network
systemctl restart squid
加入到开机启动项中去
systemctl enable squid
清空一下防火墙
iptables -F

配置浏览器的代理后进行访问

-----------------------
实现透明的代理模式
编辑一下主配置文件
vim /etc/suqid/squid.conf
59行
http_port 100000
systemctl restart squid

配置一下浏览器进行访问

查看一下SELinux是否是开启的状态
getenforce
编辑一下配置文件
vim /etc/squid/squid.conf
http_port 3128 transparent
systemctl restart squid

配置一下网卡信息

systemctl restart network
iptables -F

-------------------

配置一下服务端的防火墙
firewall-config

关键词的审计
----------
安装一下服务
yum install squid
添加一下网卡
nm-connection-editor
systemctl restart network

iptables -F
systemctl restart network
systemctl restart squid
编辑一下配置文件
vim /ect/squid/squid.conf
26行
acl client src 192.168.10.20
31行
http_access allow client
http_access deny all
systemctl restart network
systemctl restart squid
----------------
对关键词进行限制
vim /etc/squid/squid.conf
26行
acl deny_keyword url_regex -i linux
31行
http_access deny_keyword
systemctl restart network
systemctl restart squid
---------------
对访问的网址进行限制
vim /etc/squid/squid.conf
26行
acl deny_keyword url_regex https://www.linux.com
31行
http_access deny_url
systemctl restart squid

----------------------

静态与动态
yum install squid
nm-connection-editor DHCP模式
systemctl restart network
编辑一下配置文件
vim /etc/squid/squid.conf
59行
http_port 192.168.1.8:80 vhost
cache_peer 58.96.170.69 parent 80 0 originserver
systemctl restart squid

--------------------

-------------
openldap
安装一下服务
yum install openldap openldap-clients openldap-servers migrationtools
----
useradd linux
passwd linux
slappasswd -s linux -n > /etc/openldap/passwd

编辑一下host文件
vim /etc/hosts
写入
192.168.10.10 instruction.linux.com
-----------
生成一个秘钥信息
openssl req -new -x509 -nodes -out /etc/openldap/certs/cert.pem -keyout /etc/openldap/certs/priv.pem -days 365
instruction.linux.com
复制一下秘钥信息
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
cd /var/lib/ldap
vim DB_CONFIG
生成数据库信息
slaptest
查看一下数据库是否生成了
cd /var/lib/ldap
ls
chown ldap:ldap *
systemctl restart slapd
加入到开机启动项中
systemctl enable slapd
ldapadd -Y EXTERNAL -H ldapi:/// -D "config" -f cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -D "config" -f nis.ldif
新建一个 文件
vim /etc/openldap/changes.ldif
写入

导入文件
ldapmodify -Y EXTERNAL -H ldapi:/// -f /etc/openldap/changes.ldif
编辑一下
vim /etc/openldap/base.ldif
写入

ldapadd -x -w linux -D cn=manager,dc=linux,dc=com -f /etc/openldap/base.ldif
重建一个用户
useradd -d /home/ldap linux

ldapadd -x -w linux -D cn=manager,dc=linux,dc=com -f users.ldif
ldapadd -x -w linux -D cn=manager,dc=linux,dc=com -f groups.ldif
搜索一下
ldapsearch -x cn=linux -b dc=linux.com,dc=com
systemctl restart httpd
systemctl enable httpd
systemctl restart slapd

用图形化工具配置一遍

安装一下软件包
yum install openldap-clients nss-pam-ldap authconfig-gtk pam_krb5
system-config-authentication

清空一下防火墙
iptables -F
修改一下配置信息
vim /etc/exports
写入
/home/ldap 192.168.10.20(rw,sync,root_squash)
让文件生效一下
export -a
systemctl restart nfs
mkdir /home/ldap
编辑一下文件
vim /etc/fstab
写入
192.168.10.10:/home/ldap /home/ldap nfs defaults 00
挂载一下
mount -a
查看一下挂载信息
df -h

-------------------------------------------

第17节

------------

iSCSI服务
解决了存储问题
但是影响传输速度的是,网络的速度
----------------------------
主机1
主机2
-------------------
做一下瑞得
mdadm -Cv /dev/md0 -n 4 -l 10 /dev/sd{bb,c,d,e}

查看简要信息
mdadm -D /dev/md0

获取到UUID信息

编辑一下配置文件
vim /etc/mdadm.conf
写入

安装一下服务

yum install targetd targetcli
重启一下服务
systemctl restart targetd
加入到开机启动项中
systemctl enable targetd
配置一下
targetcli
ls
cd /backstores/block
create disk0 /dev/md0
cd /
ls
cd iscsi
create

清空一下防火墙

iptables -F
编辑一下文件
vim /etc/iscsi/initiatorname.iscsi

重启一下服务
systemctl restart iscsid
iscsiadm -m discovery -t st -p 192.168.10.10
iscsiadm -m node -T
查看一下设备是否已经存在
ls -al /dev/sdb
格式化一下
mkfs.ext4 /dev/sdb
写入到挂载信息文件中
vim /etc/fstab
写入
/dev/sdb /linux ext4 defaults 0 0
-----------------
mount -a
df -h
----------------

MariaDB数据库

安装一下数据库
yum install mariadb mariadb-server
重启一下数据库
systemctl restart mariadb
加入到开机启动项中
systemctl enable mariadb
初始化一下
mysql_secure_installation
登录数据库
mysql -u root -p
查看一下数据库:数据库中的命令都需要用分号来结束
show databases;
打开某个数据库
use mysql;
查看一下数据库中的表
show tables;
创建一个普通的数据库用户
create user linux@localhost IDENTIFIED BY 'linux'
退出数据库用新创建的普通用户登录
exit
mysql -u linux -p linux
show databases;
用root用户给新创建的普通用户授权
GRANT SELECT ,UPDATE,DELETE,INSERT on mysql.user to linux@localhost;
用root用户给新创建的普通用户取消授权
revoke SELECT,UPDATE,DELETE,INSERT on mysql.user from linux@localhost;
创建一个数据库
create database linux;
use linux;
show tables;
创建一个数据库
create table mybook(name char(15),price int,pages int);
查看一下新建的数据表的格式
describe mybook;

在表中插入一条数据
INSERT INTO mybook(name,price,pages) VALUES('linux','60','518');
INSERT INTO mybook(name,price,pages) VALUES('linux','30','518');
INSERT INTO mybook(name,price,pages) VALUES('linux','20','518');
INSERT INTO mybook(name,price,pages) VALUES('linux','10','518');
查询一下表中的数据
SELECT * FROM mybook;
删除表中的一条数据
DELETE FROM mybook WHERE price='10';
---------------
SELECT * FROM mybook WHERE name='linux';

给数据库做备份操作
mysqldump -u root -p linuxlinux > /root/linuxDB.dump
查看一下文件是否存在
file /root/linuxDB.dump
恢复备份的数据库到数据库中
mysql -u root -p
show databases;
删除掉原来的数据库
drop database linux;
show databases;
创建一个数据库
create database linux;
use linux;
show tables;
exit
开始恢复
输入重定向
mysql -u root -p linux < /root/linuxDB.dump
show databases;
use linux;
show tables;
SELECT * FROM mubook;

-------------------------------------------

Linux就该这么学第5期第18节

------------

批量的安装系统:
安装一下服务
yum install dhcp
编辑一下配置文件
vim /etc/dhcp/dhcpd.conf
写入

清空一下防火墙
iptables -F
或者删除掉防火墙
yum remove iptables
重启一下服务
systemctl restart dhcpd
systemctl enable dhcpd
安装一个服务
yum install tftp-server
编辑一下配置文件
vim /etc/xinetd.conf
vim /etc/xinetd.d/tftp

cd images
ls
------------
复制文件
cp /media/cdrom/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/
cp /media/cdrom/images/isolinux/vesamenu.c32 /var/lib/tftpboot/
cp /media/cdrom/images/isolinux/boot.msg /var/lib/tftpboot/
cd /var/lib/tftpboot/
ls
----------------
mkdir pxelinux.cfg
cd pxelinux.cfg/
cp /media/cdrom/isolinux/isolinux.cfg/
修改一下文件的名字
mv isolinux.cfg default
-------------
安装一下服务
yum install vsftpd
cd /var/ftp
复制一下光盘中的数据
cp -rf /media/cdrom/* ./
重启一下服务
systemctl restart vsftpd
systemctl enable vsftpd
cd ~
ls

重启一下服务
systemctl restart xinetd
systemctl enable xinetd
安装一下服务
yum install syslinux
cd /var/lib/tftpboot/
复制一下文件
cp /usr/share/syslinux/pxelinux.0 ./
cd /media/cdrom
ls
复制一下文件
cp anaconda-ks.cfg /var/ftp/pub/ks.cfg
vim /var/lib/tftpboot/pxelinux.cfg/default
setsebool -P ftpd_connect_all_unreserved-on
重启一下服务
systemctl restart vsftpd
systemctl enable vsftpd
cd ~
设置一下文件的权限
chmod +r /var/ftp/pub/ks.cfg
vim /var/ftp/pub/ks.cfg

LNMP架构的安装

安装包在本地默认的存放目录
mkdir -p /usr/local/mysql/var/
chmod -Rf mysql:mysql /usr/local/mysql
解压一下mysql安装包
tar xzvf mysql-5.6.19.tar.gz

-------------------------------------------

附录部分:

________________学习中想到的乱七八糟

资本主义的宗旨是:有钱就赚

黑客入侵之后一般会删掉日志文件,用来擦掉痕迹

工作中各种的烦心事都会有,学习的时候好好学,工作的时候灵活的去使用

:十里不同风,百里不同俗

命令行中注意:空格:点号 中英文,大小写

------------------------------------

Linux就该这么学--第五期 学习笔记的更多相关文章

  1. 《Linux就该这么学》第二期视频

    Linux就该这么学--第二期学习笔记... ------------- 你的未来取决于你现在点点滴滴的努力 需要用到的一些工具: Vm11激活码 ---------- root在Linux系统中相当 ...

  2. 《Linux内核设计与实现》课本第五章学习笔记——20135203齐岳

    <Linux内核设计与实现>课本第五章学习笔记 By20135203齐岳 与内核通信 用户空间进程和硬件设备之间通过系统调用来交互,其主要作用有三个. 为用户空间提供了硬件的抽象接口. 保 ...

  3. 《Linux内核设计与实现》第五章学习笔记

    <Linux内核设计与实现>第五章学习笔记 姓名:王玮怡  学号:20135116 一.与内核通信     在Linux中,系统调用是用户空间访问内核的唯一手段:除异常和陷入外,它们是内核 ...

  4. 《Linux内核分析》第五周学习笔记

    <Linux内核分析>第五周学习笔记 扒开系统调用的三层皮(下) 郭垚 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.c ...

  5. linux内核分析第五周学习笔记

    linux内核分析第五周学习笔记 标签(空格分隔): 20135328陈都 陈都 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.co ...

  6. 20165326 java第五周学习笔记

    第五周学习笔记 ch7 内部类(&外嵌类) 内部类的类体不可以声明类变量和方法 内部类如同类的变量或方法 内部类和外嵌类在编译时生成两个class文件 匿名类 某个类的一个子类没有明显的用类声 ...

  7. Spring实战第五章学习笔记————构建Spring Web应用程序

    Spring实战第五章学习笔记----构建Spring Web应用程序 Spring MVC基于模型-视图-控制器(Model-View-Controller)模式实现,它能够构建像Spring框架那 ...

  8. Linux20期学习笔记 Day1

    Linux就该这么学第一章 1.4重置root管理员密码  放到红帽RHCSA考前辅导视频 源代码安装: 弊端:(好处第二章讲解) 1.难度高,安装困难 2.自己解决依赖关系(暂时不说) 新技术:RP ...

  9. 安卓权威编程指南 - 第五章学习笔记(两个Activity)

    学习安卓编程权威指南第五章的时候自己写了个简单的Demo来加深理解两个Activity互相传递数据的问题,然后将自己的学习笔记贴上来,如有错误还请指正. IntentActivityDemo学习笔记 ...

随机推荐

  1. 四则运算生成器功能完善&&界面设计——结对项目

    结对成员:何小松 && 李入云 一.对结对编程的认识 优点: 1)程序员互相帮助,互相教对方,可以得到能力上的互补. 2)可以让编程环境有效地贯彻Design. 3)增强代码和产品质量 ...

  2. 《Linux内核设计与实现》第十八章读书笔记

    1.内核中的bug 内核中的bug表现得不像用户级程序中那么清晰——因为内核.用户以及硬件之间的交互会很微妙: 从隐藏在源代码中的错误到展现在目击者面前的bug,往往是经历一系列连锁反应的事件才可能触 ...

  3. myBatis插件(plugins)

    MyBatis 允许你在已映射语句执行过程中的某一点进行拦截调用.默认情况下,MyBatis 允许使用插件来拦截的方法调用包括: Executor (update, query, flushState ...

  4. 无符号整型 unsigned int、unsigned long、usigned long long、size_t 比较和格式控制

    位数比较 由于数据的长度和平台相关,所以基于 64 位系统比较. Windows Linux unsigned int 32 bits/4294967295 32 bits unsigned long ...

  5. JSP中properties文件的路径问题

    做练习的时候,写了个properties文件,放在src/servlet/目录下,访问文件问题花了点时间折腾,最终得到解决,记下. 环境:eclipse jee oxygen,tomcat 9.0. ...

  6. From 简书 转帖一下如何安装k8s1.10 改天做下实验. https://www.jianshu.com/p/9c7e1c957752

    centos7.3 kubernetes/k8s 1.10 离线安装 老菜_misa 关注 2018.04.25 23:57 字数 1243 阅读 266评论 1喜欢 3 本文介绍在centos7.3 ...

  7. NAT模式下VMware中CentOS7无法连接外网的解决方法

    故障现象 ----------------------------------------------------------------------------------------------- ...

  8. python下划线

    单下划线(_) 通常情况下,会在以下3种场景中使用: 1.在解释器中:在这种情况下,“_”代表交互式解释器会话中上一条执行的语句的结果.这种用法首先被标准CPython解释器采用,然后其他类型的解释器 ...

  9. RSA,JAVA私钥加密,C#公钥解密

    做这个东西在坑里爬了3天才爬出来,记录下供园友参考.C#程序员一枚,项目需要和Java做数据交互,对方甩了段密文和一个CER证书给我,然后我要对其密文进行解密. RSA 非对称加密,对方用私钥加密,我 ...

  10. codeforces625C

    K-special Tables CodeForces - 625C 人们经常做一些疯狂的事来凸显自己.有的人跳舞,有的人撩妹,有的人立志成为顶级程序猿(例如某peng),还有的人喜欢收集有趣的数学对 ...