目录
一 虚拟环境相关命令
conda create --name *** python=3.6
# 建立名字为“***”
的虚拟环境,并安装3.6版本的Python
conda create --name 新名称 --clone 原名称
# 创建新的虚拟环境,并克隆指定环境(即copy环境),除环境名字不同,其余所有皆相同
conda env list
# 查看当前虚拟环境
conda remove -n ** --all
# 删除名为“**”的虚拟环境
二 操作系统相关命令
WSL Ubuntu忘记root密码和用户密码
一、重置root密码
1 以管理员身份打开 PowerShell
2 输入命令 wsl.exe --user root
3 输入命令 passwd root
修改 root 密码
4 输入新的密码并确认后,root密码即得到重置
二、重置用户密码
重置与用户密码与重置root密码类似:
1 以管理员身份打开 PowerShell
2 输入命令 wsl.exe --user root
3 输入命令 passwd username
修改用户密码,username
即待重置的用户的名称
三 复制环境依赖
一般是在复现相同环境时使用,一键快捷省心。例如更换服务器、复现git开源工程等
conda
conda导出已有的环境,保存在myenv.yaml文件中
conda env export > myenv.yaml
根据yaml文件导入并安装环境
conda env create -f myenv.yaml
注:.yaml文件移植过来的环境只是原来环境里用conda install命令安装的包,pip安装的不会移植过来,需要重新安装。
pip
把环境中的依赖写入 requirement.txt 中
pip freeze >requirements.txt
安装环境依赖
pip install -r requirement.txt
四 Linux系统迁移复制、剪切、粘贴文件命令
mv src_file(文件) dest_directory(目录)
Linux系统使用命令新建一个文件夹:
# 在当前目录下创建一个名为"my_new_folder"的新文件夹
mkdir my_new_folder
# 如果要在特定路径下创建文件夹,例如在/home/user/documents路径下创建一个"project"文件夹
mkdir /home/user/documents/project
# 递归创建多级目录
mkdir -p /path/to/multiple/nested/directories
Linux系统使用命令删除一个文件夹:
# 使用 rmdir 删除空文件夹
rmdir folder_name
# 使用 rm -r 删除空文件夹(同样适用非空文件夹)
rm -r folder_name
# 强制删除非空文件夹及其所有内容
rm -rf folder_name
Linux系统使用命令将一个文件夹内容复制到另一个文件夹内:
# 假设您要将源文件夹 /path/to/source_folder 的内容复制到目标文件夹 /path/to/destination_folder 内
# 使用以下命令:
cp -r /path/to/source_folder/* /path/to/destination_folder/
# 解释:
# - cp 是复制命令
# - -r 表示递归复制,用于处理目录及其包含的子目录和文件
# - source_folder/* 表示源文件夹下的所有内容
# - destination_folder/ 是目标文件夹的路径
# 如果目标文件夹不存在,则需要先创建它,可以使用 mkdir 命令:
mkdir -p /path/to/destination_folder/
# 然后执行复制命令
cp -r /path/to/source_folder /path/to/destination_folder/
# 或者,如果你想把源文件夹作为一个子目录复制到目标文件夹内(保留源文件夹结构),也可以这样写:
cp -r /path/to/source_folder /path/to/destination_folder/
五 解决Linux系统vscode文件权限不足问题
适用于文档
- 当前文件夹下打开终端
sudo su
命令进入root权限sudo chown user_name file_name
,user_name对应系统用户名,file_name对应修改的文件名
在Linux系统中,Visual Studio Code(VSCode)遇到写入文件权限不足的问题时,通常是因为当前用户没有足够的权限来编辑或保存文件。以下是一些解决此问题的方法:
专业意见:
-
更改文件所有者:
如果你想让当前用户拥有对特定文件或目录的写权限,可以将文件的所有权更改为当前用户。sudo chown -R [username]:[group] /path/to/directory
其中,
[username]
是你的用户名,[group]
是对应的组名(可选,如果不指定组,则默认为主用户的主组),/path/to/directory
是你想要更改所有权的文件或目录路径。 -
调整文件或目录权限:
你可以使用chmod
命令增加其他用户或组的写权限。sudo chmod -R u+w,g+w,o+w /path/to/directory
上述命令递归地给所有用户(u、g、o分别代表用户、组和其他)添加了写入权限(w)。但请注意,这种方法可能带来安全风险,因为它可能会给予过多的访问权限。
-
以普通用户身份运行VSCode:
如果你之前是以root用户身份运行VSCode,导致无法正常保存非root用户下的文件,可以尝试不使用sudo启动VSCode,并通过--user-data-dir
参数指定工作区的数据目录到普通用户有权访问的位置。code --user-data-dir ~/vscode-data /path/to/project
-
修改项目目录权限:
只针对特定项目的文件和目录,你也可以只更改这些特定文件和目录的权限,而不影响其他系统文件。 -
使用VSCode的工作区设置:
在VSCode内部打开工作区时,确保工作区内的文件夹是在具有足够权限的用户下打开的。 -
避免直接在系统敏感位置创建项目:
不要在需要高权限才能操作的系统目录(如/usr
、/var
等)下创建项目,而应该在用户home
家目录或其他有足够权限的自定义目录下创建项目。
根据实际情况选择合适的方法,确保在赋予更多权限时不会破坏系统的安全性原则。
六 Linux系统进入、退出root权限命令
进入root权限
sudo su
命令
退出root权限
exit
直接退出root权限
su 普通用户名
切换至普通用户权限
七 Linux系统vim命令
Vim 是一个强大的基于命令行的文本编辑器,它具有多种模式来适应不同的文本处理需求。以下是 Vim 编辑器中一些主要命令和模式的详解:
模式切换
-
正常模式(Command Mode):
- 进入:打开 Vim 后默认进入此模式。
- 功能:在该模式下可以执行文件操作、移动光标、复制、粘贴、查找替换等大量操作,但不能直接输入文本。
-
插入模式(Insert Mode):
- 进入:在正常模式下按
i
(在光标前插入)、a
(在光标后插入)、I
(在当前行首插入)、A
(在当前行末插入)或o
(在当前行下方新开一行并插入)、O
(在当前行上方新开一行并插入)等键可进入插入模式。 - 功能:在此模式下,您可以像使用普通文本编辑器那样输入和编辑文本。
- 进入:在正常模式下按
-
可视模式(Visual Mode):
- 进入:在正常模式下按
v
(字符可视选择)、V
(行可视选择)或<C-v>
(块可视选择)可进入可视模式。 - 功能:选中文本区域以进行复制、剪切、替换等操作。
- 进入:在正常模式下按
-
替换模式(Replace Mode):
- 进入:在正常模式下按
R
进入替换模式。 - 功能:每次按键都会替换当前位置的字符,直到按下
Esc
回到正常模式。
- 进入:在正常模式下按
-
末行模式(LastLine Mode 或 Ex Mode):
- 进入:在正常模式下按
:
(冒号)即可进入末行模式。 - 功能:在此模式下可以执行保存文件(
:w
)、退出(:q
),保存并退出(:wq
)、不保存退出(:q!
)等操作以及运行各种高级编辑命令。
- 进入:在正常模式下按
常用命令举例:
-
移动光标:
h
(左)、j
(下)、k
(上)、l
(右)、gg
(跳转到文件首行)、G
(跳转到文件尾行)、w
(跳至下一个单词开头)、b
(跳至前一个单词开头)。 -
删除操作:
x
(删除光标处单个字符)、dw
(删除光标至下一个单词结尾)、dd
(删除当前行)、d$
(删除从光标到行尾)。 -
复制与粘贴:
yy
(复制当前行)、nyy
(复制当前行及以下n行)、p
(粘贴在光标之后)、P
(粘贴在光标之前)。 -
查找与替换:
/pattern
(向下查找指定模式)、?pattern
(向上查找指定模式)、:s/old/new/g
(替换当前行所有匹配项)。 -
保存与退出:
- 保存并退出:
:wq
或:x
(仅当无未保存更改时可用)。 - 强制保存并退出:
:wq!
。 - 不保存并退出:
:q!
。
- 保存并退出:
以上只是 Vim 命令的一小部分,Vim 的强大之处在于其丰富的组合命令和高度自定义性。要深入了解 Vim,建议通过实践和查阅官方文档学习更多进阶技巧和功能。
八 深度学习anaconda / conda 环境复制和迁移
- 使用 conda create 命令的 --clone 参数直接复制一个环境
conda create --name <new_env> --clone <myenv>
- 操作系统相同时的迁移:
使用 conda list 命令保存当前环境的包的信息到一个txt文件:
conda list --explicit > requirements.txt
根据这个文件可以在其他电脑上进行相同环境的安装:
conda create --name <new_env> --requirements.txt
- 操作系统不同时的迁移:
重点方法:
导出 environment_name.yml 文件:
conda env export > environment.yml
利用生成的environment_name.yml 文件复现环境:
conda env create -f environment.yml
注意:此时导出的文件中,可能包含特定平台和系统的信息。如果你在导出环境时不希望包含特定于平台的构建信息,可以在导出命令中添加--no-builds
选项,如:
conda env export --no-builds > environment.yml
该命令会导出当前激活的Conda环境的完整配置信息到一个名为environment.yml的文件中。这个文件通常用于完全重建相同的环境,包括:
环境名称:定义了环境的唯一标识。
Python版本:指定环境中使用的Python解释器版本。
通道(channels):列出用于查找和安装包的Conda频道。
依赖包:列举所有安装在环境中的软件包及其精确版本,包括Conda包和通过pip install安装的Python包。
其他配置(如:代理设置、额外的依赖项约束等):如果环境中包含这些特殊的配置信息,它们也可能被包含在导出的文件中。
使用conda env create -f environment.yml命令,可以基于这个文件创建一个与原环境几乎完全一致的新环境,包括所有的软件包、版本以及环境配置。
补充:
conda list 命令默认列出当前环境中通过Conda安装的软件包
pip list 命令默认列出pip安装的软件包列表
如果仅需要pip安装的所有包,使用命令:
pip freeze >pip-requirements.txt
pip install -r pip-requirements.txt
仅复现pip安装的包