리오집사의 기억저장소

04. 쉘 사용하기 [배시 쉘 기본 사용법]

[셸 내장 명령]

보통 리눅스 명령은 /bin 또는 /usr/bin 디렉토리에 별도의 실행 파일로 존재한다.

but, 셸 내장 명령은 셸 안에 포함되어 있어서(ex, cd 명령어) 별도의 실행 파일을 필요로 하지 않는다.

 

 

 

[배시 셸의 출력 명령 echo 와 printf]

문자열 출력이나 셸 변수 값 출력, 명령 결과 출력 등에 사용된다.

 

echo       : 화면에 한 줄의 문자열 출력  <-형식 echo [-n] [문자열]

printf : c언어의 printf 함수 형식과 비슷.  ex) printf  "%d + %d = %d \n" 10 10 20

 

 

 

[배시 셸의 특수 문자 사용]

ⓐ * (별 표)  :  '모든'을 나타낼 때 사용된다.

 

   ex) ls *                 <-현재 디렉터리의 모든 파일과 서브 디렉터리를 나열

        cp *  /tmp    <-현재 디렉터리의 모든 파일을 /tmp 디렉터리 아래에 복사

        ls  -F  t*    <-t,tmp 등 파일명이 t로 시작하는 모든 파일의 이름과 파일 종류를 출력.

 

ⓑ ? (물음표) , [] (대괄호) : 하나의 문자를 나타내는데 사용된다.

 

   ex) ls t*.txt                      <-t1.txt, ta.txt. 등을 출력한다.

        ls -l tmp[135].txt   <-tmp1.txt, tmp3.txt, tmp5.txt 파일이 있을경우 해당 파일의 상세 정보를 출력한다.

        ls [A-Za-z]*[0-9]     <-파일명이 영문으로 시작하고 숫자로 끝나는 모든 파일 목록을 출력한다.

 

ⓒ ~ (물결) , - (붙임표) : 디렉터리를 나타내는 특수 문자이다.

   ~(물결)은 현재 작업 중인 사용자의 홈 디렉터리를 나타내고, [~로그인ID]는 해당 사용자의 홈 디렉터리를 나타낸다.

 

   ex)cp *.txt ~/ch3                     <- 확장자가 txt인 모든 파일을 현재 작업 중인 사용자의 홈 디렉터리의 tmp 디렉터리로 복사

       cp ~prankster/linux.txt  <- prankster라는 사용자의 홈 디렉터리 아래에서 linux.txt. 파일을 찾아 현재 디렉터리로 복사

       cd -                                           <- 이전 작업 디렉터리로 이동

 

ⓓ ; (세미콜론) , | (파이프) : 연결 관련 특수문자. 

   ;은 연결된 명령을 왼쪽부터 차례로 실행, |는 왼쪽 명령의 실행 결과를 오른쪽 명령의 입력으로 전달.

 

   ex) data;ls;pwd     <-날짜 출력 후 현재 디렉터리의 파일 목록 출력 후 현재 작업 디렉터리의 절대 경로 보여줌.

        ls -al / more  <- ls -al / 명령의 결과가 more 명령의 입력으로 전달되어 페이지 단위로 출력된다.

 

ⓔ ' ' (작은따옴표) , " " (큰따옴표) : 특수문자 기능을 없애고 문자로 간주하려 처리하도록 해준다.

 

   ex) echo '$SHELL'  <- $SHELL 문자열이 화면에 그대로 출력됨.

        echo "$SHELL"  <- 셸 환경 변수인 SHELL에 저장된 값인 현재 셸의 종류가 화면에 출력됨.

 

   위와 같이 ' '는 모든 특수 문자를,  " "는 $, ``, \을 제외한 모든 특수 문자를 일반 문자로 간주하여 처리

 

`` (백쿼터, 키보드 숫자 1 왼쪽에 있는 키) : 셸은 ``로 감싸인 문자열을 명령으로 해석한다.

 

   ex)echo "Today is `date`"  <-'date'는 명령으로 해석되어 date 명령의 실행 결과로 바뀜.

       ls /platform/'uname -m' <-uname -m 명령의 실행 결과를 문자열로 바꿔 디렉터리 이름으로 사용.

 

ⓖ (\ 누르면 나오는 특수문자. 역빗금) : 

     특수 문자 앞에서 해당 특수 문자의 효과를 없애고 일반 문자처럼 처리하게 해 준다.

 
   ex) echo \$SHELL   <- echo '%SHELL'의 결과와 같다.


반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band