Lưu ý: Terminal tương tác trong hướng dẫn này hiện đang bị vô hiệu hóa khi chúng tôi cải thiện trải nghiệm học tập tương tác. Bạn vẫn có thể sử dụng hướng dẫn này để tìm hiểu về dòng lệnh và thực hành các lệnh Linux, nhưng bạn sẽ cần sử dụng terminal trên máy tính của mình hoặc trong một máy ảo.
Ngày nay, hầu hết chúng ta đã quen thuộc với các thiết bị như máy tính để bàn, laptop, điện thoại thông minh và máy tính bảng có giao diện đồ họa (GUI) trực quan. Các hệ điều hành phổ biến như Windows, macOS và Linux đều cung cấp môi trường desktop với biểu tượng, hình ảnh thư mục và menu thả xuống, giúp truy cập vào ứng dụng, dữ liệu và tài liệu cá nhân một cách dễ dàng.
Mặc dù giao diện đồ họa mang lại trải nghiệm trực quan, nhưng chúng thường hạn chế quyền kiểm soát hệ thống, đặc biệt đối với các tác vụ quản trị như cài đặt, chỉnh sửa hay xóa phần mềm và tệp tin. Hơn nữa, do dựa vào yếu tố hình ảnh, GUI có thể không tối ưu cho tất cả người dùng, đặc biệt là những ai cần truy cập sâu vào cấu hình hệ thống.
Để kiểm soát máy tính cá nhân hoặc máy chủ đám mây từ xa mà không phụ thuộc vào GUI, bạn có thể sử dụng terminal hoặc giao diện dòng lệnh (CLI). Giao diện terminal, có sẵn trên hầu hết các hệ điều hành và thông qua các ứng dụng giả lập trên máy tính bảng hoặc điện thoại thông minh, giúp người dùng có quyền truy cập cao hơn, khả năng tùy chỉnh linh hoạt và tự động hóa quy trình. Đồng thời, terminal cho phép bạn kết nối và quản trị các máy chủ từ xa, chẳng hạn như máy chủ đám mây, một cách hiệu quả.
Học lệnh Linux giúp bạn quản trị máy chủ dễ dàng. Nếu cần môi trường Windows mạnh mẽ, hãy khám phá dịch vụ VPS Windows tại DataOnline. Với cấu hình tối ưu và hỗ trợ 24/7, bạn có thể triển khai dự án hiệu quả. Tìm hiểu ngay về VPS Windows để nâng cao trải nghiệm quản trị!
Qua bài viết này, DataOnline sẽ cung cấp cho người mới làm quen với môi trường terminal những kiến thức cơ bản về cách sử dụng giao diện dòng lệnh thông qua terminal web nhúng trong trình duyệt của bạn. Nếu bạn đã có nền tảng về terminal, hãy tham khảo hướng dẫn “Giới thiệu về Linux Terminal” để mở rộng kiến thức. Sau khi hoàn thành, bạn sẽ tự tin sử dụng terminal trên máy tính hoặc máy chủ Linux (và macOS) để quản trị hệ thống một cách chuyên nghiệp.
Hiểu về cửa sổ terminal
Khi bạn lần đầu tiên sử dụng một máy tính hoặc điện thoại thông minh mới, có thể bạn muốn bật nó lên và làm quen với cách sử dụng bằng cách kiểm tra các ứng dụng có sẵn, tìm hiểu vị trí của các tính năng để tùy chỉnh thiết bị sao cho phù hợp với nhu cầu của mình. Bạn cũng có thể làm quen với một máy tính thông qua terminal theo cách tương tự.
Terminal tương tác mà bạn đã khởi chạy trong cửa sổ trình duyệt này (bằng cách nhấn vào nút Launch an Interactive Terminal!) sẽ hiển thị một hình chữ nhật màu trắng ở phía dưới cửa sổ trình duyệt của bạn.
Nếu bạn chưa khởi chạy terminal, hãy làm điều đó ngay bây giờ bằng cách nhấp vào nút ở đầu hướng dẫn này.
Trong terminal tương tác của bạn trên trình duyệt, sẽ có một ký hiệu $
và một con trỏ nhấp nháy. Đây là nơi bạn sẽ bắt đầu nhập lệnh để yêu cầu terminal thực hiện các tác vụ.
Terminal bạn đang sử dụng là một terminal của Ubuntu 20.04. Ubuntu là một bản phân phối phổ biến của Linux, ban đầu được xây dựng dựa trên hệ điều hành Unix. Hệ điều hành macOS cũng dựa trên Unix. Nếu bạn đang đọc hướng dẫn này trên một máy Linux hoặc macOS, thì bạn cũng có thể có một terminal hoạt động tương tự với terminal mà chúng ta sẽ sử dụng trong hướng dẫn này.
Trong nhiều hệ điều hành Unix (hoặc *nix-based), các ký hiệu xuất hiện ở cuối dấu nhắc lệnh (prompt) có thể là $
hoặc #
, với ý nghĩa sau:
$
(dấu đô la) – Bạn đang đăng nhập với tư cách là người dùng thông thường.#
(dấu thăng) – Bạn đang đăng nhập với tư cách là người dùng có quyền cao hơn.
Người dùng có quyền #
còn được gọi là root user (người dùng root), đây là người có quyền quản trị cao nhất trên hệ thống.
Trong terminal trên trình duyệt của bạn, bạn đang đăng nhập với tư cách người dùng thông thường, nhưng bạn cũng có thể có quyền quản trị viên thông qua lệnh sudo
. Vì đây chỉ là một terminal tạm thời, bạn không cần lo lắng về những gì bạn nhập vào, vì tất cả dữ liệu sẽ bị xóa sau khi kết thúc phiên làm việc. Tương tự, với một máy chủ đám mây, bạn có thể xóa và khởi động lại một máy chủ mới nếu có bất kỳ sự cố nào xảy ra.
Tuy nhiên, hãy cẩn trọng hơn khi làm việc với terminal trên máy tính cá nhân, vì khi có quyền quản trị, bạn có thể thực hiện các thay đổi vĩnh viễn trên hệ thống của mình.
Bây giờ, với terminal đã được khởi chạy trong trình duyệt, bạn có thể bắt đầu nhập lệnh từ bàn phím của máy tính cá nhân. Văn bản bạn nhập sẽ xuất hiện tại con trỏ nhấp nháy. Chúng ta sẽ tìm hiểu về các lệnh có thể nhập trong các phần tiếp theo.
Làm quen với thư mục
Chúng ta sẽ bắt đầu làm việc với terminal bằng cách nhập một lệnh. Một lệnh là một chỉ thị do người dùng đưa ra để yêu cầu máy tính thực hiện một tác vụ nào đó. Bạn sẽ nhập lệnh vào terminal và nhấn ENTER (hoặc RETURN) để máy tính thực hiện lệnh đó.
Hãy nhập lệnh sau đây và nhấn ENTER. Bạn cũng có thể sao chép lệnh này hoặc chạy nó trong một terminal tương tác đã được khởi chạy bằng cách nhấp vào các liên kết tương ứng khi di chuột qua khung mã bên dưới.
pwd
Sau khi chạy lệnh này, bạn sẽ nhận được kết quả tương tự như sau:
/home/sammy
Lệnh pwd
là viết tắt của “present working directory
” (thư mục làm việc hiện tại), cho bạn biết vị trí hiện tại của bạn trong hệ thống tệp.
Trong ví dụ này, bạn đang ở trong thư mục /home/sammy, nghĩa là bạn đang đăng nhập với tư cách người dùng sammy. Nếu bạn đăng nhập với quyền root (người dùng có quyền cao nhất), thư mục sẽ là /root. Trên máy tính cá nhân, thư mục này có thể được đặt theo tên của người dùng sở hữu máy tính, ví dụ:
/home/nguyen
hoặc/home/user
Hiện tại, thư mục này đang trống. Hãy tạo một thư mục mới để lưu trữ các tệp chúng ta sẽ làm việc trong suốt hướng dẫn này. Ví dụ, chúng ta sẽ tạo một thư mục có tên files.
Để làm điều này, chúng ta sử dụng lệnh mkdir, viết tắt của “make directory” (tạo thư mục). Sau khi nhập lệnh, chúng ta cần viết tên thư mục muốn tạo. Tên thư mục chính là một đối số (argument) của lệnh, nghĩa là giá trị đầu vào mà lệnh sẽ sử dụng để thực hiện tác vụ.
Nếu bạn quen thuộc với ngữ pháp ngôn ngữ tự nhiên, bạn có thể hình dung rằng lệnh (command) là động từ, còn đối số là tân ngữ bị tác động bởi động từ đó.
Để tạo một thư mục mới có tên files, hãy nhập lệnh sau:
mkdir files
Sau khi chạy lệnh này, bạn sẽ không nhận được thông báo gì. Terminal chỉ hiện một dòng mới với con trỏ nhấp nháy. Điều này có nghĩa là lệnh đã thực thi thành công và bạn đã sẵn sàng nhập lệnh tiếp theo!
Liệt kê nội dung và quyền
Vì chúng ta chưa nhận được phản hồi cụ thể về thư mục mới được tạo, chúng ta sẽ sử dụng một lệnh để kiểm tra nội dung của thư mục hiện tại. Bạn có thể xác nhận rằng thư mục files đã được tạo bằng cách sử dụng lệnh ls (list – liệt kê tệp và thư mục):
ls
Bạn sẽ nhận được đầu ra xác nhận rằng thư mục files đã tồn tại:
files
Lệnh ls cung cấp thông tin tổng quát về nội dung của thư mục hiện tại. Nếu bạn muốn có thêm chi tiết, bạn có thể sử dụng cờ (flag). Trong Linux, cờ được viết bằng dấu gạch ngang (-) theo sau là một hoặc nhiều chữ cái, cho phép mở rộng chức năng của lệnh.
Ví dụ, chúng ta có thể sử dụng cờ -l với ls để hiển thị danh sách theo định dạng chi tiết:|
ls -l
Khi nhấn ENTER, bạn sẽ thấy đầu ra như sau:
total 4 drwxr-xr-x 2 sammy sammy 4096 Nov 13 18:06 files
Giải thích đầu ra:
Dòng đầu tiên:
total 4
→ 4KB dung lượng được cấp phát cho thư mục này.
Dòng thứ hai:
drwxr-xr-x
→ Quyền truy cập của thư mục.
2
→ Số liên kết (links) tới thư mục.
sammy sammy
→ Chủ sở hữu và nhóm sở hữu thư mục.
4096
→ Kích thước thư mục (4KB).
Nov 13 18:06
→ Ngày và giờ chỉnh sửa lần cuối.
files
→ Tên thư mục.
Nếu bạn muốn xem kích thước thư mục theo cách dễ đọc hơn, bạn có thể thêm cờ -h (human-readable – dễ đọc cho con người):
ls -lh
Hoặc sử dụng dạng mở rộng:
ls -l --human-readable
Cả hai lệnh này sẽ trả về kết quả tương tự nhưng hiển thị dung lượng dễ đọc hơn (ví dụ: 4.0K thay vì 4096).
total 4.0K
drwxr-xr-x 2 sammy sammy 4.0K Nov 13 18:06 files
Phân tích từng phần của dòng drwxr-xr-x 2 sammy sammy 4.0K Nov 13 18:06 files
:
Ký tự | Ý nghĩa |
---|---|
d |
Thư mục (directory). Nếu là tệp, nó sẽ là - thay vì d . |
rwx |
Quyền của chủ sở hữu: Có quyền đọc (r ), ghi (w ), thực thi (x ). |
r-x |
Quyền của nhóm: Có quyền đọc (r ) và thực thi (x ), nhưng không thể ghi (- ). |
r-x |
Quyền của người khác: Giống nhóm (r-x ). |
Ý nghĩa các ký tự quyền truy cập:
Ký tự | Mô tả |
---|---|
r |
Read (đọc) – Xem nội dung tệp hoặc danh sách thư mục. |
w |
Write (ghi) – Chỉnh sửa nội dung tệp, thêm/xóa tệp trong thư mục. |
x |
Execute (thực thi) – Chạy tệp nếu là chương trình, hoặc truy cập vào thư mục. |
Trong chuỗi ký tự drwx
đầu tiên của đầu ra, chữ cái đầu tiên d
cho biết rằng mục files là một thư mục (directory). Nếu đây là một tệp thông thường thay vì thư mục, chuỗi ký tự này sẽ bắt đầu bằng một dấu gạch ngang (-
), chẳng hạn như -rwx
, trong đó dấu gạch ngang đầu tiên thể hiện rằng đây là một tệp không phải thư mục.
Ba ký tự tiếp theo, rwx
, biểu thị quyền hạn của chủ sở hữu thư mục files. Điều này có nghĩa là chủ sở hữu có thể đọc (read – r
), ghi (write – w
), và thực thi (execute – x
) thư mục này. Nếu bất kỳ ký tự nào trong số này bị thay thế bằng dấu gạch ngang (-
), điều đó có nghĩa là chủ sở hữu không có quyền tương ứng với ký tự đó.
Ba ký tự tiếp theo, r-x
, biểu thị quyền hạn của nhóm đối với thư mục files. Trong trường hợp này, nhóm có quyền đọc (r
) và thực thi (x
), nhưng không có quyền ghi (w
), vì ký tự w
đã bị thay thế bằng dấu gạch ngang (-
).
Ba ký tự cuối cùng, r-x
, biểu thị quyền của tất cả người dùng khác trên hệ thống. Trong trường hợp này, những người dùng này cũng có quyền đọc (r
) và thực thi (x
), nhưng không thể ghi (w
).
Ý nghĩa của số 2
trong đầu ra
Số 2
trong đầu ra đề cập đến số lượng liên kết (links) đến tệp hoặc thư mục này. Trong Linux, liên kết cung cấp một phương pháp để tạo đường dẫn tắt giúp người dùng dễ dàng điều hướng hệ thống tệp. Khi tạo thư mục này, Linux đã tự động tạo một liên kết tuyệt đối (absolute link) đến thư mục đó và một liên kết tự tham chiếu (self-referential link) để cho phép người dùng điều hướng bằng đường dẫn tương đối. Chúng ta sẽ tìm hiểu về đường dẫn tuyệt đối và đường dẫn tương đối ở phần tiếp theo.
Chủ sở hữu và nhóm sở hữu
Sau số 2
, từ sammy
xuất hiện hai lần. Phần này trong đầu ra cung cấp thông tin về chủ sở hữu và nhóm sở hữu thư mục files.
- Từ “sammy” đầu tiên: Chỉ ra chủ sở hữu của thư mục.
- Quyền hạn của chủ sở hữu là
rwx
(đọc, ghi, thực thi). - Chủ sở hữu có thể thực hiện tất cả các thao tác trên thư mục.
- Chúng ta đang đăng nhập với tư cách người dùng
sammy
, vì vậy hệ thống gán thư mục này chosammy
.
- Quyền hạn của chủ sở hữu là
- Từ “sammy” thứ hai: Chỉ ra nhóm sở hữu thư mục.
- Quyền hạn của nhóm là
r-x
(chỉ có thể đọc và thực thi, không thể ghi). - Trong trường hợp này, nhóm có cùng tên với chủ sở hữu (
sammy
). - Trong môi trường thực tế, nhóm có thể là
staff
,admin
, hoặc một nhóm khác trong hệ thống.
- Quyền hạn của nhóm là
Các chi tiết còn lại
4.0K
→ Kích thước của thư mục (4 KB) được hệ thống cấp phát.Nov 13 18:06
→ Ngày và giờ lần cuối thư mục được chỉnh sửa.
Với hiểu biết sâu hơn về hệ thống tệp và quyền truy cập, chúng ta có thể tiếp tục tìm hiểu về cách điều hướng trong hệ thống tệp trên Linux!
Điều hướng trong hệ thống tập tin
Cho đến thời điểm này, chúng ta đã học cách xác định vị trí của mình trong hệ thống tệp, cách tạo thư mục mới, cách liệt kê các tệp và cách kiểm tra quyền truy cập.
Di chuyển trong hệ thống tệp
Chúng ta đã tạo một thư mục mới, nhưng vẫn đang ở thư mục chính của người dùng /home/sammy
. Để di chuyển vào thư mục /home/sammy/files
mà chúng ta đã tạo, ta sử dụng lệnh cd
(viết tắt của change directory, tức là “thay đổi thư mục”) và truyền tên thư mục làm đối số:
cd files
Một lần nữa, bạn sẽ không nhận được bất kỳ đầu ra nào ngoại trừ một dòng mới với con trỏ nhấp nháy. Tuy nhiên, ta có thể xác nhận rằng ta đang ở thư mục /home/sammy/files
bằng cách sử dụng lệnh pwd
(print working directory – hiển thị thư mục hiện tại):
pwd
Bạn sẽ nhận được đầu ra như sau:
/home/sammy/files
Điều này xác nhận rằng bạn đang ở thư mục /home/sammy/files
trong thư mục người dùng /home/sammy
. Cú pháp này có quen thuộc với bạn không? Nó có thể khiến bạn liên tưởng đến URL của một trang web với dấu gạch chéo /
. Thực tế, các trang web cũng được cấu trúc trên máy chủ bên trong các thư mục.
Di chuyển đến thư mục gốc của hệ thống
Dù bạn đang ở đâu trong hệ thống tệp, bạn luôn có thể sử dụng lệnh sau để di chuyển đến thư mục gốc của hệ thống:
cd /
Để xác nhận rằng chúng ta đã di chuyển và xem có gì trong thư mục này, hãy chạy lệnh ls:
ls
Bạn sẽ nhận được đầu ra như sau:
bin boot dev etc home lib lib32 lib64 libx32 media mnt opt proc root run s sbin srv sys tmp usr var
Có rất nhiều thư mục ở đây! Thư mục /
là thư mục chính của một máy chủ Linux, được gọi là thư mục gốc (root directory). Lưu ý rằng thư mục gốc /
không giống với người dùng “root” mặc định. Bạn có thể hình dung thư mục /
như huyết mạch chính của một máy tính Linux, vì nó chứa tất cả các thư mục cần thiết để vận hành hệ thống. Ví dụ:
- Thư mục
/sys
chứa thông tin về kernel (hạt nhân Linux) và hệ thống tệp ảo của hệ thống.
Nếu bạn muốn tìm hiểu thêm về các thư mục này, bạn có thể tham khảo tài liệu của Linux Foundation.
Bạn cũng có thể nhận thấy thư mục /home
, nơi chứa thư mục người dùng mà chúng ta đã làm việc trước đó. Từ thư mục /
, chúng ta có thể di chuyển vào /home
, sau đó vào files bằng từng bước, hoặc chuyển trực tiếp đến đó bằng đường dẫn tuyệt đối:
cd /home/sammy/files
Bây giờ, nếu bạn chạy lệnh pwd
, bạn sẽ nhận được kết quả /home/sammy/files
.
Đường dẫn tệp trong Linux
Đường dẫn tệp là cách biểu diễn vị trí của một tệp hoặc thư mục trên máy tính hoặc máy chủ. Bạn có thể xác định đường dẫn theo hai cách:
- Đường dẫn tương đối (relative path) là cách di chuyển đến một vị trí dựa trên thư mục hiện tại. Ví dụ, khi chúng ta đang ở trong thư mục
/home/sammy/
và di chuyển vào thư mụcfiles/
, chúng ta có thể sử dụng lệnh:cd files
Đây là một đường dẫn tương đối vì nó dựa trên thư mục hiện tại. - Đường dẫn tuyệt đối (absolute path) là đường dẫn chỉ rõ toàn bộ lộ trình từ thư mục gốc
/
. Ví dụ,/home/sammy/files
là một đường dẫn tuyệt đối, vì nó bắt đầu từ thư mục gốc/
, sau đó đi qua/home/sammy/
và cuối cùng là thư mụcfiles/
.
Sử dụng ký hiệu đặc biệt để điều hướng
Linux sử dụng một số ký hiệu đặc biệt để giúp người dùng di chuyển dễ dàng hơn bằng các đường dẫn tương đối:
- Dấu chấm đơn (.) đại diện cho thư mục hiện tại.
- Dấu hai chấm (..) đại diện cho thư mục cha (thư mục cấp trên).
Ví dụ, nếu chúng ta đang ở trong /home/sammy/files
và muốn quay lại thư mục /home/sammy
, chúng ta có thể sử dụng lệnh:
cd ..
Sau đó, nếu chạy pwd
, bạn sẽ thấy kết quả /home/sammy
. Nếu chạy ls
, bạn sẽ thấy thư mục files
xuất hiện trong danh sách.
Một ký hiệu quan trọng khác trong Linux là ~
(dấu ngã), đại diện cho thư mục home của người dùng hiện tại. Trong trường hợp này, thư mục home của chúng ta là /home/sammy
. Tuy nhiên, trên máy cá nhân của bạn, thư mục này có thể mang tên người dùng của bạn, ví dụ: /home/nguyen/
.
Bạn có thể sử dụng lệnh sau từ bất kỳ vị trí nào trên hệ thống để quay về thư mục home của mình:
cd ~
Tại thời điểm này, bạn có thể thử di chuyển qua lại trong hệ thống tệp bằng các lệnh mà chúng ta đã học. Trong phần tiếp theo, chúng ta sẽ bắt đầu làm việc với các tệp văn bản.
Tạo và chỉnh sửa tệp văn bản
Bây giờ, khi chúng ta đã có nền tảng về hệ thống tập tin của Linux và cách điều hướng trong nó, hãy bắt đầu tạo các tệp mới và tìm hiểu cách xử lý văn bản qua dòng lệnh.
Đầu tiên, hãy chắc chắn rằng chúng ta đang ở trong thư mục files/ của người dùng /home/sammy, bạn có thể kiểm tra bằng lệnh pwd
hoặc chuyển đến bằng đường dẫn tuyệt đối:
cd /home/sammy/files
Giờ, chúng ta sẽ tạo một tệp văn bản mới. Chúng ta sẽ tạo tệp có phần mở rộng .txt, là loại tệp tiêu chuẩn có thể đọc được trên mọi hệ điều hành. Khác với tệp .doc, tệp .txt chứa văn bản không định dạng, và có thể dễ dàng sử dụng trên dòng lệnh, từ đó hỗ trợ các tác vụ như tự động phân tích văn bản, trích xuất thông tin, v.v.
Chúng ta bắt đầu bằng cách sử dụng lệnh touch, lệnh này có thể tạo một tệp mới hoặc cập nhật thời gian chỉnh sửa của tệp đã tồn tại. Để sử dụng, chỉ cần nhập lệnh touch
và truyền tên tệp bạn muốn tạo làm đối số, như ví dụ dưới đây:
touch ocean.txt
Khi bạn nhấn ENTER, terminal sẽ trả về một dòng mới, và bạn có thể kiểm tra các nội dung hiện có trong thư mục files/ để đảm bảo tệp đã được tạo:
ls
Output:
ocean.txt
Cho đến lúc này, chúng ta đã tạo tệp ocean.txt mà lúc tạo không chứa văn bản nào.
Nếu bạn muốn tạo một tệp văn bản đã có sẵn nội dung, bạn có thể sử dụng lệnh echo, lệnh này dùng để hiển thị chuỗi văn bản trên Linux.
Bạn có thể sử dụng echo trực tiếp trên dòng lệnh để hiển thị nội dung ra màn hình. Ví dụ chương trình “Hello, World!” truyền thống có thể được viết như sau:
echo Hello, World!
Output:
Hello, World!
Được đặt tên theo nhân vật Echo trong tác phẩm Metamorphosis của Ovid, lệnh echo sẽ trả về chính xác những gì bạn yêu cầu. Trong trường hợp này, nó hiển thị “Hello, World!”. Tuy nhiên, riêng lệnh echo không cho phép lưu giá trị văn bản vào tệp. Để làm điều đó, chúng ta cần nhập lệnh sau:
echo "Sammy the Shark" > sammy.txt
Lệnh trên sử dụng echo để hiển thị văn bản nằm trong dấu ngoặc kép, sau đó sử dụng toán tử chuyển hướng >
và cuối cùng là tên của tệp mới, sammy.txt.
Để kiểm tra tệp mới đã tồn tại, ta dùng lại lệnh ls
:
ls
Output:
ocean.txt sammy.txt
Bây giờ, chúng ta có hai tệp văn bản trong thư mục /home/sammy/files. Tiếp theo, ta kiểm tra xem tệp sammy.txt có chứa nội dung mà chúng ta đã echo không. Dùng lệnh cat (viết tắt của concatenate), rất hữu ích để làm việc với tệp, đặc biệt để hiển thị nội dung của tệp:
cat sammy.txt
Sau khi chạy lệnh, terminal sẽ trả về:
Output:
Sammy the Shark
Nếu bạn chạy lệnh cat trên tệp ocean.txt (tệp rỗng), sẽ không có gì hiển thị vì tệp không chứa văn bản.
Chúng ta cũng có thể thêm văn bản vào tệp đã tồn tại bằng lệnh echo. Ví dụ, hãy thêm một câu trích dẫn của Zora Neale Hurston vào tệp:
echo "Some people could look at a mud puddle and see an ocean with ships." > ocean.txt
Bây giờ, khi chạy lệnh:
cat ocean.txt
Terminal sẽ trả về:
Output:
Some people could look at a mud puddle and see an ocean with ships.
Cho đến thời điểm này, chúng ta đã tạo các tệp văn bản và thêm văn bản vào chúng, nhưng chưa chỉnh sửa nội dung trong tệp. Nếu muốn chỉnh sửa nội dung của tệp, chúng ta có thể sử dụng trình soạn thảo văn bản qua dòng lệnh. Có nhiều lựa chọn phổ biến như Vim hay Emacs, nhưng trong trường hợp này, chúng ta sử dụng nano – một trình soạn thảo CLI đơn giản, thân thiện cho người mới làm quen.
Để mở trình soạn thảo nano và chỉnh sửa tệp sammy.txt, ta nhập:
nano sammy.txt
Tệp sammy.txt sẽ mở ra trong terminal, hiển thị nội dung ban đầu:
Sammy the Shark
Sử dụng các phím mũi tên trên bàn phím để di chuyển con trỏ đến cuối dòng, sau đó bắt đầu nhập thêm vài dòng từ góc nhìn của Sammy.
Lưu ý: Trên dòng lệnh, bạn không thể dùng chuột để di chuyển trong hệ thống tệp hay trong tệp văn bản; bạn cần dùng bàn phím, đặc biệt là các phím mũi tên.
Sau khi chỉnh sửa, nội dung tệp có thể như sau:
Sammy the Shark Hello, I am Sammy. I am studying computer science. Nice to meet you!
Khi tệp đã chứa nội dung như mong muốn, ta cần lưu và đóng tệp. Ở dưới cùng của cửa sổ terminal, bạn sẽ thấy hướng dẫn:
^G Get Help ^O WriteOut ^R Read File ^Y Prev Page ^K Cut Text ^C Cur Pos ^X Exit ^J Justify ^W Where Is ^V Next Page ^U UnCut Text ^T To Spell
Ở đây, ký hiệu ^ biểu thị phím Control (CTRL). Để thoát tệp, bạn cần nhấn tổ hợp phím CTRL + X (nhấn Ctrl và phím x cùng lúc, sử dụng chữ x thường, không dùng Shift).
Nhấn CTRL + X:
CTRL x
Thông thường, lệnh này được viết là CTRL + X hoặc Ctrl+x trong tài liệu kỹ thuật.
Sau đó, terminal sẽ hiển thị lời nhắc:
Save modified buffer? Y Yes N No ^C Cancel
Để lưu tệp, nhấn phím y:
y
Terminal sẽ hiển thị thông báo:
Output:
File Name to Write: sammy.txt
Nếu bạn thoải mái với việc lưu và đóng tệp, nhấn ENTER để hoàn tất.
Giả sử chúng ta muốn tạo thêm một số tệp cho học viên của DataOnline University. Hãy tạo một thư mục mới trong files/ có tên students:
mkdir students
Tiếp theo, hãy di chuyển tệp sammy.txt vào thư mục students/. Lệnh mv (viết tắt của move) sẽ giúp chuyển vị trí của tệp. Cấu trúc của lệnh là: tên tệp cần di chuyển làm đối số thứ nhất, vị trí mới làm đối số thứ hai. Cả hai lệnh dưới đây đều cho kết quả tương tự:
mv sammy.txt students
hoặc
mv sammy.txt students/sammy.txt
Lựa chọn thứ hai hữu ích nếu bạn muốn đổi tên tệp, ví dụ: mv sammy.txt students/sammy-the-shark.txt
Bây giờ, khi chạy lệnh ls
, bạn sẽ thấy chỉ còn tệp ocean.txt và thư mục students/ trong thư mục hiện tại (files/). Hãy chuyển vào thư mục students/:
cd students
Để tạo mẫu cho các học viên khác, ta sao chép tệp sammy.txt để tạo thêm tệp mới. Dùng lệnh cp (copy):
cp sammy.txt alex.txt
Mở tệp alex.txt để kiểm tra:
nano alex.txt
Ban đầu, alex.txt sẽ giống hệt sammy.txt. Sau đó, thay đổi một số từ để chỉnh sửa nội dung thành:
Alex the Leafy Seadragon Hello, I am Alex. I am studying oceanography. Nice to meet you!
Để xóa một dòng hoàn toàn, bạn có thể dùng tổ hợp CTRL + K.
Khi hoàn tất chỉnh sửa, lưu và đóng tệp bằng cách nhấn CTRL + X, sau đó y và ENTER.
Nếu bạn muốn luyện tập thêm, hãy tạo các tệp cho Jamie the Mantis Shrimp, Jesse the Octopus, Drew the Squid, hoặc Taylor the Yellowfin Tuna.
Sau khi bạn đã quen với việc tạo, chỉnh sửa, sao chép và di chuyển tệp, ta sẽ chuyển sang phần tiếp theo.
Tự động hoàn thành và lịch sử lệnh
Nhiều phiên bản dòng lệnh, bao gồm terminal tương tác được tích hợp trong hướng dẫn này, cho phép bạn tự động hoàn thành và tái sử dụng các lệnh đã nhập, giúp tiết kiệm thời gian gõ phím.
Ví dụ, hãy nhập lệnh cat cùng với vài ký tự đầu của tên tệp bạn đang làm việc – chẳng hạn, nhập cat sa
. Trước khi nhập đầy đủ tên tệp sammy.txt, nhấn phím TAB. Tính năng tự động hoàn thành sẽ điền đầy đủ tên tệp, hiển thị:
cat sammy.txt
Nhấn ENTER để terminal hiển thị nội dung của tệp.
Một phím tắt khác là nhấn phím mũi tên lên để duyệt qua các lệnh vừa nhập. Trên dòng lệnh mới với con trỏ nhấp nháy, nhấn phím mũi tên lên vài lần để truy cập nhanh vào các lệnh trước đó.
Nếu bạn muốn xem lại toàn bộ các lệnh đã sử dụng trong phiên làm việc, hãy sử dụng lệnh history:
history
Tùy thuộc vào số lượng lệnh bạn đã thực hiện, bạn có thể thấy có 30 dòng lệnh trở lên, bắt đầu như sau:
Output:
1 pwd 2 mkdir files 3 ls 4 ls -l ...
Việc làm quen với các phím tắt này sẽ hỗ trợ bạn trở nên thành thạo hơn với giao diện dòng lệnh.
Làm việc với tệp từ web
Một trong những khía cạnh thú vị khi làm việc trên giao diện dòng lệnh kết nối Internet là bạn có thể truy cập toàn bộ tài nguyên trên web và xử lý chúng một cách tự động. Qua terminal, bạn có thể trực tiếp truy cập các cloud server mà bạn có thông tin đăng nhập, quản lý và điều phối hạ tầng đám mây, xây dựng các ứng dụng web của riêng mình, và nhiều hơn nữa. Hiện tại, khi chúng ta đã làm quen với tệp văn bản trên terminal, hãy cùng xem cách tải một tệp văn bản từ web để máy tính của chúng ta có thể lưu trữ tệp đó.
Trước hết, quay trở lại thư mục files/:
cd /home/sammy/files
Từ đây, sử dụng lệnh curl để chuyển dữ liệu từ web về terminal cá nhân trên trình duyệt. Lệnh curl viết tắt của client URL (địa chỉ web).
curl https://assets.dataonline.com/articles/command-line-intro/verne_twenty-thousand-leagues.txt
Khi nhấn ENTER, terminal sẽ hiển thị nội dung đoạn trích (trích dẫn một phần):
Output:
"You like the sea, Captain?" "Yes; I love it! The sea is everything. It covers seven tenths of the terrestrial globe. ... "Captain Nemo," said I to my host, who had just thrown himself on one of the divans, "this is a library which would do honor to more than one of the continental palaces, and I am absolutely astounded when I consider that it can follow you to the bottom of the seas."
Mặc dù thú vị khi xem đoạn văn hiện ra trên terminal, nhưng tệp không được lưu lại – dữ liệu chỉ được chuyển tải mà không lưu trữ (bạn có thể kiểm tra bằng cách chạy ls
).
Để lưu văn bản vào tệp, ta cần chạy curl với tham số -O
(tham số này cho phép lưu nội dung vào tệp, sử dụng tên tệp từ xa cho bản sao cục bộ):
curl -O https://assets.dataonline.com/articles/command-line-intro/verne_twenty-thousand-leagues.txt
Terminal sẽ thông báo quá trình tải tệp:
Output:
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 2671 100 2671 0 0 68487 0 --:--:-- --:--:-- --:--:-- 68487
Nếu bạn muốn đặt tên tệp cục bộ khác, có thể dùng tham số -o
và truyền tên mới làm đối số (ví dụ, đặt tên là jules.txt):
curl -o jules.txt https://assets.dataonline.com/articles/command-line-intro/verne_twenty-thousand-leagues.txt
Bây giờ, bạn có thể làm việc với tệp này như các tệp văn bản khác – dùng cat để xem hoặc nano để chỉnh sửa.
Xóa tệp và kết thúc phiên làm việc
Giống như trên các máy tính khác, đôi khi chúng ta cần xóa những tệp và thư mục không còn cần thiết, và kết thúc chương trình đang sử dụng.
Giả sử các học viên của DataOnline University đã tốt nghiệp và ta cần dọn dẹp các tệp cùng thư mục liên quan. Hãy chắc chắn rằng bạn đang ở trong thư mục students/:
cd /home/sammy/files/students
Nếu chạy lệnh ls
, thư mục có thể chứa các tệp như:
Output:
alex.txt drew.txt jamie.txt jesse.txt sammy.txt taylor.txt
Để xóa từng tệp riêng lẻ, dùng lệnh rm (viết tắt của remove). Bạn cần truyền tên tệp muốn xóa làm đối số.
Cảnh báo: Khi bạn xóa tệp, thao tác này không thể khôi phục lại được. Hãy chắc chắn rằng bạn muốn xóa tệp trước khi nhấn ENTER.
Ví dụ, xóa tệp sammy.txt:
rm sammy.txt
Bây giờ, nếu chạy lại ls
, bạn sẽ thấy sammy.txt không còn trong thư mục:
Output:
alex.txt drew.txt jamie.txt jesse.txt taylor.txt
Mặc dù ta đã biết xóa từng tệp với rm, nhưng nếu muốn xóa toàn bộ thư mục students/ và các tệp bên trong thì dùng lệnh rmdir (remove directory) là không hiệu quả vì nó chỉ xóa được thư mục rỗng.
Hãy chuyển ra khỏi thư mục students/:
cd ..
Từ thư mục người dùng /home/sammy/, ta dùng lệnh rmdir:
rmdir students
Lệnh này sẽ không thành công vì thư mục students không rỗng, terminal sẽ hiển thị:
Output:
rmdir: failed to remove 'students': Directory not empty
Để xóa thư mục chứa các tệp, ta cần dùng lệnh rm với tham số -r
(tham số -r
nghĩa là recursive – đệ quy, sẽ xóa thư mục chính và tất cả các nội dung bên trong):
rm -r students
Khi chạy ls
, bạn sẽ thấy thư mục students/ đã không còn nữa và tất cả các tệp bên trong cũng đã bị xóa.
Khi kết thúc phiên làm việc trên terminal, đặc biệt là khi làm việc trên máy chủ từ xa, bạn có thể thoát terminal bằng lệnh exit. Khi bạn cảm thấy hài lòng với những gì đã làm (vì sau khi thoát, bạn không thể khôi phục lại được), hãy nhập:
exit
Trên terminal tương tác, bạn sẽ thấy thông báo xác nhận kết thúc phiên làm việc:
Output:
Session ended
Khi phiên làm việc kết thúc, bạn có thể tải lại trang và khởi chạy một terminal mới để thử các lệnh khác, hoặc tạo một hệ thống tệp mới để khám phá.
Kết luận
Chúc mừng! Giờ đây bạn đã nắm vững cách sử dụng giao diện dòng lệnh, và đang trên con đường thực hiện nhiều tác vụ phức tạp hơn với máy tính và máy chủ.
Nắm vững lệnh Linux là bước đầu để quản lý máy chủ chuyên nghiệp. Để triển khai dự án nhanh chóng, hãy thuê máy chủ VPS tại DataOnline. Dịch vụ cung cấp hiệu suất cao, giá hợp lý, phù hợp mọi nhu cầu. Khám phá ngay các gói VPS để tối ưu hóa hệ thống của bạn!