.cshrc
é copiado de /etc/skel
porque existe lá e é o que acontece com o conteúdo de /etc/skel
na maioria das adições de conta de usuário. No entanto, isso é totalmente não relacionado a sh
ou ksh
; .cshrc
existe devido a csh
sendo instalado e suportado desde os dias do 2BSD (uma tradição, neste ponto).
.profile
é lido apenas por shells de login, então os comandos não serão selecionados por novos shells que não sejam shells de login:
valen$ cd
valen$ ed .profile
215
a
echo .profile was run
.
wq
237
valen$ exec ksh
valen$ exec ksh -l
.profile was run
valen$
O ksh(1)
manual tem documentos sobre como definir uma variável de ambiente ENV
que as instâncias de não-login de ksh
vai ler:
valen$ ed .profile
237
d
a
export ENV=$HOME/.profile
echo now with ENV set
.
wq
263
valen$ exec ksh
valen$ exec ksh -l
now with ENV set
now with ENV set
valen$ exec ksh
now with ENV set
valen$
Dada a leitura dupla de ~/.profile
com export ENV=$HOME/.profile
set, talvez seja melhor ter um arquivo diferente, como ~/.kshrc
, conforme recomendado pelo manual que contém seus aliases personalizados:
valen$ cat .profile
PATH=$HOME/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin:/usr/games
export PATH HOME TERM
export ENV=$HOME/.kshrc
valen$ cat .kshrc
alias cls=clear
valen$ exec ksh -l
valen$ alias | grep cls
cls=clear
valen$