Sổ tay kỹ thuật
1610 lệnh · bấm để copy

gnmic cheatsheet

trang đầy đủ ↗

Flag chung

  • Địa chỉ (nhiều target cách nhau bằng dấu phẩy)

  • Đăng nhập

  • Không TLS (gRPC clear-text)

  • TLS nhưng bỏ kiểm tra cert

  • TLS có CA / mTLS

  • Encoding

  • Định dạng output

  • Timeout kết nối

  • File cấu hình

  • Debug gRPC

Capabilities và Get

  • Model + encoding hỗ trợ

  • Tìm model có chữ bgp

  • Trạng thái 1 interface (OpenConfig)

  • Oper-status mọi interface

  • Chỉ lấy config

  • Chỉ lấy state

  • Dùng prefix

  • Path native IOS XR

  • Output phẳng dễ grep

Set

  • Update 1 leaf

  • Update từ file JSON

  • Replace cả cây con

  • Xoá path

  • Nhiều thao tác trong 1 SetRequest

  • Set từ file request (YAML/JSON)

  • Xem request sẽ gửi, không gửi

Subscribe

  • Counter mỗi 10s

  • On-change oper-status

  • Thiết bị tự chọn

  • Lấy 1 lần rồi thoát

  • Chỉ nhận update, bỏ snapshot ban đầu

  • Heartbeat cho on-change

  • Bỏ update trùng giá trị (sample)

  • Proto encoding, output dạng event

  • Dùng subscription định nghĩa sẵn trong file cấu hình

Công cụ khác

  • Shell tương tác có gợi ý path (cần YANG)

  • Sinh danh sách path từ YANG

  • Nhận telemetry dial-out

  • Phiên bản / nâng cấp

IOS XR CLI cheatsheet

trang đầy đủ ↗

Phiên làm việc và lọc output

  • Tắt phân trang

  • Lọc dòng / bắt đầu từ / loại trừ

  • Config dạng 1 dòng / lệnh (dễ grep, dễ copy)

  • Config của 1 khối

  • Ghi output ra file

  • Chạy lệnh exec trong chế độ config

Show vận hành

  • Phiên bản, uptime

  • Card, trạng thái node

  • Phần cứng, serial

  • Interface tóm tắt

  • Lỗi, counter interface

  • Quang (DOM)

  • BGP

  • Route

  • LLDP

  • Log

  • CPU / memory

  • Alarm

Cấu hình và commit

  • Vào config (dùng chung target) / độc quyền

  • Xem thay đổi chưa commit

  • Diff chưa commit dạng +/-

  • Commit kèm ghi chú / label

  • Commit, tự rollback nếu không xác nhận sau N giây

  • Xác nhận commit confirmed

  • Commit phần hợp lệ, bỏ phần lỗi

  • Thay toàn bộ running bằng target config

  • Xem lý do commit lỗi

  • Bỏ thay đổi chưa commit, ở lại config mode

  • Bỏ thay đổi và thoát

  • Session config đang mở / xoá session treo

Lịch sử và rollback

  • Danh sách commit

  • Nội dung 1 commit

  • Nội dung commit gần nhất

  • Xem trước rollback sẽ đổi gì

  • Rollback N commit gần nhất

  • Rollback về trạng thái sau commit ID

Backup, load, config replace

  • Lưu running ra file

  • Xem file

  • Load file vào target (merge)

  • Thay toàn bộ config từ file

  • Đổi cấu hình từ interface này sang interface khác

  • Thay chuỗi trong toàn bộ config

Install (eXR 64-bit, IOS XR 6.x/7.x)

  • Package đang chạy

  • Package đã commit / chưa active

  • Thêm package / ISO từ đĩa

  • Kiểm tra tiến trình

  • Kích hoạt theo operation ID

  • Ghi nhận để giữ sau reload

  • Dọn package không dùng

Admin, shell và debug nhanh

  • Vào chế độ admin (eXR, nếu platform có)

  • Vào shell Linux của XR

  • Ping/traceroute từ VRF

  • Theo dõi log realtime

  • Telemetry đang chạy

Junos CLI cheatsheet

trang đầy đủ ↗

Pipe và hiển thị

  • Tắt phân trang (cả phiên / 1 lệnh)

  • Lọc dòng / loại trừ

  • Đếm dòng

  • Xem N dòng cuối

  • Config dạng lệnh set

  • Tìm trong config dạng set

  • Output XML / JSON

  • Tên RPC tương ứng (cho PyEZ, NETCONF)

  • Xem config sau khi áp dụng group

  • Lưu output ra file

Show vận hành

  • Phiên bản / uptime

  • Phần cứng, serial

  • Alarm

  • Interface tóm tắt / chi tiết

  • Quang (DOM)

  • BGP

  • Route

  • Route nhận/quảng bá với neighbor

  • LLDP

  • Log

  • CPU / RE

  • Lịch sử commit

Cấu hình

  • Vào config (dùng chung) / độc quyền / riêng

  • Di chuyển trong cây

  • Thêm / xoá

  • Vô hiệu hoá tạm (giữ config)

  • Đổi tên / chép khối

  • Ghi chú lên config

  • Chạy lệnh vận hành trong config mode

  • Ai đang sửa config

  • Thoát config mode

Compare, commit, rollback

  • Diff candidate với active

  • Diff candidate với rollback N

  • Diff 2 bản rollback (operational mode)

  • Kiểm tra cú pháp và ràng buộc, không áp dụng

  • Commit kèm ghi chú

  • Commit tự rollback sau N phút

  • Xác nhận commit confirmed

  • Commit rồi thoát

  • Commit hẹn giờ / huỷ hẹn giờ

  • Commit đồng bộ 2 RE

  • Bỏ mọi thay đổi chưa commit

  • Quay về bản trước

  • Lưu / nạp rescue config

Load config

  • Dán lệnh set từ terminal

  • Dán khối config dạng cây, gộp vào

  • Gộp từ file

  • Thay các khối có tag replace:

  • Thay toàn bộ config

  • Áp các lệnh từ diff đã lưu

File và hệ thống

  • Liệt kê file

  • Xem file

  • Lưu config ra file

  • Vào shell

  • Khởi động lại

NAPALM cheatsheet

trang đầy đủ ↗

optional_args hay dùng

  • Đổi port

  • SSH key

  • Khoá config ngay khi open()

  • Junos: bỏ qua warning khi commit

  • Junos: configure private

  • Junos: dùng ~/.ssh/config

Getter

  • Hostname, model, version, serial, uptime

  • Trạng thái interface

  • IP trên interface

  • Counter interface

  • BGP neighbor (state, prefix nhận)

  • Cấu hình BGP

  • LLDP

  • ARP / IPv6 ND

  • Route tới đích

  • Quang (DOM)

  • NTP, SNMP, user

  • Môi trường (CPU, mem, nhiệt, nguồn)

  • VRF / network instance

  • Lấy config

  • Chạy lệnh CLI thô

  • Ping / traceroute từ thiết bị

Thay đổi cấu hình

  • Merge đoạn config vào candidate

  • Thay toàn bộ config bằng file

  • Render Jinja2 rồi load merge

  • Xem diff candidate vs running

  • Huỷ candidate

  • Commit, có comment

  • Commit confirmed (Junos)

  • Còn commit confirmed đang chờ? (Junos)

  • Xác nhận commit confirmed (Junos)

  • Quay về bản trước commit gần nhất

CLI napalm

  • Gọi getter, in JSON

  • Getter có tham số

  • Diff file merge, không commit

  • Merge và commit

  • Kiểm tra compliance theo file

  • Debug từng bước kết nối

Jinja2 cho template cấu hình mạng

trang đầy đủ ↗

Cú pháp cơ bản

  • In biến

  • Lệnh điều khiển

  • Comment (không ra output)

  • Giá trị mặc định

  • Mặc định cả khi rỗng ""

  • Gán biến

  • Nối chuỗi

  • Escape {{ thật

Điều kiện và vòng lặp

  • if / elif / else

  • Có định nghĩa không

  • Thuộc danh sách

  • Lặp list

  • Lặp dict

  • Lặp có lọc

  • Khi list rỗng

  • Chỉ số, phần tử đầu/cuối

  • Đếm/cộng dồn trong vòng lặp

Filter hay dùng

  • Sắp xếp theo thuộc tính

  • Lấy 1 thuộc tính của list dict

  • Lọc theo thuộc tính

  • Loại bỏ

  • Ghép chuỗi

  • Đếm

  • Không trùng

  • Thay chuỗi

  • Hoa/thường

  • Định dạng số

  • Gom nhóm

  • Đổi kiểu

  • Thụt lề khối

  • Địa chỉ từ prefix (A)

  • Netmask (A)

  • Regex (A)

  • Test regex (A)

  • Gộp dict (A)

  • Xuất YAML/JSON (A)

Whitespace control

  • Xoá khoảng trắng/newline bên trái

  • Xoá bên phải

  • Bỏ newline sau thẻ block

  • Bỏ khoảng trắng trước thẻ block

  • Bật trong 1 file template Ansible

Render thử

  • Render bằng Ansible, không cần thiết bị

  • Sinh lệnh từ resource module

ClickHouse – query top talkers

trang đầy đủ ↗

Top talkers

  • Top 10 IP nguồn (1 giờ)

  • Top AS đích

  • Top interface vào

  • Top cặp src→dst

  • Theo protocol/port

Lệnh vận hành

  • Dung lượng theo bảng

  • Query đang chạy

  • Kill query

  • Mở client

InfluxDB – Flux query hay dùng

trang đầy đủ ↗

Lọc và chọn

  • Khoảng thời gian tương đối / tuyệt đối

  • Nhiều thiết bị

  • Lọc theo regex

  • Loại trừ

  • Giá trị mới nhất mỗi series

  • Giữ lại một số cột

  • Đổi tên cột

  • Gộp tất cả series thành một bảng

  • Gom theo thiết bị

  • Giới hạn số dòng

influx CLI

  • Xem profile kết nối

  • Liệt kê bucket

  • Tạo bucket với retention

  • Đổi retention

  • Ghi thử một điểm (line protocol)

  • Xoá dữ liệu theo điều kiện

  • Liệt kê task

  • Log của task

  • Mở shell InfluxQL

PromQL – query hay dùng cho telemetry mạng

trang đầy đủ ↗

Counter và tốc độ

  • bps vào trung bình 5 phút

  • bps tức thời (2 mẫu cuối, nhạy với spike)

  • Tổng byte trong 1 giờ

  • Số lần counter bị reset

  • Interface có lỗi tăng trong 15 phút

  • Số lần trạng thái đổi (flap)

Lọc label

  • Một thiết bị

  • Regex

  • Loại trừ regex

  • Biến Grafana nhiều giá trị

Gom nhóm và top-N

  • Tổng bps theo thiết bị

  • Tổng, bỏ label name

  • Top 10 interface

  • 5 interface ít traffic nhất

  • Đếm interface mỗi thiết bị

  • Phần trăm sử dụng (speed Mbps)

  • Giá trị lớn nhất trong 1 ngày

  • So với tuần trước

Histogram và dự báo

  • p99 latency

  • p95 theo job

  • Disk đầy trong 24h tới

  • p95 của gauge theo thời gian

Phát hiện mất dữ liệu

  • Target scrape thất bại

  • Metric biến mất hoàn toàn

  • Không có mẫu trong 10 phút

  • Series không cập nhật (stale)

  • Đổi tên label

promtool và API

  • Kiểm tra file rule

  • Kiểm tra config

  • Chạy query từ CLI

  • Query qua HTTP API

  • Reload (cần --web.enable-lifecycle)

  • Series nhiều nhất (cardinality)

Prometheus config – scrape, relabel, file_sd, promtool

trang đầy đủ ↗

Tham số scrape_config hay dùng

  • Ghi đè chu kỳ/timeout cho riêng job

  • Đổi path / scheme

  • Query string gửi kèm

  • Giữ label do target tự đặt (federation, pushgateway)

  • Bỏ timestamp do target gửi

  • Basic auth / bearer token từ file

  • TLS tới target

  • Chặn target trả quá nhiều series

Action của relabel

  • Copy label

  • Gán giá trị cố định

  • Lấy một phần (bỏ port)

  • Ghép nhiều label

  • Chỉ giữ target khớp

  • Bỏ target khớp

  • Đổi tên hàng loạt từ meta label

  • Xoá label

  • Chỉ giữ một số label

  • Chia target cho nhiều Prometheus

  • Chữ thường

promtool và vận hành

  • Kiểm tra config (kèm rule_files)

  • Chỉ kiểm cú pháp, bỏ qua file tham chiếu

  • Lint output của exporter

  • Unit test rule

  • Query khoảng thời gian

  • Phân tích cardinality của TSDB

  • Reload không restart

  • Xem target và lỗi scrape

Loki – LogQL hay dùng cho syslog thiết bị

trang đầy đủ ↗

Stream selector

  • Một thiết bị

  • Regex

  • Loại trừ

  • Loại trừ regex

  • Biến Grafana nhiều giá trị

Line filter (lọc nhanh nhất, đặt ngay sau selector)

  • Chứa chuỗi

  • Không chứa

  • Regex (RE2)

  • Regex không khớp

  • Không phân biệt hoa thường

  • Nhiều điều kiện (AND)

  • Tìm IP trong một dải

Parser và label filter

  • Tách field JSON thành label

  • Chỉ lấy vài field JSON

  • Log dạng key=value

  • Pattern (<_> bỏ qua)

  • Regex với named group

  • Lọc theo label sau parse

  • So sánh số / duration

  • Kết hợp điều kiện

  • Bỏ dòng parse lỗi

  • In lại dòng gọn hơn

  • Đổi tên / tạo label

  • Bỏ / giữ label

Metric query

  • Số dòng log mỗi 5 phút

  • Dòng/giây theo thiết bị

  • Top 10 thiết bị nhiều log nhất

  • Đếm BGP flap theo peer

  • Đếm theo mnemonic (label sinh từ json)

  • Byte log mỗi giây

  • Cảnh báo thiết bị ngừng gửi log

  • Có lỗi critical trong 5 phút

logcli

  • Đặt địa chỉ Loki

  • Query 1 giờ gần nhất

  • Theo dõi trực tiếp

  • Chỉ in nội dung dòng

  • Liệt kê label / giá trị

  • Liệt kê stream khớp selector

  • Metric query tại một thời điểm

ClickHouse SQL – hàm thời gian, quantile, arrayJoin, WITH FILL

trang đầy đủ ↗

Hàm thời gian

  • Bây giờ / hôm nay

  • Khoảng tương đối

  • Gom theo khoảng bất kỳ

  • Gom theo phút / 5 phút / giờ / ngày

  • Đổi múi giờ hiển thị

  • Chuỗi → DateTime

  • Unix timestamp

  • Hiệu hai mốc

  • Định dạng

  • Macro Grafana

Aggregate hay dùng

  • Percentile

  • Nhiều percentile một lần

  • Percentile chính xác (tốn RAM)

  • Đếm có điều kiện

  • Tổng có điều kiện

  • Đếm giá trị khác nhau (xấp xỉ / chính xác)

  • Giá trị mới nhất theo thời gian

  • N giá trị xuất hiện nhiều nhất (xấp xỉ)

  • Gom thành mảng

  • Điều kiện nhiều nhánh

Mảng và arrayJoin

  • Sinh nhiều dòng từ mảng

  • Tách chuỗi thành mảng

  • Lấy mọi chuỗi khớp regex

  • Lọc / biến đổi phần tử

  • Có chứa phần tử

  • Độ dài, phần tử đầu (index từ 1)

Chuỗi và IP

  • Lấy nhóm regex đầu tiên

  • Khớp regex (RE2)

  • LIKE không phân biệt hoa thường

  • Thay theo regex

  • IP thuộc dải

  • Chuỗi ↔ kiểu IPv4

clickhouse-client

  • Chạy một query

  • Xuất CSV có header

  • Tham số an toàn (tránh ghép chuỗi)

  • Nạp CSV vào bảng

  • Chạy file nhiều câu lệnh

  • Xem dòng theo chiều dọc

  • Query file CSV không cần server

Vector – source, transform, sink và VRL hay dùng

trang đầy đủ ↗

CLI

  • Kiểm config (gồm healthcheck sink)

  • Chỉ kiểm cú pháp, không gọi sink

  • Chạy với file config

  • Tự reload khi file đổi

  • Dashboard throughput/lỗi theo component

  • Xem event đi ra từ một component

  • Xem event đi vào một sink

  • REPL thử VRL

  • Chạy unit test khai báo trong config

  • Liệt kê component có sẵn

Source hay dùng

  • Syslog UDP/TCP thô

  • Syslog có parse sẵn

  • Đọc file log

  • Nhận HTTP/JSON

  • Nhận từ Kafka

  • Scrape Prometheus

  • Metric của host

  • Metric nội bộ của Vector

  • Sinh log giả để thử

Transform hay dùng

  • Sửa/parse bằng VRL

  • Lọc event

  • Tách luồng theo điều kiện

  • Gộp nhiều event thành một

  • Loại trùng

  • Giảm tải

  • Log thành metric

Sink và buffer

  • Debug ra terminal

  • Loki

  • ClickHouse

  • Elasticsearch

  • Prometheus exporter

  • Ghi file

  • Vector → Vector

  • Bỏ event (test tải)

VRL cơ bản

  • Gán/xoá field

  • Parse JSON

  • Parse syslog

  • Parse regex

  • Parse key=value

  • Ép kiểu

  • Kiểm tồn tại / null

  • Giá trị mặc định

  • Đổi chuỗi

  • Format thời gian

  • Merge object

  • Bỏ event

  • Biến môi trường

SNMP – snmpget, snmpwalk, OID IF-MIB hay dùng

trang đầy đủ ↗

Lệnh cơ bản

  • Lấy một OID (v2c)

  • Lấy OID kế tiếp

  • Walk một nhánh

  • Walk nhanh bằng GETBULK

  • Hiển thị dạng bảng

  • Dịch tên sang OID số

  • Dịch OID số sang tên

  • Mô tả một object trong MIB

  • Đổi timeout/retry

Tuỳ chọn hiển thị

  • In OID dạng số

  • Chỉ tên object ngắn

  • Chỉ giá trị, bỏ type

  • Một dòng oid value, dễ parse

  • Nạp mọi MIB đã cài

  • Thêm thư mục MIB riêng

  • Walk bị báo OID không tăng (agent lỗi)

Kubernetes – lệnh troubleshooting hay dùng

trang đầy đủ ↗

Khoanh vùng nhanh

  • Pod không Running/Completed trên toàn cluster

  • Pod restart nhiều nhất

  • Event mới nhất (thường là manh mối đầu tiên)

  • Chỉ xem Warning

  • Mô tả chi tiết Pod (Events ở cuối)

  • Trạng thái node

  • Tài nguyên đang dùng

Logs và exec

  • Log container đang chạy

  • Log của lần chạy trước khi crash

  • Log container cụ thể / tất cả container

  • Log mọi Pod theo label

  • Log 1 giờ gần nhất

  • Vào shell

  • Image không có shell: gắn container debug

  • Debug trên node

Network, Service, DNS

  • Service có endpoint không (rỗng = selector không khớp hoặc Pod chưa Ready)

  • So selector của Service với label của Pod

  • Kiểm tra DNS trong cluster

  • Gọi thử Service từ trong cluster

  • Truy cập Service từ máy local

  • Log CoreDNS

  • NetworkPolicy đang áp dụng

  • Ingress và backend

Node

  • Condition của node (MemoryPressure, DiskPressure, Ready)

  • Pod đang chạy trên node

  • Taint của node

  • Ngưng nhận Pod mới / đẩy Pod ra để bảo trì

  • Cho node nhận lại Pod

  • Log kubelet (SSH vào node)

  • Container runtime trên node

Deployment và rollout

  • Theo dõi rollout

  • Lịch sử revision

  • Quay về bản trước

  • Restart toàn bộ Pod

  • ReplicaSet nào đang giữ Pod

  • Image đang chạy thực tế

  • HPA không scale

Storage

  • PVC chưa Bound

  • PV và StorageClass

  • Volume gắn vào Pod

  • Lỗi attach/mount

Cấu hình và quyền

  • Context/namespace đang dùng

  • Kiểm tra quyền RBAC

  • Xem env thực tế trong container

  • So manifest local với cluster

  • Xuất YAML đang chạy (bỏ field runtime)

  • API resource có trong cluster

Docker – lệnh hay dùng

trang đầy đủ ↗

Container

  • Chạy nền, đặt tên, publish port

  • Chạy tạm, xoá khi thoát

  • Truyền env / file env

  • Tự khởi động lại

  • Giới hạn tài nguyên

  • Container đang chạy / tất cả

  • Lọc theo trạng thái

  • Dừng / khởi động / xoá

  • Vào shell

  • Chạy lệnh với user root

  • Copy file ra/vào

  • Đổi restart policy khi đang chạy

Log và kiểm tra

  • Theo dõi log

  • Log trong khoảng thời gian

  • CPU/RAM realtime

  • Xem cấu hình đầy đủ

  • IP của container

  • Exit code và lý do dừng

  • Trạng thái healthcheck

  • Port đã publish

  • Process trong container

  • File đã thay đổi so với image

  • Event realtime (die, oom, health)

Image và build

  • Build và gắn tag

  • Build với Dockerfile khác, build arg

  • Build không dùng cache

  • Build đa kiến trúc và push

  • Danh sách image

  • Lịch sử layer, dung lượng

  • Gắn tag / push / pull

  • Đăng nhập registry (đọc password từ stdin)

  • Xuất / nạp image offline

Volume và network

  • Tạo / liệt kê volume

  • Mount volume / bind mount chỉ đọc

  • Volume nằm ở đâu trên host

  • Backup volume ra tar

  • Tạo network bridge riêng

  • Gắn container vào network

  • Container nào trong network

Dọn dẹp

  • Xem dung lượng Docker đang chiếm

  • Xoá container đã dừng

  • Xoá image dangling / mọi image không dùng

  • Xoá build cache

  • Dọn tổng (không đụng volume)

Helm – lệnh hay dùng

trang đầy đủ ↗

Repo và tìm chart

  • Thêm repo

  • Cập nhật index

  • Liệt kê repo

  • Tìm chart trong repo đã thêm

  • Xem các version có sẵn

  • Xem values mặc định

  • Xem Chart.yaml / README

  • Kéo chart về máy

  • Chart OCI

Cài và nâng cấp

  • Cài hoặc nâng cấp (idempotent, dùng trong CI)

  • Ghim version chart

  • Ghi đè 1 giá trị

  • Nhiều file values (file sau đè file trước)

  • Chờ tài nguyên Ready, timeout

  • Tự rollback nếu fail

  • Giữ values cũ, chỉ đổi một chỗ

  • Gỡ release

Xem trạng thái release

  • Release trong namespace / mọi namespace

  • Gồm cả release lỗi/pending

  • Trạng thái, notes

  • Lịch sử revision

  • Values người dùng truyền vào

  • Values đầy đủ (gồm default)

  • Manifest đã apply

  • Values của revision cũ

Rollback

  • Về revision trước

  • Về revision cụ thể

  • Release kẹt pending-upgrade / pending-install

Debug template

  • Render ra YAML không cần cluster

  • Render một template

  • Chạy thử với cluster (server-side validate)

  • Kiểm tra lỗi chart

  • So sánh trước khi upgrade

  • Chạy test hook của chart

Viết chart

  • Tạo khung chart

  • Tải dependency khai báo trong Chart.yaml

  • Đóng gói

  • Đăng nhập và push lên OCI registry

Dockerfile – best practices

trang đầy đủ ↗

Layer cache

  • Copy file khai báo dependency trước, code sau

  • Gộp update + install + dọn cache trong một RUN

  • Cache thư mục download giữa các lần build (không vào image)

  • Dùng parser Dockerfile mới nhất

  • Kiểm tra lỗi Dockerfile mà không build

Multi-stage

  • Đặt tên stage

  • Copy artifact từ stage trước

  • Copy từ image khác (không cần stage)

  • Chỉ build tới stage nào đó (test, dev)

  • Stage không được tham chiếu sẽ bị BuildKit bỏ qua

Bảo mật và runtime

  • Chạy non-root (dùng UID số để Kubernetes runAsNonRoot kiểm tra được)

  • File thuộc user app mà không thêm layer chown

  • Pin base image theo digest

  • Secret lúc build, không lưu vào layer

  • Exec form để app là PID 1 và nhận SIGTERM

  • App không tự reap zombie / xử lý signal

  • Đổi signal dừng

  • Healthcheck cho Docker/Compose

ARG và ENV

  • Biến chỉ dùng lúc build

  • Biến có ở cả build và runtime container

  • ARG trước FROM chỉ dùng được trong dòng FROM

  • Dùng lại ARG đó trong stage: khai báo lại (không gán giá trị)

  • Truyền ARG sang ENV runtime

  • ARG có sẵn của BuildKit

  • Gắn label OCI

.dockerignore

  • Context nhỏ, build nhanh

  • Tránh lọt secret vào image

  • Cache ổn định

  • Ngoại lệ

kubectl – lệnh hay dùng hằng ngày

trang đầy đủ ↗

Context và namespace

  • Liệt kê context, context hiện tại

  • Chuyển context

  • Đặt namespace mặc định cho context hiện tại

  • Đổi tên context dài

  • Dùng kubeconfig khác cho một lệnh / cả shell

  • Gộp nhiều kubeconfig thành một file

  • Mình là ai với cluster

Apply, diff, delete

  • Apply file / thư mục / kustomize

  • Xem trước thay đổi (exit code 1 khi có diff)

  • Kiểm tra với API server mà không lưu

  • Server-side apply, giành quyền field

  • Xoá theo file / label

  • Chờ tới khi sẵn sàng

  • Chờ theo jsonpath

Tạo manifest bằng generator

  • Deployment

  • Service cho Deployment

  • Job / CronJob

  • Chạy Job ngay từ CronJob

  • Tra field của resource

Output: wide, jsonpath, custom-columns

  • Thêm cột node, IP

  • Hiện label thành cột

  • Chỉ lấy tên (dùng cho script)

  • Một field

  • Lặp qua list, mỗi phần tử một dòng

  • Lọc trong jsonpath

  • Bảng tự chọn cột

  • Sắp xếp

  • Giải mã một key của Secret

  • Xử lý phức tạp hơn

  • Theo dõi thay đổi

Sửa nhanh: patch, set, label, scale

  • Scale

  • Đổi image

  • Đặt env

  • Đặt resources

  • Patch strategic merge (mặc định)

  • Patch merge (CRD không hỗ trợ strategic)

  • Patch JSON (theo đường dẫn, xoá phần tử list)

  • Thêm / xoá label

  • Annotation (ghi đè)

  • Sửa trực tiếp trong editor

Port-forward và copy

  • Forward tới Service / Deployment / Pod

  • Nhiều port một lúc

  • Cho máy khác truy cập (cẩn thận)

  • Port local ngẫu nhiên

  • Copy file ra/vào Pod (cần tar trong container)

  • Proxy tới API server

Nginx – lệnh và cấu hình hay dùng

trang đầy đủ ↗

CLI

  • Kiểm tra cú pháp

  • In toàn bộ cấu hình đã gộp mọi include

  • Tìm server block đang xử lý một domain

  • Reload không ngắt kết nối

  • Phiên bản, module và tham số build

  • Dùng file cấu hình khác để thử

  • Mở lại file log (sau khi logrotate)

  • Log lỗi

try_files, root, alias

  • SPA: file có thật thì trả, không thì về index.html

  • File tĩnh hoặc chuyển cho app

  • Không có file thì 404 (không fallback)

  • root: nối nguyên URI vào sau

  • alias: thay phần khớp location

  • Liệt kê thư mục

return và rewrite

  • Redirect cả site sang HTTPS

  • Đổi domain giữ path

  • Trả nội dung trực tiếp

  • Chặn

  • Redirect một path, giữ query string

  • Rewrite có capture

  • Rewrite nội bộ rồi tìm location mới

  • Rewrite trong location hiện tại, không tìm lại

Log format

  • Log riêng cho một server

  • Tắt log cho healthcheck

  • Log có điều kiện (chỉ lỗi)

  • Debug chi tiết một lúc

  • Request chậm nhất

  • Đếm status code

Biến và directive hay dùng

  • Host client gửi / tên server khớp

  • URI gốc kèm query / URI đã chuẩn hoá

  • Server mặc định cho Host lạ

  • Giới hạn upload

  • Ẩn phiên bản nginx

  • Chỉ cho phép IP nhất định

  • Basic auth

  • Gộp đoạn cấu hình dùng chung

Claude Code cheatsheet

trang đầy đủ ↗

CLI

  • Mở phiên tương tác trong thư mục hiện tại

  • Mở phiên với prompt đầu tiên

  • Chạy một lần, in kết quả rồi thoát (script/CI)

  • Output JSON cho script

  • Tiếp tục phiên gần nhất trong thư mục

  • Chọn phiên cũ để resume

  • Chọn model

  • Bắt đầu ở plan mode (chỉ đọc, lập kế hoạch)

  • Cho phép sẵn tool cho phiên này

  • Chặn tool cho phiên này

  • Thêm thư mục ngoài cwd

  • Nạp settings bổ sung

  • Chạy trong git worktree riêng

  • Kiểm tra cài đặt

  • Cập nhật

MCP

  • Thêm server stdio

  • Thêm server kèm env

  • Thêm server HTTP

  • Chia sẻ cho team (ghi .mcp.json)

  • Liệt kê / chi tiết / xoá

  • Chỉ dùng server trong file cấu hình chỉ định

Slash command (trong phiên)

  • Danh sách lệnh

  • Tạo CLAUDE.md từ codebase

  • Sửa memory (CLAUDE.md)

  • Xoá context, bắt đầu lại

  • Nén hội thoại khi context đầy

  • Xem context đang dùng bao nhiêu

  • Đổi model

  • Xem/sửa rule permission

  • Xem hook đang nạp

  • Trạng thái MCP server

  • Quản lý subagent

  • Cấu hình chung

  • Resume phiên khác

  • Chẩn đoán cài đặt

Phím tắt

  • Xoay vòng chế độ permission (mặc định, accept edits, plan...)

  • Dừng Claude đang chạy

  • Quay lại sửa tin nhắn trước

  • Chạy lệnh shell trực tiếp, output vào context

  • Tham chiếu file

  • Xuống dòng không gửi

  • Thoát

Vector DB cheatsheet (pgvector, Qdrant)

trang đầy đủ ↗

pgvector: cài và tạo bảng

  • Bật extension (mỗi database)

  • Xem phiên bản

  • Chạy nhanh bằng Docker

  • Cột embedding

  • Tiết kiệm bộ nhớ (float16)

pgvector: index

  • HNSW (chính xác cao, build chậm, không cần dữ liệu trước)

  • HNSW chỉnh tham số

  • Tăng recall khi query HNSW

  • IVFFlat (build nhanh, nên tạo sau khi đã có dữ liệu)

  • Tăng recall khi query IVFFlat

  • Tăng bộ nhớ khi build index

  • Xem query có dùng index

Qdrant: chạy và tạo collection

  • Chạy bằng Docker (REST 6333, gRPC 6334)

  • Cài client Python

  • Liệt kê collection

  • Thông tin collection (số point, config)

  • Xoá collection

Claude API cheatsheet (Python SDK)

trang đầy đủ ↗

Client và tham số messages.create

  • Tạo client (đọc ANTHROPIC_API_KEY)

  • Client async

  • Retry / timeout (mặc định 2 lần retry, timeout 10 phút)

  • Ghi đè cho một lần gọi

  • Tham số bắt buộc

  • System prompt

  • Giới hạn độ dài output

  • Độ ngẫu nhiên

  • Dừng tại chuỗi

  • Tool

  • Extended thinking

  • Mức effort

  • Gắn metadata user

  • Lấy text từ response

  • Request id để báo lỗi

Streaming

  • Stream text (helper)

  • In từng đoạn text

  • Lấy message hoàn chỉnh sau khi stream

  • Stream event thô

Đếm token và Batch API

  • Đếm token trước khi gửi

  • Tạo batch (rẻ hơn ~50%, xử lý bất đồng bộ, tối đa 24 giờ)

  • Xem trạng thái

  • Đếm kết quả

  • Đọc kết quả

  • Huỷ batch

Git – lệnh hay dùng

trang đầy đủ ↗

Cấu hình một lần

  • Tên, email

  • Branch mặc định khi init

  • pull luôn rebase thay vì merge

  • Tự xoá ref remote đã bị xoá khi fetch

  • Nhớ cách giải conflict đã làm

  • Push branch mới không cần -u

  • Xem config và file nguồn

Branch

  • Tạo và chuyển sang branch mới

  • Tạo branch từ remote branch

  • Quay lại branch trước

  • Liệt kê branch kèm upstream, ahead/behind

  • Branch đã merge vào main

  • Xoá branch local (đã merge / ép)

  • Xoá branch trên remote

  • Đổi tên branch hiện tại

  • Làm việc song song 2 branch, không stash

Stage, commit, khôi phục file

  • Stage từng đoạn

  • Bỏ stage (giữ thay đổi)

  • Huỷ thay đổi chưa stage

  • Lấy file từ commit/branch khác

  • Sửa commit cuối (message hoặc thêm file)

  • Commit kèm chữ ký

  • Xem file sẽ bị clean xoá (dry-run)

Xem thay đổi và lịch sử

  • Diff chưa stage / đã stage

  • Diff giữa 2 branch (từ điểm rẽ nhánh)

  • Chỉ tên file thay đổi

  • Log gọn dạng đồ thị

  • Commit có ở feature mà chưa có ở main

  • Lịch sử 1 file (kể cả khi đổi tên)

  • Tìm commit thêm/xoá một chuỗi

  • Ai sửa dòng 10-30

  • Xem file ở commit cũ

  • Thống kê commit theo người

  • Tìm commit gây lỗi (nhị phân)

Stash

  • Cất thay đổi kèm ghi chú (cả file untracked)

  • Liệt kê / xem nội dung

  • Lấy lại và xoá khỏi stash

  • Lấy lại nhưng giữ trong stash

  • Tạo branch từ stash

Remote, đồng bộ

  • Xem / thêm remote

  • Fetch tất cả và dọn ref cũ

  • Pull bằng rebase

  • Push branch mới và đặt upstream

  • Force push an toàn

  • Clone nhẹ (chỉ commit mới nhất)

Undo

  • Bỏ commit cuối, giữ thay đổi ở stage

  • Bỏ commit cuối, giữ thay đổi ở working tree

  • Bỏ hẳn commit và thay đổi (nguy hiểm)

  • Tạo commit đảo ngược (đã push)

  • Revert một merge commit

  • Lấy 1 commit từ branch khác

  • Xem mọi vị trí HEAD từng trỏ tới

Tag

  • Tạo annotated tag

  • Push một tag / mọi tag annotated đi kèm commit

  • Xoá tag local và remote

  • Tag gần nhất

uv – quản lý Python, project và tool

trang đầy đủ ↗

Cài đặt, cập nhật

  • Cài uv (Linux/macOS)

  • Cập nhật uv (bản cài bằng script)

  • Bật shell completion (bash)

Project

  • Tạo project app (mặc định)

  • Tạo project dạng package / library

  • Thêm dependency

  • Thêm dependency dev

  • Thêm vào group tuỳ chọn

  • Thêm extra (optional-dependencies)

  • Nhập từ requirements.txt cũ

  • Gỡ dependency

  • Xem cây dependency / gói có bản mới

  • Ai kéo gói X vào

  • Xem / tăng version project

Lock và sync

  • Tạo/cập nhật uv.lock

  • Nâng toàn bộ / một gói trong lock

  • Kiểm tra lock khớp pyproject.toml (CI)

  • Cài môi trường đúng theo lock

  • CI: lỗi nếu lock cần cập nhật

  • Cài theo lock, không resolve lại

  • Production, bỏ dev group

  • Kèm mọi extras / mọi group

  • Xuất requirements.txt cho hệ thống cũ

Chạy

  • Chạy lệnh trong venv project (tự sync)

  • Chạy kèm gói tạm thời

  • Nạp biến từ file env

  • Chạy tool một lần, không cài (uvx = uv tool run)

  • Chạy tool phiên bản cụ thể

  • Chạy tool mà tên lệnh khác tên gói

Script một file (PEP 723)

  • Tạo script có khối metadata

  • Thêm dependency vào script

  • Chạy script (tự tạo env riêng)

Python

  • Liệt kê bản có sẵn / đã cài

  • Cài Python

  • Ghim version cho project (.python-version)

  • Đường dẫn interpreter đang dùng

  • Tạo project với Python cụ thể

Tool cài lâu dài (thay pipx)

  • Cài tool

  • Cài kèm plugin

  • Liệt kê / nâng tất cả

  • Gỡ

  • Thêm thư mục bin của tool vào PATH

venv và giao diện pip

  • Tạo venv

  • Tạo venv có sẵn pip (cho tool cũ cần pip)

  • Cài như pip

  • Compile lock kiểu pip-tools

  • Đồng bộ đúng theo file (gỡ gói thừa)

  • Liệt kê / freeze

Cache, CI

  • Thư mục cache / dung lượng

  • Dọn cache

  • Dọn cache trước khi lưu ở CI

GitHub Actions – cú pháp workflow hay dùng

trang đầy đủ ↗

Trigger (on:)

  • Push lên main, chỉ khi đổi file trong src/

  • Bỏ qua khi chỉ sửa docs

  • Pull request vào main

  • Push tag release

  • Theo lịch (giờ UTC)

  • Bấm tay trên UI / gh workflow run

  • Cho workflow khác gọi

  • Khi tạo release

Job và step

  • Quyền tối thiểu cho GITHUB_TOKEN

  • Cho phép OIDC (AWS/GCP/Azure không cần key)

  • Job chạy sau job khác

  • Chỉ chạy trên main

  • Step chạy kể cả khi step trước lỗi

  • Giới hạn thời gian

  • Cho phép job lỗi mà không fail workflow

  • Thư mục làm việc mặc định

  • Gắn môi trường có approval/secret riêng

Matrix

  • Chạy nhiều version

  • Nhiều OS

  • Không huỷ job khác khi một job lỗi

  • Bớt / thêm tổ hợp

  • Giới hạn số job song song

Secrets, biến, output

  • Đọc secret (đặt dưới env: của step/job)

  • Biến cấu hình không bí mật

  • Tạo secret bằng CLI

  • Ẩn một giá trị khỏi log

  • Ghi output của step

  • Đặt env cho các step sau

  • Ghi tóm tắt lên trang run

  • Giá trị mặc định khi rỗng

  • Context hay dùng

Cache, artifact, concurrency

  • Cache có sẵn của setup-python

  • Cache của setup-uv

  • Cache tuỳ ý

  • Upload artifact

  • Download ở job sau

  • Huỷ run cũ khi push mới cùng branch

gh CLI

  • Liệt kê run gần đây

  • Theo dõi run đang chạy

  • Xem log của step lỗi

  • Chạy lại job lỗi

  • Kích hoạt workflow_dispatch

Regex cho log và config mạng – IP, MAC, interface

trang đầy đủ ↗

Địa chỉ IP, prefix

  • IPv4 dạng lỏng (bắt cả 999.1.1.1)

  • IPv4 chặt (0-255 mỗi octet)

  • IPv4 prefix /0-/32

  • Ứng viên IPv6 (rồi kiểm bằng ipaddress)

  • Lấy mọi IPv4 trong log

  • Top IP xuất hiện nhiều nhất

  • Lấy prefix có mask

  • Che IP trước khi gửi log cho người khác

MAC address

  • Dạng 00:1a:2b:3c:4d:5e hoặc 00-1A-...

  • Dạng Cisco 001a.2b3c.4d5e

  • grep -E, không phân biệt hoa thường

  • grep -E dạng Cisco

Interface

  • IOS XR (Gi/TenGigE/HundredGigE/Bundle-Ether/Loopback, có sub-if)

  • Junos (ge-0/0/0.100, et-0/0/0:1, ae0.0, lo0, irb.100)

  • grep -E nhanh cho IOS XR

Log, timestamp, sự kiện

  • Timestamp syslog Nov 6 08:01:02

  • Timestamp ISO 8601

  • Neighbor BGP đổi trạng thái (IOS XR ADJCHANGE)

  • Chỉ lấy IP neighbor bị Down

  • Đếm số lần flap

  • Tách cặp key=value (value có thể trong ngoặc kép)

  • Version dạng v7.11.2

Config và giá trị

  • Bỏ dòng trống và comment (#, !)

  • VLAN ID hợp lệ 1-4094 (cả chuỗi)

  • ASN 16-bit private 64512-65534 (cả chuỗi)

  • Xem khối config quanh một dòng

Python type hints và Pydantic v2

trang đầy đủ ↗

Type hints cơ bản

  • Collection built-in (không cần typing.List)

  • Có thể None

  • Một trong vài giá trị cố định

  • Alias kiểu (3.12)

  • Generic function (3.12)

  • Tham số nhận iterable / mapping (chấp nhận rộng)

  • Hàm làm tham số

  • Generator

  • Hằng không được gán lại

  • Method trả về chính class (3.11)

  • Gắn metadata vào kiểu

  • Báo mypy nhánh không thể xảy ra

  • Ép kiểu cho type checker (không đổi runtime)

Pydantic v2: model và field

  • Cấm field lạ / bỏ qua field lạ

  • Không tự ép kiểu ("1" không thành 1)

  • Model bất biến (hashable)

  • Đọc từ object ORM/attribute

  • Giá trị mặc định là list/dict mới

  • Ràng buộc số / chuỗi

  • Tên field trong JSON khác tên Python

  • Validator một field (chạy sau khi ép kiểu)

  • Validator trước khi ép kiểu

  • Validator nhiều field

  • Field tính toán, có trong dump

Validate và serialize

  • Từ dict / từ chuỗi JSON

  • Ra dict (giữ kiểu Python)

  • Ra dict chỉ gồm kiểu JSON (IP thành str)

  • Bỏ field None / chỉ lấy vài field

  • Ra chuỗi JSON

  • Copy và sửa vài field

  • Validate kiểu không phải model (list[...])

  • JSON Schema (cho tool/LLM, OpenAPI)

  • Danh sách field

  • Lấy secret thật

pytest – lệnh và pattern hay dùng

trang đầy đủ ↗

Chạy chọn lọc

  • Chạy gọn / chi tiết từng test

  • Một file / một test / một case parametrize

  • Lọc theo tên (biểu thức)

  • Lọc theo mark

  • Dừng ở lỗi đầu tiên / sau N lỗi

  • Chỉ chạy lại test fail lần trước

  • Dừng ở lỗi, lần sau chạy tiếp từ đó

  • Liệt kê test, không chạy

  • Hiện print() ra màn hình

  • Vào debugger khi fail

  • Traceback ngắn, kèm biến local

  • Tóm tắt lý do skip/xfail/fail cuối output

  • 10 test chậm nhất

  • Chạy song song (pytest-xdist)

Fixture

  • Dùng fixture

  • Dùng chung cho nhiều file

  • Phạm vi

  • Tự áp cho mọi test

  • Liệt kê fixture có sẵn

  • Xem thứ tự setup/teardown

Parametrize, mark, assert

  • Bỏ qua có điều kiện

  • Bỏ qua trong thân test

  • Bỏ qua nếu thiếu thư viện

  • Biết là đang lỗi

  • Mark tự đặt (phải khai báo trong markers)

  • So sánh số thực

  • Kiểm tra exception và message

  • Kiểm tra warning

Cấu hình và coverage

  • Coverage cho package app, hiện dòng chưa test

  • Xuất HTML / XML cho CI

  • Fail nếu coverage dưới ngưỡng

  • Đo cả nhánh if/else

Makefile và just làm task runner

trang đầy đủ ↗

Cú pháp Make

  • Target không phải file (luôn chạy)

  • Target mặc định khi gõ make

  • Phụ thuộc: chạy lint trước test

  • Gán ngay / gán lười (đánh giá khi dùng)

  • Gán nếu chưa có (cho phép override từ env)

  • Nối thêm

  • Dùng biến Make / biến shell trong recipe

  • Kết quả lệnh shell

  • Danh sách file

  • Xuất biến ra env của recipe

  • Không in lệnh trước khi chạy

  • Bỏ qua lỗi của một dòng

  • Biến tự động: target / prerequisite đầu / tất cả / thư mục target

  • Dùng bash + dừng ngay khi lỗi

  • Mỗi dòng recipe là một shell riêng

Lệnh make

  • Chạy target

  • Truyền / override biến

  • In lệnh sẽ chạy, không chạy (dry-run)

  • Chạy ở thư mục khác

  • Chạy song song

  • Bắt buộc build lại mọi target

  • Xem giá trị biến sau khi parse

  • Tiếp tục các target khác khi một target lỗi

Cú pháp và lệnh just

  • Liệt kê recipe kèm comment phía trên

  • Chạy recipe / truyền tham số

  • Tham số có mặc định / nhận nhiều giá trị

  • Dùng biến, tham số

  • Biến từ lệnh shell

  • Biến từ env, có mặc định

  • Tự nạp file .env

  • Phụ thuộc, kèm tham số

  • Hỏi xác nhận trước khi chạy

  • Script nhiều dòng trong một shell

  • Dry-run

  • Xem một recipe / giá trị biến

  • Kiểm tra / sửa format justfile

jq và yq – lọc, biến đổi JSON và YAML trên dòng lệnh

trang đầy đủ ↗

jq: đọc và lọc

  • Pretty-print / thu gọn 1 dòng

  • Chuỗi không có dấu nháy (dùng trong shell)

  • Lọc theo điều kiện

  • Lấy vài field

  • Field null hoặc thiếu

  • Giá trị mặc định khi null

  • Khớp regex / tiền tố

  • Mảng con lồng nhau, giữ biến của cha

  • Đếm phần tử

  • Danh sách key

  • Thoát với mã lỗi nếu kết quả null/false/rỗng (dùng trong script)

jq: biến đổi

  • Map mảng

  • Sắp xếp / loại trùng

  • Đếm theo nhóm

  • Mảng thành object {hostname: ip}

  • Duyệt key/value của object

  • Lọc key của object

  • Xoá field

  • Sửa giá trị theo điều kiện

  • Cập nhật tại chỗ một nhánh

  • Gộp object (merge sâu)

  • Gộp mảng từ nhiều file

  • Tổng, max, trung bình

jq: biến shell và xuất dữ liệu

  • Truyền chuỗi từ shell (an toàn, không ghép chuỗi)

  • Truyền số/JSON

  • Ra TSV / CSV

  • Nối chuỗi từ mảng

  • Tạo JSON mới cho body API

  • Xử lý output API

yq (mikefarah): YAML

  • Đọc giá trị

  • Key có ký tự đặc biệt / lấy từ biến

  • Liệt kê key

  • Duyệt key/value

  • Sửa và in ra (không ghi file)

  • Sửa trực tiếp file

  • Gán từ biến môi trường (luôn là chuỗi)

  • Xoá node

  • Giá trị mặc định

  • Tạo YAML từ đầu

  • YAML sang JSON (1 dòng)

  • JSON sang YAML

  • Thoát lỗi nếu không tìm thấy

  • Merge nhiều file (file sau đè file trước)

Manifest nhiều document (---)

  • Lấy field ở mọi document

  • Chỉ document thoả điều kiện

  • Sửa một document, giữ nguyên các document khác

  • Sửa image theo tên container

BGP – lệnh show/clear/debug trên IOS XR và Junos

trang đầy đủ ↗

Session

  • Tóm tắt mọi neighbor

  • Tóm tắt mọi AFI/SAFI

  • Chi tiết một neighbor (state, timer, lý do reset)

  • Chỉ dòng trạng thái và lỗi gần nhất

  • Neighbor chưa Established (cột state hiện Idle/Active/Connect thay vì số prefix)

  • Cấu hình đang áp cho neighbor

  • Log thay đổi session

Route nhận và gửi

  • Route nhận và được chấp nhận

  • Route nhận trước policy, kể cả bị loại

  • Route bị import policy loại hoặc next-hop không resolve

  • Route gửi đi

  • Đếm route gửi đi

  • Chi tiết mọi path của một prefix

  • Vì sao path này thắng/thua

  • Route BGP đã vào RIB

  • Thống kê số route theo protocol

Policy

  • Xem policy

  • Xem prefix-set / prefix-list

  • Policy đang gắn ở đâu

  • Thử policy với một prefix

Clear

  • Áp lại policy inbound (không reset TCP)

  • Gửi lại toàn bộ update outbound

  • Hard reset session

VPN / VRF

  • Session PE-CE trong VRF

  • Bảng định tuyến VRF

  • VPNv4 route theo RD

  • Một prefix VPN (label, RT)

  • Session VPNv4 với RR

BGP communities – standard, extended, large và well-known

trang đầy đủ ↗

Khai báo set

  • Một giá trị

  • Nhiều giá trị (XR: phân tách bằng ,)

  • Wildcard theo ASN

  • Dải giá trị

  • Regex

  • Well-known

  • Extended RT

  • Large

Match

  • Có ít nhất một giá trị trong set

  • Có đủ mọi giá trị

  • Một trong nhiều set (OR)

  • Route target

  • Large community

  • Không có community

Set và delete

  • Thêm, giữ community cũ

  • Thay toàn bộ

  • Thêm giá trị inline

  • Xoá theo set/wildcard

  • Xoá hết

  • Gắn RT

  • Gắn large community

Gửi và xem

  • Gửi community cho eBGP

  • Gửi extended community cho eBGP

  • Route mang một community

  • Route khớp community có tên

  • Community của một prefix

IPv6 – loại địa chỉ, ND/SLAAC và lệnh show trên IOS XR, Junos, Linux

trang đầy đủ ↗

Lệnh show

  • Địa chỉ trên interface

  • Chi tiết interface (link-local, ND)

  • Neighbor cache

  • Bảng định tuyến

  • Route tới một đích

  • RA đang gửi/nhận

  • Ping

  • Ping link-local

  • Traceroute

  • BGP IPv6

  • IGP IPv6

Cấu hình nhanh

  • Gán địa chỉ

  • Chỉ bật link-local

  • Gửi RA cho prefix LAN

  • Bật forwarding

  • Host nhận RA khi đã bật forwarding

Linux network – lệnh iproute2, ss, nmcli, resolvectl

trang đầy đủ ↗

Địa chỉ và link

  • Xem IP gọn, có màu

  • Trạng thái link gọn (UP/DOWN, MAC)

  • Chi tiết một interface (MTU, state, qdisc)

  • Thêm / xoá IP (tạm thời)

  • Bật / tắt interface

  • Đổi MTU

  • Bộ đếm packet, error, drop

  • Tạo VLAN subinterface

  • Output JSON để script

  • Theo dõi thay đổi link/addr/route realtime

Route và policy routing

  • Bảng route chính (IPv4 / IPv6)

  • Kernel sẽ đi đường nào tới đích

  • Thêm default / static route

  • Đổi route đang có

  • Mọi bảng route

  • Policy rule (from/fwmark → table)

  • VRF: liệt kê / route trong VRF

ARP / NDP

  • Bảng neighbor (ARP + NDP)

  • Chỉ entry lỗi

  • Xoá cache neighbor của interface

  • Gửi ARP kiểm tra trùng IP

Socket với ss

  • Port đang listen + process

  • Tổng quan số socket theo trạng thái

  • Session BGP (port 179)

  • Kết nối tới một host

  • Thông tin TCP: RTT, cwnd, retrans

  • Kèm timer (keepalive, retrans)

  • Socket trong network namespace

NetworkManager (nmcli)

  • Trạng thái thiết bị / connection

  • Đặt IP tĩnh

  • Áp dụng

  • Xem chi tiết connection

DNS với systemd-resolved

  • DNS server theo từng link

  • Phân giải thử qua resolved

  • Xoá cache

  • Thống kê cache hit/miss

  • Đặt DNS tạm cho link

  • Hỏi thẳng server, bỏ qua resolved

NIC

  • Tốc độ, duplex, link detected

  • Counter phần cứng (crc, drop)

  • Driver, firmware

tcpdump – filter BPF, ghi và đọc pcap

trang đầy đủ ↗

Tuỳ chọn hay dùng

  • Liệt kê interface bắt được

  • Bắt trên interface, không resolve

  • Bắt mọi interface

  • Dừng sau N gói

  • Xem MAC / VLAN tag

  • Chi tiết header (TTL, options)

  • In payload hex + ASCII / chỉ ASCII

  • Chỉ chiều vào hoặc ra

  • Line-buffered để pipe sang grep

  • Snaplen đầy đủ (mặc định đã là 262144)

Filter BPF cơ bản

  • Theo host / subnet

  • Nguồn hoặc đích

  • Theo port / dải port

  • Kết hợp, loại trừ SSH của chính mình

  • ICMP / ICMPv6

  • Theo MAC

  • ARP

  • Gói trong VLAN 100

  • Chỉ SYN hoặc RST

  • SYN không kèm ACK (kết nối mới)

  • Gói IPv4 bị fragment

Giao thức mạng hay soi

  • BGP (TCP 179)

  • BGP chỉ SYN/RST (session không lên)

  • BFD single-hop / multihop / echo

  • gNMI/gRPC (port tuỳ cấu hình: 9339 IANA, 57400 hay gặp trên IOS XR)

  • OSPF (IP proto 89)

  • IS-IS (không phải IP, dùng OSI)

  • LACP / LLDP

  • DNS

  • NetFlow/IPFIX, sFlow tới collector

  • Syslog / SNMP trap

Ghi và đọc pcap

  • Ghi ra file (mở bằng Wireshark)

  • Ghi file và đồng thời in ra màn hình

  • Xoay vòng 10 file x 100 MB

  • Mỗi giờ 1 file theo tên thời gian

  • Đọc file

  • Đọc file kèm filter

  • Thời gian tuyệt đối dễ đọc

  • Bắt từ xa, xem bằng Wireshark local

journalctl – đọc log systemd

trang đầy đủ ↗

Lọc theo nguồn

  • Log một service

  • Nhiều unit / theo pattern

  • Theo dõi realtime

  • 100 dòng cuối, không pager

  • Theo syslog identifier (tag)

  • Theo binary

  • Theo PID

  • Log kernel (như dmesg)

  • User unit (systemctl --user)

Lọc theo thời gian và boot

  • Từ 1 giờ trước

  • Khoảng thời gian

  • Hôm nay / hôm qua

  • Boot hiện tại

  • Boot trước (xem vì sao máy reboot/crash)

  • Danh sách các boot

  • Mới nhất trước

  • Nhảy tới cuối trong pager

Lọc theo nội dung và mức độ

  • Chỉ error trở lên

  • Khoảng mức độ (warning → err)

  • Grep trong MESSAGE (regex PCRE2)

  • Grep không phân biệt hoa thường

  • OOM killer

  • Kèm giải thích từ catalog

Định dạng output

  • Chỉ message, không prefix

  • Timestamp ISO 8601

  • Có microsecond

  • JSON mỗi dòng (để jq)

  • Mọi field của entry

  • Giờ UTC

  • Các field đang có / giá trị của field

Dung lượng và bảo trì

  • Journal đang chiếm bao nhiêu

  • Giảm xuống dưới 500 MB

  • Xoá log cũ hơn 2 tuần

  • Ép rotate rồi mới vacuum (file active không bị xoá)

  • Kiểm tra file hỏng

  • Đọc journal copy từ máy khác

Bash scripting – pattern an toàn hay dùng

trang đầy đủ ↗

Strict mode và lỗi

  • Dừng khi lệnh lỗi, biến chưa gán, lỗi trong pipe

  • Debug từng lệnh

  • Cho phép một lệnh được lỗi

  • Bắt lỗi mà không bị -e dừng

  • Dọn dẹp khi thoát (kể cả lỗi)

  • Bắt Ctrl+C

  • Biến bắt buộc, báo lỗi rõ

Biến và chuỗi

  • Giá trị mặc định

  • Độ dài chuỗi

  • Bỏ prefix ngắn nhất / dài nhất

  • Bỏ suffix

  • Thay lần đầu / thay tất cả

  • Cắt chuỗi

  • Chữ thường / hoa

  • Regex và lấy group

  • So khớp glob

  • Tách theo dấu phẩy

  • Here-doc không expand biến

Mảng

  • Khai báo / thêm phần tử

  • Duyệt an toàn

  • Số phần tử

  • Đọc file thành mảng

  • Mảng kết hợp

  • Duyệt key của mảng kết hợp

Vòng lặp và song song

  • Đọc file từng dòng

  • Dãy số

  • Duyệt file có space trong tên

  • Chạy song song 10 luồng

  • Chờ job nền

  • Retry với backoff

  • Giới hạn thời gian lệnh

Kiểm tra

  • File tồn tại / thư mục / đọc được

  • Chuỗi rỗng / không rỗng

  • So sánh số

  • Lệnh có tồn tại

  • Chạy với root

Kiểm tra mạng – iperf3, mtr, ping MTU, nc, curl timing

trang đầy đủ ↗

iperf3 – băng thông

  • Chạy server (port mặc định 5201)

  • Server chỉ phục vụ 1 lần rồi thoát

  • Client TCP 10 giây (client → server)

  • Chiều ngược lại (server → client)

  • Cả hai chiều cùng lúc (iperf3 3.7+)

  • 4 luồng song song, 30 giây

  • UDP 100 Mbit/s, xem jitter và loss

  • Port khác / ép IPv6

  • Bind source IP (máy nhiều uplink)

  • Xuất JSON

mtr – loss và latency theo hop

  • Báo cáo 100 vòng, không DNS, kèm IP

  • Hiển thị AS number mỗi hop

  • Dùng TCP SYN tới port 443 (qua firewall chặn ICMP)

  • Dùng UDP

  • Hiện nhãn MPLS (ICMP extension)

  • Xuất JSON

  • Khoảng cách giữa probe (root mới được < 1 s)

Ping, MTU, path

  • Ping 5 gói, timeout mỗi gói 1 s

  • Ping nhanh để thấy loss (cần root khi < 0.2 s)

  • Kiểm tra MTU 1500 (IPv4: 1472 + 28 header, cấm phân mảnh)

  • Kiểm tra jumbo 9000

  • IPv6 MTU 1500 (1452 + 48 header)

  • Ping từ source / interface cụ thể

  • Dò PMTU theo hop, không cần root

nc – port và kết nối thô

  • Port TCP có mở không (timeout 3 s)

  • Quét dải port

  • Kiểm tra UDP (chỉ tin khi có phản hồi)

  • Mở listener để test firewall

  • Gửi một dòng rồi đóng

  • Đẩy file qua TCP

curl – thời gian từng pha

  • Chỉ xem header + verbose TLS

  • Ép IP đích, giữ SNI/Host (test backend cụ thể)

  • Chuyển host:port sang đích khác

  • Giới hạn thời gian connect / tổng

  • Ra bằng interface / source IP

  • Lặp 20 lần lấy total time

User, group, sudo và quyền file – useradd, visudo, chmod, ACL

trang đầy đủ ↗

User và group

  • Tạo user có home, shell bash, thêm group sudo

  • Tạo user tương tác (Debian/Ubuntu)

  • User hệ thống cho service, không login

  • Đặt mật khẩu

  • Thêm vào group (giữ group cũ, phải có -a)

  • Gỡ khỏi group

  • Xem uid, gid, các group

  • Group hiện tại của phiên (chưa logout thì chưa thấy group mới)

  • Khoá / mở khoá đăng nhập bằng mật khẩu

  • Hết hạn tài khoản

  • Xem chính sách mật khẩu / ép đổi lần đầu

  • Xoá user kèm home và mail spool

  • Tạo group

  • Ai đang login / lịch sử login

sudo

  • Sửa sudoers an toàn (kiểm cú pháp trước khi lưu)

  • Kiểm tra cú pháp toàn bộ

  • Xem user được phép gì

  • Chạy với user khác

  • Shell root (login)

  • Giữ biến môi trường cụ thể

Quyền file

  • Đặt quyền dạng số (rw-r-----)

  • Thêm quyền thực thi cho owner

  • Thư mục cho group cùng ghi, file mới kế thừa group

  • Thư mục kiểu /tmp (chỉ owner xoá được file của mình)

  • Đổi owner và group, đệ quy

  • Quyền khác nhau cho thư mục và file

  • Xem quyền dạng số

  • Quyền từng cấp của đường dẫn (lỗi Permission denied)

  • Tìm file world-writable

  • Tìm file SUID

  • umask hiện tại

ACL (gói acl)

  • Cho thêm một user quyền đọc/ghi

  • Cho group quyền trên thư mục (X = execute chỉ cho thư mục)

  • ACL mặc định cho file tạo mới trong thư mục

  • Xem ACL

  • Gỡ một entry / gỡ hết

LVM và ổ đĩa – lsblk, pvcreate, vgextend, lvextend, fstab

trang đầy đủ ↗

Xem hiện trạng

  • Cây disk/partition/LV, filesystem, UUID, mount

  • Kích thước, model, loại (disk/part/lvm)

  • UUID và type của một device

  • Tóm tắt PV / VG / LV

  • VG còn trống bao nhiêu

  • Chi tiết

  • Dung lượng filesystem

  • Disk mới gắn nóng (VM) chưa thấy

Mở rộng

  • Dùng nốt chỗ trống trong VG + resize filesystem

  • Thêm đúng 20G

  • Thêm disk mới vào VG

  • Disk ảo được tăng size: nới partition

  • Báo LVM PV đã lớn hơn

  • Resize filesystem thủ công (nếu quên -r)

Tạo volume mới và mount

  • Tạo VG từ disk mới

  • Tạo LV 50G / dùng hết VG

  • Tạo filesystem

  • Mount thử

  • Snapshot LV (trước khi nâng cấp)

  • Gỡ mount / thấy ai đang giữ

rsync, scp, sftp – copy file giữa máy và qua jump host

trang đầy đủ ↗

rsync cơ bản

  • Copy thư mục lên server (giữ quyền, time, symlink)

  • Kéo về từ server

  • Nén khi truyền (link chậm, file text)

  • Dry-run, liệt kê thay đổi chi tiết

  • Mirror: xoá file ở đích không còn ở nguồn

  • Tiến độ + giữ file dở dang để resume

  • Tiến độ tổng thay vì từng file

  • Thống kê cuối

  • Tạo thư mục đích còn thiếu (rsync 3.2.3+)

  • Cần sudo ở phía remote

Lọc file

  • Bỏ thư mục và kiểu file

  • Danh sách exclude từ file

  • Chỉ lấy *.cfg, giữ cấu trúc thư mục

  • Copy theo danh sách file

  • Xoá ở đích cả file đang bị exclude

  • Bỏ qua file lớn

Hành vi so sánh và an toàn

  • So bằng checksum thay vì size+mtime

  • Không ghi đè file đã có ở đích

  • Không ghi đè file mới hơn ở đích

  • Giữ bản cũ khi bị ghi đè/xoá

  • Giới hạn băng thông (KB/s)

  • Giữ hardlink, ACL, xattr, uid số (backup đầy đủ, chạy bằng root)

  • Backup kiểu snapshot (hardlink file không đổi)

  • Di chuyển (xoá nguồn sau khi copy xong)

SSH options, jump host

  • Port SSH khác, key riêng

  • Qua bastion

  • Dùng alias trong ~/.ssh/config

scp và sftp

  • Copy file lên

  • Copy thư mục, giữ time/quyền

  • Port khác (chữ P hoa)

  • Qua bastion

  • Giới hạn băng thông (Kbit/s)

  • Thiết bị/SSH server cũ chỉ hiểu giao thức SCP cũ

  • Phiên sftp tương tác

  • sftp chạy batch

Xử lý text – awk, sed, cut, sort, uniq, xargs, column

trang đầy đủ ↗

awk

  • In cột 1 và cột cuối

  • Đổi dấu phân cách đầu vào

  • Bỏ dòng header

  • Lọc theo giá trị cột

  • Lọc theo regex trên một cột

  • Tổng một cột

  • Tổng theo nhóm

  • Bỏ dòng trùng, giữ thứ tự

  • Định dạng cột cố định

  • Xuất CSV

  • In khối từ dòng khớp A đến dòng khớp B

  • Interface nào đang shutdown (config dạng khối)

sed

  • Thay thế (mọi lần trong dòng)

  • Sửa tại chỗ, giữ bản .bak

  • Regex mở rộng, giữ nhóm

  • Dấu phân cách khác khi có /

  • In dòng 10-20

  • In khối giữa 2 pattern

  • Xoá dòng comment và dòng trống

  • Chèn dòng đầu file

  • Số dòng chứa pattern

  • Nhiều lệnh

cut, sort, uniq, tr, paste

  • Cột 1 và 3, phân cách ,

  • Ký tự 1-20 mỗi dòng

  • Sort số, ngược

  • Sort theo cột 2, dạng số

  • Sort giá trị dạng 1K/2M/3G

  • Sort địa chỉ IPv4

  • Đếm và xếp hạng

  • Chỉ dòng trùng / chỉ dòng duy nhất

  • Dòng có trong B mà không có trong A (đã sort)

  • Gộp nhiều khoảng trắng thành một

  • Chữ hoa → thường

  • Nối các dòng thành một, cách bằng ,

  • Bỏ dòng đầu

xargs, column

  • Chạy lệnh cho mỗi dòng

  • Song song 8 tiến trình

  • An toàn với tên file có khoảng trắng

  • Gom nhiều tham số cho mỗi lệnh

  • Xem lệnh trước khi chạy

  • Căn cột cho output lộn xộn

  • Căn bảng CSV

strace, lsof, /proc – debug tiến trình đang chạy

trang đầy đủ ↗

strace: chạy và attach

  • Chạy lệnh dưới strace, ghi ra file

  • Attach process đang chạy

  • Theo cả tiến trình con/thread

  • Mỗi tiến trình con một file

  • Thống kê số syscall và thời gian

  • Sắp xếp thống kê theo số lần gọi

  • Hiện thời gian mỗi syscall

  • Timestamp tuyệt đối (µs) / tương đối

  • Không cắt chuỗi dài (mặc định 32 ký tự)

  • Giải mã fd thành đường dẫn / socket

  • Stack trace tại mỗi syscall

strace: lọc

  • Chỉ syscall liên quan file

  • Chỉ file mở bằng openat

  • Chỉ syscall mạng

  • Chỉ tiến trình / signal

  • Nhiều nhóm hoặc tên syscall

  • Chỉ syscall thất bại

  • Chỉ syscall thành công

  • Chỉ thao tác trên một path

  • Chỉ một số signal

lsof

  • File đang mở bởi process

  • Theo tên lệnh / theo user

  • Ai đang lắng nghe TCP

  • Ai dùng cổng 443

  • Kết nối tới một host

  • Chỉ IPv4 / IPv6

  • Ai đang mở file này

  • Ai đang giữ filesystem (khó umount)

  • Mọi file dưới thư mục

  • File đã xoá nhưng còn mở (chiếm đĩa)

  • Unix socket

  • Chỉ in PID (dùng trong script)

  • Kết hợp điều kiện bằng AND

  • Lặp lại mỗi 2 giây

/proc/<pid>

  • Dòng lệnh đầy đủ (ngăn cách bằng NUL)

  • Biến môi trường

  • Danh sách fd và đích

  • Số fd đang mở

  • Giới hạn (open files, nproc...)

  • Trạng thái, RSS, số thread

  • Syscall đang chờ

  • Kernel stack (cần root)

  • Thư mục làm việc / binary

  • Vùng nhớ map

  • Điểm OOM

  • Namespace

ltrace

  • Trace lời gọi thư viện

  • Kèm cả syscall

  • Thống kê

  • Attach process

OpenSSL – lệnh hay dùng với cert, key, CSR

trang đầy đủ ↗

Tạo key và CSR

  • Key EC P-256 (khuyên dùng)

  • Key RSA 3072

  • CSR có SAN (một lệnh)

  • Đọc CSR, xem SAN

  • Kiểm tra chữ ký CSR

  • Self-signed cert cho lab (key + cert cùng lúc)

Đọc cert

  • Toàn bộ nội dung

  • Subject, issuer, thời hạn

  • Chỉ xem SAN

  • Còn hạn ít nhất 30 ngày? (exit 0 = còn)

  • Fingerprint SHA-256

  • Đếm số cert trong bundle

  • Xem từng cert trong bundle

Kiểm tra chain

  • Verify cert với root CA

  • Verify có intermediate

  • Verify với trust store hệ thống

Kết nối tới server (s_client)

  • Handshake, tóm tắt

  • Xem toàn bộ chain server gửi

  • Ngày hết hạn cert đang chạy

  • Ép TLS 1.2 / 1.3

  • Fail khi verify lỗi, kiểm tra hostname

  • Dùng CA nội bộ

  • mTLS: gửi cert client

  • SMTP STARTTLS

  • Kiểm tra ALPN (h2)

Đổi định dạng

  • PEM → DER

  • DER → PEM

  • Gộp key + cert + chain thành PKCS#12

  • PKCS#12 cho thiết bị/Java cũ (thuật toán cũ)

  • Lấy cert từ PKCS#12

  • Lấy key từ PKCS#12 (không mã hoá)

  • Bỏ passphrase của key

Linh tinh

  • Sinh chuỗi ngẫu nhiên 32 byte

  • Liệt kê cipher theo chuỗi cấu hình

  • Hash file

Trivy – quét image, filesystem, IaC, repo

trang đầy đủ ↗

Target

  • Quét image (từ registry hoặc local)

  • Quét image dạng tar (docker save)

  • Quét thư mục code (lockfile, secret)

  • Quét IaC: Dockerfile, K8s YAML, Terraform, Helm

  • Quét repo Git từ xa

  • Quét file SBOM có sẵn

  • Quét rootfs (VM, container đã giải nén)

Scanner và lọc

  • Chọn loại quét

  • Chỉ HIGH và CRITICAL

  • Bỏ CVE chưa có bản vá

  • Chỉ quét package OS hoặc thư viện app

  • Bỏ qua thư mục/file

  • Liệt kê mọi package (kể cả không có CVE)

Output

  • JSON để xử lý tiếp

  • SARIF cho GitHub code scanning

  • Sinh SBOM CycloneDX / SPDX

  • Đếm CVE CRITICAL bằng jq

Bỏ qua có kiểm soát

  • Dùng file ignore khác

  • Ghi chú lý do ngay trong file

CI

  • Fail pipeline khi có CRITICAL đã có bản vá

  • Báo cáo đầy đủ nhưng không fail

  • Tăng timeout image lớn

  • Cache DB giữa các job

  • Chạy bằng container

HTTP security headers – HSTS, CSP, frame-ancestors, Referrer-Policy

trang đầy đủ ↗

Kiểm tra

  • Xem header response

  • Header trên trang lỗi

  • Header ở path con

  • Xem cấu hình nginx đang hiệu lực