Chapter 04. 셸 사용하기

26
IT CookBook, 우우우 우우우 [ 강강강강 강강 강강 ] 우 우우우우우 우우우우 우우우우우우우우 우우우우 . 우 우우우 우우우우 우우우우우 우우우 우우 우우우우 136 우우 우우우우 우우 5 우 우우우 우우 우우 5 우우우 우우우 우우우 우우 우 우우 우우 우우 ( 우우 ) 우 우우 우우우 .

description

Chapter 04. 셸 사용하기. 00. 개요 01. 셸의 기능과 종류 02. 셸 기본 사용법 03. 입출력 방향 바꾸기 04. 배시 셸 환경 설정 05. 에일리어스와 히스토리 06. 프롬프트 설정 07. 환경 설정 파일. 셸의 기능을 설명하고 주요 셸의 종류를 나열할 수 있다 . 로그인 셸을 다른 셸로 바꿀 수 있다 . 셸 특수 문자의 종류를 이해하고 필요에 따라 적절하게 사용할 수 있다 . 표준 입출력 장치를 이해하고 입출력 방향 바꾸기를 할 수 있다 . - PowerPoint PPT Presentation

Transcript of Chapter 04. 셸 사용하기

Page 1: Chapter 04.  셸  사용하기

IT CookBook, 우분투 리눅스

[ 강의교안 이용 안내 ]

• 본 강의교안의 저작권은 한빛아카데미㈜에 있습니다 . • 이 자료를 무단으로 전제하거나 배포할 경우 저작권법 136 조에 의거하여 최고 5 년 이하의 징역 또는 5 천만원 이하의 벌금에 처할 수

있고 이를 병과 ( 倂科 ) 할 수도 있습니다 .

Page 2: Chapter 04.  셸  사용하기

Chapter 04. 셸 사용하기

Page 3: Chapter 04.  셸  사용하기

목차

00. 개요

01. 셸의 기능과 종류

02. 셸 기본 사용법

03. 입출력 방향 바꾸기

04. 배시 셸 환경 설정

05. 에일리어스와 히스토리

06. 프롬프트 설정

07. 환경 설정 파일

Page 4: Chapter 04.  셸  사용하기

학습목표• 셸의 기능을 설명하고 주요 셸의 종류를 나열할 수 있다 .

• 로그인 셸을 다른 셸로 바꿀 수 있다 .

• 셸 특수 문자의 종류를 이해하고 필요에 따라 적절하게 사용할 수 있다 .

• 표준 입출력 장치를 이해하고 입출력 방향 바꾸기를 할 수 있다 .

• 셸 변수와 환경 변수의 차이를 이해하고 변수를 정의하여 사용할 수 있다 .

• 새로운 에일리어스를 만들거나 필요 없는 에일리어스를 해제할 수 있다 .

• 히스토리 기능으로 명령을 재실행할 수 있다 .

• 이스케이프 문자를 이해하고 프롬프트를 원하는 형태로 바꿀 수 있다 .

• 시스템 환경 설정 파일과 사용자 환경 설정 파일을 구분하고 사용자 환경을

설정할 수 있다 .

Page 5: Chapter 04.  셸  사용하기

리눅스 실습 스터디 맵

Page 6: Chapter 04.  셸  사용하기

00 개요

[ 그림 4-1] 4 장의 내용 구성

Page 7: Chapter 04.  셸  사용하기

요약 1. 셸 (p.235)

셸은 사용자와 리눅스 커널 사이에서 중간자 역할을 한다 .

셸은 명령어 해석기 기능 , 프로그래밍 기능 , 사용자 환경설정 기능을

제공한다 .

셸의 종류는 본 셸 , C 셸 , 콘 셸 , 배시 셸 등이 있다 . 본 셸 명령 : sh ( 기본 프롬프트 $)

c 셸 명령 : csh ( 기본 프롬프트 %)

콘 셸 명령 : ksh ( 기본 프롬프트 $)

배시 셸 명령 : bash ( 기본 프롬프트 $, 리눅스 대부분의 기본 로그인 셸 )

예 ) 본 셸로 변경하기

로그인 셸 지정과 변경 : /etc/passwd 파일에 로그인 셸을 지정하며 ,

chsh 명령으로 변경할 수 있다 .

Page 8: Chapter 04.  셸  사용하기

02 셸 기본 사용법 (p.189-191)

기본 로그인셸 확인

사용가능 셸 확인

user1@myubuntu:~$ grep user1 /etc/passwduser1:x:1000:1000:user1,,,:/home/user1:/bin/bashuser1@myubuntu:~$

user1@myubuntu:~$ cat /etc/shells# /etc/shells: valid login shells/bin/sh/bin/dash/bin/bash/bin/rbashuser1@myubuntu:~$

chsh –l 도 같은 기능페도라는 되고 , 우분투는 안됨

Page 9: Chapter 04.  셸  사용하기

02 셸 기본 사용법 (p.189-191)

기본 로그인셸 변경

셸 내장명령 셸이 자체적으로 가지고 있는 명령 예 ) cd, alias, export 등 ..

참고 ) 일반 명령은 /bin 이나 /usr/bin 밑에 들어 있음

user1@myubuntu:~$ chsh -s /bin/sh user1암호 :user1@myubuntu:~$ tail /etc/passwd( 생략 )user1:x:1000:1000:user1,,,:/home/user1:/bin/shuser1@myubuntu:~$ chsh –s /bin/bash user1

사용자 user1 의 로그인 셸을 /bin/sh 로 변경

결과 확인

다시 /bin/bash 셸로 변경

user1@myubuntu:~$ file /bin/pwd/bin/pwd: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamicallylinked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=0x5bc8aca164f86961368a41a06a0f7487f853d9d2, strippeduser1@myubuntu:~$

pwd 는 일반 명령

Page 10: Chapter 04.  셸  사용하기

요약 2. 셸 특수 문자 (p.235)

특수문자 기능 예* 임의의 문자 또는 문자열 $ ls t*

? 임의의 한 문자 $ ls t?.txt

[] 한 문자 위치를 위한 문자의 범위 표시 $ ls [0-9]*

~ 홈 디렉터리 $ cd ~user1

- 이전 디렉터리 $ cd -

; 한 행에 여러 개 명령 입력 $ date; ls; pwd

| 왼쪽 명령의 결과를 오른쪽 명령의 입력으로 전달

$ ls –al | more

‘’ 모든 셸 문자 무시 $ echo ‘$HOME’

“” $, ’, \ 을 제외한 모든 셸 문자 무시 $ echo “$HOME”

`` 셸 명령 실행 $ echo `date`

\ 특수 문자 기능 제거 $ echo \$HOME

$ cd /etc

$ echo $HOME

Page 11: Chapter 04.  셸  사용하기

요약 3. 입출력 방향 바꾸기 ( 리다이렉션 )

출력 방향 바꾸기 : > ( 덮어쓰기 ), >> ( 추가 ) 예 : ls –al

ls –al > ls. out

cat ls.out

오류 방향 바꾸기 : 2> 예 : find ~ -name tmp.txt

find ~ -name tmp.txt 2> /dev/null

입력 방향 바꾸기 : < 예 : cat < out.txt

Page 12: Chapter 04.  셸  사용하기

요약 4. 셸 변수와 환경 변수

셸 변수 : 지정한 셸에서만 사용

환경 변수 : 전체 셸에서만 사용

동작 설정방법 예

변수 정의 [ 셸 변수 ] 변수이름 = 문자열

[ 환경변수 ] export 변수이름 = 문자열

$ data=321$ echo $data321$ export PS=“Linux $”$ echo $PSLinux $

변수 정의 해제 unset 변수 $ unset data

전체 변수 출력 셸변수와 환경변수 모두 출력 : set환경변수만 출력 : env

$ set$ env

특정 변수 출력 echo $ 변수 $ echo $HOME

주의 ) = 사이에 공백을주면 안됨

Page 13: Chapter 04.  셸  사용하기

요약 4. 셸 변수와 환경 변수

주요 환경변수

특정 변수 출력하기 : echo (p.208) 변수의 값을 출력할 때는 변수 이름 앞에 특수 문자 $ 를 붙임

환경변수 의미 환경변수 의미HISTSIZE 히스토리 저장크키 PATH 명령을 탐색할 경로HOME 사용자 홈 디렉터리

절대경로PWD 작업 디렉터리 절대 경로

LANG 사용하는 언어 SHELL 로그인 셸LOGNAME 사용자 계정 이름

$ history

user1@myubuntu:~/linux_ex/ch4$ echo $SHELL/bin/bashuser1@myubuntu:~/linux_ex/ch4$

Page 14: Chapter 04.  셸  사용하기

요약 5. 에일리어스와 히스토리

에일리어스 : 명령에 다른 별칭을 붙이는 것

현재 설정되어 있는 alias 보기

에일리어스 생성 alias 이름 =‘ 명령’ alias ls=‘ls -lF ’

에일리어스 해제 unalias 에일리어스 unalias ls

user1@myubuntu:~/linux_ex/ch4$ aliasalias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo er-ror)""$(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'user1@myubuntu:~/linux_ex/ch4$

좌우공백을 주면 안됨

Page 15: Chapter 04.  셸  사용하기

에일리어스 설정하기 (p.213)

에일리어스 설정 예 : rm

user1@myubuntu:~/linux_ex/ch4$ alias rm='rm -i'user1@myubuntu:~/linux_ex/ch4$ rm ls.outrm: 일반 파일 ‘ ls.out '을 제거할까요 ? nuser1@myubuntu:~/linux_ex/ch4$

Page 16: Chapter 04.  셸  사용하기

요약 5. 에일리어스와 히스토리

히스토리 : 사용한 명령을 기억했다가 재실행하는 것

히스토리 목록 보기 history

이전 명령 불러오기 !c (c 로 시작하는 최근 명령 수행 )!120 (120 번째 명령 수행 )!! ( 바로 이전 명령 다시 수행 )

명령 편집 화살표 키 (↑,↓) 를 사용하여 명령을 불러오고 수정할 수 있다 .

Page 17: Chapter 04.  셸  사용하기

요약 6. 프롬프트 설정

프롬프트는 환경 변수 PS1 에 저장한다 .

터미널을 제어하는 특수 문자를 사용하면 컬러 프롬프트를 만들 수 있다 .

예 ) PS1=“\[\e[33;45;7m\]\u@\h $ \[\e[0;0m\]”

드래그해서 마우스우클릭해 복사하기

마우스 우클릭해 붙여넣기

Page 18: Chapter 04.  셸  사용하기

요약 7. 환경 설정 파일

시스템 환경설정파일 시스템을 사용하는 전체 사용자의 공통환경을 설정하는 파일

사용자 환경설정파일로 구분된다 . 특정 사용자만의 환경을 설정하는 파일

로그인 시 시스템 환경설정파일 사용자 환경설정파일 순서로 실행하여

사용자 환경을 설정한다 .

Page 19: Chapter 04.  셸  사용하기

요약 7. 환경 설정 파일

배시 셸의 시스템 환경 설정 파일

파일 기능/etc/profile 본 셸이나 본 셸과 호환되는 모든 셸에 공통으로 적용되는

profile 이다 .• 배시셸의 경우 /etc/bash.bashrc 파일을 실행한다 .• 배시셸이 아닌 경우 프롬프트를 #(root 사용자 ) 나 $

( 일반사용자 ) 로 설정한다 .• /etc/profile.d/*.sh 파일을 실행한다 .

/etc/bash.bashrc

시스템 공통으로 적용되는 .bashrc 파일이다 .• 기본 프롬프트를 설정한다 .• sudo 명령과 관련된 힌트를 설정한다 .

/etc/profile.d/*.sh

• 언어나 명령별로 각각 필요한 환경을 설정한다 .• 필요시 설정파일을 추가한다 .

$ more /etc/profile

$ more /etc/bash.bashrc

$ ls /etc/profile.d/*.sh$ more /etc/profile.d/bash_completion.sh

Page 20: Chapter 04.  셸  사용하기

요약 7. 환경 설정 파일

배시 셸의 사용자 환경 설정 파일

파일 기능~/.profile • 경로 추가 등 사용자가 정의하는 환경을 설정한다 .

• .bashrc 파일이 있으면 설정한다 .

~/.bashrc • 히스토리의 크기를 설정한다 .• 기본 에일리어스나 함수 등을 설정한다 .

~/.bash_aliases • 사용자가 정의한 에일리어스를 별도 파일로 저장한다 .

~/.bash_logout • 로그아웃 시 실행할 필요가 있는 함수 등을 설정한다 .$ more ~/.profile$ more ~/.bashrc$ more ~/.bash_aliases$ more ~/.bash_logout

Page 21: Chapter 04.  셸  사용하기

따라해보기 ) 204 쪽 특수 문자와 입출력 방향 바꾸기

① 현재 디렉터리에서 l 로 시작하는 모든 파일의 상세 정보를 확인한다 .

② 임시로 사용할 temp 디렉터리를 만든다 .

③ l 로 시작하는 모든 파일을 temp 디렉터리로 이동한다 .

④ Uname 명령은 운영체제의 이름을 출력한다 . 특수 문자 `` 를 사용하여

‘ This is Linux System.’ 이라는 문장을 출력한다 .

⑤ 출력 방향 바꾸기로 4 번 명령의 실행 결과를 u.out 파일에 저장한다 .

⑥ date 명령의 실행 결과를 u.out 파일에 저장한다 .

Page 22: Chapter 04.  셸  사용하기

혼자해보기 ) 205 쪽 특수문자와 입출력 방향 바꾸기

① 특수 문자 * 를 사용하여 temp 디렉터리로 이동한 모든 파일을 현재

디렉터리로 복사한다 .

② uname -n 은 호스트 이름을 출력한다 . 특수 문자 ` ` 를 사용하여 ‘ This

system name is ****.’ 와 같이 출력되도록 명령을 실행한다 . ****

에는 실제 호스트 이름이 출력되어야 한다 .

③ ② 번에서 실행한 결과를 출력 방향 바꾸기로 un.out 파일에 저장한다 .

④ 현재 디렉터리의 파일 목록을 출력 방향 바꾸기로 ls.out 파일에 저장한다 .

⑤ un.out, ls.out 파일의 내용을 모두 출력 방향 바꾸기를 사용하여 u.dat

파일에 추가한다 . 이 명령은 한 번에 실행해야 한다 .

Page 23: Chapter 04.  셸  사용하기

따라해보기 ) 218 쪽 환경 변수와 에일리어스 , 히스토리

① 셸 변수 TESTA 를 testa 로 설정하고 출력한다 .

② 본 셸 (sh) 을 실행해 서브 셸로 이동한다 .

③ 셸 변수 TESTA 가 출력되는지 확인한다 . 왜 출력되지 않을까 ?

④ 서브 셸에서 로그인 셸로 복귀한다 .

⑤ Pwd 명령과 ls 명령을 묶어서 에엘리어스 pls 를 만든다 .

⑥ 위 화살표 키를 사용해 이전 명령을 불러서 clear 명령에 대한 에일리어스

c 를 만든다 .

Page 24: Chapter 04.  셸  사용하기

따라해보기 ) 230 쪽 사용자 환경 설정 파일 수정하기

① Vi 로 .profile 파일을 vi 로 연다

② .profile 파일의 내용에 행 번호가 보이도록 한다

③ 22 행의 다음에 아래의 경로를 추가하고 파일을 저장한 후 종료한다 . PATH=“$PATH:/etc”

④ Vi 로 .bashrc 파일을 연다 .

⑤ 62 행의 맨 앞에 # 을 붙이고 62 행의 다음에 아래의 프롬프트 설정을

추가한 후 저장한다 . PS1=‘${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ‘

⑥ .profile 파일을 실행한다 . 그러면 프롬프트가 바뀐다 .

⑦ 경로에 /etc 디렉터리가 추가되었는지 확인한다 .

Page 25: Chapter 04.  셸  사용하기

혼자해보기 ) 232 쪽 사용자 환경 설정 파일 수정하기

① .profile 파일을 vi 로 연다 .

② .profile 파일에서 23 행에 추가한 경로를 삭제하고 파일을 저장한 후

종료한다 .

③ vi 로 .bashrc 파일을 연다 .

④ 프롬프트가 다음과 같은 형태로 나오도록 수정한다 . 1004 는 히스토리

번호이다 . (63 행을 수정한다 )

[user1@myubuntu ~ 355]$

⑤ 변경된 환경 설정 파일을 적용한다 . 프롬프트가 바뀌었는가 ?

⑥ 경로에서 /etc 가 삭제되었는지 확인한다 .

실습을 다했으면 .bashrc 파일에 삽입한 63 행을 지우고 , 62 행 맨 앞의 #

을 삭제해 원래대로 되돌린다 .

Page 26: Chapter 04.  셸  사용하기