linux系统指令
win powershell ssh远程登录
ssh -p [port] user@host
# ssh -p 22140 simpleai@192.168.101.88
~/ :/home/name/
创建、删除、移动、拷贝、重命名文件夹/文件
创建文件
touch my.txt
创建文件夹
mkdir dirname1 dirname2...
删除文件
rm [-i 删除前逐一询问确认;
-f 直接删除;
-r 将目录及之下的所有文件逐一删除] * .zip
复制文件/文件夹
cp [-a 所有文件;
-f 强制;
-i 若目标文件destination已存在,在覆盖前会先询问是否真的操作;
-r 递归复制] source destination
cp t.txt test
cp -r test2 test3
移动文件夹
# mv souce destination
mv test1/ test2/
文件重命名
mv filename new_filename
mv test1 test2 #将文件test1重命名为test2
修改文件权限(读、写、执行)
ls -la #查看目录下所有文件及属性,r=1,w=3,x=4
chmod +x test.sh
chmod 777 test.sh
修改文件夹用户归属
sudo chown -R root:root filename
创建tar.gz压缩文件
tar -zcvf test1.tar.gz test1 #将test1文件压缩
tar.gz解压、zip文件解压
tar -zxvf test1.tar.gz
在使用zip之前需要看一下zip是否安装
未安装需要apt install 安装
sudo apt install zip
#这边补充安装git lfs,当git项目中需要传入数据集等大文件时以lfs的形式传入
sudo apt install git-lfs
sudo apt update #注意谨慎使用apt upgrade,可能会导致各个包版本不匹配等问题
git lfs install
- tar.gz 解压
tar -zxvf test1.tar.gz
-zip解压
zip -r test1.zip test1
####补充####
git lfs track "*.zip" #产生.gitattributes文件
cat .gitattributes
#后面接git add,git commit,git push
###
unzip test1.zip
查看当前所在路径
print work directory
pwd
查看网络配置
ifconfig
查看历史输入命令
history
动态查看日志文件(tail)
tail 命令可用于查看文件的内容,有一个常用的参数 -f (folow)常用于查阅正在改变的日志文件。-n显示文件尾部n行。
tail -f log.txt
tail -n 10 log.txt
这个指令在训练过程中,用来查看训练进程很有效0。
- 运行 .py文件
python3 train.py >> log.txt #将train.py中print输出输出到log.txt,而不是在终端显示出来,这样终端就可以关掉,而训练继续进行,要查看训练进程直接tail就行
tail -f log.txt
- 在程序中加入sys.stdout设置日志文件的程序块
import time
#定义全局变量
public_para={"is_log_handle":True,
"log_file":"./log.txt"}
#用sys.stdout标准输出将控制台所有信息输出打印到文件
if public_para["is_log_handle"]:
sys.stdout=open(public_para["log_file"], "a")
#程序开始时间非必要
start_time = time.strftime("%Y-%m-%d %a %H:%M:%S", time.localtime(time.time()))
print(f"[{start_time}]:program starting")
- 一次性输出打印查看文件内容(cat)
-ubuntu安装软件包/卸载软件包
python3安装软件包/卸载软件包
pip3 list
pip3 install zip
pip3 uninstall zip
大名鼎鼎sudo
sudo apt-get update
sudo apt-get install python
sudo apt-get install g++
- 报错
ps -aux
kill -9 3809
-ssh远程登陆服务器
-scp远程拷贝文件/文件夹
-测试ip连通性
-查找文件
查看进程
ps -ef
-查看内存/磁盘/cpu使用率
查看显卡使用情况
watch -n 0.5 nvidia-smi
vim操作
vi/vim filename 直接新建并进入
命令模式
i切换到输入模式,以输入字符
x删除当前光标所处在处的字符
:切换到底线命令模式
输入模式
编辑文本
Esc退出输入模式,回到命令模式
底线命令模式
q 退出程序
w保存文件
-关键字查找
-撤销/反撤销
-显示行号
-批量注释/反注释
-复制/粘贴/剪切/删除
-其他插件
git命令
创建本地仓库、关联远端仓库(SSH)
注意一个新的容器进行关联的时候,需要生成SSH key:
cd
cd .ssh
la (查看是否有钥)
ssh-keygen(产生密/公钥;中间没有空格)
cat id-rsa.pub(<kbd>Ctrl+c</kbd>粘贴到git SSHkey)
由于一个ssh key只能连接到一个git账户连接。
###未成功啊啊啊啊,需要帮助#####
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
在git添加完密钥以后,初始化git
git init
git status #查看git的状态(文件变化情况,有没有commit等)
git remote add origin < url > #<url>为项目地址
clone远端仓库
注意此处clone,需要删除该文件下的.git文件,才能保证之后push不出错,当然也可以采用submodule的方法
git clone < url >
添加submodule
运行后默认将submoule clone到当前目录,产生.gitmodules文件
git submodule add < url >
推送代码
git add . #空的文件夹,.gitgnore中的文件不会被tracked
git commit -m "..."
git push -u origin *master*
git push 常见错误
1.please tell us who you are
1. 若出现以下错误,要打开.git中的config添加
[user]
email=xxx@xx.com
name=xxxx
2. ! [rejected] master -> master (fetch first)
为远程与本地版本不匹配问题,运行*
git pull --rebase origin master
新建分支/切换分支
注意在commit之后再修改分支
git branch develop #新建develop分支
git checkout develop #切换到develop分支
git branch #查看当前分支状态
忽略提交文件
如果已经add完,那么单单更新 .gitignore是无法删除已经被tracked的文件的,此时需要:
1.清除git cached
2.更新.gitignore
3.add ->push
即:
git status
git rm --cached -r .
vim .gitignore
git add .
git commit -m "Update .gitignore"
lfs 大文件
sudo apt install zip
sudo apt install git-lfs
sudo apt update
git lfs install
git init
git remote add origin @
zip -r data.zip data
git lfs track src/*.zip ## 显示: tracking “src/data.zip”
cat .gitattributes
git add .
git commit -m "Add:dataset"
git push -u origin master
用脚本从gitlab上clone
ssh-keygen
cat ~/.ssh/
cat ~/.ssh/id_rsa.pub
#将ssh key粘到git
touch download.sh
vi download.sh
在download.sh中写入
#!/bin/bash
cd model/images/
git lfs clone -b develop ssh://git@192.168.101.88:8022/model/images/darknet.git
git lfs clone -b develop ssh://git@192.168.101.88:8022/model/images/densenet.git
:wq保存退出,在终端运行.sh文件
chmod +x download.sh
#赋予dowload.sh文件执行的权力
./download.sh