Linux Command Shell
Command Shell trong Linux là môi trường mạnh mẽ để tương tác với hệ điều hành. Đây là nền tảng cho hầu hết các tác vụ quản trị, script automation và bảo mật hệ thống. Chúng ta sẽ tìm hiểu 2 khía cạnh quan trọng: biến môi trường (environment variables) và cấu trúc lệnh.
1. Environment Variables & Shell Variables
Linux cho phép tạo biến để lưu trữ chuỗi ký tự và truy cập thông qua tên biến thay vì phải gõ lại toàn bộ giá trị.
Một ví dụ rất quan trọng là biến $PATH – nơi chứa danh sách các thư mục mà hệ thống sẽ tìm kiếm khi bạn gõ một lệnh.
echo $PATH
Ví dụ output:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/snap/bin
Phân loại biến:
Kỹ sư bảo mật & network nên nhớ: $PATH là yếu tố quan trọng để xác định shell tìm command ở đâu. Sai cấu hình PATH có thể gây lỗi hệ thống hoặc tạo lỗ hổng bảo mật (ví dụ khi attacker chèn path chứa mã độc lên đầu PATH).
2. Cấu trúc lệnh chung trong Linux
Cấu trúc cơ bản:
<command> [options] [arguments]
Hai ký hiệu quan trọng:
Ví dụ chạy ứng dụng không nằm trong $PATH:
./MyApp
Nếu bạn chỉ gõ MyApp mà không thêm ./, shell sẽ báo lỗi command not found vì thư mục hiện tại mặc định không nằm trong $PATH.
3. Ứng dụng thực tế cho kỹ sư mạng/bảo mật
💡 Pro Tip:
Muốn thay đổi tạm thời $PATH cho session hiện tại:
export PATH=$PATH:/opt/custom/bin
Thay đổi này sẽ mất sau khi đóng shell.
Muốn thay đổi vĩnh viễn → chỉnh trong ~/.bashrc hoặc /etc/profile.
Command Shell trong Linux là môi trường mạnh mẽ để tương tác với hệ điều hành. Đây là nền tảng cho hầu hết các tác vụ quản trị, script automation và bảo mật hệ thống. Chúng ta sẽ tìm hiểu 2 khía cạnh quan trọng: biến môi trường (environment variables) và cấu trúc lệnh.
1. Environment Variables & Shell Variables
Linux cho phép tạo biến để lưu trữ chuỗi ký tự và truy cập thông qua tên biến thay vì phải gõ lại toàn bộ giá trị.
Một ví dụ rất quan trọng là biến $PATH – nơi chứa danh sách các thư mục mà hệ thống sẽ tìm kiếm khi bạn gõ một lệnh.
echo $PATH
Ví dụ output:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/snap/bin
- $PATH giúp shell biết vị trí của các lệnh hệ thống.
- Nếu command không nằm trong các thư mục này, bạn phải chỉ rõ đường dẫn đầy đủ khi chạy.
Phân loại biến:
- Environment Variables: Có phạm vi toàn hệ thống, được kế thừa bởi các shell con. Xem tất cả bằng:
env - Shell Variables: Chỉ tồn tại trong shell hiện tại, ví dụ:
MYVAR="abc123" echo $MYVAR
Muốn biến này khả dụng cho shell con → dùng:
export MYVAR
Kỹ sư bảo mật & network nên nhớ: $PATH là yếu tố quan trọng để xác định shell tìm command ở đâu. Sai cấu hình PATH có thể gây lỗi hệ thống hoặc tạo lỗ hổng bảo mật (ví dụ khi attacker chèn path chứa mã độc lên đầu PATH).
2. Cấu trúc lệnh chung trong Linux
Cấu trúc cơ bản:
<command> [options] [arguments]
- Command thường nằm trong các thư mục đã được liệt kê trong $PATH.
- Nếu command nằm ngoài $PATH → cần chỉ rõ đường dẫn tuyệt đối hoặc đường dẫn tương đối.
Hai ký hiệu quan trọng:
- . : Thư mục hiện tại (current directory)
- ..: Thư mục cha (parent directory)
Ví dụ chạy ứng dụng không nằm trong $PATH:
./MyApp
Nếu bạn chỉ gõ MyApp mà không thêm ./, shell sẽ báo lỗi command not found vì thư mục hiện tại mặc định không nằm trong $PATH.
3. Ứng dụng thực tế cho kỹ sư mạng/bảo mật
- Automation & Script: Biến shell giúp tái sử dụng giá trị, giảm lặp lại, và dễ bảo trì script.
- Debug PATH Issues: Khi cài phần mềm mới mà command không chạy, kiểm tra $PATH.
- Security Hardening: Không thêm . (current directory) vào $PATH để tránh nguy cơ thực thi file độc hại cùng tên.
💡 Pro Tip:
Muốn thay đổi tạm thời $PATH cho session hiện tại:
export PATH=$PATH:/opt/custom/bin
Thay đổi này sẽ mất sau khi đóng shell.
Muốn thay đổi vĩnh viễn → chỉnh trong ~/.bashrc hoặc /etc/profile.