4.12 Linux 基础

第一阶段

1.ls cat dir ll 区别

ls 显示文件和目录列表

cat 顺序显示文本文件内容

dir 显示文件和目录列表,但不带颜色识别

ll 更细显示日期,是否可读写

2.ls wc-l 统计文件个数

3.yum install -y telnet  安装telnet安装包,telnet命令用于远端登入

4.如何开启80端口(

# yum install -y nginx 安装nginx(nginx是代理服务器

# systemctl start nginx

# systemctl stop firewalld(关闭防火墙

# setenforce 0(临时关闭SE Linex防火墙

#systemctl restart network(重启工作)

5.ping 10.36.178.2(判断主机/id是否存活

6.脚本扫描

#vim ping sh

#!/bin/bash (用于指定默认情况下运行指定脚本的解释器,shell语句

7.查看/etc目录大小

[root@server-1 ~]# du -sh /etc

32M     /etc

网段扫描

nmap 10.36.178.0/24

扫描整个网段的某些端口

nmap -p 22,6379,9000,5672 10.36.178.0/24

nmap -T5 扫描速度最快

8.用户管理

#创建组 groupadd ..

#删除组 groupdel ...

#查看组详细内容 cat etc/group 组名:代表组密码:gid:组员

#查看家目录 ls /home #查看详细信息 ls -l

#查看账户是否存在的文件 cat /etc/passwd  用户名:密码:uid:gid: 描述信息:家目录:是用户登陆到界面的第一个命令,开启一个shell。登陆shell

C:\Users\徐姊威>ipconfig     window查看ip

#ss -tlnp 查看浏览器

9.pwd 查看当前所在位置/目录

10.#ntpdate time.windows.com 将服务器系统时间同步为当前的时间

11.#hwclock 查看硬件时间 #date查看时间hwclock--

12.重命名或者移动文件#mv a b(不需要/)

13.# head -10 蜀道难.txt |tail -1(查看蜀道难文件第10行内容)

14.rm -rf * 删除当前目录下的所有文件,这个命令很危险,应避免使用。

所删除的文件,一般都不能恢复!

15..rm -f 其中的,f参数 (f --force ) 忽略不存在的文件,不显示任何信息

不会提示确认信息。

16.rm 命令删除一个目录中的一个或者多个文件或者目录,只用rm命令不会

删除目录,通常文件通常可以恢。

17.rm -r 删除目录

4.12复习

1.cd -返回上次所在的目录

2.sentforce 0 临时关闭服务器/sentforce 1临时开启服务器

3.mv /opt/l.txt/mail 正确 移动文件到目录

mv /opt/mail/ /tail/ 正确 移动目录到目录

4.查看服务器安装所有包 #rpm -qa

列出压缩中所有文件 # tar -t

5.查看别名 type #

  制作别名  aliax # eg:aliax ym="yum install -y"

6.从网络下载文件  wget

7.创建用户a并制定附加组g #useradd -G a g

8.有个用户a,添加到组g #usermod -G  a g #gpasswd -G a g

9.chown -R

10.创建计划任务 #30 7 * * * 起床/每天早上七点半起床  30 21* * 1-6 下晚自习/每周一到六晚上九点半下晚自习

11.查看服务器内核版本: ungame -r

12.查看服务器系统版本:cat /etc/rehat-release

13.修改主机名:hostnormectl set-hostname $name

14.以树状结构显示目录下得一级目录tree -l 1

15.远程登录 #ssh -p2022 root@10.36.178.4

16.远程拷贝 #scp -P2022 root@10.36.178.4:/opt/file.txt/tmp

17.打包压缩 tar czvf dirq.tar.gz/opt/tail

LNMP搭建一个博客网站(wordpress) yum源

L(Centos6.5)+N(Nginx1.10.1)+M(Mysql5.7.28)+P(Php7.0.33)+WordPress(wordpress-5.2.4)

初始化过程:

1.永久修改主机名#hostnamectl set-hostname+永久主机名,是对/etc/hostname文件的内容进行修改

hostnamectl 查看linux虚拟机信息

2.关防火墙#systemctl stop firewalld

3.取消关机自启防火墙#systemctl disable firewalld

4.临时关闭SELinux #setenforce 0

配置yum源

1.编辑/etc/selinux/config ,disabled #vim /etc/selinux/config

2.安装工具# wget unzip

3.安装/etc目录下yum源 #wget http://10.36.178.200/yum-servet.sh

安装nginx服务

1.启动nginx服务

安装数据库#yum install mysql-server(# rpm -ivh https://repo.mysql.com//mysql57-community-release-el7-11.noarch.rpm

2.启动数据库#systemctl start mysqld

3.过滤数据库初始密码#grep "password" /var/log/mysqld.log

4.修改数据库密码#mysqladmin -uroot -p'不带空格的获取的初始化密码' password ‘新密码’

5.创建数据库:wordpress,#mysql -e "create database wordpress"

 #mysql -uroot -p’新密码’ 

mysql>create database wordpress;(创建wordpress)

Mysql>quit(退出数据库

安装php

1.#yum install php80-php-xsl php80-php php80-php-cli php80-php-devel php80-php-gd php80-php-pdo php80-php-mysql php80-php-fpm -y

2.#ss -ltnp 查看9000(php),80,3306(数据库)端口

3.启动php#systemctl start php80-php-fpm

4.上传wordpress包到服务器,解压上传的wordpress压缩包

unzip wordpress-6.5.2-zh_CN.zip

5.清理nginx网站发布目录下的所有资源

rm -rf /usr/share/nginx/html/*

6.拷贝wordpress目录下所有文件到/usr/share/nginx/html/

cp wordpress/* /usr/share/nginx/html/

7.修改html目录权限777

8.修改nginx配置文件#vim /etc/nginx/nginx.conf

9.重启nginx

10.浏览器访问服务器ip,在浏览器中进行部署

**配置静态IP**

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

static

IPADDR="10.36.178.41"

GATEWAY="10.36.178.1"

NETMASK="255.255.255.0"

DNS1=8.8.8.8

DNS2=4.2.2.2

4.15.2024

1.根据文件名查找文件 find / -iname 文件名,不区分大小写

2.区分大小写查找文件名find / -name 文件名 ,*通配符代表未知

3.find / -size +100M查找大于100m的文件

4.-a并且,-O或

5.ll -h 文件名,查看文件大小

6.#文件名以.logog结尾,文件大于100m,#find /-name ‘*.log’ -a -size +100M -exec(动作) rm -rf {} \;

7.Grep :查找内容关键字

7.Which 目录名:查看任何命令安装位置 whereis 命令

8.按照文件类型:find /路径 -name ‘名字’ -type d(目录)/f(文件)/l(链接)

9.按照时间查找文件:-mtime(内容修改的时间)-atime(访问时间)-ctime(属性修改时间)-a/m/cmin(按分钟,-“..分钟之内”),10天内-10;10天前+10

10.Echo “M命令” >> 文件名 :在文件下输入命令

11.State 文件名 :查看文件详细信息属性

12.!取反

13.;依次执行所有命令,不论成功失败,| |只有前面执行失败执行后面,& &只有前面执行成功还执行后面

14.mv移动不需要加参数    创建文件#touch {1..20}.log

15.find查找后动作 -exec | xargs -i 

4.16 Shell

  1. -v显示版本号-V显示详细信息
  2. (0)标准输出,标准正确输出(1)标准错误输出(2)
  3. &>混合输出  2&>1 错误输出当做标准正确输出
  4. a | b :只有a命令正确才执行b命令,否则不执行
  5. >:覆盖  >>:输入追加

<<:输入同类项?

  1. #!解释器 #!/bin/bash--------shebang   

执行脚本文件:#sh,文件一定以sh结尾

输入重定向 #!/usr/bin/bash

cat >文件名<<EOF

1234

EOF  用于创建一个名为“文件名”的文件,之后在EOF后输入的任何内容都是写入文件的内容,最后以EOF结尾。cat 追加内容用 >>,覆盖内容用 >

-x 第一次执行 . /最后执行(./脚本.sh  # 需要执行权限#chmod +x  脚本.sh

  1. alias设置别名 #vim /root/.bashrc ;analias 取消设置别名
  2. 系统级别文件,对所有用户生效 /etc/profile #配置环境变量文件 #etc/bashrc
  3. \n 换行符
  4. 执行脚本方式
  1. printf打印
  2. bg前台进程拿到后台进行:一般情况下都是后台启动 fg后台进程拿到前台进行:第一次启动查看日志,调试
  1. $?执行结果0或1;$$当前进程号;$!最后一个进程号
  2. 将命令的结果赋予给$字符串a=` ` =>a=$( )     echo $a查看变量a的值
  3. awk 截取,默认以空格符截取,第几列截取,awk -F ‘/’ ‘{ print $1 }’:截取第一行的/,最后一列$NF;awk NR==2 {print $1} 打印第二行第一列
  4. linux三剑客,grep sed awk
  5. Free -m 剩余内存 ,以兆m结尾
  6. df -h 查看磁盘使用率
  7. Nginx -v 查看版本号;nginx-V 查看版本号及安装包
  8. ifconfig eth0=ip a
  9. uptime:cpu的负载
  10. cut -d, -f3- //-d指定分隔符,-f指定显示区域,3-第三列以后(包括第三列)
  11. 多少个位置参数$#,列举位置参数$*
  12. let 运算指令

  1. 赋予参数:-

a=$1 b=$2 echo((a+b))

  1. ping -c4 :ping4次;结尾加&放在服务器后台操作;ping-S ip ww.baidu.com指定一个源ip去ping百度;ping -I 指定一个网卡ping
  2. 没有执行权限去执行shell脚本 bash sprint
  3. Read -p -s(隐藏回显) ‘请输入新密码’  password ,可交互传参,$password就是变量
  4. for循环for

          do

          {

}&(后台进行)

Done:

29.if ;then fi

30.sed -i ‘替换’ 文件位置$ sed -i 's/find/replace/' file 路径

sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

  1. /$转译变量变成字符串

31.read -p -s(取消回显)"text"

打印提示(text),等待输入,并将输入存储在REPLY中。

  1. yum remove -y 卸载
  2. $#:位置参数数量 $*:所有的位置参数 $0:文件名
  3. Port=’ ’端口
  4. route -n 获取网关信息,截取awk

流程控制

1.测试test条件 -n” ”判断字符串是否为空 test “ ” = ” ”判断字符串是否相等,test “ ” != ” ”判断不相等,[ ]=test ,-z判断是否为空echo $? 0/1

eq等于 ne不等于 ge大于等于 gt大于 le小于等于 lt小于

2.man手册:查看帮助文档

3.- b 判断块设备文件(硬盘文件) - d 存在且是目录; - f存在且是普通文件;- h 符号链接文件;- e 文件存在

4.If  ;then else fi(结尾)

5.指定一个返回值:exit 255 ; echo $? ;255

6.Case $ in

;;   

Ease

7.systemctl status httpd 判断.....服务是否运行

第一阶段(2.0)

4.23 了解linux

1.硬件:运算器、控住器、存储器、输入、输出设备(5)

2.ipconfig 查看windows ip配置

3.局域网(LAN),计算机组;ipv4广域网(WAN),外网、公网,不等于互联网(0.0.0.0-255.255.255.255);ipv6 交换机 路由器配备公网ip地址

4.公共ip是唯一地址

5.同一个局域网不可能存在相同ip,不同局域网可存在相同ip

6.分时系统

7.IDC机房,互联网数据中心,linux远程操控

8.国内外服务器品牌名字型号配置?CentOS、红帽、乌班图、

9.Timedatectl:查看时区

timedatectl set-timezone Asia/Shanghai 修改时区

10.时间格式化:date + %F年月日;date + %T时分秒;date + %{u | w}星期几

同步系统时间到硬件:hwclock -systohc

11.将硬件时间写到主板:hwclock -

12.服务器重启reboot ;init 6;

13.rz 上传本地文件;sz 文件名, 下载 ;yum install -y lrzsz
14.ls -lt 根据文件修改时间排序;ls -ltr 反转ls -lt时间反转 

4.24 touch mkdir cp rm cat mv

  1. ESC+. 以空格为分隔符打印最后一部分 ;ctrl+a移到最前 ;ctrl+e 移到最后
  2. \n换行符;\t水平制表符;\a蜂鸣声; \r回车
  3. tree -L 1 / 树状结构显示根下目录
  4. -普通文件 ;l软链接(快捷方式) ;d目录文件;s套接字文件,用于实现两个进程进行通信
  5. touch { 1..10 }.txt ;mkdir -p  连级目录 a/b/c/
  6. cp -i 询问拷贝;mv-i; cp -v 显示拷贝过程;cp -f强制覆盖;cp -r 递归处理拷贝目
  7. ./代表当前目录
  8. cat tac 反转查看文件内容 ;cat -n显示行号
  9. tail -f 动态查看尾部文件内容
  10. grep ‘^root’ 文件过滤root开头;grep ‘root$’过滤root结尾;grep -r递归
  11. rm -f filename 强制删除文件 ;rm -r direname 强制删除目录
  12. 重命名:mv 旧文件名 新文件名;移动文件:mv 源文件1 源文件2 目标路径
  13. **less more 区别**

①less可以按键盘上下方向键显示上下内容,而more不能通过上下方向键控制显示。

②less不必读整个文件,加载速度会比more更快。

③less退出后shell不会留下刚显示的内容,而more退出后会在shell上留下刚显示的内容。

④阅读到文件结束时,less不会退出,而more会。

⑤less可用行号或百分比作为书签浏览文件,而more不行。

⑥相比more,less提供更加友好的检索、高亮显示等操作

4.25vim与vi useradd groupadd

  1. 本地yum源
  2. vim命令行模式‘光标页首g’’页尾G’ ‘复制光标所在行yy’‘复制到光标所在行下一行p’复制到光标所在行上一行P’ ‘复制三行3yy’’光标所在行复制三次yy3’ ‘删除光标所在行dd’‘删除光标所在三行3dd’‘撤销u’‘恢复ctrl+r’‘替换单个字符r’‘删除光标所在行到页首dgg’ ‘删除光标所在行到页尾dG’’删除光标所在字符x’
  3. 设置行号:set nu 取消行号:set nonu

转译:s/\/etc\/password/密码/

设置列:set cuc   :set nocuc    

设置行:set cursorline   ; :set nocursorline

3.超级用户(root uid=0),系统用户(伪用户uid<1000),普通用户(uid>=1000)

4.groupadd ;groudmod -g修改GID;groupadd 组名 -g 5000 ;groupdel

5.Groupdel groupname 但不能删除主组

6.useradd usermod userdel

useradd -s /sbin/nologin 名;不让用户登录系统,-M不让用户创建家目录;

useradd -M -s /sbin/nologin 创建允许用户和组 不需要家目录,不登录

useradd 用户名 -G 组1,组2,创建用户并指定附加组

useradd 用户名 -g 组1 指定主组

userdel -r,删除用户并删除家目录:家目录,邮箱

usermod -u uid ,修改uid

usermod -g 组名 用户名‘修改主组’=Usermod username -G groupname指定附加组,覆盖其他附加组

usermod -aG 不覆盖添加已经存在的用户

useradd -c ‘描述信息’ 用户名 ,添加用户描述信息

7. gpasswd

gpasswd -a 用户名 组名,给组单一添加成员(不会覆盖原有成员); gpassd -M 1,2,3 组,多个用户同时添加到某个组(会覆盖组里原有成员)

gpasswd -d 用户 组名 从组删除用户

8.修改密码:password

password

echo "666" | passwd --stdin xiaowang 免交互修改密码

4.26 文件权限高级权限

  1. chown -R 目录递归修改属主、属组
  2.  cat 读权限 ;cd 进入目录,执行权限 ;vim、rm、touch 写权限

3.rx 对目录影响权限

(1)export LANG="zh_CN.UTF-8"更改语言

(2)权限掩码 umask 默认文件权限666 目录权限777

(3)w对目录影响

有w:可以创建删除目录下的文件,与文件权限无关;但是要给目录rx权限,要cd进去

无w:无法在目录下创建删除文件,与文件权限无关;

4.高级权限

suid(二进制命令),给命令提权(普通用户000查看文件内容提高权限)--由chmod控制

suid      chmod u+s /usr/bin/cat(命令)   所有普通用户提高权限后跟root用户一样执行命令,比如cat(查看)/rm(删除)

sgid      chmod g+s 目录名   继承属组,只用于目录

sticky    chmod o+t 目录名     年制位权限,只针对该目录下的文件,只有自己和ROOT用户管理自己文件

5.修改文件提权

Vim /etc/sudoers 加权=visudo -->/搜索root加用户-->

%wheel(轮子组,可以在组加用户:gpasswd -a username wheel) 取消输入密码 NOPASSWD:ALL

6.*目前两种给普通用户提权手段*

suid: 基本针对所有用户,任何用户在执行有suid权限的程序时(例如/usr/bin/rm),都是以root身份在执行。

sudo: 有针对性,例如针对某个用户以能够以root的身份执行某些命令。

访问控制权限setfacl 查看特殊权限,不由chmod控制

** 针对某个普通用户赋予对某个文件的特殊权限setfacl -m u:xiaoli:rx a.txt **

回收权限(针对特定用户):setfacl -x u:xiaoli a.txt

回收权限(针对所有用户):setfacl -b a.txt

查看权限:getfacl username

检查语法:visodo -c

7.查看隐藏权限

要安装这个插件lsattr file ;创建隐藏权限:chattr +i filename ,为了防止root用户删除,不能改不能增加内容; chattr +a filename 可以追加内容不可修改内容,不能删除;chattr +A ,访问时间access不会改变,加‘-’回收权限

4.28 进程管理

1.su -xiaoli 和su xiaoli区别?

2.进程:一个正在进行的程序(主、子)   线程:一个进程由一或多线程组成   

区别:进程之间资源独立,切换开销大,启动慢结束慢.一个进程崩溃不会影响其他进程

线程之间资源共享,切换开销小,启动快结束快,一个线程崩溃会影响其他线程

3.并行:同一时间进行

   并发:单位时间处理任务多少

4.查看进程:ps -ef

TTY:登录用户使用的终端名;# tty#? 表示这个进程开启的时候没有占用终端

ps a:查看所有终端进程;ps aux:后台进程;ps -e 显示所有进程;ps -ef,更完整,ps -ef | grep = ps aux | grep 查看所有进程

查看指定pid ; pidoff sshd  ; pgrep sshd

5.进程优先级Nice值:越大执行越靠后 修改进程优先级:renice -n -10 pid

6.端口(port):http:80 ;https:443 通信更安全;redis:6379 ; tomcat:8080 ;sshd:22远程连接 ;mogo:37037 ;php-fpm /普罗米修斯:9000 mail :25 | 465Ss -nplt 查看监听服务器,nginx :80 ;rabbitmq 5672

7.ss -tnlp | grep 查看端口过滤或pid

安装包yum install -y net-tool;netstat -tnlp 查网络进程和正在监听的端口

安装包yum install -y lsof ;lsof -i:80   #端口号,这能查看带端口的进程(lsof可以查看某一个文件被什么端口所占用)

8.动态查看进程:top / htop

shift P 按CPU内存使用率从高到低排序

Shift M 按内存排序

9.杀死进程:kill

kill -1 不用关机重新加载进程或者重新加载配置文件,PID不变; kill -9 pid 强制杀死;kill -15 正常终止 ;pkill -9 进程名:可以指定进程名字全部杀死

10.僵尸进程,S 可中断睡眠 Sleep ;D 不可中断睡眠

11.cat /etc/redhat-release | cat /etc/centos-release查看操作系统版本

12.查看正在运行的内核版本:uname -a

13.查看内核版本:uname -r

14.ctrl+z 把程序放到后台(这方法会让程序在后台暂停) ;&:让命令或者程序后台运行

sleep 3000-->ctrl z-->bg  %工作号(挂到后台运行)-->jobs(查看终端进程) | ps -ef | grep

sleep

sleep 3000 & | bg 直接挂到后台

nohup ssleep 3000 &

fg %工作号(挂到前台运行)

15.查看CPU负载:uptime | top | htop | w

16.查看内存使用情况:free -m(m是内存单位)

17.查看磁盘使用量:df -h 

18.背诵Linux启动过程

19.bash 重新开启一个终端

20.last 查看历史登录和重启信息 lastlog

4.29管道和重定向

1.0:标准输入1:标准正确输出2:标准错误输出 &:1跟2,混合输出ls / /hello & >hunhezhuchu.txt

2.systemctl status firewalld && echo "防火墙已开启" || echo "防火墙已关闭"

3.>>追加

4.黑洞文件:/dev/null systemctl status firewalld &>/dev/null && echo "防火墙已开启" || echo "防火墙已关闭"

5.重定向有优先级,从后向前:ls / /hello 1>a.txt 2>b.txt &>c.txt

6.2&>1 错误当正确 ;&>不管正确还是错误都输出

7.输入重定向 cat [>|>>] file5 <<EOF,以EOF结尾 覆盖或者追加输入重定向

8.rpm -qa

常用命令

1.sort -t”:” -k3 -n(r) /etc/passwd 以:为分隔符第三列从小到大(从大到小)排序 ;ls -lt(r)

2.awk ‘NF==2 {print $2}’ | awk -F ‘/’ ‘{print $1}’

cut -d’/’ -f1 以/为分隔符截取第一列,默认tab为分隔符 ;

3.xargs -i cp { } 接收并拷贝 ,{ }接收前面传来的参数

4.du -sh /* 查看所有目录占用磁盘空间大小

5.du -sh --max-depth(深度)=2 /usr/ 查看/usr/下一层 查看磁盘空间

6.wc

wc -l 统计行数 wc -w 统计多少个单词  wc -c 统计字节 1个中文占3个字节

7.uniq -c 去重

4.30 磁盘管理

1.512 5400 7200/m 机械硬盘(d)、固态硬盘(ssd)

2.SAS、SATA  速度6Gb/s   接口

3.同一台服务器不会出现两种接口

4.KVM虚拟化 ; 半虚拟化驱动/dev/vd[a-z] ; 全虚拟化驱动/dev/sd[a-z] ; 物理硬盘 /dev/vd[a-z]

5.lsblk查看磁盘分区

磁盘没被挂载也可以被查看磁盘分区

6.*fdisk *

fdisk /dev/sdb 对/dex/sdb进行分区,创建主分区-->扩展分区(没实际作用)-->逻辑分区

      m  查看帮助信息

      d   删除一个分区

      g   转换gptfenqu

      n   添加新的分区

      o  转换成[MBR |DOS]分区格式

      q  退出不保存

      p   打印分区表

      w  保存并存

  • 分区:创建主分区5G创建扩展分区 +10G ; 创建逻辑分区+5G
  • 更新磁盘分区表:partprobe /dev/sdb  手动让内核更新分区表不需要重启
  • 文件格式化:mkfs .[ext4(主分区) | xfs(扩展分区)] /dev/[sdb1 | sdb5](sdb2没有实际作用) 
  • 创建挂载目录:mkdir /mnt/[disk1/disk2]
  • 挂载mount使用:mount /dev/sdb1 /data1/ 挂载到/data1/  
  • 查看磁盘挂载与磁盘使用空间:df-Th T:打印文件类型,f:更人性化的,磁盘空间大小
  • 自动挂载3种方式
  1. vim /etc/fstab -->/dev/sdb1  /dev/disk1  ext4   defaults  0 0 --> mount -a
  2. vim /etc/rc.local --> mount /dev/sdb5 /disk2/ -->chmod +x /etc/rc.d/rc.local
  3. 使用UUID方式挂载-->获UUID:blkid /dev/sdb1-->vim /etc/fstab-->写入UUID=?

         ext4 /dev/disk1 defaults 0 0-->mount -a

  • umount /disk2 卸载挂载     

6.强制卸载 umaount -l /disk1

   fuster /data1 -- kill -9 设备号

7.parted -s转换文件格式

parted -s /dev/sdc mklabel msdos  #将/dev/sda(GPT格式)转换成(MBR格式)

parted -s /dev/sdc mklabel gpt   #将/dev/sdc(MBR格式)转换成(GPT格式)

8.gdisk

gdisk -l /dev/sdb/

gdisk /dev/sdb/ (分区格式支持gpt,大于2Tb)   

步骤:分区--格式化(文件系统类型)--挂载--自动挂载

开机自动挂载 /etc/rc.d/rc.local

9.恢复误删除的文件

lsof | grep masseges

重新挂载文件系统(改为只读)mount -o remount ;ro =

获取到一个pid

cd /proc/pid/fd

cat 文件描述符(数字)>/var/log/masseges

10.blkid /dev/sdb1  #查看uuid和文件系统类型

11.MBR(小于2TB的硬盘)格式fdisk分区(14个分区,最多4个主分区,0个扩展分区;3个主分区,1个扩展分区,n个逻辑分区)

GPT(大于小于2TB都可以的硬盘)格式gdisk分区(128个主分区)

!!!从MBR转到GPT,或从GPT转换到MBR会导致数据全部丢失!因为转换格式要格式化硬盘

12.查看indone : stat /etc/hosts

13.查看某文件的inode号码 : stat /etc/hosts或者ls -i

14.删除文件是什么原理?

5.6物理卷 卷组 逻辑卷

  1. 逻辑卷(lvm)扩容:在有硬盘的基础上

  1. 创建物理卷(pv):pvcreate /dev/sdb     查看物理卷:pvs | pvsan | pvdiplay(更详细)
  2. 创建卷组(vg):vgcreate yunjisuan(名字) /dev/sdb  查看卷组:vgs | vgscan | vgdisplay
  3. 创建逻辑卷(lvm):lvcreate [-L | -l] [10G/10G| pe] -n xian2402(vg名字) yunjisuan(卷组名)
  4. 查看逻辑卷:lvs | lvscan | lvdisplay

  1. 步骤:添加磁盘(查看磁盘信息lsblk)--制作物理卷--制作卷组--制作逻辑卷--格式化系统文件,制作文件系统类型xfsmkfs.xfs /dev/yunjisuan/xian2402)--创建挂载目录data1--挂载(mount /dev/yunjisuan/xian2402 /data1)--开机自动挂载

  1. 将剩余空间全部给lvm:lvcreate -l +100%FREE -n xian2402 yunjisuan

Vgdisplay 查看剩余空间FREE PE

7.lvm扩容 

lv没有空间先给vg扩容:vgextend yunjisuan(加到哪个组) /dev/sdc -->lvextend -L|-l +20G(在原有基础上加20G)/30G(一共30G)| pe  /dev/yunjisuan/xian2402;

lvextend -l +100%FREE /dev/yunjisuan/xian2402(逻辑卷路径)--> 挂载-->df -Th 查看文件类型 -->给文件系统扩容:xfs_growfs /dev/yunjisuan/xian2402  #xfs扩容

                                         resize2fs /dev/yunjisuan/xian2403     #ext4扩容

生成大文件:dd if=/dev/zero of=/data1/a.txt bs=1000M count=9

8.内存:ROM RAM(可用内存)

9.交换分区:Swap分区,虚拟内存,防止OOM内存溢出蓝屏

10.查看剩余内存:free -m

11.制作交换分区(swap):

  • 磁盘分区:”分一个主分区fdisk /dev/sde -->”可以直接制作文件系统类型格式化:mkswap /dev/sde -->UUID开机自动挂载 vim /etc/fastab  UUID=”?” swap swap delaulfs 0 0-->生效swapon -s -->查看详细信息 swapon -a
  • 大文件制作交换分区:dd if=/dev/zero of=/data2/swap.img bs=1000M count=10

-->对文件格式化mkswap /data/swap.img-->文件名挂载-->chmod 600 /swap2.img-->生效swapon -s --> swapon -a

  • 关闭交换分区:swapoff 分区
  • mount -o remount(重新挂载),ro(只读),rw(读写),noexec(不许执行二进制文件),exec(允许执行),auto(开机自动挂载) /data1***

12.RAID 0(数据条带卷) 1(镜像RAID) 5 6 10:0和1 常见0 1 5 10或者01

0:读取速度快,2块磁盘,利用率100%,无冗余,存在单点故障,安全性低

1:两块磁盘,双份数据,利用率50%,读数据快,写慢,安全性高

5:公司常用,至少3块磁盘,加一个热备盘,提供数据校验位,利用率高n-1/n,安全性高,读写速度快,

6:2块校验磁盘,安全性高,写慢,成本高

10:混合raid,安全高,成本高,有冗余

13.为什么要做raid?

#为了保证数据完整性,防止数据丢失

14.购买磁盘后需要操作

有磁盘-->2.制作raids5-->3.开始分区-->4.刷新分区表,5.制作文件系统-->6.挂载。

15.移除lv:lvremove 移除vg:vgremove 移除pv:pvremove

16.watch -n 2 ‘date’

17.lvreduce ?

5.7 find 打包压缩

1.find 

  1. find ./ -type d(目录) | f(文件) | l(软连接) | b(设备块) 根据类型
  2. find ./ -mtime +30  查找30天以内文件 ctime文件属性被修改时间
  3. find ./ -perm 755 根据文件权限查找
  4. -a 并且  -o 或者
  5. 查询命令和whereis which man手册
  6. find ./ -size +5M 根据文件大小查找,大于5M
  7. 找到后做出后续动作 

find /home/ -name "test*" | xargs -i cp -rf {} /tmp/ \;(转译)只重启一次,不能处理文件名带空格的文件

find /home/ -name "test*" -exec cp -rf {} /tmp/ \; 频繁重启

    8.du -sh 查看文件

2.打包压缩解压

1.打包:tar -cvf etc.tar etc

2.解包:tar -xvf etc.tar

3.压缩:gzip 文件名 | bzip2 要先安装 | zip -r etc.zip etc

4.解压:gzip -d 压缩包名 | gunzip 压缩包名 | bzip -d | bunzip2 | unzip |

5.打包压缩:tar cvzf dir.tar.gz dir            解压:tar xf dir.tar.gz

                     tar cvjf dir.tar.bz2 dir

                     tar czvJf dir,.tar.xz dir
6.压缩效率:xzip>bzip>gzip

  压缩时间:gzip>bzip>xzip

7.解压到指定的目标路径

tar -xf dir.tar.gz -C /user/local/

unzip dir.zip -d /usr/local/

  1. 发送邮件

yum -y install mailx

vim /etc/mail.rc

set from=19991820903@163.com

set smtp=smtp.163.com

set smtp-auth-user=19991820903@163.com

set smtp-auth-password=GSLTKOHJSRNPAUBV

set smtp-auth=login

邮件内容 | mail -s "邮件主题" 邮箱地址

echo "备份成功" | mail -s "备份日志" 945225432@qq.com

备份成功:cd /var &&  tar -czf log-`date +%F`.tar.gz log/ && echo "备份成功" | mail -s "备份5225432@qq.com || echo "备份失败" | mail -s "备份日志" 945225432@qq.com

备份失败cd /vr &>/dev/null  &&  tar -czf log-`date +%F`.tar.gz log/ && echo "备份成功" | mail -s “备份日志” 945225432@qq.com || echo "备份失败" | mail -s "备份日志" 945225432@qq.com

5.8 软件包管理 rpm yum

1.centos和Ubuntu有什么不同

包管理工具不同(rpm 包,yum进行软件管理 | deb包,apt-get进行软件管理)

2.rpm常用命令

        rpm -ivh 软件包名

        rpm -qa 查询系统中所有rpm包

        rpm -e 卸载包

        rpm -ql 查询一个rpm包所生成的所有文件

        rpm -qc 查询一个rpm包的配置文件

        rpm -qf 查询某个文件是哪个rpm包生成的

3.yum配置文件路径

yum  /etc/yum.repo.d/

4.更换源(aliyun的centos基础源,epel扩展源)

备份官方yum源:mkdir /etc/backup && mv *.repo /etc/backup

下载源aliyun到本地:curl -o /etc/yum.repo.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

清理缓存:yum clean all

生成缓存:yum makecache fast       

查看源:yum repolist

yum常用命令

回滚(版本回滚):yum history --> yumhistory undo id

列出:yum list

卸载:yum remove

yum easer

重新安装:yum reinstall

更新:yum update 保留旧的rpm包

yum upgrade 删除旧的rpm包

查看一个命令在哪个rpm包:yum provises 命令

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

5.配置本地源

  1. 备份本地源 mkdir /etc/backup  -->  mv *.repo /etc/backup
  2. 挂载镜像(虚拟机设置) 已连接
  3. 挂载:mount /dev/cdrom /mnt
  4. 编辑配置文件:vim /etc/yum.repos.d/local.repo

[local]

name=local repo

baseurl=file:///mnt  #指定本地yum源的路径

enable=1 #是否使用此yum源(1为打开,0为关闭)

gpgcheck=0 #检查软件

5.yum clean all

6.yum repolist

6.配置局域网内源

1.准备环境:

两个ip都要

关闭防火墙并开机不自启:systemctl stop firewalld && systemctl disabled

关闭selinux: sentenforce 0(临时关闭)

互ping网络是否通畅

挂载镜像:mount /dev/cdrom /mnt

2.yum服务端(10.36.178.41):rpm包、repodata、vsftpd(服务)--ftp

安装ftp服务:yum -y install vsftpd

mkdir /var/ftp/yum

systemctl start vsftpd

获取rpm包: 拷贝镜像中的一部分

                  cd /var/ftp/ && cp /mnt/Packages/* /yum/  

制作yum源: yum -y install creatrepo #编辑yum库工具

  createrepo /yum

 注意:createrepo 是一个对rpm 文件进行索引建立的工具。

大体功能就是对指定目录下的rpm文件进行检索,把每个rpm文件的信息存储到指定的索引文件中,这样方便远程yum命令在安装更新时进行检索。

2.yum客户端(10.36.178.68):

vim /etc/yum.repos.d/ftp.repo

[ftp]

name=ftp repo

baseurl=ftp://服务端ip:端口(默认22)/路径yum

enable=1

gpgcheck=0

yum clean all

yum repolist

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

7.克隆源

1.服务端:

yum -y install yum-utils (reposync同步工具)epel-release createrepo(编辑yum库工具)

yum -y install nginx

cd /usr/share/nginx/html

rm -rf *

备份yum库

mkdir /repo  && mv /etc/yum.repos.d/* /repo  

建立aliyun yum库

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

wget -O /etc/yum.repos.d/CentOS-epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

刷新缓存:yum clean all

                yum makecache

查看仓库列表:yum repolist

建立rpm库存放目录:

mkdir -p  /usr/share/nginx/html/Aliyun/CentOS/7/64bit/{base,extras,updates}

同步镜像到本地:reposync -r base -r epel -r extras -r updates

创建yum仓库

createrepo base

createrepo epel

createrepo extras

createrepo updates

2.客户端:

vim /etc/yum.repos.d/nginx.repo

[base]

name=base repo

baseurl=http://服务端ip/base

gpgcheck=0

[epel]

name=epel repo

baseurl=http://服务端ip/epel

gpgcheck=0

5.9 DNS 软链接 硬链接

软链接:ln -s 

硬链接:ln 

**目前学的命令**

 bin -> usr/bin  二进制可执行命令,普通用户执行的      

 boot         存放系统启动的文件  

 dev          存放设备文件的 cd、磁盘、移动设备存放配置文件   

 etc           存放配置文件   

 home         普通用户的家目录   

 lib -> usr/lib       32位库文件

 lib64 -> usr/lib64   64位库文件  

 media           视频,娱乐

 mnt             mount 临时挂载目录

 opt             存放第三方服务的,tomcat

 proc           虚拟内核映射目录root用户的家目录

 root            root用户的家目录

 run             程序运行产生的文件pid

 sbin -> usr/sbin    二进制可执行文件,超级用户使用  

 srv             存放第三方服务的

 sys            存放系统相关文件

 tmp             存放系统相关的文件临时目录,存放临时文件

 usr             命令,系统服务,文档

 var             存放可变数据库 日志,数据库

/etc/passwd      系统用户配置文件

 /etc/shadow      存放用户的密码信息  

 /etc/group        存放组信息

 /etc/hosts         系统本地的DNS解析文件

 /etc/resolv.conf    DNS客户端配置文件

 /etc/sudoers      sudo管理配置文件

 /etc/vimrc         vim全局配置文件

 /etc/my.cnf        MySQL的配置文件

 /etc/nginx.conf     nginx的配置文件

 /bin/1s            列出目录内容

 /bin/cd            进入某个目录

 /bin/mv            移动文件或者更改文件名

 /bin/touch         创建文件

 /bin/mkdir         创建目录

 /bin/su            切换用户

 /bin/useradd       添加用户

 /bin/groupadd      添加组

 /bin/usermod       移动用户

 /bin/groupmod      移动组

 /bin/userdel       删除用户

 /bin/groupdel      删除组

 /bin/passwd       修改密码

 /bin/gpasswd      添加一个用户到一个组

 /bin/vim          编辑一个文件

 /bin/rm           删除

 /bin/cp           复制

 /bin/cat          查看一个文件的内容

 /bin/tail           查看..尾部..

 /bin/head        查看..头部..

 /bin/top          动态查看进程

 /bin/htop        动态查看进程(表格)

 /bin/sl             小火车

 /bin/w              查看正在运行的进程

 /bin/who          显示当前所有登录用户的信息

 /bin/whoami     当前登录用户的信息

 /bin/which         当前目录所在位置

 /bin/whereis      当前目录所在位置

 /bin/alias            别名

 /bin/ss                用来显示处于活动状态的套接字信息

 /bin/netstat         查看Linux中网络系统状态信息

 /bin/ps                 报告当前系统的进程状态

 /bin/1sof              显示Linux系统当前已打开的所有文件列表

 /bin/uptime           查看Linux的负载信息

 /bin/date               查看时间

 /bin/hostnamectl  查询或更改系统主机名

 /bin/timedatectl   设置或查询系统时间、日期和时区等

 /bin/chmod         变更文件或目录的权限

 /bin/chown         变更文件或目录的拥有者或所属群组

 /bin/getfacl       

 /bin/setfacl      设置文件访问控制列表

 /bin/lsattr         查看文件的附加属性

 /bin/chattr        更改文件的附加属性

 /bin/kill            根据进程号杀死进程

 /bin/pki1l         可以按照进程名杀死进程

 /bin/jobs          显示作业状态

 /bin/yum          基于rpm的软件包管理器

 /bin/rpm          rpm的软件包管理工具

 /bin/sudo         以其他身份执行命令

 /bin/find           查找..

 /bin/grep          过滤..

 /bin/tee             设置文件访问控制列表

 /bin/xargs          给其他命令传递参数的一个过滤器 ;执行后续动作{}

 /bin/fg                前台运行进程放在后台进行

 /bin/bg               后台进行的进程放在前台

 /bin/createrepo  创建yum仓库

 /bin/reposync     同步yum存储库到本地目录

 /bin/make          GNU的工程化编译工具

 /bin/make install   安装

 /bin/lslbk            列出块设备信息

 /bin/blkid           查看块设备的文件系统类型、LABEL、UUID等信息

 /bin/df                显示磁盘相关信息

 /bin/du               显示每个文件和目录的磁盘使用空间

 /bin/free             显示内存使用

 /bin/tree             树状图列出目录信息

 /bin/uname        打印系统信息

 /bin/sleep          让进程睡眠

 /bin/tar               打包压缩

 /bin/dig              域名查询工具

 /bin/host            常用的分析域名查询工具

 /bin/mount         挂载

 /bin/tac              连接多个文件并以行为单位反向打印到标准输出

 /bin/dd               复制文件并对原文件的内容进行转换和格式化处理

 /bin/ip                 获取ip地址

 /bin/mkfs.ext3     格式化文件系统重新制作ext3系统

 /bin/mkfs.ext4     格式化文件系统重新制作ext3系统

 /sbin/1vcreate       创建逻辑卷

 /sbin/vgcreate       创建卷组

 /sbin/pvcreate       创建物理卷

 /sbin/lvextend       扩展逻辑卷

 /sbin/vgextend      扩展卷组

 /sbin/lvremove      删除逻辑卷

 /sbin/vgremove     删除卷组

 /sbin/pvremove     删除物理卷

 /sbin/partprobe    不重启更新分区

 /sbin/parted         磁盘分区和分区大小调整工具

 /sbin/xfs_growfs   xfs格式文件系统扩容

 /sbin/resize2fs     ext4格式文件系统扩容

 /sbin/swapoff      关闭交换分区

 /sbin/swapon      开启交换分区

 /sbin/ntpdate      使用网络计时协议(NTP)设置日期和时间

 /sbin/fdisk          小于2TB分区方式

 /sbin/gdisk         大于等于2TB分区方式

 /var/log              系统日志一般都存放在/var/log

 /var/cache         存储应用程序缓存数据

 /var/ftp               文件传输协议

 /usr目录             包含所有共享文件

 /usr/local/nginx   NGINX的默认安装路径

 /usr/local/mysql   MySQL的默认安装路径

 /dev/sd*          磁盘设备文件,不挂载目录不能访问

 /dev/cdrom        挂载在服务器上的光盘设备

 /dev/zero         空白文件

5.10 计划任务、日志轮转

1.一次性计划任务

1.安装at  启动at && 开机自启 systemctl enable at

2.at now +1hour

at>任务

Ctrl+D

at 4pm|at 12:30 +3[day|min|hour|month|year|week]

atq   查看任务

atrm id删除任务

查看依次进行计划任务的内容:/var/spool/at/

查看具体id对应的具体任务:at -c id

建一个文件a.at写入计划任务命令,at +10min < a.at 执行

2.循环调度执行cron 用户级,crond进程每分钟会处理一次计划任务

1.准备:安装crontabs-->启动systemctl start crond.service-->开机自启systemctl enable cond.service

2.管理方式:

crontab -l   #列出当前用户的计划

crontab -r   #删除当前用户的所有计划

crontab -e   #编辑当前用户的计划任务

crontab -u   #使用其他用户

管理员可以用 -l -r -e去管理其他用户的任务

/etc/cron.deny  该文件中所列用户不允许使用crontab命令

/etc/cron.allow  该文件中所列用户允许使用crontab命令

allow > deny

系统本身的计划任务  /etc/crontab

3.格式:

分时日月周 *****任务

每五分钟 */5

0 12 1-5 7 * 每年7月的1号,2号,3号,4号,5号,7号的12点

0 12 1,5,7 *  每年7月的1号,5号,7号的12点

4.备份:*/10 * * * * crontab -l > > /opt/beifen.bak

3.*日志轮转*

1.防止一个文件过大,切割成小文件

        vim /etc/logrotate.conf

        vim /etc/logrotate.d/dingdan

/var/log/dingdan{

        prerotate

                chattr -a /var/log/dingdan

        endscript

        missingok

        ifempty      空日志轮转

        notifempty 空日志不轮转

        daily

        dateext

        compress

上一天的日志先轮转不压缩    delaycompress

        create 0644 root root

        minsize 1M

        maxsize 5M(满足一个条件就能轮转)

        rotate 5

         postrotate

                chattr +a /var/log/dingdan

        endscript

}

rsyslog   日志管理

logrotate 日志轮转

日志配置主文件: /etc/rsyslog.conf

配置日志轮转:vim /etc/logrotate.conf

手动轮转日志:logcreate -f  /etc/logrotate.d/dingdan

4. *ssh远程管理服务 Ctrl +D登出*

(1)修改端口号

# vim /etc/ssh/sshd_config 

# Port 2222   #将注释去掉,修改端口号可以修改为自定义的

(2)远程登录

# ssh root@192.168.246.158 -p 2222

(3)修改DNS反解析

#UseDNS yes 改为no

(4)远程拷贝

scp  -P 端口号 /a.txt    ip:/路径

                                         源文件    目标地址

                    # scp -r(拷贝目录) -P 2222 test/ 192.168.246.158:/opt

谁是远程加谁ip

远程拷贝目标机器改了端口加-(大)P

(5)免密码远程登录

ssh-keygun   --一直回车

cd /root/.ssh/

ssh-copy-id 对方机器ip地址

(6)telent

检查tcp链接80端口是否开放 -- 如何探测端口 telnet 1 92.168.246.156 80

无密码登录:产生公钥私钥ssh-keygen

(7)telnet与ping的区别

telnet:不安全,没有对传输数据进行加密,容易被监听,还有遭受中间人攻击,telnet不能压缩传输数据,所以传输慢
ping:安全,检测本机能否上网,

5.11 LNMP架构

1.构成

L:linux centos7

N:nginx(web服务器)--源码安装,Apache(httpd)

M:mysql--源码安装5.7, oracle

P : php--php7源码安装, python, java, go(二次开发)

2.准备环境

1.关闭防火墙、selinux

2.配置本地源

vim /etc/hosts
curl -o /etc/yum.repos.d/centos.repo http://www.langlangago.org.cn/repo/centos7.repo

3.清理环境

yum erase -y `rmp -qa |  grep mariadb`
rm -rf /etc/my* && rm -rf /var/lib/mysql

3.编译安装mysql

1.上传源码包

2.添加普通mysql用户

useradd mysql -M -s /bin/nologin

3.安装编译工具

# yum -y install ncurses ncurses-devel openssl-devel bison gcc gcc-c++ make glibc automake autoconf
# yum -y install cmake

4.解压

tar xzvf /mysql-boost-5.7.27.tar.gz -C /usr/local/

5.编译

#cd /usr/local/

#cmake . \

-DWITH_BOOST=boost/boost_1_59_0/ \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DSYSCONFDIR=/etc \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DINSTALL_MANDIR=/usr/share/man \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_SSL=system \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1

6.安装

# make && make install

7.修改权限

# chown -R mysql.mysql /usr/local/mysql

8.初始化

vim /usr/local/mysql/bin/mysqld 
--user=mysql \

--initialize \
--basedir=/usr/local/mysql/ \

--datadir=/usr/local/mysql/data

9.启动mysql

# cd /usr/local/mysql
# ./bin/mysqld_safe --user=mysql &
10. 登录mysql

/usr/local/mysql/bin/mysql -uroot -p'GP9TKGgY9i/8'

11.systemctl启动方式

# cp support-files/mysql.server /etc/init.d/mysqld

# ls -l /etc/init.d/mysqld

# systemctl daemon-reload       --重新加载系统服务

# systemctl stop mysqld            --停止mysqld
# systemctl start mysqld           --启动mysqld
# netstat -lntp | grep 3306

4.编译安装nginx

1、获取源码包
2、安装依赖环境

# yum -y install gcc gcc-c++ make zlib-devel pcre pcre-devel openssl-devel perl-devel perl-ExtUtils-Embed gd-devel
3、添加一个普通用户

# useradd -s /sbin/nologin -M nginx
4、上传源码包
5、解压
6、编译

# cd /usr/local/nginx-1.22.1/
# ./configure \
--user=nginx \
--group=nginx \
--prefix=/usr/local/nginx \
--conf-path=/etc/nginx/nginx.conf \
--sbin-path=/usr/sbin/nginx \
--error-log-path=/var/log/nginx/nginx_error.log \
--http-log-path=/var/log/nginx/nginx_access.log \
--pid-path=/usr/local/nginx/run/nginx.pid

7.安装

# make && make install

8.命令

nginx                  --开启
nginx -s reload   --重启    

5.php编译安装

1、上传源码包
2、安装依赖环境

# yum -y install gcc gcc-c++ glibc automake autoconf libtool make
3、解压

4.编译

    ./configure \
    --prefix=/usr/local/php7 \
    --with-config-file-path=/usr/local/php7 \
    --with-config-file-scan-dir=/usr/local/php7/php.d \
    --enable-mysqlnd \
    --with-mysqli \
    --with-pdo-mysql \
    --enable-fpm \
    --with-fpm-user=nginx \
    --with-fpm-group=nginx \
    --with-gd \
    --with-iconv \
    --enable-xml \
    --enable-shmop \
    --enable-sysvsem \
    --enable-inline-optimization \
    --enable-mbregex \
    --enable-mbstring \
    --enable-ftp \
    --enable-zip \
    --with-openssl \
    --with-zlib \
    --with-libzip \
    --enable-pcntl \
    --enable-sockets \
    --with-xmlrpc \
    --enable-soap \
    --without-pear \
    --with-gettext \
    --enable-session \
    --with-curl \
    --with-jpeg-dir \
    --with-freetype-dir \
    --enable-opcache
5.安装

make && make install

6.nginx关联php

1.编写nginx配置文件
vim /etc/nginx/nginx.conf
location / {
            root   html;
            index  index.php index.html index.htm;
        } 
location ~ \.php$ {
    root           html;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name;
    include        fastcgi_params;
}

2.编写php测试文件

vim /usr/local/nginx/html/index.php
<?php
    phpinfo();
?>

7.项目上线

1.上传项目包
2.解压到nginx的网站根目录下/usr/local/nginx/html
3.修改权限
4.浏览器访问ip

5.13虚拟主机

1.修改默认网站发布目录

# vim /etc/httpd/conf/httpd.conf

119  DocumentRoot "/web"             # 修改网站根目录为/www

131  <Directory "/web">                # 把这个也对应的修改为/www

# mkdir /web    #创建定义的网站发布目录

# echo "这是新修改的网站根目录/web" > /web/index.html #创建测试页面

# systemctl restart httpd | httpd -k restart           #重启服务

2.基于域名

1.#vim /etc/httpd/conf.d/test.conf    #创建配置文件

<VirtualHost *:80>       #指定虚拟主机端口,*代表监听本机所有ip,也可以指定ip

DocumentRoot /web/map     #指定发布网站目录,自己定义

ServerName aaa.map.com     #指定域名,可以自己定义

<Directory "/web/map/">

AllowOverride None          #设置目录的特性,不设置目录的特性

Require all granted           #允许所有人访问

</Directory>

</VirtualHost>

2.# mkdir /wb/map #创建发布目录

3.# echo “欢迎使用map”> /web/map/index.html #创建测试页面

4.在wind电脑上面打开C:\Windows\System32\drivers\etc\hosts文件。可以用管理员身份打开

eg: 10.36.178.68 aaa.map.com

5.# httpd -k restart

3.基于端口

1.#vim /etc/httpd/conf.d/test.conf    #创建配置文件

<VirtualHost *:90>       #指定虚拟主机端口,*代表监听本机所有ip,也可以指定ip

DocumentRoot /web/map     #指定发布网站目录,自己定义

ServerName aaa.map.com     #指定域名,可以自己定义

<Directory "/web/map/">

AllowOverride None          #设置目录的特性,不设置目录的特性

Require all granted           #允许所有人访问

</Directory>

</VirtualHost>

2.更改主配置文件监听端口

Listen 80

Listen 90

3.# httpd -k restart

4.基于ip

1.给虚拟机添加ip

ip a a 10.36.178.77(ping不通) dev ens33

2.#vim /etc/httpd/conf.d/test.conf    #更改配置文件

<VirtualHost 10.36.178.77:80>    #指定虚拟主机端口,*代表监听本机所有ip,也可以指定ip

DocumentRoot /web/map     #指定发布网站目录,自己定义

ServerName aaa.map.com     #指定域名,可以自己定义

<Directory "/web/map/">

AllowOverride None          #设置目录的特性,不设置目录的特性

Require all granted           #允许所有人访问

</Directory>

</VirtualHost>

3.# httpd -k restart

5.14构建NFS远程共享存储

1.制作网络服务文件系统nfs 111

服务端

  • 安装nfs-utils rpcbind
  • 配置共享目录

       vim /etc/exports

       /nfs            10.36.178.0/24(rw,no_root_squash,sync)

    共享目录         共享对象                (共享方式)

  • 启动nfs和rpcbind并做开机自启

     systemctl start nfs-server

     systemctl enable nfs-server

客户端

  • 安装nfs-utils rpcbind
  • 挂载 mount -t nfs nfs-server-ip: /data共享目录 /data本地目录
  • 测试
  • 开机自动挂载 vim /etc/fstab --等待时间减少

        ip :/nfs         /nfs         nfs         rw,nofail,bg         0 0

      共享目录      挂载点  文件系统类型  只读,后台

2.vsftp配置匿名用户登录

准备环境:关闭防火墙、SElinux,关闭开机自启

服务端194

  • 安装vsftpd,启动并开机自启
  • ftp默认共享目录/var/ftp
  • 创建自己的共享目录 

    mkdir /var/ftp/mine

  • 创建文件在共享目录

     touch /var/ftp/mine/test.txt

  • 修改根除目录的属主与属组

    chown -R ftp.ftp /var/ftp/*
  • 编辑配置文件 

    vim /etc/vsftpd/vsftpd.conf

    anon_upload_enable=YES

    anon_mkdir_write_enable=YES

    anon_other_write_enable=YES

  • 重启vsftp

    systemctl restart vsftpd

客户端41

  • 安装客户端

        yum -y install lftp

  • 访问服务端:lftp 10.36.178.194(服务端ip)

3.vsftp配置本地用户登录

服务端194

  • 创建用户zhangsan、lisi

useradd zhangsan && useradd lisi

  • 设置密码

echo '123456' | passwd --stdin  zhangsan

echo '123456' | passwd --stdin  lisi

  • 配置本地用户ftp配置文件

vim /etc/vsftpd/vsftpd.conf

anonymous_enable=NO        #将允许匿名登录关闭

#anon_umask=022            #匿名用户所上传文件的权限掩码

#anon_upload_enable=YES     #允许匿名用户上传文件

#anon_mkdir_write_enable=YES #允许匿名用户创建目录

#anon_other_write_enable=YES #是否允许匿名用户有其他写入权(改名,删除,覆盖)

103 chroot_list_enable=YES     #启用限制登陆用户在主目录里面

104 # (default follows)

105 chroot_list_file=/etc/vsftpd/chroot_list  #限制登陆的用户在这个文件列表中,一行一个用户

106 allow_writeable_chroot=YES  #允许限制的用户对目录有写权限,新添加

  • 在chroot_list添加已经创建的用户,一行一个用户

vim /etc/vsftpd/chroot_list

zhangsan

lisi

  • 重启客户端

客户端41

  • 以zhangsan身份访问

lftp 10.36.178.194 -u zhangsan

  • lftp操作

get 下载单个文件

mget 下载多个文件

mirror 下载目录

put 上传单个文件

mput 上传多个文件

mirror -R 上传目录

mkdir 创建目录

rm -rf 删除文件或者目录

5.15 堡垒机jumpserver

1.部署jumpserver

  • 解压安装

   ./jump.sh install

  • 启动

   ./jump.sh start

2.web访问

http://10.36.178.32:80

默认用户: admin  默认密码: admin

3.在网页部署连接

  • 创建用户组(DevOps)、用户名(登录网页的用户:cloud),用户名(只代表让人 看懂的关键信息)
  • 创建资产(jumpsever)
  • 创建系统用户:

普通用户(登录linux服务端的用户:xx)--托管密码--自动推送

超级管理员(root)-- 用户切换

  • 创建资产过滤(cmd),点击规则创建规则命令(rm reboot等)
  • 资产授权,授权jumpserver给系统用户xx

  • 更改系统设置

当前站点ip:http://10.36.178.124

邮件服务器:163.com | qq.com 465

  • 点击资产列表--主机名--测试--绿色代表成功--刷新
  • 用户登录

点击右上角终端--访问成功!

5.16 无人值守安装系统 pxe

1.什么是pxe

通过网络接口启动计算机,不依赖本地存储设备(如硬盘)或本地已安装的操作系统;

2.pxe 部署

pxe-server:10.36.178.17

(1)安装前准备

  • 关闭防火墙、selinux
  • 配置静态ip地址:最好用net网络

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

static

IPADDR="10.36.178.17"

GATEWAY="10.36.178.1"

NETMASK="255.255.255.0"

DNS1=8.8.8.8

DNS2=4.2.2.2

  • 重启网络,安装软件包

# systemctl restart network

# yum install -y dhcp tftp tftp-server syslinux wget vsftpd pykickstart

(2)dhcp服务器配置

  • vim /etc/dhcp/dhcpd.conf

#确保配置文件内容如下

ddns-update-style interim;

ignore client-updates;

authoritative;

allow booting;

allow bootp;

allow unknown-clients;

# A slightly different configuration for an internal subnet.

 subnet 10.20.157.0 netmask 255.255.255.0

{

   range 10.36.178.100 10.36.178.254;

   option domain-name-servers 8.8.8.8;

   option domain-name "server1.example.com";

   option routers 10.36.178.1;

   option broadcast-address 10.36.178.255;  #广播地址255

   default-lease-time 600;

   max-lease-time 7200;

   # PXE SERVER IP

   next-server 10.36.178.17;     # DHCP server ip

   filename "pxelinux.0";

 }

(3)TFTP服务准备

  • # cp /usr/share/syslinux/{pxelinux.0,menu.c32,memdisk,mboot.c32,chain.c32} /var/lib/tftpboot/
  • # mkdir /var/lib/tftpboot/pxelinux.cfg
  • # mkdir /var/lib/tftpboot/netboot

  (4) VSftpd服务准备

  • VMware中ISO镜像连接
  • # mount /dev/cdrom /mnt      --挂载
  • mkdir /var/ftp/xa2402/         --在ftp下创建自己的文件夹

cp -rf /mnt/* /var/ftp/xa2402/

  • 拷贝系统启动时需要的镜像文件 !注意路径!

# cp /var/ftp/xa2402/images/pxeboot/vmlinuz /var/lib/tftpboot/netboot/

# cp /var/ftp/xa2402/images/pxeboot/initrd.img /var/lib/tftpboot/netboot/

  • 创建ks.cfg 文件

# vim /var/ftp/xa2402/ks.cfg

#platform=x86, AMD64, or Intel EM64T

 #version=DEVEL

 # Firewall configuration

 firewall --disabled

 # Install OS instead of upgrade

 install

 # Use NFS installation media

 url --url="ftp://10.36.178.17/xa2402/"

 rootpw --plaintext 123

#root的密码设为123

 # Use graphical install

 graphical

 firstboot disable

 # System keyboard

 keyboard us

 # System language

 lang en_US

 # SELinux configuration

 selinux disabled

 # Installation logging level

 logging level=info

# System timezone

 timezone Asia/Shanghai

 # System bootloader configuration

 bootloader location=mbr

 clearpart --all --initlabel

 part swap --asprimary --fstype="swap" --size=1024

 part /boot --fstype xfs --size=200

 part pv.01 --size=1 --grow

 volgroup rootvg01 pv.01

 logvol / --fstype xfs --name=lv01 --vgname=rootvg01 --size=1 --grow

 reboot

%packages

 @core

 %end

%post

 %end

  • 检查语法是否有错误

# ksvalidator /var/ftp/xa2402/ks.cfg

(5)PXE菜单

  • # vim /var/lib/tftpboot/pxelinux.cfg/default

 default menu.c32

 prompt 0

 timeout 30

 MENU TITLE Togogo.net Linux Training

 LABEL centos7_x64

 MENU LABEL CentOS 7 X64 for xiaoxu #自定义名字

 KERNEL /netboot/vmlinuz

 APPEND  initrd=/netboot/initrd.img inst.repo=ftp://10.36.178.17/xa2402 ks=ftp://10.36.178.17/xa2402 /ks.cfg

(6)重启服务

  • # systemctl enable dhcpd vsftpd tftp
  • # systemctl restart dhcpd vsftpd tftp

(7)创建虚拟机-自动安装系统

  • 注意:内存必须大于2G
  • 1核4G
  • CD/DVD(IDE)自动检测

3.谷歌身份验证器部署

(1)同步时钟

# timedatectl set-timezone Asia/Shanghai # 调整时区

#yum -y install ntp

# ntpdate time.windows.com #进行对时

(2)安装谷歌验证器

# yum install -y git automake libtool pam-devel bzip2 wget    #安装工具

# wget http://repository.timesys.com/buildsources/l/libpam-google-authenticator/libpam-google-authenticator-1.0/libpam-google-authenticator-1.0-source.tar.bz2

# tar -jxvf libpam-google-authenticator-1.0-source.tar.bz2 && cd libpam-google-authenticator-1.0 && make && make install            #解压安装

(3)运行谷歌程序

# google-authenticator # 运行

全部“ y ”

(4)配置ssh登录

# systemctl restart sshd

# echo "auth required pam_google_authenticator.so" >> /etc/pam.d/sshd   #在配置文件追加

(5)设置sshd

# vim /etc/ssh/sshd_config

ChallengeResponseAuthentication yes

(6)手机下载google身份验证器

安卓:下载任意google身份验证器,以及一个斑马线条码扫描器 Ios: 自行appstore下载 创建账户 上文中google-authenticator 执行完之后会给出一个二维码以及

可以直接扫描二维码或者在账户管理中添加 secret key 下面的5组8位数字是紧急登录秘钥,记住其中一组在手机不在身边时可以紧急登录

5.17虚拟机重置密码

迅速“↑ ”或者“↓”

'E'

linux16末尾 + rd.break 

'ctrl + X'

mount -o rw,remount /sysroot

chroot /sysroot

passwd

touch /.autorelabel

exit

reboot 

5.21 IP地址的组成

公司拟定100人,划分2个子网,设定网络地址为:10.36.172.0/24

00001010.00100100.10101100.00000000

00001010.00100100.10101100.0 0000000 /25 2^1

子网掩码:(网络位全为1,主机位全为0)

11111111.11111111.11111111.1 0000000 /25

255.255.255.128

广播:(网络位不变,主机位全部为1)

00001010.00100100.10101100.0 1111111 /25

10.36.172.127

网络地址:(网络位不变,主机位全部为0)

00001010.00100100.10101100.0 0000000 /25

10.36.172.0

主机位:

2^7-2=126

查看ip

ip -f inet a show dev ens33

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值