OnWorks Linux và Windows Online WorkStations

Logo

Lưu trữ trực tuyến miễn phí cho máy trạm

<Trước | Nội dung | Tiếp theo>

Khi một trình bao đăng nhập thoát ra, bash đọc và thực hiện các lệnh từ tệp ~ / .bash_logout, nếu nó tồn tại. Quy trình này được giải thích chi tiết trong đăng nhập bash trang người đàn ông.

7.2.3. Một tập hợp các tệp thiết lập điển hình


7.2.3.1. /etc/profile ví dụ


Chúng ta hãy xem xét một số tập tin cấu hình. Đầu tiên / etc / profile được đọc, trong đó các biến quan trọng như

PATH, USER và HOSTNAME được đặt:


debby: ~> mèo/etc/hồ sơ

# /etc/hồ sơ


# Môi trường toàn hệ thống và các chương trình khởi động, để thiết lập đăng nhập

# Các hàm và bí danh nằm trong /etc/bashrc


# Thao tác đường dẫn

if [ `id -u` = 0 ] && ! tiếng vang $PATH | /bin/grep -q "/sbin" ; sau đó PATH=/sbin:$PATH

fi


if [ `id -u` = 0 ] && ! tiếng vang $PATH | /bin/grep -q "/usr/sbin" ; sau đó PATH=/usr/sbin:$PATH

fi


if [ `id -u` = 0 ] && ! tiếng vang $PATH | /bin/grep -q "/usr/local/sbin" rồi

PATH=/usr/local/sbin:$PATH

fi


nếu như ! tiếng vang $PATH | /bin/grep -q "/usr/X11R6/bin" ; sau đó PATH="$PATH:/usr/X11R6/bin"

fi

debby: ~> mèo/etc/hồ sơ

# /etc/hồ sơ


# Môi trường toàn hệ thống và các chương trình khởi động, để thiết lập đăng nhập

# Các hàm và bí danh nằm trong /etc/bashrc


# Thao tác đường dẫn

if [ `id -u` = 0 ] && ! tiếng vang $PATH | /bin/grep -q "/sbin" ; sau đó PATH=/sbin:$PATH

fi


if [ `id -u` = 0 ] && ! tiếng vang $PATH | /bin/grep -q "/usr/sbin" ; sau đó PATH=/usr/sbin:$PATH

fi


if [ `id -u` = 0 ] && ! tiếng vang $PATH | /bin/grep -q "/usr/local/sbin" rồi

PATH=/usr/local/sbin:$PATH

fi


nếu như ! tiếng vang $PATH | /bin/grep -q "/usr/X11R6/bin" ; sau đó PATH="$PATH:/usr/X11R6/bin"

fi

Những dòng này kiểm tra đường dẫn để đặt: if nguồn gốc mở shell (ID người dùng 0), nó được kiểm tra rằng / sbin, / usr / sbin

/usr/local/sbin nằm trong đường dẫn. Nếu không, chúng sẽ được thêm vào. Mọi người đã kiểm tra rằng

/usr/X11R6/bin nằm trong đường dẫn.


# Theo mặc định, không có tệp lõi ulimit -S -c 0 > /dev/null 2>&1

# Theo mặc định, không có tệp lõi ulimit -S -c 0 > /dev/null 2>&1

Tất cả rác được chuyển đến / dev / null nếu người dùng không thay đổi cài đặt này.


NGƯỜI DÙNG=`id -un` LOGNAME=$USER

MAIL="/var/spool/mail/$USER"


HOSTNAME=`/bin/tên máy chủ` HISTSIZE=1000

NGƯỜI DÙNG=`id -un` LOGNAME=$USER

MAIL="/var/spool/mail/$USER"


HOSTNAME=`/bin/tên máy chủ` HISTSIZE=1000

Ở đây các biến chung được gán giá trị thích hợp của chúng.


nếu [ -z "$INPUTRC" -a ! -f "$HOME/.inputrc" ]; thì INPUTRC=/etc/inputrc

fi

nếu [ -z "$INPUTRC" -a ! -f "$HOME/.inputrc" ]; thì INPUTRC=/etc/inputrc

fi

Nếu biến ĐẦU VÀO chưa được thiết lập và không có .inputrc trong thư mục chính của người dùng thì tệp điều khiển đầu vào mặc định sẽ được tải.


hình ảnh


xuất khẩu PATH USER TÊN ĐĂNG NHẬP MAIL TÊN MÁY CHỦ KÍCH THƯỚC LỊCH SỬ ĐẦU VÀO

Tất cả các biến đều được xuất để chúng có sẵn cho các chương trình khác yêu cầu thông tin về môi trường của bạn.


hình ảnh

7.2.3.2. Thư mục profile.d


cho tôi trong /etc/profile.d/*.sh ; làm gì nếu [ -r $i ]; sau đó

. $i

xong rồi, hủy cài đặt tôi

cho tôi trong /etc/profile.d/*.sh ; làm gì nếu [ -r $i ]; sau đó

. $i

xong rồi, hủy cài đặt tôi

Tất cả các tập lệnh shell có thể đọc được từ /etc/profile.d thư mục được đọc và thực thi. Chúng làm những việc như kích hoạt màu-ls, răng cưa vi đến khí lực, cài đặt ngôn ngữ, v.v. Biến tạm thời i không được đặt để ngăn nó làm xáo trộn hành vi của shell sau này.


hình ảnh

7.2.3.3. ví dụ .bash_profile


Sau đó bash tìm kiếm một .bash_profile trong thư mục chính của người dùng:


hình ảnh

debby: ~> mèo .bash_profile

###################################################### ###############

# #

# tập tin .bash_profile #

# #

# Được thực thi từ bash shell khi bạn đăng nhập. #

# #

###################################################### ###############


nguồn ~/.bashrc nguồn ~/.bash_login

Tệp chuyển tiếp rất đơn giản này hướng dẫn trình bao của bạn đọc lần đầu tiên ~ / .bashrc và sau đó ~ / .bash_login. Bạn sẽ gặp phải nguồn Lệnh shell tích hợp thường xuyên khi làm việc trong môi trường shell: nó được sử dụng để áp dụng các thay đổi cấu hình cho môi trường hiện tại.


hình ảnh

7.2.3.4. ví dụ .bash_login


Sản phẩm ~ / .bash_login tập tin xác định bảo vệ tập tin mặc định bằng cách thiết lập cái ô giá trị, xem Phần 3.4.2.2. Các ~ / .bashrc tệp được sử dụng để xác định một loạt các bí danh và hàm dành riêng cho người dùng cũng như các biến môi trường cá nhân. Đầu tiên nó đọc / Etc / .bashrc, mô tả lời nhắc mặc định (PS1) và giá trị umask mặc định. Sau đó, bạn có thể thêm cài đặt của riêng bạn. Nếu không ~ / .bashrc tồn tại, / Etc / .bashrc được đọc theo mặc định.


hình ảnh

7.2.3.5. ví dụ /etc/bashrc


trên màn hình / Etc / .bashrc tệp có thể trông như thế này:


debby: ~> con mèo/etc/bashrc

# /etc/bashrc


# Các hàm và bí danh trên toàn hệ thống

# Nội dung môi trường có trong /etc/profile


# theo mặc định, chúng tôi muốn cài đặt này.

debby: ~> con mèo/etc/bashrc

# /etc/bashrc


# Các hàm và bí danh trên toàn hệ thống

# Nội dung môi trường có trong /etc/profile


# theo mặc định, chúng tôi muốn cài đặt này.


# Ngay cả đối với các shell không tương tác, không đăng nhập.

if [ `id -gn` = `id -un` -a `id -u` -gt 99 ]; sau đó ô 002

khác

ô 022

fi

# Ngay cả đối với các shell không tương tác, không đăng nhập.

if [ `id -gn` = `id -un` -a `id -u` -gt 99 ]; sau đó ô 002

khác

ô 022

fi

Những dòng này thiết lập cái ô giá trị. Sau đó, tùy thuộc vào loại shell, lời nhắc sẽ được đặt:


# chúng ta có phải là một lớp vỏ tương tác không? nếu [ "$PS1" ]; sau đó

if [ -x /usr/bin/tput ]; sau đó

if [ "x`tput kbs`" != "x" ]; sau đó

# Chúng tôi không thể làm điều này với việc xóa stty terminal "ngu ngốc" `tput kbs`

elif [ -x /usr/bin/wc ]; sau đó

if [ "`tput kbs|wc -c `" -gt 0 ]; sau đó

# Chúng tôi không thể làm điều này với việc xóa stty terminal "ngu ngốc" `tput kbs`

fi fi

fi

trường hợp $ TERM trong

xterm *)

nếu [ -e /etc/sysconfig/bash-prompt-xterm ]; sau đó PROMPT_COMMAND=/etc/sysconfig/bash-Prompt-xterm

khác

PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:\

${PWD/$HOME/~}\007"'

fi

;;

*)

[ -e /etc/sysconfig/bash-Prompt-default] && PROMPT_COMMAND=\

/etc/sysconfig/bash-prompt-default

;;

nó C

[ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \W]\\$ "


if [ "x$SHLVL" != "x1" ]; thì # Chúng tôi không phải là shell đăng nhập cho i trong /etc/profile.d/*.sh; LÀM

nếu [ -x $i ]; sau đó

. $i

fi

thực hiện

fi

fi

# chúng ta có phải là một lớp vỏ tương tác không? nếu [ "$PS1" ]; sau đó

if [ -x /usr/bin/tput ]; sau đó

if [ "x`tput kbs`" != "x" ]; sau đó

# Chúng tôi không thể làm điều này với việc xóa stty terminal "ngu ngốc" `tput kbs`

elif [ -x /usr/bin/wc ]; sau đó

if [ "`tput kbs|wc -c `" -gt 0 ]; sau đó

# Chúng tôi không thể làm điều này với việc xóa stty terminal "ngu ngốc" `tput kbs`

fi fi

fi

trường hợp $ TERM trong

xterm *)

nếu [ -e /etc/sysconfig/bash-prompt-xterm ]; sau đó PROMPT_COMMAND=/etc/sysconfig/bash-Prompt-xterm

khác

PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:\

${PWD/$HOME/~}\007"'

fi

;;

*)

[ -e /etc/sysconfig/bash-Prompt-default] && PROMPT_COMMAND=\

/etc/sysconfig/bash-prompt-default

;;

nó C

[ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \W]\\$ "


if [ "x$SHLVL" != "x1" ]; thì # Chúng tôi không phải là shell đăng nhập cho i trong /etc/profile.d/*.sh; LÀM

nếu [ -x $i ]; sau đó

. $i

fi

thực hiện

fi

fi


hình ảnh


7.2.3.6. ví dụ .bash_logout


Khi đăng xuất, các lệnh trong ~ / .bash_logout được thực thi, chẳng hạn, có thể xóa thiết bị đầu cuối để bạn có một cửa sổ sạch khi đăng xuất khỏi phiên từ xa hoặc khi rời khỏi bảng điều khiển hệ thống:


debby: ~> mèo .bash_logout

# ~/.bash_logout


trong sáng

debby: ~> mèo .bash_logout

# ~/.bash_logout


trong sáng

Chúng ta hãy xem xét kỹ hơn cách các tập lệnh này hoạt động trong phần tiếp theo. Giữ Thông tin bash đóng trong tầm tay.


hình ảnh


Điện toán đám mây hệ điều hành hàng đầu tại OnWorks: