2008년 4월 8일 화요일

[리눅스] 기초적인 명령어 및 사용방법

1.1 prompt의 의미

[root @~]#_ 부분을 prompt라고 한다.

기본 구조.

[계정 @호스트 이름 /현 작업 디렉토리]# 커서

현재의 작업 디렉토리는 로그인한 사용자의 홈 디렉토리를 표시한다.
로그인할 때 root라고 입력하고 패스워드를 입력하셨다면 /root 디렉토리, 즉 루트 계정의 홈 디렉토리에 커서가 위치해 있을 것이고, 설치시에 설정한 사용자 계정으로 로그인하였다면 로그인한 사용자 계정의 홈 디렉토리에 위치하게 된다.
root 계정의 홈 디렉토리를 제외한 일반 사용자 계정은 /home 디렉토리 아래 위치한다.
1.2 ls 
파일 시스템 상의 파일들의 목록을 보여준다.

형식
#ls [ -옵션 ][ 파일명(들) ]
-a : dot(.)로 시작되는 이름을 가진 파일명도 전부 보여준다.
-l : 각 파일들에 대한 소유자, 권한, 갱신일 등의 자세한 정보를 출력한다.
-s : 파일이 얼마나 많은 디스크 블록을 차지하고 있는가를 보여준다.
-i : 파일의 inode 번호를 보여준다.
-F : 파일의 특성을 쉽게 알 수 있는 문자를 나타낸다.
+는 실행 가능한 파일을, /는 디렉토리 이름을 의미하고, @는 심볼릭 링크를 나타내고, =는 소켓(socket)을 나타낸다.
-R : 현 디렉토리의 내용은 물론이고 sub 디렉토리의 내용까지 전부 보여준다.
-d : 각 디렉토리에 존재하는 하위 디렉토리만을 보여준다.

Tip :   명령어 # ls -al   과 같은 명령은   # ll 이다.
1.3 cd 
change directory의 의미
현재 작업하는 디렉토리를 변경한다.

형식 
#cd [ 디렉토리 ]
cd 명령과 디렉토리 이름 사이에 반드시 공백이 있어야 한다. 디렉토리 이름을 주지 않고 수행하면 사용자의 홈 디렉토리로 이동한다. 자신이 이동하고자 하는 디렉토리는 자신에게 실행 권한(execution permission)이 있어야 한다.

사용 예
[root @edu00 linux]#cd /home  
[root @edu00 /home]#pwd  
/home
[root @edu00 /home]#cd ~
[root @edu00 /home]#cd ..
1.4 pwd
present working directory의 의미

현재 작업하는 디렉토리를 보여준다.

사용 예
[root @edu00 linux]#pwd 
/home/linux
1.5 cat
이것은 파일의 내용을 화면에 출력하는 데 사용되기도 하며 파일을 다른 곳에 순차적인 스트림으로 보내기 위해 사용된다. 즉 크기가 작은 파일을 생성할 수 있다.

형식 
#cat [ 파일명 ]

옵션
-n : 빈줄을 포함하여 모든 라인앞에 행번호를 추가하여 화면에 출력한다.
사용 예
[root @edu00 linux]#cat 파일명 
[root @edu00 linux]#cat > foo
I am a linuxer.
^D

[root @edu00 linux]#cat foo
1.6 finger
시스템 상의 사용자들에 대한 정보를 보여준다.

형식
#finger [ -옵션] [ 사용자 ]
-s : 사용자의 로그온 이름, 실제이름, 터미널 이름, 로그온 시간 등등을 보인다.
-I :  -s 옵션 정보에 몇 가지를 추가하여, 여러 줄에 걸쳐서 보여준다.
인수로 아무 것도 주어지지 않으면, finger는 현재 시스템에 로그인 되어 있는 사용자들을 보여준다.
옵션이 주어지지 않으면, 기본적으로 -l 옵션을 사용한 것으로 간주된다.

사용 예
[root @edu00 linux]#finger 
Login Name  Tty Idle Login Time Office Office Phone
Edu00 rose     2      1 Oct 20 11:31
root  root  1  Oct 20 11:28
1.7 mkdir
make directory의 의미
디렉토리를 새로 만든다.

형식
# mkdir directory

옵션
-p : 디렉토리의 경로명까지 생성
-m : 퍼미션 모드를 설정하면서 디렉토리 생성

사용 예 
[root @edu00 linux]#mkdir blade      //현재 디렉토리의 하위 디렉토리 작성
[root @edu00 linux]#cd blade  
[root @edu00 linux]#mkdir ?p /home/edu01/edu02/edu03

1.8 rm
remove의 의미
파일을 지우는 명령이다.

형식
# rm [ -옵션 ] 파일명

옵션
-f : 보통 지울 수 있는 권한이 없으면 안되지만, 이 옵션을 사용하면 강제로 파일을 지울 수 있다.
-i : 파일을 지울 것인가 다시 물어본다. 지우기를 원한다면 y를 누른다. 
-r : 서브 디렉토리의 파일도 모두 재귀적으로 지운다.
-v : 파일을 지우기 전에 파일의 이름을 나타내준다.

사용 예 
[root @edu00 linux]#rm blade.Z  
[root @edu00 linux]#rm report.txt tempfile object.mainroutine hello.java 
[root @edu00 linux]#rm -r blade   
: blade와 하위 디렉토리 파일 모두를 제거 
[root @edu00 /]#rm ?rf * ( 이 명령을 사용할 경우 항상 현재 작업 디렉토리를 확인)
1.9  rmdir 
remove directory의 의미
원하는 디렉토리를 제거한다. 단 디렉토리가 비어있을 경우에만 삭제가 가능하다.

형식
# rmdir 디렉토리 

옵션
-p : 경로명에 따라 디렉토리를 삭제한다. 단 하위 디렉토리가 비어있을 경우에만 삭제가 가능하다.
3.10  who
현재의 시스템에 접속한 사용자의 이름이나 로그온 정보를 보여준다. 

형식
#who [ -옵션 ] [로그온 정보파일 ]

옵션
-u : 현재 시스템에 누가 로그온되어 있는지 보여준다. 
-T : 사용자의 터미널이 메시지를 보낼 수 있는지를 알려준다. +기호는 메시지를 쓸 수 있고, -는 그렇지 않음을 보여준다. 

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

형식
#more [ 파일이름 ]
1.12 clear
clear 명령은 도스의 cls와 마찬가지로 화면을 지우는 동작을 한다.
사용 예
[root @edu00 linux]#clear
1.13  cp 
파일을 현재의 위치나 다른 디렉토리로 복사(copy)한다.

형식 
#cp [ -옵션 ] 파일명1 파일명2
#cp [ -옵션 ] 파일명 디렉토리

옵션
-a : 가능한 한 원 파일의 구조와 속성을 그대로 복사한다.
-b : 복사할 때 덮어쓰게 되는 파일은 백업을 만든다.
-f : 복사 위치에 존재하는 파일을 제거하고 복사한다.
-i : 복사 시 같은 이름의 파일이 존재한다면 덮어쓸 것인가 확인한다.
-P : 원본 파일의 소유자, 그룹, 권한, 시간 기록을 그대로 복사한다.
-r : 파일과 하위 디렉토리에 포함된 파일 모두를 재귀적으로 복사한다.
만일 파일명2가 이미 존재하는 파일의 이름이라면 기존에 있던 파일은 사라지고 새로운 복사본 파일로 바뀐다. 이것이 원하지 않는 결과라면 -i 옵션을 주어서 확인 작업을 거칠 수 있다.
-i 옵션은 파일명2가 이미 존재하는 이름이라면 그대로 복사할 것인지 아닌지를 선택할 수 있게 물어온다.

사용 예
[root @edu00 linux]# cp -i blade.Z temp.Z
[root @edu00 linux]# cp -r * /somewhere
: 당연히 -r 옵션은 파일명2가 디렉토리 이름일 때만 사용이 가능하다.
1.14  mv
move의 의미
파일의 위치를 이동하거나 파일의 이름을 바꾸어준다.
형식
#mv [ -옵션 ] 파일명1 파일명2
#mv [ -옵션 ] 파일명(들) 디렉토리명
옵션
-f : 같은 이름의 파일이 존재하고 쓰기 권한이 금지되어 있더라도 물어보지 않고 덮어
쓰기를 해버린다. 이런 경우 이 옵션을 사용하지 않으면 사용자에게 다시 확인을 
할 것이다.
-i : 파일을 덮어쓰기 전에 사용자에게 확인한다. 기존에 있던 파일을 원치 않게 잃어버리는 수가 있기 때문에 확실하지 않다면 -i 옵션을 사용하는 것을 권한다.
사용 예
[root @edu00 linux]#mv sisap.hong victor.dongki readme.txt  ../friend  
[root @edu00 linux]#mv blade.Z ../kimtaihan.Z  
[root @edu00 linux]#mv /home/blade  /home/friend  
[root @edu00 linux]#mv sisap.doc LeeKiHong.doc 
1.15  date
시스템은 현재의 날짜와 시간을 유지하고 있다. 
date 명령을 사용하면 그러한 시간을 확인할 수 있다. 또한 날짜와 시간 정보를 변경할 수 있다. 물론 시스템의 날짜와 시간은 슈퍼 유저만이 변경할 수 있다.

형식 
#date 
#date 월 일 시 분 년도

사용 예
[root @edu00 linux]#date  
Tue Apr 25 17:45:09 KST 2000
[root @edu00 linux]#date 101116302001
현재의 날짜를 2001년 10월 11일 오후 4시 30분으로 시간을 변경

1.16 du and df

1.16.1 du
disk usage의 의미
형식
#du [-옵션] [디렉토리]

옵션
-a : 디렉토리가 아닌 모든 파일에 대한 정보를 화면에 출력한다.
-k : kilobyte 단위로 표시
-m : megabyte 단위로 표시
-h : human readable이란 의미에 따라 사람들이 읽을 수 있는 용량의 단위표시를 하면서 화면에 출력이 된다.
-s : 사용량의 총 합계를 출력한다.

사용 예
#du -sh /home
/home디렉토리의 총사용량을 단위표시를 해서 화면에 출력해 지정된 디렉토리의 사용량을 확인한다.

1.16.2 df
difk free의 의미
디스크의 여유 공간을 검사하여 보고한다.

형식
#df [ -옵션 ] 파일시스템
-i : 블록 사용 대신 inode 사용 정보를 보고한다.
-k : 블록의 크기를 1K바이트로 계산한다. 이것은 바이트 크기를 사용하는 대신 블록 단위로 보고한다는 점을 유의해야 한다. 기본적으로 512바이트 크기로 한 블록을 다룬다.
-T : 각 파티션의 파일시스템의 유형도 화면에 출력한다.
사용 예
#df
#df -mt
1.17  env
현재의 환경에 영향을 주지 않고 원하는 환경을 만들어 명령을 실행한다. 또는 현재의 환경을 보고한다.

형식
# env [ - ][-i ][ -u 이름 ][ 이름=값 ][명령]

옵션
-i : 현재의 환경을 무시하고 빈 환경 상태로 시작한다.
-u 이름 : 현재의 환경에 그 이름의 변수가 있다면 제거한다. “이름=값”형식으로 특
정 환경 변수를 지정해서 명령을 실행한다. 이러한 값을 필요한 대로 여러 개 나열하
면 되고, 현재의 환경은 변경하지 않으므로 명령의 수행이 끝나면 환경의 상태는 이
전과 다름없게 된다.

사용 예
[root @edu00 linux]#env HOME=/usr/victor tsh
: 디렉토리 변수를 지정하여 셸을 실행한다.
[root @edu00 linux]#env  
:  현재 설정되어 있는 환경 변수들을 보여준다.
1.18  find
원하는 특정 파일을 디렉토리를 탐색하여 찾는다. find는 매우 강력한 도구로 특정 디렉토리들을 순회하면서 지정된 조건에 만족하는 파일을 찾는다. 파일의 조건은 이름이나 크기, 날짜 등 다양하게 지정할 수 있다.

형식
#find [ 디렉토리 ] 탐색 조건

옵션
-name 파일명 : 찾고자 하는 파일의 이름을 정한다. 와일드 카드도 가능하다.
-user 사용자 : 파일 사용자의 ID에 따라서 검색한다. 로그인 이름이나 번호 모두가 가
능하다.
사용 예
[root @edu00 linux]#find  /bin  -name ro*

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

형식
#chmod [ -옵션 ] 모드 파일명(들)

옵션
-f : 파일의 권한이 바뀔 수 없어도 에러 메시지를 출력하지 않는다.
-v : 변경된 권한에 대해서 자세히 기술한다.
-R : 디렉토리와 파일들의 권한을 재귀적으로 모두 바꾼다.

사용 예
[root @edu00 linux]#chmod 666 broadboard  
: 파일을 모두가 읽고 쓸 수 있도록 한다.
[root @edu00 linux]#chmod 746 broad
: 파일 권한을 -rwxr--rw-로 변경한다.
[root @edu00 linux]#chmod o+x,g-w broadboard
1.20 file
파일이 어떠한 형태의 파일인지 알아낸다.

형식
#file 파일명
파일이 텍스트 문서인지 실행할 수 있는 파일인지 아니면 데이터 파일인지등을 인식한다. 에디터를 사용해서 보거나 수정될 수 있는 파일인가 알아 보는 데에 많이 사용된다.
1.21  ln
두 개의 파일 사이에 링크를 만들어, 하나의 파일을 두 개 이상의 이름으로 접근이 가능하도록 한다.

형식
#ln [ -s ] 파일명1 파일명2
#ln 파일명들 디렉토리

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

사용 예
[root @edu00 linux]#ln project theplan  
: 두 개의 이름은 같은 문서를 의미한다.
1.21 man
사용하고자 하는 유닉스 유틸리티에 대한 매뉴얼(manual)을 검색해서 보여준다.
셸을 사용할 때 어떤 명령의 사용법이 기억 나지 않는 경우가 있다. 
혹은 매번 사용하던 명령이라도 특수한 옵션이 필요할 때 그 기호나 사용법을 정확히 확인해야 하는 경우가 많이 있다. 이러한 경우에 사용하면 매우 유용하다.

형식
#man  단어

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

사용 예
[root @edu00 linux]#man telnet
[root @edu00 linux]# man -k 키워드

1.22 history
현재까지 실행했던 모든 명령어의 리스트를 볼 수 있다.
즉, 명령행에서 입력해 사용해왔던 명령어들을 다시 사용고자 할 때 이 명령어를 이용하는 것이다.

사용 예
#!!
마지막으로 실행했던 명령어를 다시 실행한다.
#!n
번호에 주어진 명령어가 실행이 된다.
#!단어
가장 최근에 그 단어로 시작하는 명령어를 다시 실행한다.
#!?단어?
가장 최근에 실행했던 명령어들 중 단어를 포함하는 명령문을 다시 실행한다.
1.23 passwd
리눅스 시스템은 다중 사용자와 다중 작업을 지원하는 개인용 서버 시스템이다. 
즉, 이 시스템을 사용하는 여러 계정이 있고 각 계정마다 자기에게 허가된 작업을 할 수 있다는 의미이며 자기에게 허가된 작업을 하기 위해서는 시스템에 로그인을 해야 하는데 로그인 과정에서 반드시 필요한 것이 각 계정과 각 계정에 대한 패스워드이다.

패스워드를 설정할 수 있고 패스워드를 변경할 수도 있다

형식
#passwd [-옵션] (계정명)

옵션
-p : 계정에 대한 패스워드를 삭제하여 로그인시 패스워드 인증을 거치지 않는다.

사용 예
[root @edu00 linux]#passwd
[root @edu00 linux]#passwd 계정명
1.24 cal
달력을 출력하는 명령어이다.

형식
#cal [-옵션][월/년도]

옵션
-m : 특정 월을 지정하여 출력한다.
-y : 특정 년도를 지정하여 출력한다.
사용 예
[root @edu00 linux]#
1.25 engdic
영한 사전 및 한영 사전의 기능을 제공한다.

형식
#engdic
1.26 ps
process의 의미
프로세스를 관리하는명령어로 프로세스의 상태를 표시한다.

형식
#ps [-옵션]

옵션
-a
-u
-x

사용 예
[root @edu00 linux]#ps -aux
[root @edu00 linux]#ps -aux | grep httpd
1.27 su
substitute user의 의미
실제로 로그인하지 않고 로그인의 기능을 대체하는 명령어이다.
일반적으로 시스템에 root계정으로 로그인 한 후 작업을 하면 시스템 전체에 막대한 영향을 미칠 수 있다. 그래서 설치시에 설정한 일반 사용자 계정으로 로그인한 후 작업을 하다가 시스템 관리자로서 설정을 해야 하는 일이 있다면 su라는 명령어를 이용해시스템 관리자로 작업을 할 수 있다. 또한 일반 사용자계정으로 전환해서 작업을 할 수도 있다..

형식 
#su [-옵션]

옵션
-, -l, --login:

사용 예
[root @edu00 linux]#su - 계정명
[linux @edu00 linux]$su ?
1.28 nl
line number의 의미
파일을 출력할 때 파일의 각 라인앞에 라인 번호를 붙여서 화면에 출력한다.

사용 예
[root @edu00 linux]#nl /etc/passwd

댓글 없음:

댓글 쓰기

언제 부터 였던가 생각해보니 아르바이트 겸 외부 컨설팅을 의뢰 받고 맥북 프로를 처음 써봤을 때 부터 였던 것 같다. 지금은 거의 대부분의 작업을 맥으로 작업을 하다 보니 윈도우에서만 실행되는 일부 프로그램들 때문과 회사 내부 ERP프로그램이 윈도우 ...