Какие языки используются для создания команд Unix?

Поскольку Michael Mrozek иллюстрирует, можно запустить X приложений, которые отображаются на рабочем столе жены. Все, что необходимо сделать, установлено DISPLAY переменная среды к правильному значению (почти всегда :0) … и вовлекают себя авторизованный.

Это решение требует, чтобы у Вас было разрешение считать Вас файлы жены. Доступ к X-серверу требует аутентификации “cookie”, который является паролем, это случайным образом сгенерировано, когда X запускается и сохраненный в файле. Файл часто ~/.Xauthority; если это не, это должно быть обозначено в XAUTHORITY переменная среды. В соответствии с Ubuntu с установкой по умолчанию (использующий Gdm), сеансовые куки Вашей жены не находятся в ~wife/.Xauthority но в файле с автоматически сгенерированным именем; см., что ssh ОТОБРАЖАЕТ переменную. См. также, Поскольку корень может я запускать графическую программу на другом пользовательском рабочем столе?, Linux: wmctrl не может открыть дисплей, когда сессия инициировала через ssh+screen.

Если у Вашей жены есть открытый текстовый терминал, можно использовать write как предложено user7440 записать некоторый текст в ее терминале. Это требует, чтобы терминал принял такие уведомления; можно включить и выключить это с mesg y или mesg n, и я не знаю то, что состояние по умолчанию находится на современных эмуляторах терминала.

Более сложный механизм это write talk. Протокол разговора является предком программ чата; можно говорить с любым на машине, это выполняет сервер разговора и чей порт UDP 517 или 518 (существует два варианта протокола), не фильтрован. Так устанавливают talkd Установите talkd http://bit.ly/software-small, клиент, такой как ytalk Установите ytalk http://bit.ly/software-small, и ytalk wife. Существует также X-клиент, xtalk Установите xtalk http://bit.ly/software-small. Насколько я знаю, разговор просто упал с радара (все, кто заботится об использовании один из современного чата procotols), и нет никакого компонента системы, который генерировал бы уведомление KDE о запросе разговора.

В то время как Вы говорите, что не можете работать, какой-либо клиент IM … был бы командная строка, к которой клиент IM, работающий на Вашей домашней машине, получил доступ через SSH быть в порядке? Существуют такие, напримерweechat, Установите weechat http://bit.ly/software-small. Вы все еще были бы в зависимости от некоторого сервера для соединения Вас с Вашей женой, но к нему только получат доступ от Вашей домашней машины, не с Вашего телефона.

9
31.12.2011, 15:59
2 ответа

Это обычно просто C. Команды ls и pwd произойдите из GNU Coreutils пакет в (большинство?) Дистрибутивы Linux (и возможно некоторые другие системы). Можно найти код их домашней страницы.

Для coreutils а именно, Вы создаете их с обычными шагами: после распаковки источника, проблемы:

./configure --prefix=/some/path
                   # type ./configure --help to get the available options
make
make install       # could require root access depending on the path you used

Будьте осторожны - устанавливающий основные утилиты как те, которые по копии Вашего распределения их, плохая идея. Используйте любой диспетчер пакетов, с которым Ваша система идет для этого. Можно установить на другом префиксе хотя (устанавливающий где-нибудь в корневой каталог хорошая идея, если Вы хотите экспериментировать).

Обратите внимание на это, хотя существует a cd исполняемый файл, cd Вы будете использовать при большинстве обстоятельств, не отдельный исполняемый файл. Это должна быть сборка оболочки - в (иначе, это не могло изменить текущий каталог оболочки - это должно быть сделано самим процессом), таким образом, это записано на том же языке как оболочка (который часто является C также).

Другие примеры:

  • OpenSolaris pwd источник.
  • FreeBSD ls

Можно найти намного больше из них онлайн.

26
27.01.2020, 20:04

Только для добавления немного больше к ответу Mat, хотя Unix реализует их как автономные программы, много команд также реализованы в bash (для сохранения его имеющий необходимость породить новый процесс), посмотрите bash страница справочника для получения дополнительной информации, или взглянули на тег.

bash также записан в C

Может стоить отметить, что эти команды не должны быть записаны в C - действительно, несколько мини-использования дистрибутива Linux lua реализации их и других.

5
27.01.2020, 20:04
  • 1
    , Хорошо колотят, или любая другая хорошая оболочка. –  rds 16.08.2011, 16:19
  • 2
    Обратите внимание также что некоторые команды такой как cd должна быть оболочка, встроенная для работы эффективно. –  AProgrammer 31.12.2011, 17:20

Теги

Похожие вопросы