当前位置:   article > 正文

深度学习使用服务器Linux常用命令_深度学习服务器怎么用

深度学习服务器怎么用

Github学习记录:

一、会用到的操作

1.ls 或者 dir 查看文件内容
ls xxx(路径) 查看这段路径的文件
dir -h 显示隐藏文件夹

2.进文件夹
Windows PowerShell:
cd c: 转文件(按Tab键补全文件名字)
如果是用cmd命令:进入各种盘:直接d: 不要加cd
cd 转文件路径,如果打开一个gif啥的好像不用cd, 直接输入相关的文件名

3.git init 初始化文件

4.cls 清空所有的操作

5.cd …返回上一个

6.mkdir xxx 创建文件

7.del xxx 删除文件

8.git status 查看状态

9.git branch 查看分支

10.git remote -v 查看分支情况

11.git remote remove 分支名 移除分支

二、(虚拟仓库)

1.创建虚拟仓库:

(https://www.csdn.net/).

2.进入自己创建的虚拟仓库

在这里插入图片描述

3.标题复制自己仓库的网址:

在这里插入图片描述

4.通过Window PowerShell or 直接创立一个新的文件

5.打开到所创立的文件的路径,git init 初始化

6.输入git remote add xxx(某个文件名,一般叫origin) + GitHub虚拟仓库的网址

(如果是第一次使用GitHub则需要如下操作:
git config --global user.name “Fly-Pluche” (GitHub文件名)
git config --global user.email “527212878@qq.com” (GitHub创建时候所用的邮箱)

7.使用echo(回声):

echo “# learning-git” >> README.md(创立一个“README.md”,并且将# learning-git这段话存到其中)

8.git add ––all(将所有东东提交上虚拟仓库)

再输入 git status 查看状态
如果绿了,就代表success

9.git commit -m”xxx”(创建备注)

在这里插入图片描述

10.git push xxx master(这里的xxx与上面输入网址的那段操作时,所创立的文件名字一样such as :origin)

注意,其中的master是分支名字,也可以改。
正确输入后,回车,然后就是等待上传,转转转转。
If 成功,既出现success
else 失败。

11.如果看不懂是否创建成功的话,就进入GitHub 中查看自己创立的虚拟仓库是否成功。

更新远程仓库

cd到你想要的某个文件夹

在这里插入图片描述

clone

把要更新的文件夹拉取下来
git clone https://github.com/Have/U2(仓库地址)

cd进仓库文件夹

cd U2

建立远程连接

git remote add origin https://github.com/Have/U2(仓库地址)

pull拉取

git pull origin main(branch分支名)

把你改动的东西拉到你clone的仓库里面

把你本地仓库添加到缓存区

git add --all

添加备注

git commit -m"heihei"

上传

git push origin main(分支名)

创建分支

法一:
git branch +name
创建一个叫name的分支
创建好了之后,其实并没有指向这个新分支,你需要使用
git checkout name
切换到这个分支

法二:
git checkout -b name
创建分支并指向

修改commit

来自:https://github.com/uolcano/blog/issues/12

1.修改最近一次的commit

git commit --amend
  • 1

然后会进入一个文本编辑器界面,修改commit的描述内容,即可完成操作。
退出amend 先按一下Esc退出编辑,然后连续按两次ZZ(大写的)

修改提交的文件

git add <filename> # 或者 git rm
git commit --amend # 将缓存区的内容做为最近一次提交
  • 1
  • 2

2.修改任意提交历史位置的commit

可以通过变基命令,修改最近一次提交以前的某次提交。不过修改的提交到当前提交之间的所有提交的hash值都会改变。
变基操作需要非常小心,一定要多用git status命令来查看你是否还处于变基操作,可能某次误操作的会对后面的提交历史造成很大影响。

首先查看提交日志,以便变基后,确认提交历史的修改

git log
变基操作。 可以用commit~n或commit^这种形式替代:前者表示当前提交到n次以前的提交,后者符号越多表示的范围越大,commit可以是HEAD或者某次提交的hash值;-i参数表示进入交互模式。

git rebase -i
以上变基命令会进入文本编辑器,其中每一行就是某次提交,把pick修改为edit,保存退出该文本编辑器。

**注意:**变基命令打开的文本编辑器中的commit顺序跟git log查看的顺序是相反的,也就是最近的提交在下面,老旧的提交在上面

**注意:**变基命令其实可以同时对多个提交进行修改,只需要修改将对应行前的pick都修改为edit,保存退出后会根据你修改的数目多次打开修改某次commit的文本编辑器界面。但是这个范围内的最终祖先commit不能修改,也就是如果有5行commit信息,你只能修改下面4行的,这不仅限于commit修改,重排、删除以及合并都如此。

git commit --amend
接下来修改提交描述内容或者文件内容,跟最近一次的commit的操作相同,不赘述。

然后完成变基操作

git rebase --continue
有时候会完成变基失败,需要git add --all才能解决,一般git会给出提示。

再次查看提交日志,对比变基前后的修改,可以看到的内的所有提交的hash值都被修改了

git log
如果过了一段时间后,你发现这次历史修改有误,想退回去怎么办?请往下继续阅读

3.重排或删除某些提交

变基命令非常强大,还可以将提交历史重新手动排序或者删除某次提交。这为某些误操作,导致不希望公开信息的提交,提供了补救措施

git rebase -i
如前面描述,这会进入文本编辑器,对某行提交进行排序或者删除,保存退出。可以是多行修改。

后续操作同上。

4.合并多次提交

非关键性的提交太多会让版本历史很难看、冗余,所以合并多次提交也是挺有必要的。同样是使用以上的变基命令,不同的是变基命令打开的文本编辑器里的内容的修改。

将pick修改为squash,可以是多行修改,然后保存退出。这个操作会将标记为squash的所有提交,都合并到最近的一个祖先提交上。

**注意:**不能对的第一行commit进行修改,至少保证第一行是接受合并的祖先提交。

后续操作同上。

5.分离某次提交

变基命令还能分离提交,这里不描述,详情查看后面的参考链接

6.终极手段

git还提供了修改版本历史的“大杀器”——filter-branch,可以对整个版本历史中的每次提交进行修改,可用于删除误操作提交的密码等敏感信息。

删除所有提交中的某个文件

git filter-branch --treefilter ‘rm -f password.txt’ HEAD
将新建的主目录作为所有提交的根目录

git filter-branch --subdirectory-filter trunk HEAD

Fork后的相关操作

前提:fork了大佬的仓库到自己仓库
然后大佬更新了仓库,我们也需要更新我们本地fork的仓库

  1. 打开cmd ,cd到本地的仓库文件下

  2. git remote -v(查看本地情况)

在这里插入图片描述

我们发现,还是origin,也就是之前我们pull下来时名字。

  1. 建立连接

    git remote add corona(可以自己改名字) git@github.com:corwork.git

  2. git remote -v
    在这里插入图片描述

  3. 将corona的主分支pull下来

    git pull corona master

版本回退

得到过去信息
git reflog
在这里插入图片描述
git reset --hard [id you wanna roll back]
git reset -mixed [id]

在这里插入图片描述

https://www.jianshu.com/p/c2ec5f06cf1a

在这里插入图片描述

可能会遇到的bug

1.merge冲突?
在这里插入图片描述
解决:https://blog.csdn.net/nakiri_arisu/article/details/80259531

2.! [rejected] master -> master (fetch first)
在这里插入图片描述

本次出现这个错误是因为本地提交了commit但是未push成功,所以使用git pull --rebase,由于远程仓库和本地的commit有冲突,Git无法自动解决冲突时,会切换到一个匿名分支,然后使用git branch发现报错“no branch, rebasing master”。

解决办法:
在当前匿名分支下,使用命令git add * 然后使用git rebase --continue,可以将代码合并到之前操作时的分支(我当时是在master分支所以后面都说master分支),执行完后就自动回到了master分支,但是之前提交的commit没有在本地仓库区(Repository)了,回到了本地暂存区(Index / Stage),这时候需要重新commit,之后再执行git push origin master就可以将变更推到远程仓库了。

 git pull origin master --rebase
 git add .
 # 然后会进入一个vim的界面 直接:wq保存并退出
 git rebase --continue
  • 1
  • 2
  • 3
  • 4

执行完git rebase --continue后就自动回到了master分支,但是之前提交的commit没有在本地仓库区(Repository)了,回到了本地暂存区(Index / Stage),这时候需要重新commit,之后再执行git push origin master就可以将变更推到远程仓库了。

git commit -m ""
git push origin master
  • 1
  • 2
  1. this exceeds GitHub’s file size limit of 100.00 MB

在这里插入图片描述
上传的文件不允许超过100MB。。

从缓冲区中删除某个文件
git rm --cached .\1.mp4
从缓冲区中删除某个目录
git rm -r --cached .\video
git commit --amend 删除对应文件
最后:
git commit -m ‘delete remote somefile’
git push

解决git push时发现有超过100M的文件时,删除文件后,发现还是提交不上去的问题
参考https://www.cnblogs.com/JsonZhangAA/p/9807046.html

在这里插入图片描述

  1. branch 切换导致push问题

https://blog.csdn.net/weixin_41287260/article/details/89742151

配置SSH

自行搜索 GitHub 配置ssh key

一个连续git命令的网站 https://learngitbranching.js.org/?demo=&locale=zh_CN

服务器上使用git(巨好用)

First Step :得到token
在这里插入图片描述

Second Step:
git config --local user.name “Fly-Pluche”
git config --local user.email “527212878@qq.com”

Test:ssh git@github.com
The authenticity of host ‘github.com (207.97.227.239)’ can’t be established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘github.com,207.97.227.239′ (RSA) to the list of known hosts.
ERROR: Hi tekkub! You’ve successfully authenticated, but GitHub does not provide shell access
Connection to github.com closed.

Finally:
git remote add origin https://token@github.com/Fly-Pluche/**.git

服务器上使用git(一般般好用)

在Docker的服务器上按上面的方法配置过一次后,push的时候一直是百分0,不知道为什么,以下为另一个种方式:

  1. git配置全局的name和email
git config --global user.name "name"  #name改为你github的名字
git config --global user.email "email" #email换成自己注册的邮箱,保留双引号
  • 1
  • 2
  1. 创建秘钥
ssh-keygen -t rsa -C "email"
  • 1

然后可以一直回车

  1. setting token
    将生成的id_rsa.pub的内容全部粘贴上Github
    Settings -> SSH and GPG keys -> New SSH key

  2. Test:ssh git@github.com
    The authenticity of host ‘github.com (207.97.227.239)’ can’t be established.
    RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added ‘github.com,207.97.227.239′ (RSA) to the list of known hosts.
    ERROR: Hi tekkub! You’ve successfully authenticated, but GitHub does not provide shell access
    Connection to github.com closed.

环境打包

  1. 打包环境指令
//进入一个环境
conda activate base
// 安装 conda-pack
pip install conda-pack
//如果无法安装使用whl
pip install /HOME/HOME/some_packages/conda_pack-0.7.1-py2.py3-none-any.whl

// 打包
    conda pack -n <环境名字> 
//当前路径下(pwd)找<环境名字.tar.gz>
##报错

#CondaPackError: Cannot pack an environment with editable packages
#installed (e.g. from `python setup.py develop` or
#`pip install -e`). Editable packages found:

#解决方案
加上--ignore-editable-packages
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  1. 安装打包的环境
// 将压缩包复制到conda/envs路径下
cp ./环境名字.tar.gz <自己的conda/envs>
mkdir <环境名字> 
tar -xzf ./<环境名字.tar.gz> -C ./<环境名字>
conda activate <环境名字>
  • 1
  • 2
  • 3
  • 4
  • 5

tmux && Screen

Screen 参考

screen -S yourname           # 新建一个叫yourname的session
screen -ls                   # 列出当前所有的session
screen -r yourname           # 回到yourname这个session
screen -d yourname           # 远程detach某个session    # detach快捷键 ctrl a + d
screen -d -r yourname        # 结束当前session并回到yourname这个session
screen -S yourname -X quit   # 删除叫yourname的session
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

恢复会话
screen -r session_name

如果不能恢复:
对于已经Attached Session则不能直接screen -r,需要先screen -d,然后才能screen -r
用screen -ls可以查看所有的session的状态

先 screen -d session_name
再 screen -r session_name

Tmux:

https://www.cnblogs.com/lovesKey/p/6741141.html
https://www.ruanyifeng.com/blog/2019/10/tmux.html

tmux kill-session -t session-name

遇到窗口缩放导致出现白点问题
先ctrl+b,然后打 :resize-window -A
to grow the window to the largest connected session.
Other useful parameters to resize-window (resizew) are:

-a: resize to the smallest session.
-U, -D, -L and -R: adjust up, down, left or right, respectively. Can be followed by a number, determining how much to grow (-D and -R) or shrink (-U and -L).
-x and/or -y set width and height to the given values.

Docker

在docker环境下出现死缓存,无法用nvidia-smi确认pid:

找到相关python 进程

ps aux | grep python
  • 1

查看相应PID对应的ENV

top | grep 101067
  • 1

然后按c
确认无误后:kill pid or kill -9 pid

Other

当前env的cudatoolkit版本
python -c “import torch;print(torch.version.cuda)”

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/394612
推荐阅读
相关标签
  

闽ICP备14008679号