DevOps/Linux

리눅스 - 셸의 기능

알로그 2021. 3. 28. 22:06
반응형

리눅스 핵심 레퍼런스 책 스터디

셸의 기능

리눅스의 사용자 명령행 인터페이스로 여러가지 쉘 명령어를 사용할 수 있음
예로 wc 프로그램은 텍스트 파일의 줄을 세는데 활용됨
컴퓨터에 로그인한 사용자 수 예제

> who | wc -l
4

 

와일드 카드

  • * : 0개 이상의 연속되는 문자
  • ? : 어떤 한 문자
  • [set] : set에 포함된 특정 문자 지칭
  • [^set] : set에 포함되지 않은 특정 문자 지칭

 

중괄호 확장

와일드카드처럼 중괄호 표현식도 확장되어 명령어에 대한 복수의 인자가 될 수 있음

> echo sand{X,YY,ZZZ}wich
sandXwich sandYYwich sandZZZwich

 

셸 변수

공통적으로 정의되어 있는 변수

  • HOME: /home/smith 같은 홈 디렉토리
  • OLDPWD: cd 명령어로 디렉토리를 옮기기 전 디렉토리
  • PATH: 셀의 검색 경로 디렉토리, 콜론으로 구분됨
  • PWD: 현재 디렉토리
  • SHELL: /bin/bash 같은 셸로 가는 경로

셸의 환경 변수 목록을 보려면 printenv를 실행

> printenv HOME
/home/smith

 

검색경로

셸 명령을 통해 실행되는 프로그램들은 PATH 변수에 지정되어 있어야 함
임시로 셸의 검색 경로에 디렉토리를 추가하려면 PATH 변수에 추가하면 됨

> PATH=$PATH:/usr/sbin
> echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/sbin

이러한 변경은 실행중인 셸에만 영향을 끼치며 시스템에 영구적으로 지정하려면 ~/.bash_profile에서 PATH 변수를 변경 후 재로그인 하거나 현재 셸 창에서 다음 명령어를 실행하면 됨

> . $HOME/.bash_profile

 

별칭

긴 명령어를 빠르게 입력하도록 명령어로 재정의할 수 있음

> alias ll='ls -lG'

~/.bash_aliases 파일에 별칭을 지정하면 로그인 후 언제든지 사용할 수 있음

 

입출력 리다이렉션

> any command 2> errorfile
> any command > outfile 2> errorfile  # 파일 분리

 

따옴표

역따옴표(backtick = `)은 그 안의 내용을 셸 명령어로 인식하고, 그 내용은 명령어에 의한 표준 출력으로 변경됨

> date +%Y
2016
> echo This year is `date +%Y`
This year is 2016

달러기호와 역따옴표는 동일하게 해석됨

> echo This year is $(date +%Y)
This year is 2016

하지만 큰 단위에서 작은 단위를 끼어 넣을 수 있다는 점에서 더 나음

> echo Next year is $(expr $(date +%Y) + 1)
Next year is 2017

 

셸 작업 제어

  • jobs: 작업 목록 나열
  • &: 작업을 백그라운드로 실행 (명령어 뒤에 한칸 띄고 & 입력)
  • suspend: 셸 일시 정지
  • fg: 작업을 재실행하며 포그라운드로 가져옴
  • bg: 정지된 작업을 백그라운드로 보내며 실행
반응형