Linux常用指令,Ubuntu虚拟机使用指南,Git工作流,Docker基本概念
Code
1 | #系统 |
Ctrl + R 搜索历史命令
Ctrl + Backspace 删除整个单词
多个语句可以通过;
分割 &&
表示上一句返回码0才会执行 ||
表示上一句返回码非0才会执行 ;
无论如何都执行
Ubuntu
1 | cat /proc/version #查版本信息 |
截图:1.screen截图应用程序 2.设置-设备-键盘-截图快捷键
单系统安装
下载:Ubuntu中文官网
安装:使用Rufus,创建启动盘
…
Debug
DELL主板,装系统进入时,报错ACPI Error,表示计算机上的ACPI与该版本的ubuntu不兼容。
1.在开机选中ubuntu时按e, 找到Linux…quite splash那一行,末尾加上acpi=off
2.成功开机后,更改grub 修改grub文件:sudo vim /etc/default/grub 把GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash”改为GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash acpi=off”
3.sudo update-grub
4.发现安装显卡驱动会报错,因为惠普主板的acpi模块和ubuntu兼容不好,需要把acpi=off配置改为noapic
装显卡驱动
1 | sudo apt upgrade # 更新所有可更新的软件包 |
Debug
执行nvidia-smi报错:Failed to initialize NVML: Driver/library version mismatch
NVML library version: 560.35
是Ubuntu自动更新导致NVIDIA 驱动与 NVML 库版本不匹配所致,重启可解决
最好关闭ubuntu自动更新:
1 | echo -e "APT::Periodic::Update-Package-Lists \"0\";\nAPT::Periodic::Download-Upgradeable-Packages \"0\";\nAPT::Periodic::AutocleanInterval \"0\";\nAPT::Periodic::Unattended-Upgrade \"0\";" | sudo tee /etc/apt/apt.conf.d/10periodic |
虚拟机
Virtual Box
Virtual Box + Ubuntu 20.04, 或18.04(速度慢则换镜像源)
新建 > 导入.iso镜像 > 配置(分4G内存,100G硬盘)
设置 > 共享文件夹 > 添加(自动挂载,固定分配)
设置 > 共享粘贴板、拖放 > 双向
挂载U盘:USB > USB设置 > 添加一个USB > 在ubuntu设备中勾选
Host 键:右ctrl,方向键上:获取上次的命令,Tab:自动补全Ctrl + alt + T
TerminalCtrl + H
显示隐藏文件
使用手机或其他USB设备提供网络
VirtualBox设置 > USB设备 > 添加对应的USB口 > 重新启动虚拟机 > 右上角网络 > 连接USB以太网
Debug:
VirtualBox安装 64位的Ubuntu系统,在安装时没有显示64位的Linux安装项: 1.CPU要是64位, 2.CPU开启了虚拟化 >进入BOIS > Security> Virtualization > Enable
还是不行则要查看Win10系统安装了自带的Hyper-V虚拟机是否占用了CPU虚拟化技术,将其卸载
VMware Workstation
共享文件夹:将你本地的那个共享的文件夹 右击>属性>共享>高级共享 (需要安装VMware Tools)
Debug:
Could not get lock /var/lib/dpkg/lock – open > 执行sudo rm -rf /var/lib/dpkg/lock
共享文件夹ubuntu中不显示 > 重新安装VMware tools (VMware Tools的介绍及安装方法)
共享剪切板失效:sudo apt-get install open-vm-tools-desktop
,然后重启
安装VMware Tools选项显示灰色 > 关闭虚拟机 > 在虚拟机设置分别设置CD/DVD、CD/DVD2和软盘为自动检测sudo apt-get install
failed > 换源
若打不开终端:系统设置修改语言后重新登陆
网络:虚拟机 > 设置 > 网络适配器 > NAT模式; 设置 > 虚拟网络编辑器 > 还原默认设置
连不上USB: Win键+R键打开“运行”程序,输入“services.msc”,点击开启VMware USB Arbitration Service服务,并设置为自动启动; 然后虚拟机 > 可移动设备 > 选择
VScode
vscode远程访问:1.安装remote插件 2.连接服务器ssh username@server-ip
3.connect,打开terminal
上传文件:vscode直接拖拽到目录
下载文件:右键download
vscode插件离线安装:如装python插件,直接进 marketplace 下好拖到扩展位置
快捷键
打开vscode左下角键盘快捷键设置,找到copy line down,即可查看当前默认快捷键为shift + Alt + ↓
,双击快捷键,输入自己想要的快捷组合,如Ctrl+D,然后回车即可设置自己的组合了
在文件夹中,终端输入code .
即可用vscode打开当前文件夹
1 | Ctrl + / #注释 |
网格布局:查看 > 编辑器布局 > 2x2 网格
vscode 文件标签栏多行显示:文件 > 首选项 > 设置 > workbench.editor.wrapTabs
插件:
- Prettier——自动化代码格式化工具,帮助保持代码的一致性和可读性。
- GitLens——查看git历史,快速定位代码作者
- Remote - SSH——远程连接服务器
- Chinese (Simplified) Language Pack for Visual Studio Code——中文语言包
调试代码是解决问题和优化代码的重要工具:
- 设置断点:单击行号左侧的空白区域,可以设置或取消断点。
- 启动调试会话:点击左侧的调试图标(或者使用快捷键F5),选择想要调试的环境(比如Node.js、Python等),然后启动调试会话。
- Run and Debug - Add configuration - .vscode/launch.json
Git
下载 Git,sudo apt-get install git
与 TortoiseGit 小乌龟配合使用可以少记很多指令,在目标文件夹右键可执行push、clone、commit等操作
主要流程
git clone <X>
// 到本地git checkout -b xxx
切换至新分支xxx,相当于复制了remote的仓库到本地的xxx分支上- 修改或者添加本地代码(部署在硬盘的源文件上)
git diff
查看自己对代码做出的改变git add .
上传所有代码至暂存区 也可把 . 换成指定文件git commit
可以将暂存区里更新后的代码更新到本地gitgit push origin xxx
将本地的xxx git分支上传至github上的git
如果在写自己的代码过程中发现远端GitHub上代码出现改变
git checkout main
切换回main分支git pull origin master(main)
将远端修改过的代码再更新到本地git checkout xxx
回到xxx分支git rebase main
我在xxx分支上,先把main移过来,然后根据我的commit来修改成新的内容
(中途可能会出现,rebase conflict –> 手动选择保留哪段代码)git push -f origin xxx
把rebase后并且更新过的代码再push到远端github上(-f –> 强行)- 原项目主人采用pull request 中的 squash and merge 合并所有不同的commit
远端完成更新后
git branch -d xxx
删除本地的git分支git pull origin master
再把远端的最新代码拉至本地
十分钟学会正确的github工作流,和开源作者们使用同一套流程
rebase和merge
branch 与 tag
1 | git tag/branch #查本地仓库所有的tag或branch -r:远程分支 -a:所有分支 |
常用命令
1 | git init [project-name] #新建一个目录,将其初始化为Git代码库 |
Docker
Docker
是一种开源的容器化平台,可以帮助开发者更高效地打包、部署和运行应用程序。它基于 Linux
容器(LXC)技术,通过将应用程序及其所有依赖项打包到一个容器中,从而消除了应用程序在不同环境之间迁移所面临的问题。使用Docker,开发者可以快速构建、测试和部署应用程序,减少了与操作系统和基础设施相关的问题,从而提高了开发、测试和发布的速度。
- 容器(Container)
容器是一种轻量级、可移植的、独立的环境,它包含应用程序及其所有依赖项。与传统的虚拟机不同,容器共享主机操作系统的内核,但具有隔离的用户空间。 - 镜像(Image)
镜像是一个只读的模板,用于创建容器。镜像包含了应用程序运行所需的一切,比如代码、运行时、库和环境变量等。镜像可以通过 Dockerfile 定义并构建。 - 仓库(Registry)
Docker 镜像存储在仓库中。Docker Hub 是一个公共的 Docker 镜像仓库,用户可以从中下载和上传镜像。你也可以设置私有仓库来存储公司内部的镜像。 - Docker 引擎(Docker Engine),Docker 引擎是一个客户端-服务器应用程序,包含以下主要组件:
- 服务器:一种长期运行的守护进程(dockerd),负责管理容器。
- REST API:用于与守护进程进行交互的接口。
- 客户端(Client):用户与 Docker 进行交互的命令行工具(docker)
- Dockerfile
Dockerfile 是一个文本文件,包含了一系列指令,用于构建 Docker 镜像。每一条指令都在镜像中创建一个新的层次。例如,FROM 指令指定了基础镜像,COPY 指令将文件复制到镜像中,RUN 指令执行命令。
1 | # Container |
Docker Compose
1 | #确保已经安装了 Docker 和 Docker Compose: |
Docker Registry
1 | #在训练服务器上启动 Docker Registry 服务容器: |
vscode使用docker
- 下载docker插件,Dev Containers插件
- 连接到 Docker 容器:点击左下角的绿色按钮,选择 “Attach to Running Container”。
- 连接后,VSCode将打开一个新的窗口,该窗口中包含了Docker容器的文件系统。在VSCode的资源管理器中,可以直接操作和管理容器中的文件。
Debug
1.VSCode连接docker失败 Failed to connect. Is docker running?:
sudo chmod 777 /var/run/docker.sock
2.could not select device driver “” with capabilities: [[gpu]] ,是NVIDIA Docker 组件未安装:
sudo apt-get update
sudo apt-get install -y nvidia-docker2
sudo systemctl restart docker