Giới thiệu cơ bản về Linux | Tổng quan về hệ điều hành Linux

Giới thiệu cơ bản về Linux | Tổng quan về hệ điều hành Linux

Linux là một họ hệ điều hành miễn phí và mã nguồn mở, được xây dựng dựa trên Linux kernel. Các hệ điều hành dựa trên Linux thường được gọi là các bản phân phối Linux hoặc distros. Ví dụ: Debian, Ubuntu, Fedora, CentOS, Gentoo, Arch Linux và nhiều bản khác.

Linux kernel đã được phát triển tích cực từ năm 1991 và chứng minh được tính linh hoạt, thích ứng vượt trội. Bạn có thể tìm thấy các máy tính chạy Linux trong nhiều bối cảnh khác nhau trên toàn thế giới, từ máy chủ web đến điện thoại di động. Hiện nay, 90% hạ tầng đám mây và 74% điện thoại thông minh toàn cầu đều sử dụng Linux.

Tuy nhiên, người mới làm quen với Linux có thể thấy khó khăn ban đầu, bởi vì cấu trúc hệ thống tập tin của Linux khác biệt so với Windows hay MacOS. Thêm vào đó, các hệ điều hành dựa trên Linux phụ thuộc nhiều vào việc làm việc qua giao diện dòng lệnh, trong khi hầu hết máy tính cá nhân lại dựa vào giao diện đồ họa.

Hướng dẫn này nhằm giới thiệu các khái niệm và kỹ năng quan trọng của giao diện dòng lệnh, giúp người mới có thể làm quen và khám phá Linux.

Yêu Cầu

Để theo dõi hướng dẫn này, bạn cần có quyền truy cập vào một máy tính chạy hệ điều hành dựa trên Linux. Điều này có thể là một máy chủ riêng ảo mà bạn kết nối qua SSH hoặc máy tính cá nhân của bạn. Lưu ý rằng bài hướng dẫn này được kiểm thử trên máy chủ Linux chạy Ubuntu 20.04, nhưng các ví dụ được đưa ra sẽ hoạt động trên bất kỳ phiên bản hay bản phân phối Linux nào.

Nếu bạn dự định sử dụng máy chủ từ xa để theo dõi hướng dẫn, chúng tôi khuyến khích bạn hoàn thành hướng dẫn Initial Server Setup trước. Việc này sẽ giúp bạn thiết lập một môi trường máy chủ an toàn — bao gồm một tài khoản không phải root với quyền sudo và cấu hình tường lửa bằng UFW — từ đó bạn có thể xây dựng kỹ năng Linux của mình.

Terminal

Các thuật ngữ “terminal”, “shell” và “giao diện dòng lệnh” thường được sử dụng thay thế cho nhau, nhưng có một số khác biệt nhỏ:

  • Terminal: Là môi trường nhập liệu và xuất kết quả, hiển thị cửa sổ chỉ có văn bản chạy shell.
  • Shell: Là chương trình cung cấp giao diện của hệ điều hành cho người dùng hoặc chương trình. Trong hệ thống Linux, shell được sử dụng trong terminal là trình thông dịch dòng lệnh.
  • Giao diện dòng lệnh: Là giao diện người dùng (được quản lý bởi chương trình thông dịch dòng lệnh) xử lý các lệnh gửi đến chương trình và xuất kết quả.

Khi ai đó nói đến một trong ba thuật ngữ này trong ngữ cảnh Linux, thông thường họ muốn nói đến môi trường terminal nơi bạn có thể chạy các lệnh và xem kết quả in ra, như ví dụ sau:

sammy terminal

Việc trở thành chuyên gia Linux đòi hỏi bạn phải thoải mái khi sử dụng terminal. Mọi tác vụ quản trị, bao gồm thao tác tập tin, cài đặt gói và quản lý người dùng, đều có thể được thực hiện qua terminal. Terminal là môi trường tương tác: bạn nhập lệnh và terminal xuất kết quả của lệnh đó. Để thực thi bất kỳ lệnh nào, bạn nhập lệnh vào dấu nhắc và nhấn ENTER.

Khi truy cập máy chủ đám mây, bạn hầu hết sẽ làm việc qua terminal shell. Mặc dù máy tính cá nhân chạy Linux thường đi kèm giao diện đồ họa quen thuộc với hầu hết người dùng, nhưng trong nhiều trường hợp việc thực hiện nhiệm vụ qua dòng lệnh sẽ nhanh chóng và hiệu quả hơn.

Filesystem Hierarchy Standard

Hầu hết các bản phân phối Linux đều tuân theo tiêu chuẩn chung về cấu trúc thư mục hệ thống, được gọi là Filesystem Hierarchy Standard (FHS). FHS định nghĩa một tập hợp các thư mục, mỗi thư mục có chức năng riêng biệt.

Dấu gạch chéo ( / ) được sử dụng để chỉ thư mục gốc (root directory) trong cấu trúc hệ thống theo FHS.

Khi người dùng đăng nhập vào shell, họ sẽ được chuyển đến thư mục người dùng của mình, nằm trong /home/. Đây được gọi là thư mục home của người dùng. FHS quy định rằng thư mục /home/ chứa các thư mục home của người dùng thông thường.

Người dùng root có thư mục home riêng theo FHS: /root/. Lưu ý rằng / được gọi là “root directory”, khác với root/ nằm trong /.

Bởi vì FHS là bố cục mặc định của hệ thống tập tin trên máy Linux, và mỗi thư mục bên trong đều được thiết kế để phục vụ một mục đích cụ thể, điều này giúp quá trình sắp xếp tập tin theo chức năng trở nên đơn giản hơn.

Điều Hướng (Navigation)

Hệ thống tập tin Linux dựa trên cấu trúc cây thư mục. Điều này có nghĩa là bạn có thể tạo các thư mục (chức năng tương đương với folder trên các hệ điều hành khác) bên trong các thư mục khác, và tập tin có thể nằm ở bất kỳ thư mục nào.

Để biết bạn đang ở thư mục nào, bạn có thể sử dụng lệnh pwd (viết tắt của “print working directory”):

pwd

Lệnh pwd in ra đường dẫn đến thư mục hiện tại. Ví dụ:

Output:

/home/sammy

Ví dụ trên cho thấy thư mục hiện tại là sammy, nằm trong thư mục home/, thuộc thư mục gốc /. Vì thư mục sammy/ nằm trong home/, nên nó đại diện cho thư mục home của người dùng sammy.

Để xem danh sách các tập tin và thư mục trong thư mục hiện tại, sử dụng lệnh ls:

ls

Lệnh này sẽ trả về danh sách tên của tất cả tập tin và thư mục trong thư mục hiện tại. Nếu bạn đang theo dõi hướng dẫn trên một máy mới, lệnh này có thể không trả về kết quả gì.

Bạn có thể tạo một hoặc nhiều thư mục mới trong thư mục hiện tại bằng lệnh mkdir (viết tắt của “make directory”). Ví dụ, để tạo hai thư mục mới tên testdir1testdir2, bạn chạy:

mkdir testdir1 testdir2

Bây giờ, khi bạn chạy lại lệnh ls, các thư mục này sẽ xuất hiện:

ls

Output:

testdir1
testdir2

Để chuyển vào một trong các thư mục mới này, sử dụng lệnh cd (viết tắt của “change directory”) và chỉ định tên thư mục:

cd testdir1

Lệnh này sẽ thay đổi thư mục làm việc hiện tại sang testdir1. Bạn có thể kiểm tra lại bằng lệnh pwd:

pwd

Output:

/home/sammy/testdir1

Tuy nhiên, vì testdir1testdir2 đều nằm trong thư mục home của người dùng sammy, chúng thuộc các nhánh khác nhau của cây thư mục. Lệnh cd chỉ tìm thư mục con trong thư mục hiện tại, nên bạn không thể chuyển trực tiếp vào testdir2 khi đang ở testdir1:

cd testdir2

Output:

bash: cd: testdir2: No such file or directory

Bạn có thể chuyển đến bất kỳ thư mục nào nếu chỉ định đầy đủ đường dẫn, ví dụ:

cd /home/sammy/testdir2

Lưu ý: Trong Linux, dấu ngã (~) là viết tắt cho thư mục home của người dùng đang đăng nhập. Do đó, bạn có thể viết:

cd ~/testdir2

Ngoài ra, bạn có thể sử dụng .. để chuyển lên một cấp trong đường dẫn. Để quay về thư mục trước:

cd ..

Nếu bạn không chắc mình đang ở đâu, luôn có thể chạy lệnh pwd để kiểm tra thư mục hiện tại. Nhiều shell hiện đại (bao gồm Bash, mặc định trên nhiều bản phân phối Linux) cũng hiển thị đường dẫn hiện tại trong prompt, như các ví dụ trên.

Thao tác với tập tin (File Manipulation)

Lệnh cd chỉ dùng để điều hướng thư mục, không thể dùng để tương tác với tập tin. Tuy nhiên, bạn có thể tạo, chỉnh sửa và xem nội dung tập tin.

Tạo tập tin

Một cách để tạo tập tin là dùng lệnh touch. Ví dụ, để tạo một tập tin mới có tên file.txt:

touch file.txt

Lệnh này tạo ra một tập tin rỗng có tên file.txt trong thư mục làm việc hiện tại.

Đổi tên tập tin

Nếu bạn muốn đổi tên tập tin file.txt sau này, sử dụng lệnh mv:

mv file.txt newfile.txt

Lệnh mv (viết tắt của “move”) có thể di chuyển hoặc đổi tên tập tin/thư mục. Ở đây, ta di chuyển (đổi tên) file.txt thành newfile.txt trong cùng thư mục.

Sao chép tập tin

Bạn cũng có thể sao chép một tập tin tới vị trí khác bằng lệnh cp. Nếu bạn muốn giữ lại cả newfile.txt và tạo lại file.txt, bạn có thể chạy:

cp newfile.txt file.txt

Lệnh cp (viết tắt của “copy”) sẽ sao chép tập tin newfile.txt và tạo ra một bản sao mới có tên file.txt.

Chỉnh sửa tập tin

Để chỉnh sửa tập tin, bạn cần một trình soạn thảo văn bản. Có nhiều lựa chọn, như vim, emacs, nanopico.
Với người mới, nano là lựa chọn phù hợp vì giao diện thân thiện và không quá phức tạp.

Để thêm văn bản vào file.txt bằng nano, chạy:

nano file.txt

Lệnh này sẽ mở một không gian soạn thảo cho bạn, nơi bạn có thể nhập văn bản vào file file.txt. Bạn có thể nhập bất kỳ nội dung nào hoặc dán nội dung mẫu sau:

Say it's only a paper moon
Sailing over a cardboard sea,
But it wouldn't be make believe
If you believed in me.

Yes it's only a canvas sky
Hanging over a muslin tree,
But it wouldn't be make believe
If you believed in me.

Without your love,
It's a honky-tonk parade.
Without your love,
It's a melody played in a penny arcade.

It's a Barnum and Bailey world,
Just as phony as it can be,
But it wouldn't be make believe
If you believed in me.

Để lưu lại văn bản bạn vừa chỉnh sửa, nhấn CTRL + X, sau đó Y để xác nhận lưu, và nhấn ENTER để thoát nano. Bạn sẽ trở về terminal với tập tin file.txt đã được lưu.

Xem nội dung tập tin

Giờ đây, tập tin file.txt đã có nội dung. Bạn có thể xem nội dung của nó bằng lệnh cat hoặc less.

  • cat: In toàn bộ nội dung tập tin ra màn hình.
cat file.txt

Output (ví dụ nếu bạn sử dụng nội dung mẫu bên trên):

Say it's only a paper moon
Sailing over a cardboard sea,
But it wouldn't be make believe
If you believed in me.

Yes it's only a canvas sky
Hanging over a muslin tree,
But it wouldn't be make believe
If you believed in me.

Without your love,
It's a honky-tonk parade.
Without your love,
It's a melody played in a penny arcade.

It's a Barnum and Bailey world,
Just as phony as it can be,
But it wouldn't be make believe
If you believed in me.
  • less: Hiển thị nội dung tập tin theo từng trang. Ví dụ:
less file.txt

Sử dụng phím cách (spacebar) để chuyển trang, hoặc phím mũi tên để di chuyển lên xuống từng dòng. Nhấn q để thoát.

Xóa tập tin

Để xóa tập tin file.txt, sử dụng lệnh rm:

rm file.txt

Lưu ý: Không có tùy chọn nào khác, lệnh rm (viết tắt của “remove”) không thể xóa thư mục. Tuy nhiên, nó có tùy chọn -d để xóa thư mục rỗng:

rm -d directory

Bạn cũng có thể xóa thư mục rỗng bằng lệnh rmdir:

rmdir directory

Nếu bạn muốn xóa một thư mục không rỗng, hãy dùng lệnh rm với tùy chọn -r để xóa thư mục cùng với tất cả tập tin và thư mục con bên trong:

rm -r directory

Tuy nhiên, vì việc xóa là hành động vĩnh viễn, hãy chắc chắn rằng bạn muốn xóa thư mục đó trước khi sử dụng tùy chọn -r.

Việc điều hướng hệ thống Linux qua terminal đòi hỏi thời gian, sự cống hiến và một tâm trí tò mò, đặc biệt khi bạn còn hoàn toàn mới với Linux. Khi có câu hỏi về cách thực hiện một tác vụ nào đó, có nhiều nguồn tài liệu mà bạn có thể tham khảo. Các công cụ tìm kiếm như Google và DuckDuckGo là những nguồn thông tin vô giá, cũng như các trang hỏi đáp như Stack Exchange hoặc DigitalOcean’s Community Q&A. Rất có khả năng nếu bạn có câu hỏi, nhiều người khác cũng đã đặt câu hỏi đó và được giải đáp.

Nếu câu hỏi của bạn liên quan đến một lệnh Linux cụ thể, các trang man page (trang hướng dẫn) cung cấp tài liệu chi tiết và bổ ích cho hầu hết các lệnh. Để xem trang man cho bất kỳ lệnh nào, hãy truyền tên lệnh đó cho lệnh man:

man command

Ví dụ, man rm sẽ hiển thị mục đích của lệnh rm, cách sử dụng, các tùy chọn có sẵn, ví dụ minh họa và các thông tin hữu ích khác.

Kết luận

Hướng dẫn này nhằm mục đích giới thiệu bạn đến với môi trường Linux. Tuy nhiên, hiểu biết đầy đủ về Linux và tất cả các thành phần của nó vượt xa phạm vi của một bài hướng dẫn đơn lẻ. Ví dụ, bài hướng dẫn này không đề cập đến quyền (permissions) – một khái niệm cơ bản trong quản trị hệ thống Linux.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *