Learning/└◆Linux

사용자 인터페이스 명령어

Gopzero 2016. 11. 13. 22:06

- GUI (Graphic User Interface) 
리눅스의 GUI 환경은 Xwindow (디폴트 환경으로 텍스트모드로 변경가능함)

- Xwindow 환경을 관리하기 위한 인터페이스로는 Gnome , KDE, TWM 등이 있다.
(Xwindow Display Manager 라고 한다.)
- Xwindow Manager 는 로그인하기전에 변경할수 있다.

- text mode 

*. text mode 는 CLI (Command Line Interface) 또는 CUI(Character User Inteface), TUI(Text User Inteface)
등으로 불려진다.

* 리눅스는 Multi User System 으로 동시 접속이 가능하다.

alt+f1 ~ f6 까지 6개의 가상콘솔을 사용할 수 있다.
* Xwindow 에서 가상콘솔로 이동은 ctrl + alt + f1 ~ f6 (디폴트로 6개의 가상콘솔을 지원한다)
Xwindow (xwindows를 위한 디폴트 function key 는 alt+f7)

- 부팅시 디폴트 user interface를 GUI 와 text mode를 선택 지정할 수 있다.
( /etc/inittab 파일에서 지정한다)


* 계정

보안을 위해 로그인시 패스워드를 요구한다.

기본적으로 세가지 형태의 계정이 존재한다.

1. root - 관리자 계정 - 거의 모든 권한을 행사할 수 있다.
(MS windows 의 administrator 계정과 같다)

2. system 계정 - 시스템 운영에 사용되며 정상적인 로그인 불가

3. 일반사용자 계정 - 필요에 따라 일반사용자 계정을 만들고 로그인을 허락할 수 있다.
- 보안상의 이유로 시스템 사용에 많은 제약을 받는다.

** 실습하기전에 실습계정을 몇개 만든다

- Graphic tool 로 계정을 만들려면
패널에서 system --> 관리 --> 사용자 및 그룹메뉴를 선택.
(암호길이가 6자 이상이어야 한다)

- 명령어로 계정을 생성하는 경우에는
-> useradd user1
-> passwd user1
(암호길이가 6글자가 아니라도 된다. 하지만 그럴경우 경고 메시지가 출력된다.
또는 암호길이가 6글자이상이라도 너무 단순한 경우에는 역시 경고메시지가 출력된다.
그러나 경고를 무시하고 계속 진행하더라도 암호 설정은 완료된다)

*. su 명령어
(substitue user 또는 switch user)
- 다른 계정으로 변경할 수 있으면 다른 계정권한으로 하나의 명령을 실행할 수 있다.
ex) su -c 'cat /etc/issue' user1 ; cat 명령을 user1 계정권한으로 실행
su - 계정이름(또는 su -l 계정이름, su --login 계정이름 - 다 같은 명령어)
--> 로그인하는것과 같은 환경으로 셀이 실행된다.


리눅스 명령어 

(* 명령어는 대소문자를 철저히 구분한다)

명령어 형태

프롬프트 명령어 -옵션 인수

ex)

[lee@river lee]$ ls -l a.txt b.txt

명령어 옵션 인수의 기본 구분자는 스페이스 문자이며 다시 옵션과 인수의 구분은 - 문자의 유무에 따라 일반적으로 구분된다.

ls -l ; 여기서 -l 은 옵션ls l ; 여기서 l은 인수

*. 프롬프트 형태를 결정하는 것은 PS1 변수이다
변수 출력은 echo 명령어를 사용하면 된다.
ex 1) echo $PS1 (* 변수를 출력할때는 변수이름앞에 반드시 $ 문자를 붙여야 하면
변수를 선언하고 값을 대입할때는 $ 문자를 붙이면 안된다)
실행결과 : --> [\u@\h \W]$
\u : 계정이름, \h : host 이름 , \W 현재경로중 맨 오른쪽 끝의 디렉토리이름.
*. PS1 변수를 변경하면 prompt 모양이 바뀝니다.
ex) PS1="\u \$PWD]$ "
PS1="[\u \t ]$ "
프롬프트 모양은 원하는 대로 바꿔서 사용하면 된다.

*. 프롬프트 모양은 root 인경우는 unix 나 linux에서는 일반적으로 맨 오른쪽 끝에
# 기호로 표시되며 일반 사용자인경우는 $ 문자난 % 문자로 되어 있음.

ex 2)
a=1 ; b=2 ; c="hello unix" ( 여기서 '=' 은 같다는 의미가 아니라 대입연산자)


리눅스 명령어는 크게 두 가지로 분류된다.

1. 셀 내장 명령어 

*. shell - 명령어 해석기.
- shell 의 종류는 bash,csh,ksh,zsh 등이 있다.
- shell 의 역할은
a. 명령어 해석기로서의 역할을 한다.

ex) 리눅스 명령어 ---------> shell 이 번역 ----------> 번역된 명령을 커널이 처리.

b. C언어나 java 처럼 programming language 역할을 한다.
- shell 로 작성된 프로그램을 shell script 라고 한다.
- /etc/init.d 디렉토리의 모든파일은 bash 로 작성된 shell script.
- shell script 는 리눅스나 유닉스 시스템 관리목적으로 사용된다.

셀에 내장되어 있는 명령어.
shell 내장 명령어 도움말보기는 help 명령어로

ex)

[lee@river lee]$ help cd

cd: cd [-L|-P] [dir]

Change the current directory to DIR.
The variable $HOME is the default DIR. The variable CDPATH defines the search path for
 the directory containing DIR. Alternative directory names in CDPATH are separated by a colon (:).
 A null directory name is the same as the current directory, i.e. `.'. If DIR begins with a slash (/),
then CDPATH is not used. If the directory is not found, and the shell option `cdable_vars' is set, then try the word as a variable name. If that variable has a value, then cd to the value of that variable. The -P option says to use the physical directory structure instead of following symbolic links; the -L option forces symbolic links to be followed.

[lee@river lee]$

ex 2)
alias
alias 명령은 shell 내장 명령어로서 옵션이 길거나 명령어가 어려운 경우 좀 더
간편하게 쓰기 위해서 별명을 지정해서 사용하는 것.
ex) alias ls ; (설정된 alias 출력)
alias myls='/bin/ls -F' (alias 설정) --> myls 를 입력하면 오른쪽의 명령어 /bin/ls -F 가
실행이 된다.
alias 삭제는 unalias alias이름


* 똑같은 이름의 명령어가 셀 내장 명령어 및 외부명령어로 각각 존재하는 경우에는 경로명 없이 명령어를 입력하면 셀 내장 명령어가 실행된다.
명령어를 찾는 순서가 셀 내장 명령어가 먼저이다.

2. 외부 명령어 

디스크에 존재하는 명령어

리눅스 명령어는 주로 bin 이라는 이름의 디렉토리에 존재한다.


대개의 실행파일 경로는 환경변수 PATH를 출력해보면 알수 있다.

[root@river root]#

echo $PATH

/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin/X11:/usr/X11R6/bin:/root/bin

(PATH 환경변수 변경은 export PATH=경로명으로 재지정 할 수 있으며 로그인 시 자동으로 실행되는 profile 에 저장해

두지 않으면로그아웃 할 때 원래값으로 초기화 된다)

*. 도움말은 man 명령어로 출력해 볼 수 있다.

ex)

root@river root]# man ls

LS(1) FSF LS(1)

NAME

 ls - list directory contents

 SYNOPSIS ls [OPTION]... [FILE]...DESCRIPTION

List information about the FILEs (the current directory by default).

Sort entries alphabetically if none of -cftuSUX nor --sort. Mandatory arguments to long options are mandatory for short

options too. -a, --all do not hide entries starting with . -A, --almost-all do not list implied . and .. --author

 *. PATH 

절대경로 및 상대경로
절대경로 - 파일 및 디렉토리의 위치를 ‘/’ (루트 디렉토리를 기준으로 표시
상대경로 - 파일 및 디렉토리의 위치를 현재 디렉토리를 기준으로 표시
. : 현재디렉토리 , .. : 부모디렉토리

 

tree 구조의 예.

 *. 디렉토리 관련 명령어 

ls 

list, 파일의 리스트를 보여준다. 도스의 dir과 비슷하다.

ls [-옵션] [파일 또는 디렉토리]

자주 쓰이는 옵션은,

-l 파일에 대한 긴 정보(파일 허가권, 소유자, 그룹, 크기, 날짜)를 준다.

-a “.”로 시작하는 파일은 hidden 파일이다. 이 옵션을 사용하면 볼 수 있다.

-t 가장 최근에 변경된 파일을 최근의 것부터 보여준다.

-F 파일의 특성을 보여준다.

이름 뒤에 디렉토리면 /를 실행파일이면 *, 심블릭 링크된 파일이면 @를 붙여준다.

-R 하위 디렉토리의 파일도 모두 보여준다.



cd (change directory) 

현재 작업 디렉토리 변경 명령어

cd . : 현재디렉토리로 이동 (아무런 변화 없음)

cd .. : 부모디렉토리로 이동

cd ../../ : 2단계 상위 디렉토리로 이동

cd : 현재 사용자 홈 디렉토리로 이동(bash shell에서)

cd ~ : 현재 사용자 홈 디렉토리로 이동(bash shell에서)

cd $HOME : 현재 사용자 홈 디렉토리로 이동

cd ~kildong : kildong 사용자의 홈 디렉토리로 이동

위의 그림(그림 2-1)과 같은 디렉토리 구조에서 현재 디렉토리가 linux 라고 가정할 때

xp 디렉토리로 이동하려면



cd /os/windows/xp ; 절대경로

cd ../../windows/xp ; 상대경로

mkdir(make directory) 

- 디렉토리를 만든다.
* 옵션
-p ; 부모 디렉토리가 없는경우 이 옵션을 사용하면 같이 만들어진다.
ex) mkdir -p a/b/c (a와 b 디렉토리가 없는경우 한번에 만들어진다)


cp - 파일을 복사한다. 

cp file1 file2 cp file(s) directory

[-r] option을 주면 directory도 copy가 가능하다.

file1을 file2로 복사한다.

하나 또는 여러 개의 파일을 directory에 복사한다.

명령어 사용형식은 dos와 유사하나 dos와 달리 타겟은 절대 생략할 수 없다.

ex)

[lee@river lee]$ cp /bin/ls <= 타겟경로가 빠져있다.

cp: missing destination file <= 역시 에러다.더 많은 정보를 보려면 `cp --help' 하라.

[lee@river lee]$ cp /bin/ls . <= 파일을 현재 디렉토리에 복사할 때도 현재 디렉토리 경로를 적어줘야 한다.



mv

move, 파일이나 디렉토리의 위치를 바꾸거나 이름을 바꾼다. 사용법은 다음과 같다.

1.mv [options] oldname newname

 2.mv [options] file(s) directory

rmdir

remove directory, 디렉토리를 지운다. 단. 디렉토리가 비어있지 않으면 지울 수 없다.

pwdprint working directory, 현재 작업 Directory를 출력한다.

rm 

remove, 파일을 제거한다. (디렉토리 삭제시에는 -r 옵션을 반드시 사용해야 한다)

rm [options] file(s) 

사용 가능한 옵션은 다음과 같다.

-f (force) 물어보지 않고 강제로 지운다.

-i (interactive) 삭제하기전에 물어 온다.

-r 서브디렉토리를 포함한 모든 내용을 지운다.

* tree 명령어가 설치 안되어 있는 경우 아래 내용 참고해서 설치.

패키지 설치