1-3 쉘 및 환경변수

do·2022년 3월 3일
0

API

목록 보기
3/42

bash 쉘 프롬프트 커스터마이징

  1. 오리지널 echo $PS1
    [\e]0;\u@\h: \w\a]{debian_chroot:+(debian_chroot)}[\033[01;32m]\u@\h[\033[00m]:[\033[01;34m]\w[\033[00m]$
  2. 변경할 PS1
    export PS1="\e[0;32m[\u@\h:\w]\$ \e[0m"
    PS1='${debian_chroot:+($debian_chroot)}\e[0;32m[\u@\h:\w]\$ \e[0m'
    \e[ begin color-change mode
    0;32m normal type in Green
    [\u@\h:\w]\$ [username@hostname:currentWorkingDirectory]$
    \e[0m exit color-change mode
  3. 적용이 영구적이지 않은 과정
    /etc/profile, /etc/bash.bashrc, /etc/environment에 작성하면 재로그인시 원래대로 돌아옵니다.
  4. 적용이 영구적인 과정
    bashrc 파일 변경 후 로그아웃 하면 설정이 그대로 적용됩니다.



셸 환경변수

  1. 셸 변수 (지역변수) - 경로도 변수로 사용할 수 있습니다.
    현재 사용하는 셸에서만 적용되는 변수
  • 서브셸을 생성하면 로그인 셸에서 만든 변수는 출력되지 않습니다.
  1. 환경 변수 (전역변수)
    로그인 셸과 서브셸에서 사용할 수 있는 변수
  • export env printenv set unset echo
  • $PATH 환경 변수의 경로 (명령어 입력시 환경변수에 잡혀있는 PATH를 따라 명령어 파일이 실행됩니다.)
  • $HISTSIZE 사용된 명령어들을 저장한 한계지를 정하는 곳
  • $HISTFILE 사용된 명령어들이 저장될 파일의 이름
  • $IFS 내부 공간 구분자(Internal Field Separator)의 줄임말. 제작된 명령어의 옵션과 명령어를 구별해주는 등의 역할을 하는 환경변수
  • $TMOUT 리눅스 셸에서 로그인한 사용자를 일정 시간 이후 로그아웃 시키도록 설정할 수 있습니다.
  • $EDITOR 기본 에디터를 설정합니다. (export EDITOR=/usr/bin/vi)
  • $PWD 사용자가 현재 작업하는 디렉토리
  • $HOME 사용자의 홈 디렉토리
  • $SHELL 현재 사용중인 셸 확인
  • $DISPLAY window x의 디스플레이 이름을 정합니다.
  • $USER 사용자의 이름
  • $TERM 터미널의 종류
  • $LANG 프로그램 사용시 기본 지원되는 언어
  • $HOSTNAME 현재 사용 중인 컴퓨터의 이름

getenv(), setenv() 함수


  • 변수와 변수값이 프로그램 내부에서 선언되었기 때문에, env_test 프로그램이 종료되면 MY_HOME의 값은 다시 null로 돌아갑니다.

터미널 크기에 맞게 구현

  1. 환경변수 선언
    export LINES=$LINES
    export COLUMNS=$COLUMNS
  2. ./Hello LINES COLUMNS


(기타)

  • cat /etc/passwd 사용자 전체목록 확인
  • cut -f1 -d: /etc/passwd 앞부분(아이디)만 잘라서 보여줌
    -f1 select only these fields or also print any line that contains no delimiter character(구분문자)
    d use DELIM instead of TAB for field delimiter
  • grep /bin/bash /etc/passwd USERADD를 통해 등록된 계정 보기
  • grep /bin/bash /etc/passwd | cut -f1 -d: 아이디만 출력
    root
    dohee

0개의 댓글