32
Linux Shell 200811436 박박박

Linux Shell 200811436 박철승. Copyright©InformationSecurity Laboratory. all right reserved. LINUX Shell 리눅스 구성 커널 운영체제의 핵심으로서 메모리나 프로세서

  • View
    221

  • Download
    6

Embed Size (px)

Citation preview

Linux Shell

200811436 박철승

Copyright©InformationSecurity Laboratory. all right reserved.

LINUX Shell

리눅스 구성 커널

운영체제의 핵심으로서 메모리나 프로세서 등 시스템을 제어 사용자 프로그램

웹서버나 FTP, SSH 등 일반적으로 사용하는 프로그램 쉘

커널과 사용자 프로그램의 중간에 위치하는 명령어 해석기

커널 쉘 사용자프로그램

Copyright©InformationSecurity Laboratory. all right reserved.

LINUX Shell – 쉘의 종류

Bourne Shell(sh) 최초의 대중화된 유닉스 쉘

Korn Shell(ksh) Bourne Shell 을 포함하고 있으며 , 강력한 명령어 편집기로 유닉스에서 많이

쓰임 C Shell(csh)

Bourne Shell 과 호환이 되지만 인터페이스 구조가 다르고 , C 언어 문법과 제어구조에 비슷한 면을 가지고 있음

TC Shell(tcsh) C Shell 을 확장시켜 제작하였고 , 프리 소프트웨어로 많은 사람들이 사용

Bourne Again Shell(bash) 리눅스 시스템의 기본 Shell Bourne Shell 을 기반으로 해서 기능을 추가 , 발전시킨 Shell C Shell 과 Korn Shell 의 장점을 결합

Copyright©InformationSecurity Laboratory. all right reserved.

LINUX SHELL - 사용자 쉘 변경

cat 명령어를 사용하여 /etc/shells 파일 내용 보기

echo 명령어를 사용하여 SHELL 변수 확인

Shell 변경

Shell 종류

Shell 변수명을 입력해주면 변경된다

Copyright©InformationSecurity Laboratory. all right reserved.

LINUX SHELL - 사용자 쉘 변경

Shell 영구적으로 변경 chsh 쉘 변경 명령어

기본 Shell 이 C Shell 로 변경되었다

변경하고자 하는 쉘 경로 입력

Copyright©InformationSecurity Laboratory. all right reserved.

LINUX SHELL - 쉘 환경 변수

변수 의미 변수 의미

BASH 사용하고 있는 bash 쉘의 경로 BASH_VERSION 사용하고 있는 bash 쉘의 버전

COLUMNS 터미널의 행수로 기본 값은 80 DISPLAY 현재 X-Window Display 의 위치

HISTFLIE 히스토리 파일의 이름 HISTFILESIZE 히스토리 파일 사이즈

HISTSIZE 히스토리의 개수 HOME 사용자의 홈 디렉토리

HOSTNAME 시스템의 호스트명 HOSTTYPE 시스템의 타입 값

LINES 터미널의 라인 수 LOGNAME 로그인 사용자 명

LS_COLORS ls 명령어 사용시 파일 종류별 색상 지정값 MAIL 메일 저장 위치

MAILCHECK 메일점검 시간 , 기본 값은 60 초 MANPATH man 페이지의 경로

OSTYPE 운영체제의 타입 PATH 명령을 찾을 검색 경로

PS1 주 프롬프트 문자열의 설정값 UID 현재 사용자의 UID 값

# echo $[ 변수명 ] OR # printenv [ 변수명 ]

Copyright©InformationSecurity Laboratory. all right reserved.

LINUX SHELL - 쉘 환경 변수

# printenv(Print Environment) # echo $[변수명 ]

Copyright©InformationSecurity Laboratory. all right reserved.

LINUX SHELL - 쉘의 유용한 기능

명령 완성 기능 명령어의 길이가 길거나 이름이 일부만 생각날 경우 , 명령어의 일부만 입력하고

Tab 키를 입력하면 가능한 명령어 완성

명령어뿐만 아니라 해당 파일에 대해서도 완성 기능을 가지고 있다

Copyright©InformationSecurity Laboratory. all right reserved.

LINUX SHELL - 쉘의 유용한 기능

명령 히스토리 기능 사용했던 명령어는 홈 디렉토리의 ~/.bash_history 파일에 저장 이미 사용한 명령어들을 다시 사용하고 싶을 때 사용 실행했던 명령어 개수는 HISTSIZE 변수에서 지정 가능

Copyright©InformationSecurity Laboratory. all right reserved.

LINUX SHELL - 쉘의 유용한 기능

마우스로 텍스트 복사 한 터미널에 있는 내용을 다른 터미널로 복사하고자 할 때 유용 복사하고자 하는 내용을 드래그 후 붙이고자 하는 터미널에 휠 버튼을 누르면

복사가 이루어진다

Copyright©InformationSecurity Laboratory. all right reserved.

LINUX SHELL - 쉘의 유용한 기능

메타문자 사용 명령어를 실행할 때 , 파일을 인수로 사용할 경우 문자열을 포함하거나 혹은 동시에

모든 파일들을 지정할 경우 사용

? : 어떤 한 문자* : 어떤 문자도 없거나 , 그 이상인 경우

echo1.sh

echo2.sh

echo1.sh

Copyright©InformationSecurity Laboratory. all right reserved.

LINUX SHELL - 쉘의 유용한 기능

리다이렉션 (Redirection) 표준 입력과 출력을 필요에 따라서 변경할 때 사용 명령의 실행 결과를 화면이 아닌 파일로 저장할 때 혹은 반복된 입력이 필요한

경우에 사용리다이렉션 의미

명령 > 파일명 명령의 실행 결과를 파일로 출력

명령 >> 파일명 명령의 실행 결과를 지정한 파일의 끝에 덧붙여 출력

명령 >& 명령의 실행 결과와 에러를 파일로 출력

명령 2> 파일명 파일로 에러를 출력

명령 2>&1 명령의 에러를 표준 출력과 같은 곳으로 출력

명령 >>& 파일명 명령의 실행 결과와 에러를 지정한 파일의 끝에 덧붙여 출력

명령 >! 파일명 명령 실행 결과를 지정한 파일이 이미 존재해도 무시하고 출력

명령 >&! 파일명 명령 실행 결과와 에러를 지정한 파일이 이미 존재해도 무시하고 출력

명령 1 | 명령 2 명령 1 의 출력을 명령 2 의 입력으로 사용하여 실행

명령 1 |& 명령 2 명령 1 의 실행 결과와 에러를 명령 2 의 입력으로 사용하여 실행

Copyright©InformationSecurity Laboratory. all right reserved.

Shell 스크립트 파일 만들기

쉘은 리눅스 운영체제를 운영함에 있어 명령어를 조합하는 방법으로 프로그램을 만들 수 있도록 해주는 도구

쉘을 이용하여 프로그램을 만들 수 있으며 이러한 프로그램을 쉘 스크립트라고 한다

장점 리눅스 환경을 사용하므로 , 리눅스 명령어 및 환경 변수 등을 사용하기가 매우

용이하다 C 프로그램과 유사한 형태의 프로그래밍이 가능하다

Copyright©InformationSecurity Laboratory. all right reserved.

Shell 스크립트 파일 만들기 – 변수 사용하기

변수 설정 변수명 다음에 ‘ =‘ 을 사용하여 그 값을 정의 ‘=‘ 좌우에는 공백이 있으면 안되고 , 대소문자 구별

“” 를 이용한 경우 공백까지 변수에 저장 가능

‘export’ 명령어를 이용하여 환경변수로 만들 수 있다

여기서 환경변수는 전역변수와 비슷하다고 보면 된다

A=10 // 변수 A 에 ‘ 10’ 의 값을 정의

B=“ 엔터프라이즈 리눅스” // 변수 A 에 ‘ 10’ 의 값을 정의

변수명 = 값export 변수명

Copyright©InformationSecurity Laboratory. all right reserved.

Shell 스크립트 파일 만들기 – 변수 사용하기

변수 사용 ‘$’ 를 사용하여 변수 사용

변수 os 에 linux 라는 문자열을 저장하고 ‘ $’ 을 사용하여 변수 사용

Copyright©InformationSecurity Laboratory. all right reserved.

Shell 스크립트 파일 만들기 – 스크립트 파일 생성

스크립트 파일 생성

vi test.sh 로 쉘 스크립트 파일 만들기

#! /bin/bash 배시 쉘로 작성되었다는 것을 의미하며 배시 쉘을 기준으로 실행되는 것을 의미

Copyright©InformationSecurity Laboratory. all right reserved.

Shell 스크립트 파일 만들기 – 스크립트 파일 생성

Run Program

-n : 자동 줄바꿈 방지 read : 사용자의 표준입력을 받아들여 변수로 저장 chmod : 퍼미션을 수정하여 실행권한 (x) 을 부여 $ : 변수를 사용할 때는 변수 앞에 ‘ $’ 를 사용 date : 현재 시간을 출력

‘_dir’ 변수에 사용자가 입력한 값을 받는다

Copyright©InformationSecurity Laboratory. all right reserved.

Shell 스크립트 파일 만들기 – 스크립트 파일 생성

gedit &

Copyright©InformationSecurity Laboratory. all right reserved.

Shell 스크립트 파일 만들기 – 스크립트 파일 생성

실행권한 추가 쉘 스크립트 파일은 기본적으로 644 퍼미션 (rw-/r--/r--) 을 갖는다 . 이를

실행하기 위해서는 파일에 실행권한을 주어야 한다

스크립트 파일 실행 sh 명령을 이용한 방법 퍼미션 변경후 실행

sh 명령어를 사용하여 쉘스크립트 실행

Copyright©InformationSecurity Laboratory. all right reserved.

쉘의 기초 문법 – 숫자와 문자 그리고 파일

크기 비교

if-else 문을 써서 문장 출력

표현방식 의미 표현방식 의미

[ $A –gt $B] A 가 B 보다 크다 [ $A –lt $B] A 가 B 보다 작다

[ $A –ge $B] A 가 B 보다 크거나 같다 [ $A –le $B] A 가 B 보다 작거나 같다

[ $A –eq $B] A 와 B 가 같다 [ $A –ne $B] A 와 B 가 다르다

4 가 9 보다 작으면 ?

Copyright©InformationSecurity Laboratory. all right reserved.

쉘의 기초 문법 – 숫자와 문자 그리고 파일

문자열 비교표현방식 의미

[ “string1” = “string2” ]

두 문자열이 같은 경우

[ “string1” != “string2” ]

두 문자열이 다른 경우

[ -z “string” ] 문자열의 길이가 0 인 경우

[ -n “string” ] 문자열의 길이가 0 이 아닌 경우

Copyright©InformationSecurity Laboratory. all right reserved.

쉘의 기초 문법 – 숫자와 문자 그리고 파일

파일 다루기

표현방식 의미

[ -a 파일명 ] 파일이 존재하는 경우

[ -b 파일명 ] 파일이 존재하고 블록 파일인 경우

[ -c 파일명 ] 파일이 존재하고 문자 파일인 경우

[ -d 파일명 ] 파일이 아니고 디렉토리인 경우

[ -e 파일명 ] 파일이 존재하는 경우

[ -f 파일명 ] 파일이 존재하면서 크기가 0 보다 큰 경우

[ -g 파일명 ] 파일이 존재하고 SetGID 가 설정된 경우

[ -h 파일명 ] 파일이 존재하고 심볼릭 링크인 경우

[ -k 파일명 ] 파일이 존재하고 Sticky bit 가 설정된 경우

[ -r 파일명 ] 읽기가 가능한 파일인 경우

[ -u 파일명 ] 파일이 존재하고 SetUID 가 설정된 경우

[ -x 파일명 ] 파일이 존재하고 실행 가능한 경우

[ ! –option 파일명 ] 옵션의 조건이 거짓이 되는 경우

[ 파일 1 –nt 파일 2 ] 수정시간을 기준으로 파일 1 이 파일 2 보다 새로운 파일인 경우

[ 파일 1 –ot 파일 2 ] 수정시간을 기준으로 파일 1 이 파일 2 보다 오래된 파일인 경우

Copyright©InformationSecurity Laboratory. all right reserved.

쉘의 기초 문법 – 숫자와 문자 그리고 파일

숫자 계산 숫자의 계산은 expr 을 사용

* : 곱하기 (\* 로 사용 ) + : 더하기 - : 빼기 / : 나누기 (\/ 로 사용 ) % : 나누기 후 나머지 값

Copyright©InformationSecurity Laboratory. all right reserved.

쉘의 기초 문법 – echo 문 : 기본출력

화면에 원하는 문자열을 출력 문자열에 공백이 있을 경우 전체를 “ “로 묶어준다 자동으로 줄 바꿈을 한다 (-n 옵션을 쓰면 줄 바꿈 X)

명령어를 실행하여 그 결과를 출력가능 ( 역따옴표 ( ` ) 를 사용 )

변수를 출력할 때 마지막에 입력된 값을 출력한다

Copyright©InformationSecurity Laboratory. all right reserved.

쉘의 기초 문법 – read 문

사용자의 표준입력을 변수로 받아들이는 역할

Copyright©InformationSecurity Laboratory. all right reserved.

쉘의 기초 문법 – 조건문

if 문 C 언어의 if 문과 거의 비슷하다 -o : or 의 의미로 둘 중의 하나가 참이면 그 문장이 성립 -a : and 의 의미로 모두가 참일 때 그 문장이 성립

el-seif

Copyright©InformationSecurity Laboratory. all right reserved.

쉘의 기초 문법 – for 문

변수 값의 개수만큼 루프를 돌면서 do 문장을 실행하고 done 으로 마무리

변수 개수

Copyright©InformationSecurity Laboratory. all right reserved.

쉘의 기초 문법 – while 문 & until 문

while 문 for 문과 마찬가지로 조건문이 참일 경우 반복 실행

until 문 while 문과 같은 반복문이지만 , 반대로 동작 조건문이 참이면 루프 종료 , 조건문이 거짓이면 루프를 돌린다

Copyright©InformationSecurity Laboratory. all right reserved.

쉘의 기초 문법 – case 문

case 로 시작하여 esac 로 끝난다 변수 값을 받아들여 이 값에 따른 패턴별로 문장을 실행

Copyright©InformationSecurity Laboratory. all right reserved.

쉘의 기초 문법 – continue 와 break 문

continue 반복문의 수행 중간에 continue 이하의 내용을 실행하지 않고 다시 처음의

조건문으로 되돌아간다 break

반복문을 강제로 빠져 나오게 한다

Copyright©InformationSecurity Laboratory. all right reserved.

쉘의 기초 문법 – 사용자 정의 함수

C 와 비슷한 형태의 함수 선언 가능

함수명 ()

함수 내용

Copyright©InformationSecurity Laboratory. all right reserved.

Q & A