On Mon, Jul 08, 2013 at 04:55:55PM +0200, ha wrote: > Thanks Ralph, I guess it would do it. > But I didn't plan to separate the conf files completely, I was hoping > for a solution more alike Wilko's (if it works). > After all we all have .config file in our home directory. > It makes sense that all applications write their conf files there, > instead "randomly" all around home directory. I was hoping for a way to > force that. > I do not know if this is possible, nor how to do it. > It's funny that /etc is so well organized, but noone cares to do the > same with the conf files *for users*. > ...or is it just me? >
Moin mitnanner, (To ha: My dot files aint collected into one file, but into one subdir) (Sorry that this post got a bit lenghty, but the bulk of it is comments and explanations.) The following lines explain, what should be done in order to get the dot files out of the way into a subdirectory. The dot files of root go into subdir "/root/" The dot files of users go into subdir "/home/$HOME/.rc/" HowTo get Dot Files into separate Subdirs at Installation Time ============================================================== wfok...@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 [ 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 b) .bashrc: -------- # ~/.bashrc: executed by bash(1) for non-login shells. # see /usr/share/doc/bash/examples/startup-files . /etc/profile 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 PATH=$PATH:. 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 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 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} } export PATH CDHOME HOME HISTFILE # ================================================= # # End of functions supporting displaced dot files ! # ====================================================================== # (The following lines are NOT directly related to dot files) : # Optional lines in profile.local: # -------------------------------- # (keep general tabwidth = 4) : setterm -regtabs 4 -store # Custom Prompt for root and users : if [ $BASH_VERSION ]; then if [ -z "$DISPLAY" ]; then [ "$(id -u)" -eq 0 ] && PS1="\h:\w# " || PS1="\D{%d.%m.} \h:./\W> " else [ "$(id -u)" -eq 0 ] && PS1="\h:\w# " || PS1="\D{%d.%m.} \h:./\W> " fi fi # Re-Set PATH from Scratch: # ------------------------- PATH=/bin:/usr/bin:/usr/X11R6/bin # Complement PATH for ordinary users : # ------------------------------------ # (has already been accomplished w/in /etc/skel, see above) # Complement PATH for root : # -------------------------- if [ "$(id -u)" -eq 0 ]; then PATH=/sbin:/usr/sbin:/usr/lsbin:/usr/lsys:$PATH fi export PATH # (Edit the following entries) : # ------------------------------ EDITOR=/usr/bin/vi BROWSER=opera:elinks:w3m LESS="-ix4 --LOG-FILE=$HOME/vv" HISTCONTROL=ignoreboth export EDITOR BROWSER LESS HISTCONTROL export LC_MESSAGES=en_US.UTF-8 # Some Bash Functions working w/ Params # ------------------------------------- lt () { ls -AltF $* | more } ltr () { ls -AltF $* | sort -r | more } # Create new (sub/)subdir and cd into: cdx () { md -p $1; test -d $1 && builtin cd $1 } # display text file w/out empty or commented lines grep0 () { grep -v ^# $* | grep -v ^$ } # rework bash aliases using etc/aliases.sh (OPTIONAL!, see below) : # ---------------------------------------------------------------- # (create /etc/alias.sh to contain general aliases) unalias -a # unset existing aliases . /etc/alias.sh # set customized aliases # (see below) # ================================================= # End of /etc/profile.local # ================================================= (6.) Create /etc/alias.sh containing general aliases (OPTIONAL!) =========================================================== (examples:) alias 0=clear alias 00='dirs -c; cd; 0' alias l='clear; ls -alF' alias ll='ls -la' alias ,=cd alias ,,='00; cd ~; ls -alF' alias ..='cd ..' alias ...='cd ../..' alias +='cd /; dirs -c; l' alias pu=pushd alias po=popd alias md='mkdir -p' alias rd=rmdir alias c=cat alias g=gedit alias v=less alias z=zless alias vw=view alias vii='sudo vi' alias detab4='expand -t 4' alias detab8='expand -t 8' ================================================================== ================================================================== (hope these instructions are sufficient) Regards Wilko -- To UNSUBSCRIBE, email to debian-user-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/20130711051235.ga7...@fok01.laje.edewe.de