명령어 레퍼런스
이 페이지는 JSH shell에서 바로 사용할 수 있는 기본 명령을 기능별로 정리합니다.
개요
이 문서는 사용 목적에 따라 명령을 분류합니다.
참고
- 모든 명령은 기본적으로 호스트 OS가 아니라 JSH 가상 파일 시스템에서 동작합니다.
- 상대 경로는 현재 JSH 작업 디렉터리를 기준으로 해석됩니다.
- 작업 디렉터리나 환경 변수처럼 현재 shell 상태에 영향을 주는 명령도 포함합니다.
- 일부 명령은 Unix 도구보다 작은 기능 집합만 제공합니다.
Filesystem Commands
cd
현재 JSH shell 세션의 작업 디렉터리를 변경합니다.
사용 형식
cd [directory]인자를 생략하면 $HOME으로 이동합니다.
대상 경로가 없으면 에러를 출력하고 non-zero 상태를 반환합니다.
사용 예시
/work > cd subdir
/work/subdir >
/work/subdir > cd
/work >cat
파일 내용을 표준 출력으로 이어서 출력합니다. 행 번호, 줄 끝 표시, 탭 표시, 빈 줄 압축, 문법 강조를 지원합니다.
사용 형식
cat [OPTION]... [FILE]...옵션
-n, --number모든 출력 행에 번호를 붙입니다.-E, --showEnds각 줄 끝에$를 표시합니다.-T, --showTabs탭 문자를^I로 표시합니다.-s, --squeeze연속된 빈 줄을 하나로 압축합니다.-c, --color문법 강조를 활성화합니다.-h, --help도움말을 표시합니다.
-c는 .js, .json, .ndjson, .sql, .csv, .yaml, .yml, .toml 파일을 강조 표시할 수 있습니다.
사용 예시
/work > cat -n notes.txt
/work > cat -c script.js
/work > cat -sE log.txtls
디렉터리 내용을 나열합니다. 기본 출력은 컬럼 형태이며, 숨김 파일, 상세 목록, 시간 정렬, 재귀 탐색을 지원합니다.
사용 형식
ls [OPTION]... [PATH]...옵션
-l, --long상세 목록 형식으로 출력합니다.-a, --all숨김 파일을 포함합니다.-t, --time수정 시간 기준으로 내림차순 정렬합니다.-R, --recursive하위 디렉터리를 재귀적으로 나열합니다.
경로 인자에서는 *, ? wildcard도 지원합니다.
사용 예시
/work > ls
/work > ls -la
/work > ls -t /lib
/work > ls -R src
/work > ls *.jsmkdir
하나 이상의 디렉터리를 생성합니다.
사용 형식
mkdir [OPTION]... DIRECTORY...옵션
-p, --parents필요한 상위 디렉터리까지 함께 생성합니다.-v, --verbose생성한 디렉터리마다 메시지를 출력합니다.-h, --help도움말을 표시합니다.
-p 없이 이미 존재하는 디렉터리를 생성하면 에러를 반환합니다.
사용 예시
/work > mkdir data
/work > mkdir -p logs/app/2026
/work > mkdir -pv build/outputpwd
현재 작업 디렉터리를 출력합니다.
사용 형식
pwd사용 예시
/work > pwd
/workrm
파일이나 디렉터리를 삭제합니다.
사용 형식
rm [OPTION]... FILE...옵션
-r, -R, --recursive디렉터리와 그 하위 내용을 재귀적으로 삭제합니다.-d, --dir, --directory빈 디렉터리를 삭제합니다.-f, --force존재하지 않는 경로와 missing operand 오류를 무시합니다.-v, --verbose삭제한 경로마다 메시지를 출력합니다.-h, --help도움말을 표시합니다.
사용 예시
/work > rm old.txt
/work > rm -rf cache
/work > rm -d empty-dir
/work > rm -fv temp.txt missing.txtEnvironment Commands
env
환경 변수를 출력합니다. 인자를 주지 않으면 전체 환경을 정렬해서 출력하고, 변수 이름을 주면 해당 변수만 출력합니다.
사용 형식
env [NAME]...사용 예시
/work > env
/work > env HOME PWDalias
현재 shell 세션에 command alias를 등록하거나 조회합니다.
alias만 실행하면 현재 정의된 alias를 정렬해서 출력하고, alias NAME은 특정 alias 하나를 출력합니다.
alias NAME COMMAND [ARG]... 형식은 alias를 등록하며, 이후 입력한 command head에서 확장됩니다.
사용 형식
alias
alias NAME
alias NAME COMMAND [ARG]...사용 예시
/work > alias ll ls -l
/work > ll
/work > alias
/work > alias llsetenv
현재 shell 세션의 환경 변수를 설정합니다.
사용 형식
setenv NAME VALUE
setenv NAME=VALUE변수 이름은 영문자 또는 _로 시작해야 하며, 이후에는 영문자, 숫자, _만 사용할 수 있습니다.
사용 예시
/work > setenv GREETING hello
/work > setenv MESSAGE='hello world'unsetenv
현재 shell 세션에서 환경 변수를 제거합니다.
사용 형식
unsetenv NAME잘못된 변수 이름이나 누락된 인자를 전달하면 사용법 메시지를 출력합니다.
사용 예시
/work > unsetenv GREETINGSystem Commands
pkg
JSH 패키지와 프로젝트 manifest를 관리합니다. 서브커맨드, 옵션, 작업 흐름은 패키지 관리자 문서를 참고하세요.
사용 형식
pkg <command> [options] [args...]servicectl
서비스 컨트롤러를 통해 장시간 실행되는 JSH 서비스를 관리합니다. 서브커맨드, 옵션, 서비스 관리 흐름은 서비스 관리자 문서를 참고하세요.
사용 형식
servicectl [--controller=<addr>] <command> [args...]servicectl controller
서비스 컨트롤러 RPC 런타임 메트릭을 조회하고 초기화합니다.
사용 형식
servicectl [--controller=<addr>] controller [metrics|get|reset]동작
controller와controller metrics는 동일합니다.controller get은controller metrics의 별칭입니다.controller reset은 누적 카운터를 초기화하고 새 집계 구간을 시작합니다.high_water_mark_connections는 마지막 reset 이후 동시 RPC 연결의 최대값(최악 시점)을 유지합니다.
사용 예시
servicectl controller metrics
servicectl controller reset
servicectl controller getText And Utility Commands
echo
인자를 공백으로 구분해 출력하고 마지막에 줄바꿈을 붙입니다.
사용 형식
echo [ARG]...현재 구현은 -n 같은 shell 스타일 플래그나 escape 시퀀스 해석을 지원하지 않습니다.
사용 예시
/work > echo hello world
hello worldsleep
지정한 초 수만큼 대기한 뒤 종료합니다.
사용 형식
sleep [OPTION] <sec>옵션
-h, --help도움말을 표시합니다.
사용 예시
/work > sleep 5tail
파일의 마지막 부분을 출력합니다.
-f 옵션을 사용하면 파일에 추가되는 새 내용을 실시간으로 이어서 출력합니다.
tail [OPTION]... <file>옵션
-n, --lines <N>마지막 N줄을 출력합니다. 기본값은10입니다.-f, --follow파일에 추가되는 새 내용을 계속 출력합니다.SIGINT또는SIGTERM을 받으면 종료합니다.-h, --help도움말을 표시합니다.
사용 예시
/work > tail app.log
/work > tail -n 20 app.log
/work > tail -f app.log
### viz
시각화 스펙(vizspec, ADVN)을 조회하고, 검증하고, 파일로 내보냅니다.
JSH 또는 Machbase Neo workflow에서 생성한 renderer-neutral 분석 결과를 다루는 사용자용 명령입니다.
<h6>사용 형식</h6>
```sh
viz <command> [options] <file>서브커맨드
viz view [options] <file>vizspec을 TUI block 형태로 렌더링합니다.viz validate <file>vizspec 파일을 검증합니다.viz export [options] <file>vizspec을 SVG로 내보냅니다.
`view` 옵션
--compactseries summary와 raw data table을 숨깁니다.--rows <n>block마다 상세 row 수를 제한합니다.--width <n>sparkline, bar, timeline의 폭을 지정합니다.--verbose-metablock metadata를 표시합니다.- pretty-table 옵션도 함께 사용할 수 있습니다.
`export` 옵션
--format svgexport format입니다. 현재는svg만 지원합니다.-o, --output <file>표준 출력 대신 파일로 SVG를 저장합니다.--width <n>SVG 너비를 픽셀 단위로 지정합니다.--height <n>SVG 높이를 픽셀 단위로 지정합니다.--padding <n>바깥쪽 SVG padding을 픽셀 단위로 지정합니다.--title <text>SVG title을 지정합니다.--background <color>SVG background 색상을 지정합니다.--font-family <name>SVG font family를 지정합니다.--font-size <n>기본 SVG font size를 픽셀 단위로 지정합니다.--hide-legendlegend 렌더링을 숨깁니다.
사용 예시
/work > viz validate sensor-overview.json
/work > viz view --width 80 sensor-overview.json
/work > viz export --title "CPU Overview" --output cpu.svg sensor-overview.jsonwc
파일별 줄 수, 단어 수, 바이트 수, 문자 수를 계산합니다.
파일을 생략하거나 -를 지정하면 표준 입력을 읽습니다.
사용 형식
wc [OPTION]... [FILE]...옵션
-l, --lines줄 수를 출력합니다.-w, --words단어 수를 출력합니다.-c, --bytes바이트 수를 출력합니다.-m, --chars문자 수를 출력합니다.-h, --help도움말을 표시합니다.
옵션을 지정하지 않으면 기본적으로 줄 수, 단어 수, 바이트 수를 출력합니다.
사용 예시
/work > wc notes.txt
/work > wc -l *.log
/work > cat notes.txt | wc -w -which
지정한 명령이 JSH 명령 경로에서 어디에 있는지 출력합니다.
사용 형식
which <command>명령을 찾지 못하면 에러를 출력하고 non-zero 상태를 반환합니다.
사용 예시
/work > which ls
/sbin/ls.jsMessaging Commands
mqtt_pub
MQTT broker에 메시지를 publish합니다.
사용 형식
mqtt_pub [OPTION]...옵션
-t, --topicpublish할 topic입니다.-b, --brokerbroker 주소입니다. 기본값은tcp://localhost:5653입니다.-m, --message직접 지정한 메시지 payload입니다.-f, --filepayload를 읽을 파일입니다.-q, --qosMQTT QoS 레벨입니다.0,1,2를 지원합니다.-d, --debug디버그 로그를 출력합니다.-h, --help도움말을 표시합니다.
-m과 -f는 함께 사용할 수 없습니다.
사용 예시
/work > mqtt_pub -t sensors/temp -m '{"value":21.5}'
/work > mqtt_pub -b tcp://broker:1883 -t logs/app -f payload.json -q 1nats_pub
NATS subject에 메시지를 publish합니다. reply subject를 지정하거나 request 모드로 단일 응답을 기다릴 수 있습니다.
사용 형식
nats_pub [OPTION]...옵션
-t, --topicpublish 대상 subject입니다.-s, --subject--topic과 동일한 의미의 별칭입니다.-b, --brokerbroker 주소입니다. 기본값은nats://localhost:4222입니다.-m, --message직접 지정한 메시지 payload입니다.-f, --filepayload를 읽을 파일입니다.-r, --reply응답을 기다릴 reply subject입니다.--request임시 inbox subject를 생성해 응답 하나를 기다립니다.--timeout연결과 응답 대기 타임아웃입니다. 기본값은10000ms입니다.-d, --debug디버그 로그를 출력합니다.-h, --help도움말을 표시합니다.
-m과 -f는 함께 사용할 수 없습니다.
사용 예시
/work > nats_pub -t events.demo -m 'hello'
/work > nats_pub -s rpc.echo -m 'ping' --request
/work > nats_pub -s rpc.echo -m 'ping' -r reply.demo --timeout 3000Interactive Commands
repl
JSH JavaScript REPL을 시작합니다. 명령형 shell이 아니라 JavaScript 표현식을 직접 실행하는 대화형 환경입니다.
사용 형식
replshell
새 JSH shell 세션을 시작합니다. 현재 환경을 기반으로 별도 shell 루프를 실행할 때 사용합니다.
사용 형식
shell