Chapter 04. 셸사용하기
00. 개요 01. 셸의기능과종류 02. 셸기본사용법 03. 입출력방향바꾸기 04. 배시셸환경설정 05. 에일리어스와히스토리 06. 프롬프트설정 07. 환경설정파일
셸의기능을설명하고주요셸의종류를나열할수있다. 로그인셸을다른셸로바꿀수있다. 셸특수문자의종류를이해하고필요에따라적절하게사용할수있다. 표준입출력장치를이해하고입출력방향바꾸기를할수있다. 셸변수와환경변수의차이를이해하고변수를정의하여사용할수있다. 새로운에일리어스를만들거나필요없는에일리어스를해제할수있다. 히스토리기능으로명령을재실행할수있다. 이스케이프문자를이해하고프롬프트를원하는형태로바꿀수있다. 시스템환경설정파일과사용자환경설정파일을구분하고사용자환경을설정할수있다.
리눅스실습스터디맵
00 개요 [ 그림 4-1] 4 장의내용구성
01 셸의기능과종류 셸의기능 명령어해석기기능, 프로그래밍기능, 사용자환경설정기능 명령어해석기기능 사용자와커널사이에서명령을해석하여전달하는해석기 (interpreter) 와번역기 (translator) 기능 사용자가로그인하면셸이자동으로실행되어사용자가명령을입력하기를기다림 -> 로그인셸 로그인셸은 /etc/passwd 파일에사용자별로지정 프롬프트 : 셸이사용자의명령을기다리고있음을나타내는표시 프로그래밍기능 셸은자체내에프로그래밍기능이있어반복적으로수행하는작업을하나의프로그램으로작성가능 셸프로그램을셸스크립트 사용자환경설정기능 사용자환경을설정할수있도록초기화파일기능을제공 초기화파일에는명령을찾아오는경로를설정하거나, 파일과디렉터리를새로생성할때기본권한을설정하거나, 다양한환경변수등을설정
01 셸의기능과종류 셸의종류 본셸, 콘셸, C 셸, 배시셸, 대시셸 본셸 (Bourne shell) 유닉스 V7 에처음등장한최초의셸 개발자의이름인스티븐본 (Stephen Bourne) 의이름을따서본셸이라고함 본셸의명령이름은 sh 임 초기에본셸은단순하고처리속도가빨라서많이사용되었고, 지금도시스템관리작업을수행하는많은셸스크립트는본셸을기반으로하고있음 히스토리, 에일리어스, 작업제어등사용자의편의를위한기능을제공하지못해이후에다른셸들이등장 C 셸 (C shell) 캘리포니아대학교 ( 버클리 ) 에서빌조이 (Bill Joy) 가개발 2BSD 유닉스에포함되어발표 본셸에는없던에일리어스나히스토리같은사용자편의기능을포함 셸스크립트작성을위한구문형식이 C 언어와같아 C 셸이라는이름을가지게되었음 C 셸의명령이름은 csh
01 셸의기능과종류 콘셸 (Korn shell) 1980 년대중반 AT&T 벨연구소의데이비드콘 (David Korn) 이콘셸을개발 유닉스 SVR 4 에포함되어발표 C 셸과달리본셸과의호환성을유지하고히스토리, 에일리어스기능등 C 셸의특징도모두제공하면서처리속도도빠름 콘셸의명령이름은 ksh 배시셸 (bash shell) 본셸을기반으로개발된셸로서 1988 년브레인폭스 (Brain Fox) 가개발 본셸과호환성을유지하면서 C 셸, 콘셸의편리한기능도포함 배시셸의명령이름은 bash 배시셸의모든버전은 GPL 라이선스에의거하여자유롭게사용가능 리눅스의기본셸로제공되고있어리눅스셸로도많이알려짐 대시셸 (dash shell) 본셸을기반으로개발된셸로 POSIX 표준을준수하면서보다작은크기로개발 암키스트셸 (ash, Almquist Shell) 의 NetBSD 버전으로 1997 년초에허버트슈가리눅스에이식 우분투 6.10 부터본셸대신대시셸을사용 user1@myubuntu:~$ ls -l /bin/sh lrwxrwxrwx 1 root root 4 2 월 20 21:12 /bin/sh -> dash user1@myubuntu:~$
02 셸기본사용법 기본셸확인 프롬프트모양참조 본셸, 배시셸, 콘셸의기본프롬프트 : $ C 셸의기본프롬프트 : % 사용자정보확인 : /etc/passwd 파일 사용자정보의가장마지막에나온 /bin/bash가기본셸 user1@myubuntu:~$ grep user1 /etc/passwd user1:x:1000:1000:user1,,,:/home/user1:/bin/bash user1@myubuntu:~$
02 셸기본사용법 기본셸바꾸기 바꿀수있는셸의종류 : /etc/shells 파일에지정 user1@myubuntu:~$ cat /etc/shells # /etc/shells: valid login shells /bin/sh /bin/dash /bin/bash /bin/rbash user1@myubuntu:~$
02 셸기본사용법 기본셸바꾸기예 바꾸려는셸은절대경로로지정 user1@myubuntu:~$ chsh -s sh user1 암호 : user1 계정의암호를입력한다. chsh: sh is an invalid shell 절대경로로입력하라는메시지가출력된다. user1@myubuntu:~$ chsh -s /bin/sh user1 암호 : user1@myubuntu:~$ tail /etc/passwd ( 생략 ) user1:x:1000:1000:user1,,,:/home/user1:/bin/sh sshd:x:116:65534::/var/run/sshd:/usr/sbin/nologin user1@myubuntu:~$ 로그인셸과서브셸 프롬프트에서다른셸을실행할수있는데이를서브셸이라함 서브셸은또다른서브셸생성가능 서브셸을종료하는명령은 ^d( +d), exit 등사용 서브셸이종료되면서브셸을실행했던이전셸환경으로복귀 로그인셸에서로그아웃하면접속해제
02 셸기본사용법 셸내장명령 셸은자체적으로내장명령을가지고있음 셸내장명령은별도의실행파일이없고셸안에포함 셸명령예 : cd 일반명령 ( 실행파일 ) 의경우 실행파일은바이너리파일이므로 cat 명령으로파일의내용을확인할수없음 user1@myubuntu:~$ file /bin/pwd /bin/pwd: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=0x5bc8aca164f8696 1368a41a06a0f7487f853d9d2, stripped user1@myubuntu:~$
02 셸기본사용법 배시셸의출력명령 echo user1@myubuntu:~$ echo linux linux user1@myubuntu:~$ echo "ubuntu linux" ubuntu linux user1@myubuntu:~$
02 셸기본사용법 배시셸의출력명령 printf % 지시자와 \ 문자를이용하여출력형식을지정가능 user1@myubuntu:~$ printf linux linuxuser1@myubuntu:~$ printf "ubuntu linux\n" ubuntu linux user1@myubuntu:~$ printf "%d + %d = %d\n" 10 10 20 10 + 10 = 20 user1@myubuntu:~$
02 셸기본사용법 특수문자사용하기 사용자가더욱편리하게명령을입력하고실행할수있도록다양한특수문자를제공 주요특수문자는 *,?,, ;, [ ], ~,,, ` `` 등 명령을입력하면셸은먼저특수문자가있는지확인하고이를적절한형태로변경한후명령을실행 특수문자 *( 별표 ) 임의의문자열을나타내는특수문자로 0 개이상의문자로대체
02 셸기본사용법 특수문자? 와 [ ] 하나의문자를나타내는데사용? 는길이가 1 인임의의한문자를, [ ] 는괄호안에포함된문자중하나를나타냄
02 셸기본사용법 특수문자 ~ 와 ~( 물결표 ) 와 -( 붙임표 ) 는디렉터리를나타내는특수문자 ~ 만사용하면현재작업중인사용자의홈디렉터리를표시하고다른사용자의로그인 ID 와함께사용하면 (~ 로그인 ID) 해당사용자의홈디렉터리표시 - 는 cd 명령으로디렉터리를이전하기직전의작업디렉터리표시
02 셸기본사용법 특수문자 ; 과 ;( 쌍반점 ) 과 ( 파이프 ) 는명령과명령을연결 ; 은연결된명령을왼쪽부터차례로실행 는왼쪽명령의실행결과를오른쪽명령의입력으로전달
02 셸기본사용법 특수문자 와 ( 작은따옴표 ) 와 ( 큰따옴표 ) 는문자를감싸서문자열로만들어주고, 문자열안에사용된특수문자의기능을없앰 는모든특수문자를, 는 $, ``, \ 을제외한모든특수문자를일반문자로간주하여처리 특수문자 ` ` 셸은 ``` ` 로감싸인문자열을명령으로해석하여명령의실행결과로전환
02 셸기본사용법 특수문자 \ \( 역빗금, \ 와동일함 ) 은특수문자바로앞에사용되는데해당특수문자의효과를없애고일반문자처럼처리 특수문자 >, <, >> 입출력의방향을바꾸는특수문자
03 입출력방향바꾸기 표준입출력장치 표준입력장치 : 셸이작업을수행하는데필요한정보를받아들이는장치 -> 키보드 표준출력장치 : 실행결과를내보내는장치 -> 모니터 표준오류장치 : 오류메시지를내보내는장치 -> 모니터 파일디스크립터 파일관리를위해붙이는일련번호 입출력장치를변경할때는이파일디스크립터를사용 표준입출력장치를파일로바꾸는것을 리다이렉션 (redirection) 이라고함
03 입출력방향바꾸기 출력리다이렉션 > : 기존파일의내용을삭제하고새로결과를저장 >> : 기존파일의내용뒤에결과를추가 파일덮어쓰기 : > 1: 파일디스크립터 1 번 ( 표준출력, 화면 ) 셸은 > 를사용한리다이렉션에서지정한이름의파일이없으면파일을생성해서명령의수행결과를저장 파일이있으면이전의내용이없어지고명령의수행결과로대체
03 입출력방향바꾸기 파일덮어쓰기 : > 예 user1@myubuntu:~$ mkdir linux_ex/ch4 user1@myubuntu:~$ cd linux_ex/ch4 ls out1 out1이있는지확인한다. ls: out1에접근할수없습니다 : 그런파일이나디렉터리가없습니다 ls -al 명령의결과가화면 ( 표준출력 ) 으로출력된다. 합계 8 drwxrwxr-x 2 user1 user1 4096 2월 23 15:53. drwxrwxr-x 5 user1 user1 4096 2월 23 15:53.. ls -al > out1 명령의결과를 out1 파일에저장한다. cat out1 파일내용을확인한다. 합계 8 drwxrwxr-x 2 user1 user1 4096 2월 23 15:55. drwxrwxr-x 5 user1 user1 4096 2월 23 15:53.. -rw-rw-r-- 1 user1 user1 0 2월 23 15:55 out1 date > out1 명령의결과를 out1 파일에저장한다. cat out1 ls 명령의실행결과가없어진다. 2014. 02. 23. ( 일 ) 15:56:45 KST
03 입출력방향바꾸기 예상치않게파일의내용이겹쳐쓰이는상황을예방하기 set -o noclobber ls > out1 -bash: out1: cannot overwrite existing file 설정해제 set +o noclobber ls > out1 cat 명령으로파일생성하기 cat > out1 표준입력을받아 out1 에저장한다. Ubuntu Linux 내용을입력한다. I love Linux. ^D 입력을종료한다. cat out1 파일내용을확인한다. Ubuntu Linux I love Linux.
03 입출력방향바꾸기 파일에내용추가하기 : >> 지정한파일이없으면파일을생성하고, 파일이있으면기존파일의끝에명령의실행결과를추가 cat out1 기존파일내용을확인한다. Ubuntu Linux I love Linux. date >> out1 리다이렉션한다 ( 내용추가 ). cat out1 파일내용을확인한다. Ubuntu Linux I love Linux. 2014. 02. 23. ( 일 ) 16:02:25 KST 추가된내용이다.
03 입출력방향바꾸기 오류리다이렉션 표준오류도기본적으로화면으로출력되며표준출력처럼리다이렉션가능 표준출력과표준오류예 ls out1 정상실행 ( 표준출력 ) ls /abc ls: /abc에접근할수없습니다 : 그런파일이나디렉터리가없습니다오류메시지 ( 표준오류 ) 표준출력리다이렉션 : 오류메시지는리다이렉션안됨 ls > ls.out 표준출력리다이렉션 ls /abc > ls.err 표준출력리다이렉션 ls: /abc에접근할수없습니다 : 그런파일이나디렉터리가없습니다출력된다. cat ls.err 오류메시지가저장되지않았다. cat ls.out 표준출력내용이출력된다. ls.out out1 오류메시지가화면에
03 입출력방향바꾸기 오류리다이렉션 오류리다이렉션에서는파일디스크립터번호를생략불가 ls /abc 2> ls.err 표준오류를리다이렉션한다. cat ls.err ls: /abc에접근할수없습니다 : 그런파일이나디렉터리가없습니다파일에저장된메시지이다. 표준출력과표준오류를한번에리다이렉션하기 ls. /abc > ls.out 2> ls.err
03 입출력방향바꾸기 오류리다이렉션 오류메시지버리기 ls /abc 2> /dev/null 표준출력과표준오류를한파일로리다이렉션하기 명령의정상실행결과를파일로리다이렉션 (>). 그명령전체의오류메시지를 1 번파일 ( 표준출력파일, &1 이라고표현함 ) 로리다이렉션 (2>). ls. /abc > ls.out 2>&1 cat ls.out ls: /abc 에접근할수없습니다 : 그런파일이나디렉터리가없습니다오류메시지를저장한다..: 현재디렉터리내용이다. ls.err ls.out out1
03 입출력방향바꾸기 입력리다이렉션 입력리다이렉션예 : cat 명령 cat out1 파일내용을출력한다 (< 생략 ). Ubuntu Linux I love Linux. 2014. 02. 23. ( 일 ) 16:02:25 KST cat < out1 표준입력을리다이렉션한다 (< 사용 ). Ubuntu Linux I love Linux. 2014. 02. 23. ( 일 ) 16:02:25 KST cat 0< out1 표준입력을리다이렉션한다 (0< 사용 ). Ubuntu Linux I love Linux. 2014. 02. 23. ( 일 ) 16:02:25 KST
04 배시셸환경설정 셸변수와환경변수 셸의환경을설정하기위한값을저장할수있도록셸변수와환경변수를제공 셸변수 : 현재셸에서만사용이가능하고서브셸로는전달되지않음 ( 지역변수 ) 환경변수 : 현재셸뿐만아니라서브셸로도전달 ( 전역변수 ) 전체변수출력 : set, env set: 셸변수와환경변수모두출력 set BASH=/bin/bash BASHOPTS=checkwinsize:cmdhist:expand_aliases:extglob:extquote:force_fignore:hist append:interactive_comments:login_shell:progcomp:promptvars:sourcepath BASH_ALIASES=() BASH_ARGC=() BASH_ARGV=() BASH_CMDS=() BASH_COMPLETION_COMPAT_DIR=/etc/bash_completion.d ( 생략 ) quote_readline () { local quoted; _quote_readline_by_ref "$1" ret; printf %s "$ret" }
04 배시셸환경설정 전체변수출력 : set, env env: 환경변수만출력 env XDG_SESSION_ID=3 TERM=xterm SHELL=/bin/bash SSH_CLIENT=192.168.0.17 9912 22 SSH_TTY=/dev/pts/1 USER=user1 ( 생략 ) LESSOPEN= /usr/bin/lesspipe %s XDG_RUNTIME_DIR=/run/user/1000 LESSCLOSE=/usr/bin/lesspipe %s %s _=/usr/bin/env OLDPWD=/home/user1
04 배시셸환경설정 주요셸환경변수 특정변수출력하기 : echo 변수의값을출력할때는변수이름앞에특수문자 $ 를붙임 echo $SHELL /bin/bash
04 배시셸환경설정 셸변수설정하기 변수이름과문자열사이에공백이있으면안됨 SOME=test echo $SOME test
04 배시셸환경설정 환경변수설정하기 : export 먼저셸변수를정의하고, export 명령을사용하여이를환경변수로변경 export SOME env ( 생략 ) SHELL=/bin/bash SOME=test ( 생략 ) 변수를설정하면서바로 export 명령을사용하여한번에환경변수로전환도가능 export SOME1=test1 echo $SOME1 test1
04 배시셸환경설정 환경변수를다시셸변수로바꾸기 : export n 예 : SOME 은보이지만 SOME1 은보이지않음 export -n SOME1 env ( 생략 ) SOME=test ( 생략 ) 변수해제하기 unset SOME unset SOME1 echo $SOME echo $SOME1
05 에일리어스와히스토리 에일리어스 에일리어스 (alias) 는우리말로 별명 을의미 기존의명령을대신하여다른이름 ( 별명 ) 을붙일수있도록하는기능 긴명령대신짧은명령을만들어사용가능 여러명령을연결하여하나의명령으로만들수도있음 자주사용하는옵션을포함하여새로운이름을붙여서사용가능
05 에일리어스와히스토리 기존에일리어스확인 : alias 아무것도지정하지않고 alias 명령을실행하면현재설정되어있는에일리어스가출력 alias alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal echo error)" "$(history tail -n1 sed -e ' ''s/^ s*[0-9] + s*//;s/[;& ] s*alert$//' '')"' alias egrep='egrep --color=auto alias fgrep='fgrep --color=auto' alias grep='grep --color=auto' alias l='ls -CF' alias la='ls -A' alias ll='ls -alf' alias ls='ls --color=auto' 에일리어스실행예 ll 합계 20 drwxrwxr-x 3 user1 user1 4096 2월 23 16:40./ drwxrwxr-x 5 user1 user1 4096 2월 23 15:53../ -rw-rw-r-- 1 user1 user1 60 2월 23 16:02 out1 drwxrwxr-x 2 user1 user1 4096 2월 23 16:40 temp/ -rw-rw-r-- 1 user1 user1 33 2월 23 16:40 u.out
05 에일리어스와히스토리 에일리어스설정하기 : alias 에일리어스이름 = 명령 형식사용 에일리어스설정예 : ls mkdir tmp ls out1 temp tmp u.out alias ls='ls -F' 공백이있으면작은따옴표를사용한다. ls 에일리어스의 ls를실행한다. out1 temp/ tmp/ u.out ls -F의결과를출력한다. 에일리어스설정예 : rm alias rm='rm -i' rm out1 rm: 일반파일 'out1' 를제거할까요? n
05 에일리어스와히스토리 에일리어스에인자전달하기 배시셸에서는에일리어스로인자를전달할수없음 배시셸에서인자를전달하려면프로그래밍기능에서함수를사용 인자전달함수예 user1@myubuntu:~$ unalias cd user1@myubuntu:~$ function cdpwd { 함수입력을시작한다. > cd $1;pwd 프롬프트가 > 로바뀐다. 내용을입력한다. > } 함수입력을종료한다. user1@myubuntu:~$ cdpwd /tmp /tmp user1@myubuntu:/tmp$ 에일리어스해제하기 : unalias user1@myubuntu:/tmp$ unalias ls user1@myubuntu:/tmp$ unalias rm user1@myubuntu:/tmp$
05 에일리어스와히스토리 히스토리 사용자가이전에입력한명령을다시불러사용하는것 user1@myubuntu:/tmp$ history ( 생략 ) 370 function cdpwd { cd $1;pwd; } 371 cdpwd /tmp 372 unalias ls 373 unalias rm 374 history user1@myubuntu:/tmp$
05 에일리어스와히스토리 명령재실행하기 :! 직전명령재실행예 user1@myubuntu:/tmp$ cd ~/linux_ex/ch4 ls out1 temp tmp u.out!! 바로직전의명령을재실행한다. ls out1 temp tmp u.out
05 에일리어스와히스토리 명령재실행하기 :! 이전에수행한명령을재실행예 history ( 생략 ) 376 cd ~/linux_ex/ch4 377 ls 378 history!377 히스토리번호로재실행한다. ls out1 temp tmp u.out!l 명령의앞글자로재실행한다. ls out1 temp tmp u.out
05 에일리어스와히스토리 명령편집하기와재실행하기 화살표키를사용하여오류가난명령을다시프롬프트로불러내서수정한뒤재실행가능 1 편집과재실행예 1 : 명령에오타를입력 man hisdory No manual entry for hisdory 2 프롬프트에서 키를누르면방금실행한명령이다시나타남 man hisdory 3 좌우화살표로커서를이동하여백스페이스키로삭제한후다시글자를입력하고엔터키를눌러서실행 man history 히스토리저장하기 로그아웃할때홈디렉터리아래의숨김파일인.bash_history 에히스토리저장 more ~/.bash_history ls ls -a ls /tmp ls -a /tmp ( 생략 )
06 프롬프트설정 프롬프트설정변수 : PS1 프롬프트를바꾸는것은환경변수 PS1 에새로운형태의문자열을지정하는것 echo $PS1 \[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$ 정값 PS1 의현재설 이스케이프문자와프롬프트설정하기 \ 으로시작하는특별한문자가이스케이프문자 \u와같이 \ 으로시작하는이스케이프문자는두글자가아니라한글자로처리 이스케이프문자는화면에문자그대로출력되지않고셸이문자의의미를해석하여실행
06 프롬프트설정 프롬프트에서 사용할수있는 이스케이프문자
06 프롬프트설정 프롬프트변경예제 1 간단한문자열로변경 : 프롬프트의끝을표시하기위해마지막에 ] 나 $ 같은표시를하고공백문자를둠 PS1='LINUX ] ' LINUX ] 2 환경변수를사용 : 프롬프트에현재작업디렉터리가출력 LINUX ] PS1='[$PWD] ' [/home/user1/linux_ex/ch4] cd.. [/home/user1/linux_ex] 3 명령의실행결과를사용 : 특수문자 `` ` 를이용, uname -n 명령은호스트이름을출력 [/home/user1/linux_ex] PS1='`uname -n` \! $ ' myubuntu 393 $ 4 이스케이프문자 \u, \T, \! 를사용 myubuntu 393 $ PS1='[ \u \T] \!$ ' [user1 05:22:09] 394$
06 프롬프트설정 컬러프롬프트설정하기
06 프롬프트설정 컬러프롬프트설정예 1 파란색으로설정하기 [user1 05:22:09] 394$ PS1="\e[34mLinux $ \e[0;0m Linux $ 2 파란색의볼드로설정하기 Linux $ PS1="\e[34;1mLinux $ \e[0;0m" Linux $ 3 밑줄친빨간색으로설정하기 Linux $ Linux $ PS1="\e[31;4mLinux $\e[0;0m" 4 배경은갈색, 글자는보라색, 프롬프트는 사용자이름 @ 호스트이름 $ 로설정하기 Linux $ PS1="\e[33;45;7m\u@\h $ \e[0;0m" user1@myubuntu $
07 환경설정파일 환경설정파일 사용자가로그인할때마다자동으로실행되는명령을저장한것이환경설정파일 시스템환경설정파일과사용자환경설정파일이있음 셸마다다른이름의파일을사용 시스템환경설정파일 시스템을사용하는전체사용자의공통환경을설정하는파일
07 환경설정파일 시스템환경설정파일 /etc/profile 파일 user1@myubuntu:~$ more /etc/profile # /etc/profile: system-wide.profile file for the Bourne shell (sh(1)) # and Bourne compatible shells (bash(1), ksh(1), ash(1),...). if [ "$PS1" ]; then if [ "$BASH" ] && [ "$BASH"!= "/bin/sh" ]; then # The file bash.bashrc already sets the default PS1. # PS1=' h: w $ ' if [ -f /etc/bash.bashrc ]; then. /etc/bash.bashrc fi else if [ "`id -u`" -eq 0 ]; then PS1='# ' else PS1='$ ' fi fi fi ( 생략 )
07 환경설정파일 사용자환경설정파일 각사용자의홈디렉터리에숨김파일로생성 사용자가내용을수정하고관리가능
07 환경설정파일 사용자환경설정파일예 user1@myubuntu:~$ cat.profile # ~/.profile: executed by the command interpreter for login shells. # This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login # exists. # see /usr/share/doc/bash/examples/startup-files for examples. # the files are located in the bash-doc package. # the default umask is set in /etc/profile; for setting the umask # for ssh logins, install and configure the libpam-umask package. #umask 022 # if running bash if [ -n "$BASH_VERSION" ]; then # include.bashrc if it exists if [ -f "$HOME/.bashrc" ]; then. "$HOME/.bashrc ( 생략 ) user1@myubuntu:~$ cat.bash_logout # ~/.bash_logout: executed by bash(1) when login shell exits. # when leaving the console clear the screen to increase privacy if [ "$SHLVL" = 1 ]; then [ -x /usr/bin/clear_console ] && /usr/bin/clear_console -q fi user1@myubuntu:~$
07 환경설정파일 사용자환경설정파일만들기 vi 로.bash_aliases 파일수정 user1@myubuntu:~$ vi.bash_aliases alias rm='rm -i' alias h=history alias c=clear ~ :wq 저장하고종료한다. user1@myubuntu:~$ 사용자환경설정파일적용하기 user1@myubuntu:~$..bash_aliases user1@myubuntu:~$ source.bash_aliases
07 환경설정파일 다른셸의환경설정파일