目录
Linux常用操作
- 查看硬件信息:
- 磁盘空间:df -h
- 显卡型号和个数(没装驱动时):lspci |grep -i nvidia
- 显卡使用情况:
- nvidia-smi
- 每0.1秒刷新一次显卡利用率:watch -n 0.1 -d nvidia-smi
- CPU型号和核心数:lscpu
- 内存大小:free
- 操作系统版本:head -n 1 /etc/issue
- 远程ssh连接Linux服务器命令:ssh 服务器用户名@服务器IP(执行后再键入服务器密码即可)
- 多重视窗管理screen命令:一般ssh服务器并通过终端运行训练代码时,如果想关闭ssh连接后下次还能找回上次启动的服务器终端及其终端中显示的内容,就可以使用screen功能。
- 创建screen终端的命令:screen -S yourname
- 下次恢复screen终端的命令:screen -r yourname
- 查看服务器中当前已经新建的screen:screen -ls
- 查找文件:sudo find / -name +文件名(在本地全部路径查找)
- 删除操作:
- 删除一个非空文件夹:sudo rm -r 目录名
- 删除一个文件:sudo rm 文件名
- 删除当前路径下,所有文件和子文件(不建议用此命令,不建议使用rm,用mv操作更安全):sudo rm -rf ./*(千万别忘记要加个'.',不然把整个服务器内容给删了。)
- 转移文件夹或文件:(移动用mv,复制用cp)
- sudo cp 路径/文件名 目的地路径
- sudo cp -r 路径/文件名 目的地路径
- 移动当前文件内前N个文件到另一个目录内:sudo mv `ls | head -N` XXX另一个目录(备注:` 和 ' 是不同的东西!)
- 本机向服务器传输文件:
- scp 文件名 username@XXX.XXX.XXX.XXX:/data/ym_data/
- 文件夹权限:sudo chmod 777 ××× (每个人都有读和写以及执行的权限)
- 查看后台当前运行的python脚本名称:ps -ef | grep python
- 查看日志文件常用方法:
- 实时刷新日志文件形式查看:tail -f XXX
- 查看日志文件的最后500行:tail -n 500 XXX
- 解压缩
- 压缩
- 把当前路径内所有文件压缩:tar cvzf my.tar ./*
- 压缩一个或多个文件:tar cvzf my.tar file1 file2 file3
- 解压
- 解压一个tar文件到当前文件夹:sudo tar -xvf xxx.tar
- rar文件解压:这样的后缀是在win系统压缩的,Ubuntu系统默认没有,需要安装rar解压软件:sudo apt-get install rar。
- sudo unrar x XXX.rar 解压到一个文件夹
- sudo unrar e XXX.rar 解压到当前路径下
- 压缩
-
查看当前目录下文件大小
-
du -sh *
-
Python语法
- 类中的def __call__()函数:它可以使得以“对象名()”的形式使用类,并执行def __call__()函数里面的内容并返回结果。Python __call__()方法(详解版)
-
sys.path.append(XXX):导入XXX临时路径,使得该Python脚本执行时,能够在此路径下去检索脚本中引用的文件夹。
-
import sys sys.path.append('/home/ym/xidiji/nanodet-main') # 绝对路径
-
-
map(function,iterable):根据提供的函数对指定的序列做映射(就是对iterable中每一个元素,单独执行function操作,得到一个新的iterable)
-
map(function,iterable,...) (1)参数 function是一个函数名称,通过该函数对后续参数iterable进行处理 iterable是一个可迭代对象,比如:字符串、列表、字典、元组、集合等 (2)返回值 map函数通过将指定的function函数依次作用在给定序列iterable中的每一个元素上,得到一个新的list并返回。注意,map不改变原list,而是返回一个新list。
-
- Q
numpy&scipy语法
重要备注:在numpy中,用2维矩阵而不是1维矩阵来表示行向量和列向量。如列向量np.array( [[1], [2], [3]] ),行向量np.array( [ [1, 2, 3] ] )。而np.array( [1, 2, 3] )这种形式的矩阵严格意义上既不是行向量也不是列向量。但在某些numpy函数中,会将np.array( [1, 2, 3] )默认为一个列向量(注意不是不是直觉认为的行向量)。
- python中的“*”,“np.dot()” 和 “@” 的区别:假设AB都是2维数组
-
np.dot(A, B) : 就是矩阵乘法
-
A * B:这个很杂乱,不管A和B形态怎么样,A*B都会有个结果。。。只说两种情况①如果AB行列完全一致,则相当于相应位置的元素做个乘法。②如果A仅只有一个元素,如[ [ 5 ] ],相当于B数组每个元素乘以5。
-
- np.eye(N, M):返回的是一个二维2的数组(N,M),对角线的地方为1,其余的地方为0。
-
np.diag(X):生成或提取X的对角线部分(diagonal)
-
X是一个1维数组时,结果形成一个以一维数组为对角线元素的矩阵。
-
X是一个二维矩阵时,结果输出矩阵的对角线元素。
-
-
- np.square(array):array内各元素值做个平方(不改变array维度)。
-
矩阵拼接:
-
np.c_(array1, array2):(column列方向)左右拼接两个矩阵(要求两个矩阵 行 数相等)。
- np.r_(array1, array2):(row行方向)上下拼接两个矩阵(要求两个矩阵 列 数相等)。
-
- np.linalg.multi_dot(array1, array2 , , , ) :矩阵乘法。
-
scipy.linalg.solve_triangular(a, b):已知a(必须是三角矩阵)和b,求解方程a x = b中的x。
-
验证返回的结果是否正确的方法:看看 a.dot(x) 是否等于b。
-
- T
Python常用 函数 和 操作
-
遍历文件夹内所有子文件夹及其内容
-
import os # 遍历文件夹 def walkFile(file): for root, dirs, files in os.walk(file): # root 表示当前正在访问的文件夹路径 # dirs 表示该文件夹下的子目录名list # files 表示该文件夹下的文件list # 遍历所有的子文件夹 for d in dirs: print(os.path.join(root, d)) # 遍历每个子文件夹内文件 for f in files: print(os.path.join(root, f)) #在win系统里,这里的路径结果同时包含‘/’和‘\’,需要replace把‘\’全部替换成‘/’ walkFile("E:/project_jy/data/training_top3")
-
- 遍历某文件夹内所有子文件名称
-
import os file_NameLists = os.listdir(file_dir) # file_dir:某文件夹路径 if len(file_NameLists) != 0: for file_name in file_NameLists: print(file_name)
-
- 读取和写入txt文件
- 一行行读取
-
with open("test.txt", "r") as f: data = f.readline() print(data)
-
- 所有内容放到列表中
-
with open("test.txt", "r") as f: data = f.readlines() print(data) #备注:readlines会读到换行符,可用如下方法去除: with open("test.txt", "r") as f: for line in f.readlines(): line = line.strip('\n') #去掉列表中每一个元素的换行符 print(line)
-
- 写入txt
-
with open("test.txt","w") as f: f.write("这是个测试!") # 自带文件关闭功能,不需要再写f.close()
读写模式
要了解文件读写模式,需要了解几种模式的区别,以及对应指针
r : 读取文件,若文件不存在则会报错
w: 写入文件,若文件不存在则会先创建再写入,会覆盖原文件
a : 写入文件,若文件不存在则会先创建再写入,但不会覆盖原文件,而是追加在文件末尾
rb,wb: 分别于r,w类似,但是用于读写二进制文件
r+ : 可读、可写,文件不存在也会报错,写操作时会覆盖
w+ : 可读,可写,文件不存在先创建,会覆盖
a+ : 可读、可写,文件不存在先创建,不会覆盖,追加在末尾
-
- 一行行读取
- 3
- 3
- 3
- 3
- 3
- 3
通用性问题:
- ssh配置免密登录失败问题(见第4项:设置StrictModes no) https://jingyan.baidu.com/article/454316ab3176d8f7a7c03ab9.html
-
Ubuntu16.04系统无法上网问题解决 Ubuntu16.04系统无法上网问题解决 - 知乎