<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 và 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 và
/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.
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.
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.
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:
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.
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.
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
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.
<Trước | Nội dung | Tiếp theo>