root 权限
普通用户 无法进入root :cd /root
也无法去remove了html
找一下python3 命令的绝对路径
which python3 错误写法: find / -name 'python3'找的是含有python3的
如何统计home文件夹的总大小
du -sh /home 错误写法:ls -lh /home 找的是一个个的
在服务器启动django而且让用户访问
python3 manage.py runserver 192.168.230.129:8000 错误写法:写成python了python
1.1 ls -l 查看权限
普通用户 : 本身分配的资源进行操做
用户组: 具备类似权限的多个用户的集合 (便于管理)mysql
w.1 root 为何叫root uid ?
linux 系统用户默认建立的UID 0-999开始
root 建立的普通用户id 是从1000开始的 由管理员建立linux
root 能够建立普通用户
1.2 建立用户 useradd 存在/etc/passwd
passwd 能够更改密码 用法:passwd 用户名nginx
1.3 userdel 用户 : 删除用户
1.4 查看全部用户 : cat /etc/group cat /etc/passwdgit
1.5 id : 产看用户信息的 直接输入id 显示当前登录的信息 root的github
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 id liuyang uid=1001(liuyang) gid=1001(liuyang) groups=1001(liuyang)
gid : 用户组 方便关联整个用户的sql
id liuyang -g 查看所在组 id就好了 画蛇添足 1001
2 用户切换
su 命令 中间必须加上横杠,表明彻底的用户环境变量切换shell
语法
2.1 su - 用户名django
root 能够随意的切换普通用户
普通用户切换 : 切换root 须要输入root的密码
切换用户 须要输入用户的密码
退出登陆
logout ctrl+d
2.2 sudo ls /root 尚方宝剑 必须配置sudo
用户提权的命令之一 sudo
sudo 配置
sudo命令用来以其余身份来执行命令,预设的身份为root。
1 用root打开 /etc/sudoers文件 vim /etc/sudoers 2 找到以下行,改 vim 打开 黄马褂 配置错了 用户名 ALL = (ALL) ALL yy q 一下 3 此时 普通用户 就可使用 sudo命令了 [root@bogon ~]# su - qq [qq@bogon ~]$ sudo ls / 普通用户就能够查看root里面的内容了
vim快捷键:93 定位 /root 搜索 n下一个 (vim写错了没有任何的提示)
2.3 visudo(也在linux) 有提示 会报错
what now? 你现 在想干吗?
三个 ALL = ALL ...
userdel 删除用户
userdel -rf 用户名
kill 消除进程 ~ -9 3284
对文件的读写执行和对文件夹的读写执行不同
什么是权限 :全部者,和全部组, 可读可写可执行
cd /tmp 3.1 ll 查看权限
属主 属组 既不属于属主组的是其余人 qq
linux软连接:快捷方式
3.2 ln -s 目标文件夹 快捷方式文件
ln -s /home/木兰诗.txt /home/qq/mulan.txt 复制快捷方式
在复制了的/home/qq/mulan.txt 里查看软链接 3.3 ls -l ll也行
-dl
.sh 什么文件夹 -rw-r
3.4 chmod 777 hehe.sh 777最高权限 绿色表明可执行
-rw-r--r--. 1 root root 175740458 Jun 27 15:24 木兰诗.txt drwxr-xr-x. 2 qq qq 6 Jun 26 15:05 Desktop lrwxrwxrwx. 1 root root 19 Jun 28 17:55 mulan.txt -> /home/木兰诗.txt
-普通文件
d文件夹
l然谅解
-rw- r-- r-- 解读它 rw-(属主权限) r--(属组) r--(第三者)
3.5 chmod 000 文件 没权限 root权限厉害有权限 普通的就是-----
r 可读 4
w 可写 2
x 可执行 (绿色表示可执行) 1
修改文件的权限
change mode (chmod)
语法
ugo 用户 组 其余人
chmod 权限 操做的对象
chmod u+r file chmod u-r
chmod o+r 文件 加可读 其余人
chmod u+r 文件 加可读 用户
chmod w+r 文件 加可读 用户组
chomd g+r/w/x 都加上
读写执行的权限是有顺序的
必须是
rwx 可读可写可执行
r-- 只读
chmod 数字权限 文件对象
chmod 666 文件权限
-rw-rw-rw-
4+2+0 4+2+0 4+2+0
user other 属主属组其余人
更改为别人的文件
change
更改文件的属主 change own
3.6 chown 用户名 file
更改文件的属组 change group
3.7 chgrp 用户名 file
文件的读写执行
r cat more less
w echo vim
x 直接执行 或文件夹的
文件夹的读写执行
r ls
w 进入文件夹建立文件touch
x cd 能够进入文件夹
chmod 004 user 加
经过PS1 变量所控制
hostname 主机名
修改主机名 hostnamectl set-hostname 20
改命令提示符 ~ 不显示先相对路径 相对绝对路径 好看一点在哪 还有时间
PS1=""
3.9 echo $PS1 查看命令提示符
[\u@\h \w \t]$ 显示时间 绝对路径
3.10 hostname 查看主机名
3.11 hostnamectl set-hostname s20 设置主机名为s20 要退出会话从新登录
PS1 = ‘[\u@\h \w \t]$’ 改为自动变化相对路径的格式
#linux的网络端口管理命令 netstat [选项] -t或--tcp:显示TCP传输协议的连线情况; -u或--udp:显示UDP传输协议的连线情况; -n或--numeric:直接使用ip地址,而不经过域名服务器; -l或--listening:显示监控中的服务器的Socket; -p或--programs:显示正在使用Socket的程序识别码和程序名称; -a或--all:显示全部连线中的Socket;
4 命令
django开启了,怎么知道,看进程
4.1 natstat 命令 tunlp
natstat - tunlp
4.2 curl 发起http请求的 地址:8000/hello
curl 地址:8000/hello
关闭防火墙的命令
4.3 iptables -F
关闭防火墙服务
4.4 systemctl stop firewalld
linux 进程管理
4.5 ps 命令
4.6 ps -ef 显示全部进程状况
经过进程id号管理
杀死进程的命令 |grep python 不是django 这个是grep产生的进程
ps -ef|grep django 有grep和django的是本身的grep进程 , 找python的进程
4.7 kill 进程id kill 12251
4.8 pkill 支持正则的 经过pid处理的
pkill crm (很差乱用的 一个下去都删了,公司里)
kill 还有一个参数 -9 强制终止(不重要的僵尸进程,慎用:也有可能杀死依赖进程)
防火墙
iptables 是软件防火墙 ,公司可能会用,可能不会用,还有硬件防火墙的存在,保证服务器安全,学习阶段,为了实验安全
export 读取shell 变量的命令
df 命令 读取磁盘空间
英文版本
export LC_CTYPE=en_US.UTF-8
export LC_ALL=en_US.UTF-8
。。。
yum install tree -y 安装
tree 工具,以树状图显示目录结构
dns 域名解析系统
把域名解析成ip地址,网络中的一个超大电话簿
公网中,存在dns服务器,进行解析
在linux中的dns服务器配置文件是
查看Linux的dns
/etc/resolv.conf 里面定义了网络中的dns
dns:
阿里巴巴:233.5.5.5 233.6.6.6
腾讯的dns : 119.29.29.29
谷歌的dns:8.8.8.8
114的dns:114.114.114.114
访问百度,却访问到发牌的网站,hosts文件,强制解析了,也可能更换了你的dns记录
用于测试本地的假域名(以后ngix域名不买)
网络设置,以太网,详细信息: dns服务器:
linux: vim /etc/resolv.conf 本身写dns服务
nameserver 8.8.8.8
ping baidu.com
ping 123.206.16.61 能够用 去检测
域名服务没写 : namesever : 8.8.
域名查找 :
address: 域名地址 下一个address 是ip地址
vim /etc/hosts 修改 hosts权限
添加一个 127.0.0.1 www.baidu.com
在访问就访问不到了,由于host优先级比那个DNS高
dns 解析流程
1 浏览器输入域名的时候,浏览器优先去hosts文件中寻找时候有对应记录
2 没有记录就去dns本地缓存中寻找,是否有记录
3.寻找是否配置了dns服务器,而后去公网中寻找记录
4.找到了就缓存到本地dns记录中,
5.解析结束
free -m 看缓存
echo '0' > /proc/sys/vm/drop_caches 清缓存 哪一个写错了
时间点到了自动去执行 任务
crontab -e 编辑定时任务的文件
* * * * * echo '爱的魔力转圈圈' >> /home/ai.txt #>>先后有空格 * echo有空格 删除的话: 把第一行删除 tail -f ai.txt
crontab -l 列出定时任务的规则
分时日月周 作什么事情 你要执行的命令的绝对路径
/* * * * *
*全部的可能值
每分钟执行一次命令
crontabl -e
/* * * * *
echo 绝对路径 +
题目:
#每小时的整点执行命令 0 * * * * #在上午8-11点的第3和第15分钟执行 分 时 日 月 周 命令的绝对路径 3,15 8-11 * * * #每晚21:30执行命令 分 时 日 月 周 命令的绝对路径 30 21 * * * #每周6、日的下午1:30执行命令 分 时 日 月 周 命令的绝对路径 30 13 * * 6,0 #每周一到周五的凌晨1点,清空/tmp目录的全部文件 分 时 日 月 周 命令的绝对路径 0 1 * * 1-5 /usr/bin/rm -rf /tmp/* #每晚的21:30重启nginx 30 21 * * * /usr/bin/systemctl restart nginx #每个月的1,10,22日的4:45重启nginx 分 时 日 月 周 命令的绝对路径 45 4 1,10,22 * * /usr/bin/systemctl restart nginx #每一个星期一的上午8点到11点的第3和15分钟执行命令 3,15 8-11 * * 1
tail -f hehe.txt
关闭 : crontab -e 进入 都删了 !wq 保存 crontab -l 查看
软件开发规范 .config
setup.py 编译的文档 去github 开源 django 看结构
linux软件包的格式
mysql -5.5.rpm
以及rpm也是一个软件包管理命令
rpm -ivh mysql-5.5.rpm
rpm 管理软件得手动处理依赖关系,不适用!
yum install 推荐使用!!! <自动处理依赖关系 ,最好配置个源,比较好
源代码编译安装,获取软件源代码,手动编译安装(能够自由扩展软件,选择最新的软件) :纯净
yum工具是红帽子才有的软件管理工具,例如suse 乌班图 是别的管理工具
yum install mysql 都是yum软件仓库服务器
是国外的,用阿里的下载
https://opsx.alibaba.com/mirror 之后去公司下载镜像,这个网站
cd /etc/yum.repos.d/ 这个目录下,第一层中,全部以.repo结尾的文件,都会识别为一个yum仓库
(这个仓库就是一个url),url中提供了各类rpm包的下载,yum工具回去查找
yum install nginx base : url源
配置阿里云的yum源的步骤
1.地址以下:https://opsx.alibaba.com/mirror
2 备份本来的yum库文件(防止改错了)
cd/etc/yum.repos.d
新建文件夹
mkdir allrepo
移动全部的repo文件到这个目录下,不用他了mv * ./allrepo
出现了第一个
3 . 下载新的yum 库
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
4 .配置额外的第三方仓库epel 不能链接,多是少插件什么的
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
nginx :80的网络服务 其实定义到index.html文件的 192.168.230.129/index.html
dg是清空
5.能够测试yum工具安装一个nginx 从epel仓库里下载的
yum install nginx -y
6.启动nginx测试访问
systemctl start nginx # ps -ef |grep nginx 查看进程
and : epel : extra packages enterprise linux 企业版的额外的包
老师的就是ngnix搭起来的
好玩的玩法: 把find / -name index.html 把nginx的改为 dnf的源代码网页
再更改一下 gbk --> utf8 访问网址就到了dnf 可是 页面跳转能够用就是别人的网页
1. yum repolist all 列出全部仓库 yum list all 列出仓库全部软件包 yum info 软件包名 查看软件包信息 yum install 软件包名 安装软件包 yum reinstall 软件包名 从新安装软件包 yum update 软件包名 升级软件包 yum remove 软件包名 移除软件包 yum clean all 清楚全部仓库缓存 yum check-update 检查能够更新的软件包 yum grouplist 查看系统中已安装的软件包 yum groupinstall 软件包组 安装软件包组
老企业: 不求技术,稳定就行
systemctl status nginx
centos7 用system服务管理
systemctl start/stop/reload/restart/ nginx
systemctl enable nginx 设置Nginx开机自启
systemctl disable nginx 禁止开机自启
systemctl disable firewalld #永久关闭开机自启
systemctl stop firewalld #临时关闭防火墙服务
systemctl enable firewalld
centos6/5/4
service nginx start/stop/restart
不一样且互不干扰的 虚拟环境
太多模块了 不必定用,可是还得都安装
目的: 一个跑爬虫 一个跑flask 没有别的 , 都是解释器 虚拟解释器
pip3 list window命令里查看插件python
插件臃肿,还不适用全部 django flask
每个解释器单走一个 应用 ,解耦合
安装virtualenv 虚拟环境工具
venv1 走django1.0
venv2 走2.0
venv3 走flask
1 下载虚拟环境工具(这里是在物理环境下安装的)没安装虚拟 直接python或者pip都是本体
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenv
pip3 install --upgrade pip 升级 pip
2 使用命令,建立虚拟环境,分别运行一个django1和django2
#进入一个统一管理的目录,管理虚拟环境例如/opt/allenv mkdir /opt/allenv cd /opt/allenv virtualenv --no-site-packages --python=python3 venv1 #参数解释 --no-site-packages 不要任何的第三方包 --python 是指定一个解释器 咱们选的是python3 venv1是虚拟环境文件夹的名字,自定义
3 进入虚拟环境目录,激活虚拟环境
source是linux的读取命令,读取一个脚本文件,激活虚拟环境
source /opt/allenv/venv1/bin/activate
参数解释 : --no-site-packages 不要任何的第三方包
--python 是指定一个解释器 咱们选的是python3
venv1 是虚拟环境文件夹的名字 ,自定义
4 虚拟环境使用原理是 ,修改了PATH变量,根据pATH的优先级,使用解释器 pip3 list 干净的
5 激活虚拟环境,在venv1下建立django1.11.9项目
6 激活虚拟环境,在venv2 下建立虚拟环境
建立django2
which pip3
pip3 list
7.退出虚拟环境的命令 deactivate
确保开发环境的一致性
经过命令保证环境的一致性(将window中解释器的模块,导出一个),导出当前python环境包
1 在windows中导出全部的模块信息
pip3 freeze > requirements.txt
2 将此文件,发送给linux服务器,可选lrzsz 或scp
3 在linux中安装便可 pip3 install -i https://pypi.douban.com/simple -r requirements.txt
想要导出这个虚拟环境中的模块,给linxu
问题: window中也建立了虚拟环境,而且都在虚拟环境
步骤: 1.第一步,在windows中激活虚拟环境,在虚拟环境下 pip3 freeze > requirements.txt 2.将次文件,发送给linux服务器,可选lrzsz 或scp 3.在linux中安装便可 pip3 install -i https://pypi.douban.com/simple -r requirements.txt
virtualenvwrapper工具
1.安装工具
(注意要退出虚拟环境)
pip3 install -i https://pypi.douban.com/simple virtualenvwrapper
2.配置用户我的变量配置文件,每次开机都加载这个virtualevnwrapper工具
/etc/profile
vim ~/.bash_profile #打开文件,写入以下变量
export WORKON_HOME=~/Envs #设置virtualenv的统一管理目录
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages' #添加virtualenvwrapper的参数,生成干净隔绝的环境
export VIRTUALENVWRAPPER_PYTHON=/opt/python36/bin/python #指定python解释器
source /opt/python36/bin/virtualenvwrapper.sh #只有这一步,才是让这个工具生效的!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3.退出会话,从新登陆,查看是否加载了virtualenvwrapper工具
4.工具建立后,使用命令管理
建立虚拟环境
mkvirtualenv django1
mkvirtualenv django2
workon 虚拟环境的名字(支持tab补全) #激活虚拟环境
lsvirtualenv #列出全部虚拟环境的目录
cdvirtualenv #进入已激活的虚拟环境的目录
cdsitepackages #进入虚拟环境下的第三方模块目录