1

В настоящее время я пишу несколько удобных методов для моего терминала в моем bash_profile и уверен, что то, что я пишу, "лучший способ". Я думаю, что хороший способ проверить, правильно ли я делаю, - найти какой-нибудь исходный код более известных программ и посмотреть, как они это делают.

Тогда мой вопрос: где я могу найти этот код на моем Mac? Например, с установленным Macports, где находится исходный код, который открывает интерактивную консоль порта, когда я в своей оболочке набираю только "порт"?

(Я добавил Linux в заголовок, хотя я нахожусь на Mac, потому что я предполагаю, что ответ будет одинаковым для обоих)

Изменить: Ответ, который я ищу, заключается в том, в каком каталоге относительно программ я найду их сценарии Unix.

3 ответа3

2

Многие команды представляют собой скомпилированный код C (или другие языки, такие как C++ или Objective C), а не сценарии оболочки (некоторые могут быть Perl, AWK, Python и т.д.). Вы можете использовать команду file чтобы узнать, какие они есть.

$ file /bin/grep
/bin/grep: ELF 32-bit LSB executable ...
$ file /bin/which
/bin/which: POSIX shell script text executable

Вы можете использовать что-то вроде этого, чтобы найти сценарии оболочки в вашей системе:

find /bin -executable -type f -exec bash -c 't=$(file {}); if [[ $t =~ shell\ script ]]; then echo {}; fi' \;

Замените различные начальные каталоги для поиска различных частей вашей файловой системы. Используйте -perm -111 вместо -executable если ваша find не имеет последнего.

0

Скрипты Bash хорошо, в Bash, или просто текст, вы можете открыть их в текстовом редакторе.
Однако большинство инструментов * nix написаны на C/C++.
Я настоятельно рекомендую прочитать Программирование BASH - Введение, руководство по расширенному написанию сценариев и руководство по bash4 .

И как личное предпочтение, я рекомендую также проверить Python .

0

Если я правильно прочитал, вы ищете файлы "master" или .bashrc?

Основной bashrc находится здесь /etc /bashrc, а ваш собственный будет скрыт в вашем домашнем каталоге ~ /.bashrc, копия домашнего каталога взята из /etc/skel/.bashrc

Теперь команда "port" - это просто ссылка на /usr /bin /port, как вы можете увидеть, зайдя в /usr /bin и прокрутив файлы. Каждый из них будет работать из-за вашей переменной $ PATH (которую можно установить в bashrc). Если вы хотите увидеть, что ваша переменная $ PATH, просто введите ее в терминал.

Эти инструкции предназначены для Linux и могут не совпадать на вашем Mac.

Я также предлагаю просмотреть ссылки на oneOfone.

С уважением

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .