Ваш .profile
, как любой “точечный файл” (конфигурационный файл, имя которого начинается с a .
), расположен в Вашем корневом каталоге. Это - каталог по умолчанию, когда Вы входите в систему, можно использовать cd
команда без аргумента для возврата туда, и можно использовать ~
как ярлык на него, например, можно обратиться к Вашему .profile
как ~/.profile
каков текущий каталог.
Если Ваш .profile
отсутствует, система ведет себя, как будто это было пусто (дело обстоит так для большинства точечных файлов). Таким образом, если Вы хотите добавить что-то, создайте файл при необходимости. Используйте текстовый редактор по Вашему выбору.
Добавление echo $PATH
кому: .profile
бесполезно, и даже плохая идея, потому что она может повредить удаленные инструменты копирования файла такой как rsync
. Я не понимаю то, что Вы пытаетесь сделать. Если Вы хотите добавить каталог к Вашему PATH
, вставьте это Ваш ~/.profile
:
PATH=$PATH:/some/extra/directory
Это добавляет указанный каталог в последний раз в пути поиска. Или если Вы хотите добавить подкаталог bin
от Вашего корневого каталога до передней стороны пути поиска:
PATH=~/bin:$PATH
Некоторые старинные оболочки требуют дополнительной строки export PATH
, но я думаю даже на SCO, это не необходимо это тысячелетие.
Так как вы пометили ZSH
, позвольте мне сказать, что все 3 перенаправления работают точно так же. Как вы могли бы прочитать как в дубликатах (тот, кто в комментарии и тот, кто в вашем посте), все они перенаправляют STDERR
на STDOUT
, которые Inturn перенаправляется в файл ' logfile '(т.е. logfile будет содержать как вывод, так и ошибки).
Но их поведение изменяется много в зависимости от оболочки, в которой вы находитесь.
Все три стиля перенаправления хорошо работают хорошо в Bash
и ZSH
, но:
Только > &
работает в CSH
или TCSH
[soum@server ~]$ ./test.sh > logfile 2>&1
Ambiguous output redirect.
[soum@server ~]$ ./test.sh &> logfile
Invalid null command.
[soum@server ~]$ ./test.sh >& logfile
[soum@server ~]$ echo $SHELL
/bin/tcsh
[soum@server ~]$
в KSH
, работает только 2> & 1
.
$ ./test.sh >& logfile
-ksh: logfile: bad file unit number
$ ./test.sh &> logfile
[1] 23039
$ 1 2 3 4 5 6 logfile test.sh
ls: cannot access ttr: No such file or directory
[1] + Done(2) ./test.sh &> logfile
Я ненавижу КШ
. В то время как > &
просто дал ошибку, в и>
и> [112349] и> [112349] - это часть команды и опустошила logfile (если не пусто).