常用工具介绍

操作系统

  • 特殊的计算机程序(软件),控制着电脑(硬件),连接用户和资源,资源包括CPU、硬盘、内存、打印机等
  • 当用户需要执行程序,操作系统必须要分配内存空间来下载和访问程序;当程序执行时,允许它访问CPU;在一个时间共享的系统中,通常有几个程序需要同时访问CPU

UNIX

Linux

  • 查看内核版本: uname -a
  • CPU相关
    • cpu型号:cat /proc/cpuinfo | grep 'model name' | sort | uniq,输出如model name : Intel(R) Xeon(R) Gold 5120 CPU @ 2.20GHz
    • cpu颗数/物理cpu数目:cat /proc/cpuinfo | grep 'physical id' | sort | uniq | wc -l,输出一般为2
    • cpu的核心数/一颗CPU上面能处理数据的芯片组的数量:cat /proc/cpuinfo | grep 'cores' | uniq | awk '{print $4}',输出为14
    • 逻辑cpu核数(=物理cpu数量 x cpu cores 这个规格值 x 2(如果支持并开启超线程)):cat /proc/cpuinfo | grep 'processor' | wc -l,输出为56
  • GPU
    • 查看服务器中GPU信息: nvidia-smi;用这个命令判断哪几块GPU空闲。Memory Usage是显存占用;GPU利用率;每个进程占用的显存。
      • 显存占用和GPU占用是两个不一样的东西,显卡是由GPU和显存等组成的,显存和GPU的关系有点类似于内存和CPU的关系
    • 动态实时监控GPU的使用情况:watch --color -n1 gpustat -cpu
      • watch -n 0.1 nvidia-smi
    • 查看cuda版本: nvcc --version
    • 若在一块GPU上运行程序出现显存不足的情况,可采取减小batch_size的措施
  • 设别空间: 在linux中设备空间有两个条件决定的:硬盘容量和inode
    • 硬盘容量即硬盘可用容量
    • inode即索引节点编号(记录文件的大小,拥有者,权限,区块地方等信息,可以通过stat命令查看),每个分区中都会有固定大小的inode容量,每个inode节点也会占用硬盘空间,一般是128字节或256字节,inode节点的总数,在格式化时就给定,一般是每1KB或每2KB就设置一个inode,要查看各分区的inode情况可以通过 df -i 查看
    • 硬盘与inode其中一项超额就会造成设备上没有空间异常错误
    • df -h:判断硬盘满,发现有占用率达100% 就可以断定该分区满了。df -ia:判断inode满,发现有占用率达100%就可以断定该分区碎片文件超多
    • 硬盘满了一般删除不要的临时文件,清空日志文件等不需要的文件即可(最好同时看下inode使用情况)
    • inode满了一般就是垃圾小文件越多造成的,linux下有很多服务会生成日志文件,如果处理不当,几年下来删除都是个头痛事(上万文件后 rm 使用就困难,甚至rm无法全部删除)
    • du -sh *可以查看当前目录下每个文件夹的大小,而ls -lh 可查看文件的大小
  • Linux文件系统:也可以理解为目录拓扑,每个目录下都可以存放文件,但是每个目录下文件存放的磁盘可以不同
    • 每个设备都叫一个文件,指定文件系统中某个目录到某个设备就叫挂载,而这个目录就叫挂载点
  • Linux终端运行sh文件: bash xxx.sh

Linux常用命令

wget
  • 下载文件: wget+网址
    • -O以不同的文件名保存
    • -c断点续传
    • -b进行后台下载
    • -i下载多个文件(将多个URL写到一个txt文件中)
scp
  • 从本地上传内容到远程服务器:scp - r path_of_local_file remote_path
    • 其中remote_path的格式为:name@ip:path
    • 例如: scp -r ... yaoqf@10.101.168.234:yaoqingfeng/Code-Repository/...
    • 若有端口号可不用写
tar
  • 解压: -zxvf xxx.tar.gz,其中z表示有gzip属性的,x表示解压,v表示显示所有过程
  • .bz2结尾的文件是bzip2压缩的结果;tar命令使用-j这个参数来调用gzip压缩或者解压缩.tar.bz2
    • 如压缩: tar -cjf images.tar.bz2 ./images/;解压缩: tar -xjf images.tar.bz2
  • 解压: unzip xxx.zip
    • 压缩文件.zip是大于2G的,那unzip就无法使用了
  • 文件单以gz结尾的,解压使用gzip -d+压缩文件名
    • -d表示解开压缩文件
git
  • 一个分布式的代码版本管理工具,类似的常用工具还有SVN、CVS
    • Git 有一个本地仓库的概念,提交代码首先是提交到本地仓库,然后再执行push命令后,才会真正push到远端的仓库。这点和svn有极大的不同
  • git准备工作
    • 设置用户名与邮箱:git config --global user.name "My Name";git config --global user.email "my@email.com"
      • 上面设置命令中带了“--global"参数,是全局配置,影响本机上所有的git项目。也可以对一些单独的项目进行设置,进入要设置的项目目录,进行设置:git config user.name "My Name"/git config user.email "my@email.com"/查看配置:cat .git/config
    • 生成和添加 SSH Keys:由于git 也是客户端,服务端的模式,要想客户端可以和服务端通信,必须在客户端生成一个key(SSH Keys),然后添加到服务端去
  • 取消暂存(即已经git add但还未git commit):git restore --staged ...
  • 分支
    • git branch 会列出你本地分支,-a显示所有分支,包括本地和远程分支
      • git branch -r:列出所有远程分支
    • git branch -m :重命名本地分支
    • git remote show origin:查看远程分支和本地分支的对应关系
    • git push origin --delete remote-branchname:删除远程分支
      • git remote prune origin:远程删除了分支本地也想删除
      • 如果你还在一个分支上,那么 Git 是不允许你删除这个分支的。所以,请记得退出分支:git checkout master
      • 删除本地分支:通过 git branch -d 删除一个分支;当一个分支被推送并合并到远程分支后,-d 才会本地删除该分支。如果一个分支还没有被推送或者合并,那么可以使用-D强制删除它
    • 切换到了 testing 分支: git checkout testing
    • git checkout -b (branchname) 命令来创建新分支并立即切换到该分支下/直接继承前一个分支下的内容(当然可以在新分支名后加上要继承的代码分支名); git push origin branchname
    • git checkout -:快速切换到上一个分支
  • git clone git@... 出现问题permission denied fatal could not read from ... access rights repository exists host authenticity not established RSA key continue connect
    • 解决: github点击头像设置SSH key,将要下到地方的ssh key加到资源的库中
    • ssh-keygen -t rsa -C "your_email@example.com",然后将id_rsa.pub中的内容添加
  • git diff: 输出工作区和暂存区的不同
    • git diff --cached: 展示暂存区和最近版本的不同
    • git diff HEAD: 展示暂存区、工作区和最近版本的不同
    • git diff : 展示本地仓库中任意两个 commit 之间的文件变动
  • git config --list --show-origin: 查看所有的配置以及它们所在的文件
    • git config --global user.name "Your Name"
    • git config --global user.email you@example.com
    • 当没有配置上述两项,则会提示git config --global --edit进行编辑,格式如下:[user] name = email =
    • git config user.name # 查看用户名
    • git config user.email # 查看邮箱
  • git log: 查看日志(commit信息)
    • 在Git中,HEAD表示当前版本,HEAD^表示上一个版本,HEAD^^表示上上一个版本,往上100个版本可以写成HEAD加连续100个^,也可以写成:HEAD~100
    • git log --pretty=oneline:将只会显示提交的commit id号和对应的注释
  • git reset --hard 版本 # 回到之前的版本,版本回退
  • git ls-files -t:展示所有 tracked 的文件
    • git ls-files --others:展示所有 untracked 的文件
  • git remote:列出所有远程仓库
  • git push/git clone出现问题:kex_exchange_identification: Connection closed by remote host/fatal: 无法读取远程仓库。请确认您有正确的访问权限并且仓库存在。
    • 调试:ssh -v git@github.com
    • 尝试连接到github:ssh -T git@github.com
    • 一般是服务器的问题,需要登一下网关: curl -s http://gw.bupt.edu.cn/login --data "user=2019110633&pass=Yaofen1996&line=",涉及校园网的账户和密码;有时没有奏效需要等待一段时间再试
      • 如果一直不行就是github问题了(服务器20171是http代理端口,可以git clone时设置一下代理转发,参考链接,指令后面那个domain改成localhost:20171)
  • github展示图片: 需要上传图片,使用格式![DATE train overview](resources/date_train.png)进行引用
conda
  • linux上安装:miniconda-->64位/python3.7,参考链接
  • 创建conda环境:conda create -n env_name python=...
  • 删除conda环境:conda remove -n old_name --all
  • 克隆环境:conda create -n new_name --clone old_name
  • 查看当前有多少个环境:conda info -e
  • If you'd prefer that conda's base environment not be activated on startup, set the auto_activate_base parameter to false: conda config --set auto_activate_base false
tmux
  • 翻页: 先按ctrl+b+[进入翻页模式,然后使用上下箭头可进行上下行的移动翻页;若要多行快速翻页,可使用fn+command加上上下键共同执行
  • tmux ls:罗列会话
  • tmux kill-session -t 0: 杀死会话,0表示会话编号

MacOS

  • 电脑出现黑屏,按住shift+ctrl+option和开机键,按住几秒后松开,等待一会即可

编程工具

VSCode

  • 文件内查找:command+f
    • shift+command+X: 打开插件搜索;shift+command+P: 打开命令搜索
    • 点击在path中安装code命令
  • command+,: 进入设置界面
  • 双击文件即可进入编辑模式
  • 设置可通过文件-首选项(preferences)-设置进入,也可通过shift+command+P输入setting,选择json那一项
  • 编码设置:文件-首选项(preferences)-设置-在搜索栏输入 Files: Auto Guess Encoding,勾选
    • 如果没有效果,就直接修改Files: Encoding;一般就直接修改不去勾选,有时自动识别会出错
    • 不要随便下载一些不相关的插件,如GBK2UTF
    • 当打开文件,其内容中文乱码时,不要Ctrl+S保存文件。因为那样会保存乱码,使其无法恢复中文
  • 在终端打开vscode:通过shift+command+P打开命令面板,然后键入以找到shell命令:shell command
    • 如果重启后失效,则需要先uninstall再install
  • vscode中打开ipynb文件显示json格式: 可将python插件删除再重装
  • vscode连服务器:
    • 免密登录:将本地的公钥上传至服务器的.ssh文件夹下,命名为authorized_keys

jupyter

  • 在ipynb文件中运行终端命令只要在命令前加!即可,如!pip install ...
  • 模块重载: 有时候我们需要重新import之前已经导入的模块,代码已经跑了一半了?重启?那是不可能的。在启动jupyter第一个cell运行下面代码(
    %load_ext autoreload
    %autoreload 2),就可以在notebook外改模块代码啦,notebook会自动重载的
  • 把几个notebooks合并: 安装个nbmerge就可以merge notebook了
    • pip install nbmerge
    • nbmerge file_1.ipynb file_2.ipynb file_3.ipynb > merged.ipynb
  • 遇到提示:abc_code.ipynb notebook is not trusted
    • 说我们notebook不被信任,导致notebooks无法导出,因此只需要一行代码就可以解决这个问题:jupyter trust file1.ipynb
  • 想看你代码跑了多久?: 不用导入time模块,只要像下面加行代码即可:
    • 一行代码:%time my_list = [x for x in all_items]
    • 多行代码: %%time
      my_list = [x for x in all_items]
      with open('a.txt') as f:
      '''do something'''
  • 换主题
    • pip install jupyterthemes
    • 安装完查看下有哪些主题: jt -l
    • 选择个主题:jt -t theme_name
    • 然后重启即变换主题
    • 参考链接

办公工具

word

  • 分栏:首先不分,之后全部分为两栏,再之后根据内容需要调整为单栏或多栏

posted on 2021-05-13 15:22  锋上磬音  阅读(243)  评论(0编辑  收藏  举报