-   Linux - General (
-   -   /etc/profile (how to generate) (

JesseMor 01-26-2006 03:20 PM

/etc/profile (how to generate)
I inherited a working Linux, Slackware 2.2.16.
I have totally trashed the /etc/profile (by cat'ing from a file to a linked file--didn't know better, involving profile).

How can I generate what is needed, figure out what is needed to replace the /etc/profile?

I'm new to Linux and didn't set this machine up.


Matir 01-26-2006 05:02 PM

The easiest way is probably to get a copy of the same file from someone else running the same version of your distro.

scott_R 01-26-2006 05:04 PM

You should have a 'skel' (skeleton) directory on your system, typically /etc/skel, which contains skeleton (basic) examples of a number of common files, especially those you might need when creating a new user. Simply copy the file(s) you need to the appropriate directory(ies), and alter as necessary.

Naturally, these are usually simple examples, geared towards the average distribution [Slackware] user, so if the previous admin modified them a great deal, you'll have to do the same, but they will at least give you a starting point (and an example of how to make additions, if needed). However, a good admin will typically alter the skel files to save themselves time and effort, should they modify such files to a large degree. (Which is something you might want to keep in mind, should that day arrive for yourself.)

Hope this helps. :)

Matir 01-26-2006 05:28 PM

/etc/skel is actually a directory inteneded to be used as a 'skeleton' for a new user home directory. I think he has a problem with the system-wide /etc/profile.

scott_R 01-26-2006 06:26 PM

Ah, yeah, dumb mistake, sorry. Long day...

Here is the correct file:

# /etc/profile: This file contains system-wide defaults used by
# all Bourne (and related) shells.

# Set the values for some environment variables:
export MINICOM="-c on"
export MANPATH=/usr/local/man:/usr/man:/usr/X11R6/man
export HOSTNAME="`cat /etc/HOSTNAME`"
export LESSOPEN="| %s"
export LESS="-M"

# If the user doesn't have a .inputrc, use the one in /etc.
if [ ! -r "$HOME/.inputrc" ]; then
export INPUTRC=/etc/inputrc

# Set the default system $PATH:

# For root users, ensure that /usr/local/sbin, /usr/sbin, and /sbin are in
# the $PATH. Some means of connection don't add these by default (sshd comes
# to mind).
if [ "`id -u`" = "0" ]; then
echo $PATH | grep /usr/local/sbin 1> /dev/null 2> /dev/null
if [ ! $? = 0 ]; then

# I had problems using 'eval tset' instead of 'TERM=', but you might want to
# try it anyway. I think with the right /etc/termcap it would work great.
# eval `tset -sQ "$TERM"`
if [ "$TERM" = "" -o "$TERM" = "unknown" ]; then

# Set ksh93 visual editing mode:
if [ "$SHELL" = "/bin/ksh" ]; then
# VISUAL=gmacs

# Set a default shell prompt:
#PS1='`hostname`:`pwd`# '
if [ "$SHELL" = "/bin/pdksh" ]; then
PS1='! $ '
elif [ "$SHELL" = "/bin/ksh" ]; then
PS1='! ${PWD/#$HOME/~}$ '
elif [ "$SHELL" = "/bin/zsh" ]; then
PS1='%n@%m:%~%# '
elif [ "$SHELL" = "/bin/ash" ]; then
PS1='$ '
PS1='\u@\h:\w\$ '
PS2='> '

# Default umask. A umask of 022 prevents new files from being created group
# and world writable.
umask 022

# Set up the LS_COLORS and LS_OPTIONS environment variables for color ls:
if [ "$SHELL" = "/bin/zsh" ]; then
eval `dircolors -z`
elif [ "$SHELL" = "/bin/ash" ]; then
eval `dircolors -s`
eval `dircolors -b`

# Notify user of incoming mail. This can be overridden in the user's
# local startup file (~/.bash.login or whatever, depending on the shell)
if [ -x /usr/bin/biff ]; then
biff y

# Append any additional sh scripts found in /etc/profile.d/:
for profile_script in /etc/profile.d/*.sh ; do
if [ -x $profile_script ]; then
. $profile_script
unset profile_script

# For non-root users, add the current directory to the search path:
if [ ! "`id -u`" = "0" ]; then


You can download it from, in the packages area (it's a file in the "a" group), though I would do it by hand, as it includes files from all the default /etc entries. Hope this helps better than my previous boneheaded answer. :)

scott_R 01-26-2006 06:28 PM

Oh, and that's for slackware-current (I'm assuming you're keeping the system up to date), but if you need an older version (most should be similar, but things sometimes change), then you can find it on, in the packages area, in the "a" folder of the version you need.

Just make sure you mean you're using Kernel 2.2.16, not Slackware version 2.2.16.

All times are GMT -5. The time now is 04:13 PM.