강좌

HOME > 강좌 >
강좌| 리눅스 및 오픈소스에 관련된 강좌를 보실 수 있습니다.
 
리눅스 기본명령어 사용방법 2편
조회 : 9,155  


제목 : 리눅스 기본명령어 사용방법 2편




ㅇ 제작 : 리눅스포털(www.superuser.co.kr) 수퍼유저코리아 서버관리팀


ㅇ SULINUX  홈페이지 : www.sulinux.net

ㅇ 리눅스포털 홈페이지 : www.superuser.co.kr






























2-11. 파일 찾아보기 - find


원하는 파일 찾아보기


형식 : find [경로] [옵션] 파일명


옵  션

기    능

-amin n

 n분 전에 마지막으로 액세스된 파일

-atime n

 n x 24시간 전에 마지막으로 액세스된 파일

-cmin n

 n분 전에 마지막으로 변경된 파일-ctime n n x 24시간 전에 마지막으로 변경된 파일

-empty

 비어 있는 파일이나 디렉토리

-name <pattern>

 pattern으로 주어진 파일

-newer

 파일 “파일”보다 최신의 파일

설명 : find 명령은 일종의 검색 기능이다. 만약, 웹브라우저인 모질라가 설치되지 않은 상태에서 이를 추가로설치하고자 할 경우에 이 파일의 압축 파일이 어디에 있는지 안다면 다행이지만, 모를 경우 이것을 찾기 위하여 일일이 디렉토리들을 찾아 헤매는 것은 컴퓨터를 사용하고 있는 사용자로서 어리석은 행동일 것이다.

이 경우에 find 명령으로 쉽게 어느 디렉토리에 있는지 찾아 볼 수 있다. find 명령으로 찾은 다음에는 지정된 경로로 이동하여 압축을 해제하여 설치하면 시간을 낭비하지 않아도 된다. 자, 그러면 SULinux CD를 CD-ROM/DVD/-ROM 드라이브에 삽입하여 다음과 같이 xinetd RPM 패키지 파일을 찾아봅니다.


$ find /media/dvdrom1 -name xinetd*


find 명령에 [시작 경로] [옵션] [검색될 문자열 또는 파일명]의 형식으로 입력하여 파일을 찾는 명령을 실행한다. 그러면 명시한 경로로부터 해당 파일을 알려준다. 자세히 말하자면 “마운트된 /media/dvdrom1 디렉토리 이하에서 xinetd를 포함하는 모든 파일을 찾아라!” 라는 명령이다. 이와 같이 특정한 파일을 찾고자 할 때는 찾기 시작할 경로를 지정해 주고,만약 시작 경로조차 모른다면 가장 상위 경로인 루트 디렉토리(/)를 지정하여 -name 옵션을 부여한 후에 찾고자 하는 파일명을 붙여주면 된다.


2-12. 프로세스 상태 확인 - ps, pstree


작동중이 프로세스 상태 체크하기

ps

형식 : ps [옵션]


옵 션

기    능

l

 긴 포맷으로 출력

u

 실행한 유저와 실행 시간을 표시

j

 “job" 형식으로 표시

s

 시그널(signal) 포맷으로 표시

m

 메모리 정보 표시

a

 다른 유저의 프로세스 현황 표시

x

 터미널 제어 없이 프로세스 현황 표시

설명 : ps 명령어로 현재 실행중인 프로그램들을 확인할 수 있다.

# ps

# ps ax | more


어떤 사용자에 의해 프로세스가 실행되었는지 확인하기 위해서는 다음 화면과 같이 ‘-u' 옵션을 사용한다.


# ps aux | more

pstree

형식 : pstree [옵션] [pid | user]


옵 션

기    능

a

 명령행에서 지정한 인수가 있다면, 명령어 라인 인수까지 보여줌

c

 기본값은 동일한 트리 내의 같은 프로세스를 하나의 프로세스만 보여주고 해당 프로세스의 개수를 나타내는데, 같은 프로세스를 모두 표

G

 트리 형태를 보기 좋게 VT100 형태로 표시

h

 현재 프로세스오 부모 프로세스를 하이라이트로 표시

H pid

 pid로 지정된 프로세스와 부모 프로세스를 하이라이트로 표시

l

 긴 라인을 모두 표시

n

 PID를 기준으로 정렬하여 표시

p

 PID까지 표시

u

 UID를 표시

U

 UTF-8(Unicode) 형태로 표시

V

 버전 정보 출력

pid

 지정한 pid를 출력

user

 지정한 사용자의 프로세스만 출

설명 : pstree 명령어는 프로세스간의 부모 자식 관계를 트리 형태로 출력하므로해서 시스템의 프로세스의 상태를 점검하는 유용한 툴이다.

2-13. 블록 장치 연결 - mount, umount


사용하고자하는 파일시스템과 마운트 포인트를 연결해 주는 명령어이다.


형식 : mount [옵션] [디바이스] [마운트 포인트]

형식 : umount [디바이스] 또는 umount [마운트 포인트]


리눅스에서 하드 디스크나 CD-ROM, 플로피 디스크 같은 파일시스템에 접근하기위해서는 마운트라는 과정이 필요하다.


마운트란 접근하고자 하는 디바이스(파일시스템)를 리눅스 트리 구조에 있는 디렉토리를 이용해서 사용할 수 있도록 하는 방법이다.

이 디렉토리를 마운트 포인트라고 하고, 마운트 포인트에 접근해서 해당 디바이스를 사용할 수 있다.


 현재 마운트 되어 사용되고 있는 파일시스템은 /etc/mtab 파일에 지정되어 있어며, 부팅시 자동 마운트 되도록 설정되어 있는 파일은 /etc/fstab이다.


옵션

설    명

-v

자세한 출력 모드

-f

실제로 마운트하지 않고 마운트 가능한지 점검

-n

/etc/mtab 파일에 저장 없이 마운트 하기

-r

읽기만 가능하도록 마운트

-w

읽기/쓰기 모두 가능하도록 마운트

-t 타입

-t 뒤에 파일 시스템 유형을 지정함


파일시스템 유형


종류

설    명

CD-ROM/DVD-ROM

iso9660

ms-dos

msdos/umdos

win98

vfat

win2000, XP

ntfs

linux

ext2, ext3, reiserfs, xfs

floopy

msdos, ext2


실제 사용의 예


하드디스크 마운트

    [root@localhost ~ ]# mount /dev/hdb1 /mnt/hdd_disk

 

하드 디스크 언마운트

    [root@localhost ~ ]# umount /dev/hdb1

  또는

    [root@localhost ~ ]# umount /mnt/hdd_disk

 

CD 마운트

    [root@localhost ~ ]# mount -t iso9660 /dev/cdrom /media/cdrom

 

CD 언마운트

    [root@localhost ~ ]# umount /dev/cdrom

  또는

    [root@localhost ~ ]# umount /media/cdrom


2-14. 파일 시스템 만들기 - mkfs


리눅스 파일 시스템 만들기


형식 : mkfs [-t 형태] [fs-옵션] 장치명 [블록]


설명 : mkfs 명령어는 하나의 드라이브 장치를 리눅스 파일 시스템으로 만들 경우에 사용한 명령어이다. 도스에서는 디스크를 포맷할 때 format 명령어를 사용하는데 하드 디스크 파티션을 리눅스 파일 시스템으로 포맷한다는 개념으로 이해하면 쉬울 것이다.

리눅스의 파일 시스템은 ext2 또는 ext3 형태를 사용함을 이미 마운트 명령어에서 살펴본 바 있다. /dev/hda3 파티션에 대해서 파일 시스템으로 포맷하는 과정은 다음과 같다.


# mkfs -t ext3 /dev/hda7


2-15. 파일 시스템 점검 - fsck


리눅스 파일 시스템을 점검하고 복원시켜 준다.


형식 : fsck [-t 파일시스템유형] 파일시스템


설명 : 리눅스 시스템은 부팅시에 파일 시스템을 자동으로 체크하고, 파일 시스템이 손상이 입었을 때 fsck 명령으로 이러한 것을 점검하고 복구한다. 리눅스 시스템을 종료할 때 shutdown 명령어를 사용하여 정상적으로 종료하지 않고, 전원 스위치로 바로 끄는 경우 실행중인 프로세스가 중단되지 않아 리눅스 파일 시스템에 손상을 입게 된다.


이 경우 다시 전원 스위치를 넣어 부팅하게 되면 커널 부팅 과정 중 파티션을 확인하는 부분에서 이 명령어가 자동으로 작동되는 것을 볼 수 있다. 만약 커널 부팅 과정에서 자동적으로 파티션 겨러함을 복수하지 못한다면 부팅이 완료된 후에 수동으로 e2fsck 명령어나 fsck 명령어를 이용하여 복구해야한다.


# e2fsck /dev/hda7

2-16. 시스템 사용자 확인 - who, w


현재 시스템에 접속한 사용자를 확인하고자 할 때 사용


형식 : who 또는 w


옵  션

기      능

-i

 idle time과 함께 사용자 출력함

-m

 who 명령을 실행한 사용자 표시

-q

 사용자 이름과 사용자 수 출력

-w, -T

 각 사용자의 메시지 설정 상태 출력

설명 : 현재 시스템을 사용하고 있는 계정 사용자들을 확인하는 명령으로 who 또는 w 명령을 사용한다. 간단히 who명령을 실행하면 현재 쉘 사용자를 확인할 수 있다.


2-17. 프로세스 죽이기 - kill


실행중인 프로세스를 재활성화하거나 완전히 죽이고자 할 때 쓰이는 명령


형식 : kill [옵션] 프로세스ID


옵션

기    능

-1

 -HUP 프로세스를 재활성화함

-9

 프로세스를 장제로 죽임

설명 : 현재 작동중인 프로세스를 죽이거나 다시 띄우고자 할 때 kill명령을 사용한다. “네밈서버”에서 배우게 될 네임 서버의 환경 설정을 변경한 경우에는 반드시 네임서버의 데몬을 다시 띄워 주어야 하는데 이 때 사용되는 명령이 바로 kill 명령이다. kill 명령을 이용하여 현재 작동중인 프로세스를 죽이거나 다시 띄우는 방법에 대해서 연습해 보도록 한다. 먼저 작동중인 커널 프로세스가 어떤 것들이 있는지 확인한 후 그 가운데 존재하는 xinetd 데몬을 다시 띄워 보도록 한다.


# ps ax | grep xinetd

# kill -1 2292

  또는

# kill -HUP 2292


-1 또는 -HUP 옵션을 사용하여 작동중인 프로세스를 다시 시작할 수 있다. 자, 이번에는 xinetd 데몬을 제거해 봅니다. 이때 사용되는 옵션은 -9이다.

# ps ax | grep xinetd

# kill -9 2292

# ps ax | grep xinetd


해당 프로세스를 -9 옵션으로 제거하면 “ps ax | grep 프로세스명” 으로 검색했을 때 해당 프로세스에 대한 PID가 나오지 않는다.


2-18. 리눅스 매뉴얼 보기 - man


리눅스의 모든 명령어에 대한 사용 방법을 알려주는 명령


형식 : man 리눅스명령어


설명 : 이제까지 살펴 본 리눅스의 기본 명령어에 대한 자세히 알고자 하는 경우에는 “man 명령어”를 실행하면 해당 명령어의 기능, 사용법, 옵션 등에 대해 자세히 알 수 있다. 따라서 여러분들이 해당 명령어에 대한 사용법을 모르는 경우에는 man페이지를 통하여 쉽게 터득할 수 있다.


Man 페이지 내용을 텍스트 파일로 변환하기


맨페이지 문서 내용을 텍스트 페이지로 저장하는 방법은 다음과 같다.

man 명령어 | col -b > 텍스트파일명


cp 명령어에 대한 Man 페이지의 도움말을 cp.man.txt 파일로 저장하는 예제이다.


# man cp | col -b > cp.man.txt

2-19. 현재 위치 보기 - pwd


pwd는 자신이 위치하고 있는 현재 디렉토리를 표시해 주는 명령어이다.


[그림 ] pwd 실행 화면


[그림]에서 보는 것과 같이 pwd라는 명령어를 내린후 /root 라는 결과값을 보여준다. 이는 현재 작업중이 디렉토리의 경로가 /root라는 말이다.


2-20. 자원 관련 명령어 - free, top


free

free는 현재 사용하고 있는 시스템의 메모리 상태을 보여준다.


-m관 -k 옵션을 추가로 넣어 메모리 양을 메가바이트 단위나 킬로바이트 단위로 출력한다.



free는 시스템의 비어있거나 사용된 물리적인 메모리와 스왑메모리의 전체 양을 축력한다. 또한 커널에 의해 사용되는 공유 메모리와 버퍼도 출력한다.


top

top은 free에서 보여주는 메모리 사용량 뿐만아니라 프로세스의 사용량까지도 실시간으로 보여주는 명령어이다.


[그림 ] top 명령어 실행화면



[그림]에서와 같이 top은 cpu사용량, 메모리 사용량, 프로세스의 각 사용량등을 보여주고 있다. 시스템 관리자로 자주 시스템을 점검해야 할경우가 많은데 top을 사용하면 편리하게 시스템의 상태을 점검 할 수 있다.

top을 실행하고 빠져나올려면 키보드의 'q'를 입력하여 빠져 나올수 있다.


2-21. 압축 명령어 - tar, gzip, bzip2


tar

tar 여러개의 파일을 하나로 묶는 명령어이다. 거의 대부분 tar는 gzip나 bzip 등과 같은 압축유틸리티과 함께 사용하는 것이 일반적이다. 하지만 tar 추가옵션을 이용하여 tar 명령만으로도 효율적인 파일 압축 관리를 할 수 있다.(tar 명령어는 절대 압축명령어가 아니다 라는 것만은 인지하기 바란다.)


형식 : tar [옵션] [묶음파일명] [파일 또는 디렉토리]


옵션

설    명

-c

여러개의 파일을 하나의 파일로 묶을 때 사용

-d

묶음파일(.tar)과 해당 파일시스템간의 차이점을 확인 하고자 할 때 사용

-r

묶음파일(.tar)에 파일을 추가할 경우 사용

-t

묶음파일(.tar)의 내용을 확인하고자 할 때 사용

-f

묶음파일(.tar)을 사용할 때 반드시 사용

-p

묶음파일(.tar)을 생성할 때 원본 파일의 퍼미션을 그대로 유지시킴

-v

진행되는 과정을 보여줌

-Z

compress로 압축이나 해제 할 수 있는 옵션

-z

gzip로 압축이나 해제 할 수 있는 옵션


실제 사용의 예

[root@localhost ~ ]# tar -cvf home.tar /home

설명 : /home 디렉토리내의 모든 내용을 home.tar 묶음파일로 생성함.


[root@localhost ~ ]# tar -zcvf home.tar.gz /home

또는 [root@localhost ~ ]# tar -zcvf home.tgz /home

설명 : /home 디렉토리내의 모든 내용을 gzip를 이용하여 압축함.

확장자가 .tar의 의미는 묶음파일이고, 확장자가 .tar.gz 또는 .tgz는 묶음 파일을 다시 gzip로 압축한 파일을 의미한다.


[root@localhost ~ ]# tar -xvf home.tar

설명 : home.tar의 묶음 파일의 묶음을 해제한다.


[root@localhost ~ ]# tar -zxvf home.tgz

설명 : home.tgz의 압축파일의 압축 및 묶음을 해제하라는 명령어이다.


gzip & gunzip

gzip은 압축을 하는 명령어이고, gunzip명령어는 압축을 해제하는 명령어이다.(참고 "gzip -d"는 gunzip와 동일하다)


형식 : gzip [옵션] [압축파일]


옵션

설    명

-d

압축해제

*

현재 디렉토리내 모든 파일을 한번에 각각 압축,

기존 파일 삭제 gz파일만 남김

-f

강제 압축하기

-l

압축 효율 확인 예) gunzip -r 디렉토리명

-S

임의 확장자 지정 예) gzip -S .zip textfile.txt

-r

특정 디렉토리를 내 모든 파일들을 압축

예) gzip -l *

compressed : 압축된 후의 용량

uncompresed : 압축되기전의 용량

ratio : 압축효율

uncompressed_name : 압축하기전의 파일명


실제 사용의 예


[root@localhost ~ ]# gzip test.txt


[root@localhost ~ ]# gzip text.tar


[root@localhost ~ ]# gzip -d text.txt.gz

 또는 [root@localhost ~ ]# gunzip text.txt.gz


bzip2

bzip2와 bunzip2는 gzip/gunzip 이후에 나온 압축효율이 뛰어난 압축유틸리티이다.(bunzip2는 “bzip2 -d"와 동일)

compress로 압축된 압축파일은 uncompress로 풀어야하며, gzip로 압축된 파일은 gunzip(= gzip -d)로 풀어야하는 것 처럼, bzip2로 압축된 파일은 반드시 bunzip2(= bzip2 -d)로 풀어야한다.


형식 : bzip2 [옵션] [압축 후의 파일명] [압축할 파일 또는 디렉토리]


옵션

설    명

*

여러개 파일을 동시에 압축 및 해제

-f

동일한 압축파일이 존재하면 덮어씀

-d

압축 해제


실제 사용의 예


[root@localhost ~ ]# bzip2 textfile.data

[root@localhost ~ ]# bzip2 *

[root@localhost ~ ]# bzip2 -d textfile.bz2

[root@localhost ~ ]# bzip2 -f *


[원글링크] : https://www.linux.co.kr/home2/board/subbs/board.php?bo_table=lecture&wr_id=1412


이 글을 트위터로 보내기 이 글을 페이스북으로 보내기 이 글을 미투데이로 보내기

 
(주) 수퍼유저