본문 바로가기
프로그래밍/LINUX

[LINUX 6일차] CentOS 쉘(Shell) 제어문자 / 쿼터(싱글, 더블, 백, 이스케이프 시퀀스) / 다중명령어(;, &&, |)

by B T Y 2017. 3. 17.
반응형

CentOS 쉘(Shell) 제어문자 / 쿼터(싱글, 더블, 백, 이스케이프 시퀀스) / 다중명령어(;, &&, |)에 대해서 정리한다.



※ 쉘(Shell)의 기능



1. 제어문자


- ctrl + c : 현재 실행중인 명령을 종료



- ctrl + l : 화면 정리

( 정확히 말하자면 화면을 지우는게 아니라 위로 올린다 )

* clear 명령어를 이용해도 화면을 정리 할 수 있다.


- ctrl + u : 명령 라인 정리

( 입력중인 현재 라인을 정리한다 )


- ctrl + d : 로그아웃이나 프로그램 종료

* exit 명령어를 이용해도 로그아웃이 가능하다.


- ctrl + z : 포그라운 프로세스 정지

( 내 눈앞에 현재 실행중인 프로세스를 정지 시킨다 )




2. 쿼터 : ' , " , ` , \



1). ' ( 싱글 쿼터 ) : 문자열을 표현 할 때 사용한다.

* 변수 해석은 불가능하다.



2). " ( 더블 쿼터 ) : 문자열을 표현 할 때 사용한다.

* 변수 해석이 가능하다.


* 변수이름=value변수를 만들 수 있고

변수를 불러 올 때$변수이름을 이용하면 된다.


* echo 명령어는 echo value를 통해서 입력한 입력한 value 값을 

쉘(Shell)이 인식한대로 출력 한다.



( 싱글 쿼터를 이용해 디렉터리명을 묶어주면 스페이스바로 구분이 되있어도

하나의 디렉터리명으로 인식해서 디렉터리를 만들 수 있다 )



( 파일명 또한 마찬가지이고 파일이나 디렉터리명을 띄어쓰기까지 넣어서

만들고 싶을때는 싱글 쿼터로 묶어도 되고 더블 쿼터로 묶어도 상관이 없다 )



( 위와 같이 싱글 쿼터는 $를 사용해도 변수를 해석 할 수 없고 

더블 쿼터는 그와 반대로 변수를 해석 할 수 있는걸 확인 할 수 있다 )



3). \ ( 이스케이프 시퀀스 )

- 쿼터 같은 기능을 가진 문자 앞에 붙여주면 뒤에 붙은 쿼터의 기능을 없애고 

평범한 문자로 만들어준다.



* 이스케이프 시퀀스를 이용해서 더블 쿼터의 기능을 없애고 문자처럼 출력 시킬 수 있다.

( 다만 싱글 쿼터의 경우에는 \( 이스케이프 시퀀스 ) 그대로 나온다는걸 볼 수 있다 )

* 더블 쿼터에서 이스케이프 시퀀스(\) 그 자체를 문자로 출력하려면 \\처럼 두개를 써주면 된다.



4). ` ( 백 쿼터 )

- ` ( 백 쿼터 )로 감싼 내용을 명령어로 치환 해준다.

- 변수에 명령어의 실행 내용을 담을 수 있다.



* echo는 쉘(shell)이 인식한대로 출력 해주는

echo `whoami`의 결과가 백쿼터( ` )로 감쌌기 때문에 

whoami 문자가 명령어로 치환된걸 볼 수 있다.


* 백쿼터( ` )의 기능을 이용해서 변수 안에 명령어 실행 결과의 내용을 저장할 수 있다.




3. 다중 명령어 : ; , && , |

- 한 라인에 여러가지 명령어를 동시에 쓸 수 있게 도와준다.



1). ;

- <command> ; <command> ; <command> ; ...

- 명령어 실행 순서는 앞에서부터 차례대로 실행한다.

- 앞에 명령어에 에러가 발생해도 상관하지 않고 끝까지 실행한다.



( ;로 구분해서 보면 앞쪽 명령어가 에러가 났음에도 불구하고

신경 쓰지않고 뒤쪽 명령어까지 실행이 된걸 알 수 있다 )



2). &&

- <command> && <command> && ...

- ; 와 마찬가지로 명령어를 앞에서부터 차례대로 실행한다.

- 앞에 명령어에 에러가 발생하면 뒤에 명령어는 실행되지 않는다.



3). |

- 명령어를 동시에 수행하게 해준다.


* more, less : 파일을 보는 명령어

-> more는 q키를 눌러서 나가거나 파일 내용의 끝이 나오면 자동으로 나가진다.

( 다만, 위에 내용을 지나가면 다시 위로 올려 볼 수 없다 )

-> less는 q로만 나갈 수 있고 내용이 끝난다고 자동으로 나가지지 않는다.

( 방향키를 이용해 다시 위로 올려볼수 있고 man 명령어와 사용법이 똑같다 )



( | 를 이용해서 명령어를 입력하니 / 디렉터리 안에 하위 목록들을 확인하는 ls -R이 실행되면서

tail 명령어도 같이 실행이 된걸 볼 수 있다 )



아래는 지금까지 배운 내용으로 풀어본 간단한 문제이다.


test.txt



반응형

댓글