[
] Бэш ничего не знает о ELF. Он просто видит, что вы попросили его запустить внешнюю программу, поэтому он передает имя, которое вы дали ему как есть, в [][]execve(2)[
][]. Знание таких вещей, как форматы исполняемых файлов, []строки shebang[], и разрешения на выполнение живут за этим []syscall[], в ядре.[
] [
](То же самое происходит и с другими оболочками командной строки, хотя они могут выбрать другую функцию в семействе [][]exec(3)[
][] вместо нее.)[
] [
]В Bash 4. 3, это происходит в строке 5195 [][]execute_cmd.c[
][] в функции []shell_execve()[
].[
] [
]Если вы хотите понять Linux на уровне исходного кода, я рекомендую скачать копию []Research Unix V6 или V7[], и пройти через [], что[], а не через всю сложность, которая есть в современных Linux-системах. [] Книга Львов [] является хорошим руководством по коду. [
] [
] V7 - это то место, где [] оболочка Борна [] дебютировала. Весь его исходный код на Си чуть больше половины размера только одного файла на Си в Bash. Оболочка []Thompson[] в V6 почти в два раза меньше оригинальной оболочки Борна. Тем не менее, обе эти более простые оболочки делают то же самое, что и Бэш, и по той же самой причине. (Похоже, что это [] execv(2)[
] вызов из []texec()[
] в оболочке Томпсона и вызов []execve()[
] из []exec()[
] в модуле Bourne shell's []service.c[
])[
].
На машинах, которые мне управляют, этот пакет был установлен из красных спутниковых репозиториев. Вам понадобится спутниковая подписка Red Hat для доступа к этим конкретным репозиториям.
Вы совершенно неверный обмен стеками.
Это не вопрос Linux. Это даже вопрос Cygwin. Также не пакет или консольный вопрос. Вы используете интерпретатор команды Microsoft ( CMD
) в Windows. Это нативная программа Windows с совершенно другим синтаксисом командной строки и парадигма для оболочек Unix и Linux, из совершенно другого семейства интерпретаторов команд, корни которых находятся в CP / M и VMS. Не следует прийти как удивление, что он работает совсем по-другому.
В частности, карета (обратите внимание на орфографию) - это его эвакуатор. Вы использовали его, чтобы избежать письма k
здесь, что на самом деле не было многое. Если вы хотите пройти настоящую карету в GREP
в командной строке, которую она получает при выборе интерпретатора команды, вы должны избежать символа Escape или процитировать escape.
grep ^^Kris word.txt
grep "^Kris" word.txt
Не делайте оба, хотя. Это не оболочка Unix или Linux. Правила разные.
Одиногающий
должен быть в базовом канале или в yum
yumpo на RHEL6 Установите DVD.
Это не так ли? Если нет (или если у вас больше нет подписки), вы можете попробовать скачать версию CentOS и установить это.