본문 바로가기

Server/Linux계열

리눅스 기초명령어


리눅스 서버 파일관리

 

cd

- 디렉토리를 변경할 때, 디렉토리를 따로 입력하지 않으면 login한 디렉토리($HOME 또는 '~'로 표시됨)로 이동합니다.

cd . 은 현재 디렉토리이며, cd .. 은 상위 디렉토리입니다.

예) 최상위 디렉토리 / 에서 상위디렉토리 root/ 으로 이동할 때 :

cd /root ( /를 생략해도 무방 )

현 디렉토리root/에서 상위디렉토리에 있는 bin/이라는 디렉토리로 바꿀 때- cd ../bin, 또는 ..없이 그냥 cd /bin으로 해도 무방합니다.

 


ls

- DOS의 dir과 비슷한 명령어인데, 디렉토리명 등을 출력시키며 옵션에 따라 다양한 정보와 함께 출력된다.

옵션

-a: 디렉토리 내의 모든 파일 출력

-i : 파일의 inode와 함께 출력한다.

-l : 파일 허용 여부, 소유자, 그룹, 크기, 날짜 등을 출력한다.

-m: 파일을 쉼표로 구분하여 가로로 출력한다.

-r : 정렬 옵션이 선택되었을 때, 그 역순으로 출력한다.

-s : KB 단위의 파일 크기를 출력한다.

-t : 최근에 만들어진 파일 순서대로 출력한다.

-x : 파일 순서를 세로로 출력한다.

-F : 파일의 형태와 함께 출력한다.
출력되는 파일의 형태는 '*', '@', '|', '=' 등이며, 이것은 각각 실행 파일, 심볼릭 링크, FIFO 소켓을 나타낸다.

-R : 서브 디렉토리의 내용을 포함하여 출력한다.

-S : 파일 크기가 큰 순서로 출력한다.

-U : 정렬하여 출력한다.

-1 : 라인당 한 파일씩 출력한다.

--help : 도움말을 화면상에 나타낸다.

--version : 'ls'의 파일 버전과 함께 출력한다.

예) /home/babo
디렉토리 내용을 최근에 만들어진 파일 순서대로 출력- ls -t /home/babo

 
cp

- 파일을 다른 파일 이름으로 또는 다른 디렉토리로 복사하는 명령어로 도스의 copy와 같은 명령어.

옵션

-a : 가능한 한 원래 파일의 구조, 속성을 그대로 복사한다.

-b : 덮어쓰거나 지울 때 백업 파일을 만든다.

-d : 심볼릭 링크 파일 그대로 복사한다.
(디폴트는 연결된 원래 파일을 복사함).

-f : 같은 파일명을 갖는 파일이 있을 경우, 지운 후 복사한다.

-i : 같은 파일명을 갖는 파일이 있을 경우, 사용자 확인후 복사한다.

-l : 하드 링크를 만든다.

-p : 원시 파일의 소유자, 그룹, 허용 여부, 시간 등을 그대로 복사한다.

-r : 서브 디렉토리를 포함한 모든 파일 복사한다.

-s : 심볼릭 링크를 만든다.

-u : 복사할 파일이 구 버전일 경우만 복사한다.

-v : 복사하기 전에 각각의 파일명을 출력한다.

-x : 파일 시스템이 같을 경우만 복사한다.

-P : 원시 파일이 존재하는 디렉토리까지 포함하여 복사한다.

-R : 디렉토리를 포함하여 복사한다.

-S : 환경 변수 SIMPLE_BACKUP_SUFFIX에 의해 지정된 백업 꼬리말로 백업 파일 생성한다.

예)
/root 디렉토리에서 trial이라는 파일을 /maria라는 디렉토리로 복사하려고 할 때는 #cp trial maria를, maria에 복사되었는지 확인해 보려면, # cd maria # ls를 쳐보면 나온다.

 


mv

(move) - 파일을 다른 파일 또는 디렉토리로 옮길 때 사용. 이 명령은 복사와 같으나 원본이 지워진다.
파일의 이름을 바꿀 때도 사용할 수 있다.

옵션

-b : 지워지기 전에 백업본을 만든다.

-f : 옮겨질 디렉토리에 존재하는 파일이 있으면 덮어쓴다.

-i : 옮겨질 디렉토리에 존재하는 파일이 있으면 확인한다.

-u : 옮겨질 디렉토리에 구 버전의 파일이 있을 경우만 옮긴다.

-v : 옮기기 전에 파일명을 출력한다.

예)
파일을 /maria라는 디렉토리에 옮길려면 mv /복사하고자하는파일 /maria

 
rm

(remove) - 파일을 지우는 명령으로 주의할 점은 유닉스하에서는 파일들이 지워지면 복구가 불가능하다는 것이다. rm 파일명으로 사용한다.

옵션

-f : 강제로 파일을 지울 수 있다.

-i : 지우기 전에 확인한다.

-r : 서브 디렉토리의 파일까지 지운다.

-v : 파일을 지우기 전에 지울 파일의 이름을 나타낸다.

-R : -r과 같다.

예)
command1.txt란 파일을 지우려면, rm command1.txt
확인해 보려면, ls를 쳐 보면 삭제 되었는지 알 수 있다.

 


mkdir

- 디렉토리를 새로 만들 때 사용.
만약 love라는 디렉토리를 만들려면 mkdir love를 입력하면 된다.

옵션

-p : 지정된 모든 서브 디렉토리까지 함께 생성

-m : mode mode에 해당하는 사용 허가로 디렉토리를 생성한다.

예)
/rootd에서 love라는 디렉토리를 만들려면, mkdir love

 


rmdir

- 디렉토리를 지울 때. rmdir 다음에 디렉토리 이름을 입력하면 디렉토리가 지워진다.
이 부분에서 가장 중요한 것은, 디렉토리 내부에 파일이 남아있으면 지워지지 않으므로 디렉토리를 지우기 전에 반드시 rm을 이용하여 내부 파일을 모두 지우는 것을 명심해야 한다.

옵션

-p : 지우고자 하는 디렉토리의 상위 디렉토리까지 포함하여 지운다.

예)
위에 만든 /love라는 디렉토리를 지우려면, rmdir love
지워졌는지 확인해 보려면 ls를 넣으면 알 수 있다.

 
man ( manual )

- 주어진 명령이나 유틸리티의 매뉴얼을 출력한다.

옵션

-a : 모든 manual page를 출력

-d : 디버깅 정보 출력

-f : whatis와 같음

-h : 도움말 출력

-k : apropos와 같음

-t : groff(troff)를 사용하여 프린트를 위한 형식으로 출력

예)
ls 명령어의 도움말을 보고자 할 때- man ls

 


more

- 주어진 파일의 내용을 한 화면씩 출력시킨다.

옵션

-h : 도움말(help)

- SPACE 또는 - z : 다음 페이지

-RETURN 또는 - 1 : 라인 스크롤

-d 또는 -^D : 반 페이지 스크롤

- q 또는 -Q : 종료 (quit)

- f : 다음 페이지 (forward)

- b 또는 - ^B : 이전 페이지 (back)

- /pattern : 검색

- = : 현재 라인 출력

- ! : 명령어 실행

- ^L : 화면 다시 출력

- f : 현재 파일명과 라인 출력

예)
root/command.txt 파일을 페이지 단위로 출력시키려면 more /root/command.txt

 
less

- more와 비슷한 명령어로 한 페이지씩 문서를 보여준다. 문서의 앞으로도 이동이 가능하다.

옵션

- ? : less에서 사용할 수 있는 명령들에 대한 도움말을 제공한다.

- a : 마지막 라인이 화면에 출력되고 나면 검색을 시작한다.

- c : 필요할 때 전체 화면은 다시 갱신한다.

- C : -c 옵션과 같지만 화면 전체를 지우고 시작한다.

- e : 두번째로 파일의 끝에 도달하면 자동적으로 종료한다.

- E : 파일의 끝에 도달하기만 하면 자동적으로 종료한다.

- i : 대소문자를 구분하여 검색한다.

- n : 행 번호를 추가한다.

- q : 특정 에러가 발생하지 않으면 소리없이 동작한다.

- Q : 결코 아무 소리도 내지 않는다.

- s : 연속되는 공백 라인은 하나의 행으로 처리한다.

- x : 숫자: 수치를 지정해서 탭 간격을 조정한다. 기본값은 8 이다.

예)
man의 내용을 한 페이지 단위로 행번호를 추가하여 출력하려면, man less -n

 

 


cat

- 파일의 모든 내용을 한번에 화면에 나타나게 한다.

예)
practice라는 파일의 모든 내용을 화면에 출력할 때- cat practice

 

pwd

- 현재의 디렉토리가 어디인지 알려준다.

 
echo

- 주어진 인자를 단순히 화면에 나타나게 한다.

예)
"i love you"를 출력시키려면, echo i love you
 

grep

주어진 패턴을 포함하는 파일의 라인을 출력시킨다.

옵션

-C : 일치하는 문장의 상하 두 라인까지 포함하여 출력한다.

-V : 버전과 함께 출력한다.

-b : Byte 오프셋과 함께 출력한다.

-c : 일치하는 라인의 갯수를 출력한다.

-h : 파일명은 출력하지 않는다.

-i : 대소문자 구분하지 않는다.

-l : 일치하는 내용을 가지는 파일명만 출력한다.

-n : 일치하는 내용을 가지는 라인 번호를 출력한다.

-s : 에러 메시지만을 출력한다.

-v : 일치하지 않는 내용을 출력한다.

-w : 한 단어로 일치해야 출력한다.

-x : 전체 라인이 일치해야 출력한다.

예)
rm이라는이름이 들어간 파일을 ls중에서 찾을 때 - ls | grep rm

 

touch

- 파일의 시간정보를 변경하는 명령어, 크기가 0인 파일을 생성

옵션

 

-a : 최근 파일 사용시간만 업데이트

-c : 지정한 파일이 없더라도 파일을 생성하지 않는다.

-m : 파일이 수정된 시간을 변경

-r 파일 : 지정한 파일의 시간으로 변경

-t 시간 : 현재 시간 대신 지정한 시간으로 변경

 

예) cd /home/ 디렉터리에 가서 touch god_file1 를 치면 크기가 0인 파일이 생성.

touch -t 201104120000 /파일명을 하면 2011년 4월 12일 00시로 파일 시간 변경


 

find

-원하는 파일을 디렉토리를 탐색하면서 지정된 조건에 만족하는 파일을 찾는다. 이름이나, 크기, 날짜, 사용자등의 조건을 지정하여 찾을 수 있다.

-name : 찾고자 하는 파일의 이름을 정하면 된다.

-perm : 파일의 권한 (permission)이 일치하는 것을 찾는다.

-user : 사용자의 ID에 따라서 검색한다.

-atime : 최근 며칠내에 접속한 파일을 검색한다

-newer : 최근에 갱신된 모든 파일을 검색한다.

예)
maria라는 이름을 가진 파일을 찾으려면, find -name maria 
 
ls

-lR-현재 디렉토리와 서브 디렉토리의 이름 및 포함되어 있는 파일을 출력시킨다.

 


mount

- cdrom이나 floppy disk를 사용하게 만들어 준다.

floppy mount : -t msdos /dev/fd0 /mnt/floppy

 

cdrom mount : mount -t iso9660 /dev/cdrom /mnt/cdrom

 
umount (언마운트; unmount)

- 디렉토리와 연결되었던 시디롬이나 플로피 디스크를 분리시켜 주는것을 말한다. 플로피나 시디롬을 다 쓰고 나면 항상 언마운트를 시켜주어야 한다.

 


Mtools

- Mtools는 리눅 스에서 DOS로 통하는 유틸리티의 모음이다.
모든 명령어들은 앞에 m자를 붙인뒤 DOS의 명령어와 같이쓰면 된다.
예를 들면 mattrib, mcd, mcopy, mdel, mdir, mformat, mlabel, mmd, mrd, mren, mtype, mread, mwrite 등이 있으며, 디렉토리를 나타낼 때에는 ''가 아닌 리눅스의 명령어인; '/'로 지정해 주어야 한다.


mcd

- 도스 시스템으로 현재 사용하고 디렉토리를 이동한다.

mcd dos 디렉토리

 


mcopy

- 도스 파일 시스템으로 가거나 도스상의 파일을 복사한다.

옵션

- n : 파일을 덮어 쓸 경우에도 경고하지 않는다.
- v : 안내문을 자세하게 보여준다.
- m : 파일 갱신 시간을 보존한다.
22. 리디렉션 ( redirection )

- 리디렉션이란 어떤 명령을 실행한 후에 생기는 내용물을 사용자가 원하는 곳으로 출력하기 위해 만들어졌는데 표준 입력, 표준 출력, 에러 출력 등의 방향을을 다른 곳으로 바꾸는 것이다.
리디렉션의 기호는 ">"이다. 보통, ">" 을 이용하여 명령의 결과를 파일로 리디렉트시켰을 때 그 파일이 존재해 있었다면 그것을 덮어 쓴다. ">>"를 쓰면 파일을 덧붙여 쓰게 된다.

예)
만약 원하는 내용을 life.txt란 파일로 보내려면, 파일 생성 명령어인 cat을 친 다음, 다음 행에서 부터는 내용을 life.txt라는 곳으로 보내라는 리디렉션 기호 '>'를 친다.
그 다음에 원하는 내용을 쳐 넣으면 된다. 그리고 엔터키를 친 다음,Ctrl+Z>를 친다.
입력한 내용을 확인해 보려면, $ cat life.txt를 친 다음, 엔터키를 치면 볼 수 있다.

 


파이프라인

- 파이프라는 것은 여러 명령을 함께 사용할 때, 한 명령의 결과가 다른 명령으로 전송되는 통로이다. 명령어를 하나 하나씩 일일이 치지 않고도 한꺼번에 여러가지를 실행할 수 있어 편리하다.

예)
ls화면을 한 페이지씩 출력하려면 ls | more , 중단 하려면 q를 치면 된다.

 


Process 관리

 

ps ( process )

- 현재 진행중인 프로세스에 대한 정보를 출력한다.

 

pstree ( process tree)

- ps 에 의해서 출력되는 프로세스 정보를 트리 형태로 나타낸다.

 

top

- cpu와 메모리를 사용하는 작업들에 대한 시스템 정보를 출력한다.
원래 화면으로 되돌아 가려면 q를 입력한다.

 

 


arch (architecture)

- 현재 사용하고 있는 cpu의 모델을 출력(i686- 인텔 펜티엄)

 


cal (calendar)

- 현재의 달을 출력해 주는데, cal과 함께 원하는 월과 연도를 숫자를 입력하면 원하는 달 의 달력을 볼수 있다.
-j를 입력하면 율리우스달력을 볼 수 있다.

 
clock

- CMOS 설정 시간을 출력하거나 변경할 수 있다.

 


date

- 현재의 시간과 날짜를 출력한다.

 


df (disk free)


- 하드의 전체 용량 및 남은 용량 볼 때 사용한다.

옵션

-h(human) 사람이 쉽게 알 수 있는 형태인 바이트 단위로 출력한다.

 


du (disk usage)

-각각의 디렉토리와 파일들이 차지하고 있는 디스크 용량을 출력한다.

예) temp2 디렉토리가 차지하는 용량을 보려고 할 때, du temp2

- 특정폴더내 용량확인
예) du -h --max-depth=1 <path>

 


free (free memory)

- 현재 사용중인 시스템의 메모리 상태를 출력한다.

옵션

-m(Megabyte) 메모리의 양을 메가 바이트 단위로 출력한다.
-k (Kilobyte) 메모리의 양을 킬로 바이트 단위로 출력한다.

 


hostname

- 자신의 컴퓨터에 부여되어 있는 이름을 출력한다.

 
lsdev (list devices)

- 현재 시스템에 연결되어 있는 하드웨어에 관한 입출력 정보와 IRQ 값 등을 출력한다.

 

 


quota

- 각각의 사용자들이 사용할 수 있는 디스크의 용량을 나타낸다.

 


rdev (root device)

- 내부에 ramsize, swapdev, vidmode, rootflag의 프로그램으로 구성되어 있다.

 


uname (unix name)

- 사용중인 운영체제에 대한 정보를 출력한다.

옵션

- a(all) 현재 사용중인 운영체제와 커널의 컴파일 정보 등을 출력한다.

 


su

- 현 상태에서 다른 사용자로 다시 login한다. 만약 사용자 id를 입력하지 않으면, root로 login 된다.

 
shutdown

- 시스템을 종료할 때일반적으로 사용되는 명령어이다.

옵션

- t n 옵션 t 뒤에 n 초만큼 후에 경고 메시지 후에 kill 신호를 보낸다.

- h (halt) 완전히 닫는다.

- r (reboot) 종료후 재부팅을 한다.

- f (fast) 빠른 리부팅을 한다 .(파일 시스템 검사 생략 )

- c (cancel) 예약 되어 있는 종료 취소

- k (kidding) 모든 것이 정상이지만, 종료 시간이 되면모든 프로그램이 멈춘다.


reboot

- 재 부팅 시키는 것을 말한다.

옵션

- q 현재의 실행프로그램을 종료하지 않고 부팅만 다시 시킨다.


kill

- 프로세스 종료하기. 현재 실행중인 프로세스를 강제로 종료시키는데 사용

kill signal ID PID
kill -l

옵션

-2 : 실행 중인 프로세스에게 인터럽트 키 신호를 보냄

-9 : 가장 확실하게 실행 중인 프로세스를 종료시킴


tty

- 현재 사용하고 있는 단말기 장치의 경로명과 파일명을 보여줌

 

whereis

- 실제 프로그램이 어떤 디렉토리에 존재하는지 관련된 모든 경로명을 보여줌

예) whereis vi

 


fsck (file system check)

- 파일 시스템의 상태가 올바른지 검사하고, 잘못된 것이 있으면 바로 잡는다.

옵션

- a : 검사도중 발견된 에러를 자동적으로복구한다.

- r : 검사도중 에러가 발견되면 복구 여부를 물어본다.(사실 사용되지 않는다.)

- s : 순차적인 방법으로 검색한다.

- V : 검색중 각종 정보를 자세 하게 보여준다.

- N : 실제로 검사 작업을 하지는 않도록한다.

 

 

 

 
사용자 관리

 

chgrp

- 파일의 그룹 소유권을 바꾼다.

옵션

-c : 실제로 소유자가 바뀐 파일에 대해서 자세하게 설명

-f : 소유권을 바꿀 수 없어도 에러 메시지를 나타내지 않는다.

-v : 소유권의 이전에 대해서 자세히 기술한다.

-R : 디렉토리와 그 내용 파일들의 소유권을 재귀적으로 모두 바꾼다.

* 파일의 소유자나 슈퍼 유저만이 파일의 그룹 소유권을 바꿀 권한이 있는데,
chgrp + 옵션 바꾸고자 하는 그룹의 이름+ 디렉토리+ 파일 이름

예) /root그룹에 있는 ak이라는 파일을 white라는 그룹으로 소유권을 이전하려면,
chgrp white /root/ak

 

 
chmod

- 파일의 모드를 바꿀 때 사용하는데 파일의 모드는 권한(permission)을 제어한다.

옵션

-c : 실제로 파일의 권한이 바뀐 파일만 자세히 기술한다.

-f : 파일의 권한이 바뀔 수 없어도 에러 메시지를 출력하지 않는다.

-v : 변경된 권한에 대해서 자세히 기술한다.

-R : 디렉토리와 파일들의 권한을 재귀적으로 모두 바꾼다.

* r(read 읽기), w(write 쓰기), x(execute 실행)의 3가지 권한이 있는데, 각 단위당 2진법으로 표현된다. 따라서 읽기, 쓰기, 실행 등의 모든 권한을 주려면, 4+2+1, 따라서 합계 7이된다.
만약 모든 그룹의 권한을 다 허용해 줄 경우, 777이 된다.

예)
우선 권한을 보기위해, ls -al을 쳐보면 wow 라는 파일이 rw-r--r--로 되어있다는 것을 알 수 있다.
여기서, 첫 번째 3자리는 소유자, 두 번째 3자리는 그룹, 마지막 3자리는 타인에게 허용할 것인지 여부를 보여주는 것이다.
여기서의 소유자는 읽고 쓰기가, 그룹과 타인은 읽기만 허용이 되어있다.
모두가 사용할 수 있게 하려면 777이 된다.

chmod 777 wow


chown

- 파일의 소유권을 다른 사람에게 변경할 때 사용한다.

옵션

-c : 실제로 파일의 소유권이 바뀐 파일만 자세히 기술한다.

-f : 파일의 소유권이 바뀔 수 없어도 에러 메시지를 출력하지 않는다.

-v : 변경된 소유권에 대해서 자세히 기술한다.

-R : 디렉토리와 파일들의 소유권을 재귀적으로 모두 바꾼다.

파일의 소유권을 다른 사람에게로 바꾸는 것은 슈퍼 유저만이 할 수 있다.

예)
root/에 있는 wow라는 파일을 test라는 그룹으로 소유권을 바꿀 때
chown test /root/wow
ll을 쳐서 소유권이 바뀌었는지 확인해 보면 된다.

 

 

사용자 정보 명령어

 

finger

- 시스템을 사용하고 있는 사용자들의 이름과 주소등 신상 명세를 출력한다.
변경할 때는 chfn(change finger name)을 사용하면 된다.

 


id (identification)

- 사용자의 개인 id 와 그룹의 id 번호를 출력한다.

 


logname

- 로그인해 있는 사용자의 이름을 출력한다.

 


uptime

- 현재의 시간과 로그인 시간의 총합, 평균적인 시스템 사용 현황을 출력한다.

 


w (who is logged on and what they are doing)

- 로그인 되어있는 사람과 현재 실행중인 작업의 종류를 출력한다.

 


who

- 시스템을 사용하고 있는 사용자들의 이름과 터미널 번호, 로그인 시간 출력한다.

 


whoami

- 가상 콘솔 기능을 사용하거나 여러명의 사용자로 동시에 로그인해 있을 때, 현재 시스템을 사용하고 있는 자신이 누구인가를 출력한다.

 


adduser

- 사용자를 추가하기 위한 명령어인데 명령어 뒤에 원하는 사용자 명을 써 넣는다.

 

 출처 : http://blog.naver.com/giddb83/124038249

'Server > Linux계열' 카테고리의 다른 글

linux jdk 설치  (0) 2011.06.30
[리눅스] tar명령어 실행시 오류  (0) 2011.06.27
리눅스 캐릭터셋 설정  (0) 2011.06.24
CentOS : 방화벽 설정(iptables)  (0) 2011.06.24
[SERVER] rsync로 백업하기  (0) 2010.10.13