프로그래밍/Unix

[유닉스/unix] 쉘(Shell) 환경 설정

미냐님 2020. 4. 30. 13:23
728x90

쉘(Shell) 명령

 

앨리어스(alias : 별칭, 별명)

  • 명령어에 정의한 다른 이름
  • 긴 명령어 대신 짧은 명령어를 만들어 사용할 수 있음
  • 여러 명령어를 하나의 명령어로 만들 수 있음
  • 원래 명령어를 수정해 사용할 수 있음
  • 자주 사용하는 옵션을 자동으로 수행되도록 할 수 있음
  • 형식 : alias 별칭=‘명령’
  • 사용 예
    • alias : 현재 설정된 별칭 목록 출력
    • alias 이름=‘명령’ : 명령을 수정해 사용하는 경우
    • alias 이름=‘명령;명령2;……’ : 여러 명령을 하나의 이름으로 사용
$ alias
alias l=’ls –CF’
alias la=’ls –A’
alias ll=’ls –alF’
......
$

alias 설정

  • 별칭과 =, =과 명령 사이에 공백이 있으면 안 됨
  • 명령에 공백이 있으면 작은따옴표 사용
$ alias ls=’ls –F’
$ ls
hello.c tmp/
$
  • rm 명령
$ alias rm=’rm -i’
$ rm ttt
rm: remove regular file ‘ttt’?

alias 삭제

  • unalias 명령
  • 형식 : unalias 앨리어스
$ unalias rm
$ unalias ls
$

히스토리(history)

  • 이전에 입력한 명령을 다시 불러 사용할 수 있게 하는 기능
  • bash은 사용자가 입력한 명령을 사용자 홈 디렉토리 아래의 특수한 파일에 저장
  • 숨김 파일인 .bash_history는 명령을 저장하는 목적으로 사용되어 사용자가 실행한 명령이 저장됨
  • 형식 : history [숫자값]

이전 명령 보기

  • 인자 없이 history 명령만 사용하면 전체 히스토리 명령을 보여줌
$ history
......
2266 alias rm=‘rm –i’
2267 alias
2268 unalias rm
2269 unalias ls
2270 history
$

명령 재실행

  • 히스토리의 장점은 이전에 실행했던 길고 복잡한 명령을 재입력하지 않고 반복 실행할 수 있다는 것
  • 이벤트 지정자 사용
$ !!
history
.....
2269 unalias ls
2270 history
2271 history
$

명령 편집하기

  • 화살표 키 이용
    • 상하 화살표 키를 이용해 이전 명령을 불러온 후 좌우 화살표 키를 이용해 명령의 잘못된 부분을 수정

  • 파일명 자동 완성 기능 설정
    • 현재 디렉토리에서 파일명의 앞부분 일부를 입력하고 Esc 키를 두 번 또는 Tab 키를 입력하면 나머지 부분을 자동으로 완성.
    • 입력한 앞부분이 중복되면 중복된 부분까지만 출력
    • l로 시작하는 파일이 3개 있으므로, l을 입력하고 Tab 키를 입력하면 중복되는 부분인 local.까지만 출력하고 기다림
    • 이 때 p를 입력하고 Tab키를 입력하면 local.profile로 파일명을 완성해줌
$ ls
local.cshrc local.login local.profile tmp
$ ls l (Tab) --> ls local.
$ ls local.p (Tab) --> ls local.profile

쉘 환경 설정

 

쉘 프롬프트 설정

  • 환경 변수 PS1에 프롬프트로 사용할 문자열 저장
    • 문자열 뒤에 공백 문자를 하나 넣어주면 프롬프트와 명령어를 쉽게 구분할 수 있다.
$ PS1=“Hello> ”
Hello> pwd
/home/ksshin
Hello>
  • 프롬프트가 Unix] 모양이 되도록 변경
$ PS1=‘Unix]’
Unix]
  • 프롬프트에 현재 경로가 나오도록 변경
$ PS1=“[$PWD] ”
[/home/ksshin]
  • 프롬프트에 현재 사용자 이름이 나오도록 변경
$ PS1=“[$LOGNAME]”
[ksshin]
  • 유닉스 명령 실행 결과를 이용하여 프롬프트 변경
    • uname –n은 호스트 이름을 알려주는 명령
    • 명령을 실행시킨 결과를 출력하기 위해 ` 문자를 사용
  • 프롬프트의 모양은 다음에 로그인하면 이전의 프롬프트로 돌아감
$ PS1=“`uname –n` $ ”
Ubuntu $

환경 설정을 위한 파일 설정

  • 환경 설정 파일 : 사용자가 로그인할 때마다 자동으로 실행되는 명령을 저장한 것
  • 시스템 초기화 파일과 사용자 초기화 파일
  • 사용자가 로그인하면 먼저 시스템 초기화 파일이 실행되어 시스템 공통 환경을 만듦
  • 이후 사용자 초기화 파일을 순서대로 실행해 사용자별 맞춤 환경을 만듦
  • 시스템 초기화 파일
    • 시스템을 사용하는 전체 사용자의 공통 환경을 설정하는 파일
    • /etc 디렉토리에 존재. 시스템 관리자가 관리
    • 주요 기능
      • 환경 변수 설정
      • 기본 명령어 경로 설정
      • 기본 터미널 설정
      • 사용자 접속시 관리자의 인사말 출력
  • 사용자 초기화 파일
    • 사용자의 홈 디렉토리에 존재. 사용자가 수정하고 관리
    • 주요 내용
      • 기본 프롬프트 설정
      • 사용 권한 설정
      • 명령어 경로 설정
      • 사용자 앨리어스 설정
      • 기타 환경 설정
    • 사용자 초기화 파일 : .profile(또는 .bash_profile)과 .bashrc
    • .profile(또는 .bash_profile)은 로그인할 때만 실행
    • .bashrc 파일은 로그인할 때는 실행되지 않고, 자식 쉘이 실행될 때마다 실행됨
    • 항상 같은 환경에서 작업하고 싶다면, 모든 환경 설정 값은 .bashrc에 넣고, .profile(또는 .bash_profile)의 마지막 부분에서 .bashrc 파일을 source 명령으로 실행시키는 것이 좋음

사용자 초기화 파일(배시 쉘, bash shell)

  • 내 홈 디렉토리에 있는 사용자 초기화 파일은 .profile (또는 .bash_profile)
    • 사용자가 로그인하면서 환경을 설정하기 위해 맨 처음 실행되는 일종의 배치 파일
    • 사용자는 자신의 쉘 환경을 바꿀 수 있음
    • 기본 프롬프트 설정, 명령어 경로 설정
  • .bashrc 파일
    • 사용자가 로그인할 때 실행됨
    • 쉘 설정 및 alias 관련 설정
  • .bash_logout 파일
    • 로그아웃에 관련된 설정을 해주는 파일
  • .bash_history 파일
    • 사용자가 입력했던 명령어들에 대한 기록이 남아 있음
    • vi 편집기로 기록의 내용 변경 가능
  • 사용자 초기화 파일 실행 : .profile이나 .bashrc 파일을 처음 작성하거나 내용을 수정하였을 경우, 적용하려면 source 명령어를 사용해 실행
$ source .profile
$
728x90