Computer >> Máy Tính >  >> Lập trình >> Lập trình BASH

Hồ sơ Bash và Cách sử dụng

Nếu bạn thường xuyên tương tác với Linux thông qua Bash shell, cuối cùng bạn sẽ muốn tùy chỉnh nó một chút - có thể thêm các phím tắt của riêng bạn hoặc thiết lập môi trường theo ý thích của bạn, hoặc thậm chí chỉ cần thêm một số cá nhân hóa trang trí.

Đây là những gì hồ sơ Bash dành cho. Nó được lưu trữ trong thư mục chính của bạn và có thể được chỉnh sửa để thiết lập mọi thứ theo cách bạn muốn mỗi khi đăng nhập.

Chỉnh sửa hồ sơ Bash của bạn

Để chỉnh sửa hồ sơ bash của bạn, hãy mở hồ sơ đó bằng nano trình soạn thảo văn bản bằng cách chạy:

nano ~/.bash_profile

Nếu bạn muốn sao lưu hồ sơ hiện tại của mình, hãy tạo một bản sao của nó bằng cách chạy:

cp .bash_profile .bash_profile.bak

Nếu ~ / .bash_profile tệp không tồn tại, ~ / .profile tệp sẽ được đọc thay thế. Đây là mặc định trên bản phân phối Ubuntu Linux.

Nếu bạn muốn sao chép nội dung của ~ / .profile mặc định tệp vào một ~ / .bash_profile mới để chỉnh sửa, bạn có thể tạo một bản sao:

cp ~/.profile ~/.bash_profile

Lưu ý rằng ~ / trong Linux shell là một lối tắt đến thư mục chính của người dùng hiện tại.

Ví dụ

Dưới đây là một số điều bạn có thể làm với hồ sơ Bash của mình để bắt đầu.

Thay đổi Shell Prompt

Thông thường, lời nhắc trình bao của bạn sẽ trông giống như sau:

[email protected]:~$

… Sự kết hợp của tên bạn, tên máy chủ và thư mục làm việc hiện tại. Điều này có thể được thay đổi bằng cách sửa đổi .bash_profile tệp và thêm dòng sau:

export PS1="?"

Điều này sẽ thay đổi lời nhắc thành một biểu tượng cảm xúc đầu máy. Bản thân điều này không phải là tất cả đều hữu ích, nhưng những thứ khác có thể được bổ sung.

Thao tác này sẽ thay đổi lời nhắc thành người dùng đã đăng nhập hiện tại, tiếp theo là đầu máy:

export PS1="\u ?"

Bạn có thể thêm văn bản, ký tự và giá trị của riêng mình. Để biết danh sách tất cả các biến tích hợp mà bạn có thể sử dụng (ngày, tên người dùng, thư mục hiện tại, v.v.), hãy xem:

https://www.gnu.org/savannah-checkouts/gnu/bash/manual/bash.html#Controlling-the-Prompt

Thay đổi màu văn bản và màu nền!

Dựa trên ví dụ trên, chúng ta có thể thêm một số màu sắc. Ví dụ này sẽ làm cho văn bản lời nhắc có màu đỏ với nền màu xanh lam:

export PS1="\e[44;31m\u ? \e[0m "

… Và điều này sẽ thêm rằng biểu tượng cảm xúc đoàn tàu sẽ nhấp nháy:

export PS1="\e[44;31m\u \e[5m? \e[0m "

Lưu ý rằng:

  • \ e [:Bắt đầu lược đồ định dạng
  • 44; 31:Màu nền và màu văn bản tương ứng
  • \ e [5 phút làm cho biểu tượng xe lửa nhấp nháy
  • \ e [m:Dừng lược đồ định dạng bằng cách đặt lại tất cả các thuộc tính

Có rất nhiều màu sắc và tùy chọn định dạng mà bạn có thể sử dụng. Đây không phải là một danh sách đầy đủ, nhưng nó cung cấp một vài ví dụ hữu ích:

Ý nghĩa Ví dụ
1 In đậm “\ e [In đậm 1m”
2 Bị mờ “\ e [2mDimmed”
3 Gạch chân “\ e [4mUnderline”
4 Chớp mắt “\ e [Liên kết 5 phút”
5 Màu đảo ngược “\ e [7mInverted”

Các màu có sẵn là các giá trị số có thể được ghép nối thành các kết hợp nền / văn bản. Chúng sẽ khác nhau tùy thuộc vào môi trường của bạn - lệnh này sẽ xuất ra các kết hợp có sẵn trên hệ thống của bạn:

for x in {0..8}; do for i in {30..37}; do for a in {40..47}; do echo -ne "\e[$x;$i;$a""m\\\e[$x;$i;$a""m\e[0;37;40m "; done; echo; done; done; echo ""

Thêm phím tắt / chức năng của riêng bạn

Nếu bạn thấy mình đang gõ liên tục cùng một chuỗi lệnh, bạn có thể xác định một hàm phím tắt trong hồ sơ bash của mình. Thêm mã sau vào ~ / .bash_profile tệp sẽ xác định một hàm mới liệt kê thư mục, sau đó cảm thán rằng nó thật tuyệt:

myShortcut(){
        ls -la
        echo "Look at that nice directory!"
}

Để chạy nó, bây giờ bạn chỉ cần chạy:

myShortcut

Vào shell và nội dung của hàm đó sẽ được thực thi.

Áp dụng các thay đổi

Để áp dụng các thay đổi cho hồ sơ của bạn và xem chúng mà không cần khởi động lại hoặc đóng thiết bị đầu cuối, chỉ cần chạy:

source ~/.bash_profile

Còn Zsh thì sao?

Gần đây chúng tôi đã khám phá trình bao zsh.

Zsh cũng có một tệp hồ sơ phục vụ cùng mục đích với hồ sơ bash, nằm tại:

~/.zprofile

Nó cũng có thể được chỉnh sửa giống như hồ sơ Bash, nhưng với các chức năng cụ thể của Zsh. Hãy thử!