linux目录结构
Linux文件系统结构
Linux以斜杠/分割目录,Windows以反斜杠\分割目录
Linux首先建立一个根"/"文件系统,所有的目录也都是由根目录衍生出来的
/dev 存放抽象硬件 /lib 存放系统库文件 /sbin 存放特权级二进制文件 /var 存放经常变化的文件 /home 普通用户目录 /etc 存放配置文件目录 /boot 存放内核与启动文件 /bin 存放二进制文件(可执行命令) /usr 存放安装程序(软件默认目录) /mnt 文件挂载目录(u盘,光驱) /root 特权用户目录 /opt 大型软件存放目录
. 当前目录 .. 上一层目录 - 前一个工作目录 ~ 当前用户所在的家目录
iptables -F 清空防火墙规则 systemctl start firewalld 关闭防火墙开机自启的服务 systemctl stop firewalld 关闭防火墙服务 关闭selinux: vi .etc.selinux/config 找到SELINUX=enforcing 改成SELINUX=disabled systemctl start network 开启网络服务 systemctl stop network 关闭网络服务
pwd 打印当前目录 cd /home 进入/home目录 cd .. 返回上一级目录 cd ../.. 返回上两级目录 cd ~ 进入用户家目录 cd 没有加路径,也代表进入加目录 cd - 返回上次所在的目录 pwd 查看当前工作路径 ls 查看目录中的文件 ls -F 加上文件类型的指示符号
文件目录
mkdir 建立新目录 mkdir -p 递归创建目录 mkdir dir1 dir2 同时创建两个目录 touch 创建文本 rmdir 删除空目录 rm -f 删除文件 rm -rf dir 删除dir1的目录并同时删除其内容 mv 移动:移动文件/文件夹到别的目录 改名: mv 旧名字 新名字 cat 读取文本文件内容 more 查看一个长文件的内容 less 可以翻页查看上下页的内容 head 默认显示前10行 tail 默认显示后10行 tail -f 实时监控的命令 cp f1 f2 复制一个文件 cp -r 递归拷贝文件夹
查找文件
find / -name 文件名 从根目录搜索文件 find / -user 用户名 搜索属于用户的文件和目录 -type 是文件类型:f是文件,d是目录
查看linux的环境变量: echo $PATH
特殊符号:
>>> 追加重定向,把文字追加到文件的末尾 > 重定向符号,清空原文件所有内容,然后把文字覆盖到文件末尾 < 输入重定向 << 将输入结果输入重定向 echo "666" > /tmp/f1.txt 将666写入f1.txt文件中
用户管理
useradd 用户名 创建普通用户 userdel 删除用户 passwd 用户名 设置密码 root 用户可以修改其他所有人的密码,且不需要验证 su - username 切换用户 su 命令中间的-意味着完全切换到新的用户,即环境变量也变更为新用户的信息 whoami 查看当前用户 logout 退出用户登录 groupadd 用户组名 添加用户组 sudo 用root身份去执行命令 hostnamectl set-hostname 主机名 修改主机名 ls -l /home/oldboy/ 查看文件或文件夹权限 - 普通文件 d 文件夹 -rw-r--r-- 1 root root 0 Dec 26 22:38 /home/oldboy/hello.txt 第一个字母为文件类型,后面9个字母,每三个一组,分别为属主,属组,其他人的权限,1位文件链接数,修改日期, 文件名 r 4 可以对此目录执行ls列出所有文件 w 2 可以在这个目录创建文件 x 1 可以cd进入这个目录,或者查看详细信息 id 命令可以查看用户所属群组 chomd 修改文件权限 u 文件属主权限 g 同组用户权限 o 其他用户权限 a 所有用户(包括以上三种) + 增加权限 - 取消权限 = 唯一设定权限 chomd u+ file -rwxr--r-- chomd g-r file -rw----r-- chomd o+w file -rw-r--rw- chowm 用户名 file 改变用户的属主 chgrp 组名 fike 改变属组
软连接,压缩,进程
软连接配置 ln -s 目标文件绝对地址 快捷方式的绝对路径地址 如果是在/tmp目录中, ln -s /home/oldboy/hello.txt/ my.txt 在/tmp目录中建立软连接,指向/home/oldboy/hello.txt/ , 即在/tmp中创建了一个名字为my.txt的文件 PS1="[\u@\h \w\t]$" 修改命令提示符,添加绝对路径和时间 tar 压缩 -c 压缩参数 -x 解压参数 -v 显示过程 -f 指定文件(这个参数写在最后) 压缩文件 tar -cf 压缩文件名 想压缩的文件 解压文件 tar -xf 压缩文件名 ps -ef|grep python 查看python任务是否运行有进程 netstat -tunlp | grep 端口号 查看任务的端口是否启动 来自于同一个机器上的三个ip 0.0.0.0 127.0.0.1加上192.168.30.128 暴露应用又在对外的ip地址,又暴露在自己的回环地址 127.0.0.1 本机回环地址,代表机器自己的内部一个ip,其他人访问不到,并且每个人都有自己的127.0.0.1 192.168.30.128 本地对外可以提供访问的ip地址,每个人都不一样 netstat -t或--tcp 显示TCP传输协议的连线状况 netstat -u或--udp 显示UDP传输协议的连线状况 netstat -n或--numeric 直接使用ip地址,而不通过域名服务器 netstat -l或--listening 显示监控中的服务器的Socket netstat -p或--programs 显示正在使用的Socket的程序识别码和程序名称 netstat -a或--all 显示所有连线中的Socket ps -a 显示所有进程 ps -u 显示用户以及其他详细信息 ps -x 显示没有控制终端的进程 kill 杀死进程的命令 如果进程杀不死,就加上-9 killall nginx 结束nginx带有的全部进程 selinux 内置的防火墙 getenforce 查询selinux状态 setenforce 0 暂时停止selinux 永久关闭selinux vi /etc/selinux/conf # enforcing - SELinux security policy is enforced. 开启 # permissive - SELinux prints warnings instead of enforcing. 临时关闭 # disabled - No SELinux policy is loaded. 永久关闭 修改如下行 SELINUX=enforcing 重启机器,使得selinx永久关闭 软件防火墙 iptables -F 清空规则 iptables -L 查看iptable防火墙规则 ,看到只有如下短短的三个链,就说明,没有规则了 关闭防火墙的需求,防止他影响你的服务访问 [root@s15fafafa ~]# iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination 停止防火墙服务 systemctl start/restart/stop firewalld systemctl disable firewalld #删除iptables的开机自启 修改linux的字符编码 1.编译字符编码的文件 vi /etc/locale.conf 写入如下变量 LANG="zh_CN.UTF-8" 2.读取这个文件,使得变量生效 source 读取命令,使得配置文件在系统中生效 echo $LANG 查看系统字符编码 df -h 查看磁盘空间 linux dns配置文件是 /etc/resolv.conf
定时任务
crontab -l 查看任务 crontab -e 编辑任务 语法: 分 时 日 月 周 命令 * * * * *
配置yum
配置国内的yum源 1.在/etc/yum.repos.d/目录底下,定制我们自己的repo仓库文件 2.我们自己没有yum仓库,我们就去拿阿里巴巴的yum仓库 3.https://opsx.alibaba.com/mirror 这就是阿里巴巴的镜像站 4.下载阿里巴巴的yum仓库文件 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo wget下载文件后,-O参数,指定放到某个目录,且改名 5.清除yum缓存 yum clean all 6.生成新的阿里云的yum软件缓存 yum makecache 再配置epel额外的仓库源,这个仓库里就存放了很多第三方软件,例如redis mysql nginx 1.配置epel仓库 wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo 2.最好再生成yum缓存 yum makecache
系统服务管理命令
只有通过yum安装的软件,默认才能使用这个命令管理 systemctl start/stop/restart 服务名 systemctl start/stop/restart mariadb systemctl start/stop/restart redis systemctl start/stop/restart nginx
安装python3
1.下载python3的源码 cd /opt yum install wget -y 安装wget命令 wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz 通过yum安装工具包,自动处理依赖关系,每个软件包通过空格分割 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 2.解压缩源码包 tar -xvf Python-3.6.2.tgz 3.切换源码包目录 cd Python-3.6.2 4.编译且安装 4.1释放编译文件makefile ./configure --prefix=/opt/python36/ 4.2开始编译python3 make 4.3编译且安装 make install 4.4配置python3.6的环境变量(二选一即可) 配置软连接 ln -s 目标文件 软连接文件 ln -s /opt/python36/bin/python3.6 /user/bin/python3 ln -s /opt/python36/bin/pip3 /user/bin/pip3 配置path环境变量 echo $PATH 查看环境变量 vim /etc/profile写入 PATH=/opt/python36/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin 读一下/etc/profile使得生效 source /etc/profile 5.测试linux安装一个django pip3 install django 6.创建django项目 django-admin startproject mysite 7.创建django的app应用 django-admin startapp app01 8.修改settings.py中的allow_hosts
安装virtualevn
1.下载virtualenv工具 通过物理环境的pip工具安装 pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenv 安装完成后就多了一个virtualenv命令 2.创建虚拟环境venv1 virtualenv --no-site-packages --python=python3 虚拟环境名 --no-site-packages 这是构建干净,隔离的模块的参数 --python=python3 这个参数是指定虚拟环境以哪一个物理解释器为基础的 最后是虚拟环境的名字,会创建这么一个文件夹 3.进入虚拟环境目录,激活虚拟环境 找到虚拟环境目录bin底下的activate文件 source myenv/s15env1/bin/active 激活虚拟环境,原理就是修改PATH变量,path是有顺序的执行的 echo $PATH 检查环境变量 检查虚拟环境是否正常 which python3 which pip3 4.测试安装两个虚拟环境venv1,venv2,并运行两个不同django版本的项目 5.退出虚拟环境的命令 deactivate
保证本地开发环境和线上一致性的操作
1.通过命令保证环境的一致性,导出当前python环境的包 pip3 freeze > requirements.txt 这将会创建一个requirements.txt文件,其中包含了当前环境中所有包及各自版本的简单列表,可以使用pip list 在不产生requirements文件的情况下,查看已安装包的列表 2.上传至服务器后,在服务器下创建virtualenv,在venv中导入项目所需的模块依赖 pip3 install -r requirements.txt
虚拟环境管理工具virtualenvwrapper
1.在物理解释器底下安装这个命令 pip3 install virtualenvwrapper 2.修改环境变量,每次开机就加载这个virtualenvwrapper工具, vim ~/.bashrc vim编辑用户家目录下的.bashrc文件,这个文件是用户在登录的时候,就读取这个文件 export是读取shell命令的作用 export WORKON_HOME=~/Envs #设置virtualenv的统一管理目录 export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages' #添加virtualenvwrapper的参数,生成干净隔绝的环境 export VIRTUALENVWRAPPER_PYTHON=/opt/python36/bin/python3 #指定python解释器 source /opt/python36/bin/virtualenvwrapper.sh #执行virtualenvwrapper安装脚本 3.重新登录会话,使得这个配置生效 logout ssh root@ip
virtualenvwrapper命令
mkvirtualenv 虚拟环境名 自动下载虚拟环境,且激活虚拟环境
workon 虚拟环境名 激活虚拟环境
deactivate 退出虚拟环境
rmvirtualenv 删除虚拟环境
cdvirtualenv 进入当前已激活的虚拟环境所在的目录
cdsitepackages 进入当前激活的虚拟环境的python包的目录