【Deep Learning】Ubuntu配置深度學習環境

【start: 250715】

文章目錄

  • ubuntu與深度學習
    • 安裝cuda
      • 查看顯卡信息(nvidia-smi)
      • 升級驅動
      • 下載cuda
    • 安裝conda
      • 安裝anaconda
      • 默認指向自己的conda
      • 初始化conda
      • 確認 conda.sh 被加載
      • 安裝cuda-toolkit
        • 直接安裝cuda-toolkit(高級的)
        • 安裝高于cuda等級的cuda-toolkit
        • 無sudo權限安裝CUDA
      • 驗證nvcc(nvcc --version)
      • 遷移env到新conda
    • 配置環境
      • 創建conda env(conda環境)
      • 創建.venv(標準的 Python 虛擬環境)
      • 安裝加速源
    • 安裝torch
      • 下載torch(wget whl)
      • 安裝torch(pip whl)
      • 安裝torchvision和torchaudio
      • 查看torch
      • 打印torch
      • ubuntu 18下載 pytorch 2.7
    • 安裝其他庫
      • 安裝cmake工具
      • xformers
      • 查看安裝的庫的位置
    • 兼容分布式訓練
      • PyTorch 分布式訓練加載權重
      • Singularity
      • ShardedTensor
    • 存儲數據集
      • 存儲位置
      • 查看磁盤空間
      • 修改權限
  • ubuntu終端的基本操作
    • 打開終端
    • 復制粘貼
    • 基本命令
    • 退出終端
    • 特殊功能
  • ubuntu的用戶注冊
    • 登錄
    • 創建與刪除
    • 進入與退出
    • 賦予權限
  • ubuntu的文件處理
    • 解壓文件
    • 打印文件目錄
      • 打印一級目錄
      • 打印所有目錄
      • 打印目錄樹狀結構(在根目錄)
      • 打印目錄樹結構(進入某一個文件夾后)
    • 查看文件內容
    • 查找文件或目錄
  • ubuntu的文件傳輸
    • ubuntu與todesk
    • ubuntu與百度云
  • ubuntu與遠程連接
    • apt工具
    • ssh協議
      • OpenSSH
      • 生成公私鑰
      • vscode
    • rdp協議
      • todesk

ubuntu與深度學習

安裝cuda

查看顯卡信息(nvidia-smi)

(base) ubuntu@ubun:~$ lspci | grep -i vga
03:00.0 VGA compatible controller: ASPEED Technology, Inc. ASPEED Graphics Family (rev 52)
31:00.0 VGA compatible controller: NVIDIA Corporation AD102 [GeForce RTX 4090 D] (rev a1)
4b:00.0 VGA compatible controller: NVIDIA Corporation AD102 [GeForce RTX 4090 D] (rev a1)
b1:00.0 VGA compatible controller: NVIDIA Corporation AD102 [GeForce RTX 4090 D] (rev a1)
ca:00.0 VGA compatible controller: NVIDIA Corporation AD102 [GeForce RTX 4090 D] (rev a1)

ubuntu查看顯存的使用情況:
nvidia-smi

或者,實時監控:
watch -n 2 nvidia-smi

效果如下:

(base) xqlin@adc-SYS-4028GR-TR:/$ nvidia-smi
Fri Jul 18 11:42:06 2025       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.161.03   Driver Version: 470.161.03   CUDA Version: 11.4     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA GeForce ...  On   | 00000000:04:00.0 Off |                  N/A |
| 16%   27C    P8    18W / 250W |      1MiB / 11019MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
|   1  NVIDIA GeForce ...  On   | 00000000:05:00.0 Off |                  N/A |
| 16%   28C    P8    13W / 250W |      1MiB / 11019MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
|   2  NVIDIA GeForce ...  On   | 00000000:08:00.0 Off |                  N/A |
| 16%   29C    P8    15W / 250W |      1MiB / 11019MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
|   3  NVIDIA GeForce ...  On   | 00000000:09:00.0 Off |                  N/A |
| 17%   28C    P8     3W / 250W |      1MiB / 11019MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
|   4  NVIDIA GeForce ...  On   | 00000000:84:00.0 Off |                  N/A |
| 16%   29C    P8     8W / 250W |      1MiB / 11019MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
|   5  NVIDIA GeForce ...  On   | 00000000:85:00.0 Off |                  N/A |
| 16%   27C    P8     1W / 250W |      1MiB / 11019MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
|   6  NVIDIA GeForce ...  On   | 00000000:88:00.0 Off |                  N/A |
| 16%   27C    P8    20W / 250W |      1MiB / 11019MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
|   7  NVIDIA GeForce ...  On   | 00000000:89:00.0 Off |                  N/A |
| 16%   28C    P8     8W / 250W |      1MiB / 11019MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------++-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

(lxq_env) ubuntu@ubun:~/lxq$ nvidia-smi
Sat Jul 19 21:18:34 2025       
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 550.144.03             Driver Version: 550.144.03     CUDA Version: 12.4     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA GeForce RTX 4090 D      Off |   00000000:31:00.0 Off |                  Off |
| 30%   25C    P8             14W /  425W |      36MiB /  24564MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+
|   1  NVIDIA GeForce RTX 4090 D      Off |   00000000:4B:00.0 Off |                  Off |
| 30%   24C    P8             18W /  425W |      36MiB /  24564MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+
|   2  NVIDIA GeForce RTX 4090 D      Off |   00000000:B1:00.0 Off |                  Off |
| 30%   25C    P8             12W /  425W |      36MiB /  24564MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+
|   3  NVIDIA GeForce RTX 4090 D      Off |   00000000:CA:00.0 Off |                  Off |
| 30%   25C    P8             14W /  425W |      36MiB /  24564MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------++-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI        PID   Type   Process name                              GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|    0   N/A  N/A      4501      G   /usr/lib/xorg/Xorg                              4MiB |
|    0   N/A  N/A    166331      G   /usr/lib/xorg/Xorg                              4MiB |
|    0   N/A  N/A    276933      G   /usr/lib/xorg/Xorg                              4MiB |
|    0   N/A  N/A    374940      G   /usr/lib/xorg/Xorg                              4MiB |
|    1   N/A  N/A      4501      G   /usr/lib/xorg/Xorg                              4MiB |
|    1   N/A  N/A    166331      G   /usr/lib/xorg/Xorg                              4MiB |
|    1   N/A  N/A    276933      G   /usr/lib/xorg/Xorg                              4MiB |
|    1   N/A  N/A    374940      G   /usr/lib/xorg/Xorg                              4MiB |
|    2   N/A  N/A      4501      G   /usr/lib/xorg/Xorg                              4MiB |
|    2   N/A  N/A    166331      G   /usr/lib/xorg/Xorg                              4MiB |
|    2   N/A  N/A    276933      G   /usr/lib/xorg/Xorg                              4MiB |
|    2   N/A  N/A    374940      G   /usr/lib/xorg/Xorg                              4MiB |
|    3   N/A  N/A      4501      G   /usr/lib/xorg/Xorg                              4MiB |
|    3   N/A  N/A    166331      G   /usr/lib/xorg/Xorg                              4MiB |
|    3   N/A  N/A    276933      G   /usr/lib/xorg/Xorg                              4MiB |
|    3   N/A  N/A    374940      G   /usr/lib/xorg/Xorg                              4MiB |
+-----------------------------------------------------------------------------------------+

升級驅動

NVIDIA-SMI 470.161.03 Driver Version: 470.161.03

驅動與 CUDA 版本的兼容性限制
驅動版本 470.161.03 的 CUDA 支持上限為 11.4(可通過 NVIDIA 官方文檔或 nvidia-smi 輸出確認)。
若強行安裝 CUDA 11.8,會因驅動不兼容導致以下問題:

  • nvcc --version 可能顯示 CUDA 11.8,但實際運行時(如 nvidia-smi 或深度學習框架)會報錯。 可能出
  • 現類似 CUDA driver version is insufficient for CUDA runtime version 的錯誤。

升級目標版本:
推薦選擇 525.xx.xx 或 535.xx.xx(LTS 版本),穩定性更高。
避免選擇測試版驅動(如 545.xx.xx 的 RC 版本)

下載cuda

https://developer.nvidia.com/cuda-11-8-0-download-archive

安裝conda

安裝anaconda

# 下載 Miniconda 安裝腳本
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh# 運行安裝腳本
bash Miniconda3-latest-Linux-x86_64.sh

默認指向自己的conda

修改 .bashrc 文件

打開 ~/.bashrc 文件,確保 Conda 環境路徑指向 Miniconda 的安裝路徑:

/home/xqlin/.bashrc

# >>> conda initialize for local miniconda >>>
export PATH="$HOME/miniconda3/condabin:$PATH"
__conda_setup="$($HOME/miniconda3/bin/conda 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; theneval "$__conda_setup"
elseif [ -f "$HOME/miniconda3/etc/profile.d/conda.sh" ]; then. "$HOME/miniconda3/etc/profile.d/conda.sh"fi
fi
unset __conda_setup
# <<< end initialize >>>

檢查:
conda info --envs

(base) xqlin2@adc-SYS-4028GR-TR:~/studio/code/Cell/Virtual_Cell/mine$ conda info --envs# conda environments:
#
cell310                /home/xqlin2/.conda/envs/cell310
base                 * /home/xqlin2/miniconda3

初始化conda

在 Miniconda 安裝完后,需要初始化 Conda,使其自動配置 shell 環境。

conda init bash

這條命令會更新你的 .bashrc 文件,使 Conda 在每次打開終端時自動激活。

確認 conda.sh 被加載

source /home/lxq/miniconda3/etc/profile.d/conda.sh

安裝cuda-toolkit

直接安裝cuda-toolkit(高級的)
sudo apt install nvidia-cuda-toolkit
conda install cuda -c nvidia/label/cuda-11.8.0 -y
conda install cuda -c nvidia/label/cuda-12.8.0 -y
安裝高于cuda等級的cuda-toolkit
(medai310) xqlin@adc-SYS-4028GR-TR:~/studio$ conda install cuda -c nvidia/label/cuda-11.8.0 -y
...(medai310) xqlin@adc-SYS-4028GR-TR:~/studio$ nvidia-smi
Sat Jul 19 21:58:36 2025       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.161.03   Driver Version: 470.161.03   CUDA Version: 11.4     |
|-------------------------------+----------------------+----------------------+

驅動限制:由于驅動版本為 470.161.03,系統僅能識別到 CUDA 11.4 作為最高兼容版本,因此 nvidia-smi 顯示為 11.4。
Toolkit 安裝:Conda 安裝的 CUDA 11.8 Toolkit 可能已存在于環境中(可通過 nvcc --versionconda list 驗證),但受限于驅動,其高級功能(如新架構支持)無法生效。

無sudo權限安裝CUDA

不能sudo,可以安裝 cuda 11.8嗎?
【ref】linux 服務器無 sudo 權限非 root 用戶安裝特定版本 cuda——https://blog.csdn.net/qq_35831906/article/details/138415615

驗證nvcc(nvcc --version)

nvcc 是 NVIDIA CUDA Compiler(CUDA 編譯器)的簡稱。它是 CUDA Toolkit 中的一個核心工具,用于把 CUDA 源碼(.cu 文件)編譯成 GPU 可以執行的二進制代碼。

nvcc --version

(medai310) xqlin@adc-SYS-4028GR-TR:~/studio$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Wed_Sep_21_10:33:58_PDT_2022
Cuda compilation tools, release 11.8, V11.8.89
Build cuda_11.8.r11.8/compiler.31833905_0

conda list | grep cuda

(ai310) xqlin@adc-SYS-4028GR-TR:~$ conda list | grep cuda
cuda                                    12.4.1           hb982923_0
cuda-cccl                               12.4.127         h06a4308_2
cuda-cccl_linux-64                      12.4.127         h06a4308_2

遷移env到新conda

把env復制粘貼到新的地方時,要做如此操作:

python -m ensurepip --upgrade
python -m pip install --upgrade pipconda activate env_namepip install ipykernelpython -m ipykernel install --user --name env_name --display-name "Python (env_name)"

配置環境

創建conda env(conda環境)

查看環境:

conda env list

創建環境:

conda create -n myenv python=3.8
conda activate myenv

創建.venv(標準的 Python 虛擬環境)

創建環境:

python3 -m venv .venv
# 或者指定版本
/usr/bin/python3.10 -m venv .venv

激活環境:

cd ~/studio/code/Cell/Virtual_Cell/state
source .venv/bin/activate

把.venv添加到vscode的jupyter中:

pip install ipykernel
python -m ipykernel install --user --name=venv --display-name "venv"

安裝加速源

pip添加鏡像源:

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

conda添加鏡像源:

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes

安裝torch

2.0.0+cu118

請添加圖片描述

下載torch(wget whl)

常用的版本:cu118
torch-2.0.0+cu118-cp310-cp310-linux_x86_64.whl
torch-2.6.0+cu118-cp310-cp310-linux_x86_64.whl
torch-2.7.0+cu118-cp310-cp310-manylinux_2_28_x86_64.whl

在 bash 中下載 whl 文件(網址:https://download.pytorch.org/whl/torch/):

wget https://download.pytorch.org/whl/cu118/torch-2.0.0%2Bcu118-cp310-cp310-linux_x86_64.whl#sha256=4b690e2b77f21073500c65d8bb9ea9656b8cb4e969f357370bbc992a3b074764
wget https://download.pytorch.org/whl/cu118/torch-2.6.0%2Bcu118-cp310-cp310-linux_x86_64.whl#sha256=715d3b039a629881f263c40d1fb65edac6786da13bfba221b353ef2371c4da86
wget https://download.pytorch.org/whl/cu118/torch-2.7.0%2Bcu118-cp310-cp310-manylinux_2_28_x86_64.whl#sha256=8c25f2641ef57d55aeeb56f5d616186400119a400b0232281f963218ac1bc92b

然后 pip install 這個whl文件

安裝torch(pip whl)

或者,還可以直接用代碼安裝torch(下載 torch 的 whl 文件的官網:https://pytorch.org/get-started/previous-versions/):

pip install torch==2.6.0 --index-url https://download.pytorch.org/whl/cu118

安裝torchvision和torchaudio

安裝torchvision或torchaudio時,可以去掉torch,并且加上--no-deps,防止重復下載

pip install torchvision==0.21.0 torchaudio==2.6.0 --no-deps --index-url https://download.pytorch.org/whl/cu118

在這里插入圖片描述

在這里插入圖片描述

查看torch

pip list | grep torch

(medai310) xqlin@adc-SYS-4028GR-TR:/disk4/lxq_data/whl$ pip list | grep torch
torch                         2.0.0+cu118
torchaudio                    2.0.1+cu118
torchvision                   0.15.1+cu118

打印torch

import subprocess
# 檢查 nvcc 版本
try:nvcc_output = subprocess.check_output(["nvcc", "--version"], text=True)print("🛠? nvcc 信息:\n", nvcc_output)
except FileNotFoundError:print("? 未檢測到 nvcc(CUDA Toolkit 可能未安裝)")import torch
import torchvision
import torchaudioprint("🧠 PyTorch 版本:", torch.__version__)
print("🎨 Torchvision 版本:", torchvision.__version__)
print("🎵 Torchaudio 版本:", torchaudio.__version__)# 檢查 CUDA
if torch.cuda.is_available():print("? CUDA 可用: True")print(f"🎯 GPU 數量: {torch.cuda.device_count()}")for i in range(torch.cuda.device_count()):print(f"   └─ GPU {i}: {torch.cuda.get_device_name(i)}")
else:print("? CUDA 可用: False")print("? 當前環境未檢測到 GPU,將使用 CPU")

🛠? nvcc 信息:
nvcc: NVIDIA ? Cuda compiler driver
Copyright ? 2005-2022 NVIDIA Corporation
Built on Wed_Sep_21_10:33:58_PDT_2022
Cuda compilation tools, release 11.8, V11.8.89
Build cuda_11.8.r11.8/compiler.31833905_0
🧠 PyTorch 版本: 2.6.0+cu118
🎨 Torchvision 版本: 0.21.0+cu118
🎵 Torchaudio 版本: 2.6.0+cu118
? CUDA 可用: True
🎯 GPU 數量: 8
└─ GPU 0: NVIDIA GeForce RTX 2080 Ti
└─ GPU 1: NVIDIA GeForce RTX 2080 Ti
└─ GPU 2: NVIDIA GeForce RTX 2080 Ti
└─ GPU 3: NVIDIA GeForce RTX 2080 Ti
└─ GPU 4: NVIDIA GeForce RTX 2080 Ti
└─ GPU 5: NVIDIA GeForce RTX 2080 Ti
└─ GPU 6: NVIDIA GeForce RTX 2080 Ti
└─ GPU 7: NVIDIA GeForce RTX 2080 Ti

在這里插入圖片描述

ubuntu 18下載 pytorch 2.7

安裝其他庫

安裝cmake工具

這個錯誤提示 cmake: command not found,說明系統缺少 cmake 工具。pyarrow 依賴 cmake 來構建它的 C++ 代碼,因此你需要先安裝 cmake

從源碼編譯安裝更高版本的 CMake

  1. 下載 CMake 3.25 或更高版本源碼
    你可以從 CMake 的官網下載最新版本的源碼:

    • CMake 官方下載鏈接
  2. 解壓源碼并進入目錄
    假設你下載的文件是 cmake-3.25.0.tar.gz,使用以下命令:

    tar -zxvf cmake-3.25.0.tar.gz
    cd cmake-3.25.0
    
  3. 編譯并安裝到用戶目錄
    安裝到用戶目錄(如 $HOME/cmake),避免需要 sudo 權限:

    ./bootstrap --prefix=$HOME/cmake
    make
    make install
    
  4. 更新環境變量
    安裝完成后,你需要確保新的 cmake 路徑在 PATH 中:

    export PATH=$HOME/cmake/bin:$PATH
    
  5. 驗證安裝
    確保 cmake 安裝成功且版本正確:

    cmake --version
    

然后再試著安裝 pyarrow,這應該能解決版本問題。如果有任何問題,隨時告知我!

xformers

pip install -U --no-deps xformers --index-url https://download.pytorch.org/whl/cu118

查看安裝的庫的位置

可以通過 pip install -e . 或等效命令(如 uv tool install -e .)把項目安裝為 editable 模式

import state; print(state.__file__)
(cell310) xqlin@adc-SYS-4028GR-TR:~/studio/code/Cell/Virtual_Cell/state$ python -c "import state; print(state.__file__)"
/home/xqlin/studio/code/Cell/Virtual_Cell/state/src/state/__init__.py

此外,為了在 PyPI 上避免包名沖突,同時保持用戶導入時模塊名簡潔清晰,開發者常常使用 安裝名 ≠ 導入名 (arc-state ≠ state) 的做法。這是 Python 社區廣泛采用的一種慣例。

兼容分布式訓練

PyTorch 分布式訓練加載權重

Singularity

你這邊是在一個 GPU服務器環境下運行,有多個 GPU,且不屬于 Slurm 或 HPC 集群,說明你是自己可以控制的服務器(或者至少管理員權限較高、不強制要求使用 Singularity)——

🔔 結論:你 ? 完全可以不使用 Singularity,直接用 Anaconda 虛擬環境 或者 pip 環境運行你的 DINOv2 微調和分類任務即可。

ShardedTensor

PyTorch DistributedTensor (DTensor) 是一種使用分布式張量原語進行原型設計的 API,可以更簡單的在 SPMD(單程序多設備)范例中創作分布式計算。 當使用 shard 和 replicate 策略來表達張量分布時,這些原語很簡單但功能強大。 PyTorch DTensor 支持 PyTorch Tensor Parallelism 以及其他高級并行性策略。 此外,它還提供了一種統一的方式來保存/加載 state_dict 以用于分布式模型狀態保存。支持多個分布式策略相結合,例如結合張量并行與參數分片,即 2D-Parallel(DP+TP)。關于這部分的內容 PyTorch 在 2021 年的 RFC 中 ShardedTensor 已經開始了設計,ShardedTensor 被初始化并以類似 SPMD 的方式使用。 基本上每個節點都有一個 ShardedTensor 實例,它保存本地分片以及整個 Tensor 的全局信息(例如:所有分片及其遠程設備)。

存儲數據集

存儲位置

一般存在disk盤中

(base) xqlin@adc-SYS-4028GR-TR:/$ ls
bin   cdrom  disk1  disk3  etc   initrd.img      lib    lost+found  mnt  old_home  proc  run   snap  swapfile  tmp  var      vmlinuz.old
boot  dev    disk2  disk4  home  initrd.img.old  lib64  media       NAS  opt       root  sbin  srv   sys       usr  vmlinuz

查看磁盤空間

df -h
du -sh /disk4/heyan_miccai_survival

修改權限

chmod
讀(r)、寫(w)、執行(x)

chmod:修改文件或目錄權限的命令(Change Mode)。
770:三位八進制數字,分別定義 所有者(Owner)、所屬組(Group) 和 其他用戶(Others) 的權限。
/disk4/lxq_data:目標目錄路徑。

(base) xqlin@adc-SYS-4028GR-TR:/$ ls -ld /disk4/lxq_data
drwxrwxr-x 4 xqlin xqlin 4096 717 19:06 /disk4/lxq_data
(base) xqlin@adc-SYS-4028GR-TR:/$ chmod 770 /disk4/lxq_data
(base) xqlin@adc-SYS-4028GR-TR:/$ ls -ld /disk4/lxq_data
drwxrwx--- 4 xqlin xqlin 4096 717 19:06 /disk4/lxq_data

ubuntu終端的基本操作

在Ubuntu終端中進行基本操作是Ubuntu系統使用的基礎。以下是一些基本的操作步驟,幫助你開始使用Ubuntu終端:

打開終端

通過圖形界面:你可以通過在Ubuntu桌面的搜索欄中輸入“Terminal”或“終端”,然后點擊打開。

快捷鍵:你也可以通過快捷鍵Ctrl + Alt + T快速打開終端。

復制粘貼

?圖形界面下的快捷鍵?:
?復制?:Ctrl + C
?粘貼?:Ctrl + V
適用于大多數圖形應用程序(如文本編輯器、瀏覽器等)。??
?終端環境下的快捷鍵?:
?復制?:Ctrl + Shift + C
?粘貼?:Ctrl + Shift + V

基本命令

查看當前目錄內容:輸入ls命令,按回車。這會列出當前目錄下的所有文件和文件夾。

改變目錄:使用cd命令后跟目錄的路徑來改變當前工作目錄。例如,cd Documents會將你帶到Documents文件夾。使用cd ~可以回到你的主目錄,而cd …可以讓你回到上一級目錄。

創建目錄:使用mkdir命令后跟目錄名來創建一個新目錄。例如,mkdir newfolder會創建一個名為newfolder的目錄。

創建文件:你可以使用touch命令后跟文件名來創建一個空文件。例如,touch newfile.txt會創建一個名為newfile.txt的文件。

刪除文件:使用rm命令后跟文件名來刪除文件。例如,rm newfile.txt會刪除名為newfile.txt的文件。注意,這會永久刪除文件,沒有回收站。

刪除目錄:使用rmdir命令后跟目錄名來刪除空目錄。如果要刪除非空目錄,可以使用rm -r 目錄名。例如,rm -r newfolder會刪除名為newfolder的目錄及其內容。

復制文件或目錄:使用cp命令,例如,cp source.txt destination.txt會將文件從源位置復制到目標位置。如果是復制整個目錄,可以使用cp -r 目錄名 目標目錄名。

移動或重命名文件/目錄:使用mv命令,例如,mv oldname.txt newname.txt會將文件重命名或移動到新位置。

退出終端

輸入exit或按Ctrl + D可以退出終端會話。

以上是一些Ubuntu終端的基本操作。隨著你對命令行的熟悉,你可以探索更多高級功能和工具,如管道(pipe)、文本處理工具(如grep, awk, sed)等。這些工具可以幫助你更高效地處理文本和文件。

特殊功能

  1. 終端自動補全(Tab 補全)
    終端支持 Tab 鍵自動補全 命令、文件名、路徑等,提高輸入效率。

示例:
輸入 cd /usr/lo 后按 Tab,會自動補全為 cd /usr/local/。
輸入 apt inst 后按 Tab,會自動補全為 apt install。

ubuntu的用戶注冊

登錄

(base) PS C:\Users\lenovo> ssh xqlin@59.77.5.136 -p 8001
Enter passphrase for key ‘C:\Users\lenovo.ssh\id_rsa’:…

創建與刪除

Ubuntu創建新用戶
https://blog.csdn.net/winycg/article/details/134428846

(1)在Ubuntu中創建新用戶需要以管理員身份進行操作。因此,我們需要運行以下命令將當前用戶提升為管理員:
sudo su

(2)在管理員身份下,使用以下命令創建一個新用戶:
adduser username
其中,username代表你要創建的新用戶的用戶名,按照提示輸入新用戶的密碼即可。如果需要在新用戶創建過程中添加更多信息,如全名、電話號碼等,也可以按照提示進行輸入。

(3)為新用戶設置sudo權限:
創建用戶后,可以將其添加到 sudo 組,就可以將其轉為 sudo 用戶。要將用戶添加到 sudo 組,需要使用 -aG 組合選項。使用 -a 選項是為了確保向組中“追加”。
sudo usermod -aG sudo <username>
在上面的命令中:
usermod 更改用戶的屬性和權限;
-a 選項表示將用戶追加到給定組,但是不將其從現有組中刪除。如果沒有 -a 選項,該用戶將會被從其現有組中刪除;
-G 選項列明要添加用戶的組,在我們的例子中,它是 “sudo”。

(4)刪除用戶:
刪除用戶但是保留用戶文件:
sudo userdel <username>
刪除用戶及用戶所有文件(/home/username/路徑下的所有文件):
sudo userdel -r <username>

進入與退出

su - newuser(我的用戶)
su - ubuntu(主用戶)

賦予權限

在ubuntu賬戶中使用lxq賬戶

sudo chown ubuntu /home/lxq

返還權限給lxq賬戶

sudo chown lxq /home/lxq

ubuntu的文件處理

解壓文件

驗證 ZIP 內部結構(可選)
如果不確定 ZIP 文件內部結構,可以先查看:

unzip -l /disk4/lxq_data/dataset/Colorectal/CRC100K/NCT-CRC-HE-100K.zip | head -n 10

這會列出 ZIP 文件的前10個條目,幫助你判斷是否需要創建頂層目錄。

unzip /disk4/lxq_data/dataset/Colorectal/CRC100K/NCT-CRC-HE-100K.zip -d /disk4/lxq_data/dataset/Colorectal/CRC100K/

-d 指定解壓目標目錄(如果不指定,默認解壓到當前目錄)

unzip /disk4/lxq_data/dataset/Colorectal/CRC100K/NCT-CRC-HE-100K.zip

打印文件目錄

打印一級目錄

ls -ld /disk4/lxq_data/dataset/Colorectal/CRC100K/NCT-CRC-HE-100K/*/

打印所有目錄

find /home/xqlin/studio/pth/Colorectal -type f
find /disk4/lxq_data/dataset/Colorectal/CRC100K/NCT-CRC-HE-100K -type f

打印目錄樹狀結構(在根目錄)

find /disk4/lxq_data/dataset/WSI/TCGA/clinical/00b9eb65-04c6-4d62-9cf6-6b77d75ab79b | sed 's|[^/]*/|│   |g;s|│   \([^│]\)|├── \1|'

temp:

find "H:\千佛山CRC總" | sed 's|[^/]*/|│   |g;s|│   \([^│]\)|├── \1|'

打印目錄樹結構(進入某一個文件夾后)

cd /home/xqlin/studio/code/Cell/Virtual_Cell/state/src
find . -print | sed -e "s;[^/]*/;|----;g" -e "s;^\./;;" | sed '/^\s*$/d'

查看文件內容

查看文本文件內容:使用cat 文件名命令可以查看文本文件的內容。例如,cat example.txt。

查看大文件的開頭部分:使用head 文件名可以查看文件的開頭幾行(默認是前10行)。

查看大文件的末尾部分:使用tail 文件名可以查看文件的末尾幾行(默認是最后10行)。

查找文件或目錄

使用find命令:使用find 路徑 -name "文件名"可以搜索指定路徑下的文件或目錄。例如,find /home -name "example.txt"會在用戶的主目錄下搜索名為example.txt的文件。

ubuntu的文件傳輸

window如何快速向ubuntu傳文件

ubuntu與todesk

直接傳到內網很慢

ubuntu與百度云

先傳到公網,再直接下載到內網可能比較快

ubuntu命令行方式下載百度網盤文件 - 正經學社的文章 - 知乎——https://zhuanlan.zhihu.com/p/715462573

(medai310) xqlin@adc-SYS-4028GR-TR:/disk2/lxq/dataset/IHC$ bypy info
Please visit:
https://openapi.baidu.com/oauth/2.0/authorize?client_id......
And authorize this app
Paste the Authorization Code here within 10 minutes.
Press [Enter] when you are done

先把文件上傳到“我的應用數據/bypy”

bypy list #查看目錄下列表

bypy downfile data_IHC

bypy downfile “dinov2_CKPT.zip” ./
bypy downfile “NCT-CRC-HE-100K.zip” ./

ubuntu與遠程連接

apt工具

apt 是 Ubuntu 及其衍生 Linux 發行版中的核心包管理工具,用于安裝、更新、卸載和管理軟件包,其全稱為 Advanced Packaging Tool(高級包管理工具)。以下是關于 apt 的詳細介紹:

一、apt 的核心功能
安裝軟件包
使用 sudo apt install <package_name> 安裝指定軟件包及其依賴項。
示例:安裝 Firefox 瀏覽器
bash
sudo apt install firefox


檢查占用鎖文件的進程
如果系統提示 /var/lib/dpkg/lock-frontend 被占用,直接查找鎖文件的使用情況:

bash
sudo lsof /var/lib/dpkg/lock-frontend 2>/dev/null

(base) ubuntu@ubun:~$ sudo lsof /var/lib/dpkg/lock-frontend 2> /dev/null
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
aptd 2843154 root 26u REG 259,3 0 90702343 /var/lib/dpkg/lock-frontend
aptd 2843154 root 32u REG 259,3 0 90702343 /var/lib/dpkg/lock-frontend
apt 4153478 root 4uW REG 259,3 0 90702343 /var/lib/dpkg/lock-frontend

sudo kill -9 2843154 4153478


總結
終止占用進程:
bash
sudo kill -9 2843154 4153478
刪除鎖文件:
bash
sudo rm /var/lib/dpkg/lock*
修復包管理器:
bash
sudo dpkg --configure -a
sudo apt --fix-broken install
重新嘗試 apt 命令:
bash
sudo apt update # 或其他你原本想執行的命令
執行后,你的 apt 命令應該可以正常運行! 🚀

ssh協議

OpenSSH

生成公私鑰

生成公私鑰:希望重新生成一對公私鑰并發送公鑰,以下是針對“怎么生成公私鑰”的常見方法說明(以Windows系統下使用OpenSSH為例,也可用于其他支持場景):

一、生成公私鑰步驟
打開命令提示符(CMD)或PowerShell
按下 Win + R,輸入 cmd 或 powershell,回車。

生成密鑰對
輸入以下命令,按提示操作:
bash
ssh-keygen -t rsa -b 4096 -C “your_email@example.com”
-t rsa:指定使用RSA算法(也可用 ed25519 等更現代的算法)。
-b 4096:密鑰長度(RSA推薦4096位)。
-C “注釋”:可選注釋(如郵箱),方便識別。

設置保存路徑和密碼(可選)
系統會提示輸入保存路徑,默認在 C:\Users\你的用戶名.ssh\id_rsa(私鑰)和 id_rsa.pub(公鑰)。
可設置密碼(Passphrase),增加安全性(直接回車則不設置)。

確認生成
生成完成后,會顯示密鑰指紋和隨機藝術圖。

二、獲取公鑰內容

查看公鑰文件
打開 id_rsa.pub 文件(用記事本或其他文本編輯器)。
或通過命令顯示內容:
bash
type ~/.ssh/id_rsa.pub

復制公鑰
全選內容并復制,發送給幸(如通過聊天工具粘貼)。

vscode

vscode連接ubuntu服務器(圖形化的)
Vscode連接VM Ubuntu ssh配置
https://zhuanlan.zhihu.com/p/703021988

注意,很多服務器只能兼容1.85以下的版本的vscode,如果版本過高,將無法聯通ssh!

Version: 1.85.2
Commit: 8b3775030ed1a69b13e4f4c628c612102e30a681
Date: 2024-01-18T06:40:10.514Z
Electron: 25.9.7
ElectronBuildId: 26354273
Chromium: 114.0.5735.289
Node.js: 18.15.0
V8: 11.4.183.29-electron.0
OS: Windows_NT x64 10.0.26100

rdp協議

todesk

直接連接

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/96260.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/96260.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/96260.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

車載數據采集(DAQ)解析

<摘要> 車載數據采集&#xff08;DAQ&#xff09;軟件模塊是現代汽車電子系統的核心組件&#xff0c;負責實時采集、處理、記錄和傳輸車輛運行數據。本文系統解析了DAQ模塊的開發&#xff0c;涵蓋其隨著汽車智能化演進的歷史背景&#xff0c;深入闡釋了信號、協議、緩存等…

強化學習框架Verl運行在單塊Tesla P40 GPU配置策略及避坑指南

1.前言 由于比較窮,身邊只有1塊10年前的Tesla P40 GPU卡(2016年9月發布),想利用起來學習強化學習框架Verl。程序員學習開源代碼,大部分人的第一直覺不是分析模塊組成,而是跑起來試試,然后去debug一下后面的運行邏輯。 由于在官方部署指導文檔中并未指明跑通Verl的最低…

leetcode169.多數元素

題目描述給定一個大小為 n 的數組 nums &#xff0c;返回其中的多數元素。多數元素是指在數組中出現次數 大于 ? n/2 ? 的元素。你可以假設數組是非空的&#xff0c;并且給定的數組總是存在多數元素。題目解法博耶-摩爾多數投票算法&#xff08;英語&#xff1a;Boyer–Moore…

基于機器學習的P2P網貸平臺信用違約預測模型

使用平臺提供的借款人信息&#xff08;年齡、收入、歷史信用等&#xff09;和借款信息&#xff0c;構建一個二分類模型來預測借款人是否會違約。重點解決類別不平衡問題和模型可解釋性。邏輯回歸、隨機森林、XGBoost、SMOTE過采樣、模型評估&#xff08;AUC, KS, F1-Score&…

豆瓣網影視數據分析與應用

源碼鏈接&#xff1a;點擊下載源碼 相關文檔&#xff1a;點擊下載相關文檔 摘 要 隨著互聯網的快速發展&#xff0c;豆瓣網作為一個綜合性的影視評分和評論平臺&#xff0c;積累了大量的用戶數據&#xff0c;這些數據為影視分析提供了豐富的素材。借助Hadoop這一大數據處理框…

四、計算機網絡與分布式系統(中)

一、局域網與廣域網1、局域網&#xff08;1&#xff09;定義將有限地理范圍內的多臺計算機通過傳輸媒體連接&#xff0c;借助網絡軟件實現設備間通信與資源共享的通信網絡&#xff08;2&#xff09;特點1.地理范圍小&#xff1a;通常為數百米至數公里內。2.傳輸速率高&#xff…

Python 面向對象實戰:私有屬性與公有屬性的最佳實踐——用線段類舉例

描述 在繪圖軟件、GIS、CAD 或簡單的圖形編輯器中&#xff0c;線段&#xff08;Segment&#xff09;是非常基礎的對象。每個線段有兩個端點&#xff08;x1,y1&#xff09;和&#xff08;x2,y2&#xff09;。在實現時我們通常希望&#xff1a; 封裝端點數據&#xff08;防止外部…

流式細胞術樣本處理全攻略(一):組織、血液、體液制備方法詳解

摘要 流式細胞術作為多參數、高通量的細胞分析技術,在細胞表型鑒定、免疫反應研究、疾病機制探索及藥物效果評估中發揮關鍵作用。而樣本制備是流式實驗成功的核心前提,需將不同來源樣本處理為單顆粒懸液,并最大程度減少細胞死亡與碎片干擾。本文針對組織、外周血 / 骨髓、體…

【C#】理解.NET內存機制:堆、棧與裝箱拆箱的底層邏輯及優化技巧

文章目錄前言一、棧與堆1.1 棧&#xff08;Stack&#xff09;1.1.1 基本信息1.1.2 特點1.2 堆&#xff08;Heap&#xff09;1.2.1 基本信息1.2.2 特點1.3 從代碼中窺見堆棧二、裝箱與拆箱2.1 裝箱2.2 拆箱2.3 如何避免不必要的裝箱與拆箱2.3.1 泛型集合2.3.2 泛型參數總結前言 …

人工智能學習:Transformer結構中的子層連接(Sublayer Connection)

Transformer結構中的子層連接(Sublayer Connection) 一、子層連接介紹 概念 子層連接(Sublayer Connection),也稱為殘差連接(Residual Connection),是Transformer模型中的一個關鍵設計,用于將多個子層(如自注意力層和前饋全連接層)組合在一起。它通過殘差連…

解鎖Roo Code的強大功能:深入理解上下文提及(Context Mentions)

在AI使用中&#xff0c;我們經常需要AI或AI工具描述代碼中的某個具體部分。但如果工具能直接“看到”所指的代碼、錯誤信息甚至終端輸出&#xff0c;協作效率會不會大幅提升&#xff1f;這正是 Roo Code 的“上下文提及&#xff08;Context Mentions&#xff09;”功能所要實現…

第5篇、 Kafka 數據可靠性與容錯機制

在分布式消息隊列系統中&#xff0c;數據可靠性 與 容錯能力 是核心指標。Kafka 作為高吞吐、可擴展的流式處理平臺&#xff0c;依靠副本復制、Leader 選舉和 ISR 機制&#xff0c;保證了在節點故障時消息依然能夠可靠傳輸與消費。 &#x1f4da; 目錄 理論基礎 一、數據復制…

Excel表格如何制作?【圖文詳解】表格Excel制作教程?電腦Excel表格制作?

一、問題背景 在日常辦公中&#xff0c;無論是統計數據、整理報表&#xff0c;還是記錄信息&#xff0c;Excel表格都是必不可少的工具。 但對新手來說&#xff0c;打開Excel后面對空白的單元格&#xff0c;常常不知道從何下手——不知道怎么選表格范圍、怎么加邊框讓表格顯形、…

阿里兵臨城下,美團迎來至暗時刻?

9月10日&#xff0c;趕在阿里巴巴成立26周年之際&#xff0c;高德地圖推出了首個基于用戶行為產生的榜單“高德掃街榜”&#xff0c;被定義為“阿里生活服務超級新入口”&#xff0c;試圖重新構建一套線下服務的信用體系。 上線第二天&#xff0c;就有媒體報道稱“使用高德掃街…

Android逆向學習(十一) IDA動態調試Android so文件

Android逆向學習&#xff08;十一&#xff09; IDA動態調試Android so文件 一、 寫在前面 這是吾愛破解論壇正己大大的第12個教程&#xff0c;并且發現一個神奇的事情&#xff0c;正己大大的教程竟然沒有第11個&#xff0c;感覺很奇怪 寫這個博客的主要原因是希望提供一種新的解…

Django全棧班v1.03 Linux常用命令 20250911 下午

課程定位 命令行 ! 黑客專屬。 這套視頻帶你從Linux小白到命令行大師&#xff0c;涵蓋文件管理文本處理系統監控網絡操作。 零基礎也能30分鐘掌握程序員必備的技能。 課程亮點 1、零基礎友好&#xff1a;從最基礎的ls&#xff0c;cd命令開始&#xff0c;循序漸進 2、實戰導向&a…

離線應用開發:Service Worker 與緩存

引言&#xff1a;離線應用開發在 Electron 中的 Service Worker 與緩存核心作用與必要性 在 Electron 框架的開發實踐中&#xff0c;離線應用開發是提升用戶體驗和應用可用性的關鍵技術&#xff0c;特別是使用 Service Worker 實現緩存和離線功能&#xff0c;結合 Node.js 處理…

英發睿能闖關上市:業績波動明顯,毅達創投退出,臨場“移民”

撰稿|張君來源|貝多商業&貝多財經近日&#xff0c;四川英發睿能科技股份有限公司&#xff08;下稱“英發睿能”&#xff09;遞交招股書&#xff0c;報考在港交所上市。據貝多商業&貝多財經了解&#xff0c;英發睿能還于9月3日披露《整體協調人公告&#xff0d;委任&…

Elixir通過Onvif協議控制IP攝像機,ExOnvif庫給視頻流疊加字符

Elixir 通過 ExOnvif 庫&#xff0c;Onvif 協議可以控制IP攝像機等設備&#xff0c;這篇文章記錄&#xff1a;使用ExOnvif庫&#xff0c;給視頻流疊加文字&#xff0c;使用ExOnvif庫的接口模塊&#xff1a;ExOnvif.Media、ExOnvif.Media2。 ExOnvif官方文檔 此文章內容&#xf…

線程安全相關的注解

主要有下面三個加在類上的線程安全相關的注解。一.Immutable標記一個類為不可變的。這意味著該類的實例在構造完成后&#xff0c;其狀態&#xff08;數據&#xff09;永遠不能被更改。實現不可變性的嚴格條件&#xff08;Java內存模型中的定義&#xff09;&#xff1a;所有字段…