Công cụ escape tham số shell

Đặt nháy an toàn cho mọi chuỗi trong POSIX sh/Bash/Zsh (nháy đơn), ANSI-C $'…' của Bash hoặc PowerShell – hoặc phân tích từ shell đã đặt nháy về giá trị gốc.

19 ký tự · 19 byte (UTF-8)

0 ký tự · 0 byte (UTF-8)

Chạy hoàn toàn trong trình duyệt. Dữ liệu của bạn không bao giờ bị tải lên.

Escape shell là gì?

Biến bất kỳ văn bản nào thành một tham số shell duy nhất được shell truyền đi nguyên vẹn – kể cả dấu nháy, $, backtick, dấu cách và xuống dòng. Công cụ hỗ trợ shell POSIX, kiểu đặt nháy ANSI-C của Bash/Zsh và PowerShell, đồng thời phân tích ngược được các từ đã đặt nháy.

Cách sử dụng Escape shell

  1. Chọn Escape hoặc Unescape.
  2. Chọn Loại shell: POSIX sh/Bash/Zsh, Bash/Zsh ANSI-C hoặc PowerShell.
  3. Tùy chọn coi mỗi dòng là một tham số riêng hoặc luôn thêm dấu nháy.
  4. Dán giá trị vào ô Đầu vào và sao chép tham số đã đặt nháy từ ô Đầu ra.

Ví dụ

Đầu vào
It's $HOME
Đầu ra
'It'\''s $HOME'

Khi nào nên dùng Escape shell

Dùng khi dựng lệnh chứa tên file, mật khẩu hoặc dữ liệu người dùng – trong script, lệnh SSH, cấu hình CI hoặc tài liệu. Không hỗ trợ cmd.exe của Windows vì nó không có cách đặt nháy nào an toàn với mọi đầu vào. Trong chương trình, hãy ưu tiên truyền mảng tham số (ví dụ execFile, subprocess.run([...])) thay vì dựng chuỗi shell.

Escape shell hoạt động như thế nào

Chế độ POSIX bọc văn bản trong nháy đơn, bên trong đó không có gì đặc biệt, và viết mỗi ' thành '\'' (đóng nháy, nháy đã escape, mở lại) – cùng cách tiếp cận với shlex.quote của Python. Từ đơn giản chỉ gồm A–Z a–z 0–9 _ @ % + = : , . / - được để không nháy trừ khi bạn yêu cầu. Chế độ ANSI-C tạo $'…' với các escape \n, \t, \' và \xHH, giúp ký tự điều khiển hiển thị rõ. Chế độ PowerShell dùng nháy đơn và nhân đôi mọi dấu nháy đơn (kể cả ‘ ’ kiểu chữ in). Chế độ unescape phân tích từ giống như shell (dấu nháy, gạch chéo ngược, $'…') mà không thực hiện bất kỳ phép mở rộng nào.

Các Trường Hợp Sử Dụng Phổ Biến

  • Truyền tên file có dấu cách hoặc dấu nháy cho một lệnh
  • Nhúng payload JSON vào lệnh curl
  • Đặt nháy tham số cho ssh host "command"
  • Hiểu một dòng lệnh đặt nháy phức tạp thực sự truyền gì

Lưu Ý Bảo Mật

Đặt nháy đúng chỉ ngăn chặn command injection khi giá trị được dùng làm một tham số; nó không biến một lệnh không an toàn thành an toàn.

Câu Hỏi Thường Gặp

Sao không dùng luôn nháy kép?

Bên trong nháy kép, shell vẫn mở rộng $VAR, backtick và \. Nháy đơn tắt mọi phép mở rộng, đó là lý do chúng an toàn với văn bản tùy ý.

'\'' có nghĩa là gì?

Nó kết thúc phần trong nháy đơn, thêm một dấu nháy thật đã escape, rồi bắt đầu phần nháy đơn mới. Shell ghép các phần thành một tham số.

Có hỗ trợ cmd.exe của Windows không?

Không. cmd.exe không có cách đặt nháy nào bảo vệ đáng tin cậy các ký tự như % và ^ trong mọi ngữ cảnh. Hãy dùng chế độ PowerShell hoặc tránh dùng shell.

Bước tiếp theo nên làm

Khám phá thêm danh mục