分类 教程 下的文章

windows: cmd下(临时set,永久setx)设置环境变量


问题

新上一批开发机,环境有些欠缺,qt、python的环境变量没有加上,需要手动设置一下。

set命令

set命令用于设置当前cmd窗口中的环境变量,只对当前cmd窗口有效,cmd窗口关闭后就没有效果了,也不会影响到系统中保存的用户环境变量。其相关用法可以百度。无参数的情况是查看变量情况。

setx命令

setx 设置永久【用户环境变量】

setx "name"="value" # 直接赋值(覆盖)
setx "name" "value" # 列表追加,键值为修改值

命令里边添加了双引号,为的是防止名称或值里有空格

setx 设置永久【系统环境变量】

setx "name"="value" /m
setx "name" "value" /m

/m 参数就是指系统环境变量

举几个例子

# 临时修改用户环境变量
set "Path"="C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\bin;%path%" # 临时设置Path变量(%path%为取path值,此处可理解为向头部添加)

# 永久修改用户环境变量
setx "Path" "C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\bin;" # 由于Path为列表配置项,所以是添加qt的目录值
setx "Path"="%path%C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\bin;" # 与上一条同等效果

# 永久修改系统环境变量
setx "Path" "C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\bin;" /m # 由于Path为列表配置项,所以是添加qt的目录值
setx "Path"="%path%C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\bin;" /m # 与上一条同等效果

重装win10系列: 修改系统的软件默认安装路径


1. 摘要

今天重新给电脑做了一下系统,把Users文件移到了D盘,这回也不占用C盘了,然后这不开始安装软件么,第一件事就下了一个Bandizip准备安装,默认安装路径【C:Program Files】,那不行啊,安装的软件也得进D盘,C盘得留着给重要的东西用。这个设置需要修改注册表。

2. 流程

1 . Win+R 打开运行
2 . 输入regedit打开注册表
3 . 在注册表中需要找到【HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersion】,分别打开ProgramFilesDir和ProgramFilesDir (x86)的项,分别修改值为D:Program Files 和 D:Program Files (x86)。

批注 2022-07-03 215115.png
批注 2022-07-03 215752.png

4 . 正常安装软件(Bindizip)的时候默认路径就会改变

批注 2022-07-03 215910.png

3. 重装win10系列

  1. mbr修改gpt,采用uefi引导启动
  2. 激活Win10系统
  3. 修改Users目录至D盘
  4. 修改系统软件默认安装路径
  5. 安装所需软件

TensorFlow: 环境安装(win+python+TensorFlow+CUDA+CUDNN)


需求

在家呆的时间打算学习一下AI,在网上查了挺多机器学习的,最后选择了TensorFlow。主要目的是给自己生成一套神经网络,留着以后用。

基础

本身电脑Win10 1660显卡一张。

环境

Python: 3.8.1
TensorFlow-GPU: 2.6.0
CUDA: 11.4.1
CUDNN: 11.4

环境安装过程

  1. Python

python是开发人员的必备品,已经安装过了,这里就不做介绍了,自行百度。

  1. TensorFlow-GPU

开源的计算机学习平台,安装比较简单,python下的pip可直接安装:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade tensorflow-gpu

命令解析:

pip python包管理器
install 安装
-i 临时指定安装源,这里选的是清华的源,要不下载太慢
--upgrade 顺带更新
tensorflow-gpu 软件包名称

微信图片_20210905193133.png
微信图片_20210905193204.png

然后尝试使用tensorflow,python命令行模式下引入此库。

import tensorflow as tf

没有安装CUDA和CUDNN的情况下会出现报错,如下图:
微信图片_20210905193427.png

  1. 安装CUDA
    进入英伟达开发者中心下载:CUDA Toolkit Archive阿里云盘

下载后点击会先把安装文件解压到指定目录,之后才会真正的安装。

安装图示:
微信图片_20210905193821.png
微信图片_20210905193826.png

  1. 安装CUDNN
    进入英伟达开发者中心下载:cuDNN Archive

下载后需要解压到CUDA的安装目录中。
微信图片编辑_20210905194212.jpg

  1. 环境变量配置
    右键此电脑-》高级系统设置(右边小字)-》高级-》环境变量-》系统变量Path

微信图片编辑_20210905195206.jpg

检查变量

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.4\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.4\libnvvp
C:\Program Files\NVIDIA Corporation\Nsight Compute 2021.2.1\
// C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.4\lib\x64

头三个是安装完CUDA时候自动添加,最后一个需要手动添加
微信图片编辑_20210905195350.jpg

最后所有环境处理完毕,入门就是Hello World

代码:

import tensorflow.compat.v1 as tf   #解决 module ‘tensorflow’ has no attribute ‘Session’
#import tensorflow as tf

tf.compat.v1.disable_eager_execution()  #解决报错:runtimeerror: the session graph is empty. add operations to the graph before calling run()
hello = tf.constant('Hello world')

sess = tf.Session()

with tf.Session() as sess:
    print(sess.run(hello).decode())

sess.close()

微信图片编辑_20210905201356.jpg


linux查看进程占用网速和流量使用情况


有三个命令vnstat、iftop、nethogs(推荐)

都需要额外安装软件 使用yum或apt-get

一、vnstat使用,查看接口统计报告

vnstat -i eth0 -l #实时流量情况
微信图片编辑_20210728234545.jpg
还有其他命令使用--help查看

ctrl+c结束后,会显示监控期间的流量统计结果
微信图片编辑_20210728234632.jpg

二、iftop使用,检查带宽使用情况

iftop可以用来监控网卡的实时流量(可以指定网段)、反向解析IP、显示端口信息等

命令用法:

-i设定监测的网卡,如:# iftop -i eth1

-B 以bytes为单位显示流量(默认是bits),如:# iftop -B

-n使host信息默认直接都显示IP,如:# iftop -n

-N使端口信息默认直接都显示端口号,如: # iftop -N

交互命令:

按n切换显示本机的IP或主机名;

按s切换是否显示本机的host信息;

按d切换是否显示远端目标主机的host信息;

按t切换显示格式为2行/1行/只显示发送流量/只显示接收流量;

按N切换显示端口号或端口服务名称;

按S切换是否显示本机的端口信息;

按D切换是否显示远端目标主机的端口信息;

按p切换是否显示端口信息;

使用截图:
微信图片编辑_20210728234748.jpg

三、nethogs使用,按进程实时统计网络带宽利用率(推荐)

命令用法:

1、设置5秒钟刷新一次,通过-d来指定刷新频率:nethogs -d 5

2、监视eth0网络带宽 :nethogs eth0

3、同时监视eth0和eth1接口 : nethogs eth0 eth1
交互命令:
以下是NetHogs的一些交互命令(键盘快捷键)
m : 修改单位
r : 按流量排序
s : 按发送流量排序
q : 退出命令提示符

使用截图:
微信图片编辑_20210728234327.jpg


GIT:在 A 项目中引用 B 项目


背景

项目中经常使用别人维护的模块,在git中使用子模块的功能能够大大提高开发效率。

使用子模块后,不必负责子模块的维护,只需要在必要的时候同步更新子模块即可。

本文主要讲解子模块相关的基础命令,详细使用请参考man page。

子模块的添加

添加子模块非常简单,命令如下:

git submodule add <url> <path>

其中,url为子模块的路径,path为该子模块存储的目录路径。

执行成功后,git status会看到项目中修改了.gitmodules,并增加了一个新文件(为刚刚添加的路径)

git diff --cached查看修改内容可以看到增加了子模块,并且新文件下为子模块的提交hash摘要

git commit提交即完成子模块的添加

子模块的使用

克隆项目后,默认子模块目录下无任何内容。需要在项目根目录执行如下命令完成子模块的下载:

git submodule init
git submodule update

或:

git submodule update --init --recursive

执行后,子模块目录下就有了源码,再执行相应的makefile即可。

子模块的更新

子模块的维护者提交了更新后,使用子模块的项目必须手动更新才能包含最新的提交。

在项目中,进入到子模块目录下,执行 git pull更新,查看git log查看相应提交。

完成后返回到项目目录,可以看到子模块有待提交的更新,使用git add,提交即可。

删除子模块

有时子模块的项目维护地址发生了变化,或者需要替换子模块,就需要删除原有的子模块。

删除子模块较复杂,步骤如下:

rm -rf 子模块目录 删除子模块目录及源码
vi .gitmodules 删除项目目录下.gitmodules文件中子模块相关条目
vi .git/config 删除配置项中子模块相关条目
rm .git/module/* 删除模块下的子模块目录,每个子模块对应一个目录,注意只删除对应的子模块目录即可
执行完成后,再执行添加子模块命令即可,如果仍然报错,执行如下:

git rm --cached 子模块名称

完成删除后,提交到仓库即可。