Bài viết này tổng hợp những khái niệm Linux cần thiết để bạn bắt đầu và xây dựng nền tảng vững chắc. Từ tìm hiểu cấu trúc lệnh, sử dụng Man Pages đến quản lý file và thư mục, bài viết sẽ hướng dẫn bạn từng bước làm chủ hệ điều hành Linux.
Khám phá Dấu nhắc lệnh và Cấu trúc lệnh
Mở terminal, chúng ta sẽ thấy dấu nhắc lệnh:
bao gồm tên người dùng@tên máy, tiếp theo là dấu ~ và sau đó là dấu $. ~ đại diện cho thư mục home và $ đại diện cho việc bạn là người dùng thông thường chứ không phải super user.
Cấu trúc lệnh được hiểu như sau:
command -options arguments
Trong đó:
- -options: điều chỉnh hành vi của lệnh, cho phép chúng ta cung cấp một hoặc nhiều tùy chọn cho một lệnh.
- arguments: nhiều lệnh chấp nhận các đối số, đây là những thứ mà lệnh tác động lên hoặc sử dụng.
Lưu ý: Các lệnh phân biệt chữ hoa chữ thường.
Ví dụ:
sort -r file.txt
, với -r là một tùy chọn và file.txt là một đối số.
Tìm hiểu Man Pages và các loại lệnh
Man Pages là trang hướng dẫn tham khảo cho các lệnh. Chúng ta có thể xem chi tiết của một lệnh bằng cách chạy:
man touch
Các loại lệnh thường dùng:
- Lệnh ngoài: Một chương trình thực thi, thường được lưu trữ trong /bin, /usr/bin hoặc /usr/local/bin. Mỗi lệnh chúng ta chạy là một tệp trên hệ thống, nó là một tệp nhị phân được biên dịch. Lưu ý: bạn có thể xem tệp lệnh của mình được lưu trữ ở đâu bằng cách chạy which <commandname>.
- Lệnh trong: Một lệnh shell tích hợp sẵn, chúng là một phần của shell (bash) và không phải là một phần của các tệp thực thi. Shell thực thi chúng trực tiếp.
- Hàm Shell: Các hàm Shell là các khối mã nhóm các lệnh lại với nhau theo cách có thể tái sử dụng. Chúng cho phép người dùng tự định nghĩa các lệnh của riêng mình trong các tập lệnh.
- Alias: Đây là một phím tắt cho một lệnh hoặc một loạt lệnh. Điều này có thể được định nghĩa trong phiên terminal (tạm thời) hoặc trong tệp .bashrc (vĩnh viễn).
Chuyển hướng Dòng lệnh và Đường dẫn
Chuyển hướng là quá trình định tuyến đầu vào chuẩn, đầu ra chuẩn và lỗi chuẩn vào một tệp hoặc một chương trình.
Mỗi luồng (đầu vào, đầu ra, lỗi) đều có bộ mô tả số riêng: đầu vào chuẩn = 0, đầu ra chuẩn = 1 và lỗi chuẩn = 2.
- Chuyển hướng đầu vào chuẩn: command < input.txt. Nội dung của tệp sẽ đóng vai trò là đầu vào chuẩn và sẽ được chuyển hướng đến lệnh.
- Chuyển hướng đầu ra chuẩn: nếu bạn chạy ls -l > files.txt, nội dung sẽ được lưu trữ trong files.txt.
- Chuyển hướng lỗi chuẩn: cat unknownfile 2> error.txt. Ở đây, 2> là toán tử chuyển hướng lỗi chuẩn, nội dung sẽ được lưu trữ trong error.txt.
Chuyển hướng đầu ra chuẩn và lỗi chuẩn sang các tệp khác nhau SO VỚI cùng một tệp bằng cách sử dụng bộ mô tả số:
ls docs > output.txt 2> output.txt
VÀ ls docs > output.txt 2>&1
Đường dẫn tuyệt đối và đường dẫn tương đối
- Đường dẫn tuyệt đối: Bắt đầu từ thư mục gốc (/), /home/user1/Desktop/file.txt có tuyến đường dẫn đầy đủ.
- Đường dẫn tương đối: Giả sử chúng ta đang ở trong thư mục /home/user1/Desktop/, chúng ta có thể điều hướng đến một thư mục có tên tests bằng cách chạy cd tests. Điều này là do thư mục này đã liên quan đến thư mục làm việc hiện tại của chúng ta và không cần tham chiếu tuyệt đối.
Xử lý File và Thư mục trong Linux
Để tạo tệp và thư mục, ta sử dụng:
- touch colors.txt sẽ tạo colors.txt.
- mkdir templates sẽ tạo một thư mục có tên là templates.
Các thao tác sao chép, di chuyển và xóa:
- cp colors.txt /home/user1/Desktop/new/ sẽ sao chép tệp colors.txt vào đường dẫn được chỉ định và cp new/ /home/user1/Desktop/updated_new/ sẽ sao chép toàn bộ nội dung thư mục vào thư mục updated_new.
- mv colors.txt /home/user1/Desktop/new/ sẽ di chuyển tệp colors.txt vào đường dẫn được chỉ định, mv new/ /home/user1/Desktop/updated_new/ sẽ di chuyển toàn bộ nội dung thư mục vào thư mục updated_new.
- rm colors.txt sẽ xóa colors.txt.
- rm -d <foldername> xóa các thư mục trống.
- rm -r <foldername> xóa thư mục và thư mục con ở chế độ đệ quy. Sử dụng tùy chọn -f để xóa mọi thứ bằng lực đệ quy.
Liệt kê thư mục:
ls hiển thị nội dung của một thư mục. Tùy chọn -l giúp chúng ta xem nó ở dạng dài, -la giúp chúng ta xem dạng dài + các tệp ẩn và tùy chọn -lah hiển thị định dạng dễ đọc.
Các lệnh hữu ích hơn
- pwd, in ra thư mục làm việc hiện tại.
- cd <dirname>, thay đổi thư mục làm việc hiện tại thành thư mục đã đề cập.
- cat <filename>Hiển thị nội dung của một tập tin trên thiết bị đầu cuối.
- more <filename>, Xem tệp theo từng trang.
- less <filename>Tương tự như more, nhưng cho phép cuộn ngược.
- nano <filename>, trình soạn thảo văn bản cho phép chỉnh sửa tập tin.
- whoami, hiển thị tên người dùng của người dùng hiện tại.
Quyền
Có ba loại: đọc, ghi và thực thi, các mô tả số cho chúng là read=4, write=2 và execute=1, quyền đối với tệp hoặc thư mục có thể được xem bằng cách liệt kê nội dung của các thư mục, ls -lcột đầu tiên hiển thị quyền đối với tệp, cột thứ ba là người dùng và cột thứ tư là nhóm.
Chủ sở hữu, Nhóm và World là gì?
- Người dùng (u): có thể có nhiều người dùng trên hệ thống.
- Nhóm (g): Người dùng có thể thuộc một nhóm được cấp quyền truy cập vào một tệp hoặc thư mục cụ thể.
- World(o): Bất kỳ ai ngoài chủ sở hữu và không thuộc nhóm.
Thay đổi Quyền
chmod <permissiontype>
ví dụ, chúng ta có thể thay đổi quyền của người dùng đối với một tệp hoặc một thư mục bằng cách nói chmod u+rw file.txt(thay đổi chế độ cho người dùng, thêm quyền đọc và ghi cho tệp có tên file.txt)
hoặc chúng ta có thể thực hiện theo cách số, cấp quyền đọc, ghi và thực thi cho tất cả các vai trò bằng cách nói chmod 777 file.txt(thay đổi chế độ, cấp quyền đọc, ghi và thực thi cho tất cả các vai trò).
Biến môi trường
Shell duy trì một tập hợp thông tin trong suốt phiên shell được gọi là môi trường. Nó chỉ là một chuỗi các cặp giá trị khóa được phân tách bằng dấu bằng, dùng để xác định các thuộc tính như:
- Thư mục nhà của bạn
- Thư mục làm việc của bạn
- Tên của vỏ của bạn
- Tên của người dùng đã đăng nhập
Xem Môi trường
Nhập printenv vào terminal để xem các biến môi trường và giá trị hiện tại của chúng.
Mở rộng tham số
Bạn có thể in ra một biến môi trường có dấu đô la bằng lệnh echo, ví dụ:
echo $USER, sẽ in ra tên người dùng hiện tại đang đăng nhập.
Định nghĩa các biến
Bạn có thể định nghĩa một biến bằng cách nói biến=giá trị, ví dụcolor=’purple’
Bí danh
Bạn có thể tạo lệnh của riêng mình bằng cách sử dụng từ khóa bí danh, ví dụ:
alias ll = ‘ls -l’, bây giờ bạn có thể chạy ll thay vì ls -l, hãy nhớ rằng việc thiết lập bí danh sẽ chỉ ảnh hưởng đến phiên shell, hãy xem cách thêm nó vào tệp cấu hình toàn cục.
Các tập tin khởi động
Khi chúng ta đăng nhập, shell sẽ đọc thông tin từ các tệp khởi động. Đầu tiên, shell sẽ đọc từ tệp cấu hình chung ảnh hưởng đến môi trường của tất cả người dùng. Sau đó, shell sẽ đọc các tệp khởi động của những người dùng cụ thể.
Các tập tin cụ thể mà shell đọc phụ thuộc vào loại phiên, phiên đăng nhập và phiên không đăng nhập.
Đối với phiên đăng nhập: /etc/profile: cấu hình chung cho tất cả người dùng. ~/.bash_profile: tệp cấu hình cá nhân của người dùng. ~/.bash_login: đọc nếu không tìm thấy bash_profile. ~/.profile: được sử dụng nếu không tìm thấy hai tệp trước đó.
Đối với phiên không đăng nhập: etc/bash.bashrc: cấu hình toàn cục cho tất cả người dùng
~/.bashrc:cài đặt cụ thể cho từng người dùng. Đây là nơi chúng ta có thể xác định cài đặt và cấu hình của riêng mình.
Phím tắt
- ctrl-l: xóa các lệnh trong terminal.
- ctrl-a: di chuyển con trỏ trong terminal đến đầu dòng.
- ctrl-e: để di chuyển con trỏ đến cuối dòng.
- ctrl-f: để di chuyển con trỏ về phía trước một ký tự.
- ctrl-b: để di chuyển con trỏ lùi lại một ký tự.
- alt-f: để di chuyển con trỏ về phía trước một từ.
- alt-b: để di chuyển con trỏ lùi lại một từ.
- ctrl-k: để xóa văn bản từ vị trí con trỏ hiện tại cho đến hết dòng
- ctrl-u: để xóa văn bản từ vị trí con trỏ hiện tại cho đến đầu dòng.
- ctrl-y: để lấy văn bản bị hủy gần đây nhất.
- history: để xem danh sách các lệnh chúng ta đã nhập trước đó, chúng ta có thể xem tệp thực tế tại ~/.bash_history, chạy lệnh này nếu bạn muốn chạy một dòng cụ thể trong lịch sử, !223 để chạy dòng thứ 223 trong lịch sử.
- ctrl-r: để nhập “reverse-i-search”, khi bạn bắt đầu nhập, bash sẽ tìm kiếm lịch sử và hiển thị cho bạn kết quả phù hợp nhất.
- ctrl-w: để xóa từ từ vị trí con trỏ hiện tại đến đầu từ.
Cảm ơn các bạn đã theo dõi!