LinuxQuestions.org
Help answer threads with 0 replies.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - General
User Name
Password
Linux - General This Linux forum is for general Linux questions and discussion.
If it is Linux Related and doesn't seem to fit in any other forum then this is the place.

Notices


Reply
  Search this Thread
Old 11-22-2002, 05:25 AM   #1
black
Member
 
Registered: Jul 2002
Location: nowhere
Distribution: GNU
Posts: 118

Rep: Reputation: 15
.profile is missing


hi all~

my book told me I could change enviorenment variables in a file named .profile inside home directory but I couldnt found it. what's the matter ???
 
Old 11-22-2002, 06:10 AM   #2
acid_kewpie
Moderator
 
Registered: Jun 2001
Location: UK
Distribution: Gentoo, RHEL, Fedora, Centos
Posts: 43,417

Rep: Reputation: 1985Reputation: 1985Reputation: 1985Reputation: 1985Reputation: 1985Reputation: 1985Reputation: 1985Reputation: 1985Reputation: 1985Reputation: 1985Reputation: 1985
it doesn't need to exist. i'd suggest using .bashrc instead of creating it though, as i'm nto sure where it would get sourced from ...
 
Old 11-22-2002, 06:13 AM   #3
Bert
Senior Member
 
Registered: Jul 2001
Location: 406292E 290755N
Distribution: GNU/Linux Slackware 8.1, Redhat 8.0, LFS 4.0
Posts: 1,004

Rep: Reputation: 46
I'm guessing you're using GNU Hurd right?
 
Old 11-22-2002, 06:16 AM   #4
black
Member
 
Registered: Jul 2002
Location: nowhere
Distribution: GNU
Posts: 118

Original Poster
Rep: Reputation: 15
in fact what I want is to modify somewhat enviorenment variables so that they could work as expeted when starting my machine. my book just said linux could initialized all variables depend on the data of .profile but I couldnt find it. I searched .bashrc and .bash_profile but didnt helps. it seems both of them ommit those nicely variables. so I wonder which file is the original data source when startup ?

thanx in advance~
 
Old 11-22-2002, 06:18 AM   #5
Bert
Senior Member
 
Registered: Jul 2001
Location: 406292E 290755N
Distribution: GNU/Linux Slackware 8.1, Redhat 8.0, LFS 4.0
Posts: 1,004

Rep: Reputation: 46
What system are you running?
 
Old 11-22-2002, 06:20 AM   #6
black
Member
 
Registered: Jul 2002
Location: nowhere
Distribution: GNU
Posts: 118

Original Poster
Rep: Reputation: 15
Quote:
Originally posted by Bert
What system are you running?
redhat 7.1
 
Old 11-22-2002, 06:27 AM   #7
Thymox
Senior Member
 
Registered: Apr 2001
Location: Plymouth, England.
Distribution: Mostly Debian based systems
Posts: 4,368

Rep: Reputation: 64
More importantly, how old is the book? I've read about the .profile thing before, however, it was related to old Unices and early Linux systems.
 
Old 11-22-2002, 06:43 AM   #8
Bert
Senior Member
 
Registered: Jul 2001
Location: 406292E 290755N
Distribution: GNU/Linux Slackware 8.1, Redhat 8.0, LFS 4.0
Posts: 1,004

Rep: Reputation: 46
Black, before you do anything, I'd really appreciate it if you go to the user cp options at the top of the page and put 'redhat 7.1' instead of 'GNU' next to distribution. GNU make their own OS which is not Linux. GNU software runs on systems using the Linux kernel however. You can write 'Redhat GNU/Linux 7.1' if you want to.

What variables do you want to set? Most people set them in the .bash_profile
 
Old 11-22-2002, 06:47 AM   #9
Thymox
Senior Member
 
Registered: Apr 2001
Location: Plymouth, England.
Distribution: Mostly Debian based systems
Posts: 4,368

Rep: Reputation: 64
IIRC, the .profile thing used to be used when bash was not the default shell. I think, although I am not sure, that if you put stuff in the .profile, all shells can use it, whereas if you put it in .bash_profile, only bash can use it.

£0.02
 
Old 11-22-2002, 08:30 AM   #10
trickykid
LQ Guru
 
Registered: Jan 2001
Posts: 24,149

Rep: Reputation: 269Reputation: 269Reputation: 269
Thought I would shed some light on the initialization files process:

When a user logs in the first systemwide file /etc/profile is sourced, next would be the .bash_profile in the users home directory. If there is no .bash_profile it then the next file would be .bashrc.
Now if none of those files above exist the next file in line is .bash_login and after that if it doesn't exist would be .profile.

Now it is possible to have a system wide defaults called /etc/bashrc as well like the /etc/profile.

The order again:

if-----> /etc/profile exists, source it,
if------->~/.bash_profile exists, source it
if-------->~/.bashrc exists, source it
else if -----> ~/.bash_login exists, source it
else if -----> ~/.profile exists, source it
 
Old 11-22-2002, 09:55 AM   #11
Thymox
Senior Member
 
Registered: Apr 2001
Location: Plymouth, England.
Distribution: Mostly Debian based systems
Posts: 4,368

Rep: Reputation: 64
So, are the bash files sourced even if bash is not your shell?
 
Old 11-22-2002, 11:12 AM   #12
trickykid
LQ Guru
 
Registered: Jan 2001
Posts: 24,149

Rep: Reputation: 269Reputation: 269Reputation: 269
Quote:
Originally posted by Thymox
So, are the bash files sourced even if bash is not your shell?
No sorry, that is if your using the bash shell.. they shouldn't be used unless your using bash.
 
Old 11-22-2002, 01:12 PM   #13
nxny
Member
 
Registered: May 2002
Location: AK - The last frontier.
Distribution: Red Hat 8.0, Slackware 8.1, Knoppix 3.7, Lunar 1.3, Sorcerer
Posts: 771

Rep: Reputation: 30
.profile is a ksh (Korn Shell which is a derivative of the original Bourne Shell aka sh) profile file. If your UNIX system has ksh installed in it, chances are that you'll have a .profile in your $HOME. The systemwide profile is /etc/profile . It is still used even in Linux systems where bash ( Bourne Again SHell - the improvised GNU ksh ) is the default shell. There are significant differences between interactive and non-interactive invocations of bash, that I thought I should bring up.



Here's the relevant section of the bash man page.

A login shell is one whose first character of argument zero is a -, or one started with the --login option.
An interactive shell is one started without non-option arguments and without the -c option whose standard input and output are both connected to terminals (as determined by isatty(3)), or one started with the -i option. PS1 is set and $- includes i if bash is interactive, allowing a shell script or a startup file to test this state.
The following paragraphs describe how bash executes its startup files. If any of the files exist but cannot be read, bash reports an error. Tildes are expanded in file names as described below under Tilde Expansion in the EXPANSION section.
When bash is invoked as an interactive login shell, or as a non-interactive shell with the --login option, it first reads and executes commands from the file /etc/profile, if that file exists. After reading that file, it looks for ~/.bash_profile, ~/.bash_login, and ~/.profile, in that order, and reads and executes commands from the first one that exists and is readable. The --noprofile option may be used when the shell is started to inhibit this behavior.
When a login shell exits, bash reads and executes commands from the file ~/.bash_logout, if it exists.
When an interactive shell that is not a login shell is started, bash reads and executes commands from ~/.bashrc, if that file exists. This may be inhibited by using the --norc option. The --rcfile file option will force bash to read and execute commands from file instead of ~/.bashrc.
When bash is started non-interactively, to run a shell script, for example, it looks for the variable BASH_ENV in the environment, expands its value if it appears there, and uses the expanded value as the name of a file to read and execute. Bash behaves as if the following command were executed:
if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi
but the value of the PATH variable is not used to search for the file name.
If bash is invoked with the name sh, it tries to mimic the startup behavior of historical versions of sh as closely as possible, while conforming to the POSIX standard as well. When invoked as an interactive login shell, or a non-interactive shell with the --login option, it first attempts to read and execute commands from /etc/profile and ~/.profile, in that order. The --noprofile option may be used to inhibit this behavior. When invoked as an interactive shell with the name sh, bash looks for the variable ENV, expands its value if it is defined, and uses the expanded value as the name of a file to read and execute. Since a shell invoked as sh does not attempt to read and execute commands from any other startup files, the --rcfile option has no effect. A non-interactive shell invoked with the name sh does not attempt to read any other startup files. When invoked as sh, bash enters posix mode after the startup files are read.
When bash is started in posix mode, as with the --posix command line option, it follows the POSIX standard for startup files. In this mode, interactive shells expand the ENV variable and commands are read and executed from the file whose name is the expanded value. No other startup files are read.
Bash attempts to determine when it is being run by the remote shell daemon, usually rshd. If bash determines it is being run by rshd, it reads and executes commands from ~/.bashrc, if that file exists and is readable. It will not do this if invoked as sh. The --norc option may be used to inhibit this behavior, and the --rcfile option may be used to force another file to be read, but rshd does not generally invoke the shell with those options or allow them to be specified.
 
Old 11-27-2002, 04:30 AM   #14
black
Member
 
Registered: Jul 2002
Location: nowhere
Distribution: GNU
Posts: 118

Original Poster
Rep: Reputation: 15
Quote:
Originally posted by Thymox
More importantly, how old is the book? I've read about the .profile thing before, however, it was related to old Unices and early Linux systems.
in fact that book is for UNIX and I couldnt find a book like it for linux so...
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
non roaming profile on a roaming profile system fieldyweb Linux - Newbie 1 10-03-2005 12:27 PM
/etc/profile geomonap Linux - General 10 08-15-2005 03:48 PM
Help with Profile` issinho Linux - Distributions 2 07-26-2005 03:40 PM
.profile praveenv Linux - General 3 08-14-2004 12:27 PM
profile help jalburger Linux - Newbie 3 07-10-2002 10:54 AM

LinuxQuestions.org > Forums > Linux Forums > Linux - General

All times are GMT -5. The time now is 07:28 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration