Так что я довольно новичок в Linux и недавно установил Fedora 19 на свой нетбук. Я хочу иметь более глубокое понимание Linux и интерфейса командной строки, поэтому сейчас я читаю Learn Linux: The Hard Way .
В упражнении 3 автор дает следующие команды:
- ls -al
- кат. профиль
Я пытаюсь следовать этим инструкциям, но безрезультатно. В моем имени пользователя нет файла .profile, как я вижу из ls -al. Из того, что я узнал, файлы .bash_profile и .profile практически совпадают. Единственное отличие, которое я сделал из своего исследования, заключается в том, что .bash_profile проверяется первым.
Я не понимаю, почему в Linux существует несколько файлов для одной и той же функции, почему Автор использует .profile, а не .bash_profile (если я правильно понимаю, .profile не будет прочитан, когда система сначала найдет .bash_profile) и почему у меня нет файла .profile в моей системе?
Ответы:
В
.profile
восходит к оригинальной оболочке Борна , известной какsh
. Поскольку оболочка GNUbash
(в зависимости от ее параметров) является надмножеством оболочки Bourne, обе оболочки могут использовать один и тот же файл запуска. То есть при условии, что вsh
команду введены только команды.profile
Например,
alias
допустимая встроенная команда,bash
но неизвестнаяsh
. Поэтому, если у вас есть только.profile
в вашем домашнем каталоге и поместитеalias
в него заявление , вы будетеsh
жаловаться. Таким образом, существует специальный файл bash, который имеет команды инициализации оболочки, которые bash будет читать, если и только если.profile
файла нет.На самом деле, это немного упрощает некоторые установки, и я не знаком с Fedora. В bash
/etc/profile
читается оболочкой перед любыми файлами в вашем домашнем каталоге. Если есть общесистемный скрипт инициализации, он часто говорит что-то вродеПочему так? Попытка совместимости через десятилетия оболочечных диалектов. Почему учебник написан именно так? Оболочка Bourne не так часто используется, и некоторые люди даже не знают, что есть какая-то другая оболочка, похожая на Bourne, кроме bash. Даже когда (ограниченный) синтаксис Bourne используется для большей кроссплатформенной совместимости, он часто запускается
dash
или bash в режиме совместимости с POSIX. Действительно, фактический источник оболочки Bourne, вероятно, является компонентом авторского права Unix System V, который, похоже, является собственностью Novell, но я понятия не имею, что они делают с ним, если вообще что-то делают.Для начинающего пользователя, использование либо
$HOME/.profile
или ,$HOME/.bash_profile
но не так , и вы будете в порядке. Поскольку у вас уже есть.bash_profile
работа с этим, потому что он может иметь специфические для системы вещи, которые нужны вашей установке.источник
alias
требуется POSIX, поэтому не так многоsh
тех, кто об этом не знает.