Hướng Dẫn Kỹ Thuật Linux, C++, Git và Môi Trường Phát Triển

Linux (Ubuntu)

Các Lệnh Cơ Bản

Cập nhật danh sách gói phần mềm: sudo apt update Nâng cấp gói phần mềm: sudo apt upgrade

Xem nhật ký hệ thống: journalctl -xe Kiểm tra sử dụng phân vùng đĩa: df -h hoặc chỉ phân vùng hiện tại df -h . Xem thông tin card NVIDIA theo thời gian thực: watch -n 1 nvidia-smi (số 1 là thời gian làm mới, đơn vị giây)

Kết Nối Server Từ Xa

Lệnh kết nối: ssh ten_dang_nhap@dia_chi_ip -p cong (ssh username@server_ip -p port) Lần đầu kết nối, hệ thống sẽ yêu cầu xác thực vân tay server, nhập "yes" để xác nhận.

Đăng nhập không cần mật khẩu Tạo khóa: ssh-keygen -t rsa Để đăng nhập không cần mật khẩu vào myserver, sao chép nội dung khóa công khai vào tệp ~/.ssh/authorized_keys trên myserver. Hoặc dùng lệnh: ssh-copy-id -i ~/.ssh/id_rsa.pub ten_dang_nhap@dia_chi_ip

Ngắt kết nối: exit

Tải lên tệp: scp /duong/dan/toi/tap_tin_local ten_dang_nhap@dia_chi_ip:/duong/dan/toi/thu_muc_distant Tải xuống tệp: scp ten_dang_nhap@dia_chi_ip:/duong/dan/toi/tap_tin_distant /duong/dan/toi/thu_muc_local

Biên Dịch C++

Lệnh biên dịch C++: g++ (-E/S/c/) tap_tin_nguon.cpp -o tap_tin_dau_ra

  • -c: Biên dịch tạo tệp đối tượng mà không liên kết thành tệp thực thi
  • -E: Chỉ thực hiện đến giai đoạn tiền biên dịch, xuất kết quả trực tiếp
  • -S: Chỉ thực hiện đến chuyển đổi mã nguồn sang mã assembly, xuất mã assembly
  • -o: Chỉ định tên tệp đầu ra
  • -g: Tạo thông tin gỡ lỗi trong đầu ra
  • -L: Chỉ định thư mục tìm kiếm thư viện, -l (chữ L thường) chỉ định tên thư viện

Vim

Các thao tác thường dùng Sao chép dán: Trong chế độ Normal (nhấn esc), chọn văn bản rồi nhấn y để sao chép, sau đó nhấn p để dán

:set paste Chuyển sang chế độ dán, tắt tự động thụt lề mã :set nopaste Tắt chế độ dán, bật tự động thụt lề mã gg=G Định dạng toàn bộ mã

Cài Đặt

pwd (toàn cục): /etc/vim/vimrc

Mẹo: Sau khi vào /etc/vim/vimrc, các văn bản giải thích có thể dùng " để chú thích, hoặc thêm/bỏ " trước các cài đặt để tắt/bật

Tắt chế độ tương thích vi cũ set nocompatible Hiển thị chế độ hiện tại ở đáy set showmode Hiển thị lệnh đã nhập trong chế độ lệnh set showcmd Hỗ trợ chuột set mouse=a Sử dụng mã hóa utf-8 set encoding=utf-8 Bật 256 màu set t_Co=256 Bật kiểm tra loại tệp và tải quy tắc thụt lề tương ứng filetype indent on

Số dòng lịch sử set history=1000 Nền đen set background=dark Bật đánh dấu cú pháp syntax on

Thụt lề tự động set autoindent Thụt lề thông minh set smartindent

Tab thành 4 khoảng trắng set tabstop=4 Số khoảng trắng cho thụt lề set shiftwidth=4

Chế độ khớp cặp set showmatch Tắt âm thanh khi lỗi set vb t_vb=

Hiển thị số dòng set number Hiển thị vị trí con trỏ (dòng, cột) set ruler

Thụt lề: >> (thêm), << (bớt), == (bỏ hết) set expandtab Tab thành bao nhiêu khoảng trắng set softtabstop=2 Hiển thị số dòng tương đối set relativenumber Tô sáng dòng hiện tại set cursorline Độ rộng dòng set textwidth=80 Tự động ngắt dòng set wrap Ngắt dòng khi gặp ký tự nhất định set linebreak Khoảng cách giữa ngắt dòng và mép cửa sổ set wrapmargin=2 Khoảng cách con trỏ đến mép trên/dưới khi cuộn dọc set scrolloff=15 Khoảng cách con trỏ đến đầu/cuối dòng khi cuộn ngang set sidescrolloff=5 Hiển thị thanh trạng thái set laststatus=2

Tìm kiếm: tô sáng kết quả set hlsearch Tìm kiếm tăng dần set incsearch Bỏ qua chữ hoa chữ thường set smartcase Bật kiểm tra chính tả tiếng Anh set spell spelllang=en_us Gợi thị thị giác khi lỗi set visualbell

tmux

Tạo phiên mới: tmux new -s ten_phien Kết nối phiên: tmux attach -t ten_phien Xem các phiên: tmux ls hoặc Ctrl+b Tách phiên: tmux detach hoặc Ctrl+b d Thoát: exit hoặc Ctrl+d

conda (Ubuntu)

Tăng Tốc Tải Xuống

Tải chậm hoặc không tải được

  1. Đổi nguồn (Nguồn Tsinghua) pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple/
  2. Tạm thời tăng tốc pip install xxx --no-cache-dir -i https://pypi.tuna.tsinghua.edu.cn/simple

Cài Đặt Anaconda

Tải: wget https://repo.anaconda.com/archive/Anaconda3-2024.02-1-Linux-x86_64.sh Cài đặt: bash Anaconda3-2024.02-1-Linux-x86_64.sh Thêm biến môi trường: export PATH="/root/anaconda3/bin:$PATH" source ~/.bashrc

Các Thao Tác

Tự động kích hoạt base: conda config --set auto_activate_base False Xem môi trường: conda info --envs Tạo môi trường mới: conda create -n ten_moi python=version Đổi tên môi trường: conda create --name ten_moi --clone ten_cu conda remove -n ten_cu --all Kích hoạt: conda activate ten_moi hoặc source activate ten_moi Thoát: conda deactivate Xóa môi trường: conda env remove -n ten_moi conda remove --name ten_moi --all --force

Cài Đặt PyTorch

Lưu ý: PyTorch có phiên bản CPU và GPU. pip install torch có thể cài CPU. Nếu cài PyTorch nhưng không tìm thấy CUDA, kiểm tra lại phiên bản.

Lệnh từ trang chủ: PyTorch-Get-Start

# Cài theo phiên bản
pip install torch==1.10.0+cu113 torchvision==0.11.1+cu113 torchaudio==0.10.0+cu113 -f https://download.pytorch.org/whl/torch_stable.html

# Cài CUDA 12.4
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124
pip install torch torchvision torchaudio --index-url https://mirrors.nju.edu.cn/pytorch/whl/cu124
# Chỉ định CUDA
pip install torch torchvision torchaudio -f https://download.pytorch.org/whl/cu122/torch_stable.html

# Cài qua conda
conda install pytorch==1.6.0 torchvision==0.7.0 cudatoolkit=10.2 -c pytorch
conda install pytorch torchvision torchaudio pytorch-cuda=12.4 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch -c defaults
conda install pytorch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 pytorch-cuda=12.4 -c pytorch -c nvidia

Cấu Hình Môi Trường

Nếu PyTorch đã cài nhưng pip install xxx báo lỗi không thấy torch, thử: pip install xxx --no-build-isolation

Cài Đặt D4RL

Cài các gói này với Python 3.8:

conda install pytorch==1.10.1 torchvision==0.11.2 torchaudio==0.10.1 cudatoolkit=11.1 -c pytorch -c conda-forge

Nếu báo lỗi thiếu trình biên dịch C++, cài đặt hoặc tạo liên kết mềm.

Git

Khái Niệm Git

  • Khu vực làm việc: Thư mục repository
  • Khu vực tạm: Vùng chứa tạm
  • Repository: Chứa các phiên bản đã commit
  • Cấu trúc: Cây

Lệnh Git Cơ Bản

  1. Lệnh thường dùng git status - Xem trạng thái git add file - Thêm file vào khu vực tạm git commit -m "ghi chú" - Commit từ khu vực tạm git push -u - Đẩy lên remote (lần đầu cần -u) git pull - Kéo remote về git clone url - Clone repository git log - Xem lịch sử commit git branch - Xem các nhánh

  2. Cài đặt toàn cục git config --global user.name "ten" git config --global user.email "email" git init - Khởi tạo repository

  3. Lệnh xem git diff file - Xem thay đổi so với khu vực tạm git status - Xem trạng thái git log - Xem lịch sử commit git log --pretty=oneline - Hiển thị trên một dòng git reflog - Xem lịch sử HEAD git branch - Xem các nhánh

  4. Lệnh xóa git rm --cached file - Xóa file khỏi index git restore --staged file - Bỏ file khỏi khu vực tạm git restore file - Hoàn tác thay đổi chưa add

  5. Quay lại git reset --hard HEAD^ - Quay về commit trước git reset --hard HEAD~2 - Quay về 2 commit trước git reset --hard ma_commit - Quay về commit cụ thể

  6. Remote repository git remote add origin url - Liên kết remote git push -u - Đẩy lên remote git push origin nhánh - Đẩy nhánh cụ thể git push -d origin nhánh - Xóa nhánh remote git checkout -t origin/nhánh - Lấy nhánh remote về local git pull - Kéo remote về git pull origin nhánh - Kéo nhánh cụ thể về

  7. Lệnh nhánh git branch tên_nhanh - Tạo nhánh mới git branch - Xem các nhánh git checkout -b tên_nhanh - Tạo và chuyển nhánh git checkout tên_nhanh - Chuyển nhánh git merge tên_nhanh - Hợp nhất nhánh git branch -d tên_nhanh - Xóa nhánh local git push --set-upstream origin tên_nhanh - Liên kết nhánh local với remote git push -d origin tên_nhanh - Xóa nhánh remote git checkout -t origin/tên_nhanh - Lấy nhánh remote về local git pull origin tên_nhanh - Kéo nhánh remote về git branch --set-upstream-to=origin/tên1 tên2 - Liên kết nhánh remote với local

  8. Stash git stash - Cất thay đổi git stash apply - Khôi phục nhưng giữ stash git stash drop - Xóa stash git stash pop - Khôi phục và xóa stash git stash list - Xem các stash

Các Thủ Thuật Khác

Markdown: Khoảng trắng nửa rộng: &ensp; Khoảng trắng đầy đủ: &emsp;

Alibaba Cloud

Thử dùng Alibaba Cloud miễn phí Xem tài liệu chính thức để giải quyết vấn đề Nếu không có tab hoàn thành: bash

Thẻ: linux Ubuntu C++ Vim tmux

Đăng vào ngày 21 tháng 5 lúc 01:20