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 명령어도 같이 실행이 된걸 볼 수 있다 )
아래는 지금까지 배운 내용으로 풀어본 간단한 문제이다.
댓글