Hayden's Archive

[Linux] 리눅스 기본 3- 셸 명령 본문

Study/DevOps

[Linux] 리눅스 기본 3- 셸 명령

_hayden 2020. 10. 13. 13:26

간단한 명령

  • date 명령 : 현재 요일과 날짜 및 시간을 보여줌
  • pwd 명령 : 현재 작업 디렉터리를 보여줌

  • 대략 셀 명령의 형식은 다음과 같음. 명령어(command)에 따라 옵션(options)이나 인수(argument)가 필수적일 수도, 선택적일 수도 있음.
command options arguments

 

 

명령의 옵션과 인수

명령의 옵션

  • 가장 자주 사용되는 옵션 형태 : '유닉스 스타일'로 알려진 '짧은 옵션'.
  • -a와 같이 1개의 문자를 대시(-) 문자 뒤에 붙여 사용(대소문자 구분).
  • 여러 옵션을 사용할 때는 여러 옵션을 개별적으로 나열할 수도 있고 대시(-) 뒤에 모두 붙여 사용할 수도 있음.
  • 아래는 같은 기능을 수행함.
$ ls -lat
$ ls -l -a -t

 

  • 'GNU 스타일'로 알려진 '긴 옵션'의 형태.
  • 옵션을 표시할 때 이중 대시(—) 뒤에 단어를 붙여 사용
$ ls --directory 
$ ls --help

 

  • 단일 대시(-)로 ls -help를 수행하면 4개의 옵션(-h, -e, -l, -p)를 각각 적용한 것이 됨

    (참고 : 실제 ls 명령에는 -e 옵션이 없음)

  • 'BSD 스타일' 옵션 : 대시(-)를 사용하지 않는 옵션

명령의 인수

  • 인수는 파일 이름, 디렉터리 , 사용자 계정, 디바이스 등으로 나타남
  • 명령 행의 마지막 위치에 '명령어의 인수'를 둘 수 있음.
$ cat /etc/passwd
  • 옵션을 지정할 때 '옵션의 인수'를 포함할 수 있음.

    • 짧은 옵션은 공백 다음에 인수를 위치시킴

      (아래는 로그인 셸을 바꾸는 명령)

      $ chsh -s /bin/tcsh
    • 긴 옵션은 공백 없이 바로 등호(=)와 인수를 붙여서 지정

      $ ls -l --sort=time
  • 옵션 없이 2개의 인수를 사용한 예 (공백이 포함되어 있는 경우 하나의 인수로 다루려면 인용 부호 "" 또는 ''를 사용하여 묶어줘야 함)

  • echo 명령 : 주어진 문자열 인수를 화면에 출력하는 명령

  • 아래는 환경 변수 $PATH의 값을 보여줌

  • 경로와 경로는 콜론(:)으로 구분됨.

  • 셸이 명령 수행을 위해 실행 프로그램을 찾을 때 '현재 작업 디렉터리(.)'를 자동으로 검색하지는 않음.

  • ~는 현재 작업 중인 사용자의 홈 디렉터리를 의미함.

  • /home/yeony/scriptx.sh 또는 ~/scriptx.sh

 

명령의 종류

- 명령의 종류

에일리어스 alias 명령을 사용하여 특정 명령을 옵션과 함께 짧은 별칭으로 정의해 둘 수 있음
셸 예약어 셸에서 예약된 단어로, 셸 스크립트 작성 시 사용되는 do, while, case, else 등
함수 셸에서 수행될 수 있는 일련의 명령을 함수로 정의한 것
내장 명령 셸 내부에 만들어져 있는 명령으로 cd, echo, pwd 등이 이것에 해당함. man builtin 을 실행해 보면 내장 명령의 사용법을 확인할 수 있음.
일반 명령 파일 시스템에 실행 파일로 존재하는 명령

 

단축 명령 만들기: alias

  • 자주 사용되는 명령의 별칭을 만드는 것. 빠르고 효율적인 단축 명령을 만들기 위함.

  • 예시

    • ls -A를 대신하여 la라는 짧은 명령을 수행

      $ alias la='ls -A'
    • rm 명령의 에일리어스 설정이 되어 있지 않은 상태에서 실수로 rm *를 수행한다면 디렉터리에 있는 모든 파일이 삭제됨. 하지만 아래와 같이 에일리어스 설정이 되어 있으면 -i 옵션이 적용되어 삭제 전에 확인 과정을 거침.

      $ alias rm='rm -i'
  • 단축 명령 해제하기

    $ unalias rm
  • 나중에 로그인할 때도 계속 에일리어스 설정을 유지하려면 셸의 환경 설정 파일에 기록해두어야 함.

 

명령의 해석 방법 알기 : type

  • 특정 명령을 어떻게 해석하는지 알기 위해 type 명령을 사용할 수 있음.
  • 일반 명령일 경우 : 실행 파일의 위치를 보여줌
  • 여러 유형으로 명령이 존재할 경우 : -a 옵션을 사용하면 모든 사항 확인 가능.

 

실행 프로그램 찾기 : which

  • 명령이 실행되는 경우 사용자의 PATH 환경 변수를 기초로 상응하는 실행 프로그램이 어느 디렉터리에 존재하는지 찾아서 절대경로 방식으로 출력

 

실행 프로그램 확인 : whereis

  • 찾고자 하는 명령을 whereis 명령의 인수로 지정하여 실행하면 명령의 실행 프로그램이 어디에 있는지 찾아서 알려줌
  • which 명령과 차이점 : whereis 명령은 소스와 매뉴얼 페이지가 존재하는 경우 해당 파일도 찾아 출력해줌

 

온라인 매뉴얼 페이지 보기 : man

  • 매뉴얼 페이지를 볼 수 있으며 각종 프로그램의 사용법을 자세히 확인 가능

$ man whereis

  • 실행 결과를 종료하려면 q 입력

  • WHEREIS(1) 에서 숫자 1은 매뉴얼 페이지를 분류하기 위한 '섹션 번호'

  • man 명령을 사용할 때 특정 섹션에 존재하는 매뉴얼 페이지를 보려면 섹션 번호를 인수로 제공해야 함

     

$ man 5 passwd

 

$ man 3 printf

 

  • 매뉴얼 페이지의 섹션 분류

 

  • 명령어의 형식이나 옵션의 의미를 간단히 확인하려면 대부분의 명령어가 제공하는 —help 옵션을 사용하는 게 좋음.
$ man mkdir 
$ mkdir --help