Linux命令 Memo

Git Memo

Pandas Memo

Python Memo


高频代码

os.environ['CUDA_VISIBLE_DEVICES'] = '1'
np.set_printoptions(suppress=True)
torch.set_printoptions(sci_mode=False)

bash

Linux系统设置回收站(屡屡犯错,非常重要!),详见教程
增加移动时,是否覆盖的提醒

mv $@  ~/.trash/
修改为
mv -i $@  ~/.trash/

bash的for循环

for i in 11 12 13 14 15 16
do
   python train.py --case $i --exp_name $i
done

MAC录屏

开始 Command+Shift+5
结束 Command+Ctrl+Esc

其它Memo

python后台运行

nohup python -u XXXX.py > XXXX.txt 2>&1 &
tail -f XXXX.txt

统计文件行数

wc -l filename # 因为是按照\n进行统计的,所以最后一行如果没有\n,会少一行
sed -n '$=' filename

Linux命令行常用快捷键,详见:链接

根据进程id,查看进程信息

ps -ef | grep -v grep | grep   74751

查看当前目录下各个文件夹的大小(不包含文件,但会显示当前文件夹的总的大小)

sudo du -h --max-depth=1 | sort -hr
sudo du -sh * | sort -rh(适用于Mac)

清空回收站

rm -rf ~/.local/share/Trash/*

查看当前目录下所有文件的大小(对于文件夹也会显示其大小,但这个大小通常只有几K,不代表该文件夹下的所有内容的大小之和)

ls -lht

ssh简称

在.ssh/config文件中写入

Host nail
HostName 11.138.130.1
User bowen.pbw

环境变量相关

Mac上的环境变量.bash_profile

export PATH=$PATH:<Your-Path>

Python查看内存使用

import psutil
memory = psutil.virtual_memory()
used = float(memory.used) / 1024 ** 3
remain = float(memory.free) / 1024 ** 3
print('Memory Condition [used | remain] = [%.3f | %.3f] GB' % (used, remain))

# 注:每次需要查看内存都要重新创建变量memory

压缩/解压相关

tar命令仅打包不压缩,用于发布数据集

tar cvf XXX.tar folder1 folder2 ...	 # 打包
tar xvf XXX.tar                      # 解包
tar -xzvf XXXX.tar.gz  // 解压tar.gz文件
tar zxvf XXXX.tgz // 解压tgz文件
unrar x XXXX.rar
待解压的文件从images.tar.00到images.tar.16
cat images.tar.* > images.tar
tar -xvf images.tar
Q:待解压的文件是分卷形式{XXX.zip, XXX.z01, XXX.z02},应该如何解压?
A:首先需要合并为一个完整的zip,然后再解压
zip -s- XXX.zip --out full.zip
unzip full.zip
zip -s 1G origin.zip --out others.zip # 得到others.zip, others.z01, others.z02 ...
zip others.zip others.z01 others.z02 ... -s=0 --out sum.zip # 合并分卷为一个完整的zip
# zip压缩时排除多个文件夹,注意要加引号
zip -r cartoon.zip cartoon/ -x "cartoon/results/*" -x "cartoon/dataset/*"

举办比赛时压缩文件,加密且只打包不压缩

zip -P password -r -0 file.zip folder

sed命令

sed -i -e '4a#this is a new line' main.py # 在第4行插入,-i表示直接覆盖
sed -n '70,75p' XXXX # 打印文件的第70~75行

Google Colab

按F12打开Console,运行如下代码防止掉线

functionClickConnect(){console.log(“Working”);document.querySelector(“colab-toolbar-button#connect”).click()}setInterval(ClickConnect,60000)

Vim相关

不保存退出vim

Shift ZQ

face服务器粘贴混乱

:set paste
进行粘贴
:set nopaste

更好的方法是:link

let &t_SI .= "\<Esc>[?2004h"
let &t_EI .= "\<Esc>[?2004l"

inoremap <special> <expr> <Esc>[200~ XTermPasteBegin()

function! XTermPasteBegin()
  set pastetoggle=<Esc>[201~
  set paste
  return ""
endfunction

配置.vimrc

set mouse=a
set nu
set nohlsearch

set smarttab
set tabstop=4
set shiftwidth=4
set expandtab

map <F1> <Nop>

nnoremap <F8> :w<CR>
inoremap <F8> <esc>:w<CR>i<right>
nnoremap <F9> :w<CR>
inoremap <F9> <esc>:w<CR>i<right>
nnoremap <F10> :w<CR>
inoremap <F10> <esc>:w<CR>i<right>

hi comment ctermfg=2

安装python cv2

pip install opencv-python #	能够保证安装最新版
conda install opencv

安装视频读写相关的库

conda install -c conda-forge imageio
pip install imageio-ffmpeg
conda install ffmpeg -c conda-forge
writer = imageio.get_writer('XXX.mp4', fps=25)
writer.append_data(img)
writer.close()

cuda相关

查看cuda版本

nvcc -V
nvcc --version
cat /usr/local/cuda/version.txt
torch.version.cuda

查看cudnn版本

torch.backends.cudnn.version()

NVIDIA CUDA

将屏幕上打印的信息同时写入文件

python test.py | tee output.txt

强行释放GPU内存

sudo fuser -v /dev/nvidia* #查找占用GPU资源的PID
kill -9 PID

创建新用户(包括创建该用户的home目录)

adduser

使用Python查看CPU核心数

>>> from multiprocessing import cpu_count
>>> print(cpu_count)

pip安装屏蔽输出

pip install pretrainedmodels > /dev/null 2>&1

Conda相关

conda安装速度慢
在以下网页搜索相关库,下载到本地
https://anaconda.org/conda-forge/cudatoolkit/files

conda install --use-local XXXXX.tar.bz2

conda添加源

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

真正解决condaHTTPERROR的问题:https://blog.csdn.net/ebzxw/article/details/80702506

conda瘦身

conda clean -p      //删除没有用的包
conda clean -t      //tar打包
conda clean -y --all //删除所有的安装包及cache

当出现conda install: Segmentation fault时,使用上述命令删除缓存即可

conda克隆环境

conda create -n new_env --clone exist_env

查看当前环境安装了哪些库

conda list

【虚拟环境安装library的源代码路径】

/anaconda2/envs/learn_torchvision/lib/python3.7/site-packages/torchvision

cuDNN相关

本质上就是把文件下载下来,复制到/usr/local/cuda下,详见:安装教程

之后还要设置一些环境变量,详见:参考教程

查看cuDNN版本

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

【实际安装】

下载cudnn-linux-x86_64-8.5.0.96_cuda11-archive.tar.xz
解压:tar -xvJf cudnn-linux-x86_64-8.5.0.96_cuda11-archive.tar.xz
里面包含include目录, lib目录, LICENSE文件
开始复制
sudo cp cudnn-linux-x86_64-8.5.0.96_cuda11-archive/include/cudnn* /usr/local/cuda/include/
sudo cp cudnn-linux-x86_64-8.5.0.96_cuda11-archive/lib/libcudnn* /usr/local/cuda/lib64/

jupyter使用虚拟环境

pip install --user ipykernel	// 首先安装ipykernel
python -m ipykernel install --user --name=py37		// 然后注册虚拟环境py37

使用soft link

# 将shortcut作为example_dir的快捷方式(建议使用绝对路径)
# 注意shortcut不能用mkdir事先创建(因为shortcut本来就不是真正的文件夹)
ln -s example_dir shortcut

解除soft link

unlink shortcut

服务器安装imgcat,完成之后重新登陆一下才生效

wget https://iterm2.com/utilities/imgcat; cp imgcat /usr/local/bin/imgcat; chmod +x /usr/local/bin/imgcat

查找某个文件夹下的所有jpg文件,统计数量

find dir_name -name "*.jpg" | wc -l

服务器matplotlib画图

import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt

bash glob pattern

参见 教程

TensorFlow相关

安装tf1.15版

conda安装 cudatoolkit=10.0.130 cudnn=7.6.5
然后安装tensorflow-gpu==1.15.2

【报错】
If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0.
【解决】
pip install --upgrade protobuf==3.20.0

测试gpu是否可用

tf.test.is_gpu_available()
tf.config.list_physical_devices('GPU')

注:tensorflow版本必须和cuda严格对应,所以直接用conda来安装管理cuda版本即可

conda install cudatoolkit=10.1 cudnn=7.6.5

cmake安装/升级

chmod +x cmake-3.17.2-Linux-x86_64.sh
./cmake-3.17.2-Linux-x86_64.sh

生成cmake-3.17.2-Linux-x86_64目录,替换/usr/local/bin/cmake,/usr/local/bin/cpack,/usr/local/bin/ctest,/usr/local/share/cmake-3.17

检查文件md5

https://blog.csdn.net/jgw2008/article/details/78665901

osscmd

osscmd uploadfromdir local_dir oss_dir # 上传文件夹
osscmd downloadtodir oss_dir local_dir # 下载文件夹
osscmd multiget oss://bucket/object localfile --thread_num=5 # 多线程下载

pathlib

path.iterdir()			# 遍历所有文件
path.glob('*.jpg')		# 遍历指定后缀的文件
path.glob('**/*.txt'))	# 递归遍历指定后缀的文件

path.is_dir()
path.exists()
is_empty = not any(path.iterdir())	# 判断文件夹是否为空

path.name	# 对于文件,去除目录,得到文件名
path.suffix	# 后缀
path.stem	# 除了后缀
path.parent	# 父级目录

path.mkdir(parents=True, exist_ok=True)	# 递归创建文件夹
os.makedirs(path, exist_ok=True)	# 使用os递归创建文件夹

视频读写

Warning:使用imageio和cv2读取视频,帧数可能不一样

videoCapture = cv2.VideoCapture()

filename = 'video02.MP4'
videoCapture.open(filename)

# 读视频
fps = int(videoCapture.get(cv2.CAP_PROP_FPS))
num_frame = int(videoCapture.get(cv2.CAP_PROP_FRAME_COUNT))
print('fps = %d, num_frame = %d' % (fps, num_frame))

for i in range(num_frame):
    ret, img = videoCapture.read()

# 写视频
h, w, _ = img_list[0].shape
size = (w, h)

output_path = 'result.mp4'
fourcc = cv2.VideoWriter_fourcc(*'mp4v')
writer = cv2.VideoWriter(output_path, fourcc, fps, size)

for img in img_list:
    writer.write(img)

writer.release()
# 读视频
reader = imageio.get_reader(video_path, 'ffmpeg')
fps = reader.get_meta_data()['fps']
img_list = []
for img in reader:
	img_list.append(img)

# 写视频
writer = imageio.get_writer(output_path, fps=fps)
for img in img_list:
	writer.append_data(img)
writer.close()

视频转gif

参考:https://zhuanlan.zhihu.com/p/163575055

pip指定源

pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple

-i https://mirrors.aliyun.com/pypi/simple
-i https://pypi.mirrors.ustc.edu.cn/simple

gcc相关

gcc -v	# 查看gcc版本

挂载移动硬盘

参考教程

似乎在Ubuntu桌面系统上直接插上移动硬盘就可以用图形界面打开,进行文件操作了

安装cpu版pytorch3d

参考Github Issue

ffmpeg

# 截取视频某一段
ffmpeg -i input.mp4 -vcodec copy -acodec copy -ss 00:02:13(起始时间) -to 00:02:38(结束时间) output.mp4 -y

# 提取音频
ffmpeg -i video_raw.mp4 -f mp3 -vn audio.mp3
# 清空音频
ffmpeg -i video_raw.mp4 -an video_temp.mp4
# 添加音频
ffmpeg -i audio.mp3 -i video_temp.mp4 -y video_output.mp4

# 压缩视频,fps减少,时长不变
ffmpeg -i input.mp4 -r 30 output.mp4

# 将文件夹的图像合成为视频
ffmpeg  -y -r 10 -i img_dir/%3d.png -c:v libx264 -vf fps=15 out.mp4

软件iTerm2

设置option+左/右的光标移动,见 教程

brew国内安装

/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

Sublime3偏好设置

{
	"theme": "Default.sublime-theme",
	"color_scheme": "Monokai.sublime-color-scheme",
	"font_size": 16,
	"tab_size": 4,
	"translate_tabs_to_spaces": true,
	"open_files_in_new_window": false,
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值