명령 셸 비교

Comparison of command shells
많은 GNU/Linux 시스템의 기본 셸인 Bash.

명령 셸은 컴퓨터의 운영 체제와 상호 작용하고 조작하기 위한 명령줄 인터페이스입니다.

일반적인 특징

껍데기 통상적인 환경 보통 호출됨 소개했다 플랫폼에 의존하지 않는 기본 로그인 셸 기본 스크립트 셸 면허증. 소스 코드 가용성 사용자 인터페이스 마우스 지원 Unicode 지원 ISO 8601 지원 콘솔 리다이렉트 개울. 리다이렉트 설정 가능성 기동/셧다운 스크립트 배치 스크립트 로깅 정적으로 연결된 독립된 단일 파일 실행 파일로 사용 가능
톰슨 셸 UNIX 1971 UNIX UNIX 네. 텍스트 기반의 CLI 아니요. 아니요. 네.
셸 1977 버전 제7판 UNIX 1977 네, 그렇습니다[1]. 제7판 UNIX 제7판 UNIX, 독자[2] 사양 네. 텍스트 기반의 CLI 아니요. 아니요. 네. 있음(임의 fds[citation needed]) ○(변수 및 옵션 사용) ○(.profile) 있음(유니클 기능) 아니요. 네.
Bourne 쉘의 현재 버전 각종 UNIX 1977 네, 그렇습니다[3]. SunOS-5.x, FreeBSD(루트 사용자 이외)[4] SunOS-5.x CDDL[5][더 나은 소스 필요] 네. 텍스트 기반의 CLI 아니요. 네, 그렇습니다[nb 1][better source needed]. 네. 있음(임의 fds[citation needed]) ○(변수 및 옵션 사용) ○(.profile) 있음(유니클 기능) 네, 그렇습니다[nb 2]. 네.
POSIX[6] POSIX 1992년[7] POSIX 텍스트 기반의 CLI 아니요. ○(설정된 로케일에서 사용되는 경우) 네. 있음(임의 fds[citation needed]) ○(변수 및 옵션 사용) 지정되지 않음(.프로파일이 예시로 제공됨) 있음(유니클 기능) 네.
bash(v4) POSIX bash, sh 1989년[8] 네. GNU, Linux(루트의 디폴트), macOS 10.3~10.14 GNU, Linux, Haiku, macOS 10.3~10.14 GPL 네. 텍스트 기반의 CLI 아니요. 네, 그렇습니다[9][better source needed]. 있음(프린트 기능 내장) 네. 있음(임의 fds[citation needed]) ○(변수 및 옵션 사용) ○(/etc/profile, .bash_profile, .bash_login, .profile, .bashrc) 있음(유니클 기능) 네. 네.
csh POSIX csh 1978 네. SunOS ? BSD 네. 텍스트 기반의 CLI 아니요. 아니요. ? 네. 있음(stdin, stdout, stdout+stderr) ○(변수 및 옵션 사용) ○(~/.cshrc, ~/.login, ~/.logout) 있음(유니클 기능) 네. 네.
tcsh POSIX tcsh, csh 1983년[10] 네. FreeBSD(루트의 경우 기본값), 이전 Mac OS X ? BSD 네. 텍스트 기반의 CLI 아니요. 네. ? 네. 있음(stdin, stdout, stdout+stderr) ○(변수 및 옵션 사용) ○(/etc/csh.cshrc, /etc/csh.login, ~/.tcshrc, ~/.cshrc, ~/.history, ~/.login, ~/.cshdirs) 있음(유니클 기능) 네. 네.
해밀턴 C 셸 Win32, OS/2 csh 1988년[11] 있음(OS/2 버전은 유지 보수되지 않음) 선택적. 선택적. 독자 사양 아니요. 텍스트 기반의 CLI 아니요. 아니요. ○(-t 타임스탬프 연산자) 네. 있음(stdin, stdout, stdout+stderr) ○(변수 및 옵션 사용) ○(login.csh, startup.csh 및 logout.csh 경유) 있음(명령줄 옵션) 네. 네.
스시 POSIX scsh 1994 네. ? ? BSD 스타일의 네. ? ? ? ? ? 네. ? ? ? ? 네.
ksh(ksh93t+) POSIX ksh 1983년[12][13] 네. AIX, HP-UX 오픈솔라리스 공통 공중 사용 허가서 네. 텍스트 기반의 CLI 아니요. 네. 있음(%(%F)인쇄가 내장되어 있음)T[14]) 네. 있음(fds 최대 9)[14] ○(변수 및 옵션 사용) ○(시스템과 사용자의 프로파일kshrc) 있음(유니클 기능) 네. 네.
pdksh POSIX ksh, sh 1989? 네. 오픈BSD[15] 오픈BSD[15] 퍼블릭 도메인 네. 텍스트 기반의 CLI 아니요. 아니요. 네. 있음(임의 fds[citation needed]) ○(변수 및 옵션 사용) ○(/etc/profile, .profile) 있음(유니클 기능) 네. 네.
zsh POSIX zsh 1990 네. Deepin, GoboLinux, Grml, macOS 10.15+, Kali 2020.4+ Grml, macOS 10.15 이상 MIT 스타일의 네. 텍스트 기반의 CLI 추가[16] 코드를 통해 네. 네(%F strftime[17] 형식과 fc[18] 빌트인의 -i 옵션을 사용하여 날짜와 관련된 다양한 내부 기능 사용) 네. 있음(fds 최대 9)[19] ○(변수, 옵션, 기능, 스타일 등을 통해) ○(시스템 및 사용자의 zshenv, zprofile, zshrc, zlogin, zlogout) 있음(유니클 기능) 네. 네.
POSIX 1989 네. Minix, BusyBox 기반 시스템 NetBSD, Minix, BusyBox 기반 시스템 BSD 스타일의 네. 텍스트 기반의 CLI 아니요. 부분(BusyBox용, 명령줄 편집에서는 지원되지만 문자열[20] 처리에서는 지원되지 않음) 네. 있음(임의 fds[citation needed]) ○(변수 및 옵션 사용) ○(/etc/profile, .profile) 있음(유니클 기능) 네. 네.
CCP CP/M, MP/M (CCP) 1976 (1974) 아니요. CP/M(로그인 없음), MP/M CP/M, MP/M 프리웨어(원래는 독자 사양) 있음(원래 클로즈드 소스) 텍스트 기반의 CLI 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. ○($를 통해 자동)서브) 부분적($$를 업데이트하기 위한 외부 제출 명령을 통해서만 가능)서브) 아니요. 네.
명령어COM DOS 명령어 1980 아니요(서드파티제의 실장은 특정 DOS 벤더 또는 버전에 한정되지 않습니다) DOS, Windows 95, 98, SE, ME DOS, Windows 95, 98, SE, ME 벤더 고유, 예를 들어 MS-EULA [nb 3]또는 BSD/GPL(프리 클론) 아니요(OpenDOS, DR-DOS, PTS/DOS 및 FreeDOS 제외) 텍스트 기반의 CLI 아니요. 아니요. 아니요(DR-DOS 제외) 있음(COMMAND con: 또는 CTTY con: 경유) 있음(stdin, stdout) 있음(기동 파라미터 및 환경변수를 통해 DR-DOS는 DIR/C/R user-default switch 명령도 지원합니다) 있음(자동 \AUTOEXEC).프라이머리 셸의 BAT 또는 명시적으로 /P, /P:filename을 사용합니다.bat 또는 /K 부팅 옵션) 있음(CALL 명령 또는 /C 및 /K 시작 옵션 사용) 아니요. 네.
OS/2 CMDEXE OS/2, eComStation, ArcaOS CMD 1987 아니요. OS/2, eComStation, ArcaOS OS/2, eComStation, ArcaOS IBM-EULA[nb 4] 아니요. 텍스트 기반의 CLI 아니요. 아니요. 아니요. 아니요. 있음(stdin, stdout, stderr) ? 부분(/K 시작 옵션을 통해서만) 있음(CALL 명령 또는 /C 및 /K 시작 옵션 사용) 아니요. 네.
Windows CMD.EXE[nb 5] Win32 CMD 1993 아니요. Windows NT, 2000, XP, Server 2003, Vista Windows NT, 2000, XP, Server 2003, Vista MS-EULA[nb 6] 아니요. 텍스트 기반의 CLI 아니요. 부분(CHCP 65001 for UTF-8, 단 프로그램인수는 로컬코드페이지로 부호화되어 있습니다) 아니요. 아니요. 네. ○(레지스트리, 스타트업 파라미터 및 환경변수 사용) ○(레지스트리 또는 /K 부팅 옵션을 통해 자동 실행) 있음(CALL 명령 또는 /C 및 /K 시작 옵션 사용) 아니요. 네.
4DOS, NDOS DOS, Windows 95, 98, SE, ME 4DOS, NDOS 1989 (1986) 없음(특정 OS 벤더 또는 버전에 얽매이지 않음) 선택적. 선택적. MIT 라이선스(제한 있음) 네. TUI 확장이 있는 텍스트 기반 CLI 있음(팝업, 도움말 시스템, %_MOUSE 내부 변수, INKEY/M 명령) 아니요. 네. ○ (CTTY con: (DRAWBOX, DRAWLINE, DRAWVLINE, LIST, SCRPUT, SELECT, VSCRPUT 명령 및 파일/디렉토리 색상은 제외) 있음(stdin, stdout, stderr, stdout+stderr) 네(4DOS 경유)INI/NDOSINI 파일, 스타트업 파라미터, 환경변수, SETDOS 명령어) 있음(자동 \AUTOEXEC).프라이머리 셸 및 4START용 BATBTM/4START.BAT와 4EXIT.BTM/4EXIT.임의의 셸에 대한 BAT 또는 명시적으로 /P, /P:dir\filename을 사용합니다.ext 또는 /K 부팅 옵션) 있음(CALL 명령 또는 /C 및 /K 시작 옵션 사용) 네. 네.
4OS2 OS/2, eComStation, ArcaOS 4OS2 1992 없음(특정 OS/2 버전에 한정되지 않음) 옵션(단, ArcaOS에 번들) 선택적. 프리웨어 네. 텍스트 기반의 CLI 아니요. 아니요. 아니요. 아니요. 있음(stdin, stdout, stderr, stdout+stderr) 네(4OS2 경유)INI 파일, 스타트업 파라미터, 환경변수, SETDOS 명령어) 있음(4START를 통해 자동).CMD/4START.BTM 및 4EXIT.CMD/4EXITBTM 파일 또는 /K startup.cmd 옵션을 통한 명시적) 있음(CALL 명령 또는 /C 및 /K 시작 옵션 사용) 네. ?
TCC(구 4NT) Win32 TCC 1993 아니요(특정 NT 버전에 바인딩되지 않음) 선택적. 선택적. 셰어웨어 아니요. 텍스트 기반 CLI(Take Command: GUI) ○(콘솔 마우스, 팝업, 도움말 시스템, %_XMOUSE, %_YMOUSE 내부 변수, INKEY/M 명령) 네. 네. 아니요. 있음(stdin, stdout, stderr, stdout+stderr) 네(레지스트리, TCMD 경유).INI/4NTINI 파일, 스타트업 파라미터, 환경변수, SETDOS 명령어) ○(레지스트리 TCEXIT/4STARTTCEXIT/4EXIT를 통해 자동 실행 또는 /K 부팅 옵션을 통해 명시적으로 실행) 있음(CALL 명령 또는 /C 및 /K 시작 옵션 사용) 네. 아니요.
VMS DCL[21] 오픈VMS 로그인/인터랙티브 프로세스 자동 실행 1977? 네. VMS VMS 독자 사양, VMS에 번들 특별 면허에 의해서만 텍스트 기반의 CLI DECwindows/Motif 사용 네. 네, 적어도 1988년 기준까지는요 네. ○(sys$input, sys$output 할당) 있음(기호, 논리명 및 옵션 사용) 있음(SYS$MANAGER:시스템 로그인COM 및 사용자 정의 LOGIN.commodore). 네. 네. 아니요.
PowerShell .NET,
.NET 프레임워크
PowerShell 2006 네. Windows 10, 8, Server 2008, 7[nb 7] Windows 10, 8, Server 2008, 7 MIT 스타일의 네. 그래피컬 CLI 네. 네. 네. 네. 네. ○(변수 및 옵션 사용) ○ (%USER PROFILE%\)문서 \Windows PowerShell\Microsoft.PowerShell_profile.ps1) 있음(PowerShell 기능) 네. 아니요.
rc 플랜 9, POSIX rc 1989 네. Plan 9, 버전 10 Unix Plan 9, 버전 10 Unix MIT 라이선스[22] ? ? ? 네. ? ? 네. ? ? ? ? 네.
빈셸 자바 ? 2005 네. ? ? LGPL ? ? ? 네. ? ? 네. ? ? ? ? 아니요.
물고기. POSIX 물고기. 2005년[23] 네. GhostBSD ? GPL 네. 텍스트 기반의 CLI ? 네. ? ? 있음(임의 fds[citation needed]) 있음(환경변수 및 fish_config를 통한 웹 인터페이스 사용) ○(/etc/fish/config).fish~.config/fish/config.fish) 있음(유니클 기능) ○(~/.config/fish/fish_history*) ?
이온 Redox, Linux 이온 2015년[24] 네. 레독스 레독스 MIT 네. 텍스트 기반의 CLI ? 네. 네. ? 있음(임의 fds[citation needed]) ○(XDG Base Directory 사양에 따름) ○(~/.config/ion/initrc) 네. 있음(~/.local/share/ion/history) 부분(스탠드 아론 실행 파일로 배포되지는 않지만 하나의 파일로 빌드할 수 있음)
껍데기 통상적인 환경 보통 호출됨 소개했다 플랫폼에 의존하지 않는 기본 로그인 셸 기본 스크립트 셸 면허증. 소스 코드 가용성 사용자 인터페이스 마우스 지원 Unicode 지원 ISO 8601 지원 콘솔 리다이렉트 개울. 리다이렉트 설정 가능성 기동/셧다운 스크립트 배치 스크립트 로깅 정적으로 연결된 독립된 단일 파일 실행 파일로 사용 가능

인터랙티브 기능

껍데기 명령어
이름.
완료.
경로.
완료.
명령어
논쟁
완료.
와일드카드
완료.
명령어
역사
의무적인
논쟁
신속한
자동의
제안들
유색
디렉토리
리스트
본문
하이라이트
구문
하이라이트
디렉토리 이력, 스택 또는 유사한 기능 암묵적
디렉토리
바꾸다
자동 수정 통합된
환경
단편 가치
신속한
메뉴/옵션
신속한
진보.
표시기
맥락
예민한
도와 주세요.
명령어
빌더
톰슨 셸 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. ? ? 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요.
셸 1977 버전 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. ? ? 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 네. 아니요. 외부의 아니요. 아니요.
Bourne 쉘의 현재 버전 아니요. 네, 그렇습니다[nb 8]. 아니요. 아니요. 네, 그렇습니다[nb 8]. 아니요. 아니요. 네. 네. 아니요. ○(CDPATH, pushd, popd, dirs), SVR4 이후 CDPATH 아니요. 아니요. 아니요. 아니요. 네. 아니요. 외부의 아니요. 아니요.
POSIX 아니요. 아니요. 아니요. 아니요. 네. 아니요. 아니요. 네. 네. 아니요. 있음(CDPATH) 아니요. 아니요. 아니요. 아니요. 네. 아니요. 외부의 아니요. 아니요.
bash(v4.0) 네. 네. 정의하면 네, 그렇습니다[nb 9]. 네. 아니요. 아니요. 네. 네. 아니요. 있음(CDPATH, pushd, popd) 선택적. 아니요. 아니요. 아니요. 네. 네. 외부의 아니요. 아니요.
csh 네. 네. 아니요. 아니요. 네. 아니요. 아니요. 네. 네. 아니요. 있음(cdpath, pushd, popd) 선택적. 아니요. 아니요. 아니요. 네. 아니요. 외부의 아니요. 아니요.
tcsh 네. 네. 정의하면 아니요. 네. 아니요. 아니요. 네. 네. 아니요. 있음(cdpath, pushd, popd) 선택적. 네. 아니요. 아니요. 네. 아니요. 외부의 아니요. 아니요.
해밀턴 C 셸 네. 네. 아니요. 네. 네. 아니요. 아니요. 네. 네. 아니요. 있음(cdpath, pushd, popd) 아니요. 아니요. 아니요. 아니요. 네. 아니요. 외부의 아니요. 아니요.
스시 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. ? ? 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 네. 아니요. 외부의 아니요. 아니요.
ksh(ksh93t+) 있음(확장 가능) 있음(확장 가능) 아니요. 아니요. 네. 아니요. 아니요. 네. 네. 아니요. 있음(cdpath builtin, pushd, popd가 함수로 구현됨) 아니요. 아니요. 아니요. 아니요. 네. 네. 외부의 아니요. 아니요.
pdksh 네. 네. 아니요. 아니요. 네. 아니요. 아니요. 네. 네. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 네. 네. 외부의 아니요. 아니요.
zsh 네. 네. 정의하면 네, 그렇습니다[25]. 네. 네, 그렇습니다[26]. 있음(predict-on 또는 사용자[27] 정의 사용) 네. 네. 서드파티[28] 내선번호 네. 선택적. 네. 아니요. 정의된 경우(ZLE 위젯으로) 네. 네. 외부의 네. 아니요.
아니요. 아니요. 아니요. 아니요. 네. 아니요. 아니요. 네. 네. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 네. 네. 외부의 아니요. 아니요.
CCP 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요.
명령어COM 아니요. 아니요. 아니요. 아니요. 아니요[nb 10][nb 11]. 아니요. 아니요. 아니요. 아니요(DR-DOS에서만 %$까지)ON%, %$OFF%, %$HEADER%, %$FOOTER%) 아니요. 아니요. 아니요. 아니요. 아니요(COMMAND /Y를[29] 사용한 싱글 스텝만 해당) 아니요. 아니요. 아니요(외부 CHOCE 명령어, DR-DOS에서는 SWITCH/DSWITCH 내부 명령어 사용만 가능) 아니요. 아니요. 아니요.
OS/2
CMD.EXE
네. 네. 아니요. 아니요. 네. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요.
창문들
CMD.EXE
부분적인 부분적인 아니요. 아니요. 네 (F8) 아니요. 아니요. 아니요. 아니요. 아니요. 있음(PUSHD, POPD) 아니요. 아니요. 아니요. 아니요. 있음(SET/P 명령어 사용) 아니요. 아니요. 아니요. 아니요.
4DOS 네. 네. 네. 네. 네, 그렇습니다[nb 12][nb 13]. 아니요. 아니요. 네. 아니요. 아니요. (팝업, 확장 디렉토리 검색, CDPATH, PUSHD, POPD, DIRSTOR, DIRS, CD - 명령 및 %@DIRSTAK[] 함수를 통해) 네. 아니요. 네. 아니요. 있음(INPUT, INKEYESET 명령어 사용) ○(@SELECT[] 함수 및 INKEY, INPUT, SWITCH 명령어 조합으로 간접적으로 사용) 아니요. 네. 아니요(INI 파일 디렉티브용 OPTION 명령 제외)
4OS2 ? ? ? ? 네. 아니요. 아니요. 네. 아니요. 아니요. 네. 네. 아니요. ? 아니요. ? ? 아니요. 네. 아니요.
TCC(구 4NT) 네. 네. 네. 네. 네. 아니요. 아니요. 네. 아니요. 네. (팝업, 확장 디렉토리 검색, CDPATH, PUSHD, POPD, DIRSTOR, DIRS, CD - 명령 및 %@DIRSTAK[] 함수를 통해) 네. 아니요. 네. 아니요. 있음(INPUT, INKEY, ESET SET /P 명령 사용) ○(@SELECT[] 함수 및 INKEY,[nb 14] INPUT, SWITCH 명령어 조합으로 간접적으로 사용) 아니요. 네. 아니요.
PowerShell 네. 네. 네. 네. 네 (F8) 네. 있음(PSReadLine[30] 모듈(v5.0에[31] 번들됨) 또는 ISE 사용[32]) 서드파티[33] 내선번호 네, 그렇습니다[34]. 있음(PSReadLine[30] 모듈(v5.0에 번들됨) 또는 ISE 사용[32]) ○(복수의 스택, 복수의 로케이션 타입,[35] 푸시 로케이션, 로케이션) 네, PSReadLine[30] 모듈에서 네, ISE에서는[32] 네, ISE에서는[32] 네. 네, 그렇습니다[36]. 네, 그렇습니다[37]. 네, ISE에서는[32] 팝업창[38] 네, ISE에서는[32]
rc 네, 그렇습니다[nb 15]. 네, 그렇습니다[nb 15]. 아니요. 아니요. 네, 그렇습니다[nb 15]. 아니요. 아니요. ? ? 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. ? 아니요. 아니요. 아니요. 아니요.
빈셸 네. 네. 아니요. 아니요. 아니요. 아니요. 아니요. ? ? 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요.
VMS DCL 최소 고유성 스킴 아니요. 아니요. 아니요. 네. 네. 아니요. ? ? 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 네. 아니요. 아니요. 아니요. 아니요.
물고기. 네. 네. man[39] 페이지에서 정의되거나 구문 분석할 수 있는 경우 네, 그렇습니다[39]. 네. 아니요. 네. 네. 있음(내장 도우미[40] 이용 가능) 네. 네. 네. 네. 네, 그렇습니다[nb 16]. 예, abbr 명령어 사용 네. (fish_config[41] 명령어 사용) 아니요. 아니요. 아니요.
껍데기 명령어
이름.
완료.
경로.
완료.
명령어
논쟁
완료.
와일드카드
완료.
명령어
역사
의무적인
논쟁
신속한
자동의
제안들
유색
디렉토리
리스트
본문
하이라이트
구문
하이라이트
디렉토리 이력, 스택 또는 유사한 기능 암묵적
디렉토리
바꾸다
자동 수정 통합된
환경
단편 가치
신속한
메뉴/옵션
신속한
진보.
표시기
맥락
예민한
도와 주세요.
명령어
빌더

백그라운드 실행

백그라운드 실행을 사용하면 셸이 백그라운드에서 명령을 실행할 수 있습니다.POSIX 쉘 및 기타 Unix 쉘은 명령어 끝에 & 문자를 사용하여 백그라운드에서 실행할 수 있으며 PowerShell에서는 를 사용할 수 있습니다.Start-Process또는Start-Job명령어를 지정합니다.

완료

Bash에서의 명령줄 완료.

완료 기능은 사용자가 명령줄에서 명령어를 입력할 때 불완전한 단어와 일치하는 단어를 찾아 제안함으로써 도움이 됩니다.일반적으로 완료 키를 누르면 완료가 요청됩니다.Tab ↹ 키)

명령어 이름 완료는 명령어 이름의 완료입니다.대부분의 셸에서 명령어는 명령 경로의 프로그램일 수 있습니다(일반적으로$PATH내장 명령어, 함수 또는 에일리어스.

경로 완료는 상대 또는 절대 파일에 대한 경로의 완료입니다.

와일드카드 완료파일 조회에 지원되는 구문을 사용하여 식이 임의의 개수의 파일에 일치시키는 경로 완료의 일반화입니다.

변수 완료는 변수 이름(환경 변수 또는 셸 변수)의 이름을 완성하는 것입니다.Bash, zsh 및 fish는 모든 변수 이름에 대해 완성됩니다.PowerShell에는 환경변수명, 셸변수명 및 사용자 정의 함수 내에서 파라미터명이 완성되어 있습니다.

명령어 인수 complete는 특정 명령어 인수의 완료입니다.인수에는 named와 positional의 가지 유형이 있습니다.종종 옵션이라고 불리는 명명된 인수는 이름 또는 값 앞에 있는 문자로 식별되는 반면 위치 인수는 값으로만 구성됩니다.일부 셸에서는 인수 이름을 완료할 수 있지만 값 완료를 지원하는 셸은 거의 없습니다.

Bash, zsh 및 fish offer 매개 변수 이름 완성은 별도의 완료 정의 파일에 배포된 명령 외부 정의를 통해 완료되었습니다.명령어 파라미터 이름/값 완료의 경우 명령어 완료가 정의되지 않은 경우 이들 셸은 경로/파일명 완료로 간주합니다.[42]함수를 호출하여 완료를 제안하도록 완료를 설정할 수 있습니다.피쉬 셸은 또한 man page의 해석을 지원하여 완료/제안을 개선하는 데 사용할 수 있는 매개 변수 정보를 추출합니다.PowerShell에서는 모든 유형의 명령어(cmdlets, 함수, 스크립트 파일)에 의해 각 인수의 이름, 유형 및 유효한 값 범위/목록에 대한 데이터가 기본적으로 노출됩니다.이 메타데이터는 PowerShell에서 스크립트 파일뿐만 아니라 내장된 명령/함수, 사용자 정의 명령/함수 및 인수 이름과 값 완료를 자동으로 지원하기 위해 사용됩니다.개별 cmdlet은 실행 중인 시스템에서 완료 값이 동적으로 계산되는 인수 값의 동적 완료를 정의할 수도 있습니다.

명령어 이력

셸 사용자는 사용자가 이전에 입력한 것과 유사한 내용을 입력하고 있는 것을 발견할 수 있습니다.셸이 명령어 이력을 지원하는 경우 사용자는 이전 명령을 라인 에디터로 호출하여 편집한 후 다시 실행할 수 있습니다.

또한 완료를 지원하는 셸은 이전 명령어의 일부/초기 부분에서 명령어 이력에서 직접 명령어를 완료할 수도 있습니다.

대부분의 최신 셸은 명령어 이력을 지원합니다.일반적으로 명령어 이력을 지원하는 셸은 명령어를 이력에서 호출하는 것이 아니라 이력에서 완료를 지원합니다.일반 명령 텍스트 외에도 PowerShell은 명령 기록에 실행 시작 및 종료 시간과 실행 상태도 기록합니다.

필수 인수 프롬프트

필수 인수/파라미터는 명령어, 함수 또는 스크립트파일을 호출할 때 값을 할당해야 하는 인수/파라미터입니다.호출 전에 필수값이 없음을 판별할 수 있는 셸은 명령어가 실패하는 대신 이러한 값을 입력하도록 요구함으로써 대화형 사용자를 지원할 수 있습니다.결측치에 대한 셸 프롬프트를 사용하면 스크립트, 명령어 또는 함수 작성자는 (인터랙티브하게 실행되고 있다고 판단한 후) 결측값을 요구하거나 메시지에서 실패하는 스크립트코드를 작성하는 대신 파라미터를 필수로서 마크할 수 있습니다.

PowerShell을 사용하면 명령, 함수 및 스크립트에서 인수/파라미터를 필수로 정의할 수 있습니다.셸은 호출 전에 바인드되지 않은 필수 인수/파라미터가 있는지 여부를 판별하고 실제 호출 전에 값을 입력하도록 사용자에게 요구합니다.[43]

자동 제안

PowerShell 명령줄 완료

자동 제안 기능이 있는 셸은 사용자 유형에 따라 선택적 명령줄 완료를 표시합니다.PowerShell 피쉬 쉘은 기본적으로 이 기능을 지원합니다.키를 누르면 완료가 삽입됩니다.

이 기능의 구현은 셸마다 다를 수 있습니다.예를[44] 들어 PowerShell과 zsh[45] 외부 모듈을 사용하여 완료를 제공하고 fish는 사용자의 명령 [46]기록에서 완료를 가져옵니다.

디렉토리 이력, 스택 또는 유사한 기능

셸은 사용자가 있었던 디렉토리의 이력을 기록할 수 있으며 기록된 모든 위치로 빠르게 전환할 수 있습니다.이것을 「디렉토리 스택」이라고 부릅니다.이 개념은 1978년[47] C 쉘(csh) 출시에서 실현되었습니다.

PowerShell에서는 여러 개의 이름 있는 스택을 사용할 수 있습니다.위치(디렉토리)는 현재 스택 또는 이름 있는 스택에 푸시/팝할 수 있습니다.임의의 스택이 현재(디폴트) 스택이 될 수 있습니다.대부분의 다른 셸과 달리 PowerShell의 로케이션 컨셉에서는 로케이션 스택이 파일 시스템 로케이션 및 기타 로케이션 타입을 유지할 수 있습니다.Active Directory 조직 단위/그룹, SQL Server 데이터베이스/테이블/오브젝트, 인터넷 정보 서버 애플리케이션/사이트/가상 디렉토리.

명령줄 인터프리터 4DOS와 그 그래픽 후계기 Take Command Console에도 디렉토리 스택이 있습니다.

암시적인 디렉토리 변경

디렉토리명은, 현재의 위치를 디렉토리로 암묵적으로 변경하는 커맨드로 직접 사용할 수 있습니다.

이는 Concurrent DOS, Multiuser DOS, System Manager 및 REAL/32에서 지원되는 관련 없는 로드 드라이브 기능과 구별되어야 합니다.이 경우 드라이브 문자 L:은 로드된 애플리케이션의 로드 경로를 가리키도록 암묵적으로 업데이트되므로 응용 프로그램은 표준화된 드라이브 아래의 로드 디렉토리에 있는 파일을 참조할 수 있습니다.절대 [48]경로 대신 tter를 사용합니다.

자동 보정

명령줄에서 명령 또는 인수가 직접 일치하지 않는 경우 철자 검사를 통해 일반적인 입력 오류(대문자와 소문자의 구분, 문자 누락 등)를 자동으로 수정할 수 있습니다.여기에는 두 가지 방법이 있습니다. 셸은 명령 호출 시 수정 가능성을 제안하거나 완료 또는 자동 제안의 일부로 더 일찍 발생할 수 있습니다.

tcshzsh 쉘은 명령 호출 시 옵션 맞춤법 검사/수정 기능을 제공합니다.

생선은 완성과 암시가 있을 때 자가보정을 한다.따라서 이 기능은 명령어 전체를 입력하고 Enter 키를 누를 때 방해가 되지 않지만 탭 키와 오른쪽 화살표 키를 많이 사용하면 대부분 셸에서 대소문자를 구분하지 않습니다.

PSReadLine[30] PowerShell 모듈(버전 5.0에 부속)에는 명령어를 송신하기 전에 실행할 CommandValidationHandler ScriptBlock을 지정하는 옵션이 있습니다.이를 통해 일반적으로 잘못 입력되는 명령어를 커스텀으로 수정하고 실제로 명령을 실행하기 전에 확인할 수 있습니다.

진행률 표시기

셸 스크립트(또는 작업)는 장시간 실행 중인 태스크의 진행 상황을 대화형 사용자에게 보고할 수 있습니다.

Unix/Linux 시스템은 스크립트 진행률 표시기를 사용하거나 프로그램 "pv"[49]와 같은 독립 실행형 명령어로 다른 도구를 지원합니다.그러나 이것들은 셸의 통합된 기능은 아닙니다.

PowerShell에는 프로그레스 바를 작성/업데이트하기 위한 명령어와 API 기능(명령어를 작성할 때 사용)이 내장되어 있습니다.프로그레스바 메시지는 일반 명령어 출력과는 별도로 발송되며 프로그레스바는 프로그레스 메시지가 대화형 스크립트, 백그라운드 작업 또는 리모트세션에서 발신되었는지 여부에 관계없이 항상 궁극의 인터랙티브 사용자 콘솔에 표시됩니다.

인터랙티브 테이블

명령어 실행으로부터의 출력은 명령어 실행 종료 후에 인터랙티브하게 정렬, 필터링 및/또는 조작할 수 있는 테이블/그리드 내에 표시할 수 있다.

PowerShell Out-GridView cmdlet은 인터랙티브한 정렬 및 필터링 기능을 갖춘 인터랙티브 창에 데이터를 표시합니다.

색칠된 디렉토리 목록

JP 소프트웨어의 명령줄 프로세서는 옵션으로 정의된 %COLORDIR% 환경변수를 통해 파일 확장자 및/또는 속성에 따라 디렉토리 목록에 있는 파일 및 디렉토리 이름을 사용자가 구성할 수 있는 색칠을 제공합니다.

Unix/Linux 쉘의 경우 이는 ls 명령어와 단말기의 기능입니다.

텍스트 강조 표시

DOS Plus, Multiuser DOS, REAL/32 및 모든 버전의 DR-DOS의 명령줄 프로세서는 이스케이프 시퀀스를 정의하기 위해 다수의 옵션 환경변수를 지원합니다.이것에 의해, 텍스트의 하이라이트, 반전, 색칠을 TYPE등의 커맨드로 제어할 수 있습니다.언급된 모든 명령줄 프로세서가 %$를 지원합니다.ON%%$OFF%정의되어 있는 경우, 이러한 시퀀스는 파일명의 전후에 출력됩니다.%$의 일반적인 시퀀스ON%는 ANSI와 함께 \033[1m]가 됩니다.SYS, ASCII 단말기의 경우 \033p, IBM 또는 ESC/P 프린터의 경우 \016.마찬가지로 %$의 일반적인 시퀀스OFF%는 각각 \033[0m, \033q, \024]입니다.변수 %$HEADER%%$FOOTER%는 COMMAND에서만 지원됩니다.DR-DOS 7.02 이상에서는 텍스트 강조 표시, 페이지 번호 매기기 또는 기타 포맷 옵션을 제어하기 위해 텍스트 블록 전후에 출력되는 시퀀스를 정의합니다.

Unix/Linux 쉘의 경우 터미널의 기능입니다.

구문 강조 표시

독립 프로젝트에서는 구문 강조 표시를 Z Shell(zsh)[50]의 추가 기능으로 제공합니다.단, 이것은 셸의 일부가 아닙니다.

PowerShell은 PSReadLine[30] 모듈을 통해 명령줄에서 구문을 커스터마이즈할 수 있습니다.이 모듈은 PowerShell v3.0+에서 사용할 수 있으며 v5.0에 포함되어 있습니다.또한 v5.0의 명령줄 호스트 "powershell.exe"에 기본적으로 로드됩니다.PowerShell ISE는 명령줄과 스크립트 페인에서도 [51]구문을 강조 표시합니다.Take Command Console(TCC)은 통합 환경에서 구문을 강조 표시합니다.

상황 의존 도움말

4DOS, 4OS2, 4NT / Take Command Console 및 PowerShell(PowerShell ISE의 경우)을 누르면 상황에 맞는 도움말 정보가 검색됩니다.

Zsh는 실행 도움말 위젯의 일부인 _complete_help 명령 또는 일부 명령의 옵션 완료 시 다양한 형태의 상황별 도움말을 제공합니다.

명령어 빌더

명령어 빌더는 사용자가 명령어를 입력할 때 도움이 되는 안내 대화상자입니다.PowerShell에는 PowerShell ISE에서 사용할 수 있는 명령어 빌더가 있거나 [52]Show-Command cmdlet을 통해 별도로 표시할 수 있습니다.

프로그래밍 기능

껍데기 기능들 예외 처리 다양한 서브스크립션 검색 및 치환 산술 부동 소수점 산술 함수 선형 배열 또는 목록 유사 어레이 람다 함수 평가 기능 의사 난수 생성 바이트 코드
셸 1977 버전 아니요. 있음(트랩 경유) 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 네. 아니요. 아니요.
Bourne 쉘의 현재 버전 SVR2 이후부터 있음 있음(트랩 경유) 아니요. 네, 그렇습니다[nb 8]. 아니요. 아니요. 아니요. 아니요. 아니요. 네. 아니요. 아니요.
POSIX 네. 있음(트랩 경유) 아니요. 네. 아니요. 아니요. 아니요. 아니요. 아니요. 네. 아니요. 아니요.
bash(v4.0) 네. 있음(트랩 경유) 있음(${/} 구문 사용) 네. 아니요. 아니요. 네. 네. 아니요. 네. ○($RANDOM) 아니요.
csh 아니요. 아니요. 있음($var:s// 구문 사용) 네. 아니요. 아니요. 네. 아니요. 아니요. 네. 아니요. 아니요.
tcsh 아니요. 아니요. 있음($var:s// 구문 사용) 네. 아니요. 아니요. 네. 아니요. 아니요. 네. 아니요. 아니요.
해밀턴 C 셸 네. 아니요. 있음($var:s// 구문 사용) 네. 네. 네. 네. 아니요. 아니요. 네. 있음(랜덤 유틸리티) 아니요.
스시 네. ? 있음(문자열 함수 및 정규 표현 사용) ? ? ? 네. ? 네. 네. ○(랜덤 정수, 랜덤 리얼) 있음(컴파일러는 Scheme48 가상 머신, scshvm 경유)
ksh(ksh93t+) 네. 있음(트랩 경유) 있음(${/} 구문 및 내장 명령어 사용) 네. 네. 네. 네. 네. 아니요. 네. ○($RANDOM) ○(컴파일러는 shcomp라고 불립니다)
pdksh 네. 있음(트랩 경유) 아니요. 네. 아니요. 아니요. 네. 아니요. 아니요. 네. ○($RANDOM) 아니요.
zsh 네. 네. 있음(${:s//}${//} 구문 사용) 네. 네. 있음(zsh/mathfunc 모듈) 네. 네. 아니요. 네. ○($RANDOM) 있음(내장 zcompile 명령)
네. 있음(트랩 경유) 아니요. 있음(1992년 이후)[53] 아니요. 아니요. 아니요. 아니요. 아니요. 네. 아니요. 아니요.
CCP 아니요. ? 아니요. 아니요. ? ? 아니요. 아니요. 아니요. 아니요. 아니요. 아니요.
명령어COM 아니요. 부분적(자동 장애만 해당)(COMMAND /F(또는 DR-DOS 일부 버전에서는 /N) 사용) 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요.
OS/2 CMDEXE 아니요. 아니요. 아니요. ? 아니요. 아니요. ? 아니요. 아니요. 아니요. 아니요. 아니요.
Windows CMD.EXE 있음(CALL: 라벨 사용) 아니요. ○(SET %varname: 구문 사용) 있음(SET/A [54]경유) 아니요. 아니요. 있음(SET 경유[55]) 아니요. 아니요. 아니요. ○ (%random %) 아니요.
4DOS 네. ○ (ON 명령어 사용, 4DOS/F를 통한 자동 장애 옵션) 있음(%@Replace[...] 함수 사용) 있음(SET/A 경유) ? ? 있음(범위, 포함 목록, @file lists 및 FOR 명령어 사용) 아니요. 아니요. 네. 있음(%@Random[...] 함수) ○(BATCOMP 명령어 사용)
4OS2 ? ? ? ? ? ? ? ? 아니요. 네. 있음(%@Random[...] 함수) ?
TCC(구 4NT) 네. 네(ON 및 다양한 방법으로...)MONITOR 명령어) 있음(%@Replace[...] 함수 사용) 있음(SET/A 경유) ? ? 있음(범위, 포함 목록, @file lists 및 FOR 명령어 사용) ? 아니요. 네. 있음(%@Random[...] 함수) ○(BATCOMP 명령어 사용)
PowerShell 네. ○(Try-Catch-Finally) ○(-치환 연산자) 네. 네. [수학] 수업[56] 네. 네. 네. 네. 네. 네, 자동
rc 네. 네. 아니요. ? ? ? 네. ? 아니요. 네. 아니요. 아니요.
빈셸 네. 네. ? 네. ? ? 네. 네. 아니요. 네. 네. 네.
VMS DCL 네. 네. 아니요. 네. 아니요. 네, 컴파일된 프로그램의 경우 네. 아니요. 아니요. 아니요. 아니요. 아니요.
물고기. 네. 있음(트랩 경유) 네, string builtin[57] 명령어를 통해 네. 네. 네. 네. 아니요. 아니요. 네. ○(랜덤) 아니요.

문자열 처리 및 파일 이름 일치

껍데기 문자열 처리 대체(브레이스 확장) 패턴 매칭(정규식 삽입) 패턴 매칭(파일명 글로벌) 글로벌 한정자(파일 속성에 따른 파일 이름 생성) 재귀적 글로벌화(모든 수준의 하위 디렉토리에서 파일 생성)
셸 1977 버전 ? 아니요. 아니요. ○(*, ?, [...]) 아니요. 아니요.
Bourne 쉘의 최신 버전 부분(변수 확장 시 프리픽스 및 서픽스 스트리핑) 아니요. 아니요. ○(*, ?, [...]) 아니요. 아니요.
POSIX 부분(변수 확장 시 프리픽스 및 서픽스 스트리핑) 아니요. 아니요. ○(*, ?, [...]) 아니요. 아니요.
bash(v4.0) 부분(변수 확장 시 프리픽스 및 서픽스 스트리핑) 네. 네. 예(*, ?, [...]), {...}}) 아니요. (**/...)
csh 있음(:s 및 기타 편집 연산자) 네. 아니요. 네. 아니요. 아니요.
tcsh 있음(:s 및 기타 편집 연산자) 네. 네. 네. 아니요. 아니요.
해밀턴 C 셸 ○ (:s 및 기타 편집 연산자 + 기판, strlen, strindex, printf, 역방향, 상부, 하부, 콘캣 및 기타 빌트인 함수) 네. 아니요. 네. 아니요. 있음(무한 디렉토리 "..." 와일드카드[58] 사용)
스시 ? ? 네. 네. 아니요. 아니요.
ksh(ksh93t+) 부분(변수 확장 시 프리픽스, 서픽스 제거 및 문자열 치환) 네, 그렇습니다[59]. 네. ○(*, ?, [...]) 아니요. 있음(세트 -G의 경우 심볼링크 후속 없음)
pdksh ? 네, 그렇습니다[59]. 아니요. 네. 아니요. 아니요.
zsh 예(변수 처리: 서브스트링 추출, 파라미터 확장을 통한 다양한 변환 등) 네. 네. 예(*, ?, [...], 확장글로빙[60]) 네. (**/...)또는 심볼링크를 팔로우하려면 ***/...)
? ? 아니요. 네. 아니요. 아니요.
CCP 아니요. 아니요. 아니요. 아니요. 아니요. 아니요.
명령어COM 아니요. 아니요. 아니요. 네(*, ?) 아니요. 아니요.
OS/2 CMDEXE 아니요. 아니요. 아니요. 네(*, ?) 부분(DIR/A:... 명령어만 해당) 아니요.
Windows CMD.EXE 부분(FOR/F SET/A를 통해서만 가능) 아니요. 아니요[nb 17]. 네(*, ?) 부분(DIR/A:... 명령어만 해당) ○(FOR 명령 또는 가능한 경우 /S subdir 옵션을 통해 간접적으로 사용 가능)
4DOS 예(변수 함수 %@를 통해...)[ ] , 확장 환경 변수 처리, 다양한 문자열 명령 FOR /F 및 SET /A) 아니요. 아니요. 예(*, ?, [...]), 확장 와일드카드, SELECT 팝업 명령) 예(/A:... 속성 및 /I"...) 설명 옵션과 /[S...] 크기, /[T...] 시간, /[D...] 날짜 및 /[!...] 파일 제외 범위 사용) 있음(FOR /R 명령 또는 GLOBAL 명령 또는 /S subdir 옵션(사용 가능한 경우)을 통해 간접적으로 사용 가능)
4OS2 ? 아니요. 아니요. ? ? ?
TCC(구 4NT) 예(변수 함수 %@를 통해...)[ ] , 확장 환경 변수 처리, 다양한 문자열 명령 FOR /F 및 SET /A) 아니요. 네. 예(*, ?, [...]), 확장 와일드카드, SELECT 팝업 명령) 예(/A:... 속성 및 /I"...) 설명 옵션과 /[S...] 크기, /[T...] 시간, /[D...] 날짜, /[O...] 소유자 및 /[!...] 파일 제외 범위 사용) 있음(FOR /R 명령 또는 GLOBAL 명령 또는 /S subdir 옵션(사용 가능한 경우)을 통해 간접적으로 사용 가능)
PowerShell ○ (콘센트/서브스트링/삽입/제거/교환, ToLower/ToUpper, Trim/TrimStart/TrimEnd, 비교, 포함/StartsWith/EndWith, 형식, IndexOf/LastIndexOf, 패드/왼쪽/패드/오른쪽)NET 문자열 함수) 숫자의 범위[61] 연산자 있음(완전 regex [nb 18]지원) ○(*, ?, [...]) ? ?
rc ? ? 아니요. 네. 아니요. 아니요.
빈셸 ? ? 네. ? ? ?
VMS DCL 네. 아니요. 아니요. 네. 아니요. 있음([SUBDIR...] 경유)
물고기. ○(문자열 기능 내장) 네. yes(내장 문자열 일치 및 문자열 치환 기능 사용) 네(*, ?, {...)}) 아니요. (**/...)

프로세스 간 커뮤니케이션

껍데기 파이프 명령어 대체 프로세스 대체 서브셸 스트림으로서의 TCP/UDP 접속 키 입력 스태킹
본 셸 동시 바이트 수 네. 아니요. 네. 아니요. --[nb 19]
POSIX 동시 바이트 수 네. 아니요. 네. 아니요. --[nb 19]
bash(v4.0) 동시 바이트 수 네. ○(시스템이 /dev/fd/n' 또는 이름 있는 파이프를 지원하는 경우) 네. 있음(클라이언트만) --[nb 19]
csh 동시 바이트 수 네. 아니요. 네. 아니요. --[nb 19]
tcsh 동시 바이트 수 네. 아니요. 네. 아니요. --[nb 19]
해밀턴 C 셸 동시 바이트 수 네. 아니요. 네. 아니요. ?
스시 본문 ? ? ? 네. --[nb 19]
ksh(ksh93t+) 바이트(프린트 -C가 사용되는 경우 시리얼화된 오브젝트가 포함될 수 있음) 동시 ○($(...)${<스페이스>...;) ○(시스템이 /dev/fd/n'을 지원하는 경우) 네. 있음(및 SCTP 지원, 클라이언트만 해당) --[nb 19]
pdksh 동시 바이트 수 네. 아니요. 네. 아니요. --[nb 19]
zsh 동시 바이트 수 네. 네. 네. 있음(클라이언트 및 서버, 단 TCP만) --[nb 19]
동시 바이트 수 네. 아니요. 네. 아니요. --[nb 19]
CCP 아니요. 아니요. 아니요. 아니요. 아니요. 아니요.
명령어COM 텍스트 순차 임시 파일 아니요. 아니요. 부분적(명령어를 사용한 DR-DOS 멀티태스커에서만 가능).COM/T) 아니요. 아니요.
OS/2 CMDEXE 동시 텍스트 아니요. 아니요. ? 아니요. 아니요.
Windows CMD.EXE 동시 텍스트 있음(FOR/F 명령어 사용) 아니요. ○ (Backtick : ' in FOR / F usebackq ) 아니요. 아니요.
4DOS 텍스트 순차 임시 파일 있음(FOR/F 명령어 사용) ? 부분(%@EXECTR[] 및 %@EXEC[] 경유 또는 SET /M, ESET /M UNET /M%@MASTER[...] 경유) 아니요. ○ (KEYSTACK KSTACK [62]경유)
4OS2 동시 텍스트 ? ? ? 아니요. 있음(KEYSTACK 경유)
TCC(구 4NT) 동시 텍스트 있음(FOR/F 명령어 사용) ? 부분(%@EXECTR[]%@EXEC[] 경유) ○(FTP, TFTP, FTPS, SFTP, HTTP, HTTPS 및 IFTP 경유, 클라이언트만) 있음(KEYSTACK 경유)
PowerShell 동시 객체 네. 아니요. 네. 네. ?
rc 동시 텍스트 네. 있음(시스템이 /dev/fd/n을 지원하는 경우 {cmd} 경유) 네. 아니요. ?
빈셸 지원되지 않음 ? ? ? 네. ?
VMS DCL text(PIPE 명령어 사용) 네. 아니요. 있음(확장) 있음(서버 TCP만 해당) 아니요.
물고기. 동시 바이트 수 (...) 아니요(부러짐)[63] 아니요. 아니요. --[nb 19]

키 입력 스태킹

특정 실행 중인 애플리케이션이 키보드 입력으로 받아들일 수 있는 것을 예상하여 셸 사용자는 셸에 일련의 시뮬레이션 키 스트로크를 생성하도록 지시하며, 이 조작은 인터랙티브 사용자로부터의 키보드 입력으로 해석됩니다.키 스트로크 시퀀스를 송신함으로써 사용자는 입력 리다이렉션을 통해서는 달성할 수 없는 액션을 실행하도록 어플리케이션에 지시하거나 인터랙티브한 사용자를 필요로 하는 경우가 있습니다.예를 들어 응용 프로그램이 리다이렉트할 수 없는 키 입력으로 동작하는 경우, 는 일반 키와 확장 키를 구별하거나 시작 시 또는 특정 조건에서 새로운 입력을 받아들이기 전에 큐를 플러시하거나 표준 입력을 전혀 읽지 않기 때문에 큐를 플러시합니다.키 스트로크 스태킹은 일반적으로 시뮬레이트된 키의 송신 타이밍을 제어하거나 큐가 플래시될 때까지 새로운 키를 지연시키는 수단도 제공합니다.또, 키보드에 존재하지 않는 키를 시뮬레이트 할 수도 있습니다(대응하는 키가 물리적으로 존재하지 않거나 다른 키보드 레이아웃이 사용되고 있기 때문에).따라서 사용자가 입력할 수 없습니다.

보안 기능

껍데기 보안(비밀번호) 프롬프트 암호화된 변수/파라미터 파일/디렉토리 패스워드 권한 실행 신뢰할 수 없는 스크립트 차단 제한된 셸 서브셋 안전한 데이터 서브셋
본 셸 stty[nb 20] 경유로 아니요. ? --[nb 21] 아니요. 네. 아니요.
POSIX stty[nb 20] 경유로 아니요. ? --[nb 21] 아니요. 아니요. 아니요.
bash(v4.0) 읽기 -s 아니요. ? --[nb 21] 아니요. 네. 아니요.
csh stty[nb 20] 경유로 아니요. ? --[nb 21] 아니요. 네. 아니요.
tcsh stty[nb 20] 경유로 아니요. ? --[nb 21] 아니요. 네. 아니요.
해밀턴 C 셸 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요.
스시 stty[nb 20] 경유로 아니요. ? --[nb 21] 아니요. 아니요. 아니요.
ksh(ksh93t+) stty[nb 20] 경유로 아니요. ? --[nb 21] 아니요. 네. 아니요.
pdksh stty[nb 20] 경유로 아니요. ? --[nb 21] 아니요. 네. 아니요.
zsh 읽기 -s 아니요. ? --[nb 21] 아니요. 네. 아니요.
stty[nb 20] 경유로 아니요. ? --[nb 21] 아니요. 네. 아니요.
CCP 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요.
명령어COM 부분적(DR-DOS에서만 파일/디렉토리가 보호되는 경우 비밀번호 입력 요구) 아니요. 부분(DR-DOS 하에서만 \dirname;dirpwd\filename;[nb 22]filepwd 구문을 사용) 부분적(DR-DOS 하에서만 파일이 읽기 및/또는 실행 [nb 23]권한에 대해 비밀번호로 보호되어 있는 경우) 아니요. 아니요. 아니요.
OS/2 CMDEXE 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요.
Windows CMD.EXE 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요.
4DOS 있음(INPUT / P 또는 INKEY / [nb 24]P 사용) 아니요. 부분(\dirname;;dirpwd\filename;;filepwd [nb 22]구문을 통한 DR-DOS 하에서만) 부분적(DR-DOS 하에서만 파일이 읽기 및/또는 실행 [nb 23]권한에 대해 비밀번호로 보호되어 있는 경우) 아니요. 아니요. 아니요.
4OS2 ? 아니요. 아니요. 아니요. 아니요. 아니요. 아니요.
TCC(구 4NT) ○ (INPUT / P, INKEY / P 또는 QUERYBOX / [nb 24]P 경유) 아니요. 아니요. 아니요. 아니요. 아니요. 아니요.
PowerShell 네, 그렇습니다[nb 25]. 네. 아니요. 아니요[nb 26]. 네, 그렇습니다[64]. 네, 그렇습니다[nb 27]. 네, 그렇습니다[65].
rc stty[nb 20] 경유로 아니요. ? --[nb 21] 아니요. 네, 그렇습니다[66]. 아니요.
빈셸 ? ? ? ? ? ? ?
VMS DCL 네. 아니요. 아니요. 네. 아니요. 네. 아니요.
물고기. 읽기 -s 아니요. ? --[nb 21] 아니요. 네(생선 경유 -l) ?

안전한 프롬프트

일부 셸 스크립트에서는 사용자에게 패스워드, 개인 디지털키, PIN 코드, 기타 기밀 정보 의 기밀 정보를 조회해야 합니다.기밀 입력은 허가받지 않은 사람이 수집할 수 있는 화면/입력 장치에 에코백하지 마십시오.기밀 정보의 플레인 텍스트메모리는 스왑 파일, 코어 덤프 [67]등을 통해 정보가 손상될 수 있으므로 피해야 합니다.

셸 bash, zsh 및 PowerShell은 이를 특정 [68][69]기능으로 제공합니다.이 기능을 특정 기능으로 제공하지 않는 셸에서는 다른 방법으로 에코를 끌 수 있습니다.Unix/Linux 운영 체제에서 실행되는 셸은 stty external 명령을 사용하여 입력 [70]문자의 에코를 끄거나 켤 수 있습니다.PowerShell의 -AsSecureString 옵션은 문자를 에코백하지 않을 뿐만 아니라 입력 프로세스 중에 입력된 문자를 하나씩 암호화하여 메모리 덤프, 스캔, 문자 변환 등을 통해 문자열이 손상되지 않도록 합니다.

암호화된 변수/파라미터

스크립트가 환경변수에 패스워드를 읽어들이는 경우, 그 스크립트는 메모리에 플레인텍스트로 저장되어 있기 때문에 코어 덤프를 통해 액세스 할 수 있습니다.또한 프로세스 환경 내에 있으며 스크립트에 [71]의해 시작된 다른 프로세스에서 액세스할 수 있습니다.

PowerShell은 암호화된 문자열 변수/[72]파라미터와 함께 사용할 수 있습니다.암호화된 변수를 사용하면 스크립트, 에코, 로그 파일, 메모리 또는 크래시 덤프, 심지어 악의적인 메모리 스캔을 통해 값이 실수로 노출되지 않도록 할 수 있습니다.또한 PowerShell은 현재 사용자가 소유한 키로 보호된 텍스트 파일에 암호화된 문자열을 저장할 수 있습니다.

권한 실행

일부 운영체제는 파일에 대해 사용자/그룹에게 부여할 수 있는 실행 권한을 정의합니다.

Unix 시스템에서는 실행 권한이 파일을 프로그램으로 호출하는 액세스를 제어하고 실행 파일과 스크립트 모두에 적용됩니다.프로그램 로더에서 권한이 적용되기 때문에 실행 권한을 적용하기 위해 호출된 프로그램이나 호출된 프로그램의 의무는 필요하지 않습니다. 이는 셸 및 기타 인터프리터 프로그램에도 해당됩니다.이 동작은 커널과의 인터페이스에 사용되는 POSIX C 라이브러리에 의해 강제됩니다.POSIX 에서는, 다음과 같이 지정되어 있습니다.exec파일이 실행 권한을 거부하면 함수 패밀리는 EACCESS에서 실패합니다(권한 거부). (오픈 그룹의 시스템인터페이스 레퍼런스, 싱글 UNIX 사양, 버전 4 참조).

실행 권한은 스크립트가 직접 실행되는 경우에만 적용됩니다.스크립트가 인터프리터 셸의 인수로 호출되면 사용자가 해당 스크립트의 실행 권한을 보유하고 있는지 여부에 관계없이 실행됩니다.

Windows 에서는 실행 권한도 지정되지만 권한이 부여되지 않은 경우 Windows 고유의 셸에서는 스크립트 실행을 차단하지 않습니다.

신뢰할 수 없는 스크립트 차단

일부 셸은 신뢰할 수 없다고 판단된 스크립트를 차단하거나 시스템 관리자가 명령한 경우 스크립트 실행을 거부합니다.

스크립트 오리진 실행 제한

PowerShell은 알 수 없거나 신뢰할 수 없는 출처(예: 인터넷)[73]에서 가져온 것으로 표시된 스크립트의 실행을 차단하도록 설정할 수 있습니다.웹 브라우저, IM 클라이언트, 메일 리더 등의 인터넷용 애플리케이션은 인터넷에서 다운로드한 파일을 PowerShell에서 인식되는 대체 데이터 스트림에 원본 영역으로 표시합니다.

서명된 스크립트 제한

스크립트/코드 서명 정책을 사용하여 운영 부서가 신뢰할 수 있는 검토자/승인자가 검토하고 서명한 승인된 스크립트/코드만 실행할 수 있습니다.서명제도는 또한 변조로부터 보호한다.스크립트가 벤더에서 클라이언트로 전송되는 경우 클라이언트는 서명을 사용하여 전송 중에 스크립트가 조작되지 않았는지, 스크립트가 실제로 벤더에서 생성되었는지 확인할 수 있습니다.또, 공격자가 오퍼레이터에게 공격 스크립트를 실행하도록 소셜 엔지니어링을 시도하지 않습니다.

신뢰할 수 있는 디지털 [74][75][76]증명서를 사용하여 디지털 서명된 스크립트(예: 신뢰할 수 없는 존에서 생성된 스크립트)를 실행할 수 있도록 PowerShell을 설정할 수 있습니다.

다단계 실행 정책

기업은 사내 및/또는 사내의 특정 부분에 대해 글로벌하게 실행 제한을 적용할 수 있습니다.서명된 스크립트를 실행하기 위한 정책을 설정할 수 있지만 회사의 특정 부분에서 영역화된 제한에 대한 자체 정책을 설정할 수 있습니다.

PowerShell을 사용하면 로컬 머신, 현재 사용자 등 여러 수준에서 스크립트 차단 정책을 적용할 수 있습니다.상위 레벨의 정책은 하위 레벨의 정책을 재정의합니다.예를 들어 정책이 로컬머신에 대해 정의되어 있는 경우 로컬머신의 모든 사용자에게 적용됩니다.이 정책은 상위 레벨에서 정의되어 있지 않은 경우에만 하위 레벨에 대해 정의할 수 있습니다.

제한된 셸 서브셋

사용자가 사용할 수 있는 명령 및 액션의 제한된 세트만 있는 모드에서 여러 셸을 시작하거나 시작하도록 구성할 수 있습니다.보안 경계(리소스가 아닌 리소스에 액세스하는 명령이 차단됨)는 아니지만 일반적으로 로그인하기 전에 사용자의 작업을 제한하기 위해 사용됩니다.

제한 모드는 셸의 POSIX 사양의 일부이며 대부분의 Linux/Unix 쉘은 내장 명령어 중 몇 개가 비활성화되어 특정 디렉토리에서 외부 명령어만 [77][78]호출할 수 있는 모드를 지원합니다.

PowerShell은 세션 구성 파일 또는 세션 구성을 통해 제한된 모드를 지원합니다.세션 컨피규레이션파일은, 표시 가능한(사용 가능한) cmdlet, 에일리어스, 함수, 패스 프로바이더등을 [79]정의할 수 있습니다.

안전한 데이터 서브셋

다른 스크립트를 호출하는 스크립트는 초기 스크립트를 실행한 사용자의 컨텍스트에서 외부 코드를 실행할 수 있기 때문에 보안 위험이 될 수 있습니다.스크립트는 일반적으로 알려진 안전한 장소의 스크립트를 배타적으로 포함하도록 설계되어 있습니다.단, 사용자에게 환경을 설정하거나 현지화된 메시지를 로드하는 방법 등 스크립트에 다른 스크립트/파일이 포함될 [80]수 있습니다.이 위험을 해결하는 한 가지 방법은 포함된 스크립트에서 실행할 수 있는 안전한 명령어 서브셋을 셸에서 제공하는 것입니다.

PowerShell 데이터 섹션에는 연산자 [81]및 명령어의 제한된 하위 집합을 사용하여 상수와 식을 포함할 수 있습니다.PowerShell 데이터 섹션은 현지화된 문자열 등을 외부 소스에서 읽어야 할 때 사용합니다.또한 불필요한 부작용으로부터 보호합니다.

메모들

  1. ^ 1990년대 중반부터요.
  2. ^ -DACCT로 컴파일된 경우.
  3. ^ MS-DOS 및 Windows 컴포넌트– MS-DOS 또는 Microsoft Windows의 유효한 라이선스가 적용됩니다.
  4. ^ OS/2 컴포넌트– OS/2의 유효한 라이선스가 적용됩니다.
  5. ^ 명령 확장 기능이 활성화되었거나 "CMD /X"가 활성화되었습니다.
  6. ^ Windows 컴포넌트– Microsoft Windows의 유효한 라이선스로 보증됩니다.
  7. ^ Microsoft PowerShell은 기본적으로 윈도우즈 7 이상에 설치됩니다.Windows Vista 또는 Windows XP 사용자용 옵션 다운로드입니다.
  8. ^ a b c Jörg Schilling의 최신 버전입니다.
  9. ^ Alt-Shift-8 또는 Alt-* 가 파일 이름의 완전한 일치 목록으로 확장됩니다.
  10. ^ DOSKEY 애드온에서 이용 가능합니다.
  11. ^ DR-DOS에서 HISTORY를 통해 이용 가능합니다.
  12. ^ 또는 DOSKEY 애드온에서도 이용 가능합니다.
  13. ^ DR-DOS에서도 HISTORY를 통해 이용할 수 있습니다.
  14. ^ TCC에는 Yes, No, Cancel, Close, Retry의 특수한 프롬프트 기능이 있습니다.
  15. ^ a b c rio, GNU readline, editline 또는 vrl의해 처리됩니다.
  16. ^ 어패류는 문자 기반의 쌍방향 입출력 표면입니다.
  17. ^ 셸 빌트인으로 사용할 수 없습니다.외부 FINDSTR /R 명령어는 대부분의 Windows 릴리스에서 사용할 수 있습니다.
  18. ^ PowerShell은 풀 기능을 활용합니다.이름 있는 캡처, 제로 너비 선행/후행, 탐욕/비탐욕, 문자 클래스, 레벨 카운트 등을 특징으로 하는 NET 정규 표현 엔진.
  19. ^ a b c d e f g h i j k xautomation 및 xdotool을 사용하여 X Window System에서 키 스트로크를 생성하거나 프로그램을 의사 터미널로 실행하여 이를 제어할 수 있습니다(예상 툴과 동일).
  20. ^ a b c d e f g h i 셸에서는 stty 유틸리티를 사용하여 입력된 문자가 화면에 에코되지 않도록 할 수 있습니다.여기에는 여러 단계가 필요합니다. 1. 현재 에코 상태 읽기, 2. 에코 끄기, 3. 입력 읽기, 4. 에코 상태를 원래 상태로 전환합니다.
  21. ^ a b c d e f g h i j k l 실행 권한은 스크립트 해시방에 의해 지정된 인터프리터(아마도 셸)를 호출하지 않음으로써 별도의 프로그램인 프로그램 로더에 의해 강제됩니다.인터프리터는 프로그램로더와 같이 직접 호출된 경우 실행 권한을 강제하지 않습니다.파일을 인터프리터에 입력으로 배관하는 경우와 마찬가지로 읽기 권한만 필요합니다.이 경우 인터프리터는 실행 권한을 볼 수 없습니다.
  22. ^ a b DR-DOS에서 파일 암호와 디렉터리 암호의 암호 구분 기호는 세미콜론입니다.또한 명령어가 포함 목록을 지원하지 않는 한 4DOS에서 지원됩니다.4DOS 에서는, 인크루드 리스트와 인크루드 리스트를 구별하기 위해서, 인크루드 리스트를 서포트하는 모든 커맨드에 대해서 패스워드 구분자를 2배로 할 필요가 있습니다.지원되지 않는 명령어는 include lists를 모두 사용할 수 있습니다.DR-DOS 7.02 이상에서는 옵션으로 두 개의 세미콜론도 사용할 수 있으므로 두 개의 세미콜론이 모두 사용할 수 있습니다.실행 명령어에 관계없이 COM 및 4DOS.
  23. ^ a b DR-DOS는 읽기/쓰기/삭제 및 선택적으로 실행 권한을 위한 파일 암호를 지원합니다.파일은 기본적으로 보호되지 않지만 배치 스크립트에 암호를 읽도록 시스템을 설정할 수 있습니다.
  24. ^ a b INPUT /P 및 INKEY /P는 각 입력 문자에 대해 별표를 에코백합니다.
  25. ^ Read-Host -AsSecureString은 입력 디바이스에서 암호화된 문자열로 한 번에 1글자씩 읽기 때문에 스캔 메모리 또는 크래시 덤프, 메모리 덤프, 페이징 파일, 로그 파일 등에서 클리어 텍스트의 메모리이미지가 수집되지 않습니다.
  26. ^ PowerShell 스크립트 파일(.ps1 파일)은 기본적으로 PowerShell 실행 엔진이 아닌 메모장 편집기와 연결됩니다..ps1 파일을 호출하면 스크립트를 실행하는 대신 메모장이 실행됩니다.
  27. ^ 컴퓨터/사용자별 부팅 스크립트는 모듈을 Import하여 모듈에서 사용할 수 있는 명령어/기능의 서브셋을 표시할 수 있습니다.

레퍼런스

  1. ^ 과거의 UNIX V7 원본 소스 코드를 기반으로 한 플랫폼에 의존하지 않는 버전은 Geoff Collyer에서 구할 수 있습니다.
  2. ^ 과거의 UNIX V7 버전은 Unix Heritage Society 등을 통해 BSD 스타일의 라이선스로 구입할 수 있습니다.
  3. ^ SVR4/Solaris 소스 코드를 기반으로 한 플랫폼 독립 버전은 Jörg Schilling에서 구할 수 있습니다.
  4. ^ Ferrell, John, "Chapter 2. Default Shell", FreeBSD Quickstart Guide for Linux Users, The FreeBSD Documentation Project, retrieved 2015-07-24
  5. ^ "SchilliX-ON / SchilliX-ON Mercurial / [b1d9a2] /usr/src/cmd/sh". Sourceforge.net. Retrieved 2015-07-02.
  6. ^ IEEE and The Open Group (2008). IEEE 1003.1 Standard for Information Technology – Portable Operating System Interface (POSIX): Shell and Utilities, Issue 7.
  7. ^ IEEE 규격 1003.2-1992(POSIX.2)의 일부로서 2001년 리비전에 의해 IEEE 규격 1003.1에 통합되었습니다.
  8. ^ Fox, Brian (1989-06-07). Tower Jr., Leonard H. (ed.). "Bash is in beta release!". Newsgroup: gnu.announce. Usenet: 8906080235.AA01983@wheat-chex.ai.mit.edu. Retrieved 2010-10-28.
  9. ^ Cooper, Mendel, "Chapter 37.3.2. Bash, version 4.2", Advanced Bash-Scripting Guide, The Linux Documentation Project, retrieved 2015-04-30, "Bash는 \u 및 \U Unicode 이스케이프를 지원합니다."
  10. ^ Greer, Ken (1983-10-03). "C shell with command and filename recognition/completion". Newsgroup: net.sources. Retrieved 2010-12-29.
  11. ^ Sussman, Ann (1988-12-26). "Hamilton C Shell Speeds Development Of OS/2 Applications" (PDF). PC Week (1988-12-26 - 1989-01-02): 37. Retrieved 2010-11-22.
  12. ^ Gomes, Ron (1983-06-09). "Toronto USENIX Conference Schedule (tentative)". Newsgroup: net.usenix. Retrieved 2010-12-29.
  13. ^ Harris, Guy (1983-10-10). "csh question". Newsgroup: net.flame. Retrieved 2010-12-29.
  14. ^ a b ksh93 (1)의 man 페이지
  15. ^ a b OpenB 디폴트SD는 ksh(pdksh)입니다.
  16. ^ zsh 명령줄 편집기는 완전히 구성 가능하며 Stéphane Chazelas 마우스와 같은 다양한 방법으로 마우스를 지원할 수 있습니다.zsh.
  17. ^ zsh (1) man 페이지 및 서브 페이지
  18. ^ zshbuiltins (1) man 페이지
  19. ^ Lefevre, Vincent (2015-02-11). "multi-digit file descriptors". zsh-users (Mailing list). Retrieved 2021-12-23.
  20. ^ "#782228 - busybox sh doesn't support multibyte characters in string handling - Debian Bug report logs". Bugs.debian.org. 2015-04-09. Retrieved 2015-07-02.
  21. ^ "HP OpenVMS DCL Dictionary". Archived from the original on 2007-03-25. Retrieved 2009-03-23.
  22. ^ Larabel, Michael (2021-03-23). "Plan 9 Copyright Transferred To Foundation, MIT Licensed Code Released". Phoronix. Retrieved 2021-03-28.
  23. ^ Liljencrantz, Axel (2005-05-17). "Fish - The friendly interactive shell". Retrieved 2013-04-08.
  24. ^ Soller, Jeremy (2015-11-15). "d79c8f511573fb7710abc63b4236a40022914520". Retrieved 2019-08-03.
  25. ^ "[Z Shell] Completion System". Zsh.sourceforge.io. Retrieved 2015-02-24.
  26. ^ 이는 예약된 단어 및 기타 구문 기능에만 적용됩니다.
  27. ^ 예를 들어 zsh-secommunications와 같은 서드파티를 통한 제안
  28. ^ zsh는 구문 강조 표시를 지원하지 않지만, 이 기능을 추가 기능으로 제공하는 서드파티 프로젝트가 존재합니다. zsh-syslog-sysloging
  29. ^ Paul, Matthias R. (1997-10-02) [1997-09-29]. "Caldera OpenDOS 7.01/7.02 Update Alpha 3 IBMBIO.COM - README.TXT and BOOT.TXT - A short description of how OpenDOS is booted". Archived from the original on 2003-10-04. Retrieved 2009-03-29. [1]
  30. ^ a b c d e Shirk, Jason (2018-02-15). "PSReadLine: A bash inspired readline implementation for PowerShell" – via GitHub.
  31. ^ "Archived copy". Archived from the original on 17 September 2016. Retrieved 8 September 2016.{{cite web}}: CS1 maint: 제목으로 아카이브된 복사(링크)
  32. ^ a b c d e f "Windows PowerShell Integrated Scripting Environment (ISE)". Microsoft Technet. Retrieved 2015-09-12.
  33. ^ "Get-ChildItemColor". GitHub. 2022-03-18.
  34. ^ sdwheeler. "Write-Host (Microsoft.PowerShell.Utility) - PowerShell". docs.microsoft.com. Retrieved 2022-01-18.
  35. ^ 푸시 위치(에일리어스 포함)pushd Pop-Location(에일리어스 포함)popd를 사용하면, 복수의 로케이션 타입(파일 시스템의 디렉토리, Active Directory 의 조직 단위, Windows 레지스트리의 노드등)을 로케이션 스택에 푸시 해, 로케이션 스택으로부터 팝 할 수 있습니다.
  36. ^ $host.ui.PromptForChoice 기능은 메뉴 스타일의 선택 프롬프트를 허용합니다.프롬프트는 백그라운드 작업 및 원격 세션에서 작동하며 제어 세션의 콘솔에 메뉴 프롬프트가 표시됩니다.
  37. ^ Write-Progress cmdlet은 비율, 남은 시간(초) 등을 나타낼 수 있는 진행 표시줄을 작성합니다.진행률 표시줄 메시지는 대화형 스크립트와 함께 백그라운드 작업 또는 원격 세션에서 작동합니다. 즉, 진행률 표시줄은 일반 출력의 일부가 아니라 제어 세션의 콘솔에 표시됩니다.
  38. ^ Show-Command cmdlet은 명령 정의를 검사하고 각 매개 변수/스위치에 대해 명명된 입력 필드가 있는 대화형 창을 엽니다.
  39. ^ a b "fish: Documentation". Section Tab completion. Retrieved 2016-01-10.
  40. ^ "set_color - set the terminal color — fish-shell 3.1.2 documentation". fishshell.com. Archived from the original on 2020-02-17. Retrieved 2021-02-23.
  41. ^ "abbr - manage fish abbreviations — fish-shell 3.1.2 documentation". fishshell.com. Retrieved 2021-02-23.
  42. ^ "zsh: 20. Completion System". Zsh.sourceforge.io. 2013-03-06. Retrieved 2013-08-18.
  43. ^ "Use PowerShell to Make Mandatory Parameters". Blogs.technet.com. 2011-05-22. Retrieved 2015-02-24.
  44. ^ sdwheeler. "What's New in the PowerShell 5.0 ISE - PowerShell". docs.microsoft.com. Retrieved 2021-07-25.
  45. ^ "GitHub - marlonrichert/zsh-autocomplete: 🤖 Real-time type-ahead completion for Zsh. Asynchronous find-as-you-type autocompletion". GitHub. Retrieved 2021-07-25.
  46. ^ "Interactive use — fish-shell 3.3.1 documentation". fishshell.com. Retrieved 2021-07-25.
  47. ^ Hahn, Harley (2009). Harley Hahn's guide to Unix and Linux. Boston: McGraw-Hill Higher Education. ISBN 978-0-07-313361-4. OCLC 184828059.
  48. ^ Concurrent DOS 386 - Multiuser/Multitasking Operating System - User Guide (PDF). Digital Research.
  49. ^ "pv(1): monitor progress of data through pipe - Linux man page". Linux.die.net. Retrieved 2015-02-24.
  50. ^ "zsh-users/zsh-syntax-highlighting: Fish shell like syntax highlighting for Zsh". GitHub. Retrieved 2013-08-18.
  51. ^ "Windows PowerShell 3.0 Integrated Scripting Environment (ISE)". Technet.microsoft.com. Retrieved 2013-08-18.
  52. ^ "Show-Command". Technet.microsoft.com. Retrieved 2013-08-18.
  53. ^ "Ash Variants". Archived from the original on 2010-03-10. Retrieved 2014-12-15.
  54. ^ "Set - Environment Variable - Windows CMD". SS64.com. Retrieved 2015-02-24.
  55. ^ "How to loop through array in batch?". Stack Overflow. Retrieved 2015-02-24.
  56. ^ .NET 시스템수학 클래스는 바로 가기 [Math]를 통해 사용할 수 있는 수학 함수를 정의합니다. 예: [Math]::정맥동 함수의 Sin.[2]
  57. ^ "string - manipulate strings — fish-shell 3.1.2 documentation". fishshell.com. Retrieved 2021-02-23.
  58. ^ Hamilton C shell Language reference: Wildcarding and pattern matching, Hamilton Laboratories, retrieved 2013-10-29, ... Indefinite Directory: match any number of directory levels – zero or more – whatever it takes to make the rest of the pattern match.
  59. ^ a b Seebach, Peter (2008-11-21). Beginning Portable Shell Scripting: From Novice to Professional. Expert's voice in open source. Apress (published 2008). p. 149. ISBN 9781430210436. Retrieved 2014-09-17. Brace expansion is available in ksh93, pdksh, bash, and zsh.
  60. ^ Zsh는 다양한 글로벌 옵션을 제공합니다.
  61. ^ sdwheeler. "about Operators - PowerShell". docs.microsoft.com. Retrieved 2022-01-18.
  62. ^ Brothers, Hardin; Rawson, Tom; Conn, Rex C.; Paul, Matthias R.; Dye, Charles E.; Georgiev, Luchezar I. (2002-02-27). 4DOS 8.00 online help.
  63. ^ "find a way to make 'psub --fifo' safe from deadlock · Issue #1040 · fish-shell/fish-shell". GitHub.
  64. ^ "About Execution Policies". Technet.microsoft.com. Retrieved 2015-02-24.
  65. ^ "About Data Sections". Technet.microsoft.com. Retrieved 2015-02-24.
  66. ^ "Ubuntu Manpage: rc - shell". Manpages.ubuntu.com. 2003-07-17. Retrieved 2015-02-24.
  67. ^ Provos, Niels. "Encrypting Virtual Memory". Center for Information Technology Integration, University of Michigan. Retrieved 2012-12-20.
  68. ^ "bash - GNU Bourne-Again SHell". read -s Silent mode. If input is coming from a terminal, characters are not echoed.
  69. ^ "Using the Read-Host Cmdlet". By adding the -assecurestring parameter you can mask the data entered at the prompt
  70. ^ "Linux / Unix Command: stty". Linux.about.com. Retrieved 2015-02-24.
  71. ^ Albing, Carl; Vossen, J. P.; Newham, Cameron (2007). "3.8. Prompting for a Password". Bash cookbook (1st ed.). Sebastopol, California: O'Reilly Media. p. 65. ISBN 978-0-596-52678-8. Be aware that if you read a password into an environment variable it is in memory in plain text, and thus may be accessed via a core dump or /proc/core. It is also in the process environment, which may be accessible by other processes.
  72. ^ Holmes, Lee. "SecureStrings in PowerShell". Retrieved 2012-12-18.
  73. ^ "PowerShell Security :: Windows OS Security :: Articles & Tutorials". WindowSecurity.com. 2007-09-13. Retrieved 2013-08-18.
  74. ^ "Signing PowerShell Scripts". Hanselman.com. Retrieved 2015-12-24.
  75. ^ "Hey, Scripting Guy! How Can I Sign Windows PowerShell Scripts with an Enterprise Windows PKI? (Part 2 of 2) - Hey, Scripting Guy! Blog - Site Home - TechNet Blogs". Blogs.technet.com. 2010-06-17. Retrieved 2013-08-18.
  76. ^ "Running Windows PowerShell Scripts". Technet.microsoft.com. Retrieved 2013-08-18.
  77. ^ "man sh - shell, the standard command language interpreter / posix" (in French). Pwet.fr. Archived from the original on 2014-12-21. Retrieved 2013-08-18.
  78. ^ "Bash Reference Manual: The Restricted Shell". Gnu.org. 2010-12-28. Retrieved 2013-08-18.
  79. ^ "New-PSSessionConfigurationFile". Technet.microsoft.com. Retrieved 2013-08-18.
  80. ^ Albing, Carl; Vossen, J. P.; Newham, Cameron (2007). Bash cookbook (1st ed.). Sebastopol, California, USA: O'Reilly Media. ISBN 978-0-596-52678-8. [...] is hardly what one thinks of as a passive list of configured variables. It can run other commands (e.g., cat) and use if statements to vary its choices. It even ends by echoing a message. Be careful when you source something, as it's a wide open door into your script.
  81. ^ "About Data Sections". Microsoft. Retrieved 2012-12-18.

외부 링크