linux常用命令

Python

type -a python3

查看所有python3安装目录

which python

查看当前使用的是哪里的python

tmux使用方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
tmux ls

tmux new -s < name>

tmux attach -t < name>/< number>

tmux switch -t < name >/< number >

tmux detach

Ctrl+b d:分离当前会话。

Ctrl+b s:列出所有会话。

Ctrl+b $:重命名当前会话

ipdb操作:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
ipdb.set_trace()

python -m ipdb your_code.py

下一条语句
使用n(next)执行下一条语句

进入函数内部
使用s(step into)进入函数调用的内部。

b line_number

b file_name:line_number

一直执行直到遇到下一个断点

使用c(continue)执行代码直到遇到某个断点或程序执行完毕。

一直执行直到返回
使用r(return)执行代码直到当前所在的这个函数返回。

跳过某段代码
使用j line_number(jump)可以跳过某段代码,直接执行指定行号所在的代码。
更多上下文

在IPDB调试环境中,默认只显示当前执行的代码行,以及其上下各一行的代码。如果想要看到更多的上下文代码,可以使用l first[, second](list)命令。

其中first指示向上最多显示的行号,second指示向下最多显示的行号(可以省略)。当second小于first时,second指的是从first开始的向下的行数(相对值vs绝对值)

我在哪里
w
调试兴起,可能你会忘了自己目前所在的行号。例如在打印了若干变量值后,屏幕完全被这些值占据。使用w或者where可以打印出目前所在的行号位置以及上下文信息。

这是啥
我们可以使用whatis variable_name的方法,查看变量的类别(感觉有点鸡肋,用type也可以办到)。

当你身处一个函数内部的时候,可以使用a(argument)打印出传入函数的所有参数的值。

使用p(print)和pp(pretty print)可以打印表达式的值。

使用cl或者clear file:line_number清除断点。如果没有参数,则清除所有断点。

使用restart重新启动调试器,断点等信息都会保留。restart实际是run的别名,使用run args的方式传入参数。

使用q退出调试,并清除所有信息。

screen

screen是一个可以在多个进程(通常是交互式shell)之间复用一个物理终端的全屏幕窗口管理器。即linux下使用多窗口

常用screen参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
screen -S session_name  

新建一个叫session_name的session

screen -ls(或者screen -list) 

列出当前所有的session

screen -r session_name 

回到session_name这个session

screen -d session_name   

远程detach某个session

screen -d -r session_name     

结束当前session并回到session_name这个session

滑动窗口:
Ctrl + a + [
h - Move the cursor left by one character
j - Move the cursor down by one line
k - Move the cursor up by one line
l - Move the cursor right by one character
0 - Move to the beginning of the current line
$ - Move to the end of the current line.
G - Moves to the specified line
(defaults to the end of the buffer).
C-u - Scrolls a half page up.
C-b - Scrolls a full page up.
C-d - Scrolls a half page down.
C-f - Scrolls the full page down.

进入screen窗口后,想暂时退出(等会还想连接这个screen窗口)
crtl+a+d

退出当前screen窗口,结束当前screen窗口,不想再连接回来(即杀死会话)
exit或者ctrl+d

top查看谁在用程序

pytorch配置

下载hydra-0.11
python setup.py install
pip install gym tensorboard

pip3 install –pre torch torchvision torchaudio -f https://download.pytorch.org/whl/nightly/cu111/torch_nightly.html

conda install pytorch-1.8.0-py3.8_cuda11.1_cudnn8.0.5_0.tar.bz2

conda clean –all

pip install torchvison==0.9.0

permute(dims)

将tensor的维度换位。

PyTorch的nn.Linear()详解:

nn.linear(in_features,out_features,bias=True)

in_features指的是输入的二维张量的大小,即输入的[batch_size, size]中的size。 size = channel * height * width
out_features指的是输出的二维张量的大小

在使用前需要把数据view一下,四维变二维
x = x.view(x.size[0],-1)

torch.distributions.Categorical
对某个array进行分类,输出的是类别的分布

服务器本地传文件:

ssh root@194.165.1.203 -p 2222 #指定端口登录
scp <本地文件名> -p 端口号 <用户名>@<ssh服务器地址>:<上传保存路径即文件名>

查看文件大小du -h –max-depth=1 your_dest_dir

vscode 缩进:

command [
command ]

有关vscode崩坏的解决:

https://update.code.visualstudio.com/commit:${commit_id}/server-linux-x64/stable 下载 vs code server

3866c3553be8b268c8a7f8c0482c0c0177aa8bfa
https://update.code.visualstudio.com/commit:e7d7e9a9348e6a8cc8c03f877d39cb72e5dfb1ff/server-linux-x64/stable

${commit_id}替换为当前电脑id 379476f0e13988d90fab105c5c19e7abc8b1dea8

scp 传输到 vscode-server/bin/下

将远程的.vscode文件删除并重新连接可得到该id

cd /root/.vscode-server/bin/379476f0e13988d90fab105c5c19e7abc8b1dea8

mv vscode-server-linux-x64.tar vscode-server.tar.gz
touch vscode-scp-done.flag

mv vscode-server-linux-x64.tar.gz vscode-server.tar.gz

然后再连接就可以了。

又踩坑了,注意从谷歌下载该压缩包,大小大概为50m


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!