강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

리눅스 기본명령어 사용방법 1편

작성자 정보

  • 웹관리자 작성
  • 작성일

컨텐츠 정보

본문

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




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


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

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






























기본 명령어 사용방법


리눅스 시스템을 다루기 위해서는 수많은 리눅스 명령어 가운데 기본적인 몇 기지 명령어에 대해서는 잘 알고 익숙하여야한다. 리눅스 시스템을 다루는데 있어 수천 개의 리눅스 명령어를 알려고 노력할 필요는 없다. 보다 많은 명령어를 알고 있으면 시스템을 관리하는데 있어서 편리할 수 있겠지만, 리눅스는 대부분의 모든 명령어에 대해서 맨 페이지(Man Page)를 통해서 명령어 도움말을 지원하고 있으므로, 시스템을 다루면서 사용법을 모르는 명령어가 있다면 언제든지 ‘man 명령어’를 실행해봄으로써 그 명령어에 대한 자세한 사용법과 옵션들을 알 수 있다. 맨 페이지는 리눅스 명령어의 사용법을 이해하는데 가장 좋은 참고서 역할을 해 줄 것이다.

SULinux에서의 모든  맨 페이지는 한글화를 완벽하게 지원하고 있지 못하나 기본 명령어에대해서는 한글화지원에 최선을 다했다. 그 외의 명령어들은 영어로 출력되어 영어 해석에 자신이 없는 사용자에게는 흠이 될 수 있다. 그러나 배포판중에서 가장 많은 한글 맨 페이지를 지원하고 있다.


이 장에서는 리눅스 명령어에 대한 특징을 알아보고, 리눅스 운영체제를 다루는데 있어서 기본적이면서 꼭 여러분들이 알고 있어야 할 몇가지의 기본 명령어에 대해서 다룹니다. 리눅스를 처음 접하는 대부분의 사용자를 위해서 명령어 쓰임새에 대한 예제를 제공하였으므로 예제를 그대로 따라 연습하여 기본적인 명령어에 대해서 확실히 이해하기 바란다.


1. 리눅스 명령어의 특징


리눅스 명령어의 엄격한 대, 소문자의 구분


리눅스의 명령어나 파일들은 대, 소문자를 엄격하게 구분한다. 즉 copy나 COPY는 리눅스에서는 완전 별개의 명령어로 인식한다는 점이다.


리눅스 명령어의 옵션


리눅스 명령어의 경우 단순히 명령어만을 실행하는 경우도 있지만, 대부분 옵션을 필요로 하는 경우가 많습니다. 이 경우 옵션은 명령어 뒤에 옵션을 사용한다.

예를 들면 명령어의 man 페이지 외 명령어의 도움말을 볼수 있는 방법은 명령어 뒤에 --help 옵션을 입력하여 실행하면 명령어의 사용방법과 명령어에 사용할 수 있는 더 많은 옵션에 대해 자세히 살펴볼 수 있다.

이와 같이 리눅스는 명령어 뒤에는 --help 외 여러 가지 옵션들이 각 명령어별 각가 다르게 부가하여 사용할 수 있다.


확장자가 없는 리눅스 실행 파일


리눅스 파일은 실행 파일과 일반 파일(시스템 파일, 로그 파일 등등)로 구분되는데, 리눅스의 실행 파일은 원도우 운영체계와는 달리 실행 확장자를 사용하지 않는다. 터미널에서 그 파일이 실행 파일인지 아닌지의 여부는 파일 뒤에 “*”표시가 붙어 있는지의 여부나 ls 명령어 실행시 파일의 색상 여부로 판단할 수 있다. 파일 뒤에 “*” 표시가 있거나 초록색의 색상의 파일드른 실행 파일이라 보면 된다. 다른 방법으로는 ls 명령어를 실행하였을 때 파일 퍼미션에 실행(x) 허가권이 있는지 여부에 따라서 알 수도 있다.


명령어 자동 입력(AutoList) 기능


리눅스는 명령어의 철자를 모두 입력하기 전에 자동으로 나머지 철자를 자동으로 입력해 주는 기능을 지원한다. mandrake라는 명령어 있다면 이 명령어의 철자를 모두 입력하기 전에 ma를 입력한 후 ‘Tab’ 키를 클릭하면 나머지 ndrake가 자동으로 입력된다.


2. 기본 명령어 익히기


2-1. 파일 및 디렉토리 목록 보기 - ls


파일 및 디렉토리 목록을 출력하는 명령어는 'ls'라는 명령어이다. ls 명령어에 각가의 옵션을 부여하여 연습 해보도록 하겠다.


형식 : ls [옵션]

옵  션

기      능

 -a, --all

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

 -l, --format=log

 파일 정보(파일 종류, 퍼미션, 사이즈)를 표시

 -s, --size 1k

 블록 단위로 파일 크기 표시

 -t, --sort=time

 최근의 파일부터 출력

 -c, --time

 파일 최근 변경 시간에 따라 정렬해서 출력

 --color

 파일 종류에 따라 색상 표시

 -R

 recursive, 현재 작업 디렉토리와 하위 디렉토리 모두 출력

 --help

 도움말


① ls -a

먼저 -a 옵션을 부여하게 되면 다음 화면과 같은 파일드리 출력된다.


ls 명령어 단독으로 실행했을 때에는 보이자 않았던 파일들이 -a 옵션을 지정하면 볼 수 있다. ‘-a' 옵션은 도트(.)로 숨겨진 파일을 포함한 모든 파일드을 볼 수 있도록 해주는 모든 것(all)이라는 의미의 옵션이다. 도트로 표시된 파일들은 대부분 사용자의 환경 설정 파일과 디렉토리 이름이다.

점(.)으로 된 파일과 디렉토리에 관하여

. : 점(.) 한 개는 현재 디렉토리를 의미한다.

.. : 점(..) 두 개는 현재 디렉토리의 상위 디렉토리를 의미한다.

.bash_history : 입력한 명령어 내용이 저장되는 파일이다. 프롬프트상에서 상향 방향키를 누르면 전에 입력한 명령어가 나타나는데, 이 파일에 기록된 명령어 가 도스의 doskey처럼 나오게 된다.

.bash_profile : 도스의 autoexec.bat 파일과 유사한 기능을 가진 파일이다.

.bashrc : 알리아스(alias) 정보를 가지고 있는 파일. 알리아스로 리눅스 기본 명령어를 도스 명령어로 바꾸어 쓸 수 있다.


디렉토리 경로 표시할 때의 주의할 사항

디렉토리 이동은 잠시 후에 다시 자세히 살펴보겠지만, 도스와 마찬가지로 cd 명령을 사용하지만 한 가지 틀린 점은 "cd /디렉토리명“이다. cd 명령어 다음에 한 칸을 띄우고 슬래시를 붙이고 디렉토리 명을 지정한다. 주의할 점은 역슬래시()가 아닌 점에 주목해야한다.


② ls -l

이번에는 디렉토리를 바이너리(/bin) 디렉토리로 이동해서 ‘-l'옵션을 적용해 보독록 한다. /bin 디렉토리에서 -l 옵션을 적용하여 연습해 봅니다. 앞서 소개한 -a 옵션과 함께 사용하였을 때 어떠한 결과가 나오는지 각자 테스트해 봅니다.


③ ls --color

ls 옵션에는 파일에 안시(ANSI) 색상을 지정하는 옵션이 있어서 파일과 디렉토리명이 컬러로 출력된다. --color 옵션을 이용하면 파일 목록 출력시  파일 종류에 따라서 색상이 지정되는데 SULinux에서는 ls 명령에 기본 옵션으로 들아가 있어서 파일과 디렉토리 목록을 컬러로 출력해 준다.


ls --color=yes  : 파일 색상을 지정하여 목록 출력

ls --color=no   : 파일 색상을 지정하지 않음


디렉토리 명만 출력하고자 할 때

수많은 파일과 디렉토리가 함께 존재할 경우 디렉토리만 ls 명령으로 나오게 하려면 다음과 같이 한다.

ls -la | grep "^d"


④ 와일드 문자 적용

ls 명령 실행할 때 와일드 문자를 사용하여 원하는 파일을 검색할 수 있다.


* : 모든 것을 의미하며, 앞에 문자가 있으면 그 문자에 해당되는 모든 것을 말한다.

? : 하나의 문자에 대해서 상징할 때 사용된다.


그러면 와일드 문자를 사용하여 ls 명령을 연습해 봅니다.

먼저 /bin 디렉토리에서 ls * 를 실행한다. 이것은 모든 파일을 출력하라는 의미이므로 ls명령을 단독으로 실행한 결과와 동일한다.


ls m* 을 실행해 보도록 한다. 그러면 m으로 시작되는 파일들이 출력된다.


이번에는 *m*을 각각 실행해 보비낟. *m은 m으로 끝나는 모든 파일을 보여 주고, *m*은 m이 중간에 있는 파일들을 모두 보여준다.


마지막으로 문자는 개수만큼 해당되는 무자를 가니 파일을 출력할 때 사용하므로 m 으로 시작되는 파일 가운데 5개의 문자로 된 파일을 출력해 보도록 한다.


.bashrc 파일을 꾸미기


새로운 루트 계정 로그인 때마다 ls 명령을 주었을 때 자동적으로 파일에 색상이 나타나도록 하려면 루트 디렉토리 내에 있는 .bashrc 파일을 편집하여 다음 라인을 추가한다.


alias ls='ls -NF --color=yes' 또는 alias ls='ls -NF --color=auto'


도스의 dir 명령어와 리눅스의 ls 명령어가 혼동되는 분들은 도스와 유사안 리눅스 명령어를 도스 명령어로 바꾸어 실행 할 수 있는 방법이 있다. 루트 디렉토리 내에 있는 .bashrc 파일에 다음과 같이 추가한다.


alias dir='ls -alNF --color = auto'

alias dir/w='ls --color=auto'

dir과 dir/w를 각각 쳐 보자. 필요하다면 다른 명령어도 이런 식으로 바꾸어 사용할 수 있다.


2-2. 파일 복사 - cp


파일을 복사는데 사용하는 명령어


형식 

cp [옵션] 원본 파일 대상파일

cp [옵션] 원본 디렉토리 대상디렉토리


옵션

기    능

-a

 원본 파일의 속성, 링크 정보들을 유지하면서 복사

-b

 복사할 대상을 덮어쓰거나 지울 때를 대비하여 백업 파일 만듦

-d

 심볼릭 파일 자체를 심볼릭 정보와 함께 복사할 때

-f

 복사할 파일이 존재할 때 삭제하고 복사

-i

 복사할 파일 존재하는 경우 복사할 것인지 물음

-l

 디렉토리가 아닌 경우 복사 대신 하드 링크로 만듦

-p

 원본 파일의 소유, 그룹, 권한, 허용 시간을 보존할 채로 복사

-r

 서브디렉토리 내에 있는 모든 파일까지 통째로 복사

-s

 디렉토리가 아닌 경우 복사 대신 심볼릭 링크로 만듦

-u

 대상 파일보다 원본 파일이 새로운 것일 때 복사

설명 : 도스에서는 복사할 원본 파일의 경로를 지정한 경우 복사될 디렉토리 위치가 생략되어도 파일이 복사되지만, 리눅스에서는 대상 파일이나 대상 디렉토리 경로를 지정하지 않게 되면 파일이 복사되지 않는다. 따라서 복사할 원본 파일에 대한 대상 파일이나 디렉토리가 반드시 지정되어야 한다는 점을 기억한다. 자, 이것이 사실인지 확인해 보기 위하여 다음과 같이 명령어를 실행해 봅니다.


/bin 디렉토리에 있는 date 파일을 복사될 대상 디렉토리를 지정하지 않으니깐 오류 메시지가 나왔습니다. 다음 명령어에서는 ~디렉토리를 지정해 주니 아무런 메시지가 나오지 않는군요. ls 명령으로 확인해 본 결과 ~ 디렉토리로 /bin/date 파일이 복사되었다. 하위 디렉토리내에 있는 모든 파일을 한 번에 복사하고자 하는 경우에는 다음과 같은 옵션을 지정한다.


먼저 /temp 라는 임시 디렉토리를 mkdir 명령으로 만듭니다. 그리고 나서 /etc/rc.d 디렉토리 이하의 파일과 하위 디렉토리를 모두 /temp 디렉토리로 복사되도록 ‘-r' 옵션을 지정하여 실행한다. 그리고 나서 /temp 디렉토리로 이동하여 ls 명령을 실행해 보면 /etc/rc.d 디렉토리에 있는 디렉토리와 파일들이 복사되었음을 확인 할 수 있고, initd.d 디렉토리에 들어가 ls 명령으로 하위 디렉토리내의 파일들도 복사되었음을 알 수 있다.


/var/log/message 파일 사이즈를 0바이트로 초기화시키는 방법은 cp명령을 사용하는 것이다. 다음과 같이 명령을 실행하면 파일 크기를 0으로 만듭니다.

cp -r /dev/null /var/log/message


2-3. 파일 삭제 - rm


불필요한 파일을 삭제하는 명령어


형식 : rm [옵션] 파일명


옵션

기    능

-d

 디렉토리 삭제

-f

 삭제할 것인가를 메시지 없이 그래로 강제 삭제

-i

 삭제 시 일일이 삭제할 것이니지 물음

-r

 하위 디렉토리를 포함한 파일들을 모두 삭제

-v

 삭제되기 전의 파일들을 보여줌

설명 : 파일을 삭제할 때는 rm 명령어를 사용한다. 주의할 점은 도스에서는 삭제한 파일을 undelete나 노턴 유틸리티로 복구가 가능하지만, 리눅스에서는 한번 삭제한 파일은 절대 복수가 불가능하다는 점을 명심해야 한다.


‘-d' 옵션을 이용하여 파일을 삭제하는 경우 디렉토리 내의 파일이 존재하면 디렉토리가 삭제되지 않는다. ‘-d' 옵션은 오직 비어있는 디렉토리를 삭제할 때 사용되는 옵션이다.


만일 디렉토리 내에 있는 파일까지 한 번에 삭제하고자 한다면 ‘-d' 옵션이나 아니 ’-r' 옵션을 사용하명 된다. ‘-r' 옵션은 하위 디렉톨리와 그 안에 있는 파일 모두를 삭제하므로 유용하게 쓰이는 옵션이다.

삭제할 파일이 많은 경우, 파일 하나하나마다 삭제하겠느냐 하는 페시지가 나오는데 메시지를 무시하고 한번에 삭제하고자 한다면 아래 그림과 같이 실행 ‘-f' 옵션과 와일드 문자를 사용하면 된다.


2-4. 디렉토리 변경 - cd


현재 디렉토리에서 다른 디렉토리로 경로를 변경하고 할 때 쓰이는 명령어

형식 :

cd 상대경로

cd 절대경로


경로를 변경할 때 주의할 점은 도스에서는 역슬래시()를 사용했지만, 리눅스에서는 슬래시(/)를 사용한다는 점이다. 사용법에서 하나는 슬래시가 있고 하나는 슬래시가 없는데, 슬래시가 붙은 디렉토리명을 절대 경로(Absolute Path)라 부르고, 슬래시가 없는 디렉토리명을 상대경로(Relative Path)라한다. 절대 경로를 쓰는 경우는 새로운 디렉토리로 경로를 변경할 때 이며, 상대 경로는 현재의 디렉토리 내에 있는 하위디렡고리로 이동하고자 할 때 사용된다. 예를 들면 /games/nemocaptain라는 디렉토리가 있다고 가정할 때 현재의 디렉토리가 /root 디렉토리인 경우에는 /games/nemocaptain 전체 경로를 지정해 주어야 이동이 가능한데 /games/nemocaptain 가 절대 경로이며, 현재의 디렉토리가 /games/ 상태에서 이동하기위해서는 nemocaptain만 지정하여 주는 것이 상대 경로이다.

만일 /games 디렉토리 상태에서 절대 경로인 /nemocaptain를 입력하게 되면 어떻게 되겠습니까? 이는 최상위 절대 경로 root(/)로부터 nemocaptain를 찾아야 하므로 없는 경로가 될 것이다. 만약에 굳이 절대 경로로 사용하겠다면 /games/nemocaptain를 입력하면 절대 경로가 되어 디렉토리 이동이 가능한다.

다시 말해서 상대적인 경로는 어느 특정 위치를 기준으로 하여 기준된 위치의 이상이나 이하의 내용만을 표현하는 것이며, 절대 경로는 실제릐 물리적인 위치를 말하느다고 하겠다.


그럼 이러한 내용에 관하여 아래 화면들을 보면서 확인해 봅니다.


PIC36E.gif


디렉토리 위치 나타내기


cd 명령으로 디렉토리를 이동할 때 주로 사용되는 변수와 문자들이 있다.

.

 점 한 개는 현재 디렉토리 위치를 의미한다.

 cd . 은 아무런 변화가 없다.

..

 점 두 개는 현 위치의 상위 디렉토리를 말한다.

 cd ..은 상위 디렉토리로 이동한다.

~

 자신의 계정 디렉토리 위치를 의미한다.

 cd ~는 자신의 계정 디렉토리로 이동한다.

$HOME

 변수에 잇는 자신의 디렉토리를 의미한다.

 cd $HOME은 자신의 디렉토리로 이동한다.


2-5. 디렉토리 생성 - mkdir


새로운 디렉톨리를 신규 또는 추가로 만들기


형식

mkdir [옵션] 생성디렉토리 (복수 지정 가능)

mkdir [옵션] /생성디렉토리


옵션

-p : 지정한 하위 디렉토리까지 한 번에 생성


설명

디렉토리는 절대 경로로 지정하여 생성하거나 상대 경로를 지정하여 생성할 수 있으며 여러 개의 경로를 복수 로 지정할 수있다.


PIC36F.gif


단, 절대 경로는 마운트된 리눅스 시스템의 특정 디렉토리 내에서 디렉토리가 생성되고, 상대 경오는 작업디렉토리 내의 하위 디렉토리로 생성된다는 사실을 잊니 마세요! 상단화면에서도 볼 수 있듯이 room1, room2, room3 세 개의 디렉토리를 지정한 경우 /root 내에 하위 디렉토리로 생성되었지만, 절대 경로 표시로 디렉토리를 만든 경우 루트 하위 디렉토리가 아닌 개별적인 상위 디렉토리로 만들어집니다. 이와 같이 슬래시(/) 하나가 엄청난 차이을 가져오므로 주의해야 한다.

mdkri 에는 매우 유용한 ‘-p'옵션이 있는데, 단 한 번에 하위 디렉토리까지 디렉토리를 만들고자 할 때 사용한다.

만약 /home/nemocaptain/public_html/admin 라는 디렉토리를 만들고자 할 때 ’-p'옵션이 없다고 한다면 각각의 디렉토리를 하나하난씩 만들어야 한다. 하지만 '-p '옵션을 사용하여 public_html 디렉토리부터 admin라는 하위 디렉토리까지 한꺼번에 만들 수 있다.


2-6. 디렉토리 삭제 - rmdir


디렉토리를 삭제하는 명령어이다.


형식

rmdir [옵션] 디렉토리(복수 지정 가능)

rmdir [옵션] /디렉토리

옵션

-p : 지정한 하위 디렉토리까지 한 번에 삭제


설명

앞서 디렉토리 생성하는 명령어를 연습해 보았습니다. 생성과 소멸은 항상 반대되는 개념이며, 여기에서도 디렉토리 삭제 명령은 mkdir의 디렉토리 생성 명령과 같은 구조를 가지고 잇습니다. 먼저 여러 디렉토리를 한번에 삭제하는 것에 관한 명령을 알아보면, 아래 화면과 같이 명령문이 삭제될 디렉토리명의 형태를 이루고 있다. 직접 디렉토리르 만들고 삭제해 보면서 기본적인 명령어들을 익히는 것이 가장 쉽게 배울 수 있는 방법일 것이다.


# rmdir room1 room2 room3


다음 -p 옵션을 지정하여 mkdir로 생성한 하위 디렉토리까지 삭제하는 방법은 다음과 같다.


# mkdir -p /admin/nemocaptain/public_html/admin


2-7. 파일 옮기기 - mv


파일을 다른 디렉토리로 이동하거나 다른 이름으로 바꾸고자 할 대 사용.


형식

mv [옵션] ‘원본 파일’ ‘대상 파일’

mv [옵션] ‘원본 파일[원본 디렉토리]’ 디렉토리


옵 션

기    능

-b

 파일이 지워지기 전에 백업 파일을 만듦

-f

 대상 파일이 있더라도 파일을 강제로 삭제

-i

 대상 파일이 있는 경우 덮어쓸 것인가 물어 봄

-u

 대상 파일보다 원본 파일이 최신 것일 때 업그레이드

-v

 파일 옮기기 전의 과정을 보여 줌

설명 : mv 명령어는 파일을 옮기거나 다른 이름으로 변경할 경우에 사용된다. 또한 파일을 옮기거나 다른 이름으로 변경될 때는 항상 원본 파일이 삭제된다. 이것이 cp 명령어와 차이점이다. cp 명령어는 오직 다른 이름으로 복사되거나 다른 경로로 복사된다. 이때는 원본 파일은 항상 보존되지만, mv 명령어에서는 원본 파일이 항상 삭제된다. 따라서 원본 파일을 안전하게 보존하면 cp 명령어를 사용해야 한다.


다음은 /bin/netstat 파일을 /bin/netstet 파일로 옮긴 후에 다시 원상태로 되돌려 놓은 예제이다.


PIC370.gif


2-8. 디스크 용량 확인 - df


하드 디스크의 용량이 얼마나 남아있느지 확인하는 명령어


형식 : df [옵션]


옵 션

기  &nb

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,037 명
  • 현재 강좌수 :  35,806 개
  • 현재 접속자 :  129 명