일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Linux
- 월간코드챌린지
- 프로그래머스
- GoingBus
- 자바스크립트 코딩의 기술
- 리눅스마스터 1급 정리
- JavaScript
- 개발자 회고록
- 리눅스마스터1급
- 리눅스마스터 3과목
- 고잉버스
- 백준 javascript
- 코딩테스트
- 리눅스
- 자바
- Java
- 반복문
- 스프링 빈
- Memoir
- java 백준 1차원 배열
- 백준 java
- 명령어
- Kotlin
- map
- 카카오
- toCharArray
- 스프링 컨테이너
- 코테
- 연습문제
- 문자열
- Today
- Total
hoon's bLog
리눅스 실무의 이해 | 리눅스 시스템의 이해 3 본문
X 윈도
1. X 윈도의 개념 및 특징
1). X 윈도의 역사
- DEC, IBM, MIT가 공동으로 시작한 아데나 프로젝트의 일환으로 Bob Scheigler와 Jim Gettys가 1984년 최초 버전을 발표
2). XFree86
- IBM 호환 시스템을 사용하는 유닉스 계열 운영체제를 위한
- 이 후 자유 소프트웨어 재단의 GPL 라이선스와 호환되지 않으면서 대부분의 개발자들이 X.org로 옮겨감
- 개발 중단됨
3). X.org
- X. org Server라 부름
- 소스가 공개된 자유 소프트웨어로 X Window System에 사용되는 디스플레이 서버
- 현재 거의 다 X.org Server 사용함
2. X 윈도의 특징
네트워크 프로토콜에 기반을 둔 그래픽 사용자 인터페이스 환경
1). X 윈도의 구조
- X 윈도는 클라이언트/서버 구조로 되어 있고, 서로간의 통신을 위해 X Protocol을 사용
- X 서버는 그래픽하게 보여주는 하나의 시스템이고, X 클라이언트는 X 서버 위에 동작하는 일종의 응용 프로그램
- 사용자가 키보드나 마우스로 입력하면 TCP 포트 6000번을 통해 전달되고, 관련 X 클라이언트 프로그램이 실행됨
- 보통 Unix Domain Socket을 이용하여 통신
2). Xlib X 관련 라이브러리
- C언어로 구현된 클라이언트 라이브러리로 X 서버와 대화를 해주는 역할을 함.
- 최근에는 Xlib의 기능을 포함하는 고수준의 라이브러리를 사용하는데, Xt(Intrinsics), Xaw(Athena widget set), Motif, FLTK, GRK+, Qt, Tk, SDL 등이 있음
- 최근 X.org에서는 XCB(X protocol C-languge Binding)로 대체하여 사용. XCB는 향상된 쓰레딩 기능을 지원, 확장성이 뛰어남.
3. X 윈도 설정과 실행
1). X 윈도의 실행
- 부팅 시에 X 윈도를 실행하는 방법과 텍스트 모드에서 실행하는 방법으로 나뉨
- 부팅 모드 설정은 /etc/initab에서 설정. 기본 설정은 'id:5:initdefault:' 임.
- 위의 설정에서 런 레벨을 3으로 설정하게 되면 텍스트 모드로 부팅이 됨. 이 후 startx라는 명령을 이용해서 X 윈도를 실행시켜야 함
2). 디스플레이 매니저
XDM, GDM, KDM
startx
- X 윈도를 실행시키는 스크립트로 시스템 환경을 초기화시키고 시작하는데 필요한 여러 프로그램을 호출하고 최종적으로 xinit을 호출
- 사용법 : $ startx [option]
- 옵션 -- : 명령행의 인자값을 xinit에 넘겨줌
4. 데스크톱 환경
1). KDE(K Desktop Environment)
- 마타아스 에트리히가 Qt 라이브러리를 기반으로 만들기 시작
- 하지만 자유 소프트웨어 라이선스가 아니여서 GNU 프로젝트 회원들이 GNOME 프로젝트를 시작
- Qt Toolkit이 GPL 라이선스로 공개. GPL 라이선스 기반의 유닉스용 소스도 공개하면서 많은 운영체제에서 씀
2). GNOME(GNU Network Object Model Environment)
- Qt 대신에 LGPL을 따르는 GTK+ 라이브러리를 사용하여 개발
- 데스크톱 부분과 라이브러리는 LGPL을 따르고 응용 프로그램은 GPL을 따르도록 함.
- 단순하고 사용하기 쉽게 만듬
- 재사용이 쉽도록 소스 코드를 공개
- 여러 언어로 바탕화면 제공
- 자유로운 프로그램이 언어 선택을 허용.
- GNOME 초기 버전에서는 nautilus라는 파일 관리자를 이용하여 단순히 사용하는 면에 초첨을 두었으나, GNOME2부터는 metacity라는 윈도 매니저를 사용
5. 윈도 매니저
X 윈도 환경에서 윈도의 배치와 표현을 담당하는 시스템 소프트웨어
1). 윈도 매니저의 종류X
X 윈도 시스템에 사용되는 X 윈도 매니저는 직접 비디오카드, 마우스 키보드 등에 접금하지 않고, 디스픓레이 서버를 통해서 접근
2). 윈도 활용
- 원격지의 X 클라이언트를 다른 시스템의 X 서버에 실행시킬 수 있음
- 이 때 xhost라는 명령어 사용
- 불필요한 클라이언트의 접속을 막으로고 xauth를 사용
- xauth 호스트 기반의 인증과 추가로 사용자 기반 인증도 함.
xhost
- X 서버에 접근할 수 있는 클라이언트를 지정하거나 해제하는 명령
- 사용법 : $ xhost [+|-] IP주소 or 도메인명
DISPLAY
- X 클라이언트 프로그램이 실행될 때 표시되는 창이 설정되어 있는 환경 변수.
- 기본값은 ':0.0'으로 설정되어 있는데 첫 번째 0은 시스템에 실행되고 있는 첫 번째 X 윈도를 뜻하고, 두 번째 0은 첫 번째 모니터를 뜻함.
xauth
- X 접근허가 파일 관련 도구
3). X 윈도 응용 프로그램
- GIMP(GNU Image Manipulation Program) : 사진이나 그림을 편집하는 자유 소프트웨어
- Totem : GNOME 데스크톱 기반의 Movie Player
- KMid : 미디 및 노래방 파일 플레이어
- ImageMagick : 비트맵 이미지를 보여주고, 생성 및 편집이 가능하도록 지원
- eog(Eye of FNOME) : GNOME 데스크톱에서 제공하는 이미지 뷰어 프로그램
- kdgraphics : KDE에서 제공하는 그래픽 관련 프로그램 패키지
- Rhythmbox : 통합형 음악 관리 프로그램
- evince : 멀티 페이지 문서 뷰어 프로그램
- LibreOffice : 오피스 프로그램 패키지. 프리젠테이션, 스프레드시트, 드로잉 프로그램 등으로 구성
6. 셸의 개념과 특징
셸이란?
- 커널과 사용자간의 다리 역할을 하는 것으로 사용자로부터 명령을 받아 그것을 해석하고 프로그램을 실행하는 역할
- 사용자가 시스템에 로그인을 하게 되면 각 사용자에게 설정된 셸이 부여되면서 다양한 명령을 수행할 수 있게 됨
- 최초의 셸은 켄 톰프슨의 멀틱스 셸을 모형화한 셸. 다음 스티븐 본의 본 셸
- 그 후 버클리 대학의 빌 조이가 개발한 C 셸이 등장
- 현재는 bash, ksh, tcsh, zsh와 같은 다양한 셸이 있음
- bash가 표준 셸이고, ksh, csh 장점을 합친 것
1). 셸의 확인과 변경
- 로그인 셸 관련 환경 변수 SHELL을 통해 'echo $SHELL'이라고 실행하면 사용 중인 셸을 확인 가능
- 변경 가능한 셸의 확인은 'chsh -l' 명령 or 'cat /etc/shells'
- 셸의 변경은 chsh 명령 사용.
- 사용자의 로그인 셸 정보는 /etc/passwd의 7번째 필드에 기록됨
2). 셸 환경 설정
셸 변수
- 명령해에서 '변수명=값' 형태로 지정하여 사용할 수 있고, 변수 값을 출력할 때는 변수명 앞에 $을 붙이고 echo 명령으로 확인할 수 있음
- $ city=Seoul
- $ echo $city
- $ Seoul
환경 변수
- 프롬프트 변경, PATH 변경 등과 같이 셸의 환경을 정의하는 중요한 역할을 수행하는 변수
- 미리 예약된 변수명을 사용
- 현재 설정된 전체 환경 변수의 값은 env로 확인 가능
3). 주요 환경 변수
주요 환경 변수
- LANG : 셸 사용 시 기본으로 지원되는 언어
- TERM : 로그인한 터미널 종류
- USER : 사용자의 이름
- DISPLAY : X 윈도에서 프로그램 실행 시 출력되는 창
- PS1 : 프롬프트 변수
- PS2 : 2차 프롬프트 변수
- HISTFILE : 히스토리 파일의 절대 경로
- HISTSIZE : 히스토리 파일에 저자오디는 명령어의 개수
- HISTFILESIZE : 히스토리 파일의 파일 크기
- HOSTNAME : 시스템의 호스트명
환경 변수 사용 및 변경
$ echo $PS1 # 설정된 프롬프트를 확인 후 변경
[\u@\h \W]\$
$ PS1="[\u@\t \W]"
(?) 형식으로 표현.
?에는 d, h, s, t, T, @, u, w, W, @, \가 올 수 있고, 순서대로 (요일, 월, 일), 호스트이름, 셸의 이름, 24시 형태 현재 시간, 12시 형태 현재 시간, 현재 사용자의 이름, 현재 작업 디렉터리 절대경로, 현재 작업 디렉터리 전체 경로 중 마지막 디렉터리, 현재 명령의 히스토리 넘버, \표시 임.
4). 배시셸의 주요 기능
명령행 완성 기능
명령 입력 시 글자 일부분만 입력하고 [TAB] 키를 눌러 나머지 부분을 자동 완성 시키는 기능
명령어 History 기능
- bash에서는 입력 후 실행했던 모든 명령들은 히스토리 리스트 버퍼에 스택으로 저장
- history라는 명령을 입력하면 히스토리 리스트에 있는 명령어들이 출력
- 사용자들이 실행한 명령들은 각 사용자의 홈 디렉터리 안에 .bash_history라는 파일에 추가로 기록
- history 명령어는 '!'로 대체하여 사용할 수 있음
사용
- !! : 마지막에 사용한 명령을 실행
- !n : n번째 사용한 명령을 실행
- !-n : 사용한 명령 목록을 역으로 세어서 n번째 명령을 실행
- !문자열 : 가장 최근 '문자열'로 시작하는 명령을 찾아실행
- !?문자열? : '문자열' 포함
history 관련 키조합
- Ctrl + r : 검색
- ESC 누른 후 . : 최근에 사용된 인자를 명령행에 붙여줌
- ALT 누른 후 .키 계속 연타 : 최근에 사용된 인자를 하나씩 호출
alias 기능
어떠한 명령을 지정해 놓으면 사용자가 그 명령을 실행했을 때 alias로 지정해 놓은 명령이 대신 실행. alias는 설정된 목록을 확인. unalias 명령으로 해제.
사용법
$ alias [별명='명령어']
$ unalias 별명
명령행 편집 기능
명령행에서 커서 이동을 빠르게 하거나 손쉽게 삭제할 수 있는 기능 등을 제공
이동
- Ctrl + b, f : 커서를 왼, 오로 한칸 이동
- ESC후 b, f : 커서를 왼, 오로 한 단어 이동
- Ctrl + a, e : 맨 왼, 오로 이동
삭제
- Ctrl + d : 커서 오른쪽 한 글자 삭제
- ESC 후 Backspace : 커서 왼쪽 한 단어 삭제
- ESC 후 d : 커서 오론쪽 한 단어 삭제
- Ctrl + k, u, y : 커서 왼쪽 행 전체 삭제, 행 전체 삭제, 삭제 취소
명령 대체(Command Substitution, 명령 치환) 기능
2번의 명령을 수행하는 대신에 Backquotes나 $()를 이용
$ ls -l `which passwd` $ ls -l $(which passwd)그룹 명령 실행
- 하나의 명령 행에 여러 개의 명령어를 동시에 사용. ';'를 사용하여 명령어를 구분하여 순차적 처리.
- &&, ||를 이용하면 앞의 명령의 결과에 따라 다음 명령 실행 여부를 결정
리다이렉션
어떤 프로세스의 입/출력을 표준 입출력이 아닌 다른 입출력으로 변경할 때 사용.
- > : 프로세스의 출력을 표준 출력에서 다른 출력으로 변경
- >> : 프로세스의 출력을 지정한 출력에 추가
- < : 프로세스의 입력을 표준 입력에서 다른 입력으로 변경
- << : 기호 뒤에 지정한 문자열을 입력으로 받아 해당 문자열이 나오기 전까지를 표준 입력을 삼아 해당 내용을 출력
파이프
프로세스의 통신을 위해 도입한 것으로 어떤 프로세스의 표준 출력이 다른 프로세스의 표준 입력으로 쓰이게 하는 것. '|' 기호를 사용.
산술 연산 기능
expr 명령을 이용하여 산술 연산이 가능
사용법
$ expr 값 연산자 값
배시셸 관련 파일 및 디렉터리
- /etc/porfile : 시스템 전체에 적용되는 환경 변수와 시작 관련 프로그램 설정
- /etc/bashrc : 시스템 전체에 적용되는 alias와 함수를 설정
- ~/.bash_profile : 개인 사용자의 환경 설정과 시작 프로그램 설정과 관련이 있는 파일로 로그인 시 읽어들임
- ~/.bashrc : 개인 사용자가 정의한 alias와 함수들이 있는 파일. alias 지속적 사용시 설정
- ~/bash_logout : 개인 사용자가 로그아웃할 때 수행하는 설정을 지정하는 파일
- /etc/profile.d : 일반 사용자의 alias 설정 등과 관련된 스크립트가 존재
셸에서 사용되는 특수문자
작은 따옴표는 모든 문자나 특수문자들을 일반문자로 취급하고 큰따옴표는 $, backquotes, \를 제외한 모든 문자들을 일반문자로 취급.
'IT > Linux Master 1급' 카테고리의 다른 글
리눅스 시스템관리 | 일반 운영관리 2 (1) | 2021.08.26 |
---|---|
리눅스 시스템 관리 | 일반 운영관리 1 (0) | 2021.08.24 |
리눅스 실무의 이해 | 리눅스 시스템의 이해 2 (0) | 2021.08.10 |
리눅스 실무의 이해 | 리눅스 시스템의 이해 1 (0) | 2021.08.10 |
리눅스 실무의 이해 | 리눅스의 개요 2 (0) | 2021.08.09 |