Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình Bash

Làm Chủ Tệp Khởi Tạo Shell & Hồ Sơ Người Dùng: Hướng Dẫn Cho Quản Trị Viên Linux

Linux là hệ thống đa người dùng, chia sẻ thời gian, nghĩa là nhiều hơn một người dùng có thể đăng nhập và sử dụng hệ thống. Và quản trị viên hệ thống có nhiệm vụ quản lý các khía cạnh khác nhau về cách người dùng khác nhau có thể vận hành hệ thống về cài đặt/cập nhật/gỡ bỏ phần mềm, chương trình họ có thể chạy, tệp họ có thể xem/chỉnh sửa, v.v.

Linux cũng cho phép môi trường người dùng được tạo hoặc duy trì theo hai cách chính: sử dụng cấu hình hệ thống rộng (global) và cấu hình cụ thể cho người dùng (personal). Thông thường, phương pháp cơ bản làm việc với hệ thống Linux là shell, và shell tạo môi trường tùy thuộc vào các tệp nhất định mà nó đọc trong quá trình khởi tạo sau khi người dùng đăng nhập thành công.

Đề Xuất Đọc: Cách Thiết Lập Biến Môi Trường Trong Linux

Trong bài này, chúng tôi sẽ giải thích các tệp khởi tạo shell liên quan đến hồ sơ người dùng cho quản lý người dùng cục bộ trong Linux. Chúng tôi sẽ cho bạn biết nơi lưu hàm shell tùy chỉnh, alias, biến cũng như chương trình khởi động.

Quan Trọng: Với mục đích của bài này, chúng tôi sẽ tập trung vào bash, một shell tương thích sh là shell phổ biến/được dùng nhất trên các hệ thống Linux.

Nếu bạn dùng shell khác (zsh, ash, fish v.v.), hãy đọc tài liệu của nó để tìm hiểu thêm về một số tệp liên quan chúng tôi sẽ nói ở đây.

Khởi Tạo Shell Trong Linux

Khi shell được gọi, có các tệp khởi tạo/khởi động nhất định mà nó đọc giúp thiết lập môi trường cho chính shell và người dùng hệ thống; đó là các hàm, biến, alias được định nghĩa sẵn (và tùy chỉnh) và hơn thế nữa.

Có hai loại tệp khởi tạo được shell đọc:

  • tệp khởi động hệ thống rộng – chứa cấu hình toàn cục áp dụng cho tất cả người dùng trên hệ thống, thường nằm trong thư mục /etc. Chúng bao gồm: /etc/profiles và /etc/bashrc hoặc /etc/bash.bashrc.
  • tệp khởi động cụ thể người dùng – lưu cấu hình áp dụng cho một người dùng đơn lẻ trên hệ thống và thường nằm trong thư mục home của người dùng dưới dạng tệp dot. Chúng có thể ghi đè cấu hình hệ thống rộng. Chúng bao gồm: .profiles, .bash_profile, .bashrc và .bash_login.

Lại nữa, shell có thể được gọi ở ba chế độ có thể:

1. Interactive Login Shell (Shell Đăng Nhập Tương Tác)

Shell được gọi sau khi người dùng đăng nhập thành công vào hệ thống, dùng /bin/login, sau khi đọc thông tin đăng nhập lưu trong tệp /etc/passwd.

Khi shell bắt đầu như một interactive login shell, nó đọc /etc/profile và tệp tương đương người dùng ~/.bash_profile.

Làm Chủ Tệp Khởi Tạo Shell & Hồ Sơ Người Dùng: Hướng Dẫn Cho Quản Trị Viên Linux

2. Interactive non-login Shell (Shell Tương Tác Không Đăng Nhập)

Shell được bắt đầu tại dòng lệnh dùng chương trình shell ví dụ $/bin/bash hoặc $/bin/zsh. Nó cũng có thể được bắt đầu bằng lệnh /bin/su.

Thêm vào đó, interactive non-login shell cũng có thể được gọi bằng chương trình terminal như konsole, terminator hoặc xterm từ trong môi trường đồ họa.

Khi shell bắt đầu ở trạng thái này, nó sao chép môi trường của shell cha, và đọc tệp ~/.bashrc dành cho người dùng để lấy thêm hướng dẫn cấu hình khởi động.

$ su
# ls -la
Làm Chủ Tệp Khởi Tạo Shell & Hồ Sơ Người Dùng: Hướng Dẫn Cho Quản Trị Viên Linux

3. Non-interactive Shell (Shell Không Tương Tác)

Shell được gọi khi một shell script đang chạy. Ở chế độ này, nó xử lý một script (tập hợp lệnh shell hoặc hệ thống chung/hàm) và không yêu cầu đầu vào người dùng giữa các lệnh trừ khi có yêu cầu khác. Nó hoạt động dùng môi trường kế thừa từ shell cha.

Hiểu Về Tệp Khởi Động Shell Hệ Thống Rộng

Trong phần này, chúng ta sẽ làm rõ hơn về các tệp khởi động shell lưu cấu hình cho tất cả người dùng trên hệ thống, bao gồm:

Tệp /etc/profile – lưu cấu hình môi trường toàn cục và chương trình khởi động cho thiết lập đăng nhập. Tất cả cấu hình bạn muốn áp dụng cho môi trường của tất cả người dùng hệ thống nên được thêm vào tệp này.

Ví dụ, bạn có thể đặt biến môi trường PATH toàn cục ở đây.

# cat /etc/profile
Làm Chủ Tệp Khởi Tạo Shell & Hồ Sơ Người Dùng: Hướng Dẫn Cho Quản Trị Viên Linux

Lưu ý: Trên một số hệ thống như RHEL/CentOS 7, bạn sẽ nhận được cảnh báo như „Không khuyến nghị thay đổi tệp này trừ khi bạn biết mình đang làm gì. Tốt hơn là tạo script shell .sh tùy chỉnh trong /etc/profile.d/ để thực hiện thay đổi tùy chỉnh cho môi trường của bạn, vì điều này sẽ ngăn chặn việc cần hợp nhất trong các cập nhật tương lai“.

Thư mục /etc/profile.d/ – lưu các script shell dùng để thực hiện thay đổi tùy chỉnh cho môi trường:

# cd /etc/profile.d/
# ls -l
Làm Chủ Tệp Khởi Tạo Shell & Hồ Sơ Người Dùng: Hướng Dẫn Cho Quản Trị Viên Linux

Tệp /etc/bashrc hoặc /etc/bash.bashrc – chứa các hàm và alias hệ thống rộng cũng như các cấu hình khác áp dụng cho tất cả người dùng hệ thống.

Nếu hệ thống của bạn có nhiều loại shell, ý tưởng tốt là đặt cấu hình riêng cho bash vào tệp này.

# cat /etc/bashrc
Làm Chủ Tệp Khởi Tạo Shell & Hồ Sơ Người Dùng: Hướng Dẫn Cho Quản Trị Viên Linux

Hiểu Về Tệp Khởi Động Shell Cụ Thể Người Dùng

Tiếp theo, chúng ta sẽ giải thích thêm về các tệp dot khởi động shell (bash) cụ thể người dùng, lưu cấu hình cho một người dùng cụ thể trên hệ thống, chúng nằm trong thư mục home của người dùng và bao gồm:

# ls -la
Làm Chủ Tệp Khởi Tạo Shell & Hồ Sơ Người Dùng: Hướng Dẫn Cho Quản Trị Viên Linux

Tệp ~/.bash_profile – lưu cấu hình môi trường và chương trình khởi động cụ thể người dùng. Bạn có thể đặt biến môi trường PATH tùy chỉnh ở đây, như ảnh chụp màn hình dưới:

# cat ~/.bash_profile
Làm Chủ Tệp Khởi Tạo Shell & Hồ Sơ Người Dùng: Hướng Dẫn Cho Quản Trị Viên Linux

Tệp ~/.bashrc – tệp này lưu alias và hàm cụ thể người dùng.

# cat ~/.bashrc
Làm Chủ Tệp Khởi Tạo Shell & Hồ Sơ Người Dùng: Hướng Dẫn Cho Quản Trị Viên Linux

Tệp ~/.bash_login – chứa cấu hình cụ thể thường chỉ được thực thi khi bạn đăng nhập vào hệ thống. Khi ~/.bash_profile vắng mặt, tệp này sẽ được bash đọc.

Tệp ~/.profile – tệp này được đọc khi vắng mặt ~/.bash_profile và ~/.bash_login; nó có thể lưu cùng các cấu hình, cũng có thể truy cập được bởi các shell khác trên hệ thống. Vì chúng ta chủ yếu nói về bash ở đây, hãy lưu ý các shell khác có thể không hiểu cú pháp bash.

Tiếp theo, chúng ta cũng sẽ giải thích hai tệp quan trọng khác cụ thể người dùng nhưng không nhất thiết là tệp khởi tạo bash:

Tệp ~/.bash_history – bash duy trì lịch sử các lệnh đã được nhập bởi người dùng trên hệ thống. Danh sách lệnh này được giữ trong thư mục home của người dùng trong tệp ~/.bash_history.

Để xem danh sách này, gõ:

$ history or $ history | less
Làm Chủ Tệp Khởi Tạo Shell & Hồ Sơ Người Dùng: Hướng Dẫn Cho Quản Trị Viên Linux

Tệp ~/.bash_logout – nó không dùng cho khởi động shell, nhưng lưu hướng dẫn cụ thể người dùng cho thủ tục đăng xuất. Nó được đọc và thực thi khi người dùng thoát khỏi interactive login shell.

Một ví dụ thực tế là xóa cửa sổ terminal khi đăng xuất. Điều này quan trọng cho kết nối từ xa, sẽ để lại cửa sổ sạch sau khi đóng chúng:

# cat bash_logout
Làm Chủ Tệp Khởi Tạo Shell & Hồ Sơ Người Dùng: Hướng Dẫn Cho Quản Trị Viên Linux

Để hiểu sâu hơn, hãy xem nội dung các tệp khởi tạo shell này trên các bản phân phối Linux khác nhau và đọc trang man bash:

Đó là tất cả cho đến nay! Trong bài này, chúng tôi giải thích các tệp khởi động/khởi tạo shell trong Linux. Sử dụng mẫu bình luận bên dưới để viết lại cho chúng tôi.