사용자의 명령([[유닉스,Unix]]의 경우 [[유닉스_명령]])을 받아 실행하는 프로그램. 보통 [[사용자,user]]와 [[커널,kernel]]의 사이에 위치. 기능 [[작업_제어,job_control]] (= 프로세스 제어) 입출력 리다이렉션(I/O redirection) [[리디렉션,redirection]] { AKA '''리다이렉션''' {{{ 명령 > 파일명 }}} 명령의 출력을 파일로 저장한다. (=캡쳐한다, capture) 기존 파일 내용이 있다면 지워진다. (=덮어쓴다, overwrite) 셸이 csh나 tcsh이면 다음 명령으로 덮어쓰기를 방지할 수 있다. {{{ set noclobber }}} Bash에서도 추가되었는데..문법? TBW 표준 에러(stderr)는 저장되지 않는다. 표준 에러도 저장하려면 {{{ 명령 >& 파일명 }}} 을 쓰면 된다. csh인가? bash도 되는가? CHK 본 셸과 bash에서는 이렇게 적을 수 있다. {{{ 명령 &> 파일명 }}} 에러만 저장하려면, 본 셸 호환 셸에서 {{{ 명령 2> 파일명 }}} 을 쓴다. 출력을 아예 버리려면, /dev/null이라는 특별한 파일로 리디렉트한다. {{{ 명령 > /dev/null }}} {{{ 명령 >> 파일명 }}} 명령의 출력을 파일에 추가한다. 파일이 없으면 생성됨? TBW {{{ 명령 < 파일명 }}} 파일에서 입력을 받는다. } 파이프 { {{{ | }}} 정렬하려면 [[sort_명령]]으로 보내면 된다. {{{ du | sort -rn }}} 명령은 현재 디렉토리의 항목 중 큰 것 부터 보여준다. } 스크립팅 DOS의 경우 batch file 종류 Thompson shell .... https://en.wikipedia.org/wiki/Thompson_shell Mashey shell = PWB shell - modified Thompson .... https://en.wikipedia.org/wiki/PWB_shell Bourne shell (sh) - [[본_셸,Bourne_shell]] Bourne again shell (bash) .... [[WpEn:Bash_(Unix_shell)]] = https://en.wikipedia.org/wiki/Bash_(Unix_shell) csh tcsh Korn shell (ksh) ash (of BSD) zsh (of BSD) rc (of Plan 9) Unix외 [[파워셸,PowerShell]]? 셸을 바꾸는 명령은 [[chsh_명령]]이다. 리눅스에서 특정 셸을 로그인 셸로 쓸 수 있으려면, [[파일_/etc/shells]]에 등록해야 한다. = Bash 단축키 = C-u: 커서 위치부터 행의 처음까지 삭제 C-c: 실행 중 중지 C-z: 일시정지(suspend). 재개하고자 할 때는 [[fg_명령]]을 입력. (foreground를 뜻하는) C-s: 터미널 출력 멈추기 C-q: 멈춘 출력 재개하기 이 키들이 작동하지 않으면 터미널이 잘못 설정되어 있기 때문이다. [[stty_명령]]으로 고칠 수 있다. 문법: stty ''function key'' 예를 들어, 위의 명령들이 동작하지 않으면, {{{ $ stty erase ^H $ stty kill ^U $ stty intr ^C $ stty susp ^Z }}} = 내장 명령 built-in command = cd같은 명령들은 외부 실행 파일이 존재하지 않고 셸에 내장되어 있다. = 명령을 백그라운드로 보내기, 혹은 백그라운드에서 실행하기 = 명령 뒤에 & 문자를 넣는다. {{{ $ gcc a.c & [1] 21457 }}} 1은 작업 번호다. 21457은 프로세스 ID(pid)이다. 물론 작업 번호가 숫자가 작으므로 PID보다 기억하기 쉽다. = 백그라운드 명령을 포그라운드로 가져오기 = foreground로 가져오기 fg명령을 쓴다. 작업 번호 앞에 %을 붙여서 쓰거나, PID를 그대로 쓴다. 위의 경우, {{{ $ fg %1 $ fg 21457 }}} = 백그라운드 작업 없애기 = [[kill_명령]]을 쓴다. {{{ $ kill %1 }}} = 역사 = '''Shell'''이라는 단어는 [[멀틱스,Multics]]에서 유래. https://multicians.org/shell.html https://news.ycombinator.com/item?id=25207957 -- .*rc는 RUNCOM에서 유래? CHK = ssh = [[ssh]] pagename 뭘로하지? = MKLINK = [[터미널,terminal]] [[콘솔,console]] [[shell_script]] [[환경변수,environment_variable]] [[프롬프트,prompt]] [[명령줄,command_line]] 영단어의 뜻: [[껍질,shell]] = Good sites = https://ss64.com/ "Command line reference." The Shell Scripting Tutorial - The Shell Scripting Tutorial (Bash) https://www.shellscript.sh/ ---- Semi-twin https://en.wikipedia.org/wiki/Comparison_of_command_shells https://en.wikipedia.org/wiki/Unix_shell ---- Twin [[WpEn:Shell_(computing)]] = https://en.wikipedia.org/wiki/Shell_(computing) ---- Up: [[소프트웨어,software]] 참고: 러닝 리눅스