JSSH — это мощный инструмент командной строки, написанный на JavaScript.
Особенности:
Установка:
GOPROXY=https://goproxy.cn go get -u github.com/leizongmin/jssh
Использование инструмента командной строки:
jssh file.js
.jssh repl
.jssh exec "js code"
.jssh eval "js code"
.jssh build file.js
.jssh help
.Глобальная конфигурация:
Примеры использования:
Документация:
В JSSH также есть список глобальных переменных и функций, которые можно использовать при работе с инструментом. Пароль, по умолчанию пустой;
Путь к файлу с приватным ключом, по умолчанию ~/.ssh/id_rsa
;
Время ожидания соединения в миллисекундах, по умолчанию 60000;
ssh.open(host) — установить соединение с указанным хостом;
ssh.close() — закрыть соединение;
ssh.setenv(name, value) — задать значение переменной окружения;
ssh.exec(cmd, env?, mode?) — выполнить команду;
ssh.exec1(cmd, env?) — выполнить команду, mode=1;
ssh.exec2(cmd, env?) — выполнить команду, mode=2;
fs.readdir(dir) — получить список файлов в указанном каталоге;
fs.readfile(filename) — прочитать содержимое файла;
fs.readfilebytes(filename) — считать содержимое файла и вернуть его в виде массива Uint8Array;
fs.stat(filepath) — получить информацию о файле;
fs.exist(filepath) — проверить наличие файла;
fs.writefile(filename, data) — перезаписать файл, data может быть строкой или массивом Uint8Array;
fs.appendfile(filename, data) — добавить данные в конец файла, data может быть строкой или массивом Uint8Array;
path.join(...paths) — объединить несколько подпутей;
path.abs(filepath) — получить абсолютный путь;
path.base(filepath) — извлечь имя файла;
path.ext(filename) — извлечь расширение файла;
path.dir(filepath) — извлечь каталог, в котором находится файл;
cli.get(flagname) — получить значение указанного аргумента командной строки, поддерживаются форматы -name=value
и --name=value
;
cli.get(index) — получить указанный аргумент командной строки по индексу, начиная с 0;
cli.bool(flagname) — определить логическое значение указанного аргумента командной строки: если это -name=0
, -name=false
, -name=f
или аргумент отсутствует, то результат будет false;
cli.args() — получить все аргументы командной строки;
cli.opts() — получить все опции командной строки;
cli.prompt(message?) — запросить ввод данных у пользователя, ввод завершается нажатием клавиши [Enter];
cli.subcommand(name, callback) — зарегистрировать функцию обработки для подкоманды, если *name=**, то это означает другую ситуацию;
cli.subcommandstart() — начать обработку подкоманды;
http.timeout(ms) — установить время ожидания операции в миллисекундах, по умолчанию 60000;
http.request(method, url, headers?, body?) — отправить HTTP-запрос;
http.download(url, filename?) — загрузить файл через HTTP;
Уровень логирования можно настроить с помощью переменной среды JSSH_LOG=<DEBUG|INFO|ERROR>, по умолчанию JSS_LOG=INFO.
log.debug(template, ...args) — вывести отладочную информацию (зелёный текст), формат аналогичен функции format();
log.info(template, ...args) — вывести информационную информацию (зелёный текст), формат аналогичен функции format();
log.warn(template, ...args) — вывести предупреждающую информацию (жёлтый текст), формат аналогичен функции format();
log.error(template, ...args) — вывести информацию об ошибке (красный текст), формат аналогичен функции format();
log.fatal(template, ...args) — вывести фатальную информацию (красный текст) и завершить процесс, формат аналогичен функции format();
socket.timeout(ms) — установить время ожидания операции в миллисекундах, по умолчанию 60000;
socket.tcpsend(host, port, data) — отправить данные на указанный порт хоста и получить результат;
socket.tcptest(host, port) — протестировать доступность порта на указанном хосте;
assert(ok, message?) — простое утверждение;
Для сборки проекта выполните следующую команду:
./build.js
MIT License
Copyright (c) 2020-2021 Zongmin Lei <leizongmin@gmail.com>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )