사용자의 명령([[유닉스,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 종류 Bourne shell (sh) Bourne again shell (bash) csh tcsh Korn shell (ksh) ash (of BSD) zsh (of BSD) rc (of Plan 9) 셸을 바꾸는 명령은 [[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." ---- Up: [[소프트웨어,software]] 참고: 러닝 리눅스