Dựng Môi Trường Linux và Làm Quen Shell

K
Kai··5 min read

Bài này dựng môi trường để thực hành cả series, rồi làm quen với shell — nơi bạn gõ lệnh. Hết bài bạn sẽ chạy được những lệnh đầu tiên và biết vài phím tắt khiến việc gõ lệnh nhanh hơn hẳn.

Dựng phòng thí nghiệm Linux

Như đã nói ở Bài 0, ta dùng một container làm Linux để nghịch. Tạo một container Ubuntu và đặt tên để dùng lại:

docker run -it --name linuxlab ubuntu:24.04 bash
  • -it cho bạn một terminal tương tác bên trong container.
  • --name linuxlab đặt tên để lần sau gọi lại.
  • bash là chương trình chạy khi vào — chính là shell ta sẽ học.

Bạn đang ở trong một Ubuntu. Khi muốn ra, gõ exit. Container sẽ dừng (nhưng chưa bị xóa). Lần sau quay lại đúng container đó (giữ nguyên file bạn đã tạo):

docker start -ai linuxlab

Phân biệt: docker run tạo container mới (mất dữ liệu cũ nếu tạo lại); docker start -ai linuxlab bật lại đúng container cũ. Trong cả series, hãy dùng start -ai để quay lại lab, đừng run lại — nếu không bạn sẽ mất các file bài tập.

Shell là gì

Shell là chương trình nhận lệnh bạn gõ, thực thi, rồi trả kết quả. Shell mặc định trên hầu hết distro là bash (Bourne Again Shell). Có shell khác như zsh, sh, nhưng kỹ năng cơ bản giống nhau.

Khi vào lab, bạn thấy một dấu nhắc (prompt) đại loại:

root@6f5ae945498b:/#
└─┬─┘ └────┬─────┘ └┬┘
 user    hostname  cwd  (# = đang là root; $ = user thường)

Đọc được dấu nhắc rất hữu ích: nó cho biết bạn là ai (root), đang ở máy nào (hostname — ở đây là id container), và đang đứng ở thư mục nào (/ = thư mục gốc). Dấu cuối là # khi bạn là root (toàn quyền), $ khi là user thường — nhớ chi tiết này, nó nhắc bạn đang có quyền gì.

Những lệnh đầu tiên

Gõ thử từng lệnh:

whoami      # bạn đang là user nào
hostname    # tên máy
pwd         # thư mục hiện tại (print working directory)
ls /        # liệt kê nội dung thư mục gốc
date        # ngày giờ hệ thống
uname -a    # thông tin nhân Linux

Ví dụ kết quả whoamiuname -a:

root
Linux 6f5ae945498b 6.12... aarch64 GNU/Linux

ls / cho thấy các thư mục lõi của Linux:

bin  boot  dev  etc  home  lib  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

Đừng lo nếu chưa hiểu chúng — Bài 2 sẽ giải thích từng cái. Giờ chỉ cần biết: đây là cây thư mục mà mọi thứ trong Linux nằm trong đó.

In ra văn bản và biến môi trường bằng echo:

echo "Xin chao Linux"
echo "Home cua toi: $HOME"
Xin chao Linux
Home cua toi: /root

$HOME là một biến môi trường — shell thay nó bằng giá trị (đường dẫn thư mục nhà của bạn). Ta gặp lại biến nhiều ở Bài 16 (scripting).

Lệnh là gì: builtin và chương trình

Một lệnh có thể là builtin (tích hợp trong shell) hoặc một chương trình (file thực thi nằm đâu đó trong hệ thống). Lệnh type cho biết:

type echo
type ls
echo is a shell builtin
ls is /usr/bin/ls

echo là builtin của bash; ls là một chương trình tại /usr/bin/ls. Khi bạn gõ ls, shell tìm chương trình đó theo biến PATH (danh sách thư mục chứa lệnh) rồi chạy.

Tìm trợ giúp khi quên cách dùng

Không ai nhớ hết tham số. Hai cách tra cứu ngay trong terminal:

man ls       # sổ tay (manual) đầy đủ của lệnh ls; gõ q để thoát
ls --help    # tóm tắt nhanh các tham số

man mở trang sổ tay (dùng phím mũi tên/Space để cuộn, q để thoát, /từ-khóa để tìm). --help thì gọn và nhanh hơn. Khi gặp lệnh lạ trong series, hai cách này luôn có sẵn.

Nếu man báo không có (container tối giản thường lược bỏ), cài bằng apt-get update && apt-get install -y man-db (quản lý gói ở Bài 11). --help thì gần như luôn có.

Phím tắt giúp gõ lệnh nhanh hơn

Đây là phần khiến bạn dùng terminal đỡ cực:

  • Tab — tự hoàn thành tên lệnh/file. Gõ ls /et rồi nhấn Tab, shell tự thành ls /etc/. Nhấn Tab hai lần để xem các lựa chọn. Đây là phím dùng nhiều nhất.
  • ↑ / ↓ — duyệt lại các lệnh đã gõ. Khỏi gõ lại lệnh dài.
  • Ctrl + C — hủy lệnh đang chạy.
  • Ctrl + L (hoặc clear) — xóa màn hình cho gọn.
  • Ctrl + R — tìm trong lịch sử lệnh (gõ vài ký tự, nó tìm lệnh cũ khớp).

Xem lại lịch sử lệnh đã gõ:

history

Tập dùng Tab và ↑ ngay từ giờ — nó tiết kiệm rất nhiều thời gian và tránh gõ sai.

🧹 Dọn dẹp

Cuối mỗi bài, mình ghi cách dọn. Với series này phần lớn chỉ là file trong lab, không tốn gì đáng kể. Giữ container linuxlab để dùng cho các bài sau (gõ exit để ra, container chỉ dừng chứ chưa xóa).

Khi nào học xong cả series và muốn xóa hẳn lab:

docker rm -f linuxlab
docker rmi ubuntu:24.04

Tổng kết

Bạn đã có một Linux để nghịch (container linuxlab, quay lại bằng docker start -ai linuxlab), hiểu shell là gì và đọc được dấu nhắc lệnh, chạy được các lệnh đầu tiên (pwd, ls, whoami, echo), biết tra cứu bằng man/--help, và nắm các phím tắt Tab/↑/Ctrl+C/Ctrl+R.

Trong ls / bạn đã thấy cây thư mục Linux. Bài 2 giải thích cây đó: mỗi thư mục lõi (/etc, /var, /usr, /proc...) để làm gì, và vì sao người ta nói "trong Linux, mọi thứ là file".