수정된 부분을 포함하여 전체 내용을 풍부하게 작성해보겠습니다.
echo "Hello World", echo 'Hello World', echo Hello\ Worldcd 명령은 반드시 내장 명령이어야 합니다.cat file.txt 실행 시, cat이 바이너리이고 file.txt가 인수입니다.= 기호를 사용합니다.VAR=value= 기호 사이에 공백이 없어야 합니다.VAR=$(cat fp) 대신 ${VAR}=$(cat fp)로 사용합니다.$0: 현재 실행 파일의 이름$1-$9: 첫 9개의 인수$#: 유효한 인수의 수$* 및 $@: 모든 인수$?: 이전 명령의 반환 값$!: 이전 명령의 프로세스 ID$PS1: 대화형 사용 시 프롬프트$IFS: 입력 필드 구분자$VAR: 단순 변수 VAR 삽입${VAR}: 복잡한 이름의 변수 또는 추가 작업이 있는 변수 VAR 삽입$(command):export가 이를 수행합니다.export VAR: 변수를 환경에 내보냅니다.export VAR=value: 변수와 값을 함께 내보냅니다.export VAR [VAR2 ...]env 명령은 환경을 출력하고 종료합니다.env를 사용하여 현재 환경 변수를 모두 출력할 수 있습니다.*: 0개 이상의 문자 시퀀스?: 임의의 한 문자[]: 대괄호 안의 문자 중 하나; 범위 표현 가능 (예: [a-z])*.c: 모든 .c 파일과 일치합니다.*.?: 모든 확장자가 한 글자인 파일과 일치합니다.*.[ch]: .c 또는 .h 확장자를 가진 모든 파일과 일치합니다.variant-[a-d].pdf: variant-a.pdf에서 variant-d.pdf까지 일치합니다.|<, <<, >, >>>&< file: 표준 입력을 파일에 연결> file: 표준 출력을 파일에 연결2> file: 표준 오류를 파일에 연결N>, N<: 지정된 파일을 파일 디스크립터 N에 연결>>: 리디렉션된 출력 추가cat fp >> out.txt는 fp의 내용을 out.txt 파일의 끝에 추가합니다.pipe()와 dup2()를 사용하여 연결합니다.cmd1 | cmd2: cmd1의 출력을 파이프로 연결하여 cmd2의 입력으로 사용합니다.pipe()와 dup2()를 사용하여 연결하고, fork()와 exec()로 명령을 실행합니다.N>&M: dup2(N, M)와 동일N>&- 또는 <&-: 디스크립터 닫기echo "Error message" 1>&2는 표준 출력을 표준 오류로 복사합니다.fork()/exec()open()close()dup2()wait()문자열에 공백이
포함된 경우, 작은따옴표('), 큰따옴표(") 또는 백슬래시()를 사용하여 공백을 포함한 단어로 인식되도록 합니다.
echo "Hello World", echo 'Hello World', echo Hello\ Worldcd 명령은 반드시 내장 명령이어야 합니다. 외부 프로그램으로 실행될 수 없습니다.cat)은 셸이 fork()를 호출하여 새 프로세스를 생성한 후, exec()를 사용하여 해당 바이너리를 실행하는 구조입니다.cat file.txt 실행 시, fork()를 통해 새 프로세스를 생성하고, exec()를 통해 cat 바이너리를 실행합니다.VAR=$(cat fp) 대신 VAR=$(cat fp)로 사용하지 않고, VAR=$(cat fp)로 명확하게 지정합니다.export 명령은 변수를 환경에 내보냅니다.export HOME=value는 HOME 변수를 환경에 설정합니다.env 명령을 사용하여 모든 환경 변수를 출력할 수 있습니다.env 명령은 현재 환경 변수를 모두 출력합니다.>> 연산자를 사용합니다.cat fp >> out.txt는 fp의 내용을 out.txt 파일의 끝에 추가합니다.이와 같이, 기존 내용을 보강하여 UNIX 셸에 대한 전반적인 이해를 돕고, 필기 내용을 자연스럽게 포함시켰습니다.