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	]$"    修改命令提示符,添加绝对路径和时间
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包的目录
原文地址:https://www.cnblogs.com/s593941/p/10192941.html