명령어 레퍼런스
이 페이지는 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 PWDsetenv
현재 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...]Text And Utility Commands
echo
인자를 공백으로 구분해 출력하고 마지막에 줄바꿈을 붙입니다.
사용 형식
echo [ARG]...현재 구현은 -n 같은 shell 스타일 플래그나 escape 시퀀스 해석을 지원하지 않습니다.
사용 예시
/work > echo hello world
hello worldsleep
지정한 초 수만큼 대기한 뒤 종료합니다.
사용 형식
sleep [OPTION] <sec>옵션
-h, --help도움말을 표시합니다.
사용 예시
/work > sleep 5wc
파일별 줄 수, 단어 수, 바이트 수, 문자 수를 계산합니다.
파일을 생략하거나 -를 지정하면 표준 입력을 읽습니다.
사용 형식
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