본문 바로가기

Linux(OS)

리눅스 디렉토리 관리

[리눅스 디렉토리 관리]
01. pwd
현재 위치한 디렉토리의 절대경로를 출력한다.
[root@localhost log]# pwd
/var/log
02. cd
디렉토리를 이동할 때에 사용한다.
<사용방법>
cd [디렉토리]
(예) / 로 이동하기
[root@localhost log]# cd /
[root@localhost /]# pwd
/
(예) 특정 사용자의 홈디렉토리로 이동하기
[root@localhost /]# cd ~doom
[root@localhost doom]# pwd
/home/doom
위 특정 사용자라고 했는데, 반드시 사용자의 아이디가 있어야 겠죠?
(예) 한단계 상위 디렉토리로 이동하기
[root@localhost doom]# cd ..
[root@localhost home]# pwd
/home
(예) 자신의 홈디렉토리로 이동하기
[root@localhost home]# cd
[root@localhost ~]# pwd
/root
# cd ~ 해도 된다.
(예) 다른 사용자의 홈디렉토리로 이동하기
[root@localhost ~]# cd ~user1
[root@localhost user1]# pwd
/home/user1
(예) 다른 사용자의 홈디렉토리가 없을 때에 에러 메시지를 확인하자.
[root@localhost user1]# cd ~fire3
-bash: cd: ~fire3: 그런 파일이나 디렉토리가 없음
위 ~ 를 주목하자. 디렉토리가 아닌 “사용자의 계정” fire3 이라는 곳으로 가려는데, 계정이 없으니까 에러를 나타낸다.(디렉토리 이동하고 혼돈하지 말자.)
[자동 완성 기능]
키보드의 [TAB] 키를 이용하면 디렉토리의 전체 이름을 입력하지 않아도 자동으로 입력이 된다.
/usr/loc 만 입력하고 키보드 [TAB] 키를 입력하면, 현재의 디렉토리에서 loc 로 시작하는 디렉토리를 검색한다. 그 중 일치하는 것이 하나만 있다면 자동입력이 되고, 2개 이상이 있다면 목록이 표시된다. 일치하는 디렉토리가 없으면 “자동완성”되지 않는다.
03. ls
디렉토리와 파일의 목록을 보여준다.
<사용법>
ls [옵션] [디렉토리]
<옵션>
-a : 모든 파일을 보여준다.(숨김 파일 포함)
-c : 최근 변경 시간에 따라 정열해서 보여준다. –l 과 함께 사용하면 최근 변경 시간을 보여준다.
-f : 경로와 내용을 디스크에 저장된 순서대로 보여준다.
--full-time : 시간을 간략하게 표시하지 않고 전체 시간을 보여준다.
-i : 파일 왼쪽에 inode를 보여준다.
-k : 파일 크기를 kb 단위로 보여준다.
-l(소문자 엘) : 파일 목록의 형태, 권한, 소유자, 그룹, 크기, 시간, 파일명을 자세하게 나열한다.
-m : 목록을 가로로 나열한다.
-n : -l 옵션과 비슷하다. 소유자, 그룹을 UID, GID 번호로 표시한다.
-p : 파일 형태를 지시하는 문자를 각 파일에 추가한다.
-r : 정렬 순서를 내림차순으로 한다.
-s : 파일 크기를 1Kb 단위로 나타낸다.
-t : 파일을 시간 순으로 정열한다.
-x : 정렬 방식을 가로로한다.
-A : 리스트 목록에서 “.” 과 “..”을 제외한다.
-B : 파일 끝이 ~ 인 파일은 제외한다.
-C : 정렬 방식을 세로로한다.
-F : 파일 형식을 알리는 문자를 각 파일 뒤에 추가한다.
-G : 자세한 목록 나열에서 그룹 정보를 제외한다.
-L : 심볼릭 링크 파일들을 그냥 파일로 보여준다.
-R : 하위 경로와 그 안에 있는 모든 파일들도 나열한다.
-S : 파일 크기가 가장 큰 것부터 정렬한다.
-U : 정렬을 하지 않고, 디스크에 저장된 순서대로 보여준다.
-X : 확장자 순으로 정렬한다.
-1 : 한줄에 한 파일씩 나열한다.
ls 명령어에는 앞에서 살펴본 것과 같이 상당히 많은 옵션들이 있다.
지금 이것들을 전부 외울 필요는 없다. 실제로 많이 쓰이는 것은 몇가지 뿐이다.
ls : 파일의 목록을 간단히 출력한다.
[root@localhost ~]# ls
Desktop anaconda-ks.cfg install.log install.log.syslog
ls –al : 숨겨진 파일들을 포함해 모든 파일들의 자세한 정보를 나열한다.
[root@localhost ~]# ls -al
합계 316
drwxr-x--- 20 root root 4096 11월 9 20:40 .
drwxr-xr-x 25 root root 4096 11월 12 10:10 ..
-rw------- 1 root root 1890 11월 4 11:09 .ICEauthority
drwx------ 2 root root 4096 11월 3 14:38 .Trash
drwx------ 3 root root 4096 11월 3 13:42 .adobe
-rw------- 1 root root 4959 11월 10 08:37 .bash_history
-rw-r--r-- 1 root root 24 1월 6 2007 .bash_logout
-rw-r--r-- 1 root root 219 11월 3 22:42 .bash_profile
-rw-r--r-- 1 root root 176 1월 6 2007 .bashrc
..중간 생략..
ll(소문자 엘엘) : 파일들의 자세한 정보를 나열한다. 숨겨진 파일들은 보이지 않는다. ll 명령은 ls –l 을 실행 하는 것과 같다. ll 은 쉘 명령어가 아니라 ls –l 명령을 지정한 alias 별칭이다.
[root@localhost ~]# ll
합계 76
drwxr-xr-x 2 root root 4096 11월 3 14:38 Desktop
-rw------- 1 root root 1593 11월 3 15:46 anaconda-ks.cfg
-rw-r--r-- 1 root root 42119 11월 3 15:45 install.log
-rw-r--r-- 1 root root 4701 11월 3 15:44 install.log.syslog
<실습> 위에서 말한 alias 별칭을 마음대로 변경해 보자.
[root@localhost ~]# cd ~
[root@localhost ~]# vi .bashrc
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias ll=’ls –a’
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
:wq! 저장하고 나오자.( ‘ 는 [ENTER]키 바로 좌측의 키다.)
[root@localhost ~]# source .bashrc
[root@localhost ~]# ll
결과가 변경되는 것을 볼 수 있을 것이다.
주의할 것은 rm 명령어 같은 것은 변경하지 말도록 해야 한다. 잘못된 실수로 시스템이 문제가 생길 수 있다.
ls /var/log : /var/log 디렉토리의 목록을 출력한다.
[root@localhost ~]# ls /var/log
Xorg.0.log audit cups mail samba vbox
Xorg.0.log.old boot.log dmesg maillog scrollkeeper.log wtmp
acpid btmp faillog messages secure yum.log
anaconda.log conman gdm pm setroubleshoot
anaconda.syslog conman.old httpd ppp spooler
anaconda.xlog cron lastlog prelink tallylog
몰론 ls 후에 옵션을 주어도 된다.
본인은 실무에서 # ls –altr 도 많이 사용한다.
옵션은 위에 나와 있으니 살펴보기 바란다.
04. mkdir
디렉토리를 생성한다.
<사용법>
mkdir [옵션] 디렉토리
<옵션>
-m 퍼미션 : 디렉토리의 권한을 지정할 수 있다. 기본값은 755이다.
-p : 필요한 경우 상위 디렉토리까지 만든다. 만약 ~/a/b 라는 경로에 c라는 디렉토리를 만들기 위해서 mkdir ~/a/b/c 를 입력했을 때 ~/a/b 의 경로가 없다면 디렉토리가 생성되지 않는다.
하지만 이 옵션을 사용하면 경로가 없을 경우 상위디렉토리까지 생성한다.
<실습>
[root@localhost ~]# mkdir dir1
[root@localhost ~]# ls -l
합계 80
drwxr-xr-x 2 root root 4096 11월 3 14:38 Desktop
-rw------- 1 root root 1593 11월 3 15:46 anaconda-ks.cfg
drwxr-xr-x 2 root root 4096 11월 12 10:45 dir1
-rw-r--r-- 1 root root 42119 11월 3 15:45 install.log
-rw-r--r-- 1 root root 4701 11월 3 15:44 install.log.syslog
<실습> 이번에는 dir2/subdir1 을 생성해 보자.
[root@localhost ~]# mkdir dir2/subdir1
mkdir: `dir2/subdir1' 디렉토리를 만들 수 없습니다: 그런 파일이나 디렉토리가 없음
위의 화면과 같이 dir2/subdir1 을 입력하였으나 오류가 발생했다.
왜냐하면 dir2가 없기 때문이다.
–p 옵션을 이용하여 subdir1을 생성하기 위해 필요한 디렉토리들을 모두 생성해 보자.
[root@localhost ~]# mkdir -p dir2/subdir1
[root@localhost ~]# ls -l
합계 84
drwxr-xr-x 2 root root 4096 11월 3 14:38 Desktop
-rw------- 1 root root 1593 11월 3 15:46 anaconda-ks.cfg
drwxr-xr-x 2 root root 4096 11월 12 10:45 dir1
drwxr-xr-x 3 root root 4096 11월 12 10:47 dir2
-rw-r--r-- 1 root root 42119 11월 3 15:45 install.log
-rw-r--r-- 1 root root 4701 11월 3 15:44 install.log.syslog
[root@localhost ~]# cd dir2
[root@localhost dir2]# ls
subdir1
[root@localhost dir2]# cd subdir1/
[root@localhost subdir1]# pwd
/root/dir2/subdir1
05. rmdir
비어있는 디렉토리를 삭제한다.
<사용방법>
rmdir [옵션] 디렉토리
<옵션>
-p : 상위 경로도 지운다. 물론 상위경로 또한 비어 있어야 한다.
subdir1 을 지워보자.
[root@localhost subdir1]# cd ..
[root@localhost dir2]# pwd
/root/dir2
[root@localhost dir2]# ls
subdir1
[root@localhost dir2]# rmdir subdir1/
[root@localhost dir2]# ls
[root@localhost dir2]#
위 정상적으로 subdir1을 지운 것은 subdir1 하위의 디렉토리에 아무것도 없는 상태이기 때문이다.
주의할 것은 지워야 할 디렉토리에 내가 그 디렉토리에 있으면 지워지지가 않는다.
상위로 가서 하위를 지워야 한다.
[root@localhost dir2]# pwd
/root/dir2
[root@localhost dir2]# rmdir dir2
rmdir: dir2: 그런 파일이나 디렉토리가 없음
[root@localhost dir2]# cd ..
[root@localhost ~]# ls
Desktop anaconda-ks.cfg dir1 dir2 install.log install.log.syslog
[root@localhost ~]# rmdir dir2
[root@localhost ~]#
다른 예를 알아보자.
-p 옵션을 주어 하위에 있는 모든 디렉토리까지 삭제해 보자.
[root@localhost ~]# cd ~
[root@localhost ~]# ls
Desktop anaconda-ks.cfg install.log install.log.syslog
[root@localhost ~]# mkdir mydir1
[root@localhost ~]# cd mydir1/
[root@localhost mydir1]# pwd
/root/mydir1
[root@localhost mydir1]# mkdir subdir1
[root@localhost mydir1]# cd subdir1/
[root@localhost subdir1]# pwd
/root/mydir1/subdir1
[root@localhost subdir1]# cd ..
[root@localhost mydir1]# pwd
/root/mydir1
[root@localhost mydir1]# cd ..
[root@localhost ~]# pwd
/root
[root@localhost ~]# ls
Desktop anaconda-ks.cfg install.log install.log.syslog mydir1
[root@localhost ~]# rmdir -p mydir1/subdir1/
[root@localhost ~]#
[TIP] 쉘 프롬프트 상태 바꾸기 – 디렉토리 절대 경로 보이게 하기
[root@localhost /]# cd ~
[root@localhost ~] # vi .bashrc
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
PS1="[₩u@₩h ₩w] ₩₩$ "
:wq! 저장하고 나가자.
[root@localhost ~] # source .bashrc
[root@localhost ~] # cd /etc/sysconfig/
[root@localhost /etc/sysconfig] #
위 절대경로로 디렉토리 위치가 한눈에 보게 된다.
http://cafe.naver.com/linuxlog
krintiz@naver.com

'Linux(OS)' 카테고리의 다른 글

[Oracle Database 10g: Managing Oracle on Linux for DBAs] 01.Introduction  (0) 2011.07.08
리눅스 파일 관리  (0) 2011.06.22
시스템 종료와 재부팅  (0) 2011.06.22
vi 편집기  (0) 2011.06.22
10g Managing Oracle on Linux for DBA Part.03  (0) 2011.06.17