Claude Code từ zero đến thành thạo · Phần 5 — Interactive mode và CLI reference
Bàn phím là giao diện chính của Claude Code: phím tắt theo nhóm, vim mode, shell mode với dấu !, xếp hàng tin nhắn, chạy nền, /btw, và bảng tra cứu lệnh cùng flag của CLI.
Chặng nền tảng xong rồi. Từ đây là chặng vận hành hằng ngày — bắt đầu bằng thứ bạn chạm vào nhiều nhất mà ít khi đọc kỹ: bàn phím.
Phần lớn người dùng Claude Code chỉ biết Enter, Esc và Shift+Tab. Bài này là bảng tra cứu đầy đủ, kèm bốn cơ chế mà nếu không biết bạn sẽ làm việc chậm hơn hẳn: shell mode, xếp hàng tin nhắn, chạy nền, và /btw.
Phím tắt có thể khác nhau tuỳ platform và terminal. Trên macOS, các phím dùng Option/Alt (
Alt+B,Alt+F,Alt+Y,Alt+P) cần bạn cấu hình Option thành Meta trong terminal thì mới chạy.
Phím tắt
Điều khiển chung
| Phím | Tác dụng |
|---|---|
Ctrl+C | Ngắt, hoặc xoá ô nhập |
Ctrl+D | Thoát phiên Claude Code |
Ctrl+G hoặc Ctrl+X Ctrl+E | Mở trong text editor mặc định |
Ctrl+L | Vẽ lại màn hình |
Ctrl+O | Bật/tắt transcript viewer |
Ctrl+R | Tìm ngược trong lịch sử lệnh |
Ctrl+B | Đẩy task đang chạy xuống nền |
Ctrl+T | Bật/tắt checklist task của Claude |
Ctrl+S | Cất tạm hoặc lấy lại prompt đang gõ |
Ctrl+Z | Tạm dừng Claude Code |
Ctrl+X Ctrl+K | Dừng mọi background subagent đang chạy |
Esc | Ngắt Claude, hoặc đóng hộp thoại |
Esc Esc | Xoá bản nháp đang gõ, hoặc rewind |
Shift+Tab | Xoay vòng permission mode |
Option+P / Alt+P | Đổi model |
Option+T / Alt+T | Bật/tắt extended thinking |
Option+O / Alt+O | Bật/tắt fast mode |
Ctrl+V, hoặc Cmd+V trên iTerm2, hoặc Alt+V trên Windows và WSL | Dán ảnh từ clipboard |
Sửa văn bản
Bộ phím này theo chuẩn readline, giống bash và zsh:
| Phím | Tác dụng |
|---|---|
Ctrl+A | Về đầu dòng |
Ctrl+E | Về cuối dòng |
Ctrl+K | Xoá tới cuối dòng |
Ctrl+U | Xoá từ con trỏ về đầu dòng |
Ctrl+W | Xoá từ trước đó |
Ctrl+Y | Dán lại phần vừa xoá |
Alt+Y (sau Ctrl+Y) | Xoay vòng lịch sử dán |
Alt+B / Alt+F | Lùi/tiến một từ |
Ctrl+_ hoặc Ctrl+Shift+- | Hoàn tác lần sửa gần nhất |
Ký tự mở đầu
Bốn ký tự này gõ ở đầu ô nhập sẽ đổi hẳn chế độ:
| Ký tự | Mở ra |
|---|---|
/ | Command hoặc skill |
! | Shell mode |
@ | Nhắc tới đường dẫn file |
: | Emoji shortcode |
? khi ô nhập rỗng | Bật/tắt bảng trợ giúp phím tắt |
Transcript viewer
Bấm Ctrl+O để mở. Bên trong:
| Phím | Tác dụng |
|---|---|
{ / } | Nhảy tới prompt trước/sau của bạn, như motion đoạn văn của vim |
[ | Ghi toàn bộ hội thoại ra scrollback gốc của terminal |
v | Ghi hội thoại ra file tạm rồi mở bằng $VISUAL hoặc $EDITOR |
q, Ctrl+C, Esc | Thoát |
Vim mode
Claude Code có vim mode thật cho ô nhập. Esc vào NORMAL mode, i/I/a/A/o/O quay lại INSERT.
Trong NORMAL mode bạn có đủ bộ cơ bản: h j k l di chuyển, w e b theo từ, 0 $ ^ theo dòng, gg G đầu/cuối input, f{char} F{char} t{char} T{char} nhảy tới ký tự (kèm ; và , để lặp lại), x xoá ký tự, dd xoá dòng. Visual mode có v (theo ký tự) và V (theo dòng).
Một tiện lợi riêng: gõ / trong NORMAL mode mở tìm ngược lịch sử, y hệt Ctrl+R.
Lịch sử lệnh
Claude Code lưu lịch sử prompt bạn gõ, và mũi tên lên với tới cả prompt của các phiên trước trong cùng project.
- Lịch sử lưu theo thư mục làm việc.
- Chạy
/clearmở phiên mới: recall liệt kê prompt của phiên mới trước, prompt phiên cũ sau. Hội thoại cũ vẫn còn và resume được. - Gửi cùng một prompt hai lần liên tiếp chỉ ghi một mục lịch sử.
- Khi bạn recall một prompt có kèm văn bản dán, Claude Code gửi lại toàn bộ nội dung dán đó.
- History expansion bằng
!bị tắt mặc định.
Tìm ngược bằng Ctrl+R: bấm để bật, gõ để tìm, bấm Ctrl+R tiếp để duyệt các kết quả cũ hơn. Tab hoặc Esc nhận kết quả và tiếp tục sửa; Enter nhận và chạy luôn; Ctrl+C huỷ và khôi phục ô nhập ban đầu. Bản inline luôn tìm trong prompt của mọi project.
Shell mode: chạy lệnh không qua Claude
Gõ ! ở đầu để chạy lệnh shell trực tiếp:
! npm test
! git status
! ls -la
Shell mode:
- Thêm lệnh và output vào context của hội thoại
- Hiện tiến trình và output theo thời gian thực
- Hỗ trợ
Ctrl+Bđể đẩy xuống nền như bình thường - Không cần Claude diễn giải hay phê duyệt lệnh
- Tự hoàn thành theo lịch sử: gõ một phần lệnh rồi
Tab - Tự hoàn thành đường dẫn file: gõ một token có dấu
/, ví dụ./src/hay~/, rồiTab. Trên Windows cũng dùng dấu gạch chéo xuôi — dropdown kích hoạt bởi/, không phải\ - Thoát bằng
Escape,Backspace, hoặcCtrl+Ukhi ô nhập rỗng
Điểm đáng chú ý: Claude tự phản hồi output của lệnh ngay khi nó vào transcript. Nghĩa là bạn chạy ! npm test và nhận được giải thích về các test fail mà không cần prompt thứ hai. Lượt phản hồi đó tốn đúng bằng một prompt thường. Muốn quay lại hành vi cũ — output vào context nhưng không kèm phản hồi — thì đặt respondToBashCommands thành false trong settings.json.
Chạy lệnh Bash ở nền
Claude Code chạy được lệnh Bash ở nền để bạn làm việc tiếp trong lúc tiến trình dài chạy. Hai cách: bảo Claude chạy lệnh ở nền, hoặc bấm Ctrl+B để đẩy một lệnh Bash đang chạy xuống nền. Người dùng tmux phải bấm Ctrl+B hai lần vì nó trùng prefix key của tmux.
Những điều cần biết:
- Output ghi ra file, Claude đọc lại bằng tool Read
- Mỗi background task có ID riêng để theo dõi và lấy output
- Task nền tự dọn khi Claude Code thoát. Nhưng nếu bạn đẩy cả phiên xuống nền thay vì thoát, chúng được bàn giao cho background session và tiếp tục chạy
- Task bị kết thúc tự động nếu output vượt 5GB, kèm ghi chú trong stderr
- Trên macOS và Linux, Claude Code kết thúc task nền khi hệ điều hành báo áp lực bộ nhớ, với điều kiện phiên đã idle ít nhất 30 phút và không có lượt chạy hay subagent nào đang hoạt động
Lệnh hay được đẩy xuống nền: build tool (webpack, vite, make), package manager, test runner (jest, pytest), dev server, và tiến trình dài như docker hay terraform.
Tắt hẳn tính năng task nền: đặt biến môi trường CLAUDE_CODE_DISABLE_BACKGROUND_TASKS=1.
Xếp hàng tin nhắn khi Claude đang làm
Gõ một tin nhắn và bấm Enter trong lúc Claude đang chạy — Claude Code xếp hàng nó thay vì cắt ngang lượt hiện tại, và liệt kê các mục đang chờ ngay trên ô nhập.
Thời điểm một mục xếp hàng tới tay Claude phụ thuộc bạn xếp cái gì:
- Tin nhắn — nếu bạn xếp hàng trong lúc Claude đang chạy tool call, Claude Code chuyển nó cho Claude ngay khi các tool call đó xong, trong cùng lượt. Khi lượt kết thúc, các tin nhắn còn lại được gửi thành lượt kế tiếp, mỗi cái một tin nhắn riêng.
- Command và shell command — Claude Code giữ lại tới khi lượt kết thúc, rồi chạy từng cái một.
Bấm Esc để cắt ngang lượt thay vì chờ; Claude Code giữ nguyên thứ bạn đã xếp hàng và gửi ngay.
Lấy lại thứ đã xếp hàng: bấm Up từ dòng đầu của ô nhập. Claude Code gỡ chúng khỏi hàng đợi và đặt vào ô nhập, mỗi mục một dòng.
/btw — hỏi bên lề, không làm bẩn hội thoại
/btw cho bạn hỏi một câu về công việc hiện tại mà không thêm gì vào lịch sử hội thoại.
/btw what was the name of that config file again?
Claude trả lời từ những gì đã có trong context: tin nhắn của bạn, phản hồi của nó, và kết quả tool nó đã thu thập. Bốn tính chất quan trọng:
- Dùng được cả khi Claude đang chạy — câu hỏi bên lề chạy độc lập, không cắt ngang lượt chính.
- Không có tool — nó chỉ trả lời từ thứ đã có trong context. Không đọc file, không chạy lệnh, không tìm kiếm.
- Một phản hồi duy nhất — không có lượt tiếp theo trong overlay. Muốn tiếp thì hỏi
/btwlần nữa, hoặc bấmfđể fork câu hỏi và câu trả lời thành một phiên riêng có đầy đủ tool. - Rẻ — khi prompt cache còn ấm, một câu hỏi bên lề gần như chỉ tốn phần câu trả lời.
Trong overlay: Space/Enter/Escape đóng, Up/Down cuộn, Left/Right chuyển giữa các câu trả lời cũ, c copy dưới dạng Markdown thô, f fork thành phiên mới, x xoá danh sách các lần hỏi trước.
Cách nhớ vai trò:
/btwlà mặt ngược của subagent./btwthấy toàn bộ hội thoại của bạn nhưng không có tool; subagent có đủ tool nhưng bắt đầu với context rỗng. Dùng/btwđể hỏi về thứ Claude đã biết trong phiên này; dùng subagent để đi tìm hiểu thứ mới.
Session recap
Khi bạn quay lại terminal sau lúc rời đi, Claude Code hiện một dòng tóm tắt chuyện đã xảy ra trong phiên. Bản recap được tạo ở nền khi đã qua ít nhất ba phút kể từ lượt cuối và cửa sổ terminal đang không được focus. Nó chỉ xuất hiện khi phiên có ít nhất ba lượt, và không bao giờ hiện hai lần liên tiếp.
Chạy /recap để tạo tóm tắt theo yêu cầu. Tắt recap tự động trong /config, mục Session recap.
CLI reference: lệnh
| Lệnh | Tác dụng |
|---|---|
claude | Vào phiên tương tác |
claude "query" | Vào phiên tương tác kèm prompt đầu tiên |
claude -p "query" | Truy vấn rồi thoát |
claude -c | Tiếp tục hội thoại gần nhất trong thư mục hiện tại |
claude -r "<session>" "query" | Resume phiên theo ID hoặc tên |
claude update | Cập nhật lên bản mới nhất |
claude install [version] | Cài hoặc cài lại native binary |
claude auth login / logout / status | Quản lý đăng nhập |
claude agents | Mở agent view để theo dõi và điều phối background session |
claude attach <id> | Gắn vào một background session trong terminal này |
claude logs <id> | In output gần đây của một background session |
claude stop <id> | Dừng một background session (còn có claude kill) |
claude respawn <id> | Khởi động lại background session, giữ nguyên hội thoại |
claude rm <id> | Gỡ background session khỏi danh sách |
claude doctor | In chẩn đoán cài đặt và settings, chỉ đọc |
claude mcp | Cấu hình MCP server |
claude plugin | Quản lý plugin |
claude project purge [path] | Xoá toàn bộ state local của một project |
claude setup-token | Sinh OAuth token dài hạn cho CI và script |
claude remote-control | Bật Remote Control để điều khiển từ claude.ai |
claude import [codex|gemini] | Mang cấu hình từ coding agent khác sang |
claude ultrareview [target] | Chạy ultrareview không tương tác |
Ống dẫn cũng hoạt động: cat file | claude -p "query".
CLI reference: flag đáng nhớ
Danh sách flag rất dài. Đây là nhóm bạn thực sự sẽ dùng:
| Flag | Tác dụng |
|---|---|
--add-dir | Thêm thư mục làm việc để Claude đọc và sửa file |
--model | Đặt model cho phiên, bằng alias hoặc tên đầy đủ |
--effort | Đặt effort level cho phiên |
--permission-mode | Khởi động ở permission mode chỉ định |
--continue, -c | Nạp hội thoại gần nhất trong thư mục hiện tại |
--resume, -r | Resume phiên theo ID/tên, hoặc mở picker |
--fork-session | Khi resume, tạo session ID mới thay vì dùng lại cái cũ |
--name, -n | Đặt tên hiển thị cho phiên |
--print, -p | In phản hồi, không vào chế độ tương tác |
--output-format | Định dạng output cho print mode |
--append-system-prompt | Nối thêm văn bản vào cuối system prompt mặc định |
--settings | Đường dẫn file settings JSON, hoặc chuỗi JSON inline |
--mcp-config | Nạp MCP server từ file JSON hoặc chuỗi |
--bg, --background | Chạy phiên như background agent rồi trả điều khiển ngay |
--cloud | Tạo phiên web mới trên claude.ai |
--teleport | Resume một phiên web ngay trong terminal local |
--chrome | Bật tích hợp Chrome cho tự động hoá và test web |
Ba flag dành cho lúc có sự cố cấu hình — nhớ chúng sẽ tiết kiệm cho bạn cả buổi debug:
--safe-mode— khởi động với mọi tuỳ biến bị tắt, để xem vấn đề có đến từ cấu hình của bạn không.--bare— chế độ tối thiểu: bỏ qua tự động phát hiện hook, skill, plugin, MCP server, auto memory vàCLAUDE.md.--debug— bật debug mode, lọc được theo nhóm:claude --debug='mcp,startup'.
Và ba flag chỉ dùng ở print mode, hữu ích khi chạy trong script hoặc CI:
--max-turns— giới hạn số lượt agentic--max-budget-usd— giới hạn số tiền chi cho API call trước khi dừng--json-schema— nhận output JSON đã validate theo JSON Schema
Phần 19 sẽ dùng lại nhóm flag này khi nói về headless mode.
Nguồn
Docs gốc cập nhật thường xuyên; khi có mâu thuẫn, tin bản tiếng Anh.