System startup files

When you log in, the shell defines your user environment after reading the initialization files that you have set up. The characteristics of your user environment are defined by the values given to your environment variables. You maintain this environment until you log out of the system.

The shell uses two types of profile files when you log in to the operating system. It evaluates the commands contained in the files and then executes the commands to set up your system environment. The files have similar functions, except that the /etc/profile file controls profile variables for all users on a system, whereas the .profile file allows you to customize your own environment.

The shell first runs the commands to set up your system environment in the /etc/environment file and then evaluates the commands contained in the /etc/profile file. After these files are run, the system then checks to see if you have a .profile file in your home directory. If the .profilefile exists, the system runs this file. The .profile file will specify if an environment file also exists. If an environment file exists (usually named .env), the system then runs this file and sets up your environment variables.

The /etc/environment, /etc/profile, and .profile files are run once at login time. The .env file, on the other hand, is run every time you open a new shell or a window.

  • /etc/environment file
    The first file that the operating system uses at login time is the /etc/environment file. The /etc/environment file contains variables specifying the basic environment for all processes.
  • /etc/profile file
    The second file that the operating system uses at login time is the /etc/profile file.
  • .profile file
    The .profile file is present in your home ($HOME) directory and lets you customize your individual working environment.
  • .env file
    A fourth file that the operating system uses at login time is the .env file, if your .profile contains the following line: export ENV=$HOME/.env

/etc/environment file

The first file that the operating system uses at login time is the /etc/environment file. The /etc/environment file contains variables specifying the basic environment for all processes.

When a new process begins, the exec subroutine makes an array of strings available that have the form Name=Value. This array of strings is called the environment. Each name defined by one of the strings is called an environment variable or shell variable. The exec subroutine allows the entire environment to be set at one time.

When you log in, the system sets environment variables from the /etc/environment file before reading your login profile, named .profile. The following variables make up the basic environment:

HOME The full path name of the user's login or HOME directory. The login program sets this to the name specified in the /etc/passwd file.
LANG The locale name currently in effect. The LANG variable is initially set in the /etc/profile file at installation time.
NLSPATH The full path name for message catalogs.
LOCPATH The full path name of the location of National Language Support tables.
PATH The sequence of directories that commands, such as sh, time, nice and nohup, search when looking for a command whose path name is incomplete.
TZ The time zone information. The TZ environment variable is initially set by the /etc/profile file, the system login profile.

For detailed information about the /etc/environment file, see the AIX 5L™ Version 5.3 Files Reference.

/etc/profile file

The second file that the operating system uses at login time is the /etc/profile file.

The /etc/profile file controls system-wide default variables, such as:

  • Export variables
  • File creation mask (umask)
  • Terminal types
  • Mail messages to indicate when new mail has arrived

The system administrator configures the /etc/profile file for all users on the system. Only the system administrator can change this file.

The following example is a typical /etc/profile file:

#Set file creation mask
unmask 022
#Tell me when new mail arrives
MAIL=/usr/mail/$LOGNAME
#Add my /bin directory to the shell search sequence
PATH=/usr/bin:/usr/sbin:/etc::
#Set terminal type
TERM=lft
#Make some environment variables global
export MAIL PATH TERM

For detailed information about the /etc/profile file, see the AIX 5L™ Version 5.3 Files Reference .

.profile file

The .profile file is present in your home ($HOME) directory and lets you customize your individual working environment.

Because the .profile file is hidden, use the ls -a command to list it.

After the login program adds the LOGNAME (login name) and HOME (login directory) variables to the environment, the commands in the$HOME/.profile file are executed if the file is present. The .profile file contains your individual profile that overrides the variables set in the/etc/profile file. The .profile file is often used to set exported environment variables and terminal modes. You can customize your environment by modifying the .profile file. Use the .profile file to control the following defaults:

  • Shells to open
  • Prompt appearance
  • Keyboard sound
The following example is a typical .profile file:
PATH=/usr/bin:/etc:/home/bin1:/usr/lpp/tps4.0/user::
epath=/home/gsc/e3:
export PATH epath
csh

This example has defined two path variables (PATH and epath), exported them, and opened a C shell (csh).

You can also use the .profile file (or if it is not present, the /etc/profile file) to determine login shell variables. You can also customize other shell environments. For example, use the .cshrc file and .kshrc file to customize a C shell and a Korn shell, respectively, when each type of shell is started.

.env file

A fourth file that the operating system uses at login time is the .env file, if your .profile contains the following line: export ENV=$HOME/.env

The .env file lets you customize your individual working environment variables. Because the .env file is hidden, use the ls -a command to list it. For more information about the ls command, see ls. The .env file contains the individual user environment variables that override the variables set in the/etc/environment file. You can customize your environment variables as desired by modifying your .env file.

The following example is a typical .env file:

export  myid=`id | sed -n -e 's/).*$//' -e 's/^.*(//p'`
#set prompt: login & system name & path
if [ $myid = root ]
then typeset -x PSCH='#:\${PWD}> '
PS1="#:\${PWD}> "
else typeset -x PSCH='>'
PS1="$LOGNAME@$UNAME:\${PWD}> "
PS2=">"
PS3="#?"
fi
export PS1 PS2 PS3
#setup my command aliases
alias ls="/bin/ls -CF" \
d="/bin/ls -Fal | pg" \
rm="/bin/rm -i" \
up="cd .."
Note: When modifying the .env file, ensure that newly created environment variables do not conflict with standard variables such as MAILPS1PS2, and IFS.

From:

System startup files的更多相关文章

  1. Update startup files更新安装文件

    The service request did not complete because access to the service configuration manager was not gra ...

  2. Linux后门入侵检测工具,附bash漏洞解决方法[转载]

    转自:http://blog.jobbole.com/77663/ 官网 ClamAV杀毒软件介绍 ClamAV是一个在命令行下查毒软件,因为它不将杀毒作为主要功能,默认只能查出您计算机内的病毒,但是 ...

  3. C语言中没有main函数生成可执行程序的几种方法

    1.define预处理指令 这种方式很简单,只是简单地将main字符串用宏来代替,或者使用##拼接字符串.示例程序如下: #include <stdio.h> #define begin ...

  4. Linux后门入侵检测工具

    一.rootkit简介 rootkit是Linux平台下最常见的一种木马后门工具,它主要通过替换系统文件来达到入侵和和隐蔽的目的,这种木马比普通木马后门更加危险和隐蔽,普通的检测工具和检查手段很难发现 ...

  5. 没有main函数的helloworld

    差点儿全部程序猿的第一堂课都是学习helloworld程序,以下我们先来重温一下经典的C语言helloworl /* hello.c */ #include <stdio.h> int m ...

  6. module使用和设置

    Modules environmentDescription This is a system that allows you to easily change between different v ...

  7. Linux后门入侵检测工具,附bash漏洞解决方法

    一.rootkit简介 rootkit是Linux平台下最常见的一种木马后门工具,它主要通过替换系统文件来达到入侵和和隐蔽的目的,这种木马比普通木马后门更加危险和隐蔽,普通的检测工具和检查手段很难发现 ...

  8. gcc, ld

    GCC gcc除了具备基本的c文件编译功能外,还把其它工具的功能也集成了进来,比如as的汇编功能,ld的链接功能. 因此,gcc也可以通过-Wa, option,将option传给汇编器as:也可以通 ...

  9. Common Linux log files name and usage--reference

    reference:http://www.coolcoder.in/2013/12/common-linux-log-files-name-and-usage.html if you spend lo ...

随机推荐

  1. [bzoj1488][HNOI2009]图的同构——Polya定理

    题目大意 求两两互不同构的含n个点的简单图有多少种. 简单图是关联一对顶点的无向边不多于一条的不含自环的图. a图与b图被认为是同构的是指a图的顶点经过一定的重新标号以后,a图的顶点集和边集能完全与b ...

  2. ●洛谷P3348 [ZJOI2016]大森林

    题链: https://www.luogu.org/problemnew/show/P3348 题解: LCT,神题 首先有这么一个结论: 每次的1操作(改变生长点操作),一定只会会对连续的一段区间产 ...

  3. hdu 5052 树链剖分

    Yaoge’s maximum profit Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/ ...

  4. poj 2886 线段树+反素数

    Who Gets the Most Candies? Time Limit: 5000MS   Memory Limit: 131072K Total Submissions: 12744   Acc ...

  5. [2017.4.7校内训练赛by hzwer]

    来自FallDream的博客,未经允许,请勿转载,谢谢. 报警啦.......hzwer又出丧题虐人啦..... 4道ctsc...有一道前几天做过了,一道傻逼哈希还wa了十几次,勉强过了3题..我好 ...

  6. 一款基于Vue的扩展性组件库 VV-UI

    github: https://github.com/VV-UI/VV-UI 演示地址: https://vv-ui.github.io/VV-UI/#/meta-info 1. LoadingBar ...

  7. js 当前时间刷新

    <p>每隔1秒钟,打印当前时间</p> <div id="time"></div> <script> function ...

  8. Exchange Server 2010升级到Exchange Server 2016

    Hello各位小伙伴们,失踪人口回归啦~~~这次和大家分享Exchange Server 2010升级到Exchange Server 2016的方法.正式开始前先啰嗦几句,为什么我要写这篇文章呢?一 ...

  9. 两个对象用equals方法比较为true,它们的Hashcode值相同吗?

    两个对象用equals方法比较为true,它们的Hashcode值相同吗? 答:不一定相同.正常情况下,因为equals()方法比较的就是对象在内存中的值,如果值相同,那么Hashcode值也应该相同 ...

  10. vue--"卡片层叠" 组件 开发小记

    背景:影城移动点餐web App增加会员卡支付功能 需求:确认订单页点击会员卡项弹出会员卡列表,多张会员卡依次叠加覆盖上一张80%的高度,点击任意卡片则改卡片置为当前卡片,只有当前卡片显示全部卡片信息 ...