Chương 01 — Filesystem & Navigation

Tuần đầu tiên, bạn sẽ làm chủ cách terminal nhìn vào hệ thống file: đường dẫn, di chuyển, liệt kê, đọc help. Đây là nền tảng cho mọi tuần sau.

1. Terminal & Shell — phân biệt nhanh

Terminal là cửa sổ (Terminal.app, iTerm2, VSCode integrated terminal...) — nó chỉ hiển thị text và nhận phím gõ.

Shell là chương trình chạy bên trong terminal, nhận lệnh và thực thi. macOS hiện đại dùng zsh mặc định. Bạn có thể kiểm tra:

$ echo $SHELL
/bin/zsh
📘 Mỗi lệnh có cấu trúc:
command [options] [arguments]
Ví dụ ls -la /Usersls là command, -la là options (flags), /Users là argument.

2. Đường dẫn — Tuyệt đối vs Tương đối

Đường dẫn tuyệt đối (Absolute path)

Bắt đầu bằng / — mô tả vị trí từ gốc hệ thống. Luôn đúng dù bạn đang ở đâu.

/Users/you/Developer/IT Basic/CLI

Đường dẫn tương đối (Relative path)

Tính từ thư mục hiện tại. Không bắt đầu bằng /.

Developer/IT Basic/CLI    # từ /Users/you
./CLI                     # . = thư mục hiện tại
../JS                     # .. = thư mục cha
~/Documents               # ~ = home (/Users/you)
💡 Quy ước ký hiệu
  • / — root (gốc của filesystem)
  • ~ — home directory của user hiện tại
  • . — thư mục hiện tại
  • .. — thư mục cha (lùi 1 cấp)
  • - — thư mục vừa rời (dùng với cd -)

Khi tên thư mục có khoảng trắng

Shell tách lệnh thành các phần bằng khoảng trắng. Vì vậy cd IT Basic sẽ bị hiểu là: chạy cd với 2 đối số ITBasic → báo lỗi "no such file or directory". Có 3 cách xử lý:

$ cd "IT Basic"     # cách 1: dấu ngoặc kép (phổ biến nhất)
$ cd 'IT Basic'     # cách 2: dấu ngoặc đơn
$ cd IT\ Basic       # cách 3: backslash escape — \ trước mỗi space
⚠️ Khác biệt giữa " " và ' '
Dấu nháy đơn '...' giữ nguyên si mọi ký tự bên trong. Dấu nháy kép "..." vẫn cho phép biến shell giãn nở:
$ echo "Home: $HOME"
Home: /Users/you

$ echo 'Home: $HOME'
Home: $HOME     # không giãn nở
💡 Mẹo: Tab auto-complete
Đừng gõ tay tên thư mục có space. Gõ vài chữ đầu rồi nhấn Tab — shell sẽ tự thêm dấu \ escape cho bạn: cd IT → Tab → cd IT\ Basic/

3. Bộ 5 lệnh navigation cốt lõi

3.1 pwd — Print Working Directory

In ra đường dẫn tuyệt đối của thư mục bạn đang đứng.

$ pwd
/Users/you/Developer/IT Basic/CLI

3.2 ls — List directory contents

Liệt kê file/folder. Các flag thường dùng:

FlagÝ nghĩa
-lLong format (quyền, owner, size, ngày)
-aHiện cả file ẩn (bắt đầu bằng .)
-hHuman-readable size (KB, MB...)
-tSắp xếp theo thời gian sửa
-rĐảo ngược thứ tự
-SSắp xếp theo size

Có thể kết hợp các flag:

$ ls -lah     # long + all + human-readable
$ ls -lt      # long, mới nhất lên đầu
$ ls ~/Documents # list 1 thư mục cụ thể

3.3 cd — Change Directory

$ cd /Users/you/Developer   # tuyệt đối
$ cd Developer              # tương đối
$ cd ..                     # lùi 1 cấp
$ cd ../..                  # lùi 2 cấp
$ cd ~                      # về home
$ cd                        # cũng về home
$ cd -                      # quay lại thư mục vừa rời

3.4 clear — Xóa màn hình

Cho terminal sạch sẽ. Phím tắt: Ctrl + L (giữ nguyên scroll history) hoặc Cmd + K trên macOS Terminal (xóa hẳn).

3.5 man — Manual

Đọc tài liệu chi tiết của 1 lệnh. Cực kỳ quan trọng.

$ man ls
# Phím:
#   Space / f  — trang sau
#   b          — trang trước
#   /keyword   — tìm trong man
#   n / N      — kết quả tiếp / trước
#   q          — thoát
💡 Mẹo
cmd --help hoặc cmd -h thường nhanh hơn man khi bạn chỉ muốn xem lướt các option.

4. Phím tắt terminal — phải nhớ

PhímHành động
TabAuto-complete tên file/lệnh — dùng liên tục!
↑ / ↓Lịch sử lệnh đã gõ
Ctrl + CHủy lệnh đang chạy
Ctrl + DEOF / thoát shell
Ctrl + LClear màn hình
Ctrl + AVề đầu dòng
Ctrl + EVề cuối dòng
Ctrl + UXóa từ con trỏ về đầu dòng
Ctrl + KXóa từ con trỏ đến cuối dòng
Ctrl + WXóa 1 từ về phía trước
Ctrl + RTìm lệnh trong lịch sử (rất mạnh!)
⚠️ Cảnh báo
Đừng nhầm Ctrl + Z (suspend/dừng tạm) với Ctrl + C (hủy hẳn). Lệnh bị suspend vẫn còn sống — gõ fg để gọi lại hoặc kill %1 để giết.

5. Thử ngay trong terminal giả lập

Gõ thử các lệnh đã học. Bắt đầu bằng pwd, ls, rồi cd Developer...

you@mac — chuong1 practice
you@mac ~ $

6. Bài tập tuần 1

Mở Terminal thật trên máy, làm tuần tự:

  1. pwd — chép kết quả ra một file note.
  2. Đi tới home bằng cd ~, sau đó ls -la. Bạn thấy bao nhiêu file ẩn (bắt đầu bằng .)?
  3. Đi tới ~/Developer/IT Basic/CLI. Liệt kê dạng long, sắp xếp theo thời gian sửa, mới nhất lên đầu.
  4. Lùi 2 cấp về ~/Developer bằng 1 lệnh duy nhất.
  5. Dùng cd - quay lại nơi vừa rời.
  6. Mở man ls, tìm flag -S (gõ /-S), đọc xong nhấn q. Flag đó làm gì?
  7. ls rồi nhấn Tab 2 lần — terminal gợi ý gì?
  8. Ctrl + R, gõ cd — bạn thấy lịch sử các lần cd trước. Nhấn Esc hoặc Ctrl + G để thoát.

7. Quiz — Kiểm tra kiến thức

8. Tổng kết

Sau tuần 1, bạn cần phản xạ tự động:

Tuần 2 chúng ta sẽ học cách tạo, copy, di chuyển, xóa file và quản lý quyền truy cập.

Quay lại ← Trang chủ Tiếp theo Chương 02: File ops →