본문 바로가기

운영체제/리눅스

LINUX 기본 명령어

출처는 http://user.chollian.net/~relay 이며 Hugh에 의해 편집,수정되었습니다.

▣ LINUX 기본 명령어


ls

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

문법     ls [ -aCxdlstucriFR ][ 파일명(들) ]
옵션     -a : 도트로 시작되는 이름을 가진 파일명도 전부 보여준다.

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

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

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

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

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

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

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

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

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

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

           -F : 파일의 특성을 쉽게 알 수 있는 문자를 나타낸다. +는 실행 가능한 파일을, /는

                   디렉토리 이름을 의미한다. @는 심볼릭 링크를 나타내고, =는 소켓(socket)을

                   나타낸다. 하지만 여러분의 리눅스는 기본적으로 이러한 특성을 보여줄 것이

                   다.

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



cd

: 현재 작업하는 디렉토리를 변경한다.

문법     cd [ 디렉토리 ]
           디렉토리 이름과 cd 명령 사이에 반드시 공백이 있어야 한다. 디렉토리 이름을 주지

           않고 수행하면 사용자의 홈 디렉토리로 이동한다. 자신이 이동하고자 하는 디렉토리

           는 자신에게 실행 권한(execution permission)이 있어야 한다.

예제     $ cd /home [Enter]'

           $ pwd [Enter]'

           /home



pwd

: 현재 작업하는 디렉토리를 알기 위해서 pwd 명령을 사용한다.

문법     pwd

           현 디렉토리(current directory)가 무엇인지 보여준다.
예제     $ pwd

            /home/blade



cat

: cat은 catenate(사슬로 잇다. 연결하다)에서 이름이 유래한다. 이것은 파일의 내용을 화면에 출력하는 데 사용되기도 하며 파일을 다른 곳에 순차적인 스트림으로 보내기 위해 사용된다.

문법     cat [ -benstuvETA ] [ 파일명(들) ]

옵션     -b : 공백 외의 글자가 있는 모든 행의 개수를 센다.

           -e : 제어 문자를 ^ 형태로 출력하면서, 각 행의 끝에 $를 추가한다. -vE와 같다.

           -n : 각 행을 출력하면서 행 번호를 함께 첨부한다.

           -s : 중복되고 겹치는 빈 행은 하나의 빈 행으로 처리한다.

           -r : 행바꿈 문자를 제외한 제어 문자를 ^ 형태로 출력한다. -vT와 같다.

           -u : 유닉스 호환성을 위해 추가된 옵션으로서 무시된다.

           -v : tab과 행바꿈 문자를 제외한 제어 문자를 ^ 형태로 출력한다.

           -E : 각 행마다 끝에 $ 문자를 출력한다.

           -T : 시로서 탭(tab) 문자를 출력한다.

           -A : -vET 옵션을 사용한 것과 같은 효과를 가진다.

예제    $ cat document.1

설명    document.1 파일을 화면으로 출력한다.



finger

: 시스템 상의 사용자들에 대한 정보를 보여준다.

문법     finger [ -slpm ][ 사용자 ]

옵션     -s : 사용자의 로그온 이름, 실제이름, 터미널 이름, 로그온 시간 등등을 보인다.

           -I : -s 옵션 정보에 몇 가지를 추가하여, 여러 줄에 걸쳐서 보여준다.

           -p : -l 옵션 정보에서 .plan과 .project 파일을 보이지 않는다.

설명    인수로 아무 것도 주어지지 않으면, finger는 현재 시스템에 로그인되어 있는 사용자들을 보

          여준다. 옵션이 주어지지 않으면, 기본적으로 -l 옵션을 사용한 것으로 간주된다.

예제    $ finger

          Login Name Tty Idle Login Time Office Office Phone

          blade kimtaihan 2 1 Oct 20 11:31

          root root 1 Oct 20 11:28



mkdir

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

문법     mkdir [ -m mode ][ -p ] directory

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

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

예제    $ mkdir blade.seoul [Enter]' ,,현재 디렉토리의 하위 디렉토리 작성

          $ cd blade.seoul [Enter]'

          $ mkdir -p blade/books [Enter]'

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

          books를 만든다.



rm

: 파일을 지우는 명령이다. 이것은 remove의 의미를 가진 이름임을 기억하라.

문법     rm [ -firv ] 파일명

옵션     -f : 보통 지울 수 있는 권한이 없으면 안되지만, 이 옵션을 사용하면 성가신 작업을 하지

                  않고서도 강제로 파일을 지울 수 있다.

           -i : 파일을 지울 것인가 다시 물어본다. 지우기를 원한다면 y를 누른다.

           -r : 서브 디렉토리의 파일도 모두 재귀적으로 지운다.

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

예제    $ rm blade.Z [Enter]'

          $ rm report.txt tempfile object.mainroutine hello.java[Enter]'

          $ rm -r blade ,, blade와 하위 디렉토리 파일 모두를 제거



rmdir

: 원하는 디렉토리를 제거한다.

문법     rmdir [ -p ] 디렉토리

옵션     -p : mkdir의 -p 옵션의 반대 동작으로 하위 디렉토리와 그 상위 디렉토리 모두를 제거할

                   수 있다. 이때 모든 디렉토리는 비워져 있어야 한다. 수행 후 결과가 어떻게 되었는지

                   를 보여준다.



who

: 현재의 시스템에 접속한 사용자의 이름이나 로그온 정보를 보여준다.

문법    who [ -uTHqs ] [로그온 정보파일 ]

          whoamI

옵션     -u : 현재 시스템에 누가 로그온되어 있는지 보여준다.

           -T : 사용자의 터미널이 메시지를 보낼 수 있는지를 알려준다. +기호는 메시지를 쓸 수 있

                   고, -는 그렇지 않음을 보여준다.

           -H : 헤더 라인을 프린트한다.

           -q : 사용자 이름과 카운트가 구분된 목록을 보여줌, 다른 옵션은 무시된다.

           -s : 호환을 위해 포함된 옵션으로 무시된다.

예제    $ whoamI [Enter]'

          이런 명령도 가끔은 필요할 것이다. 가령 친구의 계정으로 로그인했는데 그것을 잊어버렸을

          경우라든지 아무도 없는 학교 실습실에 켜진 채 놓여진 터미널을 발견했을 때 누가 사용하

          다가 자리를 비웠는지 알고 싶을 때 등이다.



more

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

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

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

           -c : 위에서부터 한 행씩 지운 후 한 행씩 출력한다. 보통은 화면 전체를 지운 후 각 행을

                   출력하기 시작한다. 특정한 터미널을 위해 사용한다.

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

           -f  : 화면의 행이 아닌 논리적인 행 수를 계산한다. 보통은 긴 칼럼의 행은 화면에서 행바

                   꿈을 하여 새로운 행으로 계산된다. -f 옵션을 사용하면 이러한 행은 계산하지 않는다.

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

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

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

예제    $ cat document.97 | more

          기본적으로 more 명령은 첫 번째 줄 내용부터 출력한다. 하지만 원하는 부분부터 출력을 원

          한다면 다음과 같은 방법으로 실행할 수 있을 것이다. 다음은 13번째 행부터 출력을 시작한다.

          $ more +13 loveletter.txt [Enter]'



clear

: clear 명령은 도스의 cls와 마찬가지로 화면을 지우는 동작을 한다.



hostname

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

문법     hostname [ 호스트이름 ]

설명     이것은 인수없이 사용된다면 현재 설정되어 있는 호스트 이름을 보여준다. 리눅스는 기본

           적으로 프롬프트에서 호스트의 이름을 보여줄 것이다. 혹은 사용자가 프롬프트에 호스트

           이름이 나타나도록 할 수도 있다. 인수로서 새로운 호스트 이름을 지정한다면 새로 지정된

           이름으로 호스트 이름을 바꾼다. 하지만 이런 작업은 수퍼 유저만이 할 수 있다.

예제     $ hostname

           Blade



cp

: 파일을 현재의 위치나 다른 디렉토리로 복사(copy)한다.

문법     cp [ -abdfilPprsuvxR ] 파일명1 파일명2

           cp [ -abdfilPprsuvxR ] 파일명(들) 디렉토리

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

           -b : 복사할 때 덮어쓰게 되는 파일은 백업을 만든다.

           -d : 심볼릭 링크는 심볼릭 링크로 복사한다. 그리고 원본 파일과의 하드 링크 관계를 유

                   지한다.

           -f : 복사 위치에 존재하는 파일을 제거하고 복사한다.

           -i : 복사시 같은 이름의 파일이 존재한다면 덮어쓸 것인가 확인한다.

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

           -P : 원본 파일의 소유자, 그룹, 권한, 시간 기록을 그대로 복사한다.

           -r : 파일과 하위 디렉토리에 포함된 파일 모두를 재귀적으로 복사한다.

           -s : 디렉토리가 아닌 파일의 심볼릭 링크를 만든다. 소스 파일의 이름은 전체 경로 이름

                   으로 한다. 목적지 파일 이름은 전체 경로를 주지 않아도 현재 디렉토리로 간주되므

                   로 상관없다.

           -u : 파일의 정보를 갱신한다.

           -x : 다른 파일 시스템인 하위 디렉토리는 무시한다.

           -R : 디렉토리를 재귀적(recursive)으로 복사한다.

설명    만일 파일명2가 이미 존재하는 파일의 이름이라면 기존에 있던 파일은 사라지고 새로운 복

          사본 파일로 바뀐다. 이것이 원하지 않는 결과라면 -i 옵션을 주어서 확인 작업을 거칠 수 있

          다. -i 옵션은 파일명2가 이미 존재하는 이름이라면 그대로 복사할 것인지 아닌지를 선택할

          수 있게 물어온다.

예제    $ cp -i blade.Z temp.Z

          $ cp -r * /somewhere

          당연히 -r 옵션은 파일명2가 디렉토리 이름일 때만 사용이 가능하다.



mv

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

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

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

옵션     -f : 같은 이름의 파일이 존재하고 쓰기 권한이 금지되어 있더라도 물어보지 않고 덮어쓰기

                  를 해버린다. 이런 경우 이 옵션을 사용하지 않으면 사용자에게 다시 확인을 할 것이다.

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


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

          하는 것을 권한다.

예제    $ mv sisap.hong victor.dongki readme.txt ../friend [Enter]'

          $ mv blade.Z ../kimtaihan.Z [Enter]'

          $ mv /home/blade /home/friend [Enter]'

          $ mv sisap.doc LeeKiHong.doc [Enter]'



date

: 시스템은 현재의 날짜와 시간을 유지하고 있다. date 명령을 사용하면 그러한 시간을 확인할 수 있다. 또한 날짜와 시간 정보를 변경할 수 있다. 물론 시스템의 날짜와 시간은 슈퍼 유저만이 변경할 수 있다.

예제    $ date [Enter]'

          The Oct 1 15:57:23 KST 1996



df

: 디스크의 여유 공간을 검사하여 보고한다.

문법     df [ -aikpvtx ] 파일시스템

옵션     -a : 0 블록을 가진 파일도 보고한다. 기본적으로는 무시한다.

           -i : 블록 사용 대신 incode 사용 정보를 보고한다.

           -k : 블록의 크기를 1K바이트로 계산한다.

           -p : POSIX 형태의 출력을 한다.

           -v : System V의 df와의 호환을 위한 옵션이다. 무시된다.

           -t 형태 : 특정 형태의 파일 시스템으로 검사를 제한한다.

           -x 형태 : 특정 형태의 파일 시스템 이외의 것으로 검사를 제한한다.

설명    이것은 바이트 크기를 사용하는 대신 블록 단위로 보고한다는 점을 유의해야 한다. 기본적

          으로 512바이트 크기로 한 블록을 다룬다.



env

: 현재의 환경에 영향을 주지 않고 원하는 환경을 만들어 명령을 실행한다. 또는 현재의 환경을 보고한다.

문법     env [ - ][-i ][ -u 이름 ][ 이름=값 ][명령]

옵션     - : 뒤에 오는 이름=값 목록으로 환경을 제한한다.

           -i : 현재의 환경을 무시하고 빈 환경 상태로 시작한다.

           -u 이름 : 현재의 환경에 그 이름의 변수가 있다면 제거한다.

설명     '이름=값'의 형식으로 특정 환경 변수를 지정해서 명령을 실행한다. 이러한 값을 필요한 대

           로 여러 개 나열하면 되고, 현재의 환경은 변경하지 않으므로 명령의 수행이 끝나면 환경의

           상태는 이전과 다름없게 된다.

예제     $ env HOME=/usr/victor tsh

           홈 디렉토리 변수를 지정하여 셸을 실행한다.

           $ env ,,현재 설정되어 있는 환경 변수들을 보여준다.



find

: 원하는 특정 파일을 디렉토리를 탐색하여 찾는다. find는 매우 강력한 도구로 특정 디렉토리들을 순회하면서 지정된 조건에 만족하는 파일을 찾는다. 파일의 조건은 이름이나 크기, 날짜 등 다양하게 지정할 수 있다.

문법     find [ 디렉토리 ] 탐색 조건

탐색 조건

           -name 파일명 : 찾고자 하는 파일의 이름을 정한다. 와일드 카드도 가능하다.

           -perm 모드 : 파일 권한(permission)이 일치되는 것을 찾는다. 원하는 권한은 ls로 볼 수

                               있는 형태와 같이 지정한다.

           -type ? : 형태가 같은 파일을 찾는다. 물음표(?) 부분에 디렉토리는 d, 파이프는 p, 심볼

                          릭 링크는 l, 소켓은 s, 블록 파일은 b, 일반 파일은 f 등의 기호를 사용한다.

           -links ? : 특정 개수의 링크를 가진 파일을 찾는다. 물음표 부분에 링크의 숫자를 표기한다.

           -size ? : 파일의 크기가 일치하는 것을 탐색한다. 파일 크기는 블록단위로 물음표 부분에

                          지정한다. 한 블록은 512바이트로 내정되어 있지만 블록 숫자 뒤에 단위로 k자

                          를 붙이면 1키로바이트 크기의 블록 숫자로 간주된다.

           -user 사용자 : 파일 사용자의 ID에 따라서 검색한다. 로그인 이름이나 번호 모두가 가능하다.

           -atime ? : 최근 며칠내에 엑세스한 파일을 검색한다. 날짜수는 ?에 명시한다.

           -exec 명령 : 원하는 검색 조건에 맞는 파일을 찾으면 명시된 명령을 실행한다. 명령의 끝

                               은 \;을 사용하여 끝낸다. find가 검색해낸 파일의 이름을 인수로 사용하고

                               싶다면 그 위치에 {}를 사용한다.

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

예제    $ find /bin -name ro*

          $ find -user qwfwq -exec cat {} list\;



chmod

파일의 모드를 바꾼다. 파일의 모드는 권한(permission) 을 제어한다.

문법     chmod [ -cfvR ] 모드 파일명(들)

           chmod [ -cfvR ] 레벨 동작 권한 파일이름(들)

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

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

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

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

예제    $ chmod 666 broadboard ,,파일을 모두가 읽고 쓸 수 있도록 한다.

          $ chmod 746 broad ,,파일 권한을 -rwxr--rw-로 변경한다.

          $ chmod o+x,g-w broadboard



file

: 파일이 어떠한 형태의 파일인지 알아낸다.

문법     file [-czL ][ -fm 파일명 ] 파일명(들)

옵션     -c : 매직 파일의 파싱된 형태를 보여준다.

           -z : 압축되어 있는 파일의 형태를 검사한다.

           -L : 뒤따르는 심볼릭 링크를 야기시킨다.

           -f 파일명 : 검사한 파일에 대해 리포트를 만들 파일의 이름을 지정한다.

           -m 파일명 : 파일의 형태를 결정하는 데에 사용되는 매직 파일을 정한다.

설명    파일이 텍스트 문서인지 실행할 수 있는 파일인지 아니면 데이터 파일인지 등을 인식한다.

          에디터를 사용해서 보거나 수정될 수 있는 파일인가 알아 보는 데에 많이 사용된다.

예제    $ file -z /home/Book.Z



ln

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

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

           ln 파일명들 디렉토리

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

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



man

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

문법     man [ 장 ] 단어

           man -k 키워드

옵션     -k : 인수로 주어진 단어를 키워드로 사용하여, 해당 키워드가 발견되는 모든 매뉴얼의 내

                   용을 검색하여 보여준다.

설명    셸을 사용할 때 어떤 명령의 사용법이 기억나지 않는 경우가 있다. 혹은 매번 사용하던 명령

          이라도 특수한 옵션이 필요할 때 그 기호나 사용법을 정확히 확인해야 하는 경우가 많이 있

          다. 물론 참고 서적을 보면 되겠지만 터미널 상에서 필요한 도움말을 언제라도 제공받을 수

          있다. 시스템에 내장된 매뉴얼은 빠르게 볼 수 있을 뿐만 아니라 그 내용도 완벽한 것이어서

          옵션의 종류 같은 것은 빠진 것이 없다. 만일 온라인 레퍼런스를 모두 종이로 출력한다면 그

          분량은 엄청날 것이 틀림없다.

          위에서 보인 첫 번째 형식은 매뉴얼의 장 번호를 이름과 함께 명시해서 검색할 수도 있다.

          하지만 보통은 그것을 생략하고, 검색하고자 하는 제목만을 인수로 전달해서 사용한다. 그

          러면 자세한 내용을 볼 수 있을 것이다. 출력된 내용은 화살표 키를 사용해 위아래로 자유로

          이 스크롤할 수 있다.

예제    $ man telnet