IT_linux_shell_系统脚本--"/etc/profile"
来源:互联网 发布:燕十八php高性能 编辑:程序博客网 时间:2024/05/15 14:07
“/etc/profile”文件内容
# /etc/profile# System wide environment and startup programs, for login setup# Functions and aliases go in /etc/bashrc# It's NOT a good idea to change this file unless you know what you# are doing. It's much better to create a custom.sh shell script in# /etc/profile.d/ to make custom changes to your environment, as this# will prevent the need for merging in future updates.pathmunge () { case ":${PATH}:" in *:"$1":*) ;; *) if [ "$2" = "after" ] ; then PATH=$PATH:$1 else PATH=$1:$PATH fi esac} if [ -x /usr/bin/id ]; then if [ -z "$EUID" ]; then # ksh workaround EUID=`id -u` UID=`id -ru` fi USER="`id -un`" LOGNAME=$USER MAIL="/var/spool/mail/$USER" fi# Path manipulationif [ "$EUID" = "0" ]; then pathmunge /sbin pathmunge /usr/sbin pathmunge /usr/local/sbinelse pathmunge /usr/local/sbin after pathmunge /usr/sbin after pathmunge /sbin afterfiHOSTNAME=`/bin/hostname 2>/dev/null`HISTSIZE=1000if [ "$HISTCONTROL" = "ignorespace" ] ; then export HISTCONTROL=ignorebothelse export HISTCONTROL=ignoredupsfiexport PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL# By default, we want umask to get set. This sets it for login shell# Current threshold for system reserved uid/gids is 200# You could check uidgid reservation validity in# /usr/share/doc/setup-*/uidgid fileif [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then umask 002else umask 022fifor i in /etc/profile.d/*.sh ; do if [ -r "$i" ]; then if [ "${-#*i}" != "$-" ]; then . "$i" else . "$i" >/dev/null 2>&1 fi fidoneunset iunset -f pathmunge
/etc/profile 一般规则
1 所有用户都使用的东西,比如环境变量或者工具都在这里定义
2 pathmunge是linux系统redhat系列版本系统变量/etc/profile中的函数,如果想要把某个二进制程序可以在所有的shell不用全路径运行,就需要将其所在的目录放在profile中,用过的命令正是pathmunge
3 linux系统中每个进程都有2个ID,分别为用户ID(uid)和有效用户ID(euid),UID一般表示进程的创建者(属于哪个用户创建),而EUID表示进程对于文件和资源的访问权限(具备等同于哪个用户的权限)。C语言中,可以通过函数getuid()和geteuid()来获得进程的两个ID值。
当一个用户登陆系统时,系统会将UID和EUID都赋值为/etc/passwd文件中的UID,一般情况下2个ID是相同的,但是某些情况下会出现2个ID不同的情况。
gid和egid同理。
4 HISTSIZE=1000 可以设置得大一点
那么命令记录在哪里呢?在家目录内的 .bash_history 里! 不过,需要留意的是,~/.bash_history 记录的是前一次登陆以前所运行过的命令,而至于这一次登陆所运行的命令都被缓存在内存中,当你成功的注销系统后,该命令记忆才会记录到 .bash_history 当中!
5 可能的环境变量
PATH:决定了shell将到哪些目录中寻找命令或程序
HOME:当前用户主目录
MAIL:是指当前用户的邮件存放目录。
SHELL:是指当前用户用的是哪种Shell。
HISTSIZE:是指保存历史命令记录的条数。
LOGNAME:是指当前用户的登录名。
HOSTNAME:是指主机的名称,许多应用程序如果要用到主机名的话,通常是从这个环境变量中来取得的。
LANG/LANGUGE:是和语言相关的环境变量,使用多种语言的用户可以修改此环境变量。
PS1:是基本提示符,对于root用户是#,对于普通用户是$。
PS2:是附属提示符,默认是“>”。可以通过修改此环境变量来修改当前的命令符,比如下列命令会将提示符修改成字符串“Hello,lsh :) ”。
- IT_linux_shell_系统脚本--"/etc/profile"
- 简要分析/etc/profile脚本
- 修改/etc/profile导致系统无法登录
- 修改/etc/profile后系统无法启动
- 修改mac系统下/etc/profile文件
- 【Unix/Linux】【系统】/etc/profile和.profile文件
- :/etc/profile
- /etc/profile
- /etc/profile
- /etc/profile
- LINUX中/ETC/PROFILE脚本的简要分析
- CentOS 中/etc/profile.d/path.sh 脚本的使用
- 关于bash启动脚本/etc/profile /etc/bashrc ~/.bash_profile ~/.bashrc的区别
- ~/.bashrc 和 ~/.bash_profile 和 /etc/bashrc 和 /etc/profile 脚本的区别和启动加载顺序
- ubuntu13.10 修改/etc/profile后,系统登录不了
- CentOS 修改配置文件/etc/profile后,系统坏了
- linux如何进入系统文件/etc/profile修改内容
- /etc/profile和/etc/profile.d/
- sql 将结果集系列化为json
- java项目获取文件路径总结
- android 基本I/O操作
- JAVA学习中,一个关于Object对象转换时对应方法的问题
- The operation couldn’t be completed
- IT_linux_shell_系统脚本--"/etc/profile"
- Poj 3262 Protecting the Flowers【贪心】
- 11、Java String类型与Date日期类型互相转换
- wsimport wsdl提示[ERROR] "不支持使用 SOAP 编码
- HTML5(loading...)
- Linux crontab 命令格式与详细例子
- 在ios7及以上系统中在UINavigationBar中添加UITextField或者UISearchbar时不显示输入光杆问题及解决
- GROUP BY,WHERE,HAVING之间的区别和用法
- mysqli扩展php的mysqli扩展