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