WAS Engineer - Linux 2번째

이정빈·2022년 9월 18일
0

리눅스 복습

목록 보기
2/11
post-thumbnail

Bash 설정

alias

별칭을 붙이는 명령어

alias <이름>='<명령어>'
(ex : alias la='ls -a' <- 모든 파일을 출력하는 la 명령어)

  1. alias 확인과 삭제
    명령어가 별칭인지 아닌지를 확인하기 위해서 type 명령어 사용
  • ls와 cp 명령어의 별칭 여부 확인

    $ type ls
    ls는 'ls -F'의 별칭임
    $ type cp
    cp는 해시됨 (/usr/bin/cp)

위 예를 보면 ls가 ls -F의 별칭인 것을 알 수 있음.

  • 설정한 별칭 지우기

    unalias <명령어>

  1. alias 일시적 무효화
  • 전체 경로로 명령어 입력

    $ /bin/ls

  • command 명령어 사용

    $ command ls

  • 명령어 앞에 (역슬래시) 추가

    $ \ls

Bash의 옵션

  • 배시의 옵션 기능 활성화/비활성화

    set -o/+o <옵션 이름>

+o를 지정하면 비활성화됨

  • ignoreeof 기능 활성화

    $ set -o ignoreeof <- Ctrl+d를 무시
    $ <- Ctrl+d를 입력
    셀을 나가려면 "exit"를 사용하세요 <- 셀이 종료되지 않음

  • set 명령어로 지정 가능한 옵션

옵션명내용
ignoreeofCtrl+d로 인한 셸 종료를 방지
noclobber이미 존재하는 파일을 리다이렉트로 덮어쓰지 않음
noglob경로 확장을 무효로 함. * 등을 셸에서 확장하지 않음
  • shopt 명령어

    shopt -s/-u <옵션 이름>

-s를 지정하면 활성화되고 -u를 지정하면 비활성화됨

  • shopt 명령어로 지정 가능한 옵션
옵션명내용
autocd디렉터리 이름을 입력하면 해당 디렉터리로 이동함
dotglob*나 ?를 사용한 경로 확장의 결과에 .으로 시작되는 파일도 포함시킴
cdspellcd 명령어 실행 시 디렉터리 이름의 오타를 자동 교정
globstar경로 확장으로 **라는 패턴을 사용하면 서브 디렉터리까지 포함한 모든 파일에 매치됨
histappend배시를 종료할 때 히스토리 파일에 명령어 이력을 덮어쓰지 않고 추가함

셸 변수

  1. 변수 설정
  • 셸 변수 설정

    <변수명>=<값>

값에 공백을 포함해야 하는 경우에는 작은 따옴표(')나 큰따옴표(")로 감싸줘야 한다.

  1. PS1 : 프롬프트 설정

    $ (프롬프트) echo Hello (커맨드 라인)

프롬프트를 바꾸기 위해서는 다음과 같이 셸 변수 PS1의 값을 바꾸면 된다

$ PS1='bash> '
bash>

\u는 현재 사용자의 이름을 의미. PS1에 \u를 지정하면 사용자 이름이 프롬프트에 표시

$ PS1='[\u]' <- 프롬프트의 []안에 사용자 이름 표시
[ldk]>

\w는 현재 디렉터리를 의미

$ PS1='[\u] \w $' <-\w를 ps1에 설정

[ldk]>~$ < 현재는 홈 디렉터리(~)에 있음
[ldk]>~$ cd /usr/local < /usr/local로 이동
[ldk]> /usr/local < 프롬프트를 보는 것만으로 현재 디렉터리 파악 가능

  • 프롬프트에서 사용할 수 있는 기호
기호내용
\d현재 날짜(요일, 월, 일,형식)
\h서버의 호스트 이름
\H서버의 도메인 이름
\n개행문자(줄바꿈)
\tHH:MM:SS 형식으로 24시간 단위의 현재 시각 표시
\u사용자 이름
\w현재 디렉터리의 전체 경로 표시
\$현재 디렉터리의 전체 경로 중 마지막 디렉터리만 표시
\\ 문자 자체를 표시
  1. PATH : 명령어를 찾는 경로

셸 변수 PATH에는 명령어의 위치를 찾는 경로가 저장되어 있다. 이 변수에 명령어를 찾을 디렉터리를 콜론(:)으로 구분해 설정하면 된다

  1. LANG : 로케일

리눅스를 설치할 때 한국어를 선택했으면 배시의 에러 메시지 등이 한글로 표시된다

현재 사용 중인 로케일은 LANG이라는 셸 변수에 저장된다. 다음 실행에서 ko_KR.UTF-8은 한글의 UTF-8 인코딩을 의미한다.

  • 현재 사용중인 로케일은 한글

    $ echo $LANG
    ko_KR.UTF-8

시스템에서 지원하는 로케일은 locale 명령어에 -a 옵션을 지정하여 확인할 수 있다

  • 시스템에 적용 가능한 로케일 일람 확인

    $ locale -a
    C
    C.UTF-8
    POSIX
    en_AG
    en_AG.utf8
    en_AU.utf8
    ...생략...

로케일을 변경할 수도 있다.

  1. 그 외의 셸 변수
  • 커맨드 라인 이력 관련 셸 변수
셸 변수명내용
HISTFILE커맨드 라인 이력을 저장할 파일 이름. 기본값은 ~/.bash_history
HISTFILESIZE파일에 저장할 커맨드 라인 이력의 최대 개수
HISTSIZE메모리에 저장할 커맨드 라인 이력의 최대 개수
  • 셸 상태 관련 셸 변수
셸 변수명내용
HOME홈 디렉터리
SHELL로그인 셸의 경로
PWD현재 디렉터리

환경 변수

명령어 중에는 파일 시스템에 실행 파일로 존재하는 외부 명어가 있고, 셸 자체에 포함된 내장 명령어가 있다. type 명령어를 통해 어떤 명령어에 속해 있는지 알 수 있다

외부 명령어는 셸 변수를 참고 할 수 없다.
하지만 Lang에 설정된 로케일과 같이 외부 명령어에서도 참고하면 좋을 변수들이 있다. 이처럼 외부 명령어에서도 값을 참조할 수 있는 변수를 환경 변수라고 한다.

  1. printenv 명령어 : 환경 변수 표시

현재 셸에 설정된 환경 변수를 출력하기 위해서는 printenv 명령어를 사용

  • 현재 설정된 환경 변수 출력

$ printenv
SHELL=/bin/bash
PWD=/home/ldk
LOGNAME=ldk
XDG_SESSION_TYPE=tty
MOTD_SHOWN=pam
HOME=/home/ldk
LANG=en_US.UTF-8
...생략...

  1. export 명령어: 환경 변수 설정

환경 변수를 설정하려면 export 명령어를 사용해야 한다

  • 지정한 셸 변수를 환경 변수로 설정

    export <셸 변수의 이름>

  • 셸 변수 LESS를 환경 변수로 설정

    $ LESS='--no-init'
    $ export LESS

이후 less명령어를 사용할 때마다 --no-init 옵션이 적용되어 실행됨

배시 설정 파일

다음 로그인 했을 때도 자동으로 적용하기 위해서는 배시의 설정 파일의 수정해야 함

  1. etc/profile, ~/. profile, ~/.bashrc

배시는 기동하면서 많은 설정파일을 읽는다. 이 중에서 사용자별 설정은 ~/.bashrc 파일을 수정하면 된다.

배시가 로그인 셸로 기동하는 경우는 먼저 /etc/profile을 읽고, 이어서 ~/.profile을 읽는다.

배시에 대한 설정을 바꾸기 위해서는 이들 설정 파일을 Vim등의 에디터로 수정하면 된다

/etc/profile은 시스템 전체에 적용되는 설정 파일. 모든 사용자에게 적용

~/.profile은 사용자별 설정 파일. 대부분은 배포판에서 ~/.profile에 ~/.bashrc를 실행하는 코드가 포함되어 있다

  • 어떤 설정 파일을 바꿔야 하는가

~.profile과 ~/.bashrc는 둘 다 개인 사용자별 배시 설정 파일

~/.profile은 로그인 할 때만 읽히며, ~/.bashrc는 배시가 기동할 때마다 읽힌다. 따라서 로그인 할 때 한 번만 설정하면 되는 항목은 ~/.profile에 기재하고, 배시를 기동할 때마다 설정해야 하는 항목은 ~/.bashrc에 기재하면 된다

대부분은 ~/.bashrc에 설정하는 것이 보통이다

  1. 설정 파일을 변경할 때 주의 사항

~/.bashrc를 수정하기 전에 반드시 다른 이름으로 백업해 두는 것이 좋다

  • .bashrc 파일을 다른 이름으로 백업하기

    $cp .bashrc .bashrc.org

실수로 잘못하여도 .bashrc.org에서 복원이 가능하다

2개의 터미널을 사용하여 다른 터미널에서의 작업이 잘못했을 때 수정하도록 설정해 놓는 것이 좋다

  1. 설정 파일 읽기

Vim을 사용하여 ~/.bashrc 파일을 열어 다음과 같은 내용을 기재. 많은 배포판에서 ~/.bashrc 파일은 처음부터 존재하니 파일을 열어 마지막 행에 추가하면 된다. 만약 ~/.bashrc 파일이 없다면 새로 만들면 된다

  • .bashrc

    PS1='[\u@\h] \W \t $'

로그아웃한 뒤 로그인을 하면 프롬프트가 바뀐 것을 확인할 수 있다

  1. 주석

프로그래밍 언어처럼 배시의 설정 파일에도 주석을 사용할 수 있다. 주석이란 동작에 영향을 미치지 않는 메모와도 같다

배시에서는 # 이후의 내용이 주석으로 간주된다

  1. 배시 설정 예
  • ~/.profile
export PATH="$PATH:$HOME/bin"
if [ -f ~/.bashrc ]; then
	source ~ /.bashrc
fi
profile
WAS Engineer, Cloud Engineer(지망)

0개의 댓글