'linux 리눅스 명령어'에 해당되는 글 1

  1. 2009.12.21 리눅스 명령어 (H~N)
프로그래밍.../Linux | Posted by 고기킬러 2009. 12. 21. 09:36

리눅스 명령어 (H~N)

▄▄

halt

: halt는 아무런 경고없이 시스템을 즉시 종료시킨다.

 

문법

  halt

 

설명

시스템이 halt되면 'System halted' 메시지가 나오고, 시스템은 정지한다. halt는 옵션을 가지지 않는다.

 

명령이 내려지면 일련의 마무리 작업을 수행한 후에 정지한다. 시스템 종료 기록도 /var/adm/wtmp 로그 파일에 추가된다.

 

▄▄

head

: 파일의 처음 부분을 출력한다.

 

문법

  head [ -행수 ] [ 파일이름() ]

 

옵션

-행수: 출력될 행수를 지정한다.

 

설명

옵션으로 주는 행 숫자는 화면에 표시될 행의 개수를 의미한다. 만일 그것이 주어지지 않는다면 기본적으로 10개의 행을 출력한다.

 

사용예

$ cat letter

원일이에게.

 ■ 안뇽? :-)

 ■ 자네가 돈을 빌려간지도 1년이 넘었네.

 ■ 난 포기 안하지.

 ■ 하루속히 갚기를 바라네.

 ■ 독촉해서 미안하군

 ■ 건강하길...

  1997년 모월 모일 친구가.

 

문서의 앞 머리 세 줄만 확인하기 위해서 다음과 같이 할 수 있다.

$ head -3 letter

원일이에게.

 ■ 안뇽? :-)

 ■ 자네가 돈을 빌려간지도 1년이 넘었네.

 

▄▄▄▄▄

hostname

: 현재 설정되어 있는 호스트의 이름을 표시하거나 변경한다.

 

문법

  hostname [ 호스트이름 ]

 

설명

이것은 인수없이 사용된다면 현재 설정되어 있는 호스트 이름을 보여준다. 리눅스는 기본적으로 프롬프트에서 호스트의 이름을 보여줄 것이다. 혹은 사용자가 프롬프트에 호스트 이름이 나타나도록 할 수도 있다. 인수로서 새로운 호스트 이름을 지정한다면 새로 지정된 이름으로 호스트 이름을 바꾼다. 하지만 이런 작업은 수퍼 유저만이 할 수 있다.

 

사용예

 $ hostname

  Blade

 

id

: 시스템에 등록된 ID를 확인한다.

 

문법

id [ -gGnru ]

 

옵션

-g: 그룹 ID만을 출력한다.

-G: 추가 그룹들만을 출력한다.

-n: ID 번호대신 이름으로 출력한다.

-r: 실제 사용자나 그룹 ID를 출력한다. 다른 옵션과 함께 사용한다.

-u: 사용자의 ID만을 출력한다.

 

사용예

  $ id -un

 

▄▄

jobs

: 현 터미널에서 수행된 작업들을 간략하게 나열해준다.

 

문법

jobs [ -I ]

 

옵션

-I: 프로세서 번호를 추가해서 보여준다.

 

설명

jobs 명령에 대한 것은 fg bg명령에 대한 설명과 함께 3장을 참고하라.

여기서는 프로세서 번호와 jobs 볼 수 있는 작업 번호에 대해 생각해 보자.

 

작업번호는 한 사용자의 작업에 대한 것으로, 1번부터 순서대로 부여되지만 다른 터미널의 다른 사용자도 같은 번호의 job을 가지는 것이다. 또한 이 작업 번호는 중지되었거나 백그라운드에 있는 것들만이 작업 번호가 주어진다는 점이다. 프로세서 번호는 시스템 중심적이고, 작업 번호는 사용자 중심적인 번호인 것이다.


 

▄▄

join

: 두 개의 정렬된 파일을 하나로 수평 병합한다.

문법

join [ -aejotv ] [파일명]1  [파일명]2

 

옵션

-an : 첫 번째나 두 번째 파일로부터 일치하지 않는것도 처리, n 1이나 2이다.

-e 문자열 : 비어 있는 필드는 문자열로 대체한다.

-j n m : 파일n m번째 필드를 두 파일에 병합한다.

-o 파일 : 명시된 파일의 형태에 따라서 출력을 만든다.

-t 문자 : 필드 구분 문자를 정한다. 기본적으로 공백, , 기행 문자다.

-v 파일 : 파일1이나 파일2의 짝이 연결되지 않는 행을 지정된 파일로 출력한다.

 

설명

두 파일의 내용을 하나의 파일로 병합하는데, cat을 사용하는 것처럼 한 파일의 뒤에 다른 하나를 추가하는 것이 아니라 각 행끼리 붙이기를 한다.

이 명령을 사용하면 두 개의 다른 데이터를 가진 목록을 합칠 수 있다.

 

 

 

▄▄

kill

: 현재 수행중인 프로세서에게 시그널을 보낸다. 보통 kill 명령은 프로세서를 죽이는 데에 사용된다. 그래서 이 유틸리티의 이름도 kill이 되었다.

 

문법

kill [-signalID] PID

kill -l

 

옵션

-signalID : 프로세서에게 보낼 시그널을 지정한다. 시그널은 번호로 지정될 수도 있고 시그널 이름으로 지정될 수도 있다.

-l : 시그널 종류를 나열한다. 시그널의 종류는 시그널 번호 순서대로 이름으로 나열한다.

 

설명

시그널의 종류를 지정하지 않으면 프로세서를 종료시키는 의미로 디폴트 시그널 ID 15번을 보내게 된다.

 

예를 들면 당신이 시스템을 사용을 마치고 로그아웃할 때는 시그널 ID 1번의 HUP(hang up) 시그널이 시스템으로 전달되며, 이 시그널은 당신의 셸 상태에서 실행중인 모든 프로세서를 종료시키고(앞에서 언급한 nohup에 의한 프로세서는 제외) 로그아웃하게 한다.

 

사용예

 

$ kill -l <return>

1) SIGHUP        2) SIGNT              3) SIGQUIT            4) SIGILL

5) SIGTRAP       6) SIGIOT              7) SIGBUS             8) SIGPPE

9) SIGKILL       10) SIGUSR1           11) SIGSEGV           12) SIGUSR2

13) SIGPIPE      14) SIGALRM          15) SIGTERM          17) SIGCHLD

18) SIGCONT    19) SIGSTOP           20) SIGTSTP           21) SIGTTIN

22) SIGTTOL    23) SIGURG            24) SIGXCPU           25) SIGXFSZ

26) SIGVTALRM 27) SIGPROF           28) SIGWINCH         29) SIGIO

30) SIGPWR

 

$ kill -9 16034

$ kill -kill 16034 ,,두 명령은 같은 의미이다.

$ kill -9 0

 

이것은 모든 프로세서를 종료시킨다.

 

 

▄▄

less

: more와 유사하게 페이지 단위로 문서를 보여준다. 이것은 문서의 앞으로도 이동하는 것이 가능하다.

 

문법

less [ -?acCeEinqQsx ] 파일명()

 

옵션

-? : less에서 사용할 수 있는 명령들에 대한 도움말을 제공한다. 이 옵션이 사용되면 다른 인수는 무시되고, 도움말 화면을 보여준다.

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

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

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

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

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

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

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

-q : 특정 에러가 발생하지 않으면 아무 소리도 내지 않고 조용히 동작한다.

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

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

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

 

설명

less는 많은 옵션과 키 사용법이 있다. 온라인 레퍼런스를 참조하기 바란다.

 

사용예

$ less lovemessage

 

ln

: 두 개의 파일 사이에 링크를 만들어, 하나의 파일을 두 개 이상의 이름으로 접근이 가능하도록 한다.

 

문법

ln [ -s ] 파일명1 파일명2

ln 파일명들 디렉토리

 

옵션

-s : 하드 링크 대신 심볼릭 링크를 만든다.

 

설명

유닉스 파일 시스템의 링크 개념의 자세한 내용에 대해서는 다른 자료를 참고하라. 파일을 복사하는 대신 링크를 사용하면 디스크 공간을 매우 절약할 수 있다.

 

위에서 보면 첫 번째 형식에서 파일명2는 원하는 링크 파일의 경로와 이름이 된다. 이것은 일종의 alias(별명)라고 생각할 수 있다. 두 번째 형식에서 파일명들은 링크되기 원하는 파일들의 이름이고, 디렉토리는 링크된 파일이 지정되기 원하는 위치이다. 링크에 익숙해지면 ln명령은 cp 명령을 사용하는 것처럼 간단하게 사용할 수 있을 것이다.

 

사용예

$ ln project theplan  ,,두 개의 이름은 같은 문서를 의미한다.

 

 

 

▄▄▄▄▄

longname

: 이것은 현재 시스템에서 당신이 사용하는 로그온 이름을 보여준다.

 

문법

longname

 

설명

longname옵션을 가지지 않는다. 이름은 /etc/utmp 파일을 알아낸다.

 

사용예

$ longname

 

 

 

ls

: 파일 시스템 상의 파일을 목록을 보여준다.

 

문법

ls [ -aCxdlstucriFR ][ 파일명() ]

 

옵션

-a : 도트로 시작되는 이름을 가진 파일명도 전부 보여준다.

-C : 가로 순서로 나열하여 출력한다.

-x : 세로 순서로 나열하여 출력한다.

-d : 현재 디렉토리에 대한 정보를 출력한다.

-l : 각 파일들에 대한 소유자, 권한, 갱신일 등의 자세한 정보를 출력한다.

-s : 파일이 얼마나 많은 디스크 블록을 차지하고 있는가를 보여준다.

-t : 파일 갱신일 순서대로 정렬한다.

-u : 엑세스(access)한 날짜 순서대로 정렬한다.

-c : inode가 마지막 바뀐 시간 순서대로 정렬한다.

-r : 정렬된 순서의 역으로 출력한다.

-i : 파일의 inode 번호를 보여준다.

-F : 파일의 특성을 쉽게 알 수 있는 문자를 나타낸다. +는 실행 가능한 파일을, /는 디렉토리 이름을 의미한다. @는 심볼릭 링크를 나타내고, =는 소켓(socket)을 나타낸다. 하지만 여러분의 리눅스는 기본적으로 이러한 특성을 보여줄 것이다.

-R : 현 디렉토리의 내용은 물론이고 서브 디렉토리의 내용까지 전부 보여준다.

 

설명

-l 옵션을 사용하여 볼 수 있는 정보 중 권한(permission) 정보 앞에 있는 파일 형태에 대한 기호는 다음과 같다.

 

- 일반 파일

d 디렉토리

b 디스크의 같은 블록 형태의 장치

c 터미널과 같은 문자 형태의 장치

p 이름붙여진 파이프(pipe)

s 세마포어(semaphore)

m 공유메모리(Shared memory)

 

사용예

$ ls -la /root

 

 

 

▄▄

mail

: 전자 우편을 사용하기 위해 mail이라는 명령을 사용한다. System V 같은 계열의 유닉스에서는 mailx라고 하기도 한다. BSD에서는 mail이라고 하며, 당연히 BSD 계열인 리눅스에서도 그렇게 부른다.

 

문법

mail [ -Hf ][ 사용자ID ]

 

옵션

-f : 편지가 수신된 파일을 지정하며, -f 옵션 뒤에 파일 이름을 지정한다.

 

설명

사용자 ID를 명시되지 않고, 인수없이 mail을 실행하면 수신된 편지를 읽을 수 있다. 편지는 mail 디렉토례 사용자ID 이름으로 만들어진 파일에 저장된다.

 

 

 

▄▄

man

: 사용하고자 하는 유닉스 유틸리티에 대한 매뉴얼(manual)을 검색해서 보여준다.

 

문법

man [ ] 단어

man -k 키워드

 

옵션

-k : 인수로 주어진 단어를 키워드로 사용하여, 해당 키워드가 발견되는 모든 매뉴얼의 내용을 검색하여 보여준다.

 

설명

셸을 사용할 때 어떤 명령의 사용법이 기억나지 않는 경우가 있다. 혹은 매번 사용하던 명령이라도 특수한 옵션이 필요할 때 그 기호나 사용법을 정확히 확인해야 하는 경우가 많이 있다. 물론 참고 서적을 보면 되겠지만 터미널 상에서 필요한 도움말을 언제라도 제공받을 수 있다. 시스템에 내장된 매뉴얼은 빠르게 볼 수 있을 뿐만 아니라 그 내용도 완벽한 것이어서 옵션의 종류 같은 것은 빠진 것이 없다. 만일 온라인 레퍼런스를 모두 종이로 출력한다면 그 분량은 엄청날 것이 틀림없다.

 

위에서 보인 첫 번째 형식은 매뉴얼의 장 번호를 이름과 함께 명시해서 검색할 수도 있다. 하지만 보통은 그것을 생략하고, 검색하고자 하는 제목만을 인수로 전달해서 사용한다. 그러면 자세한 내용을 볼 수 있을 것이다. 출력된 내용은 화살표 키를 사용해 위아래로 자유로이 스크롤할 수 있다.

 

사용예

$ man telnet

▄▄

mcd

: MSDOS 시스템으로 현재 사용하는 디렉토리 장소를 이동한다.

 

문법

  mcd dos디렉토리

 

설명

dos 디렉토리는 슬래쉬나 백 슬래쉬 모두 사용할 수 있으며, MSDOS에서 사용되는 백 슬래쉬(\)나 와일드 카드를 사용하려면 따옴표를 사용하여 셸이 번역하는 것을 미리 막아야 한다.

 

사용예

$ mcd a:/dos

 

 

 

▄▄▄

mcopy

: MSDOS 파일 시스템으로 혹은 DOS 파일 시스템의 파일을 복사한다.

 

문법

mcopy [ -tnvm ] 파일명1 파일명2

 

옵션

-t : 텍스트 파일 복사시 CR/LF 문자를 \n 하나로 바꾼다.

-n : 파일을 덮어쓰게 되는 경우에도 경고하지 않는다.

-v : 자세히 안내문을 보여준다.

-m : 파일 갱신 시간을 보존한다.

 

사용예

$ mcopy -t letter a:letter.txt

 

▄▄▄

mdel

: MSDOS 파일 시스템에서 파일을 제거한다.

 

문법

mdel [ -v ] 파일명

 

옵션

-v : 진행되는 상황을 자세히 보여준다.

 

사용예

$ mdel a:/letter.txt

 

▄▄

mdir

: MSDOS 디렉토리의 목록을 보여준다. MSDOS 프롬프트 상의 dir과 같은 동작을 한다.

 

문법

mdir [ -w ][파일명]

 

옵션

-w : 파일 크기나 생성 날짜는 제외하고 넓은 형식으로 보여준다.

 

사용예

$ mdir a:/dos

 

 

▄▄▄

mesg

: 다른 터미널의 사용자가 당신에게 write 명령 등으로 메시지를 보낼 수 있는가 아닌가를 결정한다.

 

문법

mesg [ y or n ]

 

옵션

당신의 터미널이 다른 사용자의 메시지를 받기 원한다면 y, 그렇지 않다면 n을 선택한다. 옵션을 선택하지 않으면 mesg는 현재 터미널의 메시지 수신 가능 여부를 확인하여 알려준다. 보통 기본적으로 터미널은 메시지를 수신할 수 있다.

 

사용예

$ mesg        ,,다른 이의 메시지를 수신할 수 있는지 알려준다.

$ mesg n      ,, 당신의 터미널이 메시지 수신을 거부하도록 한다.

 

 

▄▄▄

mkdir

: 디렉토리를 새로 만들기 위해 mkdir 명령을 사용한다.

 

문법

mkdir [ -m mode ][ -p ] directory

 

옵션

-m : 디렉토리를 만들 때 같이 사용하여 사용자 권한을 줄 수 있다.

-p : 만들 디렉토리의 상위 디렉토리까지 한꺼번에 만든다.

 

사용예

$ mkdir blade.seoul               ,,현재 디렉토리의 하위 디렉토리 작성

$ cd blade.seoul  

$ mkdir -p blade/books  

 

이것은 현재 디렉토리에서 하위 디렉토리  blade를 먼저 만든 후에 다시 그 하위 디렉토리로 books를 만든다.

 

 

▄▄▄

more

한 화면씩 츨력을 보여주는 유틸리티, 한 번에 전체적으로 볼 수 없는 파일은 이것을 사용하여 스크롤을 제어할 수 있다.

 

문법

more [ -ncdflspu ][ +줄번호 ][ 파일이름() ]

 

옵션

-n : 여기서 n은 숫자를 의미하여, 숫자는 출력 윈도우의 행수를 지정한다.

-c : 위에서부터 한 행씩 지운 후 한 행씩 출력한다. 보통은 화면 전체를 지운 후 각 행을 출력하기 시작한다. 특정한 터미널을 위해 사용한다.

-d : 스페이스나 q 키를 누르라는 프롬프트를 출력한다.

-f : 화면의 행이 아닌 논리적인 행 수를 계산한다. 보통은 긴 칼럼의 행은 화면에서 행바꿈을 하여 새로운 행으로 계산된다. -f 옵션을 사용하면 이러한 행은 계산하지 않는다.

-s : 여러 개의 빈 공백행은 하나로 취급한다.

-p : 스크롤하지 않는다. 대신 화면을 지우고 출력한다.

-u : 밑줄 차기를 금지한다.

 

설명

more BSD에 있었으나 지금은 System V 등에도 있으며 리눅스는 물론이고 대부분의 유닉스가 기본적으로 가지고 있는 유틸리티이다. 기본적으로 more는 한 번에 한 페이지 단위로 파일의 내용을 출력한다.

 

한 화면만큼 내용을 출력한 후 화면 하단에 ‘-More-' 라는 메시지를 출력하고는 잠시 출력을 중단한다. 다시 다음 페이지로 진행하기를 원한다면 스페이스바를 누른다. 또는 중단하기를 원한다면 q 키를 눌러라. 여러 개의 파일 내용을 연속적으로 보고자 한다면 원하는 여러 개의 파일 이름을 나열하면 된다.

 

more 명령은 몇 가지 명령을 인식할 수 있다. 스페이스 바를 누르는 것을 포함해서 다음과 같은 조작을 하는 것이 가능하다.

 

<return> : 한 줄만 스크롤된다.

D        : 반 페이지만 뒤로 이동한다.

<space>  : 한 페이지만 뒤로 이동한다.

B        : 한 페이지 앞으로 이동한다.

H        : 도움말을 제공한다.

V        : vi 에디터를 부른다. 에디터를 종료하면 원 위치로 돌아간다.

Q        : more 를 종료한다.

 

사용예

$ cat document.97 | more

 

기본적으로 more 명령은 첫 번째 줄 내용부터 출력한다. 하지만 원하는 부분부터 출력을 원한다면 다음과 같은 방법으로 실행할 수 있을 것이다. 다음은 13번째 행부터 출력을 시작한다.

$ more +13 loveletter.txt  

 

 

 

▄▄▄

mount 

: 다른 파티션의 디스크나 물리적으로 다른 기억 장치를 파일 시스템으로 연결한다.

 

문법

mount [ -vwrnta ] 장치명 디렉토리

 

옵션

-v : 마운트 작업을 수행하면서 자세한 정보를 출력한다.

-w : 마운트되는 파일 시스템을 읽기와 쓰기가 가능하도록 한다.

-r : 마운트되는 파일 시스템이 읽기 동작만 가능하도록 한다.

-n : 마운트 정보가 기록되는 /etc/rntab 파일에 정보를 기록하지 않는다.

-a : /etc/fstab 파일에 있는 모든 파일 시스템을 마운트하도록 한다.

-t 형태 : 마운트되는 파일 시스템의 형태를 지정한다.

 

설명

마운트 개념은 다른 PC용 오퍼레이팅 시스템에 비해 매우 우수한 개념이라 할 수 있다. 사용자는 다른 오퍼레이팅 시스템도 마운트하여 접근할 수 있다. -t 옵션을 사용하여 그 형식을 지정하면 대부분이 형식이 가능하다. -t 옵션으로 지정할 수 있는 형태는 msdos, hpfs, minix, ext, ext2, proc, nfs, umsdos, sysv 등으로 사용자가 원하는 모든 파일 시스템이 접근할 수 있을 것이다. 현재 시스템에 마운트된 장치의 정보는 /etc/mtab 파일에 저장되어 있다.

 

사용예

다음의 사용예는 다른 파티션 영역을 차지하고 있는 DOS 파일 시스템을 마운트하는 것이다. 사실, 이것은 필자가 리눅스를 설치하고 나서 실제로 했던 작업을 그대로 적어놓은 것이다. /dev/hda1 이 의미하는 바에 대해서는 본문을 참조하라(물론 이것은 독자가 설치한 방식에 따라서 다를 것이다.) 하드 디스크의 이 영역에는 Windows 95가 설치되어 있는데, 이것도 DOS 파일 시스템 형식으로 접근이 가능하며 파일의 읽기와 쓰기가 자유롭다.

$ mount -t msdos /dev/hda1 /mswin

 

▄▄

mv

: 파일의 위치를 이동하거나 파일의 이름을 바꾸어준다.

 

문법

mv [ -fi ] 파일명1 파일명2

mv [ -fi ] 파일명() 디렉토리명

 

옵션

-f : 같은 이름의 파일이 존재하고 쓰기 권한이 금지되어 있더라도 물어보지 않고 덮어쓰기를 해버린다. 이런 경우 이 옵션을 사용하지 않으면 사용자에게 다시 확인을 할 것이다.

-i : 파일을 덮어쓰기 전에 사용자에게 확인한다.

 

설명

기존에 있던 파일을 원치않게 잃어버리는 수가 있기 때문에 확실하지 않다면 -i 옵션을 사용하는 것을 권한다.

 

사용예

$ mv sisap.hong victor.dongki readme.txt  ../friend  

$ mv blade.Z ../kimtaihan.Z  

$ mv /home/blade  /home/friend  

 

만일 어떤 파일을 현재의 위치에서 다시 현재의 위치로 이동한다면 어떤일이 일어날까? 고민할 것 없다. 답은 당연히 ‘아무 일도 일어나지 않는다’ 이다. 이것은 어떤 의미를 가지지 못한다. 하지만 파일 이름을 바꾸면서 현재의 위치로 ‘이동’한다면, 그것은 파일의 ‘이름을 변경’ 하는 것과 같은 효과를 거둘 것이다.

$ mv sisap.doc LeeKiHong.doc  

 

 

▄▄▄▄

newgrp 

: 현재 그룹 ID를 변경한다.

 

문법

 newgrp 그룹명

 

설명

이 명령을 사용하여 다른 특성 그룹들의 파일을 다룰 수 있다. 그룹을 바꾸면 패스워드를 물어오는 프롬프트가 나타난다. 그러면 그에 해당하는 그룹 패스워드를 입력해야 한다.

 

No such group : No such file or directory

 

이것은 당신이 바꾸고자 하는 그룹 이름이 존재하지 않는다는 것이다. 그룹 이름을 잘못 지정하면 이러한 메시지를 볼 수 있을 것이다. 

 

'프로그래밍... > Linux' 카테고리의 다른 글

CentOS 리눅스 웹 서버 구축  (0) 2009.12.22
리눅스 명령어 (T~Z)  (0) 2009.12.21
리눅스 명령어 (O~S)  (0) 2009.12.21
리눅스 명령어 (A~G)  (0) 2009.12.21
리눅스,dos 명령어 비교  (0) 2009.12.21