- Quoting Rules
- metacharacters
- Sehll에서 특별히 의미를 정해 놓은 문자들.
- \ ? ( ) $ ... * % {} [] 등
- * : All characters
ㄴ a* : a로 시작하는 모든 파일을 보여줌. - ? : Any single Character
ㄴ ???? : 4개의 글자 수를 가진 단어 - {숫자1..숫자2} : 숫자1부터 숫자2까지를 의미함.
- blank( ) : command와 option과 argument를 분리시켜주는 문자
- * : All characters
- Quoting Rule : 메타문자의 의미를 제거하고 단순 문자로 변경.
- backslash(\) : \ 바로 뒤의 메타 문자는 특별한 의미를 제거함.
- Double Quotes ("") : "" 내의 모든 메타 문자의 의미를 제거. 단, $, `` 는 제외
- Single Quotes('') : '' 내의 모든 메타 문자의 의미를 제거
- backslash(\) : \ 바로 뒤의 메타 문자는 특별한 의미를 제거함.
- metacharacters
- Nesting commands
- Command 치환
- 명령어의 실행 결과를 치환하여 명령을 실행
- Nesting Commands
- $(command)
ㄴ echo "Today is $(date)" - 'command'
ㄴ echo "Today is `date`"
- $(command)
- Command 치환
- Alias
- Alias
- Shell의 명령에 새로운 이름을 부여.
- 명령들을 조합하여 새로운 이름의 명령을 생성
- alias 관리 명령
- alias 등록 : alias name = 'command'
- alias c=clear
c를 입력하면 자동으로 clear 명령어가 실행되도록 함. - alias rm='rm -i'
파일 삭제할 때마다 매번 체크하도록 변경
- alias c=clear
- alias 확인 : alias or alias name
- alias 삭제 : unalias name
- alias 등록 : alias name = 'command'
- Alias
- Prompt
- prompt모양 : username@hostname :현재 작업디렉토리
- echo $PS1 를 통해 확인할 수 있음.
- PS1='[\u@\h \W]\$ : 프롬프트 모양을 변경함
- PS1='[\u@\h \W]\$ : 프롬프트 모양을 변경함
- Shell Prompt란?
- PS1변수를 이용해 shell의 기본 프롬프트 모양을 설정
- Bash shell에서만 Prompt모양에 적용 가능한 특수 문자가 존재함.
특수문자 의미 /h 호스트 이름 /u 사용자 이름 /w 작업 디렉토리 - 절대 경로 /W 작업 디렉토리 - 상대 경로 /d 오늘 날짜 /t 현재 시간 /$ $또는 # 프롬프트 모양
- 주의사항
- alias 및 prompt 명령어는 현재 Shell에서만 적용되며 로그아웃 되면 적용되지 않음.
- 많이 사용하는 alias 혹은 ps 는 "vi .bashrc" 에 등록함.
- prompt모양 : username@hostname :현재 작업디렉토리
- Redirection
- Communication Channels
- stdin (0) : 표준 입력 채널로 키보드에서 프로그램으로 전달, standard in
- stdout (1) : 표준 출력 채널로 프로그램에서 터미널로 전달, standard output
- stderr (2) : 표준 에러 출력 채널로 프로그램에서 터미널로 전달, standard error
- Redirection : 방향을 바꿀 수 있음. 0번과 1번은 숫자를 생략할 수 있음.
communication
channelsRedirection
characters의미 STDIN 0< 0<< 입력을 키보드가 아닌 파일을 통해 받음 STDOUT 1> 1>> 표준 출력을 터미널이 아닌 파일로 출력 STDERR 2> 2>> 표준 에러 출력을 터미널이 아닌 파일로 출력. STDOUT & STDERR &> &>> 표준 출력 및 에러를 모두 터미널이 아닌, 파일로 출력.
- example(STDIN)
- mailx -s "TEST MAIL" heejin.joh@localhost
Cc:
내용.... - mailx -s "TEST MAIL" heejin.joh@localhost 0< message.txt
ㄴ 키보드를 통해 `내용`을 입력 받지 않고, message.txt를 입력으로 받음.
- mailx -s "TEST MAIL" heejin.joh@localhost
- example(STDOUT)
- date 1> message.txt : 현재 시점의 날짜를 message.txt 에 덮어쓰기 함.
- date 1>> message.txt : 현재 시점의 날짜를 message.txt 에 추가로 삽입함.
- example(STDERR)
- data 2> message.txt : data에러를 message.txt 에 덮어쓰기 함.
- data 2>> message.txt : data에러를 message.txt 에 추가로 삽입함.
- ls file1 file100 (일부에러) 2> /dev/null : 일부 에러 발생 시, 성공만 출력되고 에러는 소각장 (/dev/nulll)로 이동함.
- example(STDIN)
- Communication Channels
- Pipeline
- pipeline
- 명령의 실행 결과를 다음 명령의 입력으로 전달
- 리눅스의 명령어를 조합하여 사용
- 기호 : command1 | command2 | command3
ㄴ 첫 번째 명령의 실행 결과를 2번째 명령의 입력으로 입력- ls -l : 하위 폴더 및 파일의 자세한 정보를 리스트를 보여줌
- wc -l : 입력된 값의 총 라인 수를 출력함.
- more : 한 페이지씩 보여줌
- cut -d: -f 1 : ":" 을 구분 문자로 입력 후 첫 번째 필드를 출력
- sort : 내용을 정렬함
- cat /etc/passwd | cut -d: -f 1 | sort | wc -l
/etc/passwd 의 내용을:
으로 분리 후 첫번째 값만 출력, 정렬 하고 몇 개의 라인인지 확인함.
- pipeline
'쿠버네티스 > shell programming' 카테고리의 다른 글
6. Input&Output (0) | 2024.04.11 |
---|---|
5. Positional Parameters (0) | 2024.04.09 |
4. Bash shell script란 (0) | 2024.04.09 |
2. Bash shell과 변수 (0) | 2024.04.05 |
1. Linux shell 이란? (0) | 2024.04.05 |