View
221
Download
6
Embed Size (px)
Citation preview
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 와 비슷한 형태의 함수 선언 가능
함수명 ()
함수 내용