ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [ 기본정리 ] 셸에서 사용하는 특수문자
    Technique/LINUX 2016. 5. 4. 12:39
    반응형

    은 사용자가 더욱 편리하게 명령을 입력하고 실행할 수 있도록 다양한 특수 문자를 제공한다.

    특수 문자의 종류와 사용법은 모든 셸에서 거의 비슷하다.

    특수 문자는 셸에서 특별한 의미를 가진 문자로 각 특수 문자별로 특수 기능을 수행한다 주요 특수 문자는 *,?,|,;,[,],~,'',"",`` 등이 있다

    사용자가 명령을 입력하면 셸은 먼저 입력한 내용 중에 특수 문자가 있는지 확인하고 이를 해독하여 적절한형태로 변경한 수 명령을 실행한다.


    특수문자 *

    임의의 문자열을 나타내는 특수 문자로 흔히 사용하는 특수 문자 중의 하나이다.

    셸에서 *은 0개 이상의 문자로 대체된다. 주로 여러 파일의 이름을 나열할 때 파일 이름을 간단히 표시하는 데 사용된다. 명령을 실행할 때 파일 이름을 적어야 하는 자리에 *를 사용하면 모든 파일을 나타낸다.


    사용 예 

    의미 

     ls *

     현재 디렉토리의 모든 파일과 서브 디렉토리를 나열한다. 서브 디렉토리의 내용도 출력한다. 

     cp * /tmp 

     현재 디렉토리의 모든 파일을 /tmp 디레곹리 아래로 복사한다. 

     ls -F t* 

     t, tmp, temp 와 같이 파일명이 t로 시작하는 모든 파일의 이름과 파일 종류를 출력한다 t도 해당하나는 것에 주의 

     cp *.txt, ../ch3 

     확장자가 txt인 모든 파일을 상위 디렉토리 밑의 ch3 디렉토리에 복사한다. 

     ls -l h*d 

     파일명이 h로 시작하고 d로 끝나는 모든 파일의 상세 정보를 출력한다 hd, had, hard, h123d  등 이 조건에 맞는 모든 파일의 정보를 볼 수 ㅇ 


    특수 문자 ? 와 []

    ? 와 [] 는 모두 하나의 문자를 나타내는데 사용된다 ? 는 길이가 1인 임의의 한 문자를 [] 는 괄호 안에 포함된 문자 중 하나를 나타낸다 [] 는 사용할 여러 문자를 나열 하거나 범위를 지정할 수 있으며, 다른 특수 문자와 혼합하여 사용할 수도 있다.


     사용 예

     의미 

     ls t*.txt 

     t다음에 읨의의 한 문자가 오고 파일의 확장자가 txt인 모든 파일의 이름을 출력한다 t1.txt, t2.txt. ta.txt 등이 해당된다. 단 t.txt는 제외된다 

     ls -l tmp[134].txt 

     tmp 다음에 1,3,4 중 한 글자가 오고 파일 확장자가 txt인 모든 파일의 이름을 출력한다 tmp1.txt, tmp3.txt, tmp4.txt 파일이 있으면 해당 파일의 상세 정보를 출력한다. 단 tmp.txt.는 제외된다. 

     ls -l tmp[1-3].txt 

     [1-3]dms 1부터 3까지의 범위를 의미한다. 따라서 ls -l tmp[123].txt와 결과가 같다. tmp1.txt, tmp2.txt, tmp3.txt 파일이 있으면 해당 파일의 상세 정보를 출력한다. 

     ls [0-9]* 

     파일명이 숫자로 시작하는 모든 파일 목록을 출력한다. 

     ls [A-Za-z]*[0-9] 

     파일명이 영문으로 시작하고 숫자로 끝나는 모든 파일 목록을 출력한다. 


    특수문자 ~와 - 

    ~와 - 는 디렉토리를 나타내는 특수 문자이다 ~만 사용하면 현재 작업 중인 사용자의 홈 디렉토리를 나타내고, 다른 사용자의 로그인 ID와 함께 사용하면 ~ 해당 사용자의 홈 디렉토리를 나타낸다 -는 cd 명령으로 디렉토리를 이전하기 직전의 작업 디렉토리를 나타낸다.


     사용 예

     의미 

     cp *.txt ~/ch3 

     확장자가 txt인 모든 파일을 현재 작어 중인 사용자의 홈 디렉토리 아래 tmp 디렉토리로 복사한다. 

     cp ~user2/linux.txt . 

     user2라는 사용자의 홈디렉토리 아래에서 linux.txt 파일을 찾아 현재 디렉토리로 복사한다. 

     cd -  

     이적 작업 디렉토리로 이동한다. 


    특수 문자 ; 와 |

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


     사용 예

     의미 

     date; ls; pwd 

     왼쪽부터 차례대로 명령을 실행한다. 즉 날짜를 출력한 후 현재 디렉토리의 파일 목록을 출력하고 마지막으로 현재 작업 디렉토리의 절대 경로를 보여준다. 

     ls -al / | more 

     루트 디렉토리에 있는 모든 파일의 상세 정보를 한 화면씩 출력한다 ls -al / 명령의 결과가 more 명령의 입력으로 전달되어 페이지 단위로 출력되는 것이다. 


    특수 문자 '' 와 "" 

    ''와 ""는 문자를 감싸서 문자열로 만들어주고, 문자열 안에 사용된 특수 문자의 기능을 없앤다. *나 ?, ; 등을 파일 이름에 사용하거나 화면 메시지로 출력하려고 할 때 셸이 이 문자를 툭수 문자로 간주하여 미리 처리하지 않도록 해야 하는데, 이 때 ''를 사용한다 ''는 모든 특수 문자를 ""는 $, ``, \ 을 제외한 모든 특수 문자를 일반 문자로 간주하여 처리한다.

    셸 변수에 저장된 값을 출력할 때 셸 변수 앞에 $를 붙인다. $를 문자 그대로 사용하려면 '' 을 쓰고 셸 변수의 값으로 처리하려면 "" 를 써야 한다.


    사용 예

     의미 

     echo '$SHELL' 

     $SHELL 문자열이 화면에 출력된다. 

     echo "$SHELL" 

     셸 환경 변수인 SHELL에 저장된 값인 현재 셸의 종류가 화면에 출력된다. 


    특수 문자 ``

    ``는 백쿼터라 불리고 잘못 보면 '' 와 유사하므로 주의 해야한다 셸은 ``로 감싸인 문자열을 명령으로 해석하여 명령의 실행 결과로 바꿔준다.


     사용 예 

     의미 

     echo "Today is `date`" 

     `date`의 실행 결과로 바꿔 Today is 2016.05.04 ... 와같이 표시됨 

     ls /platform/`uname -m` 

     uname -m 의 결과가 문자열로 바꿔 디렉토리 이름으로 된다.


    특수문자 \

    \는 특수문자 바로 앞에 사용되는데, 해당 특수 문자의 효과를 없애고 일반 문자 처럼 사용할 수 있도록 한다


     사용 예

     의미 

     ls -l t\* 

     t* 이라는 이름을 가진 파일의 상세정보를 출력한다 \ 없이 t*을 입력하면 t로 시작하는 모든 파일을 의미한다  

     echo \$SHELL

     $SHELL을 화면에 출력한다. echo '$SHELL'와 같은 결과 


    특수문자 > < >>

    >,<, >> 는 입출력의 방향을 바꾸는 특수문자 이다.


     사용 예 

     의미 

     ls -l > res 

     ls -l 명령의 실행 결과를 화면이 아닌 res 파일에 저장한다 


    반응형

    'Technique > LINUX' 카테고리의 다른 글

    [ 기본정리 ] 파일 접근 권한 변경  (0) 2016.05.05
    [ 기본정리 ] 파일의 속성  (0) 2016.05.04
    [ 기본정리 ] 셸  (0) 2016.05.04
    [ 기본정리 ] 파일 링크  (0) 2016.05.03
    [ 기본정리 ] 경로  (0) 2016.05.03

    댓글

Designed by Tistory.