เวิร์กสเตชันออนไลน์ของ OnWorks Linux และ Windows

โลโก้

ฟรีโฮสติ้งออนไลน์สำหรับเวิร์กสเตชัน

<ก่อนหน้านี้ | Contents | ถัดไป>

เมื่อล็อกอินเชลล์ออก ทุบตี อ่านและรันคำสั่งจากไฟล์ ~/.bash_logoutถ้ามันมีอยู่จริง ขั้นตอนนี้อธิบายโดยละเอียดใน เข้าสู่ระบบ และ ทุบตี หน้าคน

7.2.3. ชุดไฟล์ติดตั้งทั่วไป


7.2.3.1. / etc / ตัวอย่างโปรไฟล์


มาดูไฟล์ปรับแต่งเหล่านี้กัน อันดับแรก / etc / profile ถูกอ่านซึ่งมีตัวแปรสำคัญเช่น

PATH, USER และ HOSTNAME ถูกตั้งค่า:


เด็บบี้:~> แมว /etc/profile

# /etc/profile


# สภาพแวดล้อมทั้งระบบและโปรแกรมเริ่มต้นสำหรับการตั้งค่าการเข้าสู่ระบบ

# ฟังก์ชั่นและนามแฝงเข้าไป /etc/bashrc


# การจัดการเส้นทาง

ถ้า [ `id -u` = 0] && ! echo $PATH | /bin/grep -q "/sbin" ; แล้ว PATH=/sbin:$PATH

fi


ถ้า [ `id -u` = 0] && ! echo $PATH | /bin/grep -q "/usr/sbin" ; แล้ว PATH=/usr/sbin:$PATH

fi


ถ้า [ `id -u` = 0] && ! echo $PATH | /bin/grep -q "/usr/local/sbin" จากนั้น

PATH=/usr/local/sbin:$PATH

fi


ถ้า ! echo $PATH | /bin/grep -q "/usr/X11R6/bin" ; จากนั้น PATH="$PATH:/usr/X11R6/bin"

fi

เด็บบี้:~> แมว /etc/profile

# /etc/profile


# สภาพแวดล้อมทั้งระบบและโปรแกรมเริ่มต้นสำหรับการตั้งค่าการเข้าสู่ระบบ

# ฟังก์ชั่นและนามแฝงเข้าไป /etc/bashrc


# การจัดการเส้นทาง

ถ้า [ `id -u` = 0] && ! echo $PATH | /bin/grep -q "/sbin" ; แล้ว PATH=/sbin:$PATH

fi


ถ้า [ `id -u` = 0] && ! echo $PATH | /bin/grep -q "/usr/sbin" ; แล้ว PATH=/usr/sbin:$PATH

fi


ถ้า [ `id -u` = 0] && ! echo $PATH | /bin/grep -q "/usr/local/sbin" จากนั้น

PATH=/usr/local/sbin:$PATH

fi


ถ้า ! echo $PATH | /bin/grep -q "/usr/X11R6/bin" ; จากนั้น PATH="$PATH:/usr/X11R6/bin"

fi

เส้นเหล่านี้ตรวจสอบเส้นทางที่จะตั้งค่า: if ราก เปิดเชลล์ (ID ผู้ใช้ 0) ตรวจสอบว่า / sbin, / usr / sbin และ

/usr/local/sbin อยู่ในเส้นทาง ถ้าไม่พวกเขาจะถูกเพิ่ม มีการตรวจสอบสำหรับทุกคนว่า

/usr/X11R6/bin อยู่ในเส้นทาง


# ไม่มีไฟล์หลักโดยค่าเริ่มต้น ulimit -S -c 0 > /dev/null 2>&1

# ไม่มีไฟล์หลักโดยค่าเริ่มต้น ulimit -S -c 0 > /dev/null 2>&1

ถังขยะทั้งหมดไปที่ / dev / null หากผู้ใช้ไม่เปลี่ยนการตั้งค่านี้


USER=`id -un` LOGNAME=$USER

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


HOSTNAME=`/bin/ชื่อโฮสต์` HISTSIZE=1000

USER=`id -un` LOGNAME=$USER

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


HOSTNAME=`/bin/ชื่อโฮสต์` HISTSIZE=1000

ที่นี่ตัวแปรทั่วไปถูกกำหนดให้เป็นค่าที่เหมาะสม


ถ้า [ -z "$INPUTRC" -a ! -f "$HOME/.inputrc" ]; จากนั้น INPUTRC=/etc/inputrc

fi

ถ้า [ -z "$INPUTRC" -a ! -f "$HOME/.inputrc" ]; จากนั้น INPUTRC=/etc/inputrc

fi

ถ้าตัวแปร อินพุทอาร์ซี ไม่ได้กำหนดไว้ และไม่มี .inputrc ในโฮมไดเร็กทอรีของผู้ใช้ จากนั้นไฟล์ควบคุมอินพุตเริ่มต้นจะถูกโหลด


ภาพ


ส่งออก เส้นทาง USER ชื่อล็อก MAIL ชื่อโฮสต์ ฮิสต์ไซส์ อินพุทอาร์ซี

ตัวแปรทั้งหมดจะถูกส่งออก เพื่อให้พร้อมใช้งานสำหรับโปรแกรมอื่นที่ขอข้อมูลเกี่ยวกับสภาพแวดล้อมของคุณ


ภาพ

7.2.3.2. ไดเร็กทอรี profile.d


สำหรับฉันใน /etc/profile.d/*.sh ; ทำถ้า [ -r $i ]; แล้ว

. $ฉัน

fi เสร็จแล้ว unset i

สำหรับฉันใน /etc/profile.d/*.sh ; ทำถ้า [ -r $i ]; แล้ว

. $ฉัน

fi เสร็จแล้ว unset i

เชลล์สคริปต์ที่อ่านได้ทั้งหมดจาก the /etc/profile.d ไดเร็กทอรีถูกอ่านและดำเนินการ สิ่งเหล่านี้ทำเช่นการเปิดใช้งาน สี-ls, นามแฝง vi ไปยัง เป็นกลุ่ม, การตั้งค่าสถานที่ ฯลฯ ตัวแปรชั่วคราว i ไม่ได้ตั้งค่าเพื่อป้องกันไม่ให้รบกวนการทำงานของเชลล์ในภายหลัง


ภาพ

7.2.3.3. .bash_profile ตัวอย่าง


แล้วก็ ทุบตี มองหา a .bash_profile ในโฮมไดเร็กทอรีของผู้ใช้:


ภาพ

เด็บบี้:~> แมว .bash_profile

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

# #

# .bash_profile ไฟล์ #

# #

# ดำเนินการจาก bash shell เมื่อคุณเข้าสู่ระบบ #

# #

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


แหล่งที่มา ~/.bashrc แหล่งที่มา ~/.bash_login

ไฟล์ตรงไปตรงมานี้แนะนำให้เชลล์ของคุณอ่านครั้งแรก ~ / .bashrc แล้วก็ ~/.bash_login. คุณจะพบกับ แหล่ง คำสั่งเชลล์ในตัวเป็นประจำเมื่อทำงานในสภาวะแวดล้อมเชลล์: ใช้เพื่อใช้การเปลี่ยนแปลงการกำหนดค่ากับสภาพแวดล้อมปัจจุบัน


ภาพ

7.2.3.4. .bash_login ตัวอย่าง


การขอ ~/.bash_login file กำหนดการป้องกันไฟล์เริ่มต้นโดยการตั้งค่า อูมาสก์ ค่า ดูหัวข้อ 3.4.2.2. NS ~ / .bashrc ไฟล์ใช้เพื่อกำหนดนามแฝงและฟังก์ชันเฉพาะผู้ใช้จำนวนมากและตัวแปรสภาพแวดล้อมส่วนบุคคล ตอนแรกอ่านว่า / etc / bashrcซึ่งอธิบายพรอมต์เริ่มต้น (PS1) และค่า umask เริ่มต้น หลังจากนั้น คุณสามารถเพิ่มการตั้งค่าของคุณเองได้ ถ้าไม่ ~ / .bashrc มีอยู่ / etc / bashrc ถูกอ่านโดยค่าเริ่มต้น


ภาพ

7.2.3.5. /etc/bashrc ตัวอย่าง


ของคุณ / etc / bashrc ไฟล์อาจมีลักษณะดังนี้:


เด็บบี้:~> แมว /etc/bashrc

# /etc/bashrc


# ฟังก์ชั่นทั้งระบบและนามแฝง

# สภาพแวดล้อมใน /etc/profile


# โดยค่าเริ่มต้น เราต้องการให้ตั้งค่านี้

เด็บบี้:~> แมว /etc/bashrc

# /etc/bashrc


# ฟังก์ชั่นทั้งระบบและนามแฝง

# สภาพแวดล้อมใน /etc/profile


# โดยค่าเริ่มต้น เราต้องการให้ตั้งค่านี้


# แม้สำหรับเชลล์ที่ไม่ใช่แบบโต้ตอบและไม่ล็อกอิน

ถ้า [ `id -gn` = `id -un` -a `id -u` -gt 99 ]; แล้วก็ umask 002

อื่น

อูมาสก์ 022

fi

# แม้สำหรับเชลล์ที่ไม่ใช่แบบโต้ตอบและไม่ล็อกอิน

ถ้า [ `id -gn` = `id -un` -a `id -u` -gt 99 ]; แล้วก็ umask 002

อื่น

อูมาสก์ 022

fi

เส้นเหล่านี้กำหนด อูมาสก์ ค่า. จากนั้นพรอมต์จะถูกตั้งค่าตามประเภทของเชลล์:


# เราเป็นเชลล์แบบโต้ตอบหรือไม่? ถ้า [ "$PS1" ]; แล้ว

ถ้า [ -x /usr/bin/tput ]; แล้ว

ถ้า [ "x`tput kbs`" != "x" ]; แล้ว

# เราไม่สามารถทำเช่นนี้กับเทอร์มินัล "ใบ้" ลบ `tput kbs`

เอลิฟ [ -x /usr/bin/wc ]; แล้ว

ถ้า [ "`tput kbs|wc -c `" -gt 0 ]; แล้ว

# เราไม่สามารถทำเช่นนี้กับเทอร์มินัล "ใบ้" ลบ `tput kbs`

ไฟ ไฟ

fi

กรณี $TERM ใน

เอ็กซ์เทอม*)

ถ้า [ -e /etc/sysconfig/bash-prompt-xterm ]; แล้ว PROMPT_COMMAND=/etc/sysconfig/bash-prompt-xterm

อื่น

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

;;

ว่า C

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


ถ้า [ "x$SHLVL" != "x1" ]; ถ้าอย่างนั้น # เราไม่ใช่เชลล์การเข้าสู่ระบบสำหรับฉันใน /etc/profile.d/*.sh; ทำ

ถ้า [ -x $i ]; แล้ว

. $ฉัน

fi

ทำ

fi

fi

# เราเป็นเชลล์แบบโต้ตอบหรือไม่? ถ้า [ "$PS1" ]; แล้ว

ถ้า [ -x /usr/bin/tput ]; แล้ว

ถ้า [ "x`tput kbs`" != "x" ]; แล้ว

# เราไม่สามารถทำเช่นนี้กับเทอร์มินัล "ใบ้" ลบ `tput kbs`

เอลิฟ [ -x /usr/bin/wc ]; แล้ว

ถ้า [ "`tput kbs|wc -c `" -gt 0 ]; แล้ว

# เราไม่สามารถทำเช่นนี้กับเทอร์มินัล "ใบ้" ลบ `tput kbs`

ไฟ ไฟ

fi

กรณี $TERM ใน

เอ็กซ์เทอม*)

ถ้า [ -e /etc/sysconfig/bash-prompt-xterm ]; แล้ว PROMPT_COMMAND=/etc/sysconfig/bash-prompt-xterm

อื่น

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

;;

ว่า C

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


ถ้า [ "x$SHLVL" != "x1" ]; ถ้าอย่างนั้น # เราไม่ใช่เชลล์การเข้าสู่ระบบสำหรับฉันใน /etc/profile.d/*.sh; ทำ

ถ้า [ -x $i ]; แล้ว

. $ฉัน

fi

ทำ

fi

fi


ภาพ


7.2.3.6. .bash_logout ตัวอย่าง


เมื่อออกจากระบบ คำสั่งใน ~/.bash_logout ถูกดำเนินการ ซึ่งสามารถยกตัวอย่างเช่น ล้างเทอร์มินัล เพื่อให้คุณมีหน้าต่างที่สะอาดเมื่อออกจากระบบเซสชันระยะไกล หรือเมื่อออกจากคอนโซลระบบ:


เด็บบี้:~> แมว .bash_logout

# ~/.bash_logout


ชัดเจน

เด็บบี้:~> แมว .bash_logout

# ~/.bash_logout


ชัดเจน

มาดูกันว่าสคริปต์เหล่านี้ทำงานอย่างไรในหัวข้อถัดไป เก็บไว้ ข้อมูล ทุบตี ใกล้มือ


ภาพ


ระบบปฏิบัติการคลาวด์คอมพิวติ้งยอดนิยมที่ OnWorks: