Shell 기본 사용법

Kail-KM
|2015. 8. 16. 13:28

<출력하기>

배시쉘의 출력명령은 echo와 printf이다.


echo : 화면에 한줄의 문자열을 출력한다

        echo [-n] [문자열]

        ex)echo text

printf:자료를 형식화하여 화면에 출력한다.

        printf 형식 [인수]

        %d, \n등 C언어의 printf함수 형식을 지정한다.

  ex)   printf text

        printf "text\n"

        printf "%d\n" 100

~                                           


chsh : 사용자 로그인 셸을 바꾼다.

-s shell : 지정하는 셸로 로그인 셸을바꾼다.

-l : /etc/shells 파일에 저장된 셸을 출력한다.

  ex) chsh -l

chsh -s /bin/sh user1

chsh


현재 바꿀  수 있는 쉘의 종류는 /etc/shells에 저장되어 있다.

cat  /etc/shells >> sh, dash, bash, rbash 가 존재한다.

rbash의 경우 배시쉘의 심벌릭 링크이다.


<로그인쉘과 서브쉘>

사용자는 프롬프트에서 다른쉘을 실행할수 있는데, 이렇게 새로 생성된 쉘을 서브쉘이라 한다.


<출력하기>

배시쉘의 출력명령은 echo와 printf이다.


echo : 화면에 한줄의 문자열을 출력한다

echo [-n] [문자열]

ex)echo text

printf:자료를 형식화하여 화면에 출력한다.

printf 형식 [인수]

%d, \n등 C언어의 printf함수 형식을 지정한다.

  ex) printf text

printf "text\n"

printf "%d\n" 100


<특수문자>

* : *는 임의의 문자열을 나타내는 특수 문자로 주료 여러파일의 이름을 나열할때 파일 이름을 간단히 표현하는 데 사용된다. 명령을 실행할ㄸ ㅐ 파일이름을 적어야하는 자리에 대신 사용할경우 모든파일을 나타낸다.

ls *  : 현재 디렉터리의 모든 파일과 서브 디렉터리를 나열

cp * /tmp : 현재 디렉터리의 모든 파일을 /tmp 아래로 복사한다.

ls -F t* : t,tmp,temp와 같이 t로 시작하는 모든 파일의 이름과 파일종류를  출력한다.

cp *.txt ../ch3 : 확장자가 txt인 모든파일을 ch3디렉터리로 복사한다.

ls -l h*d : 파일명이 h로 시작,d로 끝나는 모든 파일의 상세정보를출력


?와 [ : 모두 하나의 문자를 나타내는데 사용된다.

?는 길이가 1인 임의의 한문잘ㄹ, []는 괄호안에 포함된 문자중 하나를 나타낸다.

ls t*.txt. : t 다음에 임의의 한문자가 오고 파일의 확장자가 txt인 모든 ㅍ일의 이름을 출력한다.

ls -l tmp[135].txt : tmp다음에 1,3,5중한글자가 오는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의 결과가 more 명령의 입력으로 전달되어 페이지 단위로 출력되는 것이다.


''와"" : 문자를 감싸서 문자열로 만들어 주고, 문자열 안에 사용된 특수 문자의 기능을 없앤다. 

'' : 모든 특수문자를

"" : $,``,\을 제외한 모든 특수문자를 일반 문자로 간주하여 처리

echo '$SHELL' : $SHELL 문자열이 출력됨

echo "$SHELL" : 셸 환경 변수인 shell에 저장된 값인 현재 셸의 종류가 출력


`` : ~의 no shift 형태 , 쉘은 ``로 감싸인 문자열을 명령으로 해석하여 명령의 실행 결과로 바뀌게 한다.

echo "Today is `date`":`date`는 명령어로 해석되어 출력된다.

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


\ : 특수문자 앞에 쓰이며, 해당 특수 문자의 효과를 업새고 일반 문자처럼 처리.

ls - t\* : t*이라는 이름을 가진 파일의 정보를 출력한다. 만약 \가 없을 경우 t로 시작하는 모든 파일의 상세정보를 출력

echo \$SHELL : $SHELL을 출력한다. 

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

'O / S > Linux' 카테고리의 다른 글

리다이렉션  (0) 2015.08.16
Linux 디렉터리와 파일다루기  (0) 2015.08.16
Kali Linux 2.0 Adob Flash Install  (0) 2015.08.14
kali linux 2.0 한글  (0) 2015.08.14
Ubuntu Alt_R 한글 변환 설정  (0) 2015.07.09