본문 바로가기
Web Programing!/Linux

리눅스 기초 명령어

by 어설픈봉봉이 2011. 12. 3.
반응형
SMALL
















 




사용법 : ls [옵션] [이름]


디렉토리의 내용을 출력한다. 가장 기본적인 명령어에 속하는 것으로서 그만큼 옵션도 많아 디렉토리의 내

용을 다양한 형식으로 출력 할 수 있다.


옵션

-1, --format=single-colum : 한줄에 한개의 파일만을 출력한다

-a : 모든 파일을 출력한다. . 으로 시작하는 파일도 모두 출력한다

-b, --escape : 화면으로 출력이 불가능한 문자도 나타낸다

-c, --time-ctime, --time=status : 파일의 최근 변경 시간에 따라 보여준다

-d, --directory : 경로 안의 내용을 나열하지 않고 그 경로를 보여준다. 
                       ( 이것은 쉘 스크립트에서 유용하게 쓰인다 )

-f : 경로 내용을 정렬하지 않고 디스크에 저장된 순으로 보여준다.

-a와 -U 옵션과 같은 뜻이며, -l,-s,-t 옵션과 반대 순서로 출력된다

--full-time : 시간을 간략히 표시하지 않고, 모두 보여준다.

-g : 무시, 유닉스 호환을 위해서 있음.

-i, --inode : 파일 왼쪽에 색인 번호를 보여준다.
-k, --kilobytes : 파일 크기가 나열되면 kb 단위로 보여준다. 이 옵션은 POSIXLY_CORRECT
                     환경변수를 무신한다.
-l, --format=long, --format=verbose : 파일 나열에 있어 파일 형태, 퍼미션, 하드 링크번호, 소유자 이름, 그룹이름, 파일크기, 시간 ( 따로 지정하지 않으면 파일이 만들어진 날짜)을 자세하게 나열한다. 시간은 여섯달 이전 것이면 시간이 생략되고, 파일의 연도가 포함된다.

-m, --format=commas : 파일을 가로로 나열한다. 가로로 나열할 수 있는 만큼 최대한 나열한다.

-n, --numeric-uid-gid : 이름의 나열에서 UID, GID 번호를 사용한다

-p : 파일 현태를 지시하는 문자를 각 파일에 추가한다

-q, --hide-control-chars : 파일 이름에 그래픽 문자가 아닌 것이 있으면 '?'로 표시한다

-r, --reverse : 정렬 순서를 내림차순으로 한다

-s, --size : 파일크기를 1KB단위로 나타낸다 POSIXLY_CORRECT 환경변수가 지정되면 512KB 단위로 지정된다.

-t, --sort=time : 파일 시간순으로 정렬하다. 최근 파일이 제일 먼저.

-u, --time=atime, --time=access, --time=use : 파일사용 시간순으로 정렬한다. 자세하게 나열할 때 시간표시는 만들어진 날짜대신 사용된 날짜를 보여준다.

-x, --format=across, --format=horizontal : 정렬방식을 가로로 한다

-A, --almost-all : '.','..' 경로를 제외하고 디렉토리 안의 모든 파일을 나열한다

-B, --ignore-backups : 파일 끝이 '~'인 파일은 목록 나열에 제외된다. 보통끝에 ~이 붙는 파일은 백업파일이다.

-C, --format=vertical : 정렬방식을 세로로 한다

-F, --classify : 파일 형식을 알리는 무자를 각 파일 뒤로 추가한다. 일반적으로 실행파일은 "*", 경로는 "/", 심볼릭 링크는 "@",FIFO는 "ㅣ", 소켓은 "=", 일반적인 파일은 없다

-G, --no-group : 자세한 목록 나열에서 group 정보는 제외한다.

-L, --dereference : 심볼릭 링크파일들을 그냥 파일로 보여준다

-N, --literal : 이름이 영문이 아닌경우 C에서 사용하는 역슬래시 문자('\')와 함께 사용하는 표기 대신 그대로 출력한다

-Q, --quote-name : -N 옵션과 반대

-R, --recursive : 하위 경로와 그 안에 있는 모든 파일들도 나열한다.

-S, --sort=size : 파일크기가 가장 큰 것부터 정렬해서 나열한다.

-U, --sort=none : 정렬을 하지 않고 디스크에 저장된 순서대로 보여준다. 이 옵션은 -f 옵션을 사용할 수 없다. 왜냐하면 유닉스용 ls -f는 -a 옵션은 가능하나 -l, -s, -t 옵션이 불가능하기 때문이다.

-X, --sort=extension : 파일 확장자순으로 정렬한다. 확장자가 없는 파일이 제일 먼저 나열된다.

-w, --width cols : 가로 길이를 값으로 지정한다. 기본적으로는 한 화면의 가로값이 된다. 또한 COLUMNS 환경 변수값으로 지정할수 있다. 초기값은 80이다.

-T, --tabsize cols : 탭이 사용될때 cols값으로 지정한다. 초기갑은 8이다. 0으로 지정되면 탭 문자는 무시된다.

-I, --ignore pattern : pattern 패턴으로 지정된 파일들은 목록에서 제외된다. 이때 명령행에서 그 파일이 지정되면 물론 나열된다. 

 --color, --colour, --color=yes, --color=yes : 파일형태에 따라 그 파일의 색깔을 다르게 보여주는 기능을 한다. 자세한 이야기는 아래 컬러 사용하기 부분을 참조한다

--color=tty, --colour==tty, --color 옵션과 같으나 단지 표준 출력에서만 색깔을 사용한다. 이 옵션은 컬러 제어 코드를 지원하지 않는 뷰어 프로그램을 사용하는 쉘 스크립트나 명령해 사용에서 아주 유용하게 쓰인다.

--color=no, --colour=no : 색깔을 사용하지 않는다. 이것이 초기값이다. 이 옵션은 색깔 사용을 이미 하고 있다면 이 값을 무시한다. 이미 사용하고 있는 많은 리눅스 배포본에서는 alias를 이용해 ls 명령에서 컬러를 사요하도록 세팅되어 있으니 컬러를 사용하지 않으려면 alias를 변경시켜야 한다



간단한 예제

서로 비교 해서 보면 좋겠군요. 도스를 공부 하시분은 dir과 같은 역활을 한다고 보시면이해가 빠르겠군요.

먼저 옵션없이 ls 를 보면 이렇습니다. 도스의 dir/w 하고 비슷합니다.

[level0@drill1 kevin]$ ls
a.out execxx ha.tmp hso level0.html.swp pass shpark.tmp t
bash_level fi help.txt.swp ju.l lll sc subdir tmp
[level0@drill1 kevin]$

다음은 ls -a 를 보겠습니다. -a 라는 옵션은 숨어 있는 화일까지 보여 줍니다. 리눅스에서는

점(.)으로 시작하면 히든화일이 됩니다. 한번 보세요. 앞에서 안 보이던 화일들이 몇개 보이죠.

[level0@drill1 kevin]$ ls -a
. .sc.h execxx help.txt.swp level0.html.swp sc t
.. a.out fi hso lll shpark.tmp tmp
.ju.h bash_level ha.tmp ju.l pass subdir
[level0@drill1 kevin]$

여기서 보면 점 하나가 있고요 점 두개가 있습니다. 그리고 점으로 시작하는 파일도 있습니다.

점으로 시작한것은 앞에서 언급 했듯이 히든파일입니다. 그리고 .(점 하나)은 자기 자신을 뜻합니다.

그리고 ..(점 두개)는 상위 디렉토리를 말합니다. cd 명령에서 다시 한번 말할 기회가 있을겁니다.

여기서는 이런 파일도 있구나 하고 기억만 하시면 되겠습니다.

다음으로 볼것은 ls -l 입니다. l은 long를 뜻하고 길게 보여줍니다. 그리고 보통은 -a 옵션과

붙혀서 많이 사용합니다. 그럼 예제를 볼까요?

[level0@drill1 kevin]$ ls -al
total 592
drwxrwxr-x 4 level0 level0 1024 Aug 30 21:11 .
drwxrwx--T 6 root level0 4096 Aug 30 21:15 ..


중간 생략

drwxrwxr-x 2 level0 level0 1024 Aug 30 21:07 subdir
-rwxrwxr-x 1 level0 level0 32 Aug 30 21:01 t
drwxrwxr-x 2 level0 level0 1024 Aug 30 21:06 tmp
[level0@drill1 kevin]$

한 파일의 전체를 볼려면 아래와 같이 ls -al [파일명] 하면 됩니다

[level0@drill1 kevin]$ ls -al lll
-rwxr-x--x 1 level0 level0 12900 Aug 30 21:01 lll

조금 자세하게 설명을 해 보겠습니다. 첫번째 항목은 권한을 뜻합니다.

두번째 항목은 링크된 숫자, 세번째는 파일 소유자, 네번째는 파일이 속한 그룹을 뜻합니다

다섯번째는 화일의 크기, 여섯번째는 화일을 마지막으로 수정한 날짜, 일곱번째는 화일명입니다

다시 도스와 다른 권한에 대한 것으로 첫번째 항목을 자세히 살펴 보겠습니다.

-rwxr-x--x 에서 제일 앞에 있는 것은 디렉토리를 뜻하는 것입니다. 링크파일은 l로 표시하고,

블럭 디바이스는 b, 캐릭터디바이스 c로 표시합니다. 그리고 - (슬래시) 이면 일반 화일입니다.

-rwxr-x--x 그 다음은 세개씩 나누어 생각합니다.

각각 사용자, 그룹, 다른 유저(모두)의 권한을 뜻합니다. r,w,x 는 읽기, 쓰기, 실행의 권한을

뜻하는것입니다. 그럼 이파일은 어떻까요? 일단 일반 화일입니다. 그리고 유저 화일주인은 읽고 쓰고

실행을 할수가 있습니다. 그리고 유저가 속한 그룹내의 다른 사람들은 읽고, 실행을 됩니다.

그리고 그룹에 속하지 않은 이 시스템을 사용하는 모든 사람들은 일고 쓰기 권한을 없지만

실행은 가능합니다. 퍼미션에 관한것은 이것으로 마치겠습니다. 좀더 깊이 있는 공부를 다른 참고서적을

찾아 보십시요. 이정도면 초보자로서 화일을 보는데 이상이 없을 것입니다  





clear

사용법 : clear

터미널 디스플레이를 클리어 한다.


간단한 예제

명령어 실행전 화면

윗쪽 화면 생략

-rw-rw-r-- 1 level0 level0 1091 Aug 30 21:01 ju.l
-rw------- 1 level0 level0 12288 Aug 30 21:01 level0.html.swp
-rwxrwxr-x 1 level0 level0 12900 Aug 30 21:01 lll
lrwxrwxrwx 1 level0 level0 9 Aug 30 21:06 pass -> /bin/pass
-rw-rw-r-- 1 level0 level0 339 Aug 30 21:01 sc
-rw-rw-r-- 1 level0 level0 4519 Aug 30 21:01 shpark.tmp
drwxrwxr-x 2 level0 level0 1024 Aug 30 21:07 subdir
-rwxrwxr-x 1 level0 level0 32 Aug 30 21:01 t
drwxrwxr-x 2 level0 level0 1024 Aug 30 21:06 tmp
[level0@drill1 kevin]$ clear

명령어 실행후 화면 : 화면이 깨끗해 지면서 쉘프롬프트 한줄만 나온다.

[level0@drill1 kevin]$




cp

사용법 : cp [옵션] 파일1 파일2

사용법 : cp [옵션] 파일(들) 디렉토리

파일1을 파일2로 복사한다. 한 개 또는 그 이상의 파일(들)을 디렉토리에 복사한다. 만약 복사하려는 디렉

토리에 같은 이름의 파일이 있을 경우 겹쳐 쓰여지게 된다.

옵션

-a, --archive : 가능한 한 원래 파일의 퍼미션을 보존한다. 옵션 -dpR과 같다

-b, --backup : 백업본을 만든다

간단한 예제

현재 화일들을 먼저 확인하기 위해 ls 명령를 쳐보자.

[level0@drill1 kevin]$ ls
a.out execxx ha.tmp hso level0.html.swp pass shpark.tmp t
bash_level fi help.txt.swp ju.l lll sc subdir tmp

cp 명령어를 사용하여 lll파일과 sc 파일을 각각 lll_d, sc_d 파일로 복사를 했다

[level0@drill1 kevin]$ cp lll lll_d
[level0@drill1 kevin]$ cp sc sc_d

결과를 보기 위해서 다음과 같이 ls 명령어를 쳐 보자

[level0@drill1 kevin]$ ls
a.out fi hso lll sc subdir
bash_level ha.tmp ju.l lll_d sc_d t
execxx help.txt.swp level0.html.swp pass shpark.tmp tmp
[level0@drill1 kevin]$


mv

사용법 : mv [옵션] 소스타겟

파일이나 디렉토리의 위치를 바꾸거나 이름을 다른 것으로 바꾼다


옵션

-b, --backup : 이미 파일이 존재하고 있을 겨웅 백업본을 만든다

-f : 이미 파일이 존재하고 있을 경우 물어보지 않고 그대로 덮어 쓴다

-i, --interactive : 이미 파일이 존재하고 있을 때 사용자에게 어떻게 할것인지 물어본다

-u, --update : 만약 지우려는 파일이 덮어 쓸 파일보다 더 최근에 수정된 것이라면 지우지 않는다


간단한 예제

[level0@drill1 kevin]$ ls
a.out fi hso lll result shpark.tmp tmp
bash_level ha.tmp ju.l lll_d sc subdir
execxx help.txt.swp level0.html.swp pass sc_d t

[level0@drill1 kevin]$ cd tmp

tmp 디렉토리에는 파일이 하나도 존재하지 않습니다. mv 명령어로 파일을 하나 옮겨 보겠습니다.

[level0@drill1 tmp]$ ls

[level0@drill1 tmp]$ mv ../hso .

[level0@drill1 tmp]$ ls hso

[level0@drill1 tmp]$ cd ..

[level0@drill1 kevin]$ ls

a.out fi ju.l lll_d sc subdir
bash_level ha.tmp level0.html.swp pass sc_d t
execxx help.txt.swp lll result shpark.tmp tmp

[level0@drill1 kevin]$

mv 명령어로 빨간색의 파일 hso가 kevin 이라는 디렉토리에서 kevin/tmp 디렉토리로 이동한것을

확인할수 있었습니다.


rm

사용법 : rm [옵션] 파일(들)

지정한 파일이나 디렉토리를 지운다.


옵션

-d, --directory : 디렉토리를 지운다. 디렉토리가 비어 있지 않을 때도 사용할 수 있다

-f, --force : 쓰기 금지되어 있는 파일도 물어보지 않고 지워 버린다.

-i, --interactive : 파일을 지울 것인지 물어 보면서 지운다.

-r,-R, --recursive : 하위 디렉토리까지 모두 지운다.


간단한 예제

[level0@drill1 kevin]$ ls
a.out fi ju.l lll_d sc subdir
bash_level ha.tmp level0.html.swp pass sc_d t
execxx help.txt.swp lll result shpark.tmp tmp

[level0@drill1 kevin]$ rm lll_d

[level0@drill1 kevin]$ ls
a.out fi ju.l pass sc_d t
bash_level ha.tmp level0.html.swp result shpark.tmp tmp
execxx help.txt.swp lll sc subdir

[level0@drill1 kevin]$ rm sc_d

[level0@drill1 kevin]$ ls
a.out fi ju.l pass shpark.tmp tmp
bash_level ha.tmp level0.html.swp result subdir
execxx help.txt.swp lll sc t

[level0@drill1 kevin]$

rm [파일명] 으로 지정된 파일들이 삭제된것을 확인할수 있습니다



mkdir

사용법 : mkdir [옵션] 디렉토리

디렉토리를 새로 만든다.

-m모드, --mode : 디렉토리를 만들때 모드를 결정한다. chmod를 참고할 것.

-p, --parants : 상위 디렉토리가 없을때 상위 디렉ㅌ리도 함께 만든다.
 
예를 들어, mkdir -p ./dir1/dir2/dir3라고하면 dir1,dir2,dir3 디렉토리가 한꺼번에 만들어진다
 

간단한 예제

[level0@drill1 tmp]$ ls -al
total 138
drwxrwxr-x 2 level0 level0 1024 Aug 30 22:16 .
drwxrwxr-x 4 level0 level0 1024 Aug 30 22:25 ..
-rw-rw-r-- 1 level0 level0 138221 Aug 30 21:01 hso

[level0@drill1 tmp]$ mkdir tmp1

[level0@drill1 tmp]$ mkdir tmp2

[level0@drill1 tmp]$ ls -al
total 140
drwxrwxr-x 4 level0 level0 1024 Aug 30 22:30 .
drwxrwxr-x 4 level0 level0 1024 Aug 30 22:25 ..
-rw-rw-r-- 1 level0 level0 138221 Aug 30 21:01 hso
drwxrwxr-x 2 level0 level0 1024 Aug 30 22:30 tmp1
drwxrwxr-x 2 level0 level0 1024 Aug 30 22:30 tmp2

[level0@drill1 tmp]$


rmdir

사용법 : rmdir [옵션] 디렉토리

지정한 디렉토리를 지운다. 이 명령으로는 디렉토리가 비어 있어야 지울 수 있다

옵션

-p, --parents : 상위 디렉토리도 비어 있을 경우에 함께 지워버린다. 간단한 용례

[level0@drill1 tmp]$ ls -al
total 140
drwxrwxr-x 4 level0 level0 1024 Aug 30 22:30 .
drwxrwxr-x 4 level0 level0 1024 Aug 30 22:25 ..
-rw-rw-r-- 1 level0 level0 138221 Aug 30 21:01 hso
drwxrwxr-x 2 level0 level0 1024 Aug 30 22:30 tmp1
drwxrwxr-x 2 level0 level0 1024 Aug 30 22:30 tmp2

[level0@drill1 tmp]$ rmdir tmp1

[level0@drill1 tmp]$ ls -al
total 139
drwxrwxr-x 3 level0 level0 1024 Aug 30 22:34 .
drwxrwxr-x 4 level0 level0 1024 Aug 30 22:25 ..
-rw-rw-r-- 1 level0 level0 138221 Aug 30 21:01 hso
drwxrwxr-x 2 level0 level0 1024 Aug 30 22:30 tmp2

[level0@drill1 tmp]$ rmdir tmp2

[level0@drill1 tmp]$ ls -al
total 138
drwxrwxr-x 2 level0 level0 1024 Aug 30 22:34 .
drwxrwxr-x 4 level0 level0 1024 Aug 30 22:25 ..
-rw-rw-r-- 1 level0 level0 138221 Aug 30 21:01 hso

[level0@drill1 tmp]$


who

사용법 : who [옵션] 파일

who am i

시스템의 현재 상황과 현재 접속해 있는 사용자 이름, 터미널, 로그인한 시간, 접속해온 곳 등을 나타낸다


옵션

am I : whoami 명령과 같다. 현재 이 명령을 내리고 있는 사용자의 사용자 이름을 출력한다

-m : am i 와 같다

-i : -u, --idle : 유휴 시간 ( idle time )도 함께 표시한다.

-q, --count : 사용자 이름과 사용자수만 출력한다.

-w, -T, --mesg, -message, --writable : 각 사용자의 mseg 설정 상태를 보여준다.


간단한 예제

[level0@drill1 tmp]$ who
level1 pts/0 Aug 30 21:39 (catv101240.usr.hananet.net)
level2 pts/1 Aug 30 22:25 (210.114.49.41)
level10 pts/2 Aug 30 22:11 (204.252.145.134)
level0 pts/3 Aug 30 22:33 (210.112.170.242)
level4 pts/4 Aug 30 22:05 (ware.snu.ac.kr)
level0 pts/5 Aug 30 22:06 (210.97.172.50)

[level0@drill1 tmp]$ whoami <= 내가 누굴까?
level0

[level0@drill1 tmp]$


chown

사용법 : chown [옵션] 소유자파일(들)

지정된 파일(들)의 소유자를 바꾼다. 소유자명은 숫자로 된 사용자 ID가 될수도 있고 /etc/group에 정의된

사용자 이름을 직접 써도 된다. 물론 이 명령은 해당 파일의 소유자나 슈퍼 유저만이 실행할수 있다

옵션


간단한 예제

ciscom# ls -al .

drwxr-xr-x 2 root root 512 8월 31일 11:17 .

ciscom# chown deicide .

ciscom# ls -al .

drwxr-xr-x 2 deicide root 512 8월 31일 11:17 .


chgrp

사용법 : chgrp 문자열 파일

간단한 예제

먼저 화일 내용을 보세요. 그리고 grep로 사용해서 찾은 것을 보세요

화일 속에서 문자열이 있는 줄만 프린터 해 주죠

그럼 화일 속에서 몇째줄에 있을까 그것도 알수 있어면 하는데 어떻게 할까요?

이정도는 직접 한번 찾아 보세요. DIY!..

[level0@drill1 kevin]$ cat kevin
kevin is man
i love u
i am boy

[level0@drill1 kevin]$ grep boy kevin
i am boy

[level0@drill1 kevin]$ grep man kevin
kevin is man

[level0@drill1 kevin]$


chmod

사용법 : chmod 옵션 파일

옵션

-u : 파일 소유자, 유저를 뜻한다.

-g : 파일 소유자( 유저 )가 속한 그룹을 뜻한다

-o : 파일 소유자 및 그룹뿐 아니라 모든 사용자를 뜻한다.

-r : 파일에 대한 읽기 권한을 뜻한다.

-w : 파일에 대한 쓰기 권한을 뜻한다

-x : 파일에 대한 실행 권한을 뜻한다

-+ : 권한을 주고 싶을때 사용한다.

-- : 주어진 권한을 없애기 위해 사용한다.


간단한 예제

파일 소유자가 실행할수 있는 파일로 만들는 방법

실행파일로 만드는 방법 이기도 하다. 도스처럼 com, exe, bat 확장자가 아니라 아래와 같이

실행비트 set 하므로써 실행파일이 된다.

[level0@drill1 kevin]$ ls -al kevin7
-rw-rw-r-- 1 level1 level0 73 Aug 31 09:06 kevin7

[level0@drill1 kevin]$ chmod u+x kevin7

[level0@drill1 kevin]$ ls -al kevin7
-rwxrw-r-- 1 level1 level0 73 Aug 31 09:06 kevin7

사용자 실행비트가 off(-) 에서 on(x) 된것을 확인 할수 있다

이제 파일 소유자가 속한 그룹에게도 실행 권한를 주는 법을 보자

[level0@drill1 kevin]$ chmod g+x kevin7

[level0@drill1 kevin]$ ls -al kevin7
-rwxrwxr-- 1 level1 level0 73 Aug 31 09:06 kevin7

그룹 실행비트가 OFF(-) 에서 ON(x) 된것을 확인 할수 있다

이제 모든 사용자에게도 실행 권한과 쓰기 권한을 함께 주는 법을 보자

[level0@drill1 kevin]$ chmod o+wx kevin7

[level0@drill1 kevin]$ ls -al kevin7
-rwxrwxrwx 1 level1 level0 73 Aug 31 09:06 kevin7

모든 사용자 에게 실행, 쓰기 권한을 동시에 주는 법을 보았다.

이제 권한을 주지 않는 권한을 막는 법을 배우자.

이것은 옵션에서 + 대신에 - 를 사용함으로써 가능하다.

[level0@drill1 kevin]$ chmod og-wx kevin7

[level0@drill1 kevin]$ ls -al kevin7
-rwxr--r-- 1 level1 level0 73 Aug 31 09:06 kevin7

[level0@drill1 kevin]$


ps

사용법 : ps [옵션]

-a : 모든 프로세서


간단한 예제

ps가 마지막으로 실행된 프로세서로 나온다.

[level0@drill1 level0]$ ps
PID TTY TIME CMD
21152 pts/14 00:00:00 sh
21511 pts/14 00:00:00 ps

[level0@drill1 level0]$


kill

사용법 : kill [옵션] 프로세서 ID (들)

지정한 프로세서를 끝낸다. 시그널을 보내서 프로세스를 조절하는데, 해당 프로세스를 이 kill 명령어로 끝

내려면 그 프로세서의 소유자이거나 혹은 슈퍼 유저이어야 한다.

보통은 쉘 자체적으로 정의된 kill을 쓰기 때문에 이 명령을 사용할 필요가 별로 없지만 한 프로세스를 비정

상적으로 종료시켜야 할 필요가 있을때 사용한다.

옵션

-l : 사용 가능한 시그널을 모두 출력한다

-시그널 : 시그널 번호나 혹은 시그널 이름을 지정하여 원하는 시그널을 보낼 수 있다


mount

사용법 : mount [옵션] 디바이스 디렉토리

간단한 예제

cd-rom를 마운트 해서 사용하는 예를 봅시다.

[level0@drill1 /dev]$ mount /dev/cdrom /mnt/cdrom




반응형