관리 메뉴

드럼치는 프로그래머

[리눅스마스터 2급] 1-2. 쉘 본문

★─License 's/☆─리눅스마스터

[리눅스마스터 2급] 1-2. 쉘

드럼치는한동이 2007. 8. 6. 19:56

1. 리눅스 운영 및 관리

(1) 파일시스템 관련 명령어

(2) Sell

(3) 프로세스 관리

(4) 에디터

(5) 소프트웨어 설치

(6) 장치 설정


2. 리눅스 활용

(1) X윈도

(2) 인터넷 활용

(3) 리눅스 신기술

===========================================================================

1. 리눅스 운영 및 관리

(2) Sell


쉘의 종류

* 본쉘(Bourne Shell): 유닉스시스템 최초의 쉘. 프로그래밍 언어의 용도로 개발됨.

                                  본쉘계열의 쉘로는 ksh,bash,zsh 등이 있다.

* Bourne-Again SHell(bash쉘): 표준 본쉘에 기능을 보강한 것. 리눅스에서 가장 많이 사용되는 쉘

                                                  POSIX와 호환됨. GNU프로젝트에 의해 만들어지고 배포됨.

   -bash환경에서 사용자 실수로 홈디렉토리에 있는 .bashrc파일을 삭제했을 경우,

     /etc/skel 디렉터리 안에서  .bashrc 파일을 복사하고 소유권을 사용자에게 넘긴다.

   - 일반적으로 bash의 문자완성 기능 이용시 사용하는 키: Tab

* csh: C언어와 유사하여 유닉스에서 많이 사용됨. 본쉘과 대부분 호환되지만 다른 인터페이스가짐.

         편집기능 제공안함.

          /bin/csh: C쉘은 C언어와 유사한 언어를 사용한 대화형 쉘이다.

* C Shell: csh보다 진보된 쉘. 대화형 쉘. 입력된 명령을 쉽게 수정할 수 있으며,

              많은 태스크들을 백그라운드 작업제어를 할 수 있다. 쉘 스크립트로는 본쉘사용.

              - set명령어로 지역 쉘 변수를 설정하며, setenv 명령어로 환경변수를 설정한다.

              - 문자열, 수, 논리식을 구할 수 있는 것 외에 비트 단위 논리식을 구할 수 있다.

              - 숫자 변수 할당과 문자열 변수 할당은 서로 다르게 선언되어진다.

* 콘쉘(Korn Shell,ksh): 유닉스에서 가장 많이 사용됨. 명령행편집기능 제공.C혈통.

                              - 본쉘과 호환되면서 명령행 편집기능을 제공한다.

* TC Shell(tsh): 확장 C쉘. 명령행 편집기능 제공.

* 쉘 실행시 초기화 파일이름: 콘쉘(.kshrc), 본쉘(.bashrc), TC쉘(.tcshrc)

* 명령행 편집기능 제공: bash,ksh

* 사용자 쉘이 bash로 설정된 경우 로그인할때 실행되는 파일: .bashrc와 .bash_profile

 

본쉘 환경변수

* 본 쉘은 산술계산, 조건식, 제어구조, 내장 명령어들을 가진 아주 훌륭한 프로그램을 작성 가능케 하는

   쉘인 동시에 모든 쉘의 기본이 된다.

* 내장 쉘 변수는 4가지 변수 중의 하나이다.

* 특수 파라미터는 4가지 변수 중의 하나이다.

* 사용자 정의 변수는 4가지 변수 중의 하나이다.

HOME=/home/login : 사용자가 시작하는 위치인 홈 디렉터리 설정

LOGNAME=login: LOGNAME은 자동으로 로그인 ID와 동일하게 설정된다.

PATH=path: path옵션은 셀이 명령에 대하 찾는 디렉터리 목록을 표현한다.

(PATH 환경변수에 /usr/local/bin이라는 신규 값 추가하는 명령어: export PATH=$PATH:/usr/local/bin)

PS1=prompt: PS1은 프롬프트의 모습을 정의하는 1차 쉘 프롬프트이다.

PWD=directory: 자동으로 설정된 것으로 사용자의 현재위치(디렉터리경로)를 나태내주는 역할을 한다.

SHELL=shell : SHELL은 사용자 쉘로서 가능한 프로그램의 위치를 식별한다.

TERM=temtype: 터미널 데이터베이스에 의해 지정되는 대로 터미널 유형의 이름을 설정함.


특수 환경변수

HOME: 사용자가 시작하는 위치인 홈데렉터리를 설정함. 항상 홈 디렉터리를 지정한다.

         홈디렉터리가 이동되는 경우에도 명령이 여전히 작동된다.

         홈디렉터리의 파일을 지정하는 쉘 스크립트를 작성 중일 때 HOME변수를 사용할 수 있다.

SHELL: 현재 쉘의 이름

MAIL: 우편함의 전체경로명

LOGNAME: 로그인 이름

PATH: 쉘이 명령을 탐색하는 디렉터리를 지정한다. 디렉터리가 나열되는 순서로 탐색한다.

         순서대로 디렉터리를 탐색하다 명령을 찾으면 탐색을 중단한다

TZ: date명령에 대한 시간대

SECONDS: 쉘을 호출한 이후의 시간(초)

PS1: 시스템 프롬프트

TERM: 사용중인 터미널의 유형

HISTFILE: 사용자가 실행했던 명령어의 목록을 저장하는 파일을 설정한다.

HOSTNME: 호스트이름

 

리다이렉션

*어떤 명령의 결과 출력을 원하는 위치로 바꿀때 사용. 어떤 명령의 입력값을 원하는 위치에서 받을 수도 있다.

*명령어>파일: 명령의 출력을 파일로 보냄

[ex] 명령1: cat a>b

       명령2: cat b

       => 파일a의 내용이 출력됨.

*명령어<파일: 파일에서 명령어 입력

*명령어>>파일: 명령의 출력을 파일에 덧붙임.

[ex] ls -l >>aa.log

=> aa.log 파일이 존재한다면 ls -l의 결과를 파일 끝부분에 추가하고

   존재하지 않는다면, 생성한 다음 ls -l의 결과를 기록한다.

 

리눅스 쉘의 환경파일

 .login: 특정 쉘에 관계없는 초기 환경을 지정하여 Login할 때 지정한 명령을 자동수행

 .logout: 시스템 접속을 종료하기 전에 마지막으로 수행될 내용을 지정하는 파일

 .newsrc: USENET News Group 이용시 그룹 환경 저장 파일

 .eml: 전자우편 프로그램에서 사용하는 디렉터리

 

기타 기출문제

*쉘 스크립트를 작성하는 이유

- vi나 ed같은 편집기를 사용하여 쉘 스크립트를 간단히 작성하고 편집할 수 있다.

- 스크립트의 생성과 유지가 쉽다.

- 스크립트는 키를 타이핑하여 입력해야 하는 노력과 시간이 절약되며 의사결정, 루핑, 에러조작 등의

  명령어를 이용하여 폭넓게 문제를 해결할 수 있다.

- 쉘스크립트: 본쉘의 기능으로 가능한 것이다.(본셀은 쉘스크립트만가능. Bash는 모두 가능)

- 쉘 스크립트가 잠시 운영을 중단하는 명령어: sleep

- hello.sh라는 쉘 스크립트 파일 내용

   #!/bin/sh

   echo "리눅스의 세계에 오신 것을 환영합니다."

- echo $SHELL 명령의 실행결과 /bin/bash가 출력된다면

  : 현재 기본 사용 쉘이  /bin/bash임을 나타낸다.


*alias: 하나의 명령 또는 명령의 집합에 붙여 주는 어떤 이름을 alias라 한다.

           자주 사용되는 복잡한 명령을 alias를 사용하여 단축 명령어로 만들어 둘 수 있으므로

           alias 기능을 잘 이용하면 UNIX 시스템을 편리하게 사용할 수 있다.

           - alias의 사용서식은 alias별명 = '명령어'와 같다.

           - .cshrc까지 사용하는 사용자라면 .cshrc파일을 작성하여야 한다.

           - rc파일은 쉘이 실행될 때마다 적용될 수 있는 특정 쉘에 관계된 변수와 설정 사항을 포함함.

          - 파일 삭제시 확인 메시지 표시하도록 설정하는  alias 명령어: alias rm = 'rm -i'

            (홈디렉터리에 있는 .bashrc파일에 설정이 이루어진다.)


*명령어들

   - w: 시스템 사용자들의 작업내용 출력

   - talk:  다른 사람에게 간단한 메시지 전달

   - traceroute: 다른 시스템에 접속되는 경로 조회

   - who: 시스템 사용자들이 접속하여 들어온 장소, 시간 등 출력

   - rm: 삭제하는 명령어

     [예] rm client.9 [0-3,a-z] 명령 실행시 패턴의 형식 중 (0~3,a~z)를 포함하는 파일에 영향을 줌.

          

*.cshrc: Cshell이용자의 경우 로그인환경설정시 필요한 파일.

*어떤 쉘이 다른 쉘을 시작시킬경우 다른쉘을 sub쉘이라고 부른다.

*쉘의 일부분을 제외한 모든 유틸리티 프로그램 및 기타 응용 프로그램들이 C언어로 쓰여짐.

*파이프: 여러 명령을 조합해서 사용할 때 이용. 하나의 명령행에 여러 개의 파이프 사용가능.

*!: 히스토리 기능을 사용하기 위한 쉘 예약어

 - Bash쉘의 히스토리 기능을 이용하여 바로 이전 명령의 매개변수를 재입력하고자 할때 사용하는 쉘예약어: !!

*stty: 터미널 세팅을 보여주거나 변경해 줌. 스크립트에서 쓰여 터미널 동작이나 출력하는 방법을 제어.

          명령행 편집기능 즉 키보드를 이용하여 많이 사용하는 유용한 키(Ctrl -c, Backspace 등)를 설정함.


================================================================================================

Comments