Je suis donc assez nouveau sur Linux et j'ai récemment installé Fedora 19 sur mon netbook. Je veux avoir une compréhension plus approfondie de Linux et de la CLI, donc je lis maintenant Learn Linux: The Hard Way .
Dans l'exercice 3, l'auteur donne les commandes suivantes:
- ls -al
- profil de chat
J'essaie de suivre ces instructions mais en vain. Il n'y a pas de fichier .profile dans mon répertoire de nom d'utilisateur comme je peux le voir sur ls -al. D'après ce que j'ai appris, les fichiers .bash_profile et .profile sont pratiquement les mêmes. La seule différence que j'ai conclue de mes recherches est que .bash_profile est vérifié en premier.
Ce que je ne comprends pas, c'est pourquoi y a-t-il plusieurs fichiers pour la même fonction sous Linux, pourquoi l'auteur utilise-t-il .profile et non .bash_profile (si je comprends bien. et comment se fait-il que je n'ai pas le fichier .profile sur mon système?
Réponses:
Les
.profile
dates remontent à la coquille Bourne originale connue sous le nom desh
. Étant donné que le shell GNUbash
est (selon ses options) un sur-ensemble du shell Bourne, les deux shells peuvent utiliser le même fichier de démarrage. Autrement dit, à condition que seules lessh
commandes soient insérées dans.profile
Par exemple,
alias
est une commande intégrée valide debash
mais inconnue desh
. Par conséquent, si vous n'aviez qu'un.profile
dans votre répertoire personnel et y mettiez unealias
déclaration, vous voussh
plaindriez. Il existe donc un fichier spécifique à bash qui a des commandes d'initialisation du shell que bash lira si et seulement s'il n'y a pas de.profile
fichier présent.En fait, c'est un peu une simplification excessive dans certaines installations, et je ne connais pas Fedora. Sous bash,
/etc/profile
est lu par le shell avant tous les fichiers de votre répertoire personnel. S'il existe un script d'initialisation à l'échelle du système, il dit souvent quelque chose commePourquoi est-ce ainsi? Une tentative de compatibilité à travers des décennies de dialectes shell. Pourquoi le didacticiel est-il rédigé de cette façon? Le shell Bourne n'est plus souvent utilisé et certaines personnes ne savent même pas qu'il existe un autre shell de type Bourne que bash. Même lorsque la syntaxe Bourne (limitée) est utilisée pour une meilleure compatibilité multiplateforme, elle est souvent exécutée par
dash
ou bash en mode de compatibilité POSIX. En effet, la source réelle du shell Bourne est probablement un composant protégé par des droits d'auteur d'Unix System V qui semble être la propriété de Novell maintenant, mais je n'ai aucune idée de ce qu'ils en font, le cas échéant.Pour l'utilisateur débutant, utilisez soit
$HOME/.profile
ou$HOME/.bash_profile
mais pas les deux et tout ira bien. Puisque vous avez déjà un.bash_profile
travail avec cela, car il peut contenir des éléments spécifiques au système dont votre installation a besoin.la source
alias
est requis par POSIX donc il n'y en a pas beaucoupsh
autour qui ne le savent pas.