批处理文件
在Windows系统的C:\Windows\System32的目录下面新建内容如下的ls.bat文件(模拟Linux的ls命令);
@echo off
dir
通过.bat文件打开x-anylabeling标注工具
CALL C:\ProgramData\anaconda3\Scripts\activate.bat C:\ProgramData\anaconda3
CALL conda activate x-anylabeling
E:
cd gitSoftware\X-AnyLabeling-main
python anylabeling/app.py
好用的软件
- 文件对比开源软件:WinMerge
- linux系统的IDE使用:kdevelop。安装:sudo apt-get install kdevelop
- 常用文件接口:
print(os.path.dirname("./123/sfsf.png")) # 输出:./123 print(os.path.splitext("./123/sfsf.png")) # 输出:('./123/sfsf', '.png') print(os.path.basename("./123/sfsf.png")) # 输出:sfsf.png os.makedirs("./123/sfsf") # 逐层创建./123/sfsf文件夹
Linux命令
Ubuntu系统图形界面显示CPU和内存使用情况:
gnome-system-monitor
给文件添加所有权限:
sudo chmod 777 <文件路径>
给该文件夹及所有子文件添加所有权限:
sudo chmod -R 777 cudaCoding/
win10从store安装的Ubuntu的根目录在:
C:\Users\weiz\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs
windows和linux可用WinSCP进行文件传输;再安装PuTTY,windows可以使用终端连接linux系统
linux系统之间传输文件可用FileZilla
创建weiz用户(useradd这个命令创建步骤较多):
sudo adduser weiz
根据提示输入相应的值(可以只设置密码,其他默认就行)
给weiz赋予sudo权限:
1.先登入root用户
2.给root用户添加可写权限:chmod 640 /etc/sudoers
3.打开sudoers文件:vim /etc/sudoers
4.在sudoers文件中添加:weiz ALL=(ALL) ALL
5.恢复sudoers文件原来权限:chmod 440 /etc/sudoers
查看系统中所有用户:
grep bash /etc/passwd
删除用户weiz(加r会删除该用户的文件夹):
sudo userdel -r weiz
在ubuntu移动文件权限问题:
sudo nautilus
ubuntu截图:(prtsc键在键盘指示灯附近)
窗口截图:alt+prtsc
全屏截图:prtsc
ctrl+alt+prtsc截图到剪切板,Ctrl+v复制到其他地方
查看已经开启的端口:sudo ufw status
打开8888端口:sudo ufw allow 8888
防火墙开启:sudo ufw enable
防火墙重启:sudo ufw reload
查看端口是否开启:lsof -i:80 # 如果没有输出则表示80端口没有开启
查看所有开启了的端口:netstat -aptn
ubuntu访问CenOs服务器:
安装:sudo apt-get install openssh-client
sudo apt-get install openssh-server
启动:sudo /etc/init.d/ssh start # 显示[ ok ] Starting ssh (via systemctl): ssh.service.说明已经启动了ssh服务
停止:sudo /etc/init.d/ssh stop
查看IP:sudo ifconfig
链接:ssh usr@ip # 比如 ssh root@192.168.0.99
从CenOs下载文件(不要登入192.168.0.99):
scp -r root@192.168.0.99:/weiz/ocr/chinese_ocr/web_service.py /home/hw/PycharmProjects/ocr/chinese_ocr/
上传单个文件到CenOs:
scp -r localfile.txt root@192.168.0.99:/weiz/
上传整个文件夹:
scp -r /home/hw/PycharmProjects/ocr/antiMissing root@192.168.0.99:/weiz/ocr/chinese_ocr/antiMissing
查看CPU情况:
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c # cpu的信息
top # 查看CPU总体情况
top -p 10997 # 查看某个进程使用情况,按1可看不同核心使用情况
查看GPU情况:nvidia-smi -l 3
watch -n 0.2 nvidia-smi
查看某个文件存储空间大小以及挂载点:
df -h /tmpdata
复制文件:
cp -Rf /weiz/ocr/chinese_ocr/train/test_images/* /weiz/ocr/chinese_ocr/train/images/
复制大量文件:
find . -name "*" -exec cp -r {} /weiz/ocr/chinese_ocr/train/images/ \;
统计当前文件夹下文件的个数,包含子文件夹:
ls -lR|grep "^-"|wc -l
统计当前文件夹下目录的个数,包含子文件夹:
ls -lR|grep "^d"|wc -l
统计当前文件夹下文件的个数,不包含子文件夹:
ls -l |grep "^-"|wc -l
统计当前文件夹下目录的个数,不包含子文件夹:
ls -l |grep "^d"|wc -l
在cenos上安装rar压缩软件
wget http://www.rarsoft.com/rar/rarlinux-4.0.1.tar.gz
tar -zxvf rarlinux-4.0.1.tar.gz
cd rar
make
看见下面这些信息就是安装成功了:
mkdir -p /usr/local/bin
mkdir -p /usr/local/lib
cp rar unrar /usr/local/bin
cp rarfiles.lst /etc
cp default.sfx /usr/local/lib
两个常用命令:
rar x vpsyou.rar //解压 vpsyou.rar 到当前目录
rar vpsyou.rar ./vpsyou.com/ //将 vpsyou.com 目录打包为 vpsyou.rar
安装解压和压缩软件:
pip install rar unrar
将test.jpg和test.png压缩成一个rar包:
rar a test.rar test.jpg test.png
将所有.jpg的文件压缩成一个rar包:
rar a test.rar *.jpg
将文件夹test压缩成一个rar包:
rar a test.rar test
将test.rar中的所有文件解压出来:
unrar e test.rar
开启服务:sh runServer.sh start
关闭服务:sh runServer.sh stop
查看进程:ps ef|grep FWebYolo1
刷新cenos的dns:yum install -y nscd
systemctl restart nscd
按ESC键 跳到命令模式,然后:
:w 保存文件但不退出vi
:w file 将修改另外保存到file中,不退出vi
:w! 强制保存,不推出vi
:wq 保存文件并退出vi
:wq! 强制保存文件,并退出vi
:q 不保存文件,退出vi
:q! 不保存文件,强制退出vi
:e! 放弃所有修改,从上次保存文件开始再编辑
光标消失了:echo -e "\033[?25l"
echo -e "\033[?25h"
获得root权限:
su
输入密码
变成普通用户:su "用户名"
新建文件:
mkdir 文件名
删除home目录下的test目录:
rm /home/test
上面那种不带参数的删除方法经常会提示无法删除,因为权限不够(-r是递归的删除参数表中的目录及其子目录,目录将被清空并且删除。当删除目录包含的具有写保护的文件时用户通常是被提示的):
rm -r /home/test
f是不提示用户,删除目录下的所有文件。请注意检查路径,输成别的目录就悲剧了:
rm -rf /home/test
-i是交互模式。使用这个选项,rm命令在删除任何文件前提示用户确认:
rm -ir /home/test
其他库或工具等相关命令
输出当前文件夹所有文件名到LIST.txt文件中:
DIR *.* /B >LIST.TXT
输出后缀为d.lib的文件名到LIST.txt文件中:
DIR *d.lib /B >LIST.TXT
git clone不全项目时,尤其是链接到其他库时:
git submodule update --init --recursive
上传项目到github的步骤(windows):
先在github创建一个项目,并复制其地址;
在项目根目录右键,选择git bash here;
输入:git clone 复制的地址
会多出一个文件夹,将需要上传的文件复制到该文件夹;
cd 该文件夹
git add .
git commit -m "注释信息"
git push -u origin master # 期间需要输入github账号和密码
gitlab(windows):
git clone git@gitlab:vias/beta1/vias_ai_interface.git -b develop
git clone git@gitlab:vias/beta1/vias_smart.git -b develop
git add .
git commit -m "提交不明物检测代码"
git push
查看代码是否有更新(红色的):git status
重新连接代码库:git init
查看分支情况:git branch -a (如果没有看可先执行:git fetch)
切换分支:git checkout origin/develop
从远程主机的develop分支下拉代码并合并:git pull --rebase origin develop
把代码推到远程主机的develop分支:git push -u origin develop
tensorflow禁止非错误信息的输出:
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'
输出当前环境依赖库以及库版本:
pip freeze > requirememts.txt
安装输出的库:
pip install -r requirememts.txt
conda查看当前使用源
conda config --show-sources
conda恢复默认源:
conda config --remove-key channels
使用root权限开启vscode:
code --user-data-dir=/weiz/
查看git是否安装:
git
安装git:
sudo apt-get update
sudo apt install git
使用国内的源安装软件:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-python
pip install scipy -i https://pypi.doubanio.com/simple
nginx的配置文件为:/etc/nginx/nginx.conf
启动:service nginx start
停止:service nginx stop
重启:service nginx restart
平滑重启:nginx -s reload
创建虚拟环境:conda create -n tf35 python=3.5.2
激活虚拟环境:conda activate tf35 低版本的conda使用:source activate tf35
退出虚拟环境:conda deactivate
查看虚拟环境列表:conda env list
删除环境:conda remove -n tf35 --all
克隆环境或者重命名:conda create -n python2 --clone py2
conda remove -n py2 --all
指定虚拟环境的python版本:virtualenv -p /usr/bin/python3.6 venv
新建一个虚拟环境:virtualenv venv
激活和关闭
. venv/bin/activate或者使用source venv/bin/activate
deactivate
删除虚拟环境
rm -r venv
rm -rf venv
使用SecureCRT上传、下载文件:可以在 编辑栏 -> options -> session options-> x/y/zmodem 中设置上传和下载位置
yum -y install lrzsz
覆盖源文件:rz -y
下载:sz
Ubuntu的快捷键
# ctrl + l - 清屏 。 cLear
# ctrl + c - 终止命令。
# ctrl + d - 退出 shell,好像也可以表示EOF。
# ctrl + z - 将当前进程置于后台,fg还原。
# ctrl + r - 从命令历史中找 。 Reverse-i-search
# ctrl + a - 光标移到行首 。 A
# ctrl + e - 光标移到行尾。 End
# ctrl + u - 清除光标到行首的字符 。U
# ctrl + w - 清除光标之前一个单词 。Word
# ctrl + k - 清除光标到行尾的字符。K
# ctrl + t - 交换光标前两个字符。swiTch
# ctrl + y - 粘贴前一ctrl+u类命令删除的字符。Y
# ctrl + p - 上一条命令。Prev
# ctrl + n - 下一条命令。Next
# ctrl + v - 输入控制字符 如ctrl+v <ENTER>,会输入^M
# ctrl + f - 光标后移一个字符。Fore
# ctrl + b - 光标前移一个字符。Back
# ctrl + h - 删除光标前一个字符。H
# N+<ESC>+f - 光标后移N个单词,N为1时可省略
# N+<ESC>+b - 光标前移N个单词,N为1时可省略
# ctrl + s - 挂起当前shell。Stop
# ctrl + q - 重新启用
# <ESC>+d 从光标开始处删除到行尾。Delete
# !! - 上一条命令
# !-n - 倒数第N条历史命令
# !-n:p - 打印上一条命令(不执行)
# !?string?- 最新一条含有“string”的命令
# !-n:gs/str1/str2/ - 将倒数第N条命令的str1替换为str2,并执行(若不加g,则仅替换第一个)
使用vi编辑器(可用来编写程序,文本等),还有一个叫vim编译器,是vi的升级版。
vi有三种模式:命令行模式、插入模式、底行模式。但也有的命令行模式和底行模式归到一起,即分成两种模式,一种是命令行模式,一种是插入模式。
1)在终端中输入 vi fileName.suffixName(如 vi first.c或vi second.cpp)回车确定,相当于新建了一个记事本文件但还没保存。(注意这时是命令行模式,是无法输入字符的)
2)按i进入插入模式(要进入插入模式才能输入字符)然后输入程序。
3)按esc退出插入模式(进入命令行模式,用于复制、粘贴、删除字符等操作)
4)在命令行模式下输入冒号“:”可退出命令行模式进入底行模式(光标位于屏幕的底行,用户可以进行文件保存或退出等操作)。
5)在底行模式下按w保存,q退出,q!强制退出不保存,x退出并保存,一般可直接输入wq,回车,这样就保存并退出。
6)接着用ls(即list,也可用dir)命令查看当前文件夹文件,用ls –l查看文件的详细信息。
7)用gcc编译器编译刚才保存的C文件。
方法:①gcc fileName.c(或gcc fileName.cpp)这样编译成的文件后默认命名为a.out
②gcc fileName.c –o fileName.out,这样编译后的.out文件的名字就不会默认命名为a.out而是file_name.out了。
8)如果要编辑已存在的文件,比如之前写的C程序有错误要修改,可在终端上输入
vi fileName.c(或vi fileName.cpp),即可进入编辑。
9)修改文件名:mv oldName newName(注意要在终端界面,而不要在vi的命令界面)
10)运行fileName.out文件直接用“./fileName.out”,即用gcc编译器把“.c”文件编译成“.out”后,执行“.out”文件时,直接在文件名前加上“./”即可。
注:GCC(GNU Compiler Collection)
vi的删除与修改文件的命令(注意是在编辑模式下而不是插入模式下):
x:删除光标所在字符。
dd :删除光标所在的列。
r :修改光标所在字元,r後接著要修正的字符。
R:进入取替换状态,新增文字会覆盖原先文字,直到按 [ESC]回到指令模式下为止。
s:删除光标所在字元,并进入输入模式。
S:删除光标所在的列,并进入输入模式。
Linux下查看用户组的信息
groups 查看当前登录用户的组内信息
groups user_name 查看user_name用户所在的组,以及组内成员
whoami 查看当前登录用户名
who 显示目录登入系统的用户信息
whois user_name 查找并显示用户信息
w 显示目前登入系统的用户信息
finger 查询用户的信息
VS快捷键
vs高亮cuda的.cu和.cuh文件:
1.工具->选项->文本编辑器->文件扩展名中,在扩展名中填入cu(cuh),编辑器选择Microsoft Visual C++,最后点击添加
2.最后在cu或者cuh文件中添加:#include "device_launch_parameters.h"
Ctrl+K+Crtr+C: 注释选定内容
Ctrl+K+Crtr+U: 取消选定注释内容
F3: 查找下一个
Ctrl+F: 查找
Shift+F3: 查找上一个
Ctrl+Shift+F: 在文件中查找
Ctrl+Shift+N: 新建项目
Ctrl+Shift+O: 打开项目
Shift+Alt+C: 新建类
Ctrl+Shift+A: 新建项
Ctrl+Shift+S: 全部保存
Ctrl+m+Crtr+o折叠所有大纲
Ctrl+M+Crtr+P: 停止大纲显示
Ctrl+J : 列出成员 智能感知Shift+Alt+Enter: 切换全屏编辑
Ctrl+B,T / Ctrl+K,K: 切换书签开关
Ctrl+B,N / Ctrl+K,N: 移动到下一书签
Ctrl+B,P: 移动到上一书签
Ctrl+B,C: 清除全部标签
Ctrl+I: 渐进式搜索
Ctrl+Shift+I: 反向渐进式搜索
Ctrl+Shift+F: 在文件中查找
Ctrl+H: 替换
Ctrl+Shift+H: 在文件中替换
Alt+F12: 查找符号(列出所有查找结果)
Ctrl+Shift+V: 剪贴板循环
Ctrl+左右箭头键: 一次可以移动一个单词
Ctrl+上下箭头键: 滚动代码屏幕,但不移动光标位置。
Ctrl+Shift+L: 删除当前行
Ctrl+M,M: 隐藏或展开当前嵌套的折叠状态
Ctrl+M,L: 将所有过程设置为相同的隐藏或展开状态
Ctrl+E,S: 查看空白
Ctrl+E,W: 自动换行
Ctrl+G: 转到指定行
Shift+Alt+箭头键: 选择矩形文本
Alt+鼠标左按钮: 选择矩形文本
Ctrl+Shift+U: 全部变为大写
Ctrl+U: 全部变为小写代码快捷键
Ctrl+Shift+空格键 / Ctrl+K,P: 参数信息
Ctrl+K,I: 快速信息Ctrl+E,U / Ctrl+K,U: 取消选定注释内容
Ctrl+K,M: 生成方法存根
Ctrl+K,X: 插入代码段
Ctrl+K,S: 插入外侧代码
F12: 转到所调用过程或变量的定义窗口快捷键Ctrl+W,W: 浏览器窗口
Ctrl+W,S: 解决方案管理器
Ctrl+W,C: 类视图
Ctrl+W,E: 错误列表
Ctrl+W,O: 输出视图
trl+W,P: 属性窗口
Ctrl+W,T: 任务列表
Ctrl+W,X: 工具箱
Ctrl+W,B: 书签窗口
Ctrl+W,U: 文档大纲
Ctrl+D,B: 断点窗口
Ctrl+D,I: 即时窗口
Ctrl+Tab: 活动窗体切换
Shift+Alt+Enter: 切换全屏编辑
Ctrl+B,T / Ctrl+K,K: 切换书签开关
Ctrl+B,N / Ctrl+K,N: 移动到下一书签
Ctrl+B,P: 移动到上一书签
Ctrl+B,C: 清除全部标签
Ctrl+I: 渐进式搜索
Ctrl+Shift+I: 反向渐进式搜索
Ctrl+H: 替换
Ctrl+Shift+H: 在文件中替换
Alt+F12: 查找符号(列出所有查找结果)
Ctrl+Shift+V: 剪贴板循环
Ctrl+左右箭头键: 一次可以移动一个单词
Ctrl+上下箭头键: 滚动代码屏幕,但不移动光标位置。
Ctrl+Shift+L: 删除当前行
Ctrl+M,M: 隐藏或展开当前嵌套的折叠状态
Ctrl+M,L: 将所有过程设置为相同的隐藏或展开状态
Ctrl+M,P: 停止大纲显示
Ctrl+E,S: 查看空白
Ctrl+E,W: 自动换行
Ctrl+G: 转到指定行
Shift+Alt+箭头键: 选择矩形文本
Alt+鼠标左按钮: 选择矩形文本
Ctrl+Shift+U: 全部变为大写
Ctrl+U: 全部变为小写