On Jo, 11 iul 13, 07:12:35, Wilko Fokken wrote:
>
> The following lines explain, what should be done in order to get the dot
> files out of the way into a subdirectory.
You included lots of unrelated customizations, see below.
> The dot files of root go into subdir "/root/"
Err, aren't they already there by default?
> The dot files of users go into subdir "/home/$HOME/.rc/"
I'd go for /home/$user/.config (the default XDG directory).
> HowTo get Dot Files into separate Subdirs at Installation Time
> ==============================================================
> wfokken@web.de July 11 2013
>
> ( set tabwidth = 4 to view this file )
>
>
> 1. Modify /etc/skel
> ================
>
> [from]:
> -rw-r--r-- 1 root root 220 Jan 1 2013 .bash_logout
> -rw-r--r-- 1 root root 3392 Jan 1 2013 .bashrc
> -rw-r--r-- 1 root root 675 Jan 1 2013 .profile
>
> [to]:
> -rw-r--r-- 1 root root 220 Jan 1 2013 .rc/.bash_logout
> -rw-r--r-- 1 root root 3392 Jan 1 2013 .rc/.bashrc
> -rw-r--r-- 1 root root 675 Jan 1 2013 .rc/.profile
Ok, but this only affects new users. For existing accounts one has to
move the files by hand.
> [ these three files in .rc/ need to be edited ] :
> -------------------------------------------------
>
> a) .bash_logout:
> -------------
> # ~/.bash_logout: executed by bash(1) on logout:
> # clear screen (here = max. 24 virtual text consoles)
> # [ enhance ## of text consoles: add entries in /etc/inittab ]
>
> case "`tty`" in
> /dev/tty[1-9] | /dev/tty1[0-9] | /dev/tty2[0-4] ) clear
> esac
This is not necessary for the task at hand and the default .bash_logout
already does similar (and better, it doesn't clear *all* consoles, just
because I logged out of one).
> b) .bashrc:
> --------
> # ~/.bashrc: executed by bash(1) for non-login shells.
> # see /usr/share/doc/bash/examples/startup-files
>
> . /etc/profile
See bash(1) for why this is not needed.
> c) .profile:
> ---------
>
> # ~/.profile, at login autoread by all Bourne-compatible shells (after /etc/profile)
> # ~/.profile is *NOT* executed by bash shell if ~/.bash_profile exists
> # All 2nd level bash shells will read ~/.bashrc
>
> # add wanted user owned subdirs,
> # (e.g. sh = shell, pl = perl, py = python scripts) :
>
> for DIR in /home/$LOGNAME/bin /home/$LOGNAME/sh /home/$LOGNAME/pl \
> /home/$LOGNAME/py; do
> [ -d $DIR ] && PATH=$PATH:$DIR
> done
These seem to be your own customizations and don't seem to apply to the
task at hand.
> PATH=$PATH:.
Are you sure this is a good idea?
> export PATH PS1 PS2
>
> # mesg y
>
> # 'cd' command (below) moves login `pwd` to $HOME/.. !
> # -----------------------------------------------------
> # (applies new bash function 'cd ()')
> # (defined in /etc/profile/profile.local)
>
> cd
>
>
> 2. Within /root, modify .bashrc, .profile :
> ========================================
>
> prepend command: "./etc/profile" to .bashrc
Are you missing a space here?
> append command: "cd" to .profile
>
>
> 3. Modify /etc/passwd: login_dir ==> /home/<user>/.rc
> ==================================================
>
> example:
> wwf:x:1001:1001:Wilko Fokken,,,:/home/wwf/.rc:/bin/bash
So basically you're setting $HOME to be /home/$user/.rc
> 4. /etc/profile Add call to homebrew /etc/profile.local:
> ========================================================
> (keeps original condition of /etc/profile)
>
> # ----------------------------------------------------
> test -f /etc/profile.local && . /etc/profile.local
> test -f ~/.alias.sh && . ~/.alias.sh
> # ----------------------------------------------------
>
>
> 5. # /etc/profile.local: Modifications to login process
> # ==================================================
>
> # umask 022
>
> # Unclutter root's and user's HOME_dir:
> # -------------------------------------
> # root: $HOME => /root $CDHOME => /
> # users: $HOME => /home/<user>/.rc; $CDHOME => /home/<user>
>
> # cutting off {/root | /.rc} from "LOGIN_dir" :
>
> CDHOME=`dirname $HOME`
>
> # "cd" (no params): Go to "LOGIN_dir", NOT to "LOGIN_dir"/.rc :
>
> cd () {
> [ $1 ] && builtin cd $1 || builtin cd ${CDHOME}
> }
And you are customizing 'cd' to take you to /home/$user/ instead of
/home/$user/.rc
> export PATH CDHOME HOME HISTFILE
>
> # ================================================= #
> # End of functions supporting displaced dot files ! #
> ======================================================================
>
> # (The following lines are NOT directly related to dot files) :
Why include them then?
[snip unrelated customizations]
Kind regards,
Andrei
--
http://wiki.debian.org/FAQsFromDebianUser
Offtopic discussions among Debian users and developers:
http://lists.alioth.debian.org/mailman/listinfo/d-community-offtopic
Attachment:
signature.asc
Description: Digital signature