linux配置环境
常见问题
git无法访问https,http可以的问题
git config --global http.sslverify false
配置ubantu镜像源
cp /etc/apt/sources.list /etc/apt/sources.list.bak
echo ''>/etc/apt/sources.list
echo deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse>>/etc/apt/sources.list
echo deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse>>/etc/apt/sources.list
echo deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse>>/etc/apt/sources.list
echo deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse>>/etc/apt/sources.list
apt-get update
# cp /etc/apt/sources.list.bak /etc/apt/sources.list # 恢复镜像源
# deb cdrom:[Ubuntu 20.04.3 LTS _Focal Fossa_ - Release amd64 (20210819)]/ focal main restricted
# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://cn.archive.ubuntu.com/ubuntu/ focal main restricted
# deb-src http://cn.archive.ubuntu.com/ubuntu/ focal main restricted
## Major bug fix updates produced after the final release of the
## distribution.
deb http://cn.archive.ubuntu.com/ubuntu/ focal-updates main restricted
# deb-src http://cn.archive.ubuntu.com/ubuntu/ focal-updates main restricted
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb http://cn.archive.ubuntu.com/ubuntu/ focal universe
# deb-src http://cn.archive.ubuntu.com/ubuntu/ focal universe
deb http://cn.archive.ubuntu.com/ubuntu/ focal-updates universe
# deb-src http://cn.archive.ubuntu.com/ubuntu/ focal-updates universe
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://cn.archive.ubuntu.com/ubuntu/ focal multiverse
# deb-src http://cn.archive.ubuntu.com/ubuntu/ focal multiverse
deb http://cn.archive.ubuntu.com/ubuntu/ focal-updates multiverse
# deb-src http://cn.archive.ubuntu.com/ubuntu/ focal-updates multiverse
## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
deb http://cn.archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse
# deb-src http://cn.archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse
## Uncomment the following two lines to add software from Canonical's
## 'partner' repository.
## This software is not part of Ubuntu, but is offered by Canonical and the
## respective vendors as a service to Ubuntu users.
deb http://archive.canonical.com/ubuntu focal partner
deb-src http://archive.canonical.com/ubuntu focal partner
deb http://security.ubuntu.com/ubuntu focal-security main restricted
# deb-src http://security.ubuntu.com/ubuntu focal-security main restricted
deb http://security.ubuntu.com/ubuntu focal-security universe
# deb-src http://security.ubuntu.com/ubuntu focal-security universe
deb http://security.ubuntu.com/ubuntu focal-security multiverse
# deb-src http://security.ubuntu.com/ubuntu focal-security multiverse
# This system was installed using small removable media
# (e.g. netinst, live or single CD). The matching "deb cdrom"
# entries were disabled at the end of the installation process.
# For information about how to configure apt package sources,
# see the sources.list(5) manual.
远程连接linux系统
使用软件:xshell、finalshell、windows power、pycharm
冷门知识
快速搜索文件
whereis python3.6
在linux环境中直接 ./123.py 执行123.py文件,添加解释器
#!/usr/bin/python3.6
# 在文件首行添加这句话
print()
设置vim默认显示行号
vim /etc/vimrc
# 在文件中添加
set nu
后台运行程序命令
nohup 命令 2>&1 &
vim排序
# 参数:
# -k 第几列
# -t 分割符 默认是空格 sort -k 4
# -n 安装数字值的大小进行排序
# -r 逆序
sort -k 4 -t"." -n
设置自启动命令
nohup python /home/<username>/tray.py &
远程登录
# 安装步骤:
# 假如Ubuntu作为服务端,需要安装ssh服务端软件.执行命令: sudo apt-get install openssh-server
# 客户端电脑如果是macOS系统则不需要安装ssh客户端软件,默认已经安装过了,直接可以使用ssh命令
# 客户端电脑如果是Windows系统则需要安装OpenSSH for Windows这个软件
#
ssh root@IP地址
输入密码:
查看端口进程
netstat -tulpn
kill -9 端口号
关闭系统进程
关闭gunicorn的方式:
通过搜索运行的py文件名:ps aux|grep Flaskweb
kill -9 端口号
远程拷贝
scp
# 1.远程拷贝文件:
scp 本地文件 远程服务器用户名@远程服务器ip地址:指定拷贝到远程服务器的路径
scp 远程服务器用户名@远程服务器ip地址:远程服务器文件 指定拷贝到本地的路径
scp root@ip地址:linux文件路径 本地路径
# 2.远程拷贝目录︰
scp -r本地目录远程服务器用户名@远程服务器ip地址:指定拷贝到远程服务器的路径scp -r远程服务器用户名@远程服务器ip地址:远程服务器目录指定拷贝到本地的路径-r表示递归拷贝整个目录
相关软件
filezilla
切换权限
sudo -s
sudo 命令 # 使用管理员权限
# 查看用户
whoami 当前用户是谁
who 有哪些用户
# 查看命令位置
which
修改密码
# 修改密码
passwd
shutdown -h now # 立刻关机
reboot # 重启
ubantu密码:123456789
root密码:123456
查看相关信息
# 查看python版本
python -V
# 查看pip版本
pip -V
# 查看python解析器位置
whereis python
# neo4j数据库的启动和关闭
neo4j start
neo4j stop
迁移环境
pip freeze > requirements.txt
-------------------------------------
requirements.txt
appdirs==1.4.3
backports.functools-lru-cache==1.5
beautifulsoup4==4.5.3
bs4==0.0.1
cycler==0.10.0
kiwisolver==1.0.1
lxml==3.7.3
matplotlib==2.2.0
numpy==1.14.1
pandas==0.22.0
pyparsing==2.2.0
python-dateutil==2.6.1
pytz==2018.3
six==1.11.0
virtualenv==15.1.0
-----------------------------------
pip install -r requirements.txt
软件安装
# 离线安装
deb文件格式安装
sudo dpkg -i deb安装包
# 在线安装
apt-get方式安装
sudo apt-get install QQ # 需要配置镜像源
软件卸载
# 离线卸载
deb文件格式卸载
sudo dpkg -r 软件名
# 在线卸载
apt-get方式卸载
sudo apt-get remove QQ # 需要配置镜像源
接口测试
PostMan
下载地址
https://www.postman.com/downloads/
使用流程
-
创建collection
-
创建request
-
选择请求方式
- post
- 填写参数:Body选项,选择JSON格式
- get
- post
-
点击发送
搭建服务器环境
web服务器
Flask web
# 使用pip安装Flask
pip install Flask==1.1.1
使用方法
# 导入Flask类
from flask import Flask
# 创建一个该类的实例app, 参数为__name__, 这个参数是必需的,
# 这样Flask才能知道在哪里可找到模板和静态文件等东西.
app = Flask(__name__)
# 使用route()装饰器来告诉Flask触发函数的URL
@app.route('/')
def hello_world():
"""请求指定的url后,执行的主要逻辑函数"""
# 在用户浏览器中显示信息:'Hello, World!'
return 'Hello, World!'
if __name__ == '__main__':
app.run(host="118.31.0.29", port=5000)
python app.py
http://192.168.1.13:5000/
Gunicorn服务组件
在项目中, Gunicorn和Flask框架一同使用, 能够开启服务, 处理请求,因其高性能的特点能够有效减少服务丢包率.
# 使用pip安装gunicorn
pip install gunicorn==20.0.4
# 使用其启动Flask服务:
gunicorn -w 1 -b 0.0.0.0:5000 app:app
# -w 代表开启的进程数, 我们只开启一个进程
# -b 服务的IP地址和端口
# app:app 是指执行的主要对象位置, 在app.py中的app对象
# 如果使其在后台运行可使用:
# nohup gunicorn -w 1 -b 0.0.0.0:5001 app:app &
解决无法启动问题
netstat -tulpn
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-U39PIjlm-1647054829478)(assets/1645100084086.png)]
# 结束该进程
kill -9 966457
# 重新开启服务
gunicorn -w 4 -b 127.0.0.1:5000 app:app
redis数据库
Redis(全称:Remote Dictionary Server 远程字典服务)是一个开源的使用ANSI C语言编写、支持网络、可基于
内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API.
# 使用yum安装redis
yum install redis -y
# 启动redis-server, 这里使用了默认配置, 端口是6379.
redis-server
示例
# 导入redis驱动:pip install redis
import redis
# coding=utf-8
# redis配置
REDIS_CONFIG = {
"host": "192.168.88.26",
"port": 6379
}
# 创建一个redis连接池
pool = redis.ConnectionPool( **REDIS_CONFIG)
# 从连接池中初始化一个活跃的连接对象
r = redis.StrictRedis(connection_pool=pool)
# hset表示使用hash数据结构进行数据写入
# uid代表某个用户的唯一标识
uid = "8888"
# key是需要记录的数据描述
key = "该用户最后一次说的话:".encode('utf-8')
# value是需要记录的数据具体内容
value = "再见, 董小姐".encode('utf-8')
r.hset(uid, key, value)
# hget表示使用hash数据结构进行数据读取
result = r.hget(uid, key)
print(result.decode('utf-8'))
进程管理工具
Supervisord
官网地址:http://www.supervisord.org/configuration.html
安装
yum install supervisor
生成配置文件
echo_supervisord_conf > supervisord.conf
配置文件
;[program:服务名称]
;command = 启动服务的命令
[program:main_server]
command=gunicorn -w 1 -b 127.0.0.1:5000 app:app
[program:redis_server]
command=redis-server
服务开启
supervisord -c supervisord.conf
常用命令
supervisorctl status:查看所有进程的状态
supervisorctl stop es:停止es
supervisorctl start es:启动es
supervisorctl restart es: 重启es
supervisorctl update :配置文件修改后可以使用该命令加载新的配置
supervisorctl reload: 重新启动配置中的所有程序
常见错误
1、unix:///var/run/supervisor/supervisor.sock no such file
问题描述:安装好supervisor没有开启服务直接使用supervisorctl报的错
解决办法:supervisord -c /etc/supervisord.conf
2、command中指定的进程已经起来,但supervisor还不断重启
问题描述:command中启动方式为后台启动,导致识别不到pid,然后不断重启,本人使用的是elasticsearch,command 指定的是$path/bin/elasticsearch -d,踩到的坑
解决办法:supervisor无法检测后台启动进程的pid,而supervisor本身就是后台启动守护进程,因此不用担心这个
3、启动了多个supervisord服务,导致无法正常关闭服务
问题描述:在运行supervisord -c /etc/supervisord.conf 之前,我直接运行过supervisord -c /etc/supervisord.d/xx.conf ,导致有些进程被多个superviord管理,无法正常关闭进程。
解决办法: 使用 ps -fe | grep supervisord 查看所有启动过的supervisord服务,kill相关的进程。
操作命令
查看目录
ls 查看当前路径下的目录信息
tree 以树状方式显示目录
pwd 查看当前目录路径
clear 清除终端内容
创建和删除
touch 文件名 # 创建指定文件
mkdir 目录名 # 创建目录(文件夹)
rm 文件名 # 删除指定文件
rmdir 目录名 # 删除空目录
操作参数
###### 命令选项
-l 以列表方式显示,默认是字节
-h 智能的显示文件大小
-a 显示隐藏文件和隐藏目录
-p 创建所依赖的文件夹 # 用于强制创建目录mkdir -p a/b/c/d
# rf mv cp 删除移动拷贝 参数
-i 交互式操作提示
-r 递归操作目录及其内容
-f 强制操作,忽略不存在的文件,无需提示
-v 显示拷贝后的路径描述
输出重定向
> # 如果文件存在,会覆盖原有文件内容,相当于文件操作中的‘w′模式
例如:ls > a.txt
>> # 如果文件存在,会追加写入文件末尾,相当于文件操作中的‘a’模式
例如:ls >> a.txt
查看文件
cat # 查看小型文件
more # 查看大型文件
| # 管道,一个命令的输出可以通过管道做为另一个命令的输入,相当于一个容器。
例如:命令1 | 命令2
软链接
# 快捷方式
ln -s 文件路径1 文件路径2 # 要使用绝对路径
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yVWobGVK-1647054829479)(assets/1643349444584.png)]
查找文件内容
grep 查找/搜索文件内容
grep "hello" a.txt
grep hello a.txt
-v # 显示不包含匹配文本的所有行 取反 grep hello a.txt -nv
-n # 显示匹配行号 grep hello a.txt -n
-i # 忽略大小写 grep hello a.txt -i
正则表达式
^ 以指定字符串开头
$ 以指定字符串结尾
. 匹配一个非换行符的字符
查找文件
find 文件路径
find -name 根据文件名查找文件 # find . -name "2.txt"
# 是一种特殊语句,主要有星号(*)和问号(?),用来模糊搜索文件
* 代表0个或多个任意字符 # find . -name "*.txt"
? 代表任意一个字符 # find . -name "2?.txt"
压缩解压缩
.gz 压缩包后缀
.bz2 压缩包后缀
tar 压缩和解压缩命令
-v 显示打包或者解包的详细信息
-f 指定文件名称,必须放到所有选项后面
-c 创建打包文件
# 例 只打包,不压缩
tar -cvf 1.tar 要打包的文件
-z 压缩(.gz)
-j 压缩(.bz2)
# 例 打包并压缩
tar -zcvf 1.tar.gz 要打包的文件
tar -jcvf 1.tar.bz2 要打包的文件
-x 解压缩
# 例
tar -zxvf 1.tar.gz # 解压缩
tar -jxvf 1.tar.bz2 # 解压缩
-C 解压缩到指定目录
tar -jxvf 1.tar.bz2 -C 要解压的目录 # 解压缩
.tar
解包:tar xvf FileName.tar
打包:tar cvf FileName.tar DirName
(注:tar是打包,不是压缩!)
.gz
解压1:gunzip FileName.gz
解压2:gzip -d FileName.gz
压缩:gzip FileName
.tar.gz 和 .tgz
解压:tar zxvf FileName.tar.gz
压缩:tar zcvf FileName.tar.gz DirName
.bz2
解压1:bzip2 -d FileName.bz2
解压2:bunzip2 FileName.bz2
压缩: bzip2 -z FileName
.tar.bz2
解压:tar jxvf FileName.tar.bz2
压缩:tar jcvf FileName.tar.bz2 DirName
.bz
解压1:bzip2 -d FileName.bz
解压2:bunzip2 FileName.bz
压缩:未知
.tar.bz
解压:tar jxvf FileName.tar.bz
压缩:未知
.Z
解压:uncompress FileName.Z
压缩:compress FileName
.tar.Z
解压:tar Zxvf FileName.tar.Z
压缩:tar Zcvf FileName.tar.Z DirName
.zip
解压:unzip FileName.zip
压缩:zip FileName.zip DirName
.rar
解压:rar x FileName.rar
压缩:rar a FileName.rar DirName
.lha
解压:lha -e FileName.lha
压缩:lha -a FileName.lha FileName
.rpm
解包:rpm2cpio FileName.rpm | cpio -div
.deb
解包:ar p FileName.deb data.tar.gz | tar zxf -
通用解压
.tar .tgz .tar.gz .tar.Z .tar.bz .tar.bz2 .zip .cpio .rpm .deb .slp .arj .rar .ace .lha .lzh .lzx .lzs .arc .sda .sfx .lnx .zoo .cab .kar .cpt .pit .sit .sea
解压:sEx x FileName.*
压缩:sEx a FileName.* FileName
sEx只是调用相关程序,本身并无压缩、解压功能,请注意!
gzip 命令
减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间。gzip 是在 Linux 系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用。
语法:gzip [选项] 压缩(解压缩)的文件名该命令的各选项含义如下:
-c 将输出写到标准输出上,并保留原有文件。
-d 将压缩文件解压。
-l 对每个压缩文件,显示下列字段:
压缩文件的大小;未压缩文件的大小;压缩比;未压缩文件的名字
-r 递归式地查找指定目录并压缩其中的所有文件或者是解压缩。
-t 测试,检查压缩文件是否完整。
-v 对每一个压缩和解压的文件,显示文件名和压缩比。
-num 用指定的数字 num 调整压缩的速度,
-1 或 --fast 表示最快压缩方法(低压缩比),-9 或--best表示最慢压缩方法(高压缩比)。系统缺省值为 6。指令实例:
gzip *% 把当前目录下的每个文件压缩成 .gz 文件。
gzip -dv *% 把当前目录下每个压缩的文件解压,并列出详细的信息。
gzip -l *% 详细显示例1中每个压缩的文件的信息,并不解压。
gzip usr.tar% 压缩 tar 备份文件 usr.tar,此时压缩文件的扩展名为.tar.gz。
VIM
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OnMVsEdr-1647054829480)(assets/1643368962852.png)]
配置vim主题
主题包下载:https://github.com/flazz/vim-colorschemes
打开.vimrc
vim ~/.vimrc
写入
set tabstop=4 " 设置tab的大小"
set nu " 设置默认显示行号"
set shiftwidth=4 " "
set t_Co=256
set background=dark " Setting dark mode
colorscheme deus "设置主题"
末行模式
:w # 保存
: wq # 保存退出
: !q # 强制退出
: x # 保存退出
:/搜索的内容 # 搜索指定内容
:%s/要替换的内容/替换后的内容/g # 全局替换
:开始行数,结束行数s/要替换的内容/替换后的内容 # 局部替换
命令模式
命令 说明
yy 复制光标所在行
p 粘贴
dd 删除/剪切当前行
v 按行选中
shift+v 行模式
ctrl+v 列模式 # shift+i进入插入模式 esc两次进行插入
u 撤销
ctr+r 反撤销
G 回到最后一行
gg 回到第一行
数字+G 回到指定行
. 重复上一次命令操作
>> 往右缩进
<< 往左缩进
shift+6 回到当前行的行首
shift+4 回到当前行的行末
ctr+f 下一屏
ctr+b 上一屏
vi是"visual interface”的简称,它在Linux 上的地位就仿佛Windows中的记事本一样.它可以执行编辑、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制.vi是一个文本编辑程序,没有莱单,只有命令.
vim更高级一些,可以理解是vi的高级版本.
vim需要自行安装,在shell中输入vimtutor命令可以查看相关的帮助文档.
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MktQ9rBI-1647054829480)(…/002CPPStudy/assets/1640067396123.png)]
代码格式化
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Apmu5RbP-1647054829480)(…/002CPPStudy/assets/1640067585085.png)]
光标移动
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UNTFItiu-1647054829481)(…/002CPPStudy/assets/1640067844058.png)]
删除命令
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lB8pfVGh-1647054829481)(…/002CPPStudy/assets/1640067986027.png)]
撤销
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qB7frJao-1647054829481)(…/002CPPStudy/assets/1640068608482.png)]
复制粘贴
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GiuAvDHe-1647054829481)(…/002CPPStudy/assets/1640068556516.png)]
可视模式
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XpVWfBSf-1647054829482)(…/002CPPStudy/assets/1640068823650.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hVIE5moC-1647054829482)(…/002CPPStudy/assets/1640068956562.png)]
vim多行插入
第一步:ctrl+v,选择光标
第二步:shift + i,输入内容
第三步:esc
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zGU7iwo0-1647054829482)(…/002CPPStudy/assets/1640069149819.png)]
替换命令
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nngP4x7h-1647054829482)(…/002CPPStudy/assets/1640069485837.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nArn9CGo-1647054829483)(…/002CPPStudy/assets/1640069504828.png)]
替换操作
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ykjwkifZ-1647054829483)(…/002CPPStudy/assets/1640070238309.png)]
快速翻屏
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7MFEgCVX-1647054829483)(…/002CPPStudy/assets/1640070495731.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Tdsg7iKY-1647054829483)(…/002CPPStudy/assets/1640070643989.png)]
vim分屏操作
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XOaE5ctv-1647054829484)(…/002CPPStudy/assets/1640070667334.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4nJ0YV0j-1647054829484)(…/002CPPStudy/assets/1640071061100.png)]
conda
安装
# 使用以下命令下载conda
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh
# 注:若命令不存在,执行 yum install wget -y 安装即可
bash Miniconda3-latest-Linux-x86_64.sh
# 安装的过程中,一路yes或者回车即可
# 添加环境变量
source /root/.bashrc
配置 aconda 仓库镜像源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
配置相关环境
# 下载安装TensorFlow,OpenCV,jupyter
conda install -y tensorflow opencv jupyter
相关命令
conda update -n base conda #update最新版本的conda
conda create -n xxxx python=3.5 #创建python3.5的xxxx虚拟环境
conda activate xxxx #开启xxxx环境
conda deactivate #关闭环境
conda env list #显示所有的虚拟环境
conda info --envs #显示所有的虚拟环境
conda list #查看已经安装的文件包
conda list -n xxx #指定查看xxx虚拟环境下安装的package
conda update xxx #更新xxx文件包
conda uninstall xxx #卸载xxx文件包
conda clean -p //删除没有用的包
conda clean -t //删除tar包
conda clean -y --all //删除所有的安装包及cache
# 彻底删除旧环境
conda remove --name oldname --all
python克隆环境
# 克隆oldname环境为newname环境
conda create --name newname --clone oldname
#输出结果会提供一个下载地址,使用下面命令就可指定安装1.8.0版本tensorflow
conda install --channel https://conda.anaconda.org/anaconda tensorflow=1.8.0
配置数据源
#显示目前pip的数据源有哪些
pip config list
pip config list --[user|global] # 列出用户|全局的设置
pip config get global.index-url # 得到这key对应的value 如:https://mirrors.aliyun.com/pypi/sim
# 添加
pip config set key value
#添加数据源:例如, 添加USTC中科大的源:
pip config set global.index-url https://mirrors.ustc.edu.cn/pypi/web/simple
pip config set global.index-url http://mirrors.aliyun.com/pypi/simple/
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple/
#添加全局使用该数据源
pip config set global.trusted-host https://mirrors.ustc.edu.cn/pypi/web/simple
# 删除
pip config unset global.index-url
# 例如
conda config --remove channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
#搜索
pip search flask #搜素flask安装包
# 升级pip
pip install pip -U
国内镜像源
阿里云 http://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
豆瓣(douban) http://pypi.douban.com/simple/
清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/
pip list #列出当前缓存的包
pip purge #清除缓存
pip remove #删除对应的缓存
pip help #帮助
pip install xxx #安装xxx包
pip uninstall xxx #删除xxx包
pip show xxx #展示指定的已安装的xxx包
pip check xxx #检查xxx包的依赖是否合适
linux下载pytorch
conda install pytorch==1.9.0 torchvision==0.10.0 torchaudio==0.9.0 cudatoolkit=10.2 -c pytorch
配置jupyter服务器
生成配置文件
# 另外如果找不到配置文件可以在命令行中执行
jupyter notebook --generate-config
在Python虚拟环境目录下
# /root/.conda/envs/环境名称
bin/jupyter notebook password
接下来会提示输出密码,并且输入两次
Enter password:
Verify password:
打开配置文件
vim /root/.jupyter/jupyter_notebook_config.py
在配置文件中加入以下代码
# 设定ip访问,允许任意ip访问
c.NotebookApp.ip = '0.0.0.0'
# 不打开浏览器
c.NotebookApp.open_browser = False
# 用于访问的端口,设定一个不用的端口即可,这里设置为7000
c.NotebookApp.port = 7000
# 设置登录密码,xxx就是上面程序输出的加密了的密码
c.NotebookApp.password = u'xxx'
# 允许远程 默认 False
c.NotebookApp.allow_remote_access = True
# 设置jupyter的工作路径
c.NotebookApp.notebook_dir = u'需要默认的路径'
在后台启动
首先一定要记得关闭防火墙
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
bin/jupyter notebook --no-browser --allow-root
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2TMEu3xb-1647054829484)(assets/1642696411468.png)]
配置虚拟机
下载虚拟机
专业版
https://customerconnect.vmware.com/cn/downloads/details?downloadGroup=WKST-1612-WIN&productId=1038&rPId=66634
输入许可证:CC398-2YE9H-M8EQZ-ZQXEC-NURU2
免费版
https://customerconnect.vmware.com/cn/downloads/details?downloadGroup=WKST-PLAYER-1612&productId=1039&rPId=66625
CENTOS7安装各种桌面系统 CENTOS安装桌面图形化GUI GNOME/KDE/Cinnamon/MATE/Xfce
https://www.bnxb.com/linuxserver/27457.html
下载CentOS
https://www.centos.org/download/
安装包
yum install 包名
查看IP地址
方式1
ip addr
方式2
# 安装 net-tool.x86_64
yum install net-tool.x86_64
# 运行指令
ifconfig
下载Xshell
https://www.netsarang.com/zh/xshell-download/
https://xshell.en.softonic.com/
下载winscp
https://winscp.net/eng/download.php
GCC编译器
$ cd demo #进入源文件所在目录
$ touch main.c #新建空白的源文件
$ gedit main.c #编辑源文件
$ gcc main.c #生成可执行程序
$ ./a.out #运行可执行程序
C语言中文网
$ #继续等待输入其它命令
. path.sh
Pycharm远程链接Linux系统
1、配置同步环境
打开Settings>Build/Execution/Deployment>Deployment
点击右侧加号添加同步环境
添加环境时注意Root path 和 Mappings
root path是在romte面板里面显示要同步的目录
Mappings是要映射到root path目录下的目录结构
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VmIzNf4H-1647054829484)(assets/1643257777582.png)]
同步到这个目录下
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-C8kW10gj-1647054829485)(assets/1643257841471.png)]
把local path同步到同步目录下
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-J7MP1E87-1647054829485)(assets/1643257928942.png)]
同步环境设置完成
2、配置python解析器环境
点开Project:xxxx> python interpreter
打开 解释器选择show all
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-x8GaQVEp-1647054829485)(assets/1643258166148.png)]
点击加号,选择SSH Interpreter
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-omv0UEu6-1647054829485)(assets/1643258214349.png)]
添加远程连接
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OxE7dvy1-1647054829485)(assets/1643258303141.png)]
配置之后,点击next按钮,进行配置解释器页面
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Zr9huvSF-1647054829486)(assets/1643258714140.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rTTzr6Ot-1647054829486)(assets/1643257336936.png)]
3、选择同步环境
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jQt2ewEz-1647054829486)(assets/1643257397135.png)]
4、选择python解释器版本
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4sWVpIf2-1647054829486)(assets/1643257447927.png)]
自动同步
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5pSrPb4q-1647054829487)(assets/1644555131663.png)]
Python环境配置
国内镜像
清华:https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:http://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
华中理工大学:http://pypi.hustunique.com/
山东理工大学:http://pypi.sdutlinux.org/
豆瓣:http://pypi.douban.com/simple/
默认:https://pypi.python.org/simple
例如:pip3 install -i https://pypi.doubanio.com/simple/ 包名
配置永久镜像
#已经在~目录下
cd ~
mkdir .pip
cd ~/.pip
[global]
timeout = 60
index-url = http://mirrors.aliyun.com/pypi/simple/
extra-index-url= http://pypi.douban.com/simple/
[install]
trusted-host=
mirrors.aliyun.com
pypi.douban.com
软件安装
创建新环境
conda create -n python_3.6_tf.2.0_byall python=3.6
相关包安装下载地址:https://pypi.org/
activate python_study_3.6
activate python_study_3.6gpu
查看安装的包
pip freeze
sklearn
pip install sklearn2
numpy
pip install numpy
pandas
pip install pandas
TensorFlow 1.x版本
tensorflow 1.9.5
pip install tensorflow==1.9.0
tensorflow-gpu 1.15
pip install tensorflow-gpu==1.15
TensorFlow2.x版本
pip install tensorflow==2.3.1
captcha
生成验证码的包
pip install captcha
cv
opencv-python 4.4.0.44
pip install opencv-python
pip install opencv-python==4.4.0.44
画图
matplotlib
pip install matplotlib
GUI
pip install PyQt5
语音
读文字
pip install pypiwin32
处理语音文件
pip install librosa
文件读取
配置文件
pip install pyyaml
控制台输出显示进度条
pip install tqdm
Unity
Barracuda
mlagents-learn config.yaml
pip install mlagents -i https://pypi.doubanio.com/simple/
-i https://pypi.doubanio.com/simple/
activate unity_python_3.6
cd E:\004Python_Study\python_machine_learning\307Unity快速入门机器学习\RollABall\Assets\Train
mlagents-learn config.yaml
python常用文件操作
data_labels_path = "./data_labels"
# 判断路径是否存在
if not os.path.exists(data_labels_path):
os.mkdir(data_labels_path)
data_labels_file = open(file=data_labels_path+"//labels.txt",mode="w")
data_labels_file.write(str(data_labels))
data_labels_file.close()
torch.hub
自动下载预训练模型文件用以加载预训练模型
注意:
1.解决每次执行torch.hub.load但是每次同时又重新下载预训练模型文件的问题:
当第一次执行torch.hub.load加载预训练模型会自动下载对应的预训练模型文件,当第一次下载完成并成功运行之后,
后面每次再执行相同的代码时如果出现重新下载之前已经下载过的并且目录已存在的预训练模型文件的话,
那么解决方式是只需要到C:/Users/Administrator/.cache/torch/hub/huggingface_pytorch-transformers_master
或 /root/.cache/torch/hub/huggingface_pytorch-transformers_master
目录中执行一次“pip install .”命令重新再次安装一次transformers之后,即使安装过程中提示transformers已经安装存在了也没关系,
当重新执行完“pip install .”之后那么再运行torch.hub.load即不会再重新下载之前已经下载过的并且目录已存在的预训练模型文件,
即能解决每次执行torch.hub.load每次又重新下载预训练模型文件的问题。
预训练模型文件自动下载在:C:/Users/Administrator/.cache/torch/transformers 或 /root/.cache/torch/transformers。
2.解决每次python命令执行run_glue.py但是每次同时又重新下载预训练模型文件的问题:
解决方式同上述第一点解决每次执行torch.hub.load又重新下载预训练模型文件的问题。
当第一次python命令执行run_glue.py模型微调文件加载预训练模型会自动下载对应的预训练模型文件,当第一次下载完成并成功运行之后,
后面每次再执行相同的python命令执行run_glue.py时如果出现重新下载之前已经下载过的并且目录已存在的预训练模型文件的话,
那么解决方式是只需要到C:/Users/Administrator/.cache/torch/hub/huggingface_pytorch-transformers_master
或 /root/.cache/torch/hub/huggingface_pytorch-transformers_master
目录中执行一次“pip install .”命令重新再次安装一次transformers之后,即使安装过程中提示transformers已经安装存在了也没关系,
当重新执行完“pip install .”之后那么再运行torch.hub.load即不会再重新下载之前已经下载过的并且目录已存在的预训练模型文件,
即能解决每次python命令执行run_glue.py但是每次同时又重新下载预训练模型文件的问题。
预训练模型文件自动下载在:C:/Users/Administrator/.cache/torch/transformers 或 /root/.cache/torch/transformers。
确定需要加载的预训练模型并安装依赖包
能够加载哪些模型可以参考NLP中的常用预训练模型
这里假设我们处理的是中文文本任务, 需要加载的模型是BERT的中文模型: bert-base-chinese
在使用工具加载模型前需要安装必备的依赖包:
pip install tqdm
pip install boto3
pip install requests
pip install regex
pip install sentencepiece
pip install sacremoses
pip install dataclasses
pip install tokenizers
pip install filelock
加载预训练模型执行torch.hub.load会自动下载对应的预训练模型文件,如果下载网速慢,也可以选择此处度娘提供好的预训练模型文件
1.链接:https://pan.baidu.com/s/1DWNC3mOFRor4uaa7xr_uew
提取码:aiai
2.手动解压度娘下载的预训练模型文件压缩包
window 解压到 C:/Users/Administrator/.cache 目录下
解压后目录如下
C:/Users/Administrator/.cache/torch/hub/huggingface_pytorch-transformers_master
C:/Users/Administrator/.cache/torch/transformers
linux 解压到 /root/.cache 目录下
解压后目录如下
/root/.cache/torch/hub/huggingface_pytorch-transformers_master/
/root/.cache/torch/transformers
3.解压好了之后,如果运行时仍然会重新下载的话,进入torch/hub/huggingface_pytorch-transformers_master 执行 pip install .
如需进入某个虚拟环境安装的话,请先进入该虚拟环境再安。
Window:activate 虚拟环境名。Linux:source activate 虚拟环境名。
cd C:/Users/Administrator/.cache/torch/hub/huggingface_pytorch-transformers_master
执行“pip install .”命令,会自动执行setup.py进行安装。
加载预训练模型时我们可以选择带头或者不带头的模型
1.这里的'头'是指模型的任务输出层, 选择加载不带头的模型, 相当于使用模型对输入文本进行特征表示。
不带头的意思:
原始的Transformer结构包含4部分输入层(嵌入层/位置编码层)、编码器层、解码器层、输出层。
那么不带头的意思就是不包含解码器层、输出层,只有输入层(嵌入层/位置编码层)、编码器层了。
那么不带头就相当于输入原始文本 -> 经过不带头的Bert等预加载模型 -> 输出矩阵张量。
2.选择加载带头的模型时, 有三种类型的'头'可供选择
1.modelWithLMHead(语言模型头):
生成式任务,如文本生成、机器翻译、阅读理解等任务。
比如文本生成通过最后输出的概率分布来预测下一个词汇是什么,语言模型本身的训练目标是预测下一个词。
2.modelForSequenceClassification(分类模型头):序列句子分类任务
3.modelForQuestionAnswering(问答模型头):seq2seq模型架构
3.不同类型的'头', 可以使预训练模型输出指定的张量维度. 如使用'分类模型头', 则输出尺寸为(1,2)的张量, 用于进行分类任务判定结果.
接:https://pan.baidu.com/s/1DWNC3mOFRor4uaa7xr_uew
提取码:aiai
2.手动解压度娘下载的预训练模型文件压缩包
window 解压到 C:/Users/Administrator/.cache 目录下
解压后目录如下
C:/Users/Administrator/.cache/torch/hub/huggingface_pytorch-transformers_master
C:/Users/Administrator/.cache/torch/transformers
linux 解压到 /root/.cache 目录下
解压后目录如下
/root/.cache/torch/hub/huggingface_pytorch-transformers_master/
/root/.cache/torch/transformers
3.解压好了之后,如果运行时仍然会重新下载的话,进入torch/hub/huggingface_pytorch-transformers_master 执行 pip install .
如需进入某个虚拟环境安装的话,请先进入该虚拟环境再安。
Window:activate 虚拟环境名。Linux:source activate 虚拟环境名。
cd C:/Users/Administrator/.cache/torch/hub/huggingface_pytorch-transformers_master
执行“pip install .”命令,会自动执行setup.py进行安装。
加载预训练模型时我们可以选择带头或者不带头的模型
1.这里的’头’是指模型的任务输出层, 选择加载不带头的模型, 相当于使用模型对输入文本进行特征表示。
不带头的意思:
原始的Transformer结构包含4部分输入层(嵌入层/位置编码层)、编码器层、解码器层、输出层。
那么不带头的意思就是不包含解码器层、输出层,只有输入层(嵌入层/位置编码层)、编码器层了。
那么不带头就相当于输入原始文本 -> 经过不带头的Bert等预加载模型 -> 输出矩阵张量。
2.选择加载带头的模型时, 有三种类型的’头’可供选择
1.modelWithLMHead(语言模型头):
生成式任务,如文本生成、机器翻译、阅读理解等任务。
比如文本生成通过最后输出的概率分布来预测下一个词汇是什么,语言模型本身的训练目标是预测下一个词。
2.modelForSequenceClassification(分类模型头):序列句子分类任务
3.modelForQuestionAnswering(问答模型头):seq2seq模型架构
3.不同类型的’头’, 可以使预训练模型输出指定的张量维度. 如使用’分类模型头’, 则输出尺寸为(1,2)的张量, 用于进行分类任务判定结果.