OnWorks Linux 和 Windows 在线工作站

商标

工作站免费在线托管

<上一页 | 内容 | 下一页>

当登录 shell 退出时, 打坏 从文件中读取并执行命令 〜/ .bash_logout,如果存在。 此过程在 登录 打坏 手册页。

7.2.3. 一组典型的设置文件


7.2.3.1. /etc/profile 示例


让我们看看其中的一些配置文件。 第一的 / etc / profile 被读取,其中重要的变量如

PATH、USER 和 HOSTNAME 设置:


黛比:~> 猫 /etc/profile

# /etc/配置文件


# 系统范围的环境和启动程序,用于登录设置

# 函数和别名在 /etc/bashrc 中


# 路径操作

如果 [ `id -u` = 0 ] && ! 回声 $PATH | /bin/grep -q "/sbin" ; 然后 PATH=/sbin:$PATH

fi


如果 [ `id -u` = 0 ] && ! 回声 $PATH | /bin/grep -q "/usr/sbin" ; 然后 PATH=/usr/sbin:$PATH

fi


如果 [ `id -u` = 0 ] && ! 回声 $PATH | /bin/grep -q "/usr/local/sbin" 然后

路径=/usr/local/sbin:$PATH

fi


如果 ! 回声 $PATH | /bin/grep -q "/usr/X11R6/bin" ; 然后 PATH="$PATH:/usr/X11R6/bin"

fi

黛比:~> 猫 /etc/profile

# /etc/配置文件


# 系统范围的环境和启动程序,用于登录设置

# 函数和别名在 /etc/bashrc 中


# 路径操作

如果 [ `id -u` = 0 ] && ! 回声 $PATH | /bin/grep -q "/sbin" ; 然后 PATH=/sbin:$PATH

fi


如果 [ `id -u` = 0 ] && ! 回声 $PATH | /bin/grep -q "/usr/sbin" ; 然后 PATH=/usr/sbin:$PATH

fi


如果 [ `id -u` = 0 ] && ! 回声 $PATH | /bin/grep -q "/usr/local/sbin" 然后

路径=/usr/local/sbin:$PATH

fi


如果 ! 回声 $PATH | /bin/grep -q "/usr/X11R6/bin" ; 然后 PATH="$PATH:/usr/X11R6/bin"

fi

这些行检查要设置的路径:如果 打开一个外壳(用户 ID 0),检查 /宾, / 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` 日志名称=$USER

邮件=“/var/spool/mail/$USER”


主机名=`/bin/主机名` HISTSIZE=1000

USER=`id -un` 日志名称=$USER

邮件=“/var/spool/mail/$USER”


主机名=`/bin/主机名` HISTSIZE=1000

在这里,一般变量被分配了适当的值。


如果 [ -z "$INPUTRC" -a ! -f "$HOME/.inputrc" ]; 然后 INPUTRC=/etc/inputrc

fi

如果 [ -z "$INPUTRC" -a ! -f "$HOME/.inputrc" ]; 然后 INPUTRC=/etc/inputrc

fi

如果变量 输入法 没有设置,也没有 .inputrc 在用户的主目录中,然后加载默认的输入控制文件。


图片


出口 PATH USER 日志名称 邮箱地址 主机名 历史大小 输入法

所有变量都被导出,以便其他程序可以使用它们来请求有关您的环境的信息。


图片

7.2.3.2. profile.d 目录


对于 /etc/profile.d/*.sh 中的 i ; 如果 [ -r $i ]; 然后

. $我

fi 完成未设置 i

对于 /etc/profile.d/*.sh 中的 i ; 如果 [ -r $i ]; 然后

. $我

fi 完成未设置 i

所有可读的 shell 脚本来自 /etc/profile.d 目录被读取并执行。 这些做一些事情,比如启用 颜色-ls, 混叠 vi VIM,设置语言环境等。临时变量 i 未设置以防止它以后干扰 shell 行为。


图片

7.2.3.3. .bash_profile 示例


然后 打坏 寻找一个 .bash_配置文件 在用户的主目录中:


图片

黛比:~> 猫 .bash_profile

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

###

# .bash_profile 文件 #

###

# 登录时从 bash shell 执行。#

###

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


源 ~/.bashrc 源 ~/.bash_login

这个非常直接的文件指示您的外壳首先读取 在〜/ .bashrc 然后 〜/.bash_login. 你会遇到 资源 在 shell 环境中工作时定期内置 shell 命令:它用于将配置更改应用于当前环境。


图片

7.2.3.4. .bash_login 示例


这个 〜/.bash_login file 通过设置默认文件保护 遮罩 值,参见第 3.4.2.2 节。 这 在〜/ .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


# 默认情况下,我们希望它被设置。


# 即使对于非交互式、非登录 shell。

if [ `id -gn` = `id -un` -a `id -u` -gt 99 ]; 然后umask 002

其他

第 022 章

fi

# 即使对于非交互式、非登录 shell。

if [ `id -gn` = `id -un` -a `id -u` -gt 99 ]; 然后umask 002

其他

第 022 章

fi

这些行设置 遮罩 价值。 然后,根据shell的类型,设置提示:


# 我们是一个交互式shell吗? 如果 [ "$PS1" ]; 然后

如果 [ -x /usr/bin/tput ]; 然后

if [ "x`tput kbs`" != "x" ]; 然后

# 我们不能用“哑”终端 sttyerase `tput kbs` 来做到这一点

elif [ -x /usr/bin/wc ]; 然后

if [ "`tput kbs|wc -c `" -gt 0 ]; 然后

# 我们不能用“哑”终端 sttyerase `tput kbs` 来做到这一点

菲菲

fi

案例 $TERM 在

xterm*)

如果 [ -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

;;

ESAC

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


if [ "x$SHLVL" != "x1" ]; then # 我们不是 /etc/profile.d/*.sh 中 i 的登录 shell; 做

如果 [ -x $i ]; 然后

. $我

fi

完成

fi

fi

# 我们是一个交互式shell吗? 如果 [ "$PS1" ]; 然后

如果 [ -x /usr/bin/tput ]; 然后

if [ "x`tput kbs`" != "x" ]; 然后

# 我们不能用“哑”终端 sttyerase `tput kbs` 来做到这一点

elif [ -x /usr/bin/wc ]; 然后

if [ "`tput kbs|wc -c `" -gt 0 ]; 然后

# 我们不能用“哑”终端 sttyerase `tput kbs` 来做到这一点

菲菲

fi

案例 $TERM 在

xterm*)

如果 [ -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

;;

ESAC

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


if [ "x$SHLVL" != "x1" ]; then # 我们不是 /etc/profile.d/*.sh 中 i 的登录 shell; 做

如果 [ -x $i ]; 然后

. $我

fi

完成

fi

fi


图片


7.2.3.6. .bash_logout 示例


注销后,命令在 〜/ .bash_logout 执行,例如可以清除终端,以便在注销远程会话或离开系统控制台时有一个干净的窗口:


黛比:~> 猫 .bash_logout

# ~/.bash_logout


清除

黛比:~> 猫 .bash_logout

# ~/.bash_logout


清除

让我们在下一节中仔细看看这些脚本是如何工作的。 保持 info 打坏 近在咫尺。


图片


OnWorks 的顶级操作系统云计算: