目录
-
- git
-
- git新建项目
- git 下载太慢
- git 撤销add
- git 撤销commit
- git 删除本地文件
- git 删除本地仓库文件
- git 删除远程仓库文件
- git 修改远程仓库地址
- git 查看修改用户信息
- 安装lfs
- 用python查看git安装的包
- pip
-
- 安装cv2
- 查看配置
- ReadTimeoutError
- 源
- linux
-
- 系统信息
- scp
- apt-get
- 防火墙
- 虚拟机共享文件夹
- wegt太慢
- 编译gcc
- docker
-
- 删除所有容器
- 删除所有镜像
- 删除所有没有tag的镜像
- 删除指定的镜像
- vi/vim
-
- vi的三种模式
- 三种模式的切换
- 常用命令
-
- 1.光标
- 2.查找替换
- 3.删除、复制、粘贴
- 4.进入编辑模式
- 5.保存、退出
- 虚拟环境
-
- 环境创建切换
-
- 使用conda
- 使用virtualenv
- 环境配置
- 其他
-
- pycharm 文件初始化模板
- jupyter
-
- 清除运行结果
- jupyter魔法命令
- .ipyub 转成其他格式文件
- .proto 转 .py
- ConfigParser()
git
git新建项目
git init
git remote add origin xxxxxxxxxxxxxxxxxxxxx.git
git add .
git commit -m "*****"
git push
如果空项目里创建了文件,那么需要先拉取仓库,这时需要允许历史不一致
git pull origin master --allow-unrelated-histories
git 下载太慢
从这里下:
https://npm.taobao.org/mirrors/git-for-windows/
git 撤销add
git reset HEAD
git 撤销commit
git reset --soft HEAD^
git 删除本地文件
git rm -r xxx
git 删除本地仓库文件
git rm -r --cached xxx
git 删除远程仓库文件
git rm -r --cached xxx
git commit -m “delete xxx”
git push
git 修改远程仓库地址
git remote set-url origin xxxxx.git
git 查看修改用户信息
git config --local --list
git config user.name
git config user.emailgit config --global user.name xxxxx
git config --global user.email xxxxx@xxxx
安装lfs
sudo apt-get install git-lfs
用python查看git安装的包
from pip._internal.utils.misc import get_installed_distributions
piplist = get_installed_distributions
for x in piplist:print(x)
pip
安装cv2
pip install opencv-python
查看配置
pip config list
ReadTimeoutError
pip 安装的时候超时,可能是因为源的问题,也可能是因为阈值设置太低了
Windows下换源:
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
修改时间限制:
pip --default-timeout=1000 install -U pip
源
配置默认源
pip config set global.index-url https://pypi.douban.com/simple/
http://mirrors.aliyun.com/pypi/simple/
http://pypi.douban.com/simple/
https://pypi.tuna.tsinghua.edu.cn/simple/
http://pypi.mirrors.ustc.edu.cn/simple/
阿里云 http://mirrors.aliyun.com/pypi/simple/
豆瓣(douban) http://pypi.douban.com/simple/
清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/
linux
系统信息
查看显卡
lspci | grep -i vga
查看现存
nvidia-smi
检查cuda
nvcc --version
cat /usr/local/cuda/version.txt
检车cudnn
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
scp
scp -P [端口号] -r [文件夹名] [用户名]@[IP地址]:[目标目录]
scp -P [端口号] [文件名] [用户名]@[IP地址]:[目标目录]
apt-get
如果提示如下,表明被占用
E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?
解决方法:
sudo rm /var/lib/apt/lists/lock
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock
sudo dpkg --configure -a
sudo apt update
防火墙
查看状态
systemctl status firewalld.service
关闭
systemctl stop firewalld.service
systemctl disable firewalld.service
开启
systemctl start firewalld.service
systemctl enable firewalld.service
虚拟机共享文件夹
在Windows中设置好共享文件夹,并在vm中设置对应文件夹路径
在虚拟机里的Ubuntu中安装dkms
sudo apt-get install open-vm-tools-dkms
sudo apt-get install open-vm-dkm
另一种成功:
在电脑中配置文件夹,设置为共享,并在vm中设置对应文件夹路径
mkdir /mnt/hgfs
#将所有共享文件夹挂载到/mnt/hgfs:
sudo vmhgfs-fuse .host:/ /mnt/hgfs -o subtype=vmhgfs-fuse,allow_other#将名称sharedfolder的共享挂载到/mnt/hgfs
sudo vmhgfs-fuse .host:/sharedfolder /mnt/hgfs -o subtype=vmhgfs-fuse,allow_other
如果提示如下,表明被占用
E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?
解决方法:
sudo rm /var/lib/apt/lists/lock
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock
sudo dpkg --configure -a
sudo apt update
wegt太慢
wget http://jaist.dl.sourceforge.net/project/kmphpfm/mwget/0.1/mwget_0.1.0.orig.tar.bz2
yum install bzip2 gcc-c++ openssl-devel intltool -y
bzip2 -d mwget_0.1.0.orig.tar.bz2
tar -xvf mwget_0.1.0.orig.tar
cd mwget_0.1.0.orig
./configure
make
make install
编译gcc
下载gcc:
wget https://ftp.gnu.org/gnu/gcc/gcc-7.5.0/gcc-7.5.0.tar.gz
mwget https://ftp.gnu.org/gnu/gcc/gcc-7.5.0/gcc-7.5.0.tar.gz
wget https://ftp.gnu.org/gnu/gcc/gcc-10.2.0/gcc-10.2.0.tar.gz
mwget https://ftp.gnu.org/gnu/gcc/gcc-10.2.0/gcc-10.2.0.tar.gz
解压:
tar xf gcc-7.5.0.tar.gz
cd gcc-7.5.0/
安装环境:
./contrib/download_prerequisites
创建临时文件夹编译:
cd …
mkdir gcc-7.5-build
cd gcc-7.5-build
…/gcc-7.5.0/configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
make
make instal
docker
删除所有容器
docker rm `docker ps -a -q`
删除所有镜像
docker rmi `docker images -q`
删除所有没有tag的镜像
docker rmi `docker images|grep none|awk '{print $3 }'|xargs`
删除指定的镜像
docker rmi --force `docker images |grep pt-* |awk '/0108/ {print $3}'` docker rmi -f `docker images | grep pt-*| awk '{print $3}'`
vi/vim
vi的三种模式
-
一般命令模式(command mode):
光标的移动,搜索,替换,删除字符,删除整行,复制整行,粘贴整行。
-
编辑模式(insert mode):
插入或替换编辑文件内容。
底下会显示
INSERT
,REPLACE
字样。 -
命令行模式(command-line mode):
读取、保存、批量替换等其他额外功能。
三种模式的切换
- 其他模式 -> 一般命令模式:
ESC
- 一般命令模式 -> 编辑模式:
i/I
,o/O
,a/A(插入)
,r/R(替换)
, - 一般命令模式 -> 命令行模式:
:
,/
,?
常用命令
1.光标
移动一个字符:方向键上下左右
、ijhk
上下翻页:Ctrl + f(向下)
,+ b(向上)
行首:0
,Home
行尾:$
,End
文件首行:gg
文件末行:G
向下n行:n <Enter>
2.查找替换
向下查找word:/word
,(?word 向上)
替换n1与n2行之间的 word1 为 word2: :n1,n2s/word1/word2/g
替换全文的 word1 为 word2::1,$s/word1/word2/g
或:%s/word1/word2/g
1
最后的/g
如果改成/gc
表示替换前需确认
3.删除、复制、粘贴
删除:x
:相当于del、X
:相当于backspace
剪切整行:dd
复制整行:yy
粘贴:p
:粘贴到光标下一行,P:粘贴到光标上一行
撤销:u
重做:ctrl + r
注意:
ndd,nyy:相当于n次dd,n次yy
d,y后面加1G,G,$,0:分别表示从光标处一直到首行,末行,行尾,行首
例如d1G表示删除当前行到首行,y0表示复制当前字符到行尾
4.进入编辑模式
i :从目前光标所在处输入
I :在目前所在行的第一个非空格符处开始输入
a :从目前光标所在的下一个字符处开始输入』
A :从光标所在行的最后一个字符处开始输入』
o :在目前光标所在的下一行处输入新的一行』
O :在目前光标所在处的上一行输入新的一行
r :只会取代光标所在的那一个字符一次
R:会一直取代光标所在的文字,直到按下 ESC 为止
5.保存、退出
:w :保存
:w! :强制保存
:q :关闭
:q! :强制关闭(不保存)
:wq :保存关闭
:wq! :强制保存关闭
:w [filename] :另存为
:set nu :显示行号
:set nonu :取消显示行号
虚拟环境
环境创建切换
使用conda
创建环境:
conda create -n [虚拟环境名称,例如env] pip python=[想要装的python版本,例如3.7]
查看环境:
conda info --envs
激活环境:
conda activate [虚拟环境名称]
退出环境:
conda deactivate [虚拟环境名称]
使用virtualenv
创建环境:
virtualenv [虚拟环境名称,例如env]
virtualenv -p [之前配置过的环境路径]/python3 [虚拟环境名称]
查看环境:
workon
lsvirtualenv
激活环境:
workon [虚拟环境名称]
退出环境:
deactivate
删除环境:
rmvirtualenv [虚拟环境名称]
环境配置
导出requirements:
pip freeze > requirements.txt
导入requirements:
pip install -r requirements.txt
其他
pycharm 文件初始化模板
常用变量:
$ {
PROJECT_NAME} - 当前项目的名称。$ {
NAME} - 在文件创建过程中在“新建文件”对话框中指定的新文件的名称。$ {
USER} - 当前用户的登录名。$ {
DATE} - 当前的系统日期。$ {
TIME} - 当前系统时间。$ {
YEAR} - 今年。$ {
MONTH} - 当月。$ {
DAY} - 当月的当天。$ {
HOUR} - 目前的小时。$ {
MINUTE} - 当前分钟。$ {
PRODUCT_NAME} - 将在其中创建文件的IDE的名称。$ {
MONTH_NAME_SHORT} - 月份名称的前3个字母。 示例:1月,2月等$ {
MONTH_NAME_FULL} - 一个月的全名。 示例:1月,2月等
常用模板:
# -*- coding: utf-8 -*-
# @Time : ${DATE} ${TIME}
# @Author : xxxxxxxxx
# @Email : xxxxxxxxxxx@xxx.com
# @File : ${NAME}.py
# @Software: ${PRODUCT_NAME}
jupyter
清除运行结果
Cell
-> All Output
-> Clear
jupyter魔法命令
%lsmagic
out:
Available line magics:
%alias %alias_magic %autoawait %autocall %automagic %autosave %bookmark %cd %clear %cls %colors %conda %config %connect_info %copy %ddir %debug %dhist %dirs %doctest_mode %echo %ed %edit %env %gui %hist %history %killbgscripts %ldir %less %load %load_ext %loadpy %logoff %logon %logstart %logstate %logstop %ls %lsmagic %macro %magic %matplotlib %mkdir %more %notebook %page %pastebin %pdb %pdef %pdoc %pfile %pinfo %pinfo2 %pip %popd %pprint %precision %prun %psearch %psource %pushd %pwd %pycat %pylab %qtconsole %quickref %recall %rehashx %reload_ext %ren %rep %rerun %reset %reset_selective %rmdir %run %save %sc %set_env %store %sx %system %tb %time %timeit %unalias %unload_ext %who %who_ls %whos %xdel %xmode
Available cell magics:
%%! %%HTML %%SVG %%bash %%capture %%cmd %%debug %%file %%html %%javascript %%js %%latex %%markdown %%perl %%prun %%pypy %%python %%python2 %%python3 %%ruby %%script %%sh %%svg %%sx %%system %%time %%timeit %%writefile
Automagic is ON, % prefix IS NOT needed for line magics.
.ipyub 转成其他格式文件
应该是可以直接转成:asciidoc, custom, html, latex, markdown, notebook, pdf, python, rst, script, slides 这些格式的。
如果需要放到 .md 文件里面可以转成html,然后再用插入html代码的方法显示
jupyter nbconvert --to html xxxx.ipynb
但是很小一个.ipyub 转成后的html都很大甚至上万行,还是别轻易放到md里了
.proto 转 .py
参考 object_detection 的:TensorFlow 08——ch05-TensorFlow Object Detection 深度学习目标检测
在对应目录直接用protoc就行:
protoc object_detection/protos/*.proto --python_out=.
ConfigParser()
ConfigeParser类的作用是对配置文件进行相关的操作。
config.ini
文件的格式例如:
[#section_name1]
#key1A = #value1A
#key1B = #value1B
操作有:
import configparserconfig = configparser.ConfigParser()
file = 'config.ini'
config.read(file)# 读取配置的两种方式
A = config['#section_name1']['#key1A']
B = config.get('#section_name1','#key1B')# 判断有没有#section_name1这个section
s1 = config.has_section('#section_name1')# 判断#section_name1有没有#key1A这个key
kA = config.has_option('#section_name1','#key1A')# 读取键值#section_name1的所有key
keys1 = config.options('#section_name1')# 修改配置
config.set('#section_name1','#key1A','#value1a')
config.set('#section_name1','#key1B','#value1b')# 添加配置
config.add_section('#section_name2')
config.set('#section_name2','#key2A','#value2A')
config.set('#section_name2','#key2B','#value2B')# 删除配置
config.remove_option('#section_name2','#key2A','#value2A')
config.remove_option('#section_name2','#key2B','#value2B')
config.remove_section('#section_name2')with open(file,'w') as configfile:config.write(configfile)
注意: 修改ini文件后要用‘w’打开文件重新write才会生效