PIL
PIL能处理的图片类型
1 | 模式 |
1 | mkdir static_web |
这个目录是构建环境,docker称此环境为上下文。
文件内容如下:
1 | # Version: 0.0.1 FROM ubuntu:20.04 |
1 | docker build -t="lrr01/static_web" . |
运行成功如下所示:
在构建时为镜像设置标签
使用方法为“镜像名:标签”
1 | docker build -t="lrr01/static_web:v1" . |
命令中的.
是告诉Docker在当前目录去找Dockerfile文件,也可以指定git仓库的地址来指定Dockerfile的位置。
在docker build
的过程中,会将构建上下文传到Docker守护进程,如下所示。
如在上下文的根目录存在.dockerignore文件,则将按行读取该文件,其内容用于设置哪些文件不会被当作构建下文的一部分,可以防止其上传到docker守护进程中。
注意到每一步的构建过程都会将结果提交为镜像,并有一个镜像ID,如a92d18546651
。docker会将每一步的镜像看为缓存,若第5步构建发生错误时,会直接从第4步开始。当之前的构建步骤没有变化时,可以节省时间。如在第1步到第3步之间做了修改,Docker会从有变化的指令开始。
若,确保构建过程不会使用缓存,可以使用docker build
的 --no-cache
参数。
1 | docker build --no-cache -t="lrr01/static_web:v1" . |
使用 docker images
命令来查看新构建的镜像。
使用docker history
,可以查看镜像是如何构建出来的,如下所示:
1 | docker history 7682ea492fec |
1 | docker run -d -p 80 --name static_web lrr01/static_web nginx -g "daemon off;" |
使用 docker run
命令,用 刚才构建的镜像的名字,启动一个名为 static_web 的新容器。
用-d
选项,告诉docker以分离(detached)的方式在后台运行,比较适合运行类似Nginx守护进程这样的需要长时间运行的进程。
也指定了需要在容器中运行的命令:nginx -g "daemon off;"
。这将以前台运行的方式启动Nginx,作为web服务器。
-p
用来控制Docker在运行时应该公开哪些网络端口给外部。运行容器时,Docker可以通过两种方式来在宿主机上分配端口
docker run
命令将在docker宿主机上随机打开一个端口,这个端口会连接到容器中的80端口。
使用docker ps
查看容器端口分配情况:
可以看到容器中的80端口,被映射到宿主机的49153端口。
也可以通过docker port 容器ID/容器名
来查看容器的端口映射情况:
通过-p选项映射到特定的端口
-p 80:80
:会将容器内的80端口绑定到本地宿主机的80端口
-p 127.0.0.1:80:80
:将容器内的80端口绑定到本地宿主机的127.0.0.1
这个IP的80端口。我们也可以将容器内的80端口绑定到一个宿主机的随机端口上
docker run -d -p 80:80 --name static_web lrr01/static_web nginx -g "daemon off;"
通过-P参数对外公开端口
其可以公开在Dockerfile中通过EXPOSE
指令公开的所有端口
1 | docker run -d -P --name static_web lrr01/static_web nginx -g "daemon off;" |
其会将容器内的80端口对本地宿主机公开,并且绑定到宿主机的一个随机端口上。
有了这个端口号,就可以使用本地宿主机的IP地址的IP地址或者127.0.0.1的localhost,查看Web服务器的内容。
创建一个要进行修改的容器
1 | docker run -t -i ufoym/deepo:pytorch-py36-cu100 /bin/bash |
安装pqi pip换源工具
1 | pip install pqi |
如何使用 百度pip pqi
安装指定版本pytorch
1 | pip install torch==1.8.0 torchvision==0.9.0 torchaudio==0.8.0 |
列举了一些,pytorch索引操作。
1 | 1. 先定义一个锚(id) |
1 | python -m ipykernel install --user --name=paddle-cpu#那个环境的名字 |
conda create --name <env_name> <package_names>
注意
env_name,即创建的环境名
package_names,即安装在环境中的包名。
conda create --name python2 python=2.7
,即创建一个名为“python2”的环境,环境中安装版本为2.7的python。conda create -n python3 python=3.5 numpy pandas
,即创建一个名为“python3”的环境,环境中安装版本为3.5的python,同时也安装了numpy和pandas。--name
可以替换为-n
。
针对Ubuntu18.04 conda4.6.14,命令为
1 | conda activate <env_name> |
1 | conda deactivate |
1 | conda info --envs |
或
1 | conda info -e |
或
1 | conda env list |
1 | conda list |
1 | conda config --set auto_activate_base false |
1 | conda env remove -n env_name |
直接编辑文件选项-i,会匹配file文件中每一行的第一个book替换为books:
1 | sed -i 's/book/books/g' file |
替换当前行::s/foo/bar/g
全文::%s/foo/bar/g
:zc
折叠,只折叠最外层的折叠:zC
对所在范围内所有嵌套的折叠点进行折叠,包括嵌套的所有折叠:zo
展开折叠,只展开最外层的折叠:zO
对所在范围内所有嵌套的折叠点展开,包括嵌套折叠:[z
到当前打开的折叠的开始处:]z
到当前打开的折叠的末尾处
查找字符串super:/super
或者:?super
两者的区别是前者从上往下搜索,后者是从下往上搜索
并且可以通过 n 或 N 进行上一个或下一个的匹配
输入:noh
压缩
1 | tar -zcvf FileName.tar.gz DirName # 将DirName和其下所有文件(夹)压缩 |
解压
1 | tar -zxvf FileName.tar.gz # 解压 |
解压到指定路径
1 | tar -C DesDirName -zxvf FileName.tar.gz # 解压到目标路径 |
打包
仅打包,并非压缩
1 | tar -cvf FileName.tar DirName # 将DirName和其下所有文件(夹)打包 |
解包
1 | tar -xvf FileName.tar # 解包 |
1 | # test.sh |
$1
:是第一个参数
$0
:是文件本身
结果:
1 | du -h --max-depth=1 |
如果当前目录下文件和文件夹很多,使用不带参数的du
命令,可以循环列出当前目录下所有文件和文件夹所使用的空间。文件多时就会很乱,可以使用参数--max-depth=
指定深入目录的层数;
使用du -h --max-depth=0
命令,可以查看当前目录已使用的总空间大小及当前目录已使用的总空间大小;
使用du -h --max-depth=1
命令,可以查看当前目录已使用的总空间大小及当前目录下一级文件和文件夹各自使用的总空间大小。
1 | netstat -apn |
查看网络状态,a 是 all ,p 显示程序, n是显示程序对应的端口号
使用管道操作符可以查找端口号
1 | netstat -apn | grep 8080 |
1 | ps -aux |
杀死进程
1 | kill -9 3306 // 强制杀掉进程号3306 |
1 | grep -e "fuck" text.txt |
1 | find ./ -name test.txt // 在当前目录下查找名称带有text.txt的文件 |
pass
1 | sudo adduser username |
然后按提示操作。
添加root权限
1 | sudo vim /etc/sudoers |
修改如下文件:
1 | User privilege specification |
1 | $sudo apt-get install privoxy |
安装完后进行配置,其配置文件在/etc/privoxy/config
找到# forward-socks5t / 127.0.0.1:9050 .
把它改成 forward-socks5 / 127.0.0.1:1080 .
并且删掉前面的#注释,中间的t和结尾的9050改成1080
配置完成,重启privoxy:
1 | $sudo /etc/init.d/privoxy restart |
随后进入系统设置 -> 网络 -> 网络代理 -> 方法:手动 -> HTTP代理:127.0.0.1 8118
修改完成后点击应用到整个系统即可。