**第一天课程**
【自动关闭防火墙和selinux;更换yum源为国内源;(netstat -tanlpu)httpd是apache
bind-utils【解析dns 的命令dig】ntp[校时]
yum -y install vim yum-utils wget unzip bash-completion net-tools rpcbind nfs-utils crontabs lrzsz vsftpd lftp httpd lsof bind-utils ntp zlib-devel pcre pcre-devel ncurses ncurses-devel openssl-devel bison gcc gcc-c++ make cmake crontabs yum-axelget
通过rz命令导入shell脚本, bash sh (tab) 命令执行更换yum源
手动添加nginx 源
安装MySQLip
```
1 从文件夹中缓存源 rz 6个rpm到root下, 【上传rpm缓存包到root目录下】
2. yum -y install *.rpm 【安装rpm包】
3. systemctl start mysqld 【启动mysqld服务】
4. cat /var/log/mysqld.log |grep pass 【查看原始密码】
mysql -p'7yeN6eBIHK>6'
5. vim /etc/my.cnf 【在最后添加如下内容,跳过密码验证和支持中文
validate_password=off
character-set-server=utf8
auto-rehash
systemctl restart mysqld 【修改配置文件需要重启】
6 cat /var/log/mysqld.log |grep pass
set password=password("1");
mysql -p1 【修改密码后登陆验证】
------------------------------------------------------s---
自动补全库名,表名,
vi /etc/my.cnf
auto-rehash
```
cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens33.bak
vim ifcfg-ens33 [编写配置文件,记得更改ip]
TYPE="Ethernet"
BOOTPROTO="none"
DEVICE="ens33"
ONBOOT="yes"
IPADDR="192.168.59.10"
GATEWAY="192.168.59.2"
PRIFIX="24"
DNS1="114.114.114.114"
systemctl restart network 【服务器重启】
```
vim /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
yum repolist
----------------
yum -y install nginx
【nginx主配置文件/etc/nginx/nginx.conf 下载源之后再下载服务包】
nginx虚拟主机配置文件
[[email protected] ~]# vim /etc/nginx/conf.d/default.conf
server {
listen 80;
server_name localhost;
charset utf-8;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
--------------------
vim /usr/share/nginx/html/index.html
charset utf-8; 子配置文件加入词条命令后可以显示中文
下载linux系统,
# 破解密码
```
1.选定虚拟机后,重启操作系统,短时间按e
2.找到linux16那一行,把光标移动到最后,UTF-8后面隔个空格添加 init= 、/bin/sh
3.ctrl+x #保存退出
4.进入系统后,以rw方式重新挂载/分区
#mount -o remount,rw /
5.永久关闭selinux [防止开机启动]
#vim /etc/sysconfig/selinux
添加SELINUX=disabled :wq!
然后输入passwd
6.修改密码
7. # touch /.autorelabcl #重新识别新的root密码
7. # exec /sbin/init #重启机器,
```
# 学习操作系统和系统命令,
如[root@localhost ~]#
root当前登录的用户名
@ 分割符号
localhost 主机名
~当前用户的家目录
#当前身份信息为超级管理员
/是根
DNS ---------》 将于明解析为IP
DHCP 动态分配ip
ip的作用:定位互联网中一台服务器的位置
端口的作用: 定位一台服务器中具体服务的位置
还原拍照了第一步安装yum -y install wget
home放家目录,etc放配置文件,dev放 var/log存放经常变化的文件
PATH变量记录着命令的存放目录
命令
ip a 查看本机的IP
cd 切换目录
pwd 查看当前的目录的绝对路径
useradd 创建用户
-u uid
-g 指定主组
-G 指定附属组
-s 指定用户的shell信息
可登录shell---》 /bin/bash
不可登陆shell---》 /sbin/nologin
passwd 设置密码
su - 用户名登录
exit 退出用户
userdel -r 删除用户
usermod 修改用户信息
-l 修改用户名
-u 修改uid
-g 修改主组
-G 修改附属组
-s 修改shell信息
ls 查看当前工作目录下的属性信息
一个(.)点代表的当前工作目录
两个(..)点代表当前工作目录的上一级目录
ls后面加:-l 详细显示 使用ll /时和使用ls / -l一样,ll /是ls / -l的别名
-d 查看目录本身的信息
-h 根据文件内存大小转换单位(人性化显示),跟-l一起使用
-a 显示所有文件(包含隐藏文件)
-t 显示多个文件属性信息时以时间排序
短选项可以合并
--help 查看帮助文档
cd 目录路径 切换工作目录
cd .. 回到上一级目录
cd或者cd ~直接回家目录
cd -回到上一次所在目录
*号作为通配符可以匹配任意
touch 新文件路径 创建普通文件
touch /root/A{1..10} 针对连续性的文件名,批量创建
touch / root/{张帅,张豪} 针对不具备连续性的文件名连续创建
touch $(date+%F).txt
date时间 %F年月日
1date +%F` .txt 创建时间文件
mkdir 创建目录文件
mkdir -p 连级创建 -p连级创建
mkdir -p -v连级创建,分级显示
rm -rf+文件名是删除记得加点
poweroff init0 关机
reboot init6 重启
type 显示命令的别名
alias 别名='命令' 设置别名
{alias PFF='poweroff'在单引号内部写命令 设置别名}
unalias 别名 取消别名
-a 取消所欲别名
{unalias PFF 单独取消一个别名,unalias -a 取消全部别名}
ctrl+a 移动光标到行首
Ctrl+e 移动光标到行尾
Ctrl+u 删除光标左侧
Ctrl+k 删除光标右侧
Ctrl+w 删除到左侧单词空格位置
ctrl+ 方向键移动但不删除
ctrl+c终止命令
esc. 调取上一条命令最后一部分
history 历史命令(默认记录1000个)
分号和&& 命令分割,符号两边命令分割
which 了解某一个命令的存放位置是绝对命令
echo 如果使用一个>是覆盖,使用两个>>是追加
echo “内容” > 文件路径 覆盖到指定文件内,如果文件不存在,将自动创建文件
echo “内容” >> 文件路径 将内容追加到指定文件内,如果文件不存在,将自动创建文件
cat 查看一个文件的全部内容
-n 显示行号
-A 显示控制字符,换行符
后面必须跟普通文件
head 默认查看前10行的内容
head -2 /etc/passwd 默认查看前两行
tail 默认查看后十行的内容
tail -1 /etc/passwd 查看文件的最后一行
tail -f /var lon/messages 动态查看文件的尾部
grep “关键字” /root/huahua 显示有关键字的文件
“^a”/root/huahua 行首定位
“b$”/root/huahua 行位定位
“^$” 查看空行
less 分页显示
less /绝对路径 空格是翻页,回车是翻行,上下箭头可以来回翻
/关键字 搜索
q 是退出
more 文件名 分页显示文件内容
空格是翻页,回车是翻行
cp +
-r 把目录及内容全部复制
mv 移动
mv root/A-1/ root/D-1/opt
mv 目录1/alan 目录2/tom 改名
mv 目录1/alan 目录1/tom 源文件改名
rm -f /目录/文件 强制删除目录下的文件,不用询问
-r /目录/文件 删除
# VIM
编辑模式
i 进入编辑模式
o
命令模式
esc 进入命令模式
g 光标移动到开头
G 光标移动到结尾
3G 定位到第3行
尾行模式
shift 冒号进去
q 不保存退出
q! 强制退出
w 保存不退出
wq 保存并退出
yy 复制
dd 删除
p 往下粘贴
大写p 往上粘贴
ygg 复制光标上的内容
yG 复制光标下的内容
5yy 光标位置下5行复制
dgg 删除光标上的内容
dG 删除光标下的内容
u 撤销
ctry r 撤销你的撤销
r +y 替换光标所在处的字符将光标所在位置替换成y
x 删除光标所在位置的单个字符
D=d$ 删除光标说在未知右侧的所有内容
d^=d0 删除左侧所有内容
# 批量添加注释
```
crtl+v 进入可视块模式, 移动方向键选中位置
按大写I ,输入#字符
按两次esc就进入保存。
```
```
语法----> :范围 s/old[匹配域]/new【替换域】/选项
:s/world/nice/ #替换当前光标所在行
:3s/sbin/nice/ #替换指定行
:1,5 s/nologin/soso/ #从1-5行的nologin 替换为soso
:,5 s/nologin/soso/ #从当前-5行的nologin 替换为soso
:%s/bin/soso/ #替换所有行【仅第一次出现替换】
:%s/sbin/nice/gi #替换行内所有关键字【每行全局替换】
i不区分大小写,g全局替换
注释:%表示替换所有行 g表示行内所有关键字
将文件另存(另存为)
语法----> :w 存储到当前文件
:w /tmp/aaa.txt #另存为/tmp/aaa.txt 【假设当前tmp下没有文件会自动创建aaa.txt文件】
:1,3 w /tmp/2.txt #从1-3行的内容另存为/tmp/2.txt【假设当前tmp下有2.txt文件,选中的内容会把2.txt中原来的文件覆盖掉。】
```
/etc/group 组信息文件
/etc/passwd 用户信息文件
bin:x:1:1:bin:/bin:/sbin/nologin
分隔符::
第一列:用户名
第二列:密码
第三列:用户标识号--->(uid)是一个整数,系统内部用它来标识用户。通常用户标识号的取值范围是0~65535。0是超级用户root的标识号
第四列:gid
第五列:描述信息。
第六列:家目录
第七列:是用户登陆到界面的第一个命令,开启一个shell。登陆shell
超级管理用户 0
系统用户 1-999 bin/fasle
普通用户 1000-65535 bin/bash /sbin/nologin
groupadd 创建组
-g 指定gid
groupdel 删除组
groupmod 修改组信息
-n 制定新组名
-g 修改gid
基本权限U G O
id加用户名 查询
拥有者 文件的所属组 其他人
r 读的权限 =4;w 写的权限 =2;X 执行权限 =1;
chown 修改属组;属主
chown 用户.属组 /home/filel.txt 修改属组跟属主
chown 用户 /home/filel.txt 只修改拥有者
chown .属组 /home/filel.txt 只修改属组
chown .属组 /home/filel.txt -R 递归(filel.txt 下的属组都归写的属组)
chmod 修改ugo r=4 w=2 x=1
u=rwx g=rw x=r 修改权限
u+r g+w o+x 增加权限
u+wx g+r 0-x /home/filel.txt 追加或者减权限
646 /home /filel.txt 用数字修改权限
##### rwx 针对普通文件的影响
1、r:读取权限,对应命令是cat、head、
2、w:写权限,对应命令是echo “内容” >>文件所在路径
3、x:执行权限,书写文件路径的情况下,可以将文件内的每一行,当做系统命令来执行
【注意】,当只有x权限时,x权限不生效,x权限需要跟r权限配合才能生效。
##### rwx针对于目录文件的影响
1、r:读取权限,该权限需要x权限的配合,否则会出现报错,到时不影响查看文件属性
2、w:写权限,该权限需要x权限的配合,否则会出现报错,并且无法体现w权限的效果
3、x:执行权限,该权限可以单独给予,主要影响用户是否可以进入该目录
umask 权限掩码
suid 命令提权,可以让任何用户使用touch命令时,像使用root在用touch一样。只能对二进制命令提前;例如:切换到root chmod u+s /绝对路径
cd不是二进制命令
chmod u-s /rm 取消提权
通过提权后的创建型命令,创建出来的拥有者都是root
sgid 组继承,针对目录下的高级权限
chmod g+s /home/QF
SBIT (T)权限 只有稳健的属主才可以删除文件
chmod o+t /home/QF 除了属主别的用户不能删除
sudo
visudo 去到100行,修改想要的权限,在修改命令前加个NOPASSWD:/ALL的话就不需要密码,拥有所有权限。su - 到用户后想增加的话,命令先打sudo
```
[root@linux-server ~]# visudo
91 ## Allow root to run any commands anywhere
92 root ALL=(ALL) ALL
93 jack ALL=(ALL) NOPASSWD:ALL
94 alice ALL=(ALL) NOPASSWD:/usr/bin/mkdir, /usr/bin/rm, /usr/bin/touch
从91行处添加。
```
chattr +a 只能追加普通文件,能查看,不能覆盖,不能删除(包含root)
chattr +i /root/file-1 不能删除,不能追加,只能查看(包含root)
chattr +A /root/file-1 设定文件的访问时间
```
chattr +A file3 #告诉系统不要修改对这个文件的最后访问时间
```
删除使用减号
lsattr 查看
```
制作本地yum源
通过镜像制作本地yum源
cd /etc/yum.repos.d/ #yum源配置文件存放目录
vim CentOS.Base.repo #在编写yum配置文件是必须是.repo
文件里写入:
[centos7u4] #yum源区别名称,用来区分其他的yum源
name=centos7u4 #yum源描述 yum源名字
baseurl=file:///mnt/centos7u4 #指定本地yum源的路径
enabled=1 #是否使用此yum源(1为打开,0为关闭)
gpgcheck=0 #检查软件
mkdir /mnt/centos7u4 在/mnt下创建本地yum源存放目录
将本地镜像上传到虚拟机中的/root目录中
挂载镜像
# 语法: mount 挂载设备 挂载点
# mount CentOS-7-x86_64-DVD-1708.iso /mnt/centos7u4/------------
------------------------------------------
通过开启yum下载缓存功能制作自己的yum源
打开Yum缓存功能:安装完软件之后,软件不会被删除(默认安装完之后,不会保留安装包) vim /etc/yum.conf 修改下面参数的值为1,软件会被保存到cachedir指定的目录下
修改keepcache=1
mkdir /yum_cache 创建存放yum的目录
find 搜索范围 选项 参数
find /var/cache/yum/ -name "*.rpm" | xargs -i mv {} /yum_cache/
vim /etc/yum.repos.d/myyum.repo
[myyum]
name=缓存yum源
baseurl=file:///yum_cache/
enabled=1 #默认是开启的
gpgcheck=0
yum install -y createrepo #创建repo文件工具
createrepo /yum_cache/ //此目录就可以作为yum源了
yum clean all && yum makecache
------------------------------
源码包安装nginx
yum -y install gcc make zlib-devel pcre pcre-devel openssl-devel #编译环境的准备
wget http://nginx.org/download/nginx-1.16.1.tar.gz 安装压缩包
tar xzf nginx-1.16.1.tar.gz 解压安装包
cd nginx-1.16.1 进入到目录
./configure --user=www --group=www -- prefix=/usr/local/nginx
make #编译文件
make install #安装文件
useradd www #创建nginx用户
systemctl stop firewalld #关闭防火墙
/usr/local/nginx/sbin/nginx #启动nginx
/usr/local/nginx/sbin/nginx -s stop 停止nginx
```
1,标准输出
2,标准错误,
3+,进程在执行过程中打开的其他文件
&:表示正确错误混合输出
echo $? 判断上一条命令是正确的还是错误的(除了零都是错误的)
/dev/null 黑洞文件
cat < 内容 EOF cat >> /root/t2< 内容 EOF 指定填写的内容到指定的地方 | 管道符号 ls /ect |grep 'sys' 将ls/etc/的结果总结到后面的结尾 ;查看etc下有没有包含sys的文件 xargs 默认结果交给结尾 -i mv {} /root 加-i就管道到大括号里面 大括号依赖于xargs # 软件管理 .rpm 安装包后缀 wget 加域名加安装包路径 rpm -ivh 加软件包 安装 -qa | wc-1 显示本机所有rpm安装包 -qa | grep “软件名” 查看安装的软件 -ql 软件名 可以显示软件包可以产生哪些文件。并显示文件的绝对路径 -qf 文件路径 显示安装安装好的文件是由那个软件产生的 -e 软件名称 卸载 wget 加下载地址 -大写o 指定存放路径 下载方式 curl 加下载地址 -小写o 另存为的路径 下载方式 yum操作 yum分为本地yum和远程yum yum clean all 清理缓存的全部安装包数据 yum makecache 缓存软件包信息 yum repolist 查询yum源信息 yum provides rz 查看命令属于那个软件 yum list 查看源文件里有的软件,无论安装没安装 yum -y install 软件名称 安装软件 yum -y reinstall 软件名称 重装软件 yum -y remove 软件名 不用确认,卸载软件 更换yum源 cd /etc/yum.repos.d 移动到etc下的yum.repos.d的目录 mkdir back 创建叫back的目录文件 mv *.repo back 移动到back curl -(小写)o /文件路径 /国内yum源网站地址 /repo/Centos-7.repo 下载国内yum源 cd /ec/yum.repos.d/ 移动到yum.repos.d 下 ls 查看 制作本地yum源仓库 mkdir /opt/QF2305 创建QF2305的目录 mount 镜像 /optQF2305/ 源码包管理 yum -y install gcc make zlib-devel pcre pcre-devel openssl-devel 编译环境安装 下载缓存制作自己的yum源 先去vim /etc/yum.conf 把下面的keepcache修改成1 改成1的话安装好不会删除安装包 ,0是安装好了删除安装包 conf修改指定参数 yum install -y httpd 安装一个叫httpd的软件 mkdir / home/aa 在home下创建一个叫aa的目录 find 搜索 /var/cache/yum/ “这个地址” -name "*.rpm" 一个名字后缀是rpm的安装包并且管道到xargs交给结尾-i并写到大括号里mv移动到{}/home/aa ls /home/aa 查看home下的aa yum install -y createrepo 创建一个叫repo的文件工具 createrepo /home/aa 给aa这个目录文件证明是yum源 vim /etc/yum.repos.d/myyum.repo 进入myyum.repo编辑 name=起的名字 baseurl=file://本地地址 =http://网络地址 enabled=1 默认是1 gpgcheck=0 关闭防火墙检查 进程就是程序在内存中的表现形式 ps aux 静态查看进程 |head 只查看前十行查看PID -ef | head 不只查看前十行PID还能查看PPID,查看详细参数 ps aux |grep sshd 指定查看pi为sshd的进程 netstat -tanlp |grep "进程名,端口 ,pid" 查看 查看带端口的进程:先安装一个lsof的软件包,yum install lsof s使用lsof查看端口,lsof -i:22 # 动态查看进程 load average CPU平均负载 第一个数字是1分钟,第二个数字是5分钟,第三个数字是15分钟。显示的数字乘以%再除以核数,就算出来了CPU的负载 top , htop 是查看动态进程 q退出; uptime 显示的是top的第一行 w 计算终端,跟top一样,但是窗口窄w命令出不来 按pid杀死进程 ps aux |grep sshd 过滤查出sshd的pid kill -1 加上查出来的pid 重新加载进程(不改变pid) -9 加上查出来的pid 强杀死 -15 加上查出来的pid 正常杀死(这个默认不写也行) -18 加上查出来的pid 激活进程 -19 加上查出来的pid 暂停进程 pkill -信号 进程名字 跟上面的结果一样 -1,-9,-15,-18,-19 都是信号 #### 端口被占用时 pkill -9 nginx; 如果服务启动一半崩溃,关联服务死进程,比kill效果好 kill -9 3670; 根据查到的进程号杀死进程。 lsof -i:80; netstat -lantpu |grep 80 查看挡墙网络进程的端口号 查看系统的版本及内核 cat /etc/redhat - release 查看版本 uname -a 查看正在运行的内核版本 uname -r 查看内核版本 修改主机名 hostnamectl set- hostname 想要修改的名字 修改完之后断开与终端的连接,重新连接 hostname 查看主机名 调入后台 命令 加&调入后台,但是有回显 nohup 命令 & 调入后台并创建一个nohup.out 的文件,回显在这个文件中 Ctrl +z 调入后台,但是调入的是进程中的命令,并停止进程 jobs 查看后台的工作号,只会显示我调入后台的,不会显示系统调入后台的 bg %2 将后台暂停的第二个继续在后台运行 fg 调取最近加入后台的程序到前台,加上%序号调取的是指定的程序到前台 ``` ``` free -m 查看使用了多少MB内存 -g 查看使用了多少GB,但是少于1024MB显示的是0 echo 3 > /proc/sys/vm/drop_caches 临时清理内存 USER 运行进程的用户 PID 进程ID PPID 父进程一般都是主进程,也是守护进程 SHR 共享进程 %CPU CPU占有率 %MEM 内存占有率 VSZ 虚拟内存 RSS 实际内存 后面没有单位默认是B,B代表字节 TTY 是否占用终端,?问号代表没占用 STAT 进程状态 R 运行 s 可中断睡眠 D 不可中断睡眠 T 停止进程 Z 僵尸进程 X 死掉的进程 START 启动进程时间 TIME 占用CPU的时间 COMMAND 进程名字 systemctl 管理程序开启,关闭 # 计划任务 计划任务可以针对不同的用户在相同的时间执行不同的任务 一次性需求计划任务 at now +3min下面写任务 ctrl D 写完东西用的 at 具体时间点 < 文件路径 atq 查询有没有一次性任务 atrm 序号 删除某个任务 循环性计划任务 yum -y install crontabs 如果软件不存在安装 systemctl status crond.service 查看服务状态 cd /var/spool/cron/ 存储位置 crontab -l 查看 -e 编辑 -r 删除 -u 指定用户 ※ ※ ※ ※ ※ 要执行的命令 分钟 小时 日 月 周 建议绝对路径 0-59 0-23 1-31 1-12 0-7 ※ 代表着每时每刻 ※/5 每隔5分钟 , : 不同的时间段 - 表示范围 命令:直接使用,并且不需要守护进程(不使用命令是,改名令不产生进程) 服务:不能直接使用,需要启动服务进程才能使用 ``` ``` tail -f /var/log/messages 动态查看日志文件的尾部,系统日志文件 tail -f /var/log/secure 记录认证,安全日志 tail /var/log/maillog 跟邮件相关 tail /var/log/cron crond 、at进程产生的日志 tail /var/log/dmesg 和系统启动相关 tail /var/log/yum.log yum的日志 tail -f /var/log/mysqld.log MySQL日志 tail /var/log/xferlog 访问FTP服务器相关 /var/log/boot.log 系统启动过程日志记录存放 w 当前登录的用户 last 最近登录的用户 lastlog 所有用户登录的情况 0 debug 有调试信息的,日志信息最多 1 info 一般信息的日志,最常用 2 notice 最具有重要性的普通条件的信息 3 warning 警告级别 4 err 错误级别,阻止某个功能或者模块不能正常工作的信息 5 crit 严重级别,阻止整个系统或者整个软件不能工作的信息 6 alert 需要立刻修改的信息 7 emerg 内核崩溃等严重信息 下面的能含盖上面的 none 什么都不记录 日志轮转(日志切割) weekly 轮转的周期,一周轮转,单位有年,月,日 启动服务 systemctl start crond 启动crond systemctl status crond 查看crond的服务状态 ssh远程连接服务 yum install -y openssh* 安装openssh默认是安装过得 ssh [email protected] -p 22 远程连接(root和@默认不用写)-p跟的是端口号 ssh- keygen 生成秘钥 ssh-copy-id 传输秘钥 修改端口号 vim /etc/ssh/sshd_config 打开这个,修改端口号 远程拷贝 scp -P(大写) 端口号 / a.txt ip : / 路径 目录的话加上-r 谁是远程用谁的ip 远程拷贝 常用命令 ping +IP地址 查看ip地址的机器联网没有 ping -c 地址 限制次数,查看两次 -w 2 等待的时间,等待两秒 # 服务器对时 先安装ntp yum -y install ntp 授时源 ntpdate 加上授时源 矫正时间 [ntp1.aliyun.com 阿里授时源] 不好使 cn.pool.ntp.org 中国授时源 ntpdate cn.pool.ntp.org date -s 想要修/改的时间 修改时间【慎用】 # find [xrags/-exex/tee] sort sort /1.txt -t : -k3 -n |unqi -c 指定列按数字排序 [【只有紧挨的才能去除,所以需要先排序】 文件查找 -name 指定名称 -type 文件类型 按文件名查找 find / -name “名字“ 根据名字查找文件 find /etc -iname “名字” 忽略名字大小写查找 find /etc -iname "*.txt " 查找后面带txt的 按大小查找 find /etc -size +1M 查看大于1M的 find /etc -size 5M 查看等于5M find /etc -size -5M 查看小于5M find / -size +3M -a -size -5M 查找/下面大于3M而且小于5M的文件 -a 和的意思 find / -size -1M -o -size +80M 查找/下面小于1M或者大于80M的文件 -o 且的意思 按时间查找 find /opt -mtime +5 查看修改时间5天之前mtime 修改时间 +代表之前 find . -mtime -2 查看修改时间2天之内 -代表之内 find /opt -atime +1 查看访问时间1天之前 atime访问时间 +代表之前 find . -amin +1 查看访问时间在1分钟之前 -amin代表几分钟访问 +代表之前 find /opt -amin -4 查看访问时间在4分钟之内 -amin代表几分钟访问 -代表之内 find /opt -mmin -2 查看修改时间在2分钟之内 -mmin 代表几分钟修改 -代表之内 按照文件类型查找 find /dev -type f f普通文件 查看普通文件 find / -type f -size -1M -o -name "*.txt" 查看名字面是.txt.且文件大小1M的普通文件 find /dev -type d d目录 查看目录文件 find /etc/ -type d -name "*.conf.d" 查看名字是.conf.d 的目录文件 find /etc -type l l链接 查找链接文件 find /dev -type b b块设备 查找b块设备文件 find /dev/ -type b -name "sd*" 查找名字是sb开头的b块设备文件 按照文件权限查找 find . -perm 644 .是当前目录 精确查找当前目录下权限是644的 find /usr/bin -perm -4000 包含set uid 查看/usr/bin权限为4000的uid find /usr/bin -perm -2000 包含set gid 查看/usr/bin 权限为2000的gid find /usr/bin -perm -1000 包含sticky 查看/usr/bin 权限为1000的所有文件 找到后的处理动作 find /etc -name "ifcfg*" -exec cp -rf {} /tmp \; 查找带ifcfg开头的文件复制到tmp下 +; 多个结果 \; 单次执行结果 -exec 和| xargs 的区别是-exec是一个一个复制转移的 |xargs是打包转移的,但是|xargs不能管道带空格的文件 ``` ``` 压缩文件 打包 tar cvf xxxx.tar filename 被打包的文件 ... 解压缩 语法: 打包一起压缩 tar cvzf file.tar.gz 源文件 tar czf dir1.tar.gz dir1 打包并压缩 tar xzf dir1.tar.gz -C /usr/local/ 解压到指定位置 tar czf /tmp/`date +%F-%T`-etc.tar.gz /etc/ 将打包的文件放到/tmp目录下,并以当前时间开头命名 # 创建软连接和硬链接 硬链接 ll -i /绝对路径 显示路径下的inode编号 ln /源文件的绝对路径/硬连接的绝对路径 创建硬链接 删除源文件硬链接也能用 软连接 ln -s /源文件的路径/ 软链接的路径 将软连接连接到源文件 删除源文件软连接就不能用了 mkdir `date +%F`-upload 按时间创建目录文件 touch file-`date +%F`.txt 按时间创建普通文件 存储管理 初识硬盘 硬盘分为机械硬盘HDD 和固态硬盘SSD 硬盘设备命名 物理硬盘: /dev/sd[a-z] 从磁盘分区方式区分 MBR (MSDOS根据分区表来分区的,又叫做主引导扇区) <2TB GPT >2TB和<2TB ll /dev/sd* 查看固态磁盘下详细信息 lsblk 查看磁盘设备 fdisk 设置4个主分区,扩展分区,逻辑分区 fdisk /dev/sdb 查看磁盘分区信息 进去了按n ,p是主分区,e是扩展分区,l是逻辑分区,任选 ,分区号是默认,其实扇区默认,下一个想设置多大g设置多大g,w是保存退出,q不保存,退出 删除使用d gdisk只能设置主分区 yum -y install gdisk 先安装分区工具 gdisk -l /dev/sdb 查看 gdisk /dev/sdb 设置GPT主分区 创建文件系统(格式化)centos7默认使用xfs mkfs.ext4 /dev/sdb1 格式化成ext4格式的文件系统 mkfs.xfs /dev/sdc2 格式化成xfs格式的文件系统 挂载mount使用 mkdir /mnt/disk1 创建挂载目录 mount /dev/sdb1 /mnt/disk1/ 指定挂载地址挂载 -o 指定读写权限 df -Th 查看磁盘挂载和磁盘使用空间 -T 打印文件系统类型 取消挂载 umount /mnt/disks/或者umount /dev/sdb 也能取下挂载 umount -l /mnt/disk1/ 强行卸载,即使目录有资源被进程占用,也可以卸载 fstab开机自动挂载 blkid /dev/sdb1 查看uuid和文件系统类型 vim /etc/fstab 第1列:挂载设备 mount -a 自动挂载 inode的内容 文件的字节数 stat /etc/hosts 查看inode信息 ls -i /etc/hosts -i:查看inode号 EXT EXT 家族支持度最广: XFS XFS 同样是一种日志式文件系統: 高容量,支持大存储 逻辑卷 LVM管理 lvm概念:LVM是Linux环境中对磁盘分区进行管理的一种机制,是建立在硬盘和分区之上、文件系统之下的一个逻辑层,可提高磁盘分区管理的灵活性。 lvm的特点 传统分区当一个分区空间满了无法对其进行扩充只能建立一个新的文件系统,把分区中的数据移到另一个分区 采用lvm时 1.将硬盘的多个分区由LVM统一为卷组管理,可以方便的加入或移走分区以扩大或减小卷组的可用容量,充分利用硬盘空间; 使用LVM主要是方便管理、增加了系统的扩展性。可以跨分区,多个硬盘组合。 lvm的制作 ![image-20230712091112881](C:\Users\Admin\AppData\Roaming\Typora\typora-user-images\image-20230712091112881.png) 创建lvm yum install -y lvm2 先安装pv命令 ll /dev/sd* 查看dev下的sd开头的磁盘有没有分区 创建pv pvcreate /dev/sdb 把sdb加入创建pv pvs pvscan 查看pv 创建vg vgcreate (名字任意) /dev/sdb 创建vg vgs vgscan vgdisplay 查看vg 创建lv -L 指定lv的大小 lvcreate -L 150M -n lv1 vg1 创建lv lvcreate -l 20 -n lv2 vg1 采用PE方式在创建一个lv lvs 查看lv 制作文件系统并挂载 mkfs.xfs /dev/vg1/lv1 格式化xfs文件系统 mkfs.ext4 /dev/vg1/lv2 格式化ext4文件系统 mkdir /mnt/lv{1..2} 在根号下mnt下创建两个目录 mount /dev/vg1/lv1 /mnt/lv1 将根号dev下的vg1下的lv1挂载到指定地址 mount /dev/vg1/lv2 /mnt/lv2 将根号下的dev下的vg1下的lv2挂载到指定的地址 df -Th 查看 LVM逻辑卷的扩充 注意:如果lv所在的vg有空间直接扩容就ok了! 扩大VG pvcreate /dev/sdc 将sdc创建成pv vgextend vg1 /dev/sdc vg1卷组名字,将/dev/sdc扩展到vg1中 vgs 查看vg lvextend -L 850M /dev/vg1/lv1 扩展到850M lvextend -L +850M /dev/vg1/lv1 在原有基础上加850M lvextend -l +15 /dev/vg1/lv1 在原有基础上加15个PE df -Th 查看一下挂载的文件系统 xfs_growfs /dev/vg1/lv1 xfs扩容 resize2fs /dev/vg1/lv2 ext4扩容 df -Th 查看一下挂在成功没,没成功重启一下 交换分区 建华分区管理swap也叫虚拟内存 查看当前的交换分区 free -m 以m为单位来显示内存 swapon -s 查看减缓分区信息 增加交换分区 可以是基本分区,LVM,File fdisk /dev/sdd 分一个主分区出来 partprobe /dev/sdd 刷新分区表 ll /dev/sdd* 查看sdd下的东西 mkswap /dev/sdd1 初始化sdd1 blkid /dev/sdd1 查看UUID vim /etc/fstab 制作开机挂载 swapon -a 激活swap分区(读取/etc/fstab) swapon -s 【 简短显示swap的信息】 swapoff /dev/sdd1 关闭swap分区 swapon /dev/sdd1 开启swap分区 file 制作 dd if=/dev/zero of=/swap2.img bs=1M count=512 dd 读入 从空设备里面拿空块 到交换分区块多大 一共多少兆 mkswap /swap2.img 初始化 vim /etc/fstab chmod 600 /swap2.img 交换分区权限需要设置为600,默认644权限不安全。 swapon -a 激活 swapon -s 显示信息 mount详解 -o 指定文件系统属性 mount 查看已经挂载上的系统的属性 mount /dev/vg1/lv1 /mnt/lv1/ 挂载默认是有执行权限的 mount -o noexec /dev/vg1/lv2 /mnt/lv2 不允许执行二进制文 cat /mnt/lv1/hello.sh 查看这个文件 chmod +x /mnt/lv1/hello.sh 加x权限到这个文件 /mnt/lv1/hello.sh 看看里面的信息 df -Th 查看 umount /mnt/lv2/ 取消挂载 构建NFS远程共享存储 服务端操作 systemctl stop firewalld 关闭防火墙 systemctl disable firewalld 开机自动关闭防火墙 setenforce 0 关闭防火墙,和第一个一起使用 yum -y install rpcbind 安装rpc协议的包 yum -y install nfs-utils 安装nfs服务,提供文件系统 systemctl start nfs 启动nfs systemctl start rpcbind 启动rpcbind mkdir /nfs-dir 创建存储目录 echo "nfs-test" >> /nfs-dir/index.html 制作test文件,做实验时方便查看 vim /etc/exports 编辑共享文件 systemctl restart nfs-server 重启服务。 systemctl enable nfs-server 制作开机启动 客户端操作 yum -y install rpcbind 安装rpcbind yum -y install nfs-utils 安装nfs-utils mkdir /挂载点名字 (任意) 创建挂载点 mount -t nfs 服务端ip:/nfs-dir /挂载点名字 挂载 df -Th 查看挂载上没 ls /挂载点名字 查看里面的信息 umount /挂载点名字 取消挂载 制作开机挂载 vim /etc/fstab mount -a 挂载 FTP的制作 服务端 先关闭防火墙 安装vsftpd 启动vsftpd systemctl start vsftpd touch /var/ftp/pub/test.txt 创建文件到共享目录 systemctl enable vsftpd 开机时禁用vsftpd cd /var/ftp/ 查看下面有啥 ls 查看 chown ftp.ftp pub/ -R 修改根目录的属主与属组 ll 详细查看,属主属组,权限 - 重点:改变根目录的属主,如果不改变的话,只能访问,其他权限不能生效。因为我们是以ftp用户的身份访问的,而pub默认的属主属组是root。 编辑配置文件 vim /etc/vsftpd/vsftpd.conf ----找到29行将下面的注释取消,将#号删除,将33行的yyp一下,修改成anon_other_write_enable=yes,下一行写入anon_umask=000 systemctl restart vsftpd 重启vsftpd 客户端 yum -y install lftp 安装客户端 lftp 服务端的ip 登录fpt服务 cd pub/ cd到pub/下 get test.txt 下载test.txt的文件 exit或者Ctrl d 退出 ls 查看下载到当前目录没 ftp配置本地用户登录 useradd 用户名 创建用户 useradd 用户名 创建用户 echo '123456' | passwd --stdin 用户名 自动给当前用户设置密码 配置本地用户ftp配置文件 echo '123456' | passwd --stdin 用户名 设置密码 vim /etc/vsftpd/vsftpd.conf ---添加注释并修改 在里面新添加 重启vsftpd systemctl restart vsftpd 重启vsftpd 客户端操作 lftp 服务端ip -u 创建的用户,然后填写密码 ls 查看 mkdir aaa 创建aaa这个目录 ls 查看创建aaa目录成功没 put /root/test.txt 上传root下的test.txt文件 ls 查看上传成功没 服务端查看 cd /home/创建的用户名 ls 查看 ll 详细查看 系统优化常用检测命令 uptime 查看平均负载 echo 3 > /proc/sys/vm/drop_caches 释放buffer和cache 带宽使用情况 yum install -y iftop.x86_64 安装这个东西 ![image-20230712143800313](C:\Users\Admin\AppData\Roaming\Typora\typora-user-images\image-20230712143800313.png) 第一行:界面上面显示的是类似刻度尺的刻度范围,为显示流量图形的长条作标尺用的。 网络接口统计报告 yum install -y nethogs.x86_64 nethogs ![image-20230712143909248](C:\Users\Admin\AppData\Roaming\Typora\typora-user-images\image-20230712143909248.png) 监视ens33网络带宽 nethogs ens33 同时监视ens33和ens34接口 nethogs ens33 ens34 阿帕奇(Apache)服务的搭建与配置 Apache=http apache安装 systemctl stou firewalld 关闭防火墙 systemctl disable firewalld 开机自动关闭防火墙 setenforce 0 关闭防火墙 yum install -y httpd 安装apache systemctl start httpd 启动apache netstat -lntp | grep 80 查看apache端口 认识主配置文件: vim /etc/httpd/conf/httpd.conf ServerRoot "/etc/httpd" #工作目录 设置DocumentRoot指定目录的属性 访问控制 1,准备测试页面 echo test1 > /var/www/html/index.html 编写测试文件 2,访问控制测试 可以直接编辑apache主配置文件 (1)默认所有主机访问 vim /etc/httpd/conf/httpd.conf ![image-20230715192412952](C:\Users\Admin\AppData\Roaming\Typora\typora-user-images\image-20230715192412952.png) systemctl restart httpd 启动apache 浏览器启动,用自己输入的ip (2只拒绝一部分客户端访问 vim /etc/httpd/conf/httpd.conf 打开配置文件 ![image-20230715192814744](C:\Users\Admin\AppData\Roaming\Typora\typora-user-images\image-20230715192814744.png) systemctl restart httpd 重启apache curl -I http://另一台没有拒绝服务的机器的ip 用另外一台机器测试访问成功 (3)拒绝所有人 vim /etc/httpd/conf/httpd.conf 打开配置文件 ![image-20230715193047560](C:\Users\Admin\AppData\Roaming\Typora\typora-user-images\image-20230715193047560.png) systemctl restart httpd 重启apache 就会拒绝所有ip curl -I http://一台机器的ip 访问失败,因为拒绝了所有ip 修改默认网站发布目录 vim /etc/httpd/conf/httpd.conf 打开更改配置文件 119 DocumentRoot "/www" # 修改网站根目录为/www mkdir /www 创建定义的网站发布目录 systemctl restart httpd 重启apache服务 虚拟主机:多个网站在一台服务器上。web服务器都可以实现。三种:基于域名 基于端口 基于Ip 1,基于域名 cd /etc/httpd/conf.d/ 移动到这个地方的家目录 vim test.conf 创建配置文件 mkdir /soso 创建发布目录 mkdir /soho 创建发布目录 echo qianfen > /soso/index.html 创建测试页面 cho qfedu > /soho/index.html 创建测试页面 systemctl restart httpd 重启Apache服务 在wind电脑上面打开C:\Windows\System32\drivers\etc\hosts文件。可以用管理员身份打开 ![image-20230715194112876](C:\Users\Admin\AppData\Roaming\Typora\typora-user-images\image-20230715194112876.png) 测试访问 ![image-20230715194133993](C:\Users\Admin\AppData\Roaming\Typora\typora-user-images\image-20230715194133993.png) ![image-20230715194152415](C:\Users\Admin\AppData\Roaming\Typora\typora-user-images\image-20230715194152415.png) 基于端口 vim /etc/httpd/conf/httpd.conf ---添加 ![image-20230715194326413](C:\Users\Admin\AppData\Roaming\Typora\typora-user-images\image-20230715194326413.png) 2,基于端口 vim /etc/httpd/conf.d/test.conf 打开更改配置文件 /etc/httpd/conf.d/test.conf systemctl restart httpd 重启apache 访问:www.soso666.com ![image-20230715194709608](C:\Users\Admin\AppData\Roaming\Typora\typora-user-images\image-20230715194709608.png) 访问: test.soso666.com:81 ![image-20230715194733012](C:\Users\Admin\AppData\Roaming\Typora\typora-user-images\image-20230715194733012.png) 3.基于IP ifconfig ens33:想要添加的ip 添加一个临时ip vim /etc/httpd/conf.d/test.conf 打开更改配置文件 systemctl restart httpd 重启apache服务 Nginx 服务的搭建与配置 安装 Nginx Nginx基本使用 获取Nginx systemctl stop firewalld 关闭防火墙 systemctl disable firewalld 开机关闭防火墙 setenforce 0 临时关闭selinux getenforce 查看selinux状态 Nginx安装: cd /etc/yum.repos.d/ 移动到yum.repos.d/下 vi nginx.repo 编写nginx的yum源 [nginx] yum clean all 安装clean all yum makecache 安装makecache yum install -y nginx 安装nginx systemctl start nginx 启动ngnix systemctl enable nginx 开机启动nginx systemctl stop nginx 关闭nginx 1.查看nginx状态 ps aux | grep nginx 管道过滤查看 2.查看nginx端口 netstat -lntp | grep 80 管道过滤查看端口 nginx的默认端口是80 3.测试主页是否可以访问: curl -I http://nginx安装机器的ip ![image-20230715200034456](C:\Users\Admin\AppData\Roaming\Typora\typora-user-images\image-20230715200034456.png) nginx主配置文件 vi /etc/nginx/conf.d/default.conf server { #charset koi8-r; 常见的组合方式 LNMP (Linux + Nginx + MySQL/Mariadb + PHP) #php-fpm进程,这个组合是公司用的最多的组合 走进网络 客户端与服务器端的概念 客户端: 即表示可以介入互联网的个人终端设备, 比如个人PC机、个人Mac电脑, 操作系统为Windows. 名词介绍 交换机: #### 交换机基本都是24口起步,企业的都是48口起步 路由器: 网关:网络的出口(路由器的ip地址 DNS:域名服务器 #### OSI七层模型 OSI七层: 物理层、数据链路层、网络层、传输层、会话层、表示层、应用层 简化四层:链路层 网络层(路由网关),传输层(tcp),应用层(https,ftp) 特点: 下层只和上层有来往关系, 不可跨层传输 ![image-20230719191908198](C:\Users\Admin\AppData\Roaming\Typora\typora-user-images\image-20230719191908198.png) 应用层:针对应用约定的标准 HTTP(超文本传输协议) Telnet(远程协议) 数据包的传输过程 ![image-20230719191944452](C:\Users\Admin\AppData\Roaming\Typora\typora-user-images\image-20230719191944452.png) 上面是服务端,下面是客户端 ARP协议: 如何获取mac地址:先发送一个ARP请求,发送给每一个主机,这成为广播,给予ARP层回应以单播的形式返回 TCP/IP:传输控制协议 TCP\IP模型 当通过http发起一个请求时,应用层、传输层、网络层和链路层的相关协议依次对该请求进行包装并携带对应的首部,最终在链路层生成以太网数据包,以太网数据包通过物理介质传输给对方主机,对方接收到数据包以后,然后再一层一层采用对应的协议进行拆包,最后把应用层数据交给应用程序处理。 网络通信就好比送快递,商品外面的一层层包裹就是各种协议,协议包含了商品信息、收货地址、收件人、联系方式等,然后还需要配送车、配送站、快递员,商品才能最终到达用户手中。 一般情况下,快递是不能直达的,需要先转发到对应的配送站,然后由配送站再进行派件。 配送车就是物理介质,配送站就是网关, 快递员就是路由器,收货地址就是IP地址,联系方式就是MAC地址。 快递员负责把包裹转发到各个配送站,配送站根据收获地址里的省市区,确认是否需要继续转发到其他配送站,当包裹到达了目标配送站以后,配送站再根据联系方式找到收件人进行送件。 超文本传输协议 (HTTP-Hypertext transfer protocol) 是一种详细规定了浏览器和万维网服务器之间互相通 信的规则,通过因特网传送万维网文档的数据传送协议,于1990年提出. **HTTP协议的主要特点: ** 1.支持客户/服务器模式 (浏览器/服务器模式) 及c/s模式 常见状态代码 200 OK #客户端请求成功 UDP协议简介 UDP的特性: udp一般用于 1. 即时通信:qq聊天 对数据准确性和丢包要求比较低,但速度必须快 **物理地址:mac地址,全球唯一,mac由6段16进制数组成,每段有2个16进制数** **arp协议作用** (地址解析协议) > ARP地址解析协议用于将网络地址(IP地址32位)转化为物理地址(MAC地址48位)。ARP协议是属于"数据链路层 or 网络层"的协议,在以太网中的数据帧从一个主机到达网内的另一台主机是根据48位的 太网地址(硬件地址)来确定接口的,而不是根据32位的IP地址。内核(如驱动)必须知道目的端的硬件地址才能发送数据 > ICMP是(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。 网络解析 TCP的传输过程: Seq 序列号 保障传输过程可靠。 # TCP建立连接的过程 三次握手 1.)发送端首先发送一个带有SYN(synchronize)标志地数据包给接收方。 3)最后,发送方再回传一个带有ACK标志的数据包,代表我知道了,表示’握手‘结束。 通俗的说法 **四次挥手** 原理: 通俗的说法 IP组成 认识IP地址 IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”,在将2进制转换为十进制。IP地址通常用“点分十进制”表示的形式,其中都是十进制整数。 例如: 进制转换 一:十进制转换为二进制 192 . 168 . 223 . 0 /24 128 64 32 16 8 4 2 1 172 . 0 . 186 . 0 /24 二、二进制转十进制 128 64 32 16 8 4 2 1 10.50.4.3 10101100.00000000.10111010.00000000 **IP分类** 公网ip地址--->合法的IP地址,可以在互联网上访问 A类:0.0.0.0 - 127.255.255.255/8 0是保留的并且表示所有IP地址,而127也是保留的地址,并且是用于测试回环用的。127.0.0.1,通常被称为本地回环地址。 全零(“0.0.0.0”)地址对应于当前主机。IP地址(“255.255.255.255”)是当前子网的广播地址。 私有地址 所谓的私有地址就是在互联网上不使用,而被用在局域网络中的地址 在A类地址中,10.0.0.0到10.255.255.255是私有地址 在B类地址中,172.16.0.0到172.31.255.255是私有地址。 在C类地址中,192.168.0.0到192.168.255.255是私有地址。 **IP地址的组成** 子网掩码:用于区分IP地址中的网络部分和主机部分.计算子网掩码:网络位全1,主机位全0 Variable Length Subnet Mask 子网掩码:用于区分IP地址中的网络部分和主机部分。点分十进制(网络位全部为1) 128 64 32 16 8 4 2 1 10.1.12.133/24-255.255.255.0 10.1.12.1/24 ---计算掩码 子网划分: 如何算这些 假如有120台电脑分配地址--主机位? 192.168.1.0/24 11000000.10101000.00000001.00000000 128 64 32 16 8 4 2 1 例如:计算主机位?2的多少次方-2大于等于120?--2^7次方-2=126 当为0时:192.168.1.0/25 ---网络地址 当为1时:192.168.1.128/25 ---网络地址 **广播范围是掩码之后的用1填充** **可用主机范围是掩码之后的用0填充** **例如** **2的7次方-2约等于要的主机位** **32-7=25,25就是子网掩码** **把ip换算成二进制** **认识网卡** ip a ifconfig 这两个都是查看网卡 临时设置ip ip a a 设置的ip/端口 dev ens33 设置临时ip 删除设置的临时ip ip a d 设置的ip/端口 dev ens33 删除设置的临时ip 启动关闭网卡 ifconfig 网卡名 up ifup 网卡名 这两个都是启动网卡 ifconfig 网卡名 down ifdown 网卡名 这来两个是关闭网卡 网关 网关:网络的关卡:是为了访问其他网络。 ##### 静态路由和动态路由 路由器在转发数据时,需要先在路由表中查找相应的路由,有三种途径 > (1)直连路由:路由器自动添加和自己直连的路由 静态路由 > 缺点 默认路由 > (1) 实际上默认路由是一种特殊的静态路由,指的是当 路由表中与包的目的地址之间没有匹配的表项时,路由器能够做出选择。如果没有默认路由,那么目的地址在路由表中没有匹配表项的包将被丢弃。 动态路由 > 动态路由是与静态路由相对的一个概念,指路由器能够根据路由器之间的交换的特定路由信息自动地建立自己的路由表,并且能够根据链路和节点的变化适时地进行自动调整。当网络中节点或节点间的链路发生故障,或存在其它可用路由时,动态路由可以自行选择最佳的可用路由并继续转发报文。 linux路由操作 ip r 查看路由和网关 添加静态路由删除静态路由 ip r add 本机ip via 想要添加的ip 添加路由 ip r del本机ip 删除路由 ``` R — 恢复动态路由产生的表项, D — 由路由的后台程序动态地安装, M — 由路由的后台程序修改, ! — 拒绝路由 目标地址在直通的网络上,并且metric为301的路由表项。 如果目标主机不是在直通的网络上,需要gw(下一跳IP)转发,则如下加上gw选项则可,注意这个 gw[网关]必须是当前可以ping通的一个地址。 route add -host 192.168.59.130 gw 192.168.59.120 metric 301 dev ens33 Linux上删除主机路由: ``` # 设置固定ip cd /etc/sysconfig/network-scripts/ 网卡配置文件存放路径 cp ifcfg-ens33 ifcfg-en33.bak 将源文件备份 vim ifcfg-ens33 编辑网卡配置文件 TYPE="Ethernet" #网络类型:以太网类型 重启网络,修改完配置文件后一定要重启网络 systemctl restart network 重启配置文件 # 编辑DNS配置文件设置DNS vim /etc/resolv.conf 在里面添加以下内容 [网关] nameserver 144.144.144.144 指定dns地址 # udp.tpc协议 ``` ``` # 设置动态ip vim /etc/sysconfig/network-sccripts/ifcfg-ens33 打开配置文件 TYPE="Ethernet" 退出重启网络 systemctl restart network 重启网络 查看mac地址 ifconfig arp协议:地址解析协议 查看mac地址 arping -I ens33 要查看的ip 要查看的ip地址 开发路由转发 临时设置 echo 1 > /proc/sys/net/ipv4/ip_forward #默认是0,没有开路由。1表示开启 永久设置 vim /etc/sysctl/conf 打开配置文件 net.ipv4.ip_forward = 1 sysctl -p 立即生效 --------- 查看主机内核信息 uname -a ; uname -r ; 查看版本信息 cat /etc/redhat-release 修改主机名 hostname 查看主机名 hostnamectl set-hostname linux-server 修改主机名 vim /etc/hostname 编辑配置文件 soso666 修改主机名 reboot 配置本地解析 vi /etc/hosts 添加内容 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ![image-20230722104909900](C:\Users\Admin\AppData\Roaming\Typora\typora-user-images\image-20230722104909900.png) **修改网卡** 1. 修改网卡配置文件 cd /etc/sysconfig/network-scipts/ 移动到这里 mv ifcfg-ens33 ifcfg-eth0 改名 vim ifcfg-eth0 只需要修改配置文件中的名称 NAME="eth0" DEVICE="eth0" 2.GRUB添加kernel参数 vim /etc/sysconfig/grub #在文件中最后一行添加 3.执行命令生效----#加载配置文件 grub2-mkconfig -o /boot/grub2/grub.cfg 执行配置文件 4.重启机器 reboot cd /etc/sysconfig/network-scripts/ 移动到这里 目录 /bin /sbin 存放命令文件目录bin是普通用户的命令,sbin是管理员相关命令 /etc 存放配置文件 /root /home 家目录存放位置 /root是root用户的家目录,/home是普通用户的家目录存放位置 ls -l 查看文件信息时 开头第一个字符表示文件属性 开头是(-)代表普通文件 开头是(d)代表目录文件 开头是(b)代表设备文件如磁盘 开头是(c)代表着字符文件 开头是(l)代表是符号链接文件,又称软连接文件 开头是(s)代表着套接字文件,实现两个进程的通信 开头是(p)代表着管道文件 开头是(l)代表着链接文件 df -Th 打开磁盘使用情况 在Linux中以点开头的文件是隐藏文件 以根开头不以的路径是绝对路径,不以根开头的路径是相对路径 LINUX中后缀文件属性不影响文件 # 利用虚拟机挂载文件 ``` [root@c1 ~]# systemctl restart nfs ;systemctl enable nfs; ``` # 一阶段测验 - ``` 远程机上创建目录 ``` ``` # ``` cat 1.txt |sort|uniq -c|sort -n注意去重统计时需要先排序,只有紧挨着的行之间uniq才能去重 ``` # 一阶段面试题 # 1.你用的操作系统版本号是多少? centos7.6 centos7.9 你用的操作系统内核版本号是多少? 3.10.0 2.系统优化过什么? 01.关闭selinux 02.关闭防火墙 03.时间同步 04.修改默认仓库 05.安装扩展的仓库epel 3.CentOS 6和CentOS 7的区别 内核版本:CentOS 6使用的是2.6内核,而CentOS 7使用的是3.1内核,新内核带来了更好的性能和更多的功能。 系统架构:CentOS 6只支持32位和64位两种架构,而CentOS 7还支持【ARM架构。】 系统服务管理:CentOS 6使用的是service命令管理系统服务,而CentOS 7使用的是systemctl命令,更加方便和灵活。 文件系统:CentOS 6默认使用的是ext4文件系统,而CentOS 7默认使用的是XFS文件系统,XFS支持更大的【文件和更快的速度】。 3在取消挂载的时候取消不掉,怎么查看:用lsof命令查看挂载目录是否被占用 4linux中创建文件失败,但是磁盘空间也有,是什么原因 inode号是指操作系统中的一个标识符,它被用来唯一标识文件系统中的文件或目录 【权限不够、或者是磁盘的ionde节点】数用完了,可以使用df -i查看磁盘的inode数量 5systemctl启动和绝对路径启动的区别 systemctl启动后是在后台运行,绝对路径启动后是在终端运行。 6软链接和硬链接的区别 软链接可以跨文件系统,硬链接不可以, 软链接可以对目录进行连接,硬链接不可以; 删除源文件后,软链接失效,硬链接不影响 软链接的inode号不一样,硬链接的inode号一样 软链接的创建方式是ln -s 源文件 链接文件硬链接的创建方式 ln 源文件 链接文件 7查看系统资源的常见命令有哪些 查看磁盘空间和挂载情况 df -Th 查看内存使用情况 free -m 查看系统的运行时间和平均负载 uptime 动态查看系统资源 top 查看端口 netstat -tlanp 查看系统运行的进程 ps -ef ;ps aux 8raid-磁盘阵列【安全,成本,读写速率,(磁盘个数,利用率) RAID0 ---数据条带 最少需要两块磁盘,分别往每一块磁盘上写一部分数据;读写速度快,磁盘利用率高;但是无数据检验,不能保证数据的正确性,存在单点故障。 RAID1--镜像raid 一般需要两块磁盘,每块磁盘上都会存储一份完整数据。其数据安全性较高,但是磁盘空间利用率是比较低的。读速度快,写速度慢,无数据校验。磁盘利用率不高 RAID5 磁盘上同时存储数据和校验数据。当一个数据盘损坏时,系统可以根据其他数据块和对应的校验数据来重建损坏的数据。raid5最少需要3块磁盘。 优点:可以找回丢失的数据---通过校验计算得出、可以做冗余磁盘,当某一块磁盘坏掉后,冗余磁盘会自动替换上去、有校验机制、读写速度高、磁盘利用率高 缺点:磁盘越多安全性能越差 RAID6 RAID6 等级是在 RAID5 的基础上为了进一步增强数据保护而设计的一种 RAID 方式 优点:容错高、允许两块磁盘同时坏掉。读写快、良好的随机读性能、有校验机制 缺点:写入速度差、成本高 RAID10 先做镜像再作条带--也叫混合raid 优点:有较高的IO性能、有数据冗余、无单点故障、安全性能高 缺点:成本稍高 9cpu的平均负载和利用率有什么区别 cpu平均负载是指单位时间内cpu正在处理进程的数量。 cpu利用率是指cpu被使用的时间占总时间的百分比。 cpu平均负载反映cpu【任务队列的长度】,而cpu利用率反映cpu工作的【忙碌程度】。 10centos和ubantu的区别 安装软件包【命令格式】不一样。centos使用yum的方式,而Ubuntu使用apt-get 方式 centos支持【rpm包】,但Ubuntu不支持 【稳定性】CentOS比ubnatu要好 python和shell有什么区别 单行注释两者都用#,多行注释shell中为< shell中引用变量分为弱引和强引,单引''为强引,双引""为弱引,而python中不区分强引弱引 python有严格的语法要求,一步出现错误则后面的不再执行,直接退出终端,shell脚本中一步出现错误,后面的不受影响继续执行 shell中引用变量需要加$,python不需要 shell中有数组,python中没有,但是有列表,元组数据类型等 固态磁盘(ssd)与机械磁盘的区别 固态磁盘读取速度较快、防震耐摔、无噪音,功耗低质量轻。 location匹配规则 / 通用匹配,优先级最低 = 精准匹配,优先级最高, ~ 区分大小写正则匹配 ~* 不区分大小写正则匹配 ^~ 优先级仅次于=, 匹配任何以 ^~后面的内容 开始的查询并且停止搜索,不再继续检查正则表达式。# 作业控制
作业控制指的是控制正在运行的进程的行为。比如,用户可以挂起一个进程或者放到后台去运行,等一会儿再继续执行该进程。
sleep 7000 & #&:让命令或者程序后台运行
#ctrl+z 把程序放到后台(这方法会让【程序在后台暂停】)
[root@linux-server ~]# jobs #查看后台的工作号
[1]- Running sleep 7000 &
[2]+ Stopped sleep 8000
[root@linux-server ~]# bg %2 #让暂停的程序在后台运行,%是用来修饰job number,2就是job number。(程序的工作号)
[root@linux-server ~]# fg %1 #将后台的程序调到前台# 日志系统
终端位置,/pts/0 (伪终端)意味着从诸如ssh或者telnet的远程链接的用户,tty(teletypewriter)意味着直接连接到计算机或者本地链接的用户;
rotate 4 保留4份
create 轮转后创建新文件
dateext 使用日期作为后缀
compress 日志轮替时,旧的日志进行压缩
include /etc/logrotate.d 包含该目录下的配置文件,会引用该目录下面配置的文件```
-exec和xargs的区别
-exec:参数是一个一个传递的,传递一个参数执行一次命令。
xargs:将前一个命令的标准输出传递给下一个命令,作为它的参数转换成下一个命令的参数列表。
1、exec 每处理一个文件或者目录,它都需要启动一次命令,效率不好;
2、exec 格式麻烦,必须用 {} 做文件的【代位符】,必须用 \来转义; 作为命令的结束符,书写不便。
```
对:ls cp rm mv 管道不能执行。所以通过xargs。
语法:
cat a.txt | xargs -i cp {} /目录
{}:前面传过来的内容
-i :为了让大括号生效
目录时 -r
解释:前面传过来的东西交给大括号
cat file.txt |xargs ls -l
前面是目录或者目录的路径。 ls - l 后面可以不加大括号,直接执行# 打包压缩上传下载 tar c/x v z/j f
c :create 创建
v :verbose 详细信息
f :file 文件
gunzip 压缩文件
bunzip2 压缩文件
gzip -d 压缩文件
bzip2 -d 压缩文件
-d:dicompress 解压缩
tar cvjf file.tar.bz2 源文件
z:表示gz压缩
j:表示bz2压缩
KVM虚拟化:
/dev/vd[a-z](半虚拟化驱动)
/dev/sd[a-z](全虚拟化驱动)
分区工具:fdisk
一共可以分14个分区(4个主分区,扩展分区,逻辑分区) 例如: 3主 + 1扩展(n逻辑)扩展分区没有办法格式化,只能在扩展分区里面创建逻辑分区吃能格式化
MBR 小于2TB的可以。
一块硬盘最多分4个主分区。
分区工具:gdisk(parted---rhel6)
一共可以分128个主分区
GPT大于小于2TB都可以。
注意:从MBR转到GPT,或从GPT转换到MBR会导致数据全部丢失!
-a 需要定义(/etc/fstab)执行-a才会自动挂载
-h 人性化显示,磁盘空间大小
(1)/dev/sda5
(2)UUID=设备的uuid rhel6/7的默认写法 同一台机器内唯一的一个设备标识
第2列:挂载点
第3列:文件系统类型
第4列:文件系统属性
第5列:是否对文件系统进行磁带备份:0 不备份
第6列:是否检查文件系统:0 不检查
文件拥有者的User ID
文件的Group ID
文件的读、写、执行权限
文件的时间戳,共有三个:ctime指inode上一次变动的时间,mtime指文件内容上一次变动的时间,atime指文件上一次打开的时间。
链接数,即有多少文件名指向这个inode
文件数据block的位置
但创建文件系统(格式化)慢!
修复慢!
文件系统存储容量有限!
高性能,创建/修复文件系统快
格式化快
inode 与 block 都是系統需要用到時,才动态配置产生
2.文件系统建立在LVM上,可以跨分区,方便使用;
3.当系统空间不足而加入新的硬盘时,不必把用户的数据从原硬盘迁移到新硬盘,而只须把新的分区加入卷组并扩充逻辑卷即可。
-n 给创建的lv起一个名字
-l 20 指定PE
/dev/sdd1 swap swap defaults 0 0
/swap2.img swap swap defaults 0 0
rw 读写
ro 只读
noexec 不允许执行二进制文件
exec 允许执行二进制文件
auto mount -a 开机自动挂载
remount 在线重新挂载
/nfs-dir 服务端的ip号(rw,no_root_squash,sync)
服务端ip:/nfs-dir /挂载点名字 nfs defaults 0 0
anonymous_enable=NO #将允许匿名登录关闭
#anon_umask=022 #匿名用户所上传文件的权限掩码
#anon_upload_enable=YES #允许匿名用户上传文件
#anon_mkdir_write_enable=YES #允许匿名用户创建目录
#anon_other_write_enable=YES #是否允许匿名用户有其他写入权(改名,删除,覆盖)
local_root=/home/zhangsan # 设置本地用户的FTP根目录,一般为用户的家目录
local_max_rate=0 # 限制最大传输速率(字节/秒)0为无限制
中间部分:中间的<= =>这两个左右箭头,表示的是流量的方向。=>代表发送,<=代表接收。
TX:发送流量
RX:接收流量
TOTAL:总流量
Cum:运行iftop到目前时间的总流量
peak:流量峰值
rates:分别表示过去 2s 10s 40s 的平均流量
Listen 80 #监听端口
Listen 192.168.2.8:80 指定监听的本地网卡 可以修改
User apache # 子进程的用户,有可能被人改称www账户
Group apache # 子进程的组
ServerAdmin root@localhost # 设置管理员邮件地址
DocumentRoot "/var/www/html" # 发布网站的默认目录,想改改这里。
IncludeOptional conf.d/*.conf # 包含conf.d目录下的*.conf文件
Options Indexes FollowSymLinks # 找不到主页时,以目录的方式呈现,并允许链接到网站根目录以外
AllowOverride None # 对目录设置特殊属性:none不使用.htaccess控制,all允许
Require all granted # granted表示运行所有访问,denied表示拒绝所有访问
DirectoryIndex index.html # 定义主页文件,当访问到网站目录时如果有定义的主页文件,网站会自动访问
131
echo "这是新修改的网站家目录/www" > /www/index.html 创建测试页面
DocumentRoot /soso #指定发布网站目录,自己定义
ServerName www.soso666.com #指定域名,可以自己定义
AllowOverride None #设置目录的特性,如地址重写
Require all granted #允许所有人访问
DocumentRoot /soho
ServerName test.soso666.com
AllowOverride None
Require all granted
DocumentRoot /soso
ServerName www.soso666.com
AllowOverride None
Require all granted
DocumentRoot /soho
ServerName test.soso666.com
AllowOverride None
Require all granted
DocumentRoot /soso
ServerName www.soso666.com
AllowOverride None
Require all granted
DocumentRoot /soho
ServerName test.soso666.com
AllowOverride None
Require all granted
ifconfig ens33:0 192.168.153.123 down 取消添加的ip地址 , 在浏览器访问这两个ip
Nginx的官方主页: http://nginx.org
Yum方式:
name=nginx
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
listen 80; #监听的端口
server_name localhost; #设置域名或主机名
#access_log /var/log/nginx/host.access.log main; #日志存放路径
charset utf8
location / { #请求级别:匹配请求路径
root /usr/share/nginx/html; #默认网站发布目录
index index.html index.htm; #默认打开的网站主页
}
}
LAMP (Linux + Apache + MySQL/Mariadb + PHP)
Nginx + Tomcat #java项目常用的组合。取代apache
服务端: 即代表在互联网中提供给用户服务的设备, 比如淘宝网、京东网、阿里云等网站或平台.
设备:
二层--数据链路层: 交换机(也有三层交换机)
三层--网络层: 路由器
简单的说,交换机就是用来组建一个局域网使用的。交换机的作用是放到路由器后端,来扩展路由器接口不够用而使
用的。比如说,有20台电脑需要用网络,而路由器最多的只有8个口,只能接7台电脑,怎么办呢,这就需要交换机
来扩展网络接口实现了。
路由器的工作原理是怎么样的呢?路由器有个路由表,会自己学习、生成、维护路由表。
1,主机A准备发数据给主机B。
2,A将B的IP地址连同数据一起,以数据包形式发送给路由器R1。
3,路由器R1收到数据包后,先从数据中读取到B的IP地址,然后根据路径表计算发往B的最优路径。
4,比如路径为:R1->R2->R5->B;并将数据包发往路由器R2。
5,路由器2重复路由器1的工作,并将数据包转发给路由器5。
6,路由器5同样取出目的地址,发现目的地址就在自己的网段上,于是将该数据包直接交给主机B。
7,主机B收到主机A的信息,一次完整的通信宣告结束。
端口号:1-65535 http---80 https--443 telnet--23 ftp--21、20 ssh--22 mysql--3306 php--9000 tomcat---8080
表示层:约束数据格式,负责格式转化,加密。解密。
会话层:建立、维护、管理(解除)会话。数据的传输通道。
传输层:约定数据采用何种方式进行传递
TCP协议:传输控制协议,实现数据的可靠传输
UDP协议:用户数据报协议,实现数据的快递传输,不可靠
网络层:提供逻辑地址(IP地址,用于在网络中标识每一台设备,作用于网络间的通信,提供路由和选路)
数据链路层:提供MAC(物理)地址,每个MAC地址写在网卡上
物理层:约定接口类型,传输速度
案例:
小明:我是小明,谁是小红,我的mac地址是sdfsdfs213
arp发送广播:每个人开始拆包,其他人:是找小红的,不是找我的,不管它
小红:拆开一看,是找我的,回复:小明,我是小红,我的mac地址是dfgert213
进行数据传输
应用层:将OSI上三层融合,用于产生需要传递的数据
传输层
网络层
链路层(网络接口层):将OSI下两层融合HTTP协议简介
• 是一个基于TCP/IP通信协议来传递数据,(HTML文件,图片等)
HTTP是一个属于应用层的协议
2.简单快速:
客户向服务器请求服务时,只需传送请求和路径。通信速度很快。
3.灵活:HTTP允许传输任意类型的数据对象。(文件,视频,会议)
4.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
403 Forbidden #服务器【收到请求,但是拒绝提供服务,没有权限】
404 Not Found #请求资源不存在,输入了错误的URL,没有找到,路径不对
比如:HTTP/1.1 200 OKUDP协议介绍
UDP是一个无连接的简单的面向数据报的传输层协议。
1.面向无连接:不用先与对方建立连接,不握手。因此传输速度很快。
2.不可靠的:没有确认机制,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。
3.UDP传输数据时有大小限制,每个被传输的数据报必须限定在64KB之内
因为它不属于连接型协议,因而具有资源消耗小,处理速度快的优点,所以通常音频、视频和普通数据在传送时使用UDP较多,因为它们即使偶尔丢失一两个数据包,也不会对接收结果产生太大影响。
2. 在线视频:速度一定要快,保证视频连续,但是偶尔花了一个图像帧,人们还是能接受的
3. 网络语音电话:语音数据包一般比较小,需要高速发送,偶尔断音或串音也没问题**ARP**
**ICMP**
TCP三次握手和四次挥手
ACK (确认消息)
SYN (在建立TCP连接的时候使用)
FIN (在关闭TCP连接的时候使用)
2)接收方接收后,回传一个带有SYN/ACK标志的数据包传递确认信息,表示我收到了。
1)Client:嘿,李四,是我,听到了吗?
2)Server:我听到了,你能听到我的吗?
3)Client:好的,我们互相都能听到对方的话,我们的通信可以开始了。
1)第一次挥手:Client发送一个FIN,用来关闭Client到Server的数据传送。
2)第二次挥手:Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1
3)第三次挥手:Server发送一个FIN,用来关闭Server到Client的数据传送.
4)第四次挥手:Client收到FIN后,接着发送一个ACK给Server,确认序号为收到序号+1.
1)Client:我所有东西都说完了
2)Server:我已经全部听到了,但是等等我,我还没说完
3)Server:好了,我已经说完了
4)Client:好的,那我们的通信结束
IP地址是指互联网协议地址,IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。每个ip地址由两部分组成网络地址(NetID)和主机地址(HostID).网络地址表示其属于互联网中的哪一个网络,而主机地址则表示其属于该网络中的哪一台主机.
192 . 168 . 223 . 3 /24
11000000 . 10101000 . 11011111 . 00000011
十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2整除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为小于1时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。
(IP地址里面一共是32位,通常被分割为4个“8位二进制数”--将这8位列出来,2^0次方开始算,能用到的数落1不能用到的为0)
128 64 32 16 8 4 2 1 =255
11000000 10101000 11011111 00000000
10101100 00000000 10111010 00000000
00001010.00110010.00000100.00000011
172.0.186.0
B类:128.0.0.0 - 191.255.255.255/16
C类:192.0.0.0 - 223.255.255.255/24 目前我们用的ip地址
D类:范围从224-239,D类IP地址目前这一类地址用来一次寻址一组计算机。224.0.0.0-239.255.255.255 组播地址
E类:范围从240-254,为将来使用保留。
网络部分(网络位):直接决定了可以分配的网络数
主机部分(主机位):则决定了网络中最大的主机数 计算方法:2^主机号位数-2
网络地址:用来表示一个网络。主机位取值全部为0,例如:192.168.1.0/24
广播地址:用于在一个网络内一对所有的通信。主机部分全部换成1。# **VLSM(可变长子网掩码)**
00001010.00000001.00001100.10000101 →0000000-->网络地址是将主机位变为0=10.1.12.0/24
广播地址将主机位10000101→1111111 --->广播地址=10.1.12.255
掩码将网络位全部为1---->255.255.255.0
00001010.00000001.00001100.00000001
11111111.11111111.11111111.00000000=255.255.255.0
a.这个被选用的子网可以产生多少的子网? 2的x次方=? x表示借的主机位
b.这个子网中又会有多少个合法的主机号? 2的y次方-2=? y表示主机位
c.每个子网的广播地址是什么? 这个子网中最后一个IP地址
192.162.1.0/25 11000000.10101000.00000001.0 0000000 #1/0两个子网---(0,1)
192.168.1.127---广播
可用主机范围2^7-2=有126个
192.168.1.1-192.168.1.126
192.168.1.255---广播
可用主机范围有126个
192.168.1.129-192.168.1.254
>
> (2)静态路由:管理员手动添加的路由
>
> (3)动态路由:由路由协议动态建立的路由
> 不能动态的反映网络拓扑,当网络发生变化的时候,管理员必须手动的改变路由
>
> 优点
> 不会占用路由器太多的cpu和RAM资源,也不会占用太多带宽。
>
> (2)默认路由(Default route),如果IP数据包中的目的地址找不到存在的其它路由时,路由器会默认的选择的路由。
>
> 默认路由为0.0.0.0
[root@localhost ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default gateway 0.0.0.0 UG 100 0 0 ens33
192.168.59.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
-----------------------------------
Destination 目标网段或者主机
Gateway 网关地址,”*”或者“0.0.0.0” 表示目标是本主机所属的网络,不需要路由
Genmask 网络掩码
Flags 标记。一些可能的标记如下:
U — 路由是活动的, H — 目标是一个主机, G — 路由指向网关,
Metric 路由距离,到达指定网络所需的中转数(数字越小优先级越高)
Ref 路由项引用次数(linux 内核中没有使用)
Use 此路由项被路由软件查找的次数
Iface 该路由表项对应的输出接口
增加ip:
route add -host 192.168.59.130 metric 301 dev ens33
【前面是目标地址后面是下一跳的路由】
[root@localhost ~]# route add -host 192.168.59.130 metric 301 dev ens33
[root@localhost ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default gateway 0.0.0.0 UG 100 0 0 ens33
192.168.59.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
192.168.59.130 0.0.0.0 255.255.255.255 UH 301 0 0 ens33
增加完成后,我们可以看到多了一条指定发往192.168.59.130的数据要通过ens接口发送,
route del -host 192.168.59.130 metric 301 dev ens333
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static" #默认值none或static 这两种属于静态获取ip地址,dhcp自动获取ip
IPADDR=192.168.246.134 #设置静态ip地址
GATEWAY=192.168.246.2 #设置网关,nat模式网关是2,桥接为1.
NETMASK=255.255.255.0 #设置掩码或者
#PREFIX=24
DEFROUTE="yes" #是否设置默认路由,yes表示该配置
NAME="ens33" #网卡名称,可以不存在
DEVICE="ens33" #设备名称
ONBOOT="yes" #开机启动
DNS1=114.114.114.114 #dns全国通用地址,dns最多可以设置三个
DNS2=8.8.8.8 #谷歌的dns
DNS3=202.106.0.20 #北京的DNS。
TCP/IP:传输控制协议
TCP\IP模型
应用层:将OSI上三层融合,用于产生需要传递的数据
传输层
网络层
链路层(网络接口层):将OSI下两层融合
HTTP协议
超文本传输协议 (HTTP-Hypertext transfer protocol) 是一种详细规定了浏览器和万维网服务器之间互相通 信的规则,通过因特网传送万维网文档的数据传送协议,于1990年提出.
• 是一个基于TCP/IP通信协议来传递数据,(HTML文件,图片等)
HTTP是一个属于应用层的协议
HTTP协议的主要特点:
1.支持客户/服务器模式 (浏览器/服务器模式) 及c/s模式
2.简单快速:
客户向服务器请求服务时,只需传送请求和路径。通信速度很快。
3.灵活:HTTP允许传输任意类型的数据对象。(文件,视频,会议)
4.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
————————————————tcp udp 区别
TCP【面向连接】,通过三次握手建立连接,四次挥手接除连接;UDP是【无连】接的,即发送数据之前不需要建立连接,这种方式为UDP带来了高效的传输效率,但也导致无法确保数据的发送成功。
TCP是【可靠】的通信方式。通过TCP连接传送的数据,TCP通过超时重传、 数据校验等方式来确保数据无差错,不丢失,不重复,且按序到达;而UDP由于无需连接的原因,将会以最大速度进行传输,但不保证可靠交付,也就是会出现丢失、重复等等问题。
TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流,由于连接的问题,当网络出现波动时,连接可能出现响应问题;UDP是面向报文的,UDP没有【拥塞控制】,因此网络出现【拥塞不会使源主机的发送速率降低】。
每一条TCP连接只能是【点到点】的;而UDP不建立连接,所以可以支持一对一,一对多,多对一和多对多的交互通信,也就是可以同时接受多个人的包。
TCP需要建立连接,首部开销20字节相比8个字节的UDP显得比较大。
TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道。
安全性付费,加密,可靠性;速度场景上
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp" #只需要将这里修改为dhcp。
DEFROUTE="yes"
NAME="ens33"
DEVICE="ens33"
ONBOOT="yes"
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.246.130 soso666 soso #添加解析
GRUB_CMDLINE_LINUX="...... net.ifnames=0" #告诉系统关闭原来命名功能
curl 跟ip 显示文件首页内容
——————————————————————
curl -I ip 显示响应码
服务机c1
下载并启动nfs rpc;共享一个含有index.html的文件夹c1-server
客户机c5
以服务机c1为实体,将c5的目录作为挂载点挂载在c1主机上
更改c5本身的根目录,以共享的c5目录作为功能共享目录。实现文件传输;
因为基于端口虚拟机,在子配置文件监听新的端口。
最后通过curl -I验证。
[root@c1 ~]# systemctl start rpcbind nfs
[root@c1 ~]# mkdir /c1-server
[root@c1 ~]# vim /etc/exports
/c1-server 192.168.59.50(rw,no_root_squash,sync)
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.
[root@c1 ~]# exportfs -v
/c1-server 192.168.59.50(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,no_root_squash,no_all_squash)
[root@c1 ~]# echo delegate > /c1-server/index.html
---------------------------------------------------
root@c5 ~]# systemctl start rpcbind httpd
[root@c5 ~]# mkdir /c5-client
[root@c5 ~]# mount -t nfs 192.168.59.10:/c1-server /c5-client
[root@c5 ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 17G 1.6G 16G 10% /
devtmpfs devtmpfs 478M 0 478M 0% /dev
tmpfs tmpfs 489M 0 489M 0% /dev/shm
tmpfs tmpfs 489M 6.8M 482M 2% /run
tmpfs tmpfs 489M 0 489M 0% /sys/fs/cgroup
/dev/sda1 xfs 1014M 125M 890M 13% /boot
tmpfs tmpfs 98M 0 98M 0% /run/user/0
192.168.59.10:/c1-server nfs4 17G 1.6G 16G 10% /c5-client
[root@c5 ~]# vim /etc/httpd/conf.d/c5.conf
[root@c5 ~]# systemctl restart httpd
[root@c5 ~]# curl -I 192.168.59.50:81
DocumentRoot /c5
ServerName test.tang.com
AllowOverride None
Require all granted
listen 81
【访问时要注意在英文模式下访问浏览器,中文可能访问不到】
挂载时需要注意mount -t nfs[指定类型] ip:/共享目录 /挂载点
或者mount ip:/共享目录 /挂载点
客户机
下载并开启httpd
在httpd的子配置文件目录里创建以.conf结尾的配置文件
在子配置文件里面写
DocumentRoot /页面地址
ServerName 域名
AllowOverride None 设置目录特性,如地址重写
Require all granted 允许所有人访问
1. 【OSI七层网络模型中,封装IP地址的操作在那一层?*】
网络层
物理层
会话层
传输层
解析:A
物理层——————比特流
数据链路层————数据帧——————MAC头部,IP头部,TCP头部
网络层——————数据包——————IP头部,TCP头部
传输层——————数据段——————TCP头部
------------------------------
OSI七层封装过程和解封装过程:
封装过程:
应用层到 表示层到 会话层到 传输层到 网络层到 数据层到 物理层[向下封装}
解析:
应用层:你所发送的文字,编辑的数字
表示层:把你所发送的文字数字,压缩翻译成代码
会话层:尝试建立会话
传输层:传输到tcp头部{按照tcp协议进行封装} 传输协议
网络层:由ip地址向下层传输包含ip头部tcp头部封装 ip地址 路由器
数据层:由mac头部加上ip头部加上tcp头部封装 mac地址 交换机
物理层:由物理层比特流{二进制的方式封装},网线,光缆
(1)七层的基本概念:(从高到低):
第七层应用层:网络服务与最终用户的一个接口(用户操作)人机交互窗口,把人的语言【输入】到计算机当中。例如,在00的对话窗口输入字符。
第六层表示层 :数据的表示、安全、压缩(人的语言翻译成计算机)将接收到的数据翻译成二进制数组成的计算机语言,并对【数据进行压缩和解压】、数据加密和解密等工作0101。
第五层会话层:建立、管理、中止会话(通信软件建立会话,比如:QQ)管理是否允许不同机器上的用户之间建立【会话连接】关系。
第四层传输层: 定义【传输数据的协议端口号】,以及流控和差错校验(防火墙端到端) 将上层数据分片并加上端口号封装成【数据段】,或通过对报文头中的端口识别,实现网络中不同主机上的用户进程之间的数据。
第三层网络层 :进行逻辑地址寻址,实现"不同网络之间"的"路径选择"(路由器) 将上层数据加上源和目的方的逻辑(IP)地址【封装成数据包】,实现数据从源端到目的端的传输。
第二层数据链路层:建立逻辑连接、进行硬件地址寻址、差错校验等功能(交换机网卡)将上层数据加上源和目的方的物理(MAC)地址封装成数据帧,MAC地址是用来标识网卡的【物理地址】,建立数据链路:当发现数据错误时,可以重传数据帧。
第一层物理层: 建立、维护、断开物理连接(网卡,网线,光纤,集线器,中继器,调制解调器) 报文头部和上层数据信息都是由二进制数组成的,物理层将这些二进制数字组成的比特流转换成电信号在网络中传输。
2. 改变文件拥有者的命令是?*
changer
chmod
BiuBiu
chown
D
3. 以下那个是系统默认存放配置文件的目录?*
/dev
/etc
/root/etc
/home
B
4. 增加一个用户,使用哪个命令?它会修改/etc下的那些文件?*
useradd;passwd
Useradd;passwd
Useradd;password
useradd;password
A
5. 系统关机、[重启]的命令正确的是?*
powerOff;init 0
poweroff;init 0
poweroff;init 6
powerOff;init 6
C
6. 退出当前用户登录状态,使用什么命令?*
su
exit
OFF
poweroff
B
[7. 下面的网络协议中,面向连接的的协议是?*]
TCP
HTTP
ICMP
UDP
A
三次握手四次挥手
8. 终止一个前台进程可能用到的命令和操作*
Ctrl + c
Ctrl + z
bg
fg
A
bg后台进程暂停激活;fg后台进程调到前台;ctrl+z前台进程调入到后台进程并暂停
9. 【下列说法中,不属于ip a 命令作用范围的是?*】
查看IPV4地址
查看网卡数量
查看IPV6地址
查看网关地址
D ip-r 查看网关
问:ip a是什么意思?
答:ip a是Linux系统中用于查看IP地址信息的命令。它可以显示本机的网络接口的信息,包括接口的状态、IP地址、子网掩码等。
网关末位可以是除0(网络地址)和1(广播地址)以外的任意一个ip
[root@c100 ~]# ip r
default via 【192.168.59.2 】dev ens33 proto static metric 100
192.168.59.0/24 dev ens33 proto kernel scope link src 192.168.59.100 metric 100
[root@c100 ~]# ip a
1: lo:
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33:
link/ether 00:0c:29:23:b2:e1 brd ff:ff:ff:ff:ff:ff
inet 192.168.59.100/24 brd 192.168.59.255 scope global ens33
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe23:b2e1/64 scope link
valid_lft forever preferred_lft forever
10. VSFTPD服务中那个运行模式对于服务器本身的压力比较大?*
被动模式
主动模式
自动模式
随机模式
B 21通信20传输端口【1025-65535】不仅接受消息,还要传输数据
11. 公司目前有4个部门需要使用网络,但是只有一个网络地址:10.10.10.0/24.
运维部需要:28个IP人事部需要:60个IP开发部需要:118个IP财务部需要:28个IP 请使用VLSM的方式分配一下网络。
要求:写出每个部门对应的网络地址、广播地址以及IP范围*
子网掩码决定了网络位和主机位:
主机位确定局域网中的一个主机身份网络位决定了网络在网络中的位置;
表层信息246个IP需求子网掩码24,
网络地址【网段】10.10.10.0/24 网络位不变,主机位归零
广播地址 10.10.10.255/24 网络位不变,主机位归1
网络借位1一个,子网络个数2的次方
——————————————————————————————
28=2的x次方-2; 接近32,x=5;主机位即为5,网络位32-5=27
假设主机位借位的是000 000|00000
网络地址10.10.10.0/27
广播地址10.10.10.31/27
ip范围是10.10.10.2/27-10.10.10.31/27
60+2=接近2的六次方 x=6,主机位为6,网络位(掩码)32-6=26
假设主机借位是00 ,那么00|000000和上面重复
假设主机借位 01 那么01|000000
网络地址10.10.10.64/26
广播地址10.10.10.127/26
ip范围是10.10.10.64/26--10.10.10.127/26
118+2=接近2的七次方,x=7 主机位7,网络位32-7=25
假设主机位借的是1(0就重复了)那么1|0000000
网络地址10.10.10.128/25
广播地址10.10.10.255/25
ip范围是10.10.10.128/25-10.10.255/25
最后一步31-64中间缺,假设借位为001,那么当x=5 网络位27
001|00000
网络地址10.10.10.32/27
广播地址10.10.10.63/27
范围是10.10.10.32/27-10.10.10.63/27
12. 请简述raid0 、raid1 、raid5 的区别?*
raid0 条带卷,分开写,读写速度快,安全性差 至少两块盘 利用率100%
raid1 镜像卷,写同样的东西,安全性较好利用率50%至少两块盘写速度不变,读的变快
raid5 条带卷分开写,其中一块校验 ,一块冗余磁盘热备至少【四块】盘磁盘利用率大于70%,允许一块磁盘坏掉,当磁盘越多时,利用率越低。
13. 软链接和硬链接的区别?*
a)硬链接和源文件同一个节点;删除其中一个不影响阅读;硬链接不可以链接目录;不可以跨文件系统
b) 符号链接可以链接到目录;删除原始文件,符号链接是无用的;可以跨硬盘;符号链接源文件和链接的inode不一致。
14. 在/data/www_logs 目录下找出大于10M 并且在90天之前被修改过得log文件,并将文件移动到/usr/local/src 目录下*
find /data/www_logs -size +10M -mtime +90 -name *.log |xargs -i mv{}/usr/local/src
find /data/www_logs -size +10M -mtime +90 -name *.log -exec mv{} /usr/local/src \;
15. 在系统的根下,创建一个以当前时间.txt命名的文件*
touch /`date +%x`.txt
touch /$(date +%x-%X).txt
date +%X |xargs -i touch /{}
16. DNS与DHCP是什么?*
DNS域名解析服务;
DHCP动态分配IP服务
17. 远程登录服务器连接失败的原因有哪些?并分析解决*
端口错误
网络不通,网线未插
服务不启动 nginx或httpd 没有用systemctl start 命令
网关错误【外网】
/etc/hosts 本地域名解析文件 比如子啊里面设置 192.168.59.120 c-2
18. 设置用户的计划任务,让atasha每天14:20时执行命令完成本机时间与ntp.aliyun.com同步。*
crontab -e -u atasha
20 14 * * * ntpdate ntp.aliyun.com
19. 查看系统的版本号,【硬盘】,内存信息,内核版本,平均负载的命令分别是?*
版本号cat /etc/redhat-release
硬盘lsblk
内核版本uname -r
平均负载 uptime/w/top
20. 现有卷组vg-0已经没有剩余空间,现有逻辑卷LV-0大小为500M,有一个新的分区/dev/sdb1大小为500M,挂载点在/lv-0请调整逻辑卷的大小,把逻辑卷lv-0调整到1000M,900M和1100M间可接受。(写出命令步骤)*
【不用声明pv,分区可以直接使用,主分区已经不是超级块了】
# vgextend vg-0 /dev/sdb1
# lvextend lv-0 -L 1000M 这一步最好使用PE的方式进行扩容)
【当lv文件系统格式:XFS】
# xfs_growfs /dev/vg-0/lv-0
【当lv文件系统格式:ext4】
# resize2fs /dev/vg-0/lv-0
21. 将/etc/passwd文件中的信息,按照uid的数值大小顺序排序,保存到/tmp/user.txt*
# sort -k 3 -t : -n /etc/passwd >> /tmp/user.txt
sort -n -t ":" -k 3 -n /etc/passwd |tee /tmp/user.txt
管道符 紧跟命令
重定向 输出的追加,右侧紧跟的时普通文件
22.担心/var/log/nginx目录下日志信息丢失,需要对日志进行每日2:00远程备份处理,如何完成这个工作安排?(远程备份服务器IP:192.168.59.100,备份服务器存放路径:/bak_log目录)*
mkdir /bak_log
最后的归档备份也是在远程机 上进行
【第一步:编辑备份脚本并赋予脚本可执行权限】
# vim /nginx/scp_nginx_log.sh
scp -r /var/log/nginx/* 192.168.59.100:/bak_log
mkdir /nginx; echo test > /var/log/nginx/scp_test
#chmod +x /nginx ;chmod +x /nginx/scp_nginx_log.sh
【第二部:传输公钥】
# ssh-keygen
# ssh-copy-id 192.168.59.100
【第三步:按计划执行远程拷贝脚本】
# crontab -e -u root
* 2 * * * /nginx/scp_ngix_log.sh
【第四步:在存放备份机器内对备份目录定期进行打包整理,为了避免覆盖】
# vim /tar.sh
tar czf /opt/`date +%F`_nginx_bak.tar /bak_log
# crontab -e -u root
0 2 * * * /tar.sh
-------------------------------------------
客户端只需要建立一个备份目录;test文件是在 服务端/var/log/nginx查看效果的文件;此时脚本内容为下面更合适
scp -r /var/log/nginx/* 192.168.59.100:/bak_log
为了检验效果,执行脚本频率为每小时每分钟
23.在与开发部门进行项目对接时,被要求使用centos7.4操作系统且内核版本为3.10,你将如何验证已安装完成的系统与服务符合要求。*
通过以下命令核对:
【系统版本号】:# cat /etc/redhat-release
【内核版本号】:# uname -r
24. 请说出你所知道的WEB服务软件包的名字,并总结出它们之间的不同*
nginx:高并发、轻量级WEB服务器....
httpd: 稳定、安全、使用量全球第一...apache-httpd-serverls
【25. 使用输入重定向的方式向alan.txt文件输入你的姓名。】
[root@c130 ~]# cat >alan.txt<
> eof
输入重定向<
创建文件四种方式
1.touch
2.vim
3.echo 输出重定向
4 cat 输入重定向
26. 创建用户tom,jack,zhuzhuxia;
要求:zhuzhuxia用户的附加组为tom;
jack主组为root组;
tom用户ID号为6666.
*
# useradd tom -u 6666
# useradd jack -g root
# useradd zhuzhuxia -G tom
27. 请将vsftpd的进程过滤出来并杀掉。*
【方法一】
# ps aux |grep vsftpd
获得该进程的PID后
# kill -9 PID
【方法二】
pkill -9 vsftpd
28. 需要修改/etc/passwd文件属性。要求只可以追加,不允许修改。*
# chattr +a /etc/passwd
29. 使用帮助查看date命令如何显示今年一共有多少天?并将对应的完整命令写出来。*
date --help
# date -d "2023-12-31" +%j
-d 指定的字符串为设置时间, %j按年计算天数
30. 为httpd服务设置日志轮转;
要求1、服务的访问日志每天进行切割并保留2个备份;
2、错误日志每个月轮转一次;*
【第一步:编辑切割规则文件】nginx服务本身是个用户,也有默认的属组;:
# cat > /etc/logrotate.d/nginx<<-EOF
/var/log/nginx/access.log {
daily
create 0600 nginx nginx
dateext
rotate 2
}
/var/log/nginx/error.log {
monthly
create 0600 nginx nginx
dateext
rotate 2
}
EOF
【第二步:编辑脚本文件】
在根目录下建立nginx脚本目录
【vim只能建立普通文件,不能创建目录否则无法写入,此时ctrl+z,进入前台创建目录,然后再fg 调到前台,wq保存刚才编辑的内容】
# vim /nginx/cront.sh
/usr/sbin/logrotate /etc/logrotate.d/nginx
# chmod +x /nginx/cront.sh
【第三步:指定计划任务】
# crontab -e -u root
0 3 * * * /nginx/cront.sh
--------------------------------
口述下查看文件用什么命令【注意逻辑,递进关系,】
面试官您好
当我查看一个文件信息时ls
如果查看详情加属性-l
友好性查看大小-h
查看隐藏文件时-a
查看文件节点时-i
查看当前家目录-d
查看行数通过管道wc -l可以查看字符个数行数等
#ls #查看当前目录下的文件
#ls -l //长格式显示(显示文件的详细信息)
-rw-r--r-- 1 root root 10086 May 7 12:15:16 alan.txt
文件类型\权限 硬链接个数 所有者 所属组 大小 修改时间 名字
#ll -d /home/ #显示目录的详细信息
#ls -h //-h 人性化显示 (显示文件大小)
#ls -a //all 显示所有文件 (包括隐藏文件)
#ls ./file* #以file开头的所有文件 *通配符。表示所有字符(隐藏文件除外)
#ls ./*.txt #以任意开头以.txt结尾的所有文件
# ll -d /home/ #查看目录详细信息
# ll -t #按最新的【修改时间】排序
# ls -i /etc/hosts #查看inode号
-------------------------------------------
薪资期望:班级百分之五十名次 郑州6-8k
班级百分之八十名次 杭州8-12k
注重表达。态度和逻辑能力。
做好规划,总结,培养作息,自律的习惯;
```# 心形脚本测试
#!/bin/bash
y=1250
for (( yy = 45; yy > 0; yy-- )); do
x=-1140
for (( xx = -120; xx < 0; xx++ )); do
ff=$(echo `awk -v x=${x} -v y=${y} 'BEGIN{printf "%.0f\n",(((x/1000)*(x/1000)+(y/1000)*(y/1000)-1)*((x/1000)*(x/1000)+(y/1000)*(y/1000)-1)*((x/1000)*(x/1000)+(y/1000)*(y/1000)-1)-(x/1000)*(x/1000)*(y/1000)*(y/1000)*(y/1000))*10000000}'`)
if [[ ff -le 0 ]]; then
printf "\e[1;41m \e[0m"
else
printf " "
fi
x=$((${x}+20))
done
printf "\n"
y=$((${y}-50))
done
---------------------
首先定义变量y的初始值为1250。
使用两个嵌套的for循环,外层循环yy从45递减到1,内层循环xx从-120递增到0。
在内层循环中,使用awk命令计算变量ff的值。awk命令中的表达式是一个数学公式,根据量x和y的值计算出一个结果。
判断ff的值是否小于等于0,如果是则打印红色背景的字符,否则打印空格。
内层循环结束后,换行。
外层循环结束后,y的值减少50。
脚本结束。
1()是以 CIFS 网络协议实现的一款软件。
Alftp Bftp Cnfs DSamba
正确答案:D 你的答案:C
2.查看 yum 源中是否存在可安装软件包的命令为( )。
Ayum install Byum list Cyum clean all Dyum remove
正确答案:B 你的答案:A
3()文件主要为本地主机名、集群节点提供快速解析。
Ahosts Bvsftpd chostname DDNS
正确答案:A 你的答案:D
CIFS是实现文件共享服务的一种文件系统,主要用于实现windows系统中的文件共享,linux系统中用的比较少linux系统中利用CIFS文件系统实现文件共享,需要安装samba服务;nfs是 UNIX 【linux】系统之间共享文件的一种协议;
/etc/resolv.conf是 DNS 客户机配置文件。
DNS 软件的包名为bind ;bind 服务程序的主配置文件为/etc/named.conf