Это исторический артефакт, то есть, другими словами, возврат к прошлому. Исторически a.out
означает «вывод ассемблера» .
a.out
теперь является только именем файла, но раньше это был также формат файла исполняемого файла.
Исполняемый формат a.out
в настоящее время редко поддерживается. Формат ELF имеет более широкое применение, но мы по-прежнему сохраняем старое имя для вывода по умолчанию компилятора C.
Если вы хотите изменить оболочку входа в систему, вы можете использовать chsh
(сменить оболочку). Если вы просто хотите запустить экземпляр ksh
, который ведет себя как оболочка входа в систему, то продолжайте читать.
ksh
ведет себя как оболочка входа в систему, если первым символом аргумента 0 является -
; если вы используете ksh
( ksh93
или mksh
, но не ksh88
или pdksh), zsh
, ] yash
или bash
, тогда
exec -a -ksh /path/to/ksh [optional arguments]
заменит текущую оболочку экземпляром оболочки Korn, которая ведет себя как оболочка входа в систему. (Если вы используете bash
или zsh
, тогда exec -l / path / to / ksh
короче и имеет тот же эффект.)
Если ни одна из этих оболочек недоступна, вы также можете попробовать perl
:
perl -e 'exec {"ksh"} "-ksh"'