Существует ли оболочка JavaScript?

Большинство систем Unix предотвращает пользователей от “отдачи” файлов, то есть, пользователи могут только работать chown если у них есть полномочия группы и целевой пользователь. Начиная с использования chown требует, чтобы владение файлом или быть базировались (пользователи никогда не могут адаптировать файлы других пользователей), только базируйтесь, может работать chown изменить владельца файла на другого пользователя.

Причина этого ограничения состоит в том, что отдача файла другому пользователю может позволить плохим вещам произойти в редких, но все еще важных ситуациях. Например:

  • Если системе включили выделенные дисковые пространства, Alice могла бы создать мировой перезаписываемый файл в соответствии с каталогом, доступным только ею (таким образом, никто больше не мог получить доступ к тому мировому перезаписываемому файлу), и затем работайте chown сделать тот файл принадлежавшим другому пользователю Bill. Файл затем рассчитал бы под выделенным дисковым пространством Bill даже при том, что только Alice может использовать файл.
  • Если Alice отдает файл счету, нет никакой трассировки, что счет не создал тот файл. Это может быть проблемой, если файл содержит недопустимые или иначе идущие на компромисс данные.
  • Некоторые программы требуют, чтобы их входной файл принадлежал конкретному пользователю для аутентификации запроса (например, файл содержит некоторые инструкции, что программа будет работать от имени того пользователя). Это обычно - не безопасный дизайн, потому что, даже если счет создал файл, содержащий синтаксически корректные инструкции, он, возможно, не намеревался выполнить их в определенное время. Тем не менее, разрешению Alice создать файл с произвольным содержанием и взяли, это как вход из счета может только сделать вещи хуже.
30
09.12.2012, 17:19
4 ответа

Это выглядит желательным Вам?

// Replace macros in each .js file
cd('lib');
ls('*.js').forEach(function(file) {
  sed('-i', 'BUILD_VERSION', 'v0.1.2', file);
  sed('-i', /.*REMOVE_THIS_LINE.*\n/, '', file);
  sed('-i', /.*REPLACE_LINE_WITH_MACRO.*\n/, cat('macro.js'), file);
});
cd('..');

Если так, ShellJS мог быть интересным, это

портативное устройство (включенный Windows) реализация Unix окружает команды сверху API Node.js.

Я не уверен, если это могло бы использоваться в качестве полнофункциональной оболочки входа в систему, все же. (Возможно, с некоторым обертыванием?)

Вы могли утверждать, что это не действительно оболочка, но Вы знаете TermKit? Это сделано из Node.js + WebKit, Вы могли использовать JS для расширения его (я предполагаю); язык оболочки является все еще Bash (-выход).

17
27.01.2020, 19:38
  • 1
    Ну, это выглядит прохладным! Я дам ему попытку. –  J-unior 09.12.2012, 18:32
  • 2
    я технически действительно не считаю это оболочкой, потому что он не следует cmd arguments синтаксис. Например, psh добавляет такой синтаксис к языку жемчуга от моего понимания, таким образом, это появляется больше как типичная оболочка gnp.github.io/psh мог бы быть встречный пример, но я не имею, находят его все же. –  William 20.10.2015, 07:21
  • 3
    Как я установил бы это как свою оболочку входа в систему? Снова я хочу что-то вроде этого, но я просто не убежден, что это - это. –  William 22.11.2015, 05:12
  • 4
    Все еще выход удара, мы могли использовать sed({i:1}, 'BUILD_VERSION', 'v0.1.2', file) вместо этого. Было бы лучше для использования асинхронных функций с, ждут, таким образом, параллель была бы быстрее. –  inf3rno 13.09.2017, 14:40

Mozilla INC предлагает a javascript оболочка: см. Introduction_to_the_JavaScript_shell

Пример окружает в системной :

$ js
js> str = "welcome on *nix side" 
"welcome on *nix side"
js> str.indexOf("nix");          
12
js> 

Никакие проблемы не обнаружили, так как я использую его для тестирования цели.

8
27.01.2020, 19:38
  • 1
    Это доступно на некоторый/много дистрибутивах Linux теперь как a js пакет. –  goldilocks 22.12.2016, 19:28

Если Вы находитесь на Ubuntu, или любой другой debian основывал систему, можно установить носорога (из Mozilla.org).

sudo apt-get install rhino

Это предоставляет js через альтернативы:

=== /usr/bin/js is a symlink... following it
lrwxrwxrwx 1 root root 20 Nov 21 08:54 /usr/bin/js -> /etc/alternatives/js
=== /etc/alternatives/js is a symlink... following it
lrwxrwxrwx 1 root root 14 Nov 21 08:54 /etc/alternatives/js -> /usr/bin/rhino
=== /usr/bin/rhino is owned by package: rhino ===

Так вызов или носорог или js даст Вам оболочку JavaScript.

Редактирование (2014-06-30):

носорог хорош для быстрого тестирования некоторого кода JavaScript в файле, но это не интерактивная оболочка, таким образом, он не поддерживает GNU readline стиль редактирования. Для интерактивной работы можно предпочесть nodejs: на Ubuntu/debian sudo apt-get install nodejs. Это должно обеспечить более интерактивное js оболочка (вызывают использование команды js) где можно отредактировать строки и вспомнить историю с/клавиши со стрелкой вниз. Для более длинного списка опций см. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Shells

8
27.01.2020, 19:38

В Chrome и Firefox при нажатии F12, он поднимает инструменты разработчика. Там Вы могли найти вкладку названной консолью, где Вы могли ввести и протестировать сценарии JavaScript. Это имеет завершение кода и другие функции также.

0
27.01.2020, 19:38
  • 1
    , я думаю, что Вы не поняли вопроса. Я спросил об оболочке UNIX. Но спасибо за согласное для помощи так или иначе. –  J-unior 09.12.2012, 16:54
  • 2
    Это отвечает на вопрос, "там оболочка, которая использует JS в качестве языка сценариев?". Ничто в вопросе не говорит об альтернативе bash или zsh (и т.д.). –  roaima 05.02.2018, 23:44

Теги

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