[Ubuntu] 빔(VIM) 사용방법 정리[Ubuntu] 빔(VIM) 사용방법 정리

Posted at 2018. 7. 20. 19:39 | Posted in Linux/Ubuntu
반응형




■ CGI, 콘솔 환경에서 파일 수정



 콘솔만 이용해서 우분투를 사용하는 데 있어서 가장 큰 걸림돌은 파일의 내용을 보거나 수정하는 기능이다. 콘솔에서 파일의  내용을 수정하는 방법은 아무리 쉬운 방법이라고 해도 MS윈도우 메모장보다 어렵다. 콘솔 기반 편집기는 GUI 기반 편집기 만큼 직관적이지 못하기 때문이다. 무엇보다 콘솔에서는 마우스를 사용할 수 없다는게 가장 큰 단점이다.


 계속 부정적인 면만 이야기 했지만 사실 콘솔에서 사용할 수 있는 에디터는 생각보다 다양하고 또한 익숙해지기 어려워서 그렇지 제대로 익혀서 사용하게 된다면 오히려 GUI 환경에서 파일을 수정한느 것보다 더 효과적이고 빠르게 작업이 가능하다. 마우스보다는 키보드 단축키가 더  빠르기 때문이다. 컴퓨터  전문가 중에는 GUI 환경에서도 일부러 콘솔용 에디터를 사용하는 사람도 많다. 어찌됐건 콘솔에서 우분투를 사용하는 작업에서 파일 편집이라는 산을 넘지 못하면 더 이상 할 수 있는게 많지 않다.




■ 빔(VIM) 사용하기



 '(VIM)'이라고 부르는 이 에디터는 가장 많이 쓰이는 리눅스 콘솔용 에디터이다. 이 프로그램도 개발된 지 매우 오래되었다. 얼마나 오래되었냐 하면 MS윈도우 같은 GUI기반의 운영체제가 나타나기 전부터 존재했던 에디터이다. 이런 이유로 이 사용법이 그다지 직관적이지 않다. 예를 들어서 처음 VIM을 실행한 유저라면 한 글자도 수정하지도 못하고 프로그램을 종료할 수도 없다.


 그렇지만 (VIM)역시 에디터이기 때문에 다양한 플러그인이 존재하며 그 종류가 에디터 수준에서는 충분하다. 다양한 플러그인을 잘 설정한다면 웬만한 GUI 기반 에디터보다 기능이 많다.




■ 빔(VIM) 설치하기



우선 VIM이 설치되어 있는지 부터 확인한다.


 $ apt-cache show vim


위와같이 설치가 되어 있다면 VIM를 실행하고 그렇지 않다면 아래와 같이 VIM을 설치하자.


 $ sudo apt-get install vim



사용자 계정 암호를 물어보면 입력해주고, 설치될 때까지 기다린다.

설치가 완료되면 아래 명령어를 입력해서 처음으로 VIM을 실행해 보도록 하자.



 $ vi

OR

    $ vim


위와 같은 "memo"라는 글자를 입력하기 위해서 키보드를 이용해 memo라고 하나씩 눌러보면 아마 아무런 반응이 없을 것이다.

보통의 에디터라면 키보드를 누르면 화면에 입력한 글자가 보여야 하지만 VIM은 그렇지 않다.


VIM은 일반적인 에디터와는 달라서 '모드'라는 것이 존재한다. 지금은 편집모드가 아니라서 아무런 편집도 할 수 없는 것이다.





■ VIM의 모드




(VIM) 에디터와 다른 일반 에디터의 가장 큰 차이점은 VIM은 몇 가지 모드를 가지고 있다는 점이다.

각각의 모드들은 그 목적이 정해져 있으며 모드에 따라서 동일한 키보드 입력도 단축키로 인식하거나 아니면 편집할 단어로 인식할지가 달라지게 된다.




 :: VIM 모드 종류와 변화 ::




-. VIM명령모드, Ex모드, 입력모드 총 3가지 모드를 가지고 있다.

-. VIM을 실행하면 항상 명령모드에서부터 시작하게 되고, 키보드 키 i, a, o, s 중 하나를 입력하게 되면 입력모드 전환이 된다.

-. i, a, o, s 키는 각각 성격이 다르지만 경과적으로는 입력모드로 변환이 된다.

-. 입력모드에서 ESC키를 누르면 다시 명령모드로 바뀌게 되고, 명령모드에서 : (콜론), / (슬레쉬), ? (물음표)키 중에서 하나를 누르게 되면 Ex모드로 전환이 된다.

-. : (콜론), / (슬레쉬), ? (물음표)역시 각각 키마다 성격이 다르지만 Ex모드로 전환된다는 점은 같다.

-. 다시 ESC키를 누르거나 Enter키를 누르면 명령모드로 돌아가게 된다.

-. Ex모드에서  입력모드로 바로 갈 수 있는 방법은 없다.(Ex모드 전환도 마찬가지이다.) 반드시 명령모드를 거쳐야 한다.




# 명령모드


-. 명령모드에서는 키보드로 직접 내용을 입력해서 문서 내용을 편집하는 게 안된다.

-. 대신 키보드의 다수의 키들이 각각 특정 기능의 단축키로 지정되어 있다.

   따라서 여러 가지 단축키를 활용해서 문서의 내용을 수정하고 편집할 수 있다.


:: 입력모드로 전환 단축키 ::

 i

 · 현재 커서 위치에서 입력모드로 전환

 a

 · 현재 커서 다음 칸에서 입력모드로 전환

 o

 · 윗줄에서  입력모드로 전환

 ESC

 · 입력모드 종료


:: 커서 이동 단축키 ::

 h, j, k, i

 · 좌 하 상 우 커서 이동, 오래 전 키보드에는 방향키가 없었는데

  그 당시 커서 이동을 위해 사용했다.

  현재는 방향키로도 커서 이동이 가능하다.

 w(소문자)

 · 단어 첫 글자로 커서 이동

 W(대문자)

 · 화이트 스페이스 단위로 다음 글자로 커서 이동

 b(소문자)

 · 뒤쪽 방향으로 단어의 첫 글자로 커서 이동

 B(대문자)

 · 뒤쪽 방향으로 화이트 스페이스 단위로 다음 글자로 커서 이동

 e

 · 단어의 마지막 글자로 커서 이동

 ge

 · 뒤쪽 방향으로 단어의 마지막 글자로 커서 이동

 gg

 · 문서 맨 앞으로 커서 이동

 G

 · 문서 맨 끝으로 커서 이동

 ^

 · 문장 맨 앞으로 커서 이동

 0

 · 라인 맨 앞으로 커서 이동

 $

 · 문장 맨 뒤로 커서 이동

 Ctrl + f

 · 다음 페이지로 커서 이동

 Ctrl + b

 · 이전 페이지로 커서 이동


:: 문서 내용 편집 단축키 ::

 dd

 · 현재 줄 잘라내기

 dw

 · 단어  잘라내기

 yy

 · 현재 줄 복사하기

 p

 · 붙여넣기

 r

 · 현재 글자 교체하기

 u

 · Undo

 Ctrl + R

 · Redo

 x(소문자)

 · 현재 글자 지우기

 X(대문자)

 · 앞의 글자 지우기

 cw

 · 단어 잘라내기

 >

 · 들여쓰기

 <

 · 내어쓰기

 .

 · 이전 명령어를 다시 실행


:: 비주얼 모드 단축키 ::

 v

 · 비주얼 모드 진입

 ESC키

 · 비주얼 모드 취소

 y

 · 블록 복사

 x

 · 블록 잘라내기

 ① 비주얼 모드는 블록(선택영역)을 지정할 수 있는 모드이다.

 ② 마우스로 드래그해서 블록을 잡는 것과 동일한데, VM은 마우스가 없으니  대신 v키를 누르면 블록 지정이 시작된다.

 ③ 커서 키를 이용해서 원하는 부분을 블록 지정한 다음, 해당 블록을 복사할지  삭제할지 키를 입력하면 된다.




# 입력모드


-. 입력모드는 키보드로 입력하는 모든 글자를 문서로 입력하는 모드이다.

-. 입력모드는 GUI 기반의 에디터들이 기본적으로 동작하는 형태와 동일하다.

-. 콘솔 환경에서는 복사와 붙여넣기 같이 단순한 편집 기능조차도 구현하기가 까다롭다.

   따라서 VIM에서는 입력모드에서는 정말 문자 입력 작업만을 하다가

   ESC키를 눌러서 명령모드로 전환한 뒤에 적절한 편집 기능을 사용하는 구조이다.

-. VIM에 익숙하지 않은 사용자는 입력 작업 중간중간 ESC키를 눌러서 명령모드로 바꿔주어야 하는 불편함이 크지만 익숙해지면 빠르게 할 수 있다.




# EX모드


-. Ex모드는 명령 모드처럼 키보드이 키를 입력하면 단축키 같이 즉시 명령이 처리되는 모드가 아니라

  명령어를 입력하고 엔터를 쳐서 해당 명령을 수행하는 모드를 말한다.

-. Ex모드로 진입하기 위해서는 명령모드 상태에서 :(콜론) 키를 입력하게 되면 화면 맨 하단 왼쪽에 :(콜론)이라는 모양이 나오면서 커서가 깜박거리는 모습을 볼 수 있다.

  이때 원하는 Ex모드 명령어를 입력하고 엔터를 치는 것이다.



-. 위 영상은 Ex모드로 진입한 상태를 보여주고 있다.

-. 이 상태에서 ESC를 눌러서 Ex모드를 취소하고 다시 명령모드로 가든지, 수행하고자 하는 명령어를 입력한 후 엔터를 쳐서 VIM이 명령어를 수행하게 해야 한다.

-. Ex모드에서는 명령모드에서 할 수 있는 편집 기능보다 더욱 강력한 기능들을 사용할 수 있다.


 :: Ex모든 단축키  모음 ::

 :w

 · 문서 저장하기

 :q

 · 현재 문서 닫기

 :q!

 · 저장하지 않고 닫기

 :wq

 · 저장하고 닫기

 :숫자

 · 지정한 라인넘버로 이동

 :new

 · 가로로 창 분할

 :vs

 · 세로로 창 분할

 :e 파일명

 · 파일 새로 열기

 :%s/old/new/g

 · old라는 문자를 new라는 문자로 치환

 /단어

 · 문서에서 단어를 찾는다.

 · 단어 찾기 기능의 Ex모드는 :(콜론)이 아니라 /(슬레쉬)임을 주의하자

 · 찾은 단어 사이를 이동하려면 n키를 누르면 된다.


출처 : https://kldp.org/node/102947




반응형
//

[Ubuntu] 우분투 사용자 권한 설정[Ubuntu] 우분투 사용자 권한 설정

Posted at 2018. 7. 20. 18:05 | Posted in Linux/Ubuntu
반응형




■ 우분투에서 사용자 권한


-. 우분투를 포함한 리눅스 시스템들은 최초에 개발될 때부터 다수의 사용자가 동시에 한 컴퓨터를 같이 쓰는 환경을 고려해서 개발되었다.
-. 다수의 사용자가 같이 하나의 컴퓨터를 사용할 때 가장 중요한 것은 파일의 소유권과 사용권한이다.
-. 리눅스는 모든 파일과 디렉토리에는 반드시 소유자 개념이 존재하고 소유 개념 외에도 소유자, 소유그룹, 제3자로 권한을 분리해서

   각각에 해당하는 사람에 따라서 파일을 읽고, 쓰고, 실행할 수 있는 권한을 따로 줄 수 있게 되어 있다.



# 소유자 개념의 구분


① 소유자
 · 파일의 주인을 말한다.
 · 파일을 생성하면 자동으로 해당 계정이 파일의 주인이 된다.

② 소유그룹
 · 계정들은 특정 그룹으로 묶여 있을 수 있다.
 · 같은 그룹으로 묶어 놓으면 파일의 소유주가 아니더라도 그룹 권한으로 파일을 다룰 수 있다.
 · $ groups 라고 입력하면 자신이 속한 그룹을 확인 할 수 있다.

③ 제3자
 · 자신이 파일의 소유자도 아니고, 소유그룹도 아닌 모든 계정은 제 3자 계정에 속한다.




# 디렉토리  정보


 $ ls -l



-. 위 이미지는 필자의 홈 디렉토리에서 명령을 입력했을때 나온 결과이다.
-. 가장 뒤쪽에 있는 단어가 디렉토리명 또는 파일명을 나타낸다.
-. 위에서 examples.desktop 파일을 제외하고는 전부 디렉토리인데 그 정보를 알려주는 부분이 맨 첫부분에 있다.



① 0번 영역
 · 디렉토리를 의미한다.
 · 파일은 -로 표시가 된다.


② 123 영역

 · 소유자의 사용권한을 의미한다.
 · 위 예제에서는 소유자는 읽고, 쓰고, 실행할 수 있는 모든 권한을 부여받았다.

③ 456 영역

 · 소유 그룹의 사용 권한을 의미한다.
 · 위 예제에서는 소유 그룹은 읽거나 실행할 수는 있지만 쓸 수는 없다.

④ 789 영역

 · 제3자의 사용권한을 의미한다.
위 예제에서는 제3자는 소유 그룹과 마찬가지로 읽거나 실행할 수는 있지만 쓸 수는 없다.


# 읽기, 쓰기, 실행 권한


① r권한
 · r은 읽는 권한을 의미한다.
 · r권한이 없으면 해당 사용자는 음악을 재생할 수도, 사진 파일은 사진을 볼 수도 없다.
 · 설령 파일의 소유자가 본인라고 해도 권한이 없으면 읽을 수 없다.

② w권한
 · w권한은 쓰기 권한을 의미한다.
 · 이 권한이 없으면 파일의 내용을 수정할 수가 없다.

③ x권한
 · x권한은 실행권한을 의미한다.
 · 대부분의 데이터 파일(음악, 사진, 문서)들은 실행파일이 아니기 떄문에 일고, 쓰는 권한을 부여 받으면 사용하는 데 문제가 없다.
 · 하지만 실행파일 같은 경우는 실행권한을 부여 받지 못하면 실행할 수가 없다.


# 우분투에서 디렉토리
 -. 디렉토리는 리눅스에서 파일의 일종으로 분류된다.
 -. 하지만 디렉토리 안쪽으로 이동해서 들어가려면 반드시 디렉토리가 실행권한을 가지고 있어야 한다.
 -. 따라서 위 예제에서 모든 디렉토리가 실행권한을 가지고 있는 것이다.
 -. 디렉토리에 실행권한이 없으면 cd명령으로 이동할 수 없다.
 -. 위에서 언급했듯이 아무리 자기 소유의 파일이라 할지라도 적절한 권한을 주지 않았다면 ‘권한 없음’ 오류를 만날 수 있다.




■ 권한 변경하기


-. 권한을 바꾸는 명령어는 chmod 이다.

-. chmode를 쓰는 방법은 영문자를 이용하는 방법과, 숫자를 이용하는 방법 2가지가 있다.

-. chmode는 파일의 소유자나 루트계정만이 실행할 수 있다.




# 영문자를 이용하는 방법


 $ chmod u-x Music


-. 위 명령을 Music 디렉토리의 소유자 권한 중에서 실행권한을 제거하라는 명령이다.

-. u는 소유자를 의미하고, -x는 실행권한 제거를 의미한다.


소유자

g

소유 그룹

o

제3자


+r 또는 -r

읽기 권한 추가 또는 삭제

+w 또는 -w

쓰기 권한 추가 또는 삭제

+x 또는 -x

실행 권한 추가 또는 삭제


위에서 설명한 내용을 바탕을 몇 가지 예제를 살펴보자.


ex01)

 $ chmod go+rwx Music


 -. 위 명령어는 Music 디렉토리의 소유 그룹과 제3자에게 일기, 쓰기, 실행권한을 모두  부여하겠다는 의미이다.


ex02)

 $  chmod o-xw Music


-. 위 명령어는 Music 디렉토리의 제3자에게 실행과 쓰기 권한을 주지 않겠다는 의미이다.



# 숫자를 이용하는 방법


 -. 아래 표처럼 각각의 권한마다 숫자를 지정해서 더해주는 방법이다.


4

W

2

X

1


예를 들어 보자.


ex01)

 $ chmod 755 Music 


-. 위 명령어는 소유자에게는 읽기(4), 쓰기(2), 실행(1) 권한을 전부 부여하고, 소유그룹과 제3자에게는 읽기(4)와 실행(1) 권한만을 부여하는 명령이다.

-. 총 세 자리 숫자를 적어줘야 하는데 첫 번째 자리 숫자 값은 소유자의 권한을, 두 번째 자리 숫자값은 소유 그룹의 권한을,

   마지막 셋째 자리 숫자 값은 제3자의 권한을 의미한다.



ex02)

 $ chmod 300 Music


-. 위 명령어는 소유자는 쓰기(2)와 실행(1) 권한을 부여하고, 소유 그룹과 제 3자에게는 아무런 권한을 부여하지 않는 명령이다.




■ 파일소유자나 소유  그룹 바꾸기

-. 파일의 소유자나 소유 그룹을 바꾸기 위해서는 chown이라는 명령어를 이용한다.
-. 소유 그룹을 바꾸는 명령어로 chgrp라는 명령이 따로 존재하지만 chown으로도 바꿀 수 있다.
-. 대신 chown 명령을 쓰기 위해서는 루트 권한(sudo 명령어 사용)이 필요하다.


# 파일 권한 변경하기

파일 권한 명령어는 아래와 같이 사용할 수 있다.

$ sudo chown UID : GID 폴더 or 파일명

UID : 해당 파일 및 폴더의 소유자
GID : 해당 파일 및 폴더의 소유 그룹


 $ sudo chown newuser:newgroup target.file


위 명령은 target.file이라는 파일을 소유자는 newuser로 바꾸고 소유 그룹은 newgroup으로 바꾸라는 명령이다.



# 디렉토리 권한 변경하기


-. 계정 권한 변경 같은 종류의 명령어는 1개의 파일만 지정하는게 아니라 다수의 파일을 지정하거나

  특정 디렉토리 밑에 있는 모든 디렉토리와  파일을 다 지정해야 할 경우도 있다.

-. 이런경우 특수기호 *(Asterisk)와 재귀 옵션인 -R을 활용하면 좋다.


 $ sudo chown aaa:bbb -R


위 명령은 현재 디렉토리에 있는 모든 파일과 디렉토리를 포함하고, 하위에 있는 모든 파일과 모든 디렉토리를 전부 포함해서 소유자를 aaa로 바꾸고, 소유그룹을 bbb로 바꾸라는 명령이다.


-. -r 옵션을 이용하면 하위에 있는 모든 파일과 디렉토리를 지칭할 수 있다.

-. -r 옵션은 많은 명령어들이 지원하는 옵션이다.




반응형
//

MS윈도우의 디렉토리 구조MS윈도우의 디렉토리 구조

Posted at 2018. 7. 19. 17:55 | Posted in 카테고리 없음
반응형


■ MS윈도우의 디렉토리 구조


 MS윈도우를 설치하게 되면 C:\Windows라는 폴더(드라이브는 C:\가 아닐 수도 있다)에 운영체제에 관한 모든 파일과 데이터를 저장하게된다. 가장 중요한 폴더이다. 여기에 운영체제 커널과 각종 장치 드라이버 파일, 설정 파일들이 존재한다. 따라서 C:\Windows라는 폴더를 망가뜨리면 부팅조차 되지  않는다.



반응형
//

[Ubuntu] 우분투의 시스템 구조[Ubuntu] 우분투의 시스템 구조

Posted at 2018. 7. 19. 17:45 | Posted in Linux/Ubuntu
반응형



 우분투는 리눅스 배포판의 한 종료이다. 따라서 기본적으로 리눅스의  시스템 구조를 가지고 있다. 리눅스 배포판들은 겉으로 보이는 모양이 많이  다를 수 있지만 그 내부 시스템 구조는 일관성을 띄고 있다. 그래서 콘솔을 이용하게 되면 리눅스 시스템에 직접 접근해서 작업을 수행할 수 있어서, 리눅스 배포판 종류와 상관없이 거의 비슷하게 사용할 수 있다는 장점이 있다. 물론 리눅스 배포판들 사이에 시스템 구조가 완전히 동일하지는 않기 떄문에 차이가 있는 부분은 따로 익혀야 한다.




■ 우분투의 파일 시스템 구조




 우분투를 사용하기 위해서는 우분투가 컴퓨터에 설치되어 있어야 하고, 우분투가 설치되기 위해서는 적절한 저장 장치가 있어야 한다. 대부분은 하드디스크나 SSD에 설치할 것이다. 또한 우분투가 설치된 공간 외에 사용자가 자료를 저장하거나 프로그램을 설치할 수  있는 공간도 필요하다.


 이렇게 저장 장치에 우분투를 설치하고 사용자가 데이터를 저장하기 위해서는 파일시스템을 사용할 수 있도록 영역을 설정해야 한다. 이를 일반적으로는 "저장 장치를 포맷(Format)한다" 라고 이야기 한다. 이는 MS윈도우를 사용하는 경우도 마찬가지인데 MS윈도우 사용자라면 MS윈도우를 설치할 때 저장 장치를 새롭게 포맷하게 된다. 그러면  C:라는 드라이브가 하나 생기게 된다. 물론 드라이브를 더  만들 수 있다.



:: Windows 10의 드라이브 구조 ::



 위 이미지는 MS윈도우 운영체제에서 C:D:가 있는 것을 알 수 있다. 이런 경우  보통은 컴퓨터에 저장 장차가 2개가 연결되어 있는 경우이거나 혹은 저장 장치 하나에  파티션 영역을 나누어 C:D:를 만들어 줄 수 있다. 이렇게 드라이브를 따로 가지게 되면 C:를 포맷해도 D:포맷되지  않기 때문에  개인 자료 백업이나 자료를 보관하는 데 편리하다.


 우분투와 MS윈도우가 각각 저장 장치를 포맷하고 쓴다는 점은 같지만, 문제는 서로 다른 파일 시스템을 쓰기 때문에 다른 형식으로 저장 장치를 포맷한다는 점이다. 즉, 우분투는 MS윈도우의 파일 시스템을 인식할 수 없고, MS윈도우는 우분투의 파일 시스템을 인식할 수 없다.





# 우분투의 파일시스템 구조


 -. 우분투는 MS윈도우와 같이 드라이브(C:나 D:)라는 개념이 없다.

 -. 우분투에는 파일 시스템은 단 하나의 파일 시스템으로 구성되어야 한다.

    (쉽게 말해  우분투는 무조건 C:만 존재해야 한다는 것이다.)

 -. 이는 리눅스 시스템의 공통된 특징으로 다른 리눅스 배포판도 마찬가지이다.




# 우분투 파일시스템의 최상위 루트(root) 디렉토리


 -. 우분투의 파일 시스템의 최상위는 루트 디렉토리(/)라고 부르는 공간이다.

   이는 MS윈도우로 비유하자면 C:\와 비슷한 것이다.(C: 드라이브의 가장 최상위 폴더는 C:\ 이기 때문이다.)


 -. 리눅스는 드라이브라는 개념이 없고 무조건 루트 디렉토리(/)부터 존재하기 때문에 다른 저장장치에 접근하려면

   특정 디렉토리를 해당 저장 장치에 연결해서 접근해야 한다.




① 저장 장치(HDD, SSD)를 각각의 디렉토리로 연결하는 마운트(mount)


 · 우분투는 저장 장치가 여러 개가 존재할 경우 각각의 저장 장치를 각각의 디렉토리에 연결하게 된다. 이를 우분투는 마운트(mount)라고 한다.

 · 마운트를 하게  되면 특정 디렉토리를 다른 저장 장치로 보여주는 통로로 설정하게 된다.



:: /other_disk에 다른 저장장치가 마운트된 경우 ::



 

 · 저장 장치 하나는 운영체제가 설치되어 부팅이 되는 주 저장 장치 일 테니 저장 장치는 반드시 루트(/) 디렉토리에 마운트되어 있게 된다.
 · 다른 또 하나의  저장 장치를 사용하고 싶다면, 루트 디렉토리에서 /other_disk라는 디렉토리를 만들고 다른 2번째 저장 장치를

   /other_disk에 마운트 하게 되면 해당 저장 장치를 사용할 수 있게 된다.


:: 저장 장치 하나에 2개 파티션을 연결한 경우 ::


 · 위의 경우에는 1번 저장장치에 파티션 #01루트(/) 디렉토리마운트 한 다음 /other_partiton이라는 폴더를 만들고

    해당 디렉토리에 파티션 #03을 마운트 한경우이다.





② CD-ROM이나 USB 메모리 스틱을 사용하는 경우


 · CD-ROM이나 USB를 사용하는 경우 전부 특정 디렉토리에 마운트 된다.


저장장치

 마운트 되는 디렉토리 경로

CD-ROM

 /media/cdrom 

USB 메모리 스틱

 /media/[USB명] 


 · cd 명령을 이용해서 해당 디렉토리로 이동하면 저장된 내용을 볼 수 있다.




# 루트 디렉토리(/)의 장 · 단점


◎ 장점 : 파일시스템의  저장 공간을 늘리기에 매우 용이하다.

  윈도우 같은 경우는 C: 드라이브의 용량이  정해지면 그 용량만큼만 사용할 수 있다. 만약 C: 용량이 부족하게 되면 저장 장치를 새로 추가한 후에 D: 를 만들어  준다. 그래도 부족하면 저장 장치를 또 추가하면 되는데 그 때마다 드라이브 개수가 늘어나게  된다. 하지만 우분투의 경우 저장 장치에 용량이 부족해지면 새로운 저장 장치를 추가로 장착한 후에 특정 디렉토리에 마운트만 해주면 그만큼 용량이 늘어나게 된다. 드라비으 형태로 저장 장치가 따로 분리되는게 아니라 하나의  파일시스템에 포함되기 때문에 용량을 추가하기가 쉽다.



◎ 단점 : 저장 장치가 어떻게 파일시스템과 연동되고 있는직 직관적으로 알기가 어렵다

 어떤 디렉토리가 정말 일반 디렉토리인지 아니면 다른 저장장치를 마운트한 디렉토리인지 디렉토리 구조 형태만 봐서는 차이를 알 수가 없다. 따라서 어떤 디렉토리에 어떤 장치가 마운트되었는지 알기 위해서는 프로그램을 이용해야 한다.



① GUI에서 마운트 위치 확인


:: Disks 실행 화면 ::


 -. 왼쪽 리스트는 현재 컴퓨터에 연결된 저장 장치 목록을 보여준다.

 -. 오른쪽에는 선택된 저장 장치의 다양한 정보(파티션, 마운트된 위치, 파일시스템 타입 등)를 보여준다.




② 콘솔창에서 마운트 정보 확인


 $ df


 -. 콘솔창에서 마운트 정보를 알고 싶다면 df라고 입력하면 된다.


 

Filesystem

1K-blocks

Used

Available

Use%

Mounted on


/dev/sda1

64891708

8920144

52652220

15%

/


none

4

0

4

0%

/sys/fs/cgroup


udev

491516

4

491512

1%

/dev


tempfs

101420

1296

100124

2%

/run


none

5120

0

5120

0%

/run/lock


none

507092

1028

506064

1%

/run/shm


none

102400

16

102384

1%

/run/user


 -. 위의 명령결과 표를 살펴보면 /dev/sda1라는 파일시스템이 루트(/) 디렉토리에 마운트되어 있는걸 확인 할 수 있다.

 -. 실제 저장 장치는 파일시스템 이름이 /dev/sda넘버 형태로 표현된다.

 -. 아래에 있는 다른 파일시스템은 실제 저장 장치를 디렉토리로 마운트한게 아니라

    시스템 관리 목적으로 사용되는 특수한 파일시스템을 디렉토리에 마운트한 것들이다.




 $ mount

 /dev/sd1 on / type ext4 (rw, errors=remount-ro)

 proc on /proc type proc (rw, noexec, nosuid, nodev)

 sysfs on /sys type sysfs(rw, noexec, nosuid, nodev)

 none on /sys/fs/cgroup type tmpfs (rw)

 none on /sys/fs/fuse/connections type fusectl (rw)

 none on /sys/kernel/debug type debugfs (rw)

 none on /sys/kernel/security type securityfs (rw)


 -. 좀 더 세부적인 내용을 보고자 한다면, mount라고 입력하면 된다.

 -. 위 결과값을 살펴보면 /dev/sd1 저장 장치가 역시 루트(/) 디렉토리에 마운트되어 있고,

    파일시스템은 ext4이며, 읽기 and 쓰기가 모두  가능한 상태임을 알 수 있다.





■ 우분투의 디렉토리 구조




 -. 우분투의 디렉토리 구조에서 가장 큰 특징은 운영체제의 다양한 시스템 파일들이 한곳에 모여있는게 아니라 많은 디렉토리에 분산되어 있다는 점이다.
 -. 이는 우분투 뿐만이 아니라 리눅스 기반의  배포판들의 특징이다.

 $ ls -l 

 



:: 우분투의 디렉토리 구조 ::





bin

 -. 실행파일들을 모아놓은 디렉토리이다.

 -. cp, rm 같은 명령어들의 실행파일이 이 폴더에 존재한다.

 -. 그렇다 시스템에  존재하는 모든 실행파일들이 이 디렉토리에 있는 건 아니다.



② sbin

 -. 시스템 관리자용 실행파일들을 모아놓은 디렉토리다.

 -. bin 폴더와의 차이점은 여기에 있는 실행파일은 시스템을 관리하거나 수정할 때 사용하는 명령어들이라는 점이다.



③ etc *

 -. 환경설정 파일들을 모아놓은 디렉토리다.

 -. MS윈도우 같은 경우 환경 파일이 레지스트리(Registry)라 불리는 영역에 저장되거나 각각의 프로그램 폴더에 저장되는 경우가 많지만

   우분투에서는 대부분 이 디렉토리에  담아 놓는다.



④ dev

 -. 장치를 접근할 수 있는 파일들이 담겨 있다.

 -. 장치를 접근할 수 있는 파일이라는 말이 좀 생소한데, 리눅스에서는 전통적으로 모든 장치를 파일로 표현한다.

 -. 예를 들어 /dev/tty 파일에 데이터를 쓰면 실제로 저장 장치에 해당 내용이 저장되는 게 아니라 해당 장치로 데이터가 전송되는 구조이다.

 -. 좀더 자세히 알려면 많은 지식이 필요하고, 일반 사용자들은 깊게 이해하지 않아도 되므로 이 정도만 알아도 된다.



⑤ lib

 -. 시스템에서 사용하는 라이브러리 파일들이 존재한다.

 -. 라이브러리 파일은 어떤 실행파일이 실행될 때 필요한 기능들을 담고 있는 파일을 의미한다.

 -. MS윈도우에서는 DLL이란 파일을 자주 볼 수 있는데, 라이브러리 파일도 이와 비슷한 역할을 한다.



⑤ home *

 -. 사용자 데이터를 저장하고 있는 디렉토리다.

 -. 이 디렉토리의 하위 디렉토리를 살펴보면 각각 사용자 계정과 동일한 디렉토리들이 나열되어 있는 것을 볼 수 있다.

 -. 각각의 사용자가 디렉토리들은 각자의 홈 디렉토리로 지정된다.

    따라서 콘솔을 시작하면 항상 'home/자기계정명' 디렉토리에서 시작하게 된다.



⑥ usr

 -. 사용자가 사용하는 프로그램들이 있는 디렉토리다.

 -. 운영체제에 설치되는 대부분의 응용프로그램들이 이 디렉토리에 설치된다.



⑦ sys, proc

 -. sys, proc 디렉토리들은 특이하게 실제로 존재하는 파일을 담고 있는 디렉토리가 아니다.

 -. sys, proc 디렉토리들은 현재 시스템의 상태나 정보들을 알려주는 파일들 담고 있다.

 -. sys, proc의 파일들은 실제 저장 장치에 있는 것이 아니라 메모리상에 존재한다.

   예를 들어 /sys/bus/cpu/device 디렉토리에는 현재 컴퓨터에 장착된 프로세서의 정보를 담고 있는 파일이 존재한다.

   이 파일의 내용은 우분투가 부팅될 때마다 새롭게 생성되는 것이다.




 


반응형
//