常用服务安装部署

痞子三分冷 提交于 2019-11-30 06:00:38
https://www.cnblogs.com/pyyu/p/9276851.html





学习运维架构技术乃王道
1.Nginx高可用负载均衡/缓存、限流/提升集群处理并发能力
2.mysql主从复制,读写分离
3.redis缓存加速与主从复制,哨兵,集群
4.异步消息/服务解耦之rabbitMQ消息队列
5.代码层优化/改进算法/多线程与内存优化
6.使用golang,Erlang等csp并发编程语言
7.docker容器时代


服务器介绍:
1.路飞的7台阿里云,腾讯云,亚马逊云,华为云
    数据都放在其他人的电脑上,安全性由别人掌控

2.公司有钱,有26台Dell实体服务器,vmware  esxi虚拟化的300+Linux
    公司有钱,自建机房(盖了一个厂房,里面专业托管服务器)
    有专业的公司,建造机房(世纪互联)
    机房都是有严格的标准,保护机器不断电,不损坏
    1.无静电
    2.无尘
    3.无湿度
    4.低温

Linux发行部:
Linux是一个名词,是系统的代表
1.红帽子公司  redhat Linux 收费
    -2045之前,外企
    -红帽Linux 资格认证证书
    rhcsa 红帽系统管理员
    rhce 红帽工程师
    rhca 红帽构架师
2.centos 免费版,社区版 centos7
3.Ubuntu 乌班图系统
4.suse 德国    Linux 收费


保证开发环境的一致性
1.手动解决
2.自动化解决
3.通过docker镜像
4.通过vmware系统模板镜像


Linux网络连接方式
桥接:
在一个局域网内,添加了一个新的机器

vmware就像是虚拟化的一个机房的服务器

远程连接
1.使用ssh命令
2.获取服务器的ip地址
3.window的xshell中输入:ssh root@192.168.0.101 远程连接Linux机器

Linux重要的目录
bin目录 有关bin的文件夹都是存放可执行文件的
etc目录存放配置文件的  /etc/my.conf   /etc/nginx.conf   /etc/redis.conf
    配置文件就是定制一堆参数,自己控制的参数
opt目录 存放第三方软件的安装路径的   /opt/redis   /opt/nginx   /opt/python36
root目录 存放超级用户的家目录
var目录 存放系统日志相关

Linux目录结构的操作
cd - 上一次的工作目录
cd ~ 当前登录用户的家目录
cd . 当前目录
cd .. 上一级目录

绝对路径:一切从根目录开始,就是一个绝对路径
相对路径:以当前位置为相对,找到路径

PATH变量是用于,当用户直接输入命令的时候,去查找的一个路径寻找点
当我们输入ls的时候,Linux回去PATH中寻找,哪里有ls


Linux命令学习:
ssh root@192.168.0.101
1.查看ip地址
ip a
ifconfig
2.linux目录分割是正斜杠/
3.w 那些用户在登录
4.whoami 我是谁
5.pwd 我在哪
6.更改目录
cd /
7.用于输出文件夹的内容
ls 
ll
ls -a 查看隐藏文件
ls -la
ls -lh 带文件大小
8.linux文件的颜色
浅蓝是软链接目录
蓝色是文件夹
白色是普通文件
绿色是可执行文件
9.创建目录
mkdir
mkdir -p ./a/b/c/d
mkdir -p ./bubu/{linux,python}
10.创建文件
touch
11.vi/vim写入内容
    a.此时进入了命令模式,输入键盘的i,进入编辑模式
    b.编辑模式下可以写入代码
    c.退出编辑模式按下Esc,此时就进入了底线命令模式
    d.输入:wq!
        :进入底线模式
        w 写入
        q 退出
        !强制的
    底线命令模式 :set nu 显示行号    
12.cat查看写入cat >>ceshi.txt <<EOF
[root@localhost /tmp/bubu 00:19:28]#cat >>ceshi.txt <<EOF
> ceshi
> 123
> EOF
[root@localhost /tmp/bubu 00:20:02]#cat ceshi.txt
ceshi
[root@localhost /tmp/bubu 00:20:09]#

cat /etc/passwd > ./passwd.txt 将/etc/passwd的内容写入到当前passwd.txt文件中

13.创建新用户
useradd bubu
passwd bubu
14.切换用户
su bubu
15.删除
rmdir 删除空文件夹
rm -rf * == rm -rf ./*  强制删除当前目录的所有内容
rm -rf /*  删除根(作死)
    -f递归删除文件夹
    -r强制性删除
    -i提示性操作,是否删除

16.ctrl+c 中断当前操作
17.which ls 
18.echo $PATH
19.hostname 查看主机名
20.hostnamectl set-hostname localhost
21.logout 退出重新登录查看
22.Linux命令提示符
[root@localhost ~]#
23.修改命令提示符
PS1变量控制

[root@localhost ~]# echo $PS1
[\u@\h \W]\$

修改命令提示符:
PS1='[\u@\h \w \t]\$'


24.软件时间date,硬件时间hwclock
ntpdate -u ntp.aliyun.com
25.clear
26.history

27.yum install tree -y 安装树状图命令
28.tree mysite/
29.echo 写入文件内容
echo 'hello' > ./test.txt
> 重定向覆盖写入符
>> 追加

30.拷贝 cp 目标文件 拷贝后的文件
cp my.py my.py.bak 

31.重命名命令,以及移动命令
mv 旧文件名 新文件名
mv 目标文件 移动后的路径
mv ../tmp/ceshi/txt ./

32.find 查找文件
find / -name test.txt  从根目录开始找,一个叫做test.txt的文件
find /opt -name '*.py'  从/opt目录下查找所有的.py文件
linux 管道符“|” 语法就是将第一条命令的结果传给第二条

33.过滤出python有关的进程
ps -ef | grep python
34.过滤出22端口的信息
netstat -tunlp| grep 22

35.过滤命令grep
grep nobody ./passwd.txt  从当前的passwd.txt文件中过滤出nobody的信息
grep all settings.py  过滤出django中settings.py 中allow_hosts的信息
grep all settings.py -n 过滤出allow_hosts的信息且输出行号
grep -v all settings.py  过滤出除allow_hosts之外的信息
grep -v all settings.py -n  过滤出除allow_hosts之外的信息且输出行号
cat settings.py | grep allow

36.head 
head -5 test.txt 
37.tail
tail -5 test.txt
tail -f test.txt 实时监控

37.alias别名
alias rm="rm -i"
alias rm="echo 求求你了,你可别坑我了!!!"

38.unalias rm 取消别名

39.远程传输文件,在两台Linux上
scp  想要操作的文件地址  存放的目标文件地址
scp  test.txt root@192.168.0.109:/tmp/
scp -r a root@192.168.0.109:/tmp/     -r递归传输文件夹

40.查看文件夹大小
方式1:ls -lh
方式2:du -h
du -sh /var/log/
    -s 合计文件夹大小
    -h 显示友好的单位换算

41.top命令(任务管理器)用于动态地监视进程活动和系统负载等信息 q退出
42.wget 下载
wget -r -p http://www.luffycity.com
43.Linux和window互相传递文件
    1.lrzsz
        sz test.txt(下载 从Linux传给window)
        rz test.txt(上传)
    2.xftp
    
44.reboot 重启
45.poweroff 关闭系统
46.free -m 查看内存
47.man grep 查看grep的帮助手册
48.防火墙
iptables -L #查看规则
iptables -F #清空防火墙规则
永久关闭防火墙,可能防火墙会阻挡你的Linux环境配置实验,为了方便,关闭它。
systemctl stop firewalld  #关闭防火墙服务
systemctl disable firewalld #永久关闭,开机自启

49.tar -xf Python-3.6.2.tgz 解压
50.logout 退出账号


#######################################################################
用户权限相关
[root@localhost ~]# id       #返回用户的身份信息,当uid为0的时候,这个用户就是超级用户 
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[root@localhost ~]# id root
uid=0(root) gid=0(root) groups=0(root)

用户的存放文件:
/etc/passwd
/etc/shadow  存放用户密码的文件

用户的管理命令:
添加普通用户(只有root用户有这个权利)
[root@localhost ~]# useradd tom     #创建用户,这个用户的信息会存放到/etc/passwd
[root@localhost ~]# grep tom /etc/passwd  #查看用户信息,普通用户的id默认是从1000开始的
tom:x:1001:1001::/home/tom:/bin/bash
[root@localhost ~]# 

修改普通用户的密码
passwd 用户名

切换用户(必须加上中横线- 代表完全用户切换)
[root@localhost ~]# su - tom   
[tom@localhost root]$ 

添加用户组
groupadd it_dep

删除用户
userdel -rf tom
-f     强制删除用户
-r    同事删除用户以及家目录

sudo命令用来以其他身份来执行命令,预设的身份为root
1.编辑sudoers配置文件,添加tom用户信息  
vim /etc/sudoers    (/查找root   n查找下一个)
2.定位权限设置到
root    ALL=(ALL)       ALL
添加
root    ALL=(ALL)       ALL
tom     ALL=(ALL)       ALL
3.使用sudo命令,去执行Linux命令,解决权限不足
[tom@localhost ~]$ ls /root
ls: cannot open directory /root: Permission denied
[tom@localhost ~]$ sudo ls /root
[sudo] password for tom: 
anaconda-ks.cfg
4.sudo还提供了一个语法检测的命令 visudo
 

文件权限:
读取(vim)  查看(cat)   执行(xx.py   xx.sh)
通过解释器执行  ./xx.sh    或者  source  xx.sh    或者   . xx.sh  
文件夹的权限:
新增  修改  删除   进入目录

Linux软链接创建注意用绝对路径
ln -s 目标文件绝对路径  软链接绝对路径



tar命令,参数
-x 解压
-v 显示压缩解压过程
-f 指定压缩文件
-z 指定调用gzip命令
-c 压缩当前目录的所有内容:
-r 添加文件到已有的压缩文件中
tar -rf alltmp.tgz 新加的文件名

压缩当前目录的所有内容:
tar -cf alltmp.tgz ./*
tar -cf alltmp.tgz *
tar -cf alltmp.tar *

tar -zcf alltmp.tar.gz *


解压到当前目录
tar -xf alltmp.tgz 

查看命令帮助:
tar --help
man tar
linum 中文手册


进程查看
ps -ef 查看所有进程的状态
ps -ef | grep python

网络端口管理命令
netstat -tunlp | grep 8000

kill命令 杀死进程
kill pid    (pid通过ps -ef 查看)

一次性杀死多个匹配的进程,一个是pkill,一个是killall, 
如果没有killall就安装一下 yum install psmisc -y
killall python

查看磁盘空间
df -h

Linux的dns服务相关
1.dns服务指定配置文件,这个文件,告诉Linux去那解析dns域名,
有主备两个dns服务器ip地址
[root@localhost ~]# cat /etc/resolv.conf
# Generated by NetworkManager
domain www.tendawifi.com
search www.tendawifi.com
nameserver 192.168.0.1
[root@localhost ~]# 

2.Linux解析dns的命令
nslookup www.baidu.com #解析到这个域名对应的ip地址

3.Linux强制dns,或者本地dns域名解析
vim /etc/hosts
ip 自定义的域名

4.域名解析的流程,(一个域名从浏览器访问,解析过程是如何的)
    1.浏览器输入域名,浏览器首先会去当前机器的本地dns缓存中查找记录
    2.去hosts文件中查找是否写死了对应的记录
    3.去指定的dns服务器中寻找dns记录,如果找到了域名解析记录后
    4.将这个dns记录缓存到本机的缓存记录中
    5.下一次寻找域名,就去缓存中找

Linux的计划任务,也叫做定时任务,名字是crond
1.查看Linux本机的定时任务
crontab -l  #查看计划任务
2.编写自己的计划任务
crontab -e #编辑计划任务
分时日月周  命令绝对路径
* * * * * /user/bin/echo "666" >> /tmp/ceshi.txt

Linux系统服务管理命令
系统服务(Linux安装的软件名)
只有通过yum安装的软件才可以使用这个命令
systemctl 这是centos7系列的命令
service 这是centos6系统的服务管理命令

查看网络状态
systemctl status network

查看发行版
cat /etc/os-release 
Linux常用命令
pip3是管理python模块的工具,自动解决模块依赖
pip3 list
pip3 install flask 默认是去python官方下载,网速很慢
更改pip下载的源,加速下载,使用离咱们近的豆瓣源,163源或者清华源
pip3 install -i https://pypi.douban.com/simple flask


Linux安装软件包
rpm手动安装
yum工具自动化安装    效果等同于 pip3

1.理解yum源(阿里云的yum源  epel额外仓库)
yum源仓库的位置:cd /etc/yum.repos.d/,并且只能读出第一层的repo文件
yum仓库的文件都是以.repo结尾的

2.下载阿里云的.repo仓库文件,放到/etc/yum.repos.d/
    第一步:备份原本的仓库文件
    cd /etc/yum.repos.d/
    mkdir allbak
    mv * allbak
    
    1.下载第一个阿里云仓库文件
    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
         -O 参数,指定一个下载地址,且改名
    2.配置第二个仓库文件 epel 额外仓库(redis,nginx,mongo,ipython)
    wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
    
    3.清空原本yum缓存
    yum clean all
    4.生成新的阿里云的yum缓存,加速下载预热数据(此步骤非必须)
    yum makecache


代码:    
1.cd /etc/yum.repos.d/
2.mkdir allbak
3.mv * allbak
4.wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
5.wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
6.yum clean all
7.yum makecache


yum安装nginx:
1.yum install nginx -y
2.systemctl start/restart/stop nginx
3.netstat -tunlp | grep 80 查看端口,过滤80端口的信息
4.iptables -F (清空防火墙规则) 
5.客户端:192.168.0.101:80 访问

/usr/share/nginx/html/index.html
yum remove nginx
配置yum源安装软件
编译安装python3
1.切换opt目录(这是一个约定)
cd /opt 
2.下载python3的源代码
wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz
3.安装python前的库环境,非常重要
yum install gcc patch libffi-devel python-devel  zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel -y

4.解压缩python3的源代码压缩文件
cd /opt/ 进入存在这个文件的目录
tar -xf Python-3.6.2.tgz 解压
5.cd Python-3.6.2/  进入源代码目录下,准备开始编译安装 
6.编译安装三部曲
第一曲:
cd Python-3.6.2/
#configure 这个脚本文件,只是为了释放makefile,用于指定python3安装到哪里
./configure    --prefix=/opt/python36  --with-ssl
        --prefix 这个参数用于指定python安装的路径
第二曲:
执行make开始编译python3.6的源代码
make

第三曲:
make install  生成/opt/python36

(第二曲和第三曲可以写成    make && make install)

7.配置环境变量
echo $PATH             #$PATH是有优先级顺序的
将/opt/python36/bin/放入环境变量,注意要添加到path的最前面
#变量的赋值只是临时有效
PATH="/opt/python36/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin"
#将这个参数,写入到Linux的全局变量配置文件中
vim /etc/profile     #打开这个全局变量文件,写入PATH="/opt/python36/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin"到文件最后

8.退出(logout),重新加载全局变量.
9.which python3 确认是否正确安装
10.不要将系统默认的python 改成python3  这是一个大坑。
(因为Linux有很多工具,默认是用的python2,例如yum)


11.在Linux下安装django程序
pip3 install -i https://pypi.douban.com/simple django==1.11.16
pip3 install django==1.11.16
pip3 list

12.使用django命令创建项目
[root@localhost ~]# cd /opt
[root@localhost opt]# django-admin startproject mysite

13.修改mysite的settings.py中的ALLOWED_HOSTS
vim /opt/mysite/mysite/settings.py     #/查找
ALLOWED_HOSTS = ["*"]

14.启动项目
[root@localhost opt]# cd mysite/
[root@localhost mysite]# python3 manage.py runserver 0.0.0.0:9999

补充:
python3的管理工具是pip3 install flask
python2的是easy_install flask


[root@localhost ~]# python -V
Python 2.7.5
[root@localhost ~]# python --version
Python 2.7.5
[root@localhost ~]# python3 --version
Python 3.6.2
[root@localhost ~]# pip3 list
DEPRECATION: The default format will switch to columns in the future. You can use --format=(legacy|columns) (or define a format=(legacy|columns) in your pip.conf under the [list] section) to disable this warning.
Django (1.11.16)
pip (9.0.1)
pytz (2019.2)
setuptools (28.8.0)
You are using pip version 9.0.1, however version 19.2.3 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
[root@localhost ~]# 
编译安装python3

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!