맥 터미널에서 쉘 환경 구축하기

터미널 활용도를 높일 수 있는 쉘 환경을 구축하는 방법입니다. 일반 사용자들도 터미널을 쉽고 유용하게 사용하기 위함이며, 고급 사용자들은 대부분 이미 본인만의 환경으로 잘 구축해두고 사용하고 있습니다.

물론, 쉘 환경을 구축하는 행위는 의무적인 사항이 아니며(개발 환경에 환경 변수 설정은 필수이긴 합니다), 사용자의 따른 기호 및 성향에 따라 다양한 방법으로 구축될 수 있습니다. 예를 들면, alias를 적절히 활용하여 매번 ls 커맨드에 옵션 -aF 나 -l을 입력하는 번거로움을 줄일 수 있으며, PS1 변수에 적절한 값을 주어, Command Prompt(명령어 입력줄)을 필요한 정보만 모아 출력할 수 있습니다.

  • env 혹은 printenv로 설정된 쉘 변수를 출력할 수 있습니다. ▼
env
혹은
printenv

쉘 환경 구축하기

Unix 시스템은 멀티 유저 시스템(사용자를 만들어서 각기 다른 환경으로 작업이 되는)이므로 기본적인 Shell 구성을 두군데에서 진행주셔야 합니다. 또한, 사용자 레벨(low level)에서 설정된 구성은 루트 레벨(Global Configuration)을 덮어쓰게 됩니다.

  • /etc/bashrc (모든 사용자에게 적용되는 Configuration)
  •  ~/.bash_profile (현재 접속된 사용자에게만 적용되는 Configuration)

/etc/bashrc

글로벌로 모든 사용자에게 적용되는 Configuration입니다. /etc/bashrc는 Root Directory(/)안에 etc 디렉토리 안에 있습니다.

기본 내용을 살펴보면, PS1=’\h:\W \u\$ ‘ 로 명령어 프롬프트 값(PS1)이 설정되어 있는 것을 확인하실 수 있습니다. 이는 우리가 명령어 입력줄에서 보는 “iMac:~ Travelholics$” 설정 값입니다. PS1과 관련된 자세한 내용은 링크를 참조 부탁드립니다.

~ (512) $cat /etc/bashrc
# System-wide .bashrc file for interactive bash(1) shells.
if [ -z "$PS1" ]; then
return
fi
PS1='\h:\W \u\$ '
# Make bash check its window size after a process completes
shopt -s checkwinsize
[ -r "/etc/bashrc_$TERM_PROGRAM" ] && . "/etc/bashrc_$TERM_PROGRAM"

 

~/.bash_profile

사용자에게만 적용되는 Configuration 파일로 Home directory 안에 있습니다. ‘cd ~’ 혹은 ‘cd $HOME’으로 해당 경로로 이동하실 수 있습니다. 개인이 사용할 환경을 구축할 시 이 파일을 수정해주시면 됩니다.

vim ~/.bash_profile

 

명령어 입력줄 (쉘 프롬트)

명령어 입력줄 관련 쉘 변수는 PS1입니다. 명령어 입력줄 커스터마이징 관련 내용은 이전에 작성해둔 자세한 글이 있어 링크로 대체하였습니다.

  • 예시 ▼
export PS1="\w (\!) \$"
  • 결과 ▼
~ (512) $

 

환경 변수 설정

PATH 쉘 변수들이 사용자가 입력하는 커맨드를 찾을 때 사용하는 경로로써, echo $PATH 명령어로 본인에게 설정된 PATH를 볼 수 있습니다. 다른 로컬 프로그램이 없다면 기본 PATH에 큰 문제가 없지만 로컬 프로그램이 있는경우 다음과 같이 PATH를 추가해 주어야합니다.

  • 예시 ▼
export PATH="$HOME/.composer/vendor/bin:$PATH"

PATH 설정에 관련된 글을 링크해 두었습니다. 참조 부탁 드립니다.

  • echo $PATH ▼
echo $PATH
.:/Users/Travelholics/.composer/vendor/bin:/usr/local/php5/bin:/usr/X11/bin:/usr/local/Cellar/ruby/2.5.1/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin

 

바로가기 (alias)

일종의 바로가기 기능입니다. 주로, 명령어의 옵션을 같이 등록해 두어 간단하게 옵션없이 명령어만 실행을 해도 옵션이 따라오게 사용하고 있습니다. alias [내가 입력할 커맨드] = “실행될 커맨드” 형식으로 만드시면 됩니다.

  • 예시 ▼
alias ls="/bin/ls -aF"
alias desktop="cd ~/Desktop"
alias document="cd ~/Documents"
alias rm="rm -i"
alias cp="cp -i"
alias mv="mv -i"
  • 결과 ▼
~/Sites/etc/Test (512) $ls
./        .buildpath    1.jpg        test.php
../        .project    DSC04009.jpg    text.txt
.DS_Store    .settings/    login.php
~/Sites/etc/Test (513) $ls -aF
./        .buildpath    1.jpg        test.php
../        .project    DSC04009.jpg    text.txt
.DS_Store    .settings/    login.php
~/Sites/etc/Test (514) $desktop
~/Desktop (515) $document
~/Documents (516) $

이상입니다.

댓글 남기기