본문 바로가기

* DevSecOps/Linux

리눅스 파일 관리1



man(명령 매뉴얼)

원하는 명령어의 사용법을 출력해준다.

#man <명령어>

화면 제일 하단에 콜론(:)이 표시되어 있다면 [enter],[pageup][pagedown]키로 상하 이동하면서 내용을 볼 수 있다.
나가는 명령은 q이다.

cd(디렉토리 이동)

현재 프롬프트(#또는 $)상에서 디렉토리를 이동할 때 쓰이는 명령

#cd <디렉토리명>

상대경로는 자신이 있는 위치로부터의 경로 개념이고, 절대경로는 가장 상위 디렉토리/(Root)로부터의 경로 개념이다.
그리고 절대경로는 이동하려는 디렉토리의 맨 앞에 슬래시(/)가 붙게되고 상대경로는 붙지 않는다.


pwd(현재 위치 확인)

현재 자신이 있는 디렉토리의 위치를 확인할 때 쓰이는 명령

#pwd

pwd로 현재의 절대경로 위치를 알 수 있을 것이다.
쉘에 따라서 프롬프트에 자신의 위치를 모두 표시해주는 기능도 있지만 대개의 경우 최종 디렉토리만 표시된다.

ls(파일 보기)

디렉토리 내에 가지고 있는 파일과 디렉토리 목록을 출력시키는 명령

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

-a: 디렉토리 내의 모든 파일을 출력한다. 즉, 숨겨진 파일까지 보여준다.
-h: 각 파일들의 용량을 사람이 읽기 쉬운 형식으로 표시해준다. 자동으로 kB,MB 단위 등을 붙여준다.-l 옵션과 같이 사용해야 볼 수 있다.
-l: 각 파일들의 세부적인 내용을 모두 출력한다.
-m: 파일을 쉼표로 구분하여 가로로 출력한다.
-s: 파일을 KB단위로 크기와 함께 출력한다.
-t: 파일을 만들어진 순서대로 출력한다.
-R: 현재 디렉토리에 포함된 하위 디렉토리의 내용을 함께 출력한다.
-r: 순서 옵션이 있을 경우 그 역순으로 출력된다.
-S: 파일을 큰 순서대로 출력한다.
위 옵션들이 주로 사용되지만 이 외에도 다른 옵션이 많다. # man ls 명령으로 확인하면 된다.

ls 명령은 cd명령과 함께 가장 많이 사용되는 명령어이며 DOS의 dir 명령과 동일하다.
# dir 은 DOS 명령어에 익숙한 사람들이 사용하는 명령으로써 # ls 와 같은 뜻이며,리눅스에 dir이란 명령이 존재하는 것은 아니며  bash 쉘을 이용해서 ls를 dir로 알리아스 시켜 놓았기 때문에 같이 사용할 수 있다.
 
파일의 구조

-rwxr-xr-x         1       root         root          22095        Aug 23         06:10        rc.sysinit
     [1]             [2]       [3]          [4]           [5]            [6]              [7]             [8]

[1]: 파일의 퍼미션을 나타낸다. 퍼미션이란? 각 계정별로 파일의 사용권한을 나타내는 것이다.
여기에서는 파일일 경우에는 - 표시로 시작하고 , 디렉토리일 경우에는 d로 시작한다.
또,링크파일일 경우에는 l로 시작한다.
[2]: 자기 자신에 대한 파일 링크 수를 나타낸다. 링크에 대한 설명은 명령어 ln에서 나온다. 현재 이파일에 링크된 것은 자기 자신 하나뿐이라는 뜻이다.
[3]: 소유권자명을 나타낸다. 리눅스는 모든 계정에 대한 소유권을 결정짓는 그룹이 있다. 이 파일은 root라는 그룹에 속해있다
[4]: 그룹명을 나타낸다. 리눅스는 모든 계정에 대하여 소유권을 결정짓는 그룹이 있다.
[5]: 파일의 크기를 나타낸다. 기본은 Byte단위로 나타낸다.
[6]: 파일이 마지막으로 갱신 또는 생성된 날짜를 나타낸다.
[7]: 파일이 마지막으로 갱신 또는 생성된 시간을 나타낸다.
[8]: 파일명을 나타낸다. 파일명은 대소문자를 구분하며 슬래시(/),백슬래시(\),파이프라인(\), 세미콜론(;),따옴표("),작은 따옴표('),역작은따옴표('),틸드(~),앰퍼샌트(&), 괄호(()),부등호(<>)등의 문자를 제외한 모든 문자를 사용할 수 있다.
공백문자는 사용할 수 있고, 파일명 앞에 점(.)문자가 오면 그 파일은 숨겨져서 보이지 않게 된다.
이러한 파일은 # ls al 명령으로만 볼 수 있다.

wild care(확장 변수)

wild card 는 명령어가 아니고 명령어에 쓰이는 일종의 옵션이다. 유닉스 계열의 운영체제에서는 모든 명령이 텍스트로 되어 있고 몇 십 만개의 파일들로 이루어져 있기 때문에 정확한 파일명이나 위치를 모르면 명령수행이 어려워진다.
그래서 wild card 라는 형식을 사용해서 불확실한 파일들을 찾아낼 수 있다.

# 명령어 [wild card]

# : 모든 문자를 포함한다는 의미이다.
? : 문자 한자를 포함한다는 의미이다.
[] : []안에 들어가는 문자를 포함한다는 의미이다.
[ - ] : []안에서 문자의 범위를 지정한다는 의미이다. ex)0~9 or a~z등..

# cd /bin
# ls *
# ls l mk*
# ls l m??d
# ls m[ako]*
# ls s[e-0]*

wild card 는 모든 명령어에 공통적으로 적용되며 뒤에서 배우게 될 쉘 스크립트 명령에도 동일하게 적용된다.

touch(파일 생성)

이름만 있고 크기가 없는 파일을 생성하거나 기존 파일의 날짜와 시간을 바꿔주는 명령

# touch[옵션]<파일명>

-t[[CC]YY]MMDDhhmm[.ss] : 기존 파일의 날짜를 지정한 날짜와 시간으로 변경시킨다.

mkdir(디렉토리 생성)

새로운 디렉토리를 만드는 명령

# mkdir [옵션] <디렉토리명>

-p : 지정한 서브디렉토리까지 한번에 생성

mkdir 명령은 디렉토리를 생성시키는 명령으로써 DOS의 mkdir 명령과 동일한 기능을 가지고 있다.

tree(디렉토리 구조보기)

현재 디렉토리의 하위 구조를 보는 명령

# tree[옵션][디렉토리명]

-a : 숨겨진 파일까지 모두 보여준다.
-d : 파일을 제외한 디렉토리명만 보여준다.
-f : 내용을 표시할 때 경로명까지 같이 보여준다.
-s : 내용을 표시할 때 용량을 같이 보여준다.

하위 디렉토리의 구조를 볼 때 유용한 명령으로 현재 프롬프트 위치에 하위로 어떠한 파일과 디렉토리가 있는지 간략히 볼 수 있다. DOS의 tree명령과 동일한 명령이다.

cp(파일 및 디렉토리 복사하기)

파일 또는 디렉토리를 복사하는 명령

# cp [옵션] <원본 파일 또는 디렉토리명> [복사될 경로]<복사될 파일 또는 디렉토리명>

-b : 복사될 파일명이 동일한 파일이 있을 경우 백업 파일을 만들어주고 복사한다.
-d : 링크 파일을 그대로 복사한다.
-f : 복사될 파일명이 동일한 파일이 있을 경우 무시하고 그대로 덮어씌운다.
-p : 원본 파일의 속성과 시간 등을 그대로 복사한다.
-r : 디렉토리를 복사할 경우 디렉토리에 포함된 모든 파일, 디렉토리까지 복사한다.
-v : 복사되는 내용을 그대로 화면에 출력한다.
-u : 복사될 파일이 존재할 경우 원본이 더 새로운 것일 때만 복사한다.
-a : 원본 파일 또는 디렉토리의 속성과 시간 등을 그대로 복사한다.

ln(파일 또는 디렉토리 링크)

파일을 복사하거나 파일 또는 디렉토리를 링크시키는 명령

# ln [옵션]<링크시킬 파일경로><링크파일명>

-s : 파일 또는 디렉토리를 링크시켜 심볼을 만들어 준다.

링크란? 실제 파일이나 디렉토리의 이름과 경로만 복사한 파일로써 쉽게 이해하려면 Windows의 단축아이콘을 생각하면 된다

# cd
# ln master master.cp
# ln -s master master.ln
# ln -s /bin bin1
# ll
# cd bin1
# ls
# pwd
# cd

/bin 디렉토리를 bin1이라는 파일로 링크시켰다. 링크파일 bin1은 단축 아이콘처럼 동작하며 실제 디렉토리처럼 안으로 들어가 볼 수도 있다. 물론 실제로 /bin 디렉토리로 들어갈 것이다. 하지만 /root/bin1 디렉토리로 들어가서 pwd 명령을 입려갛고 엔터를 치면 /bin 으로 나오지 않고 /root/bin1 으로 디렉토리 정보가 나온다.


rmdir(디렉토리 삭제)

지정한 디렉토리를 삭제하는 명령

# rmdir[옵션]<디렉토리명>

-p : 지정한 디렉토리와 하위 디렉토리까지 한번에 지운다.

rmdir 명령보다 rm 명령을 더많이 사용하는데 그 이유는 명령 운용의 폭이 좁기때문이다.

rm(파일삭제)

지정한 파일이나 디렉토리를 삭제하는 명령

# rm [옵션]<파일 또는 디렉토리명>

-i : 삭제할 때 정말 지울 것인지 아닌지를 일일이 물어 본다.
-f : 삭제할 때 묻지 않고 무조건 삭제한다.
-v : 삭제되는 내용을 보여준다.
-r : 하위 디렉토리의 내용까지 모두 삭제한다.

mv(파일 및 디렉토리 이동)

파일 또는 디렉토리를 다른 디렉토리로 옮기거나 이름을 바꾸는 명령

# mv [옵션]<원본 파일 또는 디렉토리명><대상 파일 또는 디렉토리명>

-b : 원본이 지워지기 전에 백업을 만든다.
-f : 동일한 이름의 대상이 있더라도 무시하고 실행한다.
-i : 동일한 이름의 대상이 있으면 덮어 쓸 것인가를 물어본다.
-u : 동일한 이름의 대상이 있을 때 원본이 최신의 것일 때만 업그레이드한다.
-v : 이동되는 내용을 보여준다.

find(찾기)

원하는 파일을 지정한 조건으로 찾는 명령

# find [경로][옵션]<옵션에 대한 조건 또는 파일명>

-name : 지정한 이름으로 파일을 찾는다.
-user : 사용자의 계정명으로 파일을 찾는다.
-group : 그룹명으로 파일을 찾는다.
-perm : 지정한 퍼미션으로 파일을 찾는다.
-newer : 지정한 파일보다 최신의 파일을 찾는다.

find 명령은 여러가지 조건을 지정하여 파일 또는 디렉토리를 찾거나 검색할 때 쓰인다.

whereis(명령 찾기)

원하는 파일이 어느 디렉토리에 존재하는지 찾는 명령, 명령어만 찾는다.

# whereis <파일명>

whereis 명령은 find 명령과 비슷하지만 리눅스 명령어만 찾는다는 점에서 find a명령과 다르다.

mount, umount(마운트)

파일 시스템을 사용하기 위한 장치 파일 연결 명령

# mount[-t 파일 시스템 유형][장치 파일 유형][옵션]<연결할 디렉토리>
# mount[장치 파일 유형]<연결할 디렉토리>

-f : 마운트 가능 여부만 점검한다.
-r : 읽기만 가능하도록 마운트한다.
-w : 읽기 쓰기 모두 가능하도록 마운트한다.

부팅된 다음에 인식되지 않은 다른 장치 파일을 읽으려면 별도의 과정이 필요한데 그 과정을 마운트라고 한다.



출처 : 레드햇 리눅스 9.x

리눅스 프로그래밍 입문이종민,김성우,이중화
상세보기


'* DevSecOps > Linux' 카테고리의 다른 글

SetUID  (0) 2012.06.08
리눅스 파일 관리 2  (0) 2011.11.23
리눅스 디렉토리 구조  (0) 2011.11.19
Red Hat 9.x  (0) 2011.11.17