[comp.unix.questions] dot files - no more responses please - Summary

s887212@minyos.xx.rmit.oz.au (Stephen Riehm [Romulis]) (11/22/90)

OK.. I can see that I have opened a pandora's can of snakes with this
request. I have received a lot of mail... thank you to all who did reply.
<<was amazing how many people told me all about the files that I said I
knew about.. oh well>>

what follows is a brief summary of the files which came to my attention..
followed by a much longer description for those who like detail.

As a final request.. unless you have information which isn't presented
here.. please don't send any more mail.. my mail box is getting stretch
marks!...

oh well.. ennuff of this... here is the wrap.
---- cut here.. unless you are interested --
===== short description =====

   In the manuals for the stuff ya use. There isn't a "definitive list"
  of every known dot file, because some utilities use them to have
  initialization files, some for information, and others don't use them
  at all. What I can do though is show you a list of the ones I have in
  my directory & what they're for.
  
  .article
     Created by rn, this is what it uses to post your article; it's got
     the text of the last article you wrote & saved from your editor.
  .bashrc
     This is the init file for the bash shell.
  .contool
     This is the init file for contool, a Sun console window thing.
  .cshrc
     This is the init file for the C Shell; it's read by csh every time
     you start it up.
  .dbxinit
     This is used by the dbx debugger to set up flags, commands, etc.
  .defaults
     This is used by Sunview to set up my windows & environment.
  .elm
     This directory's used by the Elm mailer to store the files it uses.
  .emacs
     This is the init file for the Emacs editor.
  .exrc
     This is the init file for the ex editor (and also vi).
  .fileviewrc
     This is the init file for the fileview sunview program.
  .filter-rules
     This is used by Elm to filter mail into other files to make it
     easier to read mail from mailing lists, for example.
  .history
     This is created by the csh or bash (or others) shell, to keep a
     list of the commands you've done, if you have history enabled.
     Type the 'set' command and check out the value of 'history'.
     (Type 'set history=30' to make it keep the last 30 commands)
  .hushlogin
     This makes it so that when I log in I don't get the 'last login'
     and message of the day stuff. (Since I run it, I've already read
     the banner when I wrote it. :-) )
  .indent.pro
     This is the init file for the indent program, to indent C source.
  .inputrc
     This is used by the bash shell to handle how keys are bound.
  .joverc
     This is the init file for the jove editor.
  .letter
     This is used by rn for the email replies to posts ya do.
  .login
     This is read by csh (& bash et al) when you first log in.
  .logout
     This is used by csh et. al. when you log out.
  .mailrc
     This is the init file for Mail.
  .mh_profile
     This is used by the MH mailer.
  .monthtool
     This is used by the monthtool sunview program.
  .news_time
     This is used by my version of the System-V news program (it's
     the file news in system V looks at to see if you've read it yet)
  .newsrc
     This is the init file used by rn.
  .plan
     This is read whenever someone fingers you.
  .pnewsexpert
     This is also used by rn.
  .profile
     This is the init file for the Bourne (sh) shell.
  .project
     This is read whenever someone fingers you.
  .rhosts
     This is used by rsh, rlogin, etc, so you can log right in
     from remote systems.
  .rnhead
  .rninit
  .rnlast
  .rnlock
  .rnsoft
    These are all used by rn.
  .rolo
    This is used by the sunview rolotool utility.
  .signature
    This is your .signature, which appears at the end of posts
    in rn, and some mailers use it.
  .sunview
    This is the init file for Sunview.

----
many thanx to ..
    Brendan Kehoe - Widener Sun Network Manager - brendan@cs.widener.edu
Widener University in Chester PA               A Bloody Sun-vs-Dec War Zone

==== not so short description ====
  
  On our system we  have some information  for users,  some of which may
  apply to you and some may not.  Here it is anyway.  Maybe you knew all
  this already.  In answer to your question, NO, I don't know of any way
  other than word  of mouth to  find  out about these things-  and  just
  about  every piece of  software  you get  adds  half a dozen new ones.
  Just  don't dare DELETE  the damned things, for  fear that some module
  somewhere is gonna break!
  
  UNIX SETUP
  ==========
    New users on a unix system must do certain things to establish their
    identity and customize their environment. First, they must make sure
    that  they  set certain   initializtion  files.    These files   are
    described  below in order of importance,  and examples  are given at
    the end.  There are other   actions that  must /  may be taken,  and
    those are also listed below.
  
  .LOGIN AND .CSHRC (pronounced "dot-login and dot-sea-shark")
  =================
    Your  .login and .cshrc files  in your home directory  are  the most
    important environmental files, and you must consult with  your system
    manager to get them set up just right, or copy one from  your peers.
    The .login file is executed only when you first log  in, whereas the
    .cshrc file is executed every time you "fork" a new shell (pardon my
    French).  These files are like shell scripts, and are written in csh
    shell script   "language".  The   commands can be   found  with "man
    csh_builtins", or "man csh", or individually, as  for  instance "man
    umask".  Most shell scripts are executed by typing their name to the
    command line.  .csh and   .login are   exceptional  in that   typing
    ".cshrc"  gives you a  "permission denied".   To execute  these guys
    without logging in (say you have just changed  one and  want to test
    it) you say "source .login" or "source .cshrc".
  
  .EMACS FILE
  =========== 
    If  you are going to  use the emacs editor, you  must  have an emacs
    initialization file, which is  called  ".emacs".   This will set  up
    such things as customizing the  arrow keys or other special  keys to
    work with your terminal, establish links  to your network server for
    use  with gnus, among  other things.  The .emacs  file is written in
    lisp (!!!), an example is given below.
  
  .XINITRC FILE
  =============
    If you are running x windows, you will need an .xinitrc file to tell
    x  how  to set  up your windows  by   default.  Bare bones  X  is so
    primitive  that  you  will probably  be  running  a "window manager"
    aswell, which you will call from this  file.  For example, a popular
    window manager is "twm" (Tom's  window manager).   Twm has it's  own
    .twmrc  file which  ALSO sets  window and font parameters, which can
    conflict with   the  settings  in the   .xinitrc   file, and produce
    unpredictable results.  Another  window manager is "uwm", which uses
    a ".uwmrc" file.  For additional confusion there may be files called
    .Xrdb, .xsession and .Xresources, which can  also conflict with your
    .xinit, .uwm and .twmrc files.  I have no  idea what  these files do
    or why they could not have been all put  in the same  file!   If you
    have trouble with this hopeless mess, consult your system manager.
  
  .MAILRC FILE
  ============
    This file sets the defaults for your mail program. I THINK that this
    file is irrelevant  if you use  rmail through emacs  (which I highly
    recommend) instead of the mail program, though I may be wrong.
  
  .ALIAS FILE
  ===========
    This file saves you typing by making one command  represent another.
    In The example file below, if you type "ls" it interprets it to mean
    "ls -F".  This file is executed by the command "source $HOME/.alias"
    in  your .cshrc file.  Make sure  it's there  if   you want a .alias
    file.  Alternatively, you could put  all your alias commands in your
    .cshrc file, and obviate the need for this file altogether.
  
  .NEWSRC FILE
  ============
    This file keeps a track of which newsgroups you are subscribed to in
    gnus, and  which articles you have  read in those groups.  You don't
    need to do anything with this file, gnus takes care of it.  If it is
    deleted though,  you  may  want to  copy   one  from a  peer to save
    yourself the trouble of "unsubscribing" to all those news groups one
    by one.  No example is given below.
  
  .PLAN FILE
  ==========
    When  you "finger"  a    user, (example:   "finger slehar") you  get
    information about that user including who he  is  and where his home
    directory is  and how long  he's been logged  on,   etc.  One of the
    items that is given is the user's  "plan".  That  plan is simply the
    contents  of  their ".plan" file,  you  can put any message in there
    that you want.
    
  .SIGNATURE FILE
  ===============
    Ever notice how people on gnus or email have special fancy signature
    fields with their name and number and  some cute little quote? Well,
    you can have  one too!  All you do  is create a .signature file with
    all that cute stuff in it.  Using email in emacs  (M-x mail) you can
    call up  your .signature file  with  the  command "C-c C-w", and you
    will see it pop up in your posting.  In emacs gnus, (M-x gnus), your
    .signature file will be AUTOMATICALLY appended to any posting to the
    network, TRANSPARANT TO THE USER.  If you use "C-c C-w" in gnus, you
    will see one .signature, but will actually be posting two of them!
  
    .MSGSRC
    =======
    This file pertains to msgs utility,  activated by the command "msgs"
    (see  "man  msgs") in your  .login file,  which  informs  you of any
    pertinent system information when you log  in.  The file  contains a
    number that is  automatically incremented with  each system  message
    that you have read.  You can type "msgs" any time to read any unread
    messages, or you can type "msgs <n>" to read message  <n> (=positive
    integer), or "msgs -<n>" (=negative integer) to read the nth message
    before the last.
  
    .ORGRC, .DEFAULTS
    =================
    These are  mysterious initialization files of  some sort, you delete
    them at  your peril!  If  you find such  files, best just leave them
    alone and hope they don't cause too much trouble.
  
  OTHER INITIALIZATION ACTIONS
  ============================
  
  CHANGE PASSWORD
  ===============
    You should change   your password immediately  when  you  get a  new
    account, and periodically thereafter.   This is  not  only   to keep
    unauthorized people from deleting your files, but is a vital part of
    the security of the BU network of computers, AND  all  the computers
    that they are  connected to, i.e.   hundreds  of systems.  Malicious
    hackers regularly send    software "robots"  to  strange systems  to
    systematically try  out  all the  obvious passwords, "tom",  "dick",
    "harry",  1/22/53  (birthday), bucns,  etc.,  etc.  You should NEVER
    have such simple passwords, even for an account that you rarely use.
    Every password must  have at least  8 characters,  and must  include
    UpPeR and lOwEr case letters,  and preferably @$&^$*  non-alphabetic
    and numeric characters to foil the robotic assaults.   The privilege
    of access to an international network  of computers carries  with it
    the responsibility for the security of that network.  This threat is
    REAL; not so long ago a hacker succeeded in breaking into OUR system
    and using it as a springboard into other systems around the country.
    This kind of  thing is  bad for  our reputation,  ESPECIALLY  if  it
    happens more than once!
  
    You can  change  your  password   with the command yppasswd,   which
    prompts for your old password and  the new  one to replace it.  This
    command changes your password in the "yellow pages" (the whole local
    network) so that all  the  machines that  we use, except polar, will
    recognize the change.  People with accounts  on polar  should rlogin
    to polar and use the command passwd, which changes only the password
    for polar.
  
  CHANGE FULL NAME
  ================
    Notice  how in email and gnus,  some users have  their  full name as
    well as their user name,  as  in slehar@bucasb.bu.edu (Steve Lehar)?
    This little touch  is  accomplished with the command "chfn"  (change
    full name), though the command must be executed on park   where your
    mail account is really located.  So, the full procedure is...
   	% rlogin park
  	% chfn
    You will be prompted for information.
  
  EXAMPLE FILES
  =============
  ===============================================================================
  .alias file
  This file  saves  you typing by making  one command represent another.
  In this example, if you type "ls" it interprets it to mean "ls -F".
  ===============================================================================
  alias pwd		'echo $cwd'
  alias ls		ls -F
  alias lsd		find . -type d -print 
  
  ===============================================================================
  .cshrc file
  ===============================================================================
  # CSH Run Commands file.
  #
  #### This is sourced every time a CSH is started.  Keep the startup
  #### time down by keeping it small and simple; keep your paths short.
  
  #### set default protection on files (see info/files/protection)
  umask 022
  
  #### avoid cluttering with core files ####
  limit coredumpsize 0k
  
  #### define where to go for cd (no args)
  set cdpath=( $home )
  
  #### protect files from overwrite when using >
  set noclobber
  
  #### protect shell from being killed by ^d ####
  set ignoreeof
  
  #### history parameters
  set history=40
  set savehist=$history notify
  
  #### if calling a shell from emacs, make it a cshell, not tshell
  if ($?EMACS) setenv SHELL "/bin/csh"
  
  #### settings  for interactive shells ####
  set prompt="`hostname`: "
  
  #### set path ####
  set path=( 	.					\
  		/usr/bin/X11				\
  		/usr/local/bin				\
  		/usr/ucb				\
  		/usr/bin				\
  		/bin					\
  		~/bin					\
  		/vol/local/bin				\
  		/usr/hosts			)
  
  #### activate the aliases in the .alias file
  source $HOME/.alias
  
  ===============================================================================
  .emacs file
  ===============================================================================
    ;;;; gnus stuff ;;;;
    (autoload 'gnus "gnus" "GNU Emacs NNTP-based news reader" 1)
    (autoload 'gnus-post-news "gnus" "Post an article." t)
    (setq gnus-nntp-server "bu.edu")
    (setq gnus-your-domain "bu.edu")
    (setq gnus-your-organization "Boston University Center for Adaptive Systems")
    (setq gnus-auto-select-next 'quietly)
    (global-set-key "\C-x4g" 'gnus)
  
    ;;;; set arrow keys for x-terms ;;;;
    (progn
      (setq SS3-map (make-keymap))
      (define-key SS3-map "A" 'previous-line) ; up arrow
      (define-key SS3-map "B" 'next-line)     ; down arrow
      (define-key SS3-map "C" 'forward-char)  ; right arrow
      (define-key SS3-map "D" 'backward-char) ; left arrow
      (define-key global-map "\eO" SS3-map)
      )
  
    ;;;; make [tab] insert a [tab] in c-mode ;;;;
    (setq c-tab-always-indent nil)
  
    ;;;; make search case sensitive ;;;;
    (setq-default case-fold-search nil)
  
    ;;;; make text-mode the default for new buffers ;;;;     
    (setq default-major-mode 'text-mode)
  
    ;;;; turn on auto-fill automatically in text mode ;;;;
    (setq text-mode-hook
  	'(lambda () (auto-fill-mode 1)))
  
  ===============================================================================
  .login
  ===============================================================================
  # @(#)login 1.16 88/06/09 SMI
  ##################################################################
  #
  #         .login file
  #
  #         Read in after the .cshrc file when you log in.
  #         Not read in for subsequent shells.  For setting up
  #         terminal and global environment characteristics.
  #
  ##################################################################
  
  #### run ian's messages system ####
  msgs
  
  #### set environment variables ####
  setenv PAGER less
  setenv EDITOR emacs
  setenv NNTPSERVER "bu.edu"
  setenv MANPATH	"/usr/man:/thalamus/cluster/appl/man_pages/share/man"
  set mail=(10 /var/spool/mail/$USER)
  
  #### commands to perform at login ####
  setenv TTY `tty`
  
  if ( $TTY == /dev/console && -e /dev/fb ) then
  	clear
  else if ( $term == dialup || $term == unknown ) then
  	set noglob
  	set glob
  	set term=$TERM
  else if ( $term != sun && $term != sun-cmd ) then
  	set noglob
  	eval `tset -sQ`
  	set glob
  	echo TERM = $term
  endif
  
  ===============================================================================
  .mailrc
  This file sets up things for your mail program.
  ===============================================================================
  set noallowreversescan
  set alwaysusepopup
  set noaskbcc
  set bell=2
  set nodisablefields
  set noeditmessagewindow
  set noexpert
  set filemenu="+inbox +trash +personal +old_mail +outbox +dead.letter"
  set filemenusize=10
  set flash=2
  set interval=300
  set moveinputfocus
  set msgpercent=50
  set printmail='lpr -p'
  set trash=+trash
  set headerlines=10
  set maillines=30
  set popuplines=15
  set panelstyle=ThreeDImages
  set allnet
  set alwaysignore
  set append
  set noask
  set askcc
  set asksub
  set autoprint
  set DEAD=$HOME/mail/dead.letter
  set folder=mail
  set hold
  set indentprefix="	"
  set keep
  set nokeepsave
  set LISTER="ls -F"
  set MBOX=+old_mail
  set nometoo
  set noonehop
  set outfolder
  set EDITOR=emacs
  set crt=15
  set PAGER=more
  ignore Received Return-Path Message-Id Status Date In-Reply-To Organization
  ignore via apparently-to Status Received Message-Id Return-Path
  
  ===============================================================================
  X INITIALIZATION FILES (Courtesy of Dave Rosen)
  ======================
  
  .xinitrc	Is a set of commands executed by  startx (xinit) using
  		your default login shell ($SHELL). Startx is only used
  		to start X on a console.
  
  .xsession	Is a set of commands executed  (using the Bourne Shell
  		/bin/sh) when you  log into an  X session  except when
  		using  startx. So this  is mainly used  on  standalone
  		X-terminals (non-consoles).
  
  Because one is run by tcsh  (our default shell) and  one by sh, if you
  made  them the   same file, you  couldn't  put in anything that's  not
  recognized by  both.  So I  put almost everything   in  a file  called
  .xstartup, which is always executed using the Bourne Shell by .xinitrc
  or .xsession.
  
  .twmrc		Tom's Window Manager Read Commands file.  This is read
  		by twm in order to customize its menus, buttons, etc.
  
  .Xdefaults	Resources to be read into your  X resource database by
  		the command  "xrdb" in  your  .xinitrc and  .xsession.
  		This usually specifies the default behavior of various
  		X programs that do not have their own .*rc file.
  		For example,
  			XTerm*scrollBar: on
  		tells  the program  "xterm" that it  should enable its
  		scrollbar.
  
  .Xresources	Obsolete name for .Xdefaults.  I don't think  there is
  		any reason to have one  of these,  but make sure  your
  		.xsession  and  .xinitrc read  .Xdefaults instead   of
  		this.
  
  .Xrdb		Another  obsolete  name  for  .Xdefaults. Another file
  		that's not used as far as I know.
  
  I don't know what an  "xsession-env" file is,  but it  may be  created
  when you log in.  I don't think its something you need to put anything
  into.
  
  ======================================================================
  If  you  like simplicity  for  its own  sake,   you can set up your  X
  environment with  only one file,  the .xsession, and create a symbolic
  link  from your .xinitrc  file to it also  (ln -s .xsession .xinitrc).
  That way you have only one file to maintain.   You can also simply not
  call xrdb,  which eliminates  the  need for  a  .Xdefaults   file (AKA
  .Xresources or .Xrdb).  You can set the defaults  individually for the
  windows you want as shown below.
  
  #!/bin/sh
  ##########################################################################
  ##	.xsession (and .xinitrc)					##
  ## This file is called by xdb (the program that maintains the login	##
  ## window) when you login, or by xinit (or startx, which calls xinit)	##
  ## under the name .xinitrc (there is a symbolic link between them) to	##
  ## initialize your x environment.  					##
  ##########################################################################
  
  ########## set screen saver for 300 sec. (5 min) ####
  xset s 300
  
  #### run "Tom's window manager" ####
  twm > /dev/null &
  
  ########## open an x window ##########
  ## xterm			open an xterm window
  ## -title `hostname`		with title = hostname (name of host computer)
  ## -geometry 80x48+1+1		80 char wide, 48 lines high, positioned
  ##				1 pixel right & 1 pixel below top left corner
  ## -ls				run xterm as a login shell (?)
  ## -fn <fontname>		use font <fontname>
  xterm -title `hostname` -geometry 80x48+1+1 -ls -fn -adobe-courier-bold-r-normal--14-100-100-100-m-90-iso8859-1
  
  ======================================================================
  The following little extras can  be put  into your .xsession, .xinitrc
  or .xstartup  to customize  your environment.  Just  cut them  out and
  paste them in the proper files, with the ##comments still attached, so
  you will know what they are doing.
  
  LOAD X DEFAULTS
  ===============
  The  main advantage of   this one is that  you  can  type "xterm"  and
  automatically get the style of widow that you  want.  The disadvantage
  is  that you must  maintain  a .Xdefaults file  (which  for confusion,
  could also be  called .Xresources    or .Xrdb)  whose syntax is    not
  available through on-line documentation.
  
  ########## load X defaults ##########
  ## This program  reads your .Xdefaults file  to set up global defaults
  ## for all your X windows.  For  instance,  if .Xdefaults contains the
  ## line   "xterm*scrollBar:on" then  all    your  windows  will   have
  ## scrollbars.  Otherwise,  you  must set them  individually  with the
  ## xterm option "-sb".
  xrdb < $HOME/.Xdefaults
  
  EXECUTE YOUR .STARTUP FILE
  ==========================
  If you choose to use a .xstartup file, make this the last call in your
  .xinitrc  or .xsession file.  The  .xinitrc file uses /bin/sh, so  you
  must use the  shell version, whereas  .xsession uses  /bin/csh, so you
  must use the csh version.
  
  ########## sh startup call ##########
  . $HOME/.xstartup
  
  ########## csh startup call ##########
  exec $HOME/.xstartup
  
  MAKE ALT KEY INTO META KEY
  ==========================
  on some  terminals there is no  meta key.  If you   use emacs or tcsh,
  these are very convenient.
  
  ########## make alt key into meta key ##########
  ## The file given to xmodmap (here .Xkeymap) must contain the following
  ## lines...
  ## keysym Alt_L = Meta_L
  ## keysym Alt_R = Meta_R
  xmodmap $HOME/.Xkeymap
  
  ON CONSOLE OPEN CONSOLE WINDOW
  ==============================
  If you are on  the console, system  messages can  come up and  clutter
  your screen, sometimes in a way that you cannot erase them.   For this
  reason you may want a console window.  If you are  not on the console,
  you must not have such a window, because you will  be intercepting the
  console messages  illegally.   That  is the reason  for  the  test for
  unix*.
  
  ########## if on the console, open console window ##########
  ## expr "$DISPLAY" : 'unix*'	match the variable DISPLAY with 'unix*'
  ## > /dev/null			trash the result; but...
  ## &&				if successful match (i.e. DISPLAY = unix:0.0)
  ## xterm			then open an xterm window
  ## -T console			with title "console"
  ## -geometry 80x9+1-1		80 char wide, 9 lines high, position 1 pixel
  ##				from left margin, 1 pixel from bottom margin
  ## -C				to intercept console messages
  ## -ls				run xterm as a login shell
  ## &				and run concurrently.
  expr "$DISPLAY" : 'unix*' >/dev/null && xterm -T console -geometry 80x9+1-1 -C -ls &
  
  MAIL NOTIFIER
  =============
  A cute little mailbox  icon that beeps  and  turns black when  you get
  mail.
  
  ########## mail notifier ##########
  ## xbiff			run mail notifier 
  ## -geometry +1-1		located in bottom left corner
  ## &				and run concurrently
  xbiff -geometry +1-1 &
  
  ########## bug compatibility mode ##########
  ## needed to run old xterm on polar
  xset m 6 6 bc
  
  CONSOLE GRACEFUL EXIT ON CRASH
  ==============================
  This one ensures that the console will be left in  a usable state even
  if X crashes  ungracefully.  It may   even  be able to trap  an  early
  control-c
  
  ########## console graceful exit on crash ##########
  trap "kbd_mode -a; echo '.xinitrc: cleaning up'; exit 1" 0 2 15
  
  ADDITIONAL COMMENTS FROM IAN
  ============================
  One of the big annoyances in starting up an  X session is  the way the
  .xsession file  is handled.    XDM has a   script that  will  run your
  .xsession as if it were a program, if it  can.  Otherwise  it will let
  your shell (typically tcsh) READ it as  a list of instructions.  These
  are different.
  
  Thus, if you chmod +x .xsession, XDM will EXECUTE your script.  If you
  put "#!/bin/sh" at the top, it will fork a /bin/sh process to run your
  Bourne shell script.  If you want to use  csh language commands, leave
  out that comment.  Now, if you don't set  the execute permission flag,
  it will be  READ  as   a file, which  MUST  have the commands  in  the
  language of your shell.  So if you put Bourne  shell commands  in your
  .xsession file and your tcsh reads it, you could get errors  that bomb
  out your X session at log in.
  
  The above is also true  for  the startx command  one uses  on  console
  displays.  startx by default  reads a  file called .xinitrc.   But  if
  you're   smart, you link  this symbolically   to .xsession, since they
  really serve the exact same function.  The  startx command may be used
  on thalamus    or  bucasd consoles.    We   already  have XDM managing
  thalamus' console, and this  may be the  mode  for the other new Sun's
  we're installing soon; in  which case, you  can basically forget about
  startx.
  
thanx to slehar@park.bu.edu... who-ever you are

-- wow.. you are still reading this? I had given you up as having lost
interest :-)