Fork me on GitHub

Windows Command

学习使用python的命令行参数相关库,
命令行参数可以用于脚本的参数输入,比如

1
2
lupdate xxx.cpp -ts xxx.ts
# qt的lupdate将文件生成一个可翻译的ts文件

在深度学习中,命令行参数也是必须学会的一项,在开始学习之前,我自己知道的有一个自带的sys和一个常用的argparse

0. 前言

命令行参数多用于程序的执行,和一些脚本
一般格式是

1
python script.py -s ./src --mode auto -v

其中的script.py是脚本名,-s --mode -v都是命令行选项,剩下的./src auto就是命令行参数

1. sys.argv

该模块是python内置的模块,sys.argv可以访问所有的命令行参数,返回值是包含所有命令行参数的列表;

1.1 sys.argv

程序执行时,python从命令行获取到的所有值都存储在sys.argv列表中:
第一个元素是sys.argv[0],存储的脚本的完整路径;
第二个元素才是命令输入的第一个参数,即sys.argv[1]

使用该模块,首先导入sys

1
import sys

假如现在有一个脚本,代码是:

1
2
3
4
5
import sys

print(f"script name: {sys.argv[0]}")
print("number of parameters: {}".format( len(sys.argv) ))
print(f"parameter: { str(sys.argv) }")

我们通过命令行输入

1
python test.py ./src --mode auto -o ./output/ans.png

那么我们的参数个数会被认为是5个,因为命令行选项--mode -o也会被当作命令行参数。
于是使用getopt模块识别这些命令行选项

1.2 getopt

1.2.1 getopt.getopt

语法格式如下

1
2
3
getopt.getopt(args, option, [ , long_option])
# args:是需要解析的命令行参数列表,一般填写 sys.argv[1:],也就是抛弃脚本名sys.argv[0]
# options:以字符串格式定义

1.2.2 参数异常

2. argparse

目前实用下来,感觉argparse更加常用,功能也更强大,可读性更强
导入库

1
import argparse

具体用法:

1
2
3
4
5
6
7
8
import argparse

parse = argparse.ArgumentParser()
parse.add_argument("-s","--sourceFolder", help="...", default="./out", type=str)

args = parser.parse_args()

print(args.sourceFolder)

代码解释:

-h –help参数是内置的帮助参数
add_argument函数是添加参数的函数,内置的参数有: 参数名/简写 参数的描述,参数的帮助文本,参数的default值,参数的类型

1
parse.add_argument('-i','--info',description = 'this is infomation',help='please enter item\'s info',default='none',type=str,)

2.2 更多的参数解析

  • name or flags :选项字符串的名字或者列表,例如 foo 或者 -f, –foo。
  • action: 命令行遇到参数时的动作,默认值是 store。
  • store_const:表示赋值为const;
  • append:将遇到的值存储成列表,也就是如果参数重复则会保存多个值;
  • append_const:将参数规范中定义的一个值保存到一个列表;
  • count:存储遇到的次数;此外,也可以继承 argparse.Action 自定义参数解析;
  • nargs :应该读取的命令行参数个数,可以是具体的数字,或者是?号,当不指定值时对于 Positional argument 使用 default—对于 Optional argument 使用 const;或者是 * 号,表示 0 或多个参数;或者是 + 号表示 1 或多个参数。
  • const-action 和 nargs 所需要的常量值。
  • default: 不指定参数时的默认值。
  • type: 命令行参数应该被转换成的类型。
  • choices:参数可允许的值的一个容器。
  • required:可选参数是否可以省略 (仅针对可选参数)。
  • help:参数的帮助信息,当指定为 argparse.SUPPRESS 时表示不显示该参数的帮助信息.
  • metavar:在 usage 说明中的参数名称,对于必选参数默认就是参数名称,对于可选参数默认是全大写的参数名称.
  • dest: 解析后的参数名称,默认情况,对于可选参数选取最长的名称,中划线转换为下划线.
1
2
3
4
5
6
7
8
9
10
11
parser = argparse.ArgumentParser(description='Process some integers.')
parser.add_argument('-p','--path', type=str, default=r"F:\MdAI\mdai-src",
help='The path of the repository')
parser.add_argument('-x','--extract', action='store_true',
help='Extract strings from Py files')
parser.add_argument('-r','--replace', action='store_true',
help='Replace strings in Py files based on translation file')
parser.add_argument('-m','--mode', type=str, default='en2zh',
help='Choose the mode: en2zh or zh2en',
choices=['en2zh', 'zh2en'])
args = parser.parse_args()

Git常用整合宝典

@[TOC]

0. 简单认识Git

0.1 起源

最初是由linux开发者linus用两周时间用c语言编写而成。github就是使用git系统对网站进行管理,github只支持git分布式系统,故名为github。

0.2 分布式

svn和cvs也是版本控制系统,是集中式的,集中式的在每次写代码时都需要从服务器上拉取一份,如果服务器丢失,那么所有的都丢失,本机客户端仅仅保存当前版本信息。所有的回滚操作都需要服务器支持。
而git是分布式的,每个电脑都是服务器,可以自由在本地回滚。

0.3 最高频操作

私以为最高频的应该就是远程仓库和本地仓库的拉取与推送了

1
2
3
4
5
6
7
8
git add .
git commit -m "This is description"
git push origin master

git pull origin master

git status
git log

1. 介绍

git 官网: https://git-scm.com

1
git help

1.1 安装

Linux安装

1
sudo apt install git

windows
Git - Downloading Package (git-scm.com)

1.2 基本配置

查看git信息

1
2
git -V
git version

配置config,设置自己的用户名和邮箱,这些是每次提交的时候都会用到的信息

1
2
3
4
5
6
7
8
9
git config --global user.name "User Name"
git config --global user.email "UserEmail@Example.com"
# --global表示配置全局,整个git环境


# 查询git config的信息
git config --list
git config -l #两种都行
# 按 q 退出查看

取消配置

1
git config --global --unset user.name

配置git使用的代理(根据个人需求设置)

1
2
git config --global http.proxy "http://127.0.0.1:7890"
git config --global https.proxy "http://127.0.0.1:7890"

1.3 架构

在git的过程中,主要分为两个大区

工作区和版本库,版本库又分为暂存区和分支

  • 版本库:存在于工作区中的一个隐藏目录.git,该目录不属于工作区,是git的版本库,是git管理的所有内容;
  • 工作区:是你撰写代码的地方,修改完成后,通过add操作将工作区的修改放到暂存区;一般是最新的版本代码
  • 暂存区:是版本库的一个临时区域,保存下一步将要提交的文件;
  • 分支:版本库有很多分支,提交的文件就存储在分支中,例如master和main分支
  • 仓库:所有提交都在这,包括历史版本
1
2
3
4
5
Git
|————————WorkSpace:工作区
|————————Index/Stage:暂存区/缓存区
|————————Repository:本地仓库/仓库区
|————————Remote:远程仓库

.git

Index:缓存区,存在于.git中

2. 仓库

一个仓库对应一个目录,该目录中的所有文件被git管理

2.1 新建仓库

1
2
git init
# 需要在空目录

执行git init操作的目录即为工作区,在操作之后,该目录下会有.git目录,是版本库
.git是git的配置文件目录,是隐藏文件夹,普通的ls命令无法查看

1
2
3
ls
# 用-lha参数来查看隐藏的目录
ls -lha

插播一句废话:-lha是命令ls的三个可选参数,分别代表显示详细信息、以便于人类可读的方式显示大小、显示所有文件(包括隐藏)

3. 基本操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#查看仓库状态
git status
# 能看到是否有改动,untracked未跟踪代表未提交

#暂存文件,将工作区文件存入暂存区/缓存区
git add .
git add --all # 添加所有,基本同git add . , 但是会记录删除操作
git add filname.txt # 添加某文件

#提交文件,将暂存区文件存入分支,形成一个版本
git commit -m "提交的描述信息"

# 删除文件
git rm filename

push和pull操作会放到下文远程仓库中

3.2 日志

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 查看历史提交日志
git log
# log的日志格式
# commit <hash id> (HEAD -> master)
# Author : 提交者(user.name)
# Date : 提交时间
# myBase add new file "readme.md"

git log filename
# 查看某一文件的回滚版本

# 查看提交历史: 包括回滚操作
git reflog

git log --pretty=oneline #单行显示

git log --help
#会打开本地的log命令选项文档

日志帮助文档

1
2
3
#合并merge
git log --merge #仅展示合并的commit
git log --no-merge #不展示合并的commit

4. 远程仓库

前面提到的仓库是本地仓库,当多人进行协同开发工作的时候,每个人都在自己的本地仓库维护版本,但是工作需要多人之间共享代码、合并代码,就需要用到远程仓库

4.1 工作模式

程序员在本地仓库进行add操作将工作区文件存入暂存区,通过commit操作将暂存区文件存入分支,形成一个版本。
然后通过clone,push,pull操作与远程仓库进行交互

  • 常见的远程仓库是github和gitee
  • 一些企业也会有自己的远程仓库

4.2 基础操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 当前仓库名
git remote

#本地关联远程仓库
git remote add origin https://gitee.com/Username/case.git

#查看远程仓库地址
git remote -v

git remote show origin

# 使用prune参数刷新本地分支仓库
git remote prune origin

git remote rename <old name> <new name>

git remote remove <remote_name>

4.3 推送 克隆 拉取

1
2
3
4
5
6
7
8
9
10
11
12
git push origin master

git clone https://gitee.com/username/case.git

git clone https://gitee.com/username/case.git .
# 有 . 在末尾,及克隆到当前目录,最好保证是一个空目录

git pull origin master

# 单一分支的时候可以省略后面的参数
git push
git pull
命令 描述
git remote add <标识> 远程仓库地址 本地仓库关联远程仓库
git push <标识> master 将本地仓库上传到远程仓库的master分支
git pull <标识> master 从远程仓库master分支拉取到本地仓库
git clone 地址 将远程仓库复制到本地,并形成本地仓库

4.4 同步

1
2
git fetch
# 拉取远程全部分支,包括这些分支的仓库版本和日志记录

在进行PR操作前,需要与远程仓库的最新进展进行同步,就可以使用fetch。
该操作比较适用于本地仓库有多个远程仓库,通过remote查看。
例如fork一个主要仓库,在自己的仓库修改后,想要提交一个PR合入到主要仓库。

1
2
3
4
5
6
7
git remote add upstream <仓库地址>

git fetch upstream # 拉取upstream仓库的更新

git pull upstream master

git push origin feature

4.5 Github

想要直接与Github仓库进行交互使用,可以通过SSH对github仓库进行访问和写入数据。
SSH连接需要使用密钥进行身份验证,也就需要在本地电脑上生成SSH密钥并把公钥添加到github账户中。
详细操作可以直接参考github的文档

1
ssh-keygen -t ed25519 -C "your_email@example.com"

测试与github的连接

1
ssh -T git@github.com

github相关内容不是本篇博客重点,点到为止。更多问题可以直接搜索关键字github ssh

5. 分支

5.1 分支简介

分支,是一个个版本存储的最终位置;
一个分支相当于一条时间线,每一次commit都会形成一个版本,一个个版本依次存储在分支的一个个提交点上,分支上有个指针默认指向最新的提交点。

5.2 分支的操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#查看分支
git branch

#查看所有分支
git branch -a # 包括远程

# 创建分支
git branch dev #创建名为dev的分支,只会创建,不会切换
git checkout -b dev #创建dev分支

git checkout -b previous upstream/previous
# 基于远程仓库upstream/previous创建previous分支

#切换分支
git checkout dev

#删除本地分支
git branch -D <branch_name>

#删除远程分支
git push origin --delete <remote_branch_name>
  • 查看分支的差异
    1
    2
    3
    4
    5
    git diff A B filename
    # 查看filename文件在分支A和分支B的差异

    gitk --all
    # 会唤起一个图形化浏览器展示commit

5.2.1 分支的细节原理

5.2.2 分支切换时,保存当前工作

如果修改了文件,是不可能直接切换到其他分支,是git为了防止丢失当前工作区的内容
使用命令git stash保存状态

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 保存当前工作状态
git stash

# 查看存储的工作状态
git stash list

# 在其他分支完成工作后,切换为刚刚的分支,可以恢复状态
git stash pop # 将list也删除了
git stash apply # 不删除list,默认恢复第一个
git stash apply list_name # 恢复指定的list

git stash drop list_name
git stash clear

# 查看新保存的stash和当前目录的差异
git stash show

该命令是解决git不提交代码不能切换分支的问题,有时候并不一定需要把代码push到远程

5.3 分支合并

1
2
3
4
5
6
# 分支合并
git merge branchB
# 当前的分支是A,上面的命令是在A分支下合并分支B

# 强制合并分支
git merge branchB --allow-unrelated-histories

合并原理:

  1. 快速合并: 如果分支B的基于分支A的修改,则仅仅只是合并分支B的新内容,相当于移动指针到分支B的最新提交点;
  2. 三方合并: 两个分支都有修改,则累加修改在一起,形成一个全新的提交点,作为合并后分支的指针位置

    可能会造成冲突

5.3.1 冲突

当两个分支对同一个文件进行了修改,会出现冲突,冲突后,git会将冲突的内容都展示在文件中,用<<<< ==== >>>>来进行隔开

5.3.2 别的分支修改转移到当前分支

将A分支的某一修改,合并到当前的B分支

1
2
3
4
5
6
7
8
9
10
git checkout branch_A

git log
#查看需要合并的分支A的具体commit

git checkout branch_B
#切换到合并的分支

git cherry-pick <commit_hash_id>
# 合并具体的commit

5.3.3 预览合并的冲突

1
2
3
4
5
6
7
8
9
10
11
git checkout main

# 模拟合并
git merge --no-commit dev

# 取消合并
git merge --abort

# 解决冲突,继续合并
git add .
git commit -m "merge"

vscode中进行冲突的管理
vscode在发现合并带来的冲突时候,会把更改分为两类,一种是合并更改,一种是暂存更改,暂存更改的意思是来自于合并的分支,但是没有造成冲突,而合并更改中,就是合并的分支和当前的分支产生了冲突,需要人为去管理

5.4 恢复删除

起因,错误删除了远程原仓库中的文件,并在本地修改后提交到了自己的仓库,随后发起了pull request,需要恢复这个删除的文件。
可以直接复制原本的内容,然后创建新的文件,但是也可以利用其他方法

1
2
3
4
5
6
7
8
9
10
git fetch # 拉取所有远程仓库为最新
git fetch upstream

git pull upstream main # 但是被删除的commit还是存在,不会直接恢复

git checkout <branch-name> -- <file-name>

git checkout upstream/main -- "Reports/season 3/successfulbarrier/[WeeklyReport]2024.07.15~2024.07.28.md"
git add .
git commit -m "Restore deleted files from remote repository"

6. 进阶操作

6.1 回滚仓库代码

  • 常规回滚操作
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    # 查看提交日志
    git log
    # 在日志中找到需要回滚到的一次提交的id

    # --hard 一切全部恢复,add的暂存区消失,代码全部恢复到以前状态
    git reset --hard <hash id>

    # --soft 仅仅恢复头指针,已经add的暂存区以及工作空间所有东西都不变
    git reset --soft <hash id>

    # --mixed 头指针移动,add暂存区消失,工作空间代码不变
    git reset --mixed <hash id>
  • 利用HEAD来回滚仓库版本

    1
    2
    3
    4
    5
    6
    7
    # HEAD 指向当前仓库,是头指针

    git reset --hard HEAD^
    # ^代表上一次提交的版本

    git reset --hard HEAD~3
    # ~3以当前版本为基数,回滚几次; ~1表示回滚1次,同^; 这个表示回滚3次
  • 回滚某一文件

    1
    2
    3
    git log filename

    git reset <hash id> filename

6.2 Github使用

[[Github]](这个博客还在写,准备写一些开发中常用到的功能)

常见问题

遇到拒绝访问
可能是token过期了,需要重新生成一个token,并且记得给token权限

默认的github端口是22,更换端口为443

1
2
3
Host github.com
HostName ssh.github.com
Port 443

6.3 子模块

1
2
3
4
git submodule add address

git submodule init
git submodule update

6.4 新增分支操作

适用于git 2.23之后版本,新增switchrestore

1
2
3
4
5
6
7
git switch dev

git switch -b dev # 合并
git switch -c dev # 创建

git restore filename # 撤销提交修改,会从缓存区删除

6.5 Git本地服务器

以linux下为例

1
2
3
4
5
6
7
8
9
10
11
12
13
sudo apt install git

git adduser git

su git

ssh-keygen -t rsa -C "email@example.com"

cd ~
cd .ssh

touch authorized_keys
# 存放他人的公钥,存放后该服务器对公钥的用户开启权限,免密登录,拥有推送拉取权

6.6 忽略 .gitignore

忽略一些文件或者文件夹
在仓库中右键git bash here

1
touch .gitignore

编辑文件.gitignore

1
2
3
4
5
6
7
8
9
10
11
12
13
dir/       // 忽略dir文件夹
dir/*.txt //忽略dir目录下所有.txt文件
//并不会忽略 dir/dir2/a.txt这类文件
*.py //忽略所有.py文件

*.gz //忽略所有.gz结尾文件
!hhh.gz // hhh.gz文件除外

abc //忽略abc文件

/todo //忽略根目录的todo文件

**/__pycache__/

再次git status就发现忽略的文件,没了

1
git status --ignored

.gitignore对已经追踪的文件是无效的,所以需要线清除一下相关缓存状态

忽略失败

.gitignore 文件只是 ignore 没有被 staged(cached) 文件,对于已经被 staged 的文件,加入 ignore 文件时一定要先从 staged 移除。

1
2
3
4
5
6
7
git rm --cached <file>
git rm --cached .obsidian/workspace.json
git rm -r --cached .obsidian # 忽略文件夹
# 使用-r参数递归忽略整个文件夹

git add .
git commit -m "ignore workspace.json"

6.7 规则

.git/hooks/下添加文件pre-commit或者pre-commit.sh 如果是linux还需要赋予该文件执行权限。
然后在文件中写下脚本,用来判断一些文件的存储规则:

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
#!/bin/bash

CURRENT_DIR=$(pwd)
HOOK_DIR=$(dirname "$0")
cd "$HOOK_DIR/../../.." || exit 1

FILES_TO_COMMIT=$(git diff --cached --name-only --diff-filter=ACM)

INVALID_FILES=""
for FILE in $FILES_TO_COMMIT; do
    if [[ "$FILE" =~ \.(png|jpg|jpeg|gif)$ ]]; then
        if [[ ! "$FILE" =~ ^z_LinkSource(/|$) ]]; then
            INVALID_FILES="$INVALID_FILES $FILE"
        fi
    fi
done

if [ -n "$INVALID_FILES" ]; then
    echo "ERROR:Image files must be stored in the z_LinkSource/ directory or its subdirectories.\n The following files need to be moved to the correct directory before committing:"
    echo "$INVALID_FILES"
    exit 1
fi

echo "Pre-commit Checking Passed!"

exit 0

Pip与Conda

@[TOC]

python的包管理工具一般是pipconda

pipconda是Python开发环境中广泛使用的两大包管理工具。
conda是Anaconda发行版的一部分,但也可以单独安装使用,适用于所有Python环境,不仅仅是Anaconda用户。

这个博客是平时的笔记的一次整合,至于为什么连这些都有笔记,那只能是:
前面忘了,中间忘了,后面也忘了

为了更好展现使用方法,就不分为pipconda两部分展示。
而是依照使用进行区分展示。


0. 获取帮助页面

对于任何命令行工具,查阅其帮助文档通常是快速熟悉和掌握其用法的有效途径。
pipconda可分别通过以下命令访问其帮助页面:

1
2
3
4
5
6
pip help
pip --help
# pip可以通过两种来获取帮助

conda --help
# conda只能--help

非常推荐在日常使用中去随时查看help文档


1. 基础操作

安装包

安装包的基本命令如下:

1
2
3
pip install <package_name>

conda install <package_name>

指定特定版本安装:

1
2
3
pip install numpy==1.21.5

conda install numpy=1.21.5

换源

  • pip
    更换pip的默认源以加速下载,如使用清华大学镜像:

    1
    pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple

    使用-i的方法是临时性的,并不是永久的

  • conda
    conda换源和切换至特定通道安装:

    1
    2
    3
    conda install numpy -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main

    conda install conda-pack -c conda-forge

:“源”(pip中的--index-url-i选项)与“通道”(conda中的-c--channel选项)尽管在功能上都是指代软件包的来源,但它们分别对应于pipconda各自独立的服务体系(PyPI与Anaconda Cloud)及其特有的命令行参数。

国内镜像源

同时,在指定源进行安装的时候,为了避免一些安全性问题,建议选择常规可信源进行安装。

一些常见的源
清华: https://pypi.tuna.tsinghua.edu.cn/simple
阿里云 http://mirrors.aliyun.com/pypi/simple/
中科大 https://pypi.mirrors.ustc.edu.cn/simple/
豆瓣 http://pypi.douban.com/simple/

更新

更新单个包:
1
2
3
pip install --upgrade <package_name>

conda update <package_name>

更新所有已安装包:
1
2
3
pip install --upgrade --all

conda update --all

### 卸载
1
2
3
pip uninstall <package_name>

conda remove <package_name>

### 查看
查看单一包的详情
1
2
3
pip show <package_name>

conda list <package_name>

查看所有已安装的包
1
2
3
pip list

conda list

2. requirements

依据requirements.txt安装

1
2
3
4
5
pip install -r requirements.txt
pip install --requirement requirements.txt

conda install --yes --file requirements.txt
conda install -y -f requirements.txt

生成requirements.txt

使用pip自带功能生成:

1
2
pip freeze > requirements.txt
# 自带的功能,会把所有包都生成出来

使用第三方工具pipreqs生成:(推荐)

1
2
3
4
5
6
pip install pipreqs

pipreqs .
# 对当前路径下的文件进行requirements生成
pipreqs . --encoding=utf8
# 加上这个避免一些编码错误

freeze和pipreqs的差别

pip freeze 用于列出当前 Python 环境中所有已安装包及其版本
执行此命令时,它不分项目边界,一视同仁地捕捉环境中所有的软件包,无论这些包是否直接服务于当前项目。
也导致生成的 requirements.txt 文件可能包含大量非项目必需的依赖,提供的是全局环境快照,依赖列表过于宽泛。

pipreqs 是一款专门针对项目代码进行依赖分析的工具。
它通过静态解析项目目录下的源代码和相关文件(如 .py, .ipynb, .yaml 等),识别出项目实际引用的库。
基于这种精准分析,生成的 requirements.txt 文件仅包含项目实际使用的依赖,剔除了无关包。所以通常更推荐使用 pipreqs


3. conda环境

  • 创建
    1
    2
    conda create -n New_env python=3.7
    conda create --name New_env python=3.7
  • 重命名env
    1
    2
    conda create --name conda-new --clone conda-old
    # 通过克隆进行重命名
  • 查看环境
    1
    2
    conda env list
    conda info --envs
  • 激活与退出
    1
    2
    3
    conda activate <env_name>

    conda deactivate
  • 删除环境
    1
    conda env remove --name <env_name>

环境迁移

  • Export环境配置进行迁移

    1
    2
    3
    4
    # 导出环境配置
    conda env export > enviroment.yml
    # 依据环境配置创建环境
    conda env create -f enviroment.yml
  • 打包环境进行迁移

    1
    2
    3
    4
    conda install conda-pack -c conda-forge
    # 从通道conda-forge安装conda-pack工具

    conda pack -n <env_name> -o /path/to/<output_filename>.tar.gz

    eg.

    1
    2
    conda pack -n mask-rcnn -o /pack_envs/mask-rcnn.tar.gz
    # 将环境存储到路径为<>的文件中
  • 导入打包好的环境
    将打包文件移动至目标路径,并解压。
    假设目标路径为$CondaPath/<env_name>,操作如下:

    1
    2
    3
    4
    cd $CondaPath
    mkdir <env_name>
    cd <env_name>
    tar -xzvf /path/to/<pack_filename>.tar.gz

    激活并验证已导入的环境:

    1
    2
    conda env list
    conda activate <env_name>

注意$CondaPath代表conda环境目录,通常位于/root/anaconda/envs(或其他路径),具体位置可通过conda info命令查看。


更新说明

2024年4月20日

  • 补充了freeze和pipreqs的区别,说明为什么更推荐pipreqs。跳转

Windows Command

前言

&emsp; 个人在使用python和运行vs还有git的时候,感觉还是经常会用到cmd相关的命令,而课堂上只是学习过linux相关的命令,和cmd又有些不同,经常会出错,故此总结记录一下,以后也方便自己进行查找翻看。
适合与Linux命令结合学习,注意异同点[[Linux]]

0. 启动

Win + r 进入运行,输入cmd
按下Enter进入cmd;
按下Ctrl+Shift+Enter使用管理员权限启动

1. 常用命令

1.1 跳转硬盘

1
2
3
4
d:   //跳转到D盘
f: //跳转到F盘

cd /d d: //加参数/d跳转到D盘

1.2 cd命令

1
2
3
4
5
6
cd /?    //获取使用帮助
cd \ //根目录

cd .. //上级目录
cd test //进入当前目录下的test文件夹
cd c:\test1 //跳转当前磁盘下的其他文件夹

1.3 查看文件目录

1
2
3
4
5
dir //查看当前文件夹下的文件

//该命令类似于linux的ls命令,经常混淆

dir /? //查看隐藏文件夹

1.4 清除屏幕

1
cls //类似Linux的clear

1.5 查看ip与网络相关

1
2
3
4
5
ipconfig  //查看ip

ping [ip] //测试与【ip】的连接是否畅通

netstat -ano //查看网络连接、状态与对应进程id

1.6 创建删除文件夹(目录)

1
2
md Dir1 //创建文件夹Dir1
rd Dir1 //删除文件夹Dir1

1.7 删除复制移动文件

1
2
3
4
5
6
copy [文件path1] [文件path2] //把文件从一个位置复制到另一个位置

move [文件path1] [文件path2] //把文件从一个位置移动到另一个位置

del File1 //删除文件File1,仅能删除文件,不能删除文件夹

查看帮助

1
2
-help
/?

2. Git命令的相关使用

3. Python相关使用

下载python的库命令pip [[Pip——Python的包管理工具]]

4. Visual Studio的相关使用

5. Java相关使用

  • Copyrights © 2023-2024 Danzel
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信