Linux 9.X 기초에서 활용까지 Chapter 09 쉘(Shell).

Slides:



Advertisements
Similar presentations
비즈쿨 - 정 성 욱 - - 금오공고 비즈쿨 - 정 성 욱 1. 나는 각 단원들의 활동들에 성실하게 참여 하겠습니다. 우리의 다짐 2. 나는 나와 전체의 발전을 위해 각 멘토들의 지도에 순종하겠습니다. 3. 나는 각 단원들을 숙지함으로써 비즈니스 마인드를 함양하고 자신의.
Advertisements

Linux1 Linux 개요 Linux 방문하여 홈페이지 등록하기 Vi 편집해 보기. Linux2 개요  Linux 란 ? 1991 Linus Benedict Torvalds 가 만든 Unix 의 한 버전 GNU(GNU is Not Unix) » 프로그램이나 정보의.
1 장 Unix/Linux 소개 1 Helpers. 1 장 내용 1. 왜 유닉스인가 ? 2. 유닉스 시스템 구조 3. 유닉스 역사 및 버전 4. 리눅스 설치 ( 별도 2 시간 실습 ) 5. 사용 환경 6. 사용자 계정 관리 Unix/Linux 2.
이재우.  운영체제 정의 ◦ OS(Operation System) ◦ 사용자와 컴퓨터 시스템 사이에 위치하여 컴퓨터 시스템의 전반 적인 동작을 제어하고 조정하며 ◦ 사용자에게 편리성을 제공하여 한정된 시스템 자원을 효율적으 로 사용할 수 있도록 관리하는.
서울지하철노조 설립. 1. 전형적 공기업 군사 문화 가 일 개통 1 호선 서울시 공무원으로 운영 일 3.4 호선 건설한 공사와 합병 공무원신분에서 신분변경 나. 공사 내부의 군사 조직과 군사문화 - 공사 사장 감사 이사 ( 별.
KAIST 09 SPARCS 10 안재만 (Kuss).  OS  Kernel & Shell  OS Layer  Linux  Linux / GNU  Linux 역사  Linux 배포판  Linux Directories.
2016 년 3 월 18 일 2016 귀농현장실습교육 시스템 농촌인적자원개발센터 누리집 ( 홈페이지 )
쉘 스크립트와 cron coearth, george.
3. 유닉스 셸 (Unix Shell) 실습 컴퓨터 : fedora.incheon.ac.kr ( )
해외서, 국내서 요약 ‘북집’ 모바일 서비스 이용방법
강 명 수 쉘 관리 강 명 수
Root File System 충북대학교 지능로봇연구실.
제 1장 C 언어의 소개.
Part01. 시스템 해킹을 위한 기초 지식 Chapter01. 운영체제에 대한 이해
강좌명 : 유닉스 시스템프로그래밍 (UNIX System Programming) 강좌번호 : E 이수구분 : 전공선택
SHELLScript ? 04 Spring SPARCS
1장 유닉스 소개.
Linux University of Seoul Computer Science Park Jong wook
Chapter 10 The Bourne Shell
Embedded Linux.
컴퓨터 네트워크 실습.
Unix(Linux) shell programming
Chapter 11 The C Shell.
제3장 유닉스 쉘.
Unix & Shell 사용법 1 번째주 Dept. of Computer Science & Engineering
1 유닉스 시스템 프로그래밍 개요.
 13장. 배시쉘 프로그래밍.
소개: Unix란 무엇인가? 숙명여대 창병모 2009/09.
[beginning] Linux & vi editor
유닉스 이론과 실습 √ 원리를 알면 IT가 맛있다 컴퓨터정보계열 이광규.
UNIX Unbounded A Beginning Approach
쉘(Shell).
UNIX Unbounded A Beginning Approach
UNIX Unbounded A Beginning Approach
컴퓨터 네트워크 실습.
Linux/UNIX Programming
제2장 유닉스/리눅스 사용.
7장. 셸 스크립트 프로그래밍.
Shell Programming Concept of the Shell Environment of Shell
리눅스 기본 명령어 기본 명령어 명령어 기능 사 용 예 date 날짜 및 시간을 확인하고 생성.
Internet Protocol and Programming
정보검색 환경세팅 및 쉘스크립트 맛보기 IS lab. 김건영.
기본 셸로는 Bash 셸을 사용하라. 하지만 스트립트를 실행하기 위해서는 Bourne 셸을 사용하라.
상지대학교 컴퓨터공학과 고광만 Lecture 01: 유닉스/리눅스 소개 상지대학교 컴퓨터공학과 고광만
제4장 유닉스 쉘 숙명여대 창병모 2011 가을.
자전거를 배우려면 안장에 올라가 페달을 밟아라.
자전거를 배우려면 안장에 올라가 페달을 밟아라.
칼빈의 생애와 개혁자로의 변모 사학과 김종식.
유닉스 개요 및 기본 사용법 ㅎㅎ 유닉스 개요 유닉스 시스템 접속 방법과 명령 사용법.
Internet Protocol and Programming
4장 - PHP의 표현식과 흐름 제어-.
국제의료관광 관련 법, 제도.
Linux/UNIX Programming
6장 콘 셸 뇌를 자극하는 Solaris Bible.
Unix 시스템 인천대학교 전자계산학과 성미영
U N I X 창원대학교 전자계산학과 김병찬.
CHAPTER 9-1 한국의 사회복지정책 - 사회보험제도 -
주어진 가락에 이어 가락을 지어 봅시다 6학년 2학기 16. 가을맞이 (2/2) 음 악 제작의도 맨 처음 보이는 초기화면입니다
Internet Protocol and Programming
4. 셸을 이용한 명령어 입력. Unix 시스템 쉘 간단한 셸 명령 명령 매개변수(Command arguments)
제4장 유닉스 쉘 숙명여대 창병모
Homework #5 (1/3) 다음을 수행한 후, 결과 파일들을 출력하여 제출한다.
제8장 C 쉘 창병모
2/4박자 리듬치며 노래 부르기 음악 3학년 3.구슬비 (1/3 ) 수업계획 수업활동 [제작의도]
컴퓨터 프로그램 제 1장 공학문제 해결 김 문 기.
관상으로 보는 성공운 관상을 보아하니 성공운이 트였구려! 관상을 보는 철학가,
오셔서 다스리소서 산과 시내와 붉은 노을과 땅의 모든 것 주 다스리네 내 안의 갈망 유일한 소망 주님 날 다스리는 것.
경찰학 세미나 제 5 강 경찰관직무집행법 2조 5호의 의미 신라대학교 법경찰학부 김순석.
Linux/UNIX Programming
Intelligent software Lab. 전재원
Presentation transcript:

Linux 9.X 기초에서 활용까지 Chapter 09 쉘(Shell)

Content 쉘의 의미와 활용 쉘 스크립트에 관하여 알아보자

쉘의 의미 쉘의 정의 쉘은 조개껍데기라는 뜻을 가지고 있으며, 운영체제를 둘러싸고 입력 받는 명령어를 실행시키는 명령어 해석기이며, 프로그래밍 언어로서의 특성을 가지고 있다. 최초의 쉘은 UNIX 연구 개발 초기 UNIX 파일시스템 설계의 일부분으로 Ken Thompson에 의해 만들어졌으며, AT&T에서 Steven Bourne에 의해 Bourne Shell이 만들어졌다. 리눅스에서의 기본적으로 사용하는 쉘은 Bash Shell로 Bourne Again Shell이라는 뜻을 가지고 있다. 쉘과 커널과의 관계

쉘의 의미 쉘의 종류 sh(Bourne Shell) UNIX 시스템의 표준 구성 요소로서 가장 오래되고, 강력한 명령 프로그래밍 언어 기능을 가지고 있음 Bell 연구소의 Steven Bourne의 이름을 따라 명명되었다. Bourne의 커맨드명은 sh 이다. 상호 대화식 방식을 취하고 있지 않으며, .profile 파일로 환경을 초기화 한다. csh(C Shell) Bourne Shell 이외에 많이 사용되고 있는 쉘이며, 프로그램명은 csh 이다. C Shell은 원래 버클리 버전 UNIX의 쉘로 개발 된 것으로 Bourne Shell과 매우 유사하다. 커맨드 구조에서 C 언어와 유사하고, 몇가지 프로그램 개발에 편리한 기능도 내장하고 있다. 상호 대화식 방식으로 구성되어 있으며, .cshrc 파일로 환경을 초기화 한다.

쉘의 의미 쉘의 종류 ksh(Korn Shell) AT&T의 David Korn에 의해 개발되었으며, 비대화식 Bourne Shell에 C Shell의 대화식 환경을 접목시켜 UNIX 시스템에서 표준 쉘로 공급 Bourne Shell과 완전히 호환성이 있으며, C의 혈통을 잇고 있다. .kshrc 파일로 환경을 초기화 할 수 있다. Bash(Bourne Again Shell) Brian Fox 외 몇몇 사람에 의해 1989sus에 개발되었으며, FSF에서 내어 놓은 일군의 GNU이다. Bash의 최종 목표는 IEEE POSIX Shell과 도구 명세에 호환되도록 하는 것이다. Korn Shell과 C Shell의 유용한 특징들을 통합하고 있으며, 쉘 프로그래밍 언어에 있어서는 Bourne Shell과 호환이 된다. 상호 연결성, 명령어 라인 편집, 완료, 재실행을 지원하는데 매우 탁월한 성능을 나타낸다.

쉘의 종류 쉘의 의미 그 밖의 쉘 C Shell의 결함을 고치고 몇 개의 새로운 기능을 추가한 TC Shell 등이 등장함 많은 쉘들이 개발되고 선을 보이고 있지만, 일반적으로 Bash을 사용

쉘의 활용 및 기능 쉘의 확인과 변경 리눅스에서 지원하고 있는 쉘들은 /etc/shells 파일에 그 경로가 설정되어 있다. 리눅스 계정을 가지고 있는 사용자 정보는 /etc/passwd 파일에 모두 저장 되어 있다. 사용자 정보는 7개의 필드로 구성 되어 있으며, 마지막 필드에 사용자가 사용하는 쉘이 설정되어 있다. 잠시 사용하고자 하는 쉘을 변경하고 싶을 때는 사용하고자 하는 쉘을 프롬프트에서 실행 시키면 된다. 쉘의 기능 쉘은 키보드와 화면을 통해서 사용자와 대화하는 인터페이스 기능을 제공 강력한 프로그래밍 언어 기능을 지원 사용자의 작업 환경을 사용자의 요구사항에 맞추어 설정할 수 있는 기능 제공 개인이나 그룹의 스타일이 반영되는 환경을 조성할 수 있다.

쉘의 다양한 기능 쉘의 활용 및 기능 명령 완성 기능 입력할 파일명이나 디렉토리 또는 명령어의 길이가 너무 긴 경우 명령어의 일부만 입력하고 Tab 키를 누르게 되면, 나머지 입력되지 않은 부분이 완성되어 생성 된다. 만일 해당하는 명령어가 두개 이상인 경우에는 해당되는 명령어의 리스트를 모두 보여준다. ESC 키를 두 번 연속적으로 눌러도 같은 기능을 하게 된다. 방향키로 History 사용하기 로그인을 한 사용자가 지금까지 사용했던 명령어를 보려면, history라는 명령을 사용 위, 아래 방향키를 사용함으로써 사용했던 명령어를 찾아낸다. ~/.bash_history 파일에 저장되어 있으며, ~/.bashrc 파일의 HISTSIZE 변수로 설정할 수 있다.

쉘의 다양한 기능 쉘의 활용 및 기능 마우스를 사용한 텍스트 복사 멀티 콘솔은 X 윈도우를 사용하는 경우 여러 개의 터미널을 띄워 동시에 멀티 태스킹을 지원하는 것을 의미 하나의 터미널에서 다른 터미널로 복사하고자 할때 마우스로 해당 부분을 드래그하고 복사되기 원하는 위치로 가서 3버튼 마우스인 경우에는 가운데 버튼을 누르고, 2버튼 마우스인 경우에는 두 개 버튼을 동시에 눌러 복사한다. 와일드 카드의 지원 ? 또는 * 를 사용하는 와일드 카드를 지원한다. ? : 임의의 한 문자 의미 * : 문자 수와 상관 없이 임의의 문자를 의미

환경 설정 파일 쉘의 환경 설정 쉴 환경 설정 파일은 기본적으로 사용자의 홈 디렉토리 안에 위치하고 있다. 새로운 사용자를 등록하면 /etc/skel 디렉토리에 기본값으로 저장되어 있는 파일들을 사용자의 기본 홈 디렉토리로 복사하여 생성된다.

# echo $변수명 또는 printenv 변수명 # export [환경변수명] = [변수값] 쉘의 환경 설정 환경 변수 값 확인 하나씩 확인 현재 설정 된 변수 값을 모두 확인 환경 변수 값 설정 및 변경 # echo $변수명 또는 printenv 변수명 # printenv # export [환경변수명] = [변수값]

쉘 스크립트 쉘 스크립트의 기본 쉘 스크립트 : 컴파일 같은 작업이 필요 없이 텍스트 파일 안에 명령 프롬프트에서 실행이 가능한 명령들을 적고, 실행 권한을 주어 프로그램을 동작시키는 것 쉘 스크립트를 이용하여 쉘이 가진 능력을 충분하게 활용할 수 있으며, 일괄처리와 같은 기능을 부여 쉘 스크립팅 언어로 작성 된 스크립트 파일은 .sh 라는 확장자를 주어 구별한다. #!/bin/bash 은 해당 스크립트를 실행하기 위한 쉘의 경로를 지정 사용자 계정에 따라 이 파일을 실행할 수 있도록 실행 권한을 부여해 주고 ‘./파일명’ 과 같은 형태로 실행한다. #!/bin/bash echo Hello enion

# grep abc * 2> grep-errors.txt 쉘 스크립트 리다이렉션(Redirection) 쉘은 항상 기본적으로 표준입력, 표준출력, 표준에러 파일들을 열어 놓는다. 리다이렉션 : 파일, 명령어, 프로그램, 스크립트 등의 출력을 낚아채서 다른 파일, 명령어, 프로그램, 스크립트의 입력으로 보내는 것을 의미 표준 입력을 전환 : < 또는 << 표준 출력을 전환 : > 또는 >> 표준 출력을 파일로 보내기 표준 에러를 파일로 보내기 # ls –l > list_1.txt # grep abc * 2> grep-errors.txt

쉘 스크립트 변수 쉘에서 사용되는 변수의 종류는 다음과 같이 세가지로 나뉘게 된다. 환경 변수 사용자에 따른 쉘이 실행될 때 여러가지 초기 설정 작업이 동작하게 되고 그것에 대한 정보를 저장하고 있는 변수 특수 변수 쉘 프로그램에 인수로 전달될 때 사용되거나 현재 쉘의 프로세스 번호 등으로 사용 된다. 프로그램 변수 프로그래머가 다양하게 만들어 사용할 수 있음 bash 에서는 데이터 타입을 미리 정할 필요 없이, 숫자나 문자, 혹은 문자열을 지정할 수 있다.

조건문 쉘 스크립트 만약 ~ 라면 이라는 뜻을 가지고 있으며, 다양한 형식으로 표현할 수 있다. if [expression] then [statement] if [expression] then [statement1] else [statement2] fi

If ~ then 쉘 스크립트 <if_then.sh의 내용> #!/bin/bash man=10 woman=20 if [ $man -lt $woman ] then echo woman fi

순환문 쉘 스크립트 사용자가 실행하고자 하는 구문을 원하는 횟수만큼 반복하고자 할 때 사용 for문 for 변수 in list1 list2 list3 do statements done

순환문 쉘 스크립트 while문 until문 while 조건문 do statements done until 조건문 do

function 함수명 { statements } 쉘 스크립트 함수의 사용과 디버깅 함수의 사용 논리적인 흐름과 재귀 표현 등을 위하여 코드를 묶어서 사용 함수란, 서브루틴으로 어떤 동작들이 구현된 코드 블록이고, 특정한 일을 수행하는 ‘블랙박스’와 같다. 반복적인 코드가 있다거나, 약간의 부분만 바뀌며 반복실행 되는 작업의 경우 함수를 사용하는 것이 효율적이다. function 함수명 { statements }

쉘 스크립트 함수의 사용과 디버깅 디버깅 디버깅이란 컴퓨터 프로그램이나 하드웨어 장치에서 잘못된 부분, 즉 버그를 찾아서 수정하거나 에러를 피해나가는 처리 과정을 의미한다. 디버깅 도구를 사용하면 각 개발 단계에서 잘못된 코딩부분을 쉽게 찾아낼 수 있으며, 몇몇 프로그램 개발 패키지에는 프로그램을 작성할 때 디버깅을 수행하는 기능이 포함되어 있다. 리눅스 스크립팅 프로그램에서 디버깅을 하려면 다음과 같은 형식으로 수정한다. 실행 과정의 정보를 하나씩 출력해 주어 디버그에 도움을 준다 #!/bin/bash -x