본문 바로가기
서버/Linux

[Linux] Bash Shell 명령어 기능

by 느링 2017. 9. 13.

Bash ( Bourne Again Shell )

- 본쉘(Bourne shell)을 개량하여 만든 것입니다.

- GNU 프로젝트를 위해 브라이언 폭스가 작성한 유닉스 쉘입니다.

- 대부분의 리눅스 배포판은 Bash 쉘을 기본 쉘로 채택하여 사용하고 있으며 그 외에 다른 쉘은 거의 사용하지 않습니다.

 

Bash Shell 기능

① 탭 완성 [tab]

- 사용하려는 명령의 일부만 입력하고 tab키를 이용하여 완성해줍니다.

- 중복되는 문자열(파일)/명령이 많을 경우 tab키를 한 번 더 누르면 중복되는 목록을 표시해줍니다.

 

*pr치고 [tab]+[tab] 두 번 치시게 되면 위에 보신 것처럼 중복되는 목록을 표시해줍니다.

 

② 명령라인 히스토리 [키보드 방향키 up/down] / #history

- 이전에 실행했던 명령어를 재 실행 할 수 있습니다.

- 오타나 잘못된 명령어를 실행한 경우, 키보드 방향키 up/down을 이용하여

  이전 명령어를 불러와 오타만 수정하여 사용할 수 있습니다.

 

#history

이전에 입력했었던 명령어들 출력, 기본 1000줄

 

 

③ alias 기능

- 명령어에 별명을 지정해서 사용할 수 있게 만들어 주는 기능

 

#alias

현재 등록된 alias확인

#alias [name] = [value]

alias등록

#unalias [name]

[name]으로 등록된 alias 해제

 

*clear라는 명령어를 c라는 별명으로 지정된 것이며, c만쳐도 clear라는 명령어 기능을 수행합니다.

 

④ 중괄호 확장 #echo [문자열]

- bash shell에만 있는 기능으로 임의의 문자열을 생성하고 이를 실행할 수 있는 기능입니다.

- 괄호를 기반으로 명령어를 확장할 문자열을 콤마로 구분해서 작성하고,

  중괄호 앞뒤에는 치환되지 않는 패턴을 적어 문자열을 생성할 수 있습니다.

1) #echo [문자열]    //[문자열] 출력

 

2) #echo day{1,2,3}0

 

3) #echo {1..10}

*연속되는 값은 중괄호 사이에 ".."을 이용하여 사용할 수 있습니다.

 

4) #echo {1..10..2}

*연속되는 값의 증가도 ".."을 이용하여 설정 할 수 있습니다. {초기값..최대값..증가값}

 

⑤ 반복문 ( for loop )

- 명령어를 여러 번 실행할 때나 증가하는 패턴을 처리할 때 유용한 기능입니다.

 

*for loop test라는 문구가 i변수를 1부터 10까지 2씩 증가하여 출력되게 하는 것입니다.

 

⑥ 줄 편집

-Bash 커맨드라인(Command Line)을 편집해서 쓸 수 있는 기능으로 익숙해지면 작업이 더 효율적입니다.

 

유용한 줄편집 기능

[ 커서 이동 ]

Ctrl+a : 해당 라인의 처음으로 커서를 이동

Ctrl+e : 해당 라인의 마지막으로 커서를 이동

Ctrl+b : 커서를 한 칸 앞으로 이동

Ctrl+f : 커서를 한 칸 뒤로 이동

 

[편집]

Ctrl+k : 커서 위치부터 줄의 마지막까지 삭제

Ctrl+u : 줄의 처음부터 커서 앞까지 삭제

Ctrl+w : 커서 앞의 단어 삭제

Ctrl+T : 커서 위치의 글자와 앞 글자를 바꿈

 

[ History 기능 ]

Ctrl+p : 예전 히스토리로 이동 ( = 키보드 up )

Ctrl+n : 다음 히스토리로 이동 ( = 키보드 down )

Ctrl+o : 이전 명령어를 순차적으로 실행

Ctrl+r : 입력한 글자가 포함된 최근 명령어 검색

 

역 점진 탐색

- bash의 history크기는 HISTSIZE 환경변수에 저장할 수 있는 최대 갯수가 지정되어있습니다.

  (기본 값 1000, 확인 방법 #echo $HISTSIZE)

- 저장되어 있는 범위내에서 예전에 사용했던 명령어를 한 글자씩 입력하면서 찾을 수 있으며,

  많은 명령어를 수행 했을 때 예전 명령어를 불러올 때 유용합니다.

 

*Ctrl+r 키를 누르면 프롬프트가 사라지고, Reverse-i-search모드로 변경됩니다.

 

Login

- 사용자 계정 및 암호를 통해 사용자 인증을 거치는 과정입니다.

- 파일 및 디렉토리에 대해 접근 권한 및 사용 권한을 얻어 시스템을 사용할 수 있게 되는 과정입니다.

 

리눅스는 멀티유저 환경으로 이러한 과정이 없으면,

다른 사용자가 임의로 시스템 변경 작업을 할 수 있는 문제가 발생합니다.

 

Logout

Xshell Ctrl+D (연결해제)

Console

- Ctrl + D (Logout)

- #exit

- #logout

 

Console에서는 총 6개의 터미널이 제공됩니다.

- Ctrl + Alt + F1 ~ F6