Hướng dẫn này giới thiệu kiến thức nền tảng về Linux, cách sử dụng Terminal trong Linux với các lệnh cơ bản và thủ thuật hữu ích, giúp bạn thao tác nhanh chóng và quản lý hệ thống hiệu quả. Nếu mới bắt đầu, hãy tập sử dụng Terminal vì đây là phương thức tiêu chuẩn để tương tác với máy chủ Linux.
Để khai thác tối đa nội dung bài học, chúng ta cần có một máy chủ Linux để kết nối và thực hành. Nếu chưa có, bạn có thể nhanh chóng tạo mới bằng cách làm theo hướng dẫn trong bài Cách Tạo Droplet Trên DigitalOcean.
Bài viết được biên soạn cho máy chủ Ubuntu 22.04, nhưng các nguyên tắc chung vẫn áp dụng cho hầu hết các bản phân phối Linux khác.
Bắt đầu bằng việc tìm hiểu khái niệm terminal emulator.
Trình giả lập thiết bị đầu cuối (Terminal Emulator)
Terminal emulator là chương trình cho phép chúng ta sử dụng terminal trong môi trường giao diện đồ họa. Vì đa số người dùng hiện nay làm việc trên các hệ điều hành có giao diện đồ họa (GUI) cho nhu cầu hàng ngày, terminal emulator trở thành công cụ cần thiết đối với phần lớn quản trị viên máy chủ Linux.
Một số terminal emulator miễn phí và phổ biến theo từng hệ điều hành gồm:
- Mac OS X: Terminal (mặc định), iTerm 2
- Windows: ConEmu, Windows Terminal, PuTTY
- Linux: Gnome Terminal, Konsole, XTerm
Mỗi terminal emulator sở hữu tập hợp tính năng riêng, nhưng nhìn chung, các công cụ hiện đại thường hỗ trợ giao diện dạng tab và khả năng tô sáng văn bản.
Shell
Trong hệ thống Linux, shell là giao diện dòng lệnh dùng để diễn giải các lệnh của người dùng và các tệp script, sau đó chỉ thị cho hệ điều hành máy chủ cách xử lý chúng. Có nhiều loại shell được sử dụng rộng rãi, chẳng hạn như Bourne-Again shell (bash
) và Z shell (zsh
).
Mỗi loại shell có bộ tính năng và các điểm đặc thù riêng trong cách diễn giải lệnh, nhưng tất cả đều hỗ trợ chuyển hướng đầu vào và đầu ra, biến, kiểm tra điều kiện cùng nhiều chức năng khác.
Hướng dẫn này được viết dựa trên Bourne-Again shell, thường gọi tắt là bash
, vốn là shell mặc định của hầu hết các bản phân phối Linux, bao gồm Ubuntu, Fedora và RHEL.
Dấu nhắc lệnh
Khi bạn đăng nhập vào máy chủ, thông thường hệ thống sẽ hiển thị Message of the Day (MOTD), đây là thông điệp chứa các thông tin chung như phiên bản của bản phân phối Linux mà máy chủ đang chạy. Sau khi hiển thị MOTD, hệ thống sẽ đưa bạn vào dấu nhắc lệnh (command prompt hoặc shell prompt), tại đây bạn có thể nhập và thực thi các lệnh trên máy chủ.
Thông tin hiển thị tại dấu nhắc lệnh có thể do người dùng tùy chỉnh. Dưới đây là ví dụ về dấu nhắc lệnh mặc định của Ubuntu 20.04:
sammy@webapp:~$
Giải thích cấu trúc của dấu nhắc lệnh trên:
sammy
: Tên người dùng hiện tại.webapp
: Tên máy chủ (hostname).~
: Thư mục hiện tại. Trongbash
(shell mặc định) ký tự~
(tilde) là ký hiệu đặc biệt đại diện cho đường dẫn thư mục home của người dùng hiện tại; trong ví dụ này là/home/sammy
.$
: Ký hiệu kết thúc dấu nhắc lệnh. Sau ký hiệu này, nội dung bạn nhập từ bàn phím sẽ xuất hiện.
Dưới đây là ví dụ về dấu nhắc lệnh khi đăng nhập với quyền root
và đang ở thư mục /var/log
:
root@webapp:/var/log#
Lưu ý, ký hiệu kết thúc dấu nhắc ở đây là #
, đây là ký hiệu mặc định cho người dùng root
. Trong Linux, root
là tài khoản siêu người dùng (superuser) (một tài khoản đặc biệt có thể thực hiện mọi chức năng quản trị trên toàn hệ thống). Tài khoản này không bị giới hạn quyền và có thể thực hiện bất kỳ tác vụ nào trên máy chủ.
Thực thi lệnh
Các lệnh có thể được nhập tại dấu nhắc lệnh bằng cách chỉ định tên của tệp thực thi, có thể là một chương trình dạng nhị phân hoặc một tệp script. Hệ điều hành Linux cung cấp nhiều lệnh và tiện ích tiêu chuẩn được cài sẵn, cho phép bạn điều hướng hệ thống tệp, cài đặt và quản lý gói phần mềm, cũng như cấu hình hệ thống và ứng dụng.
Mỗi lần một lệnh được chạy sẽ tạo ra một tiến trình. Khi một lệnh được thực thi ở chế độ foreground (đây là cách mặc định), người dùng cần chờ tiến trình kết thúc trước khi dấu nhắc lệnh xuất hiện trở lại, lúc đó mới có thể tiếp tục nhập các lệnh khác.
Cần lưu ý, gần như mọi thứ trong Linux đều phân biệt chữ hoa và chữ thường, bao gồm tên tệp và thư mục, lệnh, tham số, cũng như tùy chọn. Nếu một lệnh hoạt động không như mong đợi, bạn hãy kiểm tra kỹ lại chính tả và kiểu chữ của lệnh.
Dưới đây là một số ví dụ cơ bản minh họa cách thực thi lệnh.
Lưu ý: Nếu bạn chưa kết nối với máy chủ Linux, giờ là lúc cần phải đăng nhập. Nếu bạn đã có máy chủ Linux nhưng không kết nối được, hãy tham khảo hướng dẫn tại bài viết Cách Kết Nối Với Droplet Qua SSH.
Không có tham số hoặc tùy chọn
Để chạy một lệnh mà không có đối số hoặc tùy chọn nào, bạn chỉ cần gõ tên lệnh và nhấn Enter.
Khi chạy lệnh theo cách này, nó sẽ thực hiện hành vi mặc định của mình, hành vi này thay đổi tùy theo từng lệnh.
Ví dụ, nếu bạn chạy:
- Lệnh
cd
mà không có đối số nào, bạn sẽ được đưa về thư mục chính của người dùng hiện tại. - Lệnh
ls
sẽ in ra danh sách các tập tin và thư mục trong thư mục hiện tại. - Lệnh
ip
khi không có đối số sẽ hiển thị một thông báo hướng dẫn cách sử dụng lệnhip
.
Hãy thử chạy lệnh ls
mà không có đối số để liệt kê các tập tin và thư mục trong thư mục hiện tại của bạn (có thể sẽ không có gì).
ls
Có đối số
Nhiều lệnh chấp nhận các tham số hoặc đối số, cho phép thay đổi hành vi của lệnh. Ví dụ, cách sử dụng phổ biến nhất của lệnh cd
là truyền vào một đối số duy nhất để chỉ định thư mục cần chuyển đến.
Chẳng hạn, để chuyển sang thư mục /usr/bin
, nơi chứa nhiều lệnh tiêu chuẩn của hệ thống, bạn nhập:
cd /usr/bin
Trong đó cd
là lệnh, còn /usr/bin
là đối số đầu tiên theo sau lệnh. Hãy lưu ý cách đường dẫn hiện tại trên dấu nhắc lệnh của bạn đã được cập nhật.
Hãy thử chạy lệnh ls
để xem danh sách các tệp có trong thư mục hiện tại:
ls
Kết quả mẫu:
…
grub-mkrescue sdiff zgrep
grub-mkstandalone sed zipdetails
grub-mount see zless
grub-ntldr-img select-editor zmore
grub-render-label semver znew
grub-script-check sensible-browser
Có tuỳ chọn
Hầu hết các lệnh đều hỗ trợ tuỳ chọn, còn được gọi là flags hoặc switches, để thay đổi cách thức hoạt động của lệnh. Tuỳ chọn được đặt ngay sau tên lệnh, bắt đầu bằng một dấu -
theo sau là một hoặc nhiều ký tự (phân biệt chữ hoa và chữ thường). Một số tuỳ chọn nhiều từ có thể bắt đầu bằng --
, theo sau là tên tuỳ chọn đầy đủ.
Để minh họa cách hoạt động của các tùy chọn, chúng ta bắt đầu xem xét lệnh ls
. Dưới đây là một vài tùy chọn phổ biến thường được sử dụng khi dùng ls
:
l
: in ra “danh sách chi tiết”, bao gồm các thông tin bổ sung như quyền truy cập, chủ sở hữu, kích thước tập tin và dấu thời gian-a
: liệt kê tất cả tập tin trong thư mục, bao gồm cả những tập tin ẩn (bắt đầu bằng dấu chấm “.
”)
Để sử dụng tùy chọn -l
với lệnh ls
, bạn hãy dùng lệnh sau:
ls -l
Bạn sẽ thấy danh sách các tệp như trước, nhưng có thêm thông tin chi tiết cho từng tệp.
Như đã đề cập trước đó, các tùy chọn thường có thể được nhóm lại với nhau. Nếu bạn muốn sử dụng đồng thời tùy chọn -l
và -a
, bạn có thể chạy ls -l -a
, hoặc đơn giản kết hợp chúng như trong lệnh sau:
ls -la
Lưu ý, danh sách sẽ bao gồm cả các thư mục ẩn .
và ..
trong kết quả, nhờ có tùy chọn -a
.
Có tuỳ chọn và đối số
Trong hầu hết các trường hợp, tuỳ chọn và đối số có thể kết hợp với nhau khi chạy lệnh.
Ví dụ, để xem nội dung của thư mục /home
dù bạn đang ở bất kỳ thư mục nào, bạn có thể dùng lệnh ls
ls -la /home
ls
là lệnh.la
là tuỳ chọn/home
là đối số
Kết quả sẽ hiển thị danh sách chi tiết toàn bộ nội dung trong thư mục /home
, thường bao gồm thư mục cá nhân (home directories) của tất cả người dùng thông thường trên máy chủ.
Biến môi trường
Biến môi trường là những giá trị có tên được dùng để điều chỉnh cách thực thi các lệnh và tiến trình. Khi bạn đăng nhập vào máy chủ, nhiều biến môi trường sẽ được thiết lập tự động thông qua một số tệp cấu hình mặc định.
Xem tất cả biến môi trường
Để xem tất cả các biến môi trường được thiết lập cho một phiên terminal cụ thể, hãy chạy lệnh env
:
env
Có thể có nhiều kết quả nhưng bạn hãy tìm mục PATH
, ví dụ:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
Trong đó:
Biến môi trường PATH
là danh sách các thư mục, ngăn cách nhau bằng dấu hai chấm (:
), nơi shell sẽ tìm kiếm các chương trình hoặc script thực thi khi một lệnh được nhập.
Ví dụ, lệnh env
nằm trong thư mục /usr/bin
, và bạn có thể chạy lệnh này mà không cần chỉ rõ đường dẫn đầy đủ vì thư mục đó đã có trong biến môi trường PATH
.
Xem giá trị của biến môi trường
Có thể lấy ra giá trị của biến môi trường ằng cách đặt dấu $
trước tên biến. Cách này sẽ mở rộng biến được tham chiếu thành giá trị tương ứng.
Ví dụ, để in ra giá trị của biến PATH
, bạn có thể dùng lệnh:
echo $PATH
Hoặc dùng biến HOME
, vốn được đặt mặc định là thư mục chính của người dùng, để chuyển về thư mục chính:
cd $HOME
Nếu bạn cố gắng truy cập một biến môi trường chưa được thiết lập, nó sẽ mở rộng thành chuỗi rỗng, tức không có giá trị.
Thiết lập biến môi trường
Khi đã biết cách xem biến môi trường, kế tiếp, chúng ta sẽ học cách thiết lập chúng.
Để thiết lập một biến môi trường, bạn chỉ cần bắt đầu bằng tên biến, ngay sau đó là dấu =
, rồi ngay tiếp theo là giá trị bạn muốn gán:
VAR=value
- Nếu biến đã tồn tại, giá trị cũ sẽ bị ghi đè.
- Nếu biến chưa tồn tại, biến sẽ được tạo mới.
Bash có một lệnh gọi là export
, dùng để xuất biến nhằm cho phép biến đó được kế thừa bởi các tiến trình con. Điều này giúp bạn có thể sử dụng các script tham chiếu đến biến môi trường đã được export trong phiên làm việc hiện tại của mình.
Bạn cũng có thể tham chiếu các biến đã tồn tại khi thiết lập biến mới. Ví dụ, nếu bạn cài đặt một ứng dụng vào thư mục /opt/app/bin
, bạn có thể thêm thư mục đó vào cuối biến môi trường PATH bằng lệnh sau:
export PATH=$PATH:/opt/app/bin
Bây giờ hãy xác nhận rằng /opt/app/bin
đã được thêm vào cuối biến PATH
bằng lệnh echo:
echo $PATH
Lưu ý, việc thiết lập biến môi trường theo cách này chỉ có hiệu lực trong phiên làm việc hiện tại. Điều này có nghĩa nếu bạn đăng xuất hoặc chuyển sang phiên làm việc khác, các thay đổi mà bạn đã thực hiện với biến môi trường sẽ không được lưu giữ. Có một cách để thay đổi biến môi trường vĩnh viễn, chúng tôi sẽ đề cập chủ đề này trong bài hướng dẫn sau.
Kết Luận
Bạn đã bắt đầu làm quen với terminal Linux và những thao tác cơ bản về biến môi trường. Đây là nền tảng quan trọng để bạn tiếp tục mở rộng kiến thức về lệnh Linux. Hãy theo dõi các bài hướng dẫn tiếp theo để học cách di chuyển, xem, chỉnh sửa tập tin cũng như quản lý quyền truy cập.