2과목 리눅스 운영 및 관리

YunGyu Choi·2023년 5월 29일
0

리눅스마스터2급

목록 보기
2/3

1. 파일 시스템 관련 명령어

1) 권환 및 그룹 설정

2) 파일 시스템의 관리


2. 셸

1) 개념 및 종류

(1) 셸의 개념

  • 명령어 해석기 이다.
    사용자가 입력한 명령어를 해석하여 커널에 전달한다.
    DOS의 Command.com과 동일한 기능을 수행한다.
    커널과 사용자 간의 대화식 인터페이스를 제공한다.
  • 로그인할 때 실행되어 사용자별로 사용 환경 설정을 가능하게 한다.
  • 강력한 스크립트 언어이다.
    셸 자체가 프로그래밍 기능을 갖고 있기 때문이다.
  • 입출력 방향 재지정과 파이프 기능을 제공한다.

(2) 셸의 종류

  • 본셸 계열과 C셸 계열로 나뉜다.
  • 사용자 프롬프트가 '$'이면 본셸 계열, '%'dlaus C셸 계열 이다.

(3) 셸 확인 및 변경

  • 로그인 셸 확인
[user@localhost ~]$ cat /etc/shells
(사용할 수 있는 셸 출력)
[user@localhost ~]$ echo $SHELL
(현재 로그인한 사용자가 사용하고 있는 셸을 출력)
  • 셸 변경
[user@localhost ~]$ chsh [옵션] 계정명 셸
옵션 -s : 지정하는 셸을 앞으로 사용할 로그인 셸로 변경
옵션 -l : /etc/shells 파일안에 지정된 셸을 나열
[user@localhost ~]$ usermod [옵션] 계정명
(관리자 환경에서 지정된 계정의 정보를 변경할 때 사용) 

2) 환경설정

변수는 시스템 환경 정보 저장소로 환경 변수(전역 변수)와 셸 변수(지역 변수)로 구분된다.

환경 변수

  • 전체 셸에서 사용 가능한 전역 변수
  • 서브 셸에 기능 상속 기능
  • 환경 변수 확인 명령 : env

셸 변수

  • 현재 로그인 셸에서만 사용 가능한 지역 변수
  • 서브 셸에 기능 상속 불가능
  • 셸 변수 확인 명령 : set

주요 환경 변수

  • PATH : 실행할 명령어 경로 검색, 셸 설정 파일 중 하나에 설정
  • HOME : 사용자의 홈 디렉터리 절대 경로
  • HOSTNAME : 호스트명
  • USER : 사용자 이름
  • DISPLAY : X-windows 시스템에서 xterm과 같은 X 응용 프로그램이 화면 출력을 위해 접속할 X 서버의 주소를 지정
  • PS1 : 셸 프롬프트를 선언 시 사용하는 변수
  • PS2 : 2차 셸 프롬프트 선언 시 사용하는 변수
  • PWD : 현재 디렉터리의 절대 경로명
  • SHELL : 로그인 셸의 절대 경로명
  • TERM : 터미널 종류의 이름
  • TMOUT : 로그아웃 관련 시간 제어
  • LANG : 프로그램 사용시 기본 지원 언어
  • PRINT : 기본 프린터(설정이 안되어 있으면 lpr에게 알려주지 않아도 됨)
  • MAIL : 도착한 메일이 저장되는 경로

환경 변수 설정

  • export : 환경 변수 리스트 확인
  • export 변수명 = 변수값 : 해당 변수명에 변수값 등록, 셸 변수를 환경 변수로 변경
  • echo $변수명 : 변수에 해당하는 환경 변수 값 확인
  • export 변수명=$변수명:변수값 : 기존 벼수명에 변수 값 추가
  • unset 변수명 : 변수 정의 해제

프롬프트 설정 형식

  • \t : 24시로 현재 시간을 표시
  • \W : 현재 작업 디렉터리의 전체 경로 중 마지막 디렉터리만 표시
  • \w : 현재 작업 디렉터리를 절대 경로로 표시
  • \s : 사용 중인 셸 이름 표시
  • \u : 현재 사용자의 이름 표시
  • \h : 호스트 이름을 표시

환경 설정 파일
셸 시작 시 자동으로 실행되는 고유의 시작 파일이 있다. 이 파일은 사용자 운영환경을 설정한다.
셸 파일은 전역적 파일과 지역적 파일로 나뉜다. 전역적 파일에는 사용자에게 공통으로 영향을 주는 내용이 들어 있으며 /etc 아래에 위치한다.
지역적 파일은 사용자 개개인을 위한 설정 내용이 들어 있으며, 사용자의 홈 디렉터리에서 숨김 파일 형태로 위치한다.


3. 프로세스 관리

1) 개념 및 유형

(1) 개념

  • 프로세스는 CPU와 메모리를 할당받아 실행시키는 프로그램이다.
  • 프로세스들마다 고유의 프로세스 ID(PID)를 할당받는다.
  • 가장 먼저 실행되는 프로세스는 init이다. init의 PID는 1이다.
  • 프로세스 init에 의해 다른 모든 프로세스들이 시작된다.

(2) 유형

프로세스는 실행 형태에 따라 포어그라운드(foreground)프로세스와 백그라운드(back-ground)프로세스로 나뉜다.

포어그라운드 프로세스

  • 사용자와 상호작용하는 프로세스
  • 터미널에 직접 연결되어 입출력을 주고받는 프로세스
  • 명령 입력 후 수행 종료까지 기다려야 하는 프로세스
  • 화면에서 실행되는 것이 보이는 프로세스
  • ex) 응용 프로그램, 명령어 등

백그라운드 프로세스

  • 사용자와 직접적인 대화를 하지 않고 뒤에서 실행되는 프로세스
  • 사용자의 입력에 관계없이 실행되는 프로세스
  • 실행은 되지만 화면에 나타나지 않고 실행되는 프로세스
  • ex) 시스템 프로그램, 데몬 등

데몬

  • 리눅스 시스템이 부팅 시 자동으로 실행되는 백그라운드 프로세스
  • 메모리에 상주하며 사용자의 특정 요청이 오면 즉시 실행되는 대기 중인 서버 프로세스
  • 주기적이고 지속적인 서비스 요청을 처리하기 위해 실행
  • 사용자들은 이 프로세스들을 볼 수 있는 권한이 없음

시그널

  • 프로세스에게 이벤트 발생을 전달해주는 소프트웨어 인터럽트

2) 프로세스 유틸리티


4. 에디터

  • 리눅스에서 지원하는 편집기는 vi, emacs, pico, gedit, xedit 등이 있다.
  • 리눅스 편집기는 편집기를 통해 파일을 수정한다.
    원래 파일은 훼손되지 않게 남겨두고 해당파일의 복사판을 만들어 임시 기억 장치에 저장해둔다.
    임시 기억 장치는 편집기의 버퍼 역할을 한다.
    편집기를 통한 파일에 대한 변화 내용은 복사된 파일에 나타난다.
  • 버퍼 기반 편집기 방식의 장점은 사용자가 잘못 편집 시 해당 내용의 기록 없이 중지할 수 있어 원본 파일을 보존할 수 있다는 것이다.
  • 단점은 외부적인 원인으로 갑자기 편집기가 종료되었을 경우 변화된 내용을 모두 잃게 된다는 것이다.

1) 에디터 종류

(1)Pico

  • 워싱턴 대학의 Aboil Kasar가 개발한 유닉스 기반의 텍스트 에디터이다.
  • 메뉴 선택 방식의 테그트 편집기로 기본 인터페이스가 윈도우의 메모장과 유사하여 간단하다.
  • 초기 리눅스 배포판 버전이 낮았을 때 사용했던 편집기이다.
  • 자유 소프트웨어 라이선스가 아니기 때문에 소스 수정이 불가능하다.
  • 다른 편집기에 비해 사용하기 쉽고 편리하지만 기능이 부족하고 업데이트가 잘 되지 않는다.
  • GNU 프로젝트에서는 pico의 복제 버전 에디터인 nano를 개발하였다.
  • vi나 emacs와 달리 윈도우의 메모장처럼 쉽게 사용할 수 있다.
  • vi 편집기 처럼 입력모드와 명령모드가 존재하지 않고 바로 테그트 입력이 가능하다.

(2)Emacs

  • 리처드 스톨만이 매크로 기능이 있는 텍스트 교정 및 편집기로 개발하였다.
  • 최초 개발자는 리처드 스톨만이지만 이후 제임스 고슬링이 LISP 언어를 기반으로 emacs에 다양한 기능을 개발하여 추가하였다.
  • LISP에 기반을 둔 환경 설정 언어를 가지고 있으며 C, LISP, FORTRAN, HTML 등의 소스 코드를 작성할 경우 각각에 해당하는 모드를 설정할 수 있다.
  • 단순 편집기를 넘어 텍스트 처리를 위한 포괄적인 통합 환경을 제공한다.
  • LISP 코드를 불러오는 데 시간이 많이 걸린다는 단점이 있다.
  • 많은 개발 환경에 편리한 편집기 기능을 제공한다.
  • 간단한 문서 편집부터 프로그래밍까지 다양하게 사용된다.
  • 비모드형 편집기로 여러 가지 명령을 수행하기 위해 crtl 또는 alt와 다른 키를 조합하여 이용한다.

(3)vi

  • 1976년 빌 조이가 초기 BSD 릴리즈에 퐇마될 편집기로 만들었다.
  • 리눅스 배포판과 유닉스에 기본적으로 포함되어 있다.
  • 유닉스 환경에서 가장 많이 쓰이는 문서 편집기이다.
  • 다른 ㅍ녀집기들과 다르게 모드형 편집기이다.
  • vi의 작업모드는 명령모드, 입력모드, 편집모드로 구성되어 있다.
  • 한 줄씩 편집하는 줄 단위 편집기가 아니라 한 화면을 편집하는 비주얼 에디터이며, 기종별 다양한 vi클론들이 존재한다.

(4) vim ⭐️

  • 브람 무레나르가 만든 편집기이다.
  • vi 편집기와 호환되면서 독자적으로 다양한 기능을 추가하여 만든 편집기이다.
  • 편집 시 다양한 색상을 이용하여 가시성을 높일 수 있다.
  • 패턴 검색 시 하이라이트 기능을 제공하여 빠른 검색을 가능하게 해준다.
  • ex모드에서 히스토리 기능을 제공한다.
  • 확장된 정규 표현식 문법과 강력한 문법 강조 기능을 갖는다.
  • 다중 되돌리기 기능 및 유니코드를 비롯한 다국어 지원, 문법 검사 기능도 지원한다.

(5) gedit

  • 그놈 데스트콥 환경용으로 개발된 자유 소프트웨어 텍스트 편집기이다.
  • 마이크로소프트, 윈도, 맥OS X에서도 사용할 수 있다.
  • UTF-8과 호환되며 프로그램 코드, 마크업 언어와 같은 구조화된 텍스트 문서를 편집하는 용도에 중점을 두었다.
  • X-윈도우 시스템에 맞춰 개발되었다.
  • GTK+와 그놈 라이브러리를 이용하여 개발되었고, 그놈 파일 관리자인 노틸러스와의 사이에서 드래그 앤 드롭이 가능하다.
  • 텔넷 접속 시나 텍스트 기반 콜솔 창에서는 사용할 수 없다.

2) 에디터 활용


5. 소프트웨어 설치 및 삭제

1) 프로그램 설치

2) 소스파일 설치


6. 장치 설정

1) 주변 장치 연결 및 설정

2) 주변 장치 활용

profile
velog에는 이론을 주로 정리하고, 코드와 관련된 것은 Git-hub로 관리하고 있어요. 포트폴리오는 링크된 Yun Lab 홈페이지를 참고해주시면 감사하겠습니다!

0개의 댓글