강좌

HOME > 강좌 >
강좌| 리눅스 및 오픈소스에 관련된 강좌를 보실 수 있습니다.
 
리눅스 기초명령어 강좌 제3편
조회 : 8,747  


리눅스 기초명령어 강좌 제3편






--알림--

이 강좌는 리눅스 서버를 관리하고자하시는 분들을 위한 초급 강좌로서 리눅스서버관리에 꼭 필요한 기초 명령어들에 대한 강좌입니다. 모두 6편의 강좌로 구성된 연재강좌입니다.



























제작자 : 리눅스포털 수퍼유저코리아(www.superuser.co.kr) 박성수




---- 목    차 ----

1. 서버접속의 몇가지 방법들

2. 로그아웃(logout)하기

3. whoami(자기 정보확인 1)

4. who am I (자기정보 확인 2)

5. id (자기정보 확인 3)

6. groups(그룹정보 확인)

7. finger(계정사용자 정보확인)

8. 홈디렉토리는

9. passwd (패스워드변경)

10. chsh (사용쉘 변경)

11. 리눅스서버의 정확한 시간설정법 : time server설정(rdate)

12. 명령어 히스토리기능

13. man(명령어 매뉴얼 및 도움말 얻기)

14. 쉘프롬프트에 전체경로 표시하기

15. 디렉토리 이동의 간편한 방법들

16. cp (파일이나 디렉토리 복사하기)

17. mkdir(디렉토리 만들기), rmdir (디렉토리 지우기)

18. chown , chgrp (소유권 및 그룹소유권 변경하기)

19. cat(파일 내용 확인)

20. cat응용 (여러개의 파일을 하나로 합치기)

21. head(파일의 앞부분 내용 확인방법)

22. tail (파일의 뒷부분 내용 확인방법)

23. find (특정 파일찾는 여러가지 기법들)

24. 특정 명령어 검색법(which, whatis, whereis)

25. sort (파일내용 정렬하기)

26. file (파일의 종류 확인하기)

27. du (디스크사용량 체크)

28. df (파일시스템 디스크사용량 점검)

29. touch (파일의 시간정보 변경)

30. useradd (사용자의 계정생성)

31. userdel (사용자의 계정삭제)

32. groupadd (그룹의 생성)

33. groupdel  (그룹의 삭제)

34. uptime (시스템 부하율점검)

35. top (시스템의 전체 운용상황 점검)

36. free (메모리 사용현황)

37. w (사용자 로그인정보와 현재 작업내용 확인 )

38. mount (마운트에 관하여)

39. tar (여러 개의 파일을 하나로 묶기)

40. compress, uncompress (압축명령어 compress)

41. gzip, gunzip (압축명령어 gzip)

42. tar와 gzip을 한번에

43. bzip2, bunzip2(압축명령어 bzip2)
































18. chown , chgrp (소유권 및 그룹소유권 변경하기)

리눅스에서는 파일과 디렉토리에는 파일의 소유권과 그룹소유권이 존재합니다.

"ls -l"로 확인해 보면 3번째 필드에 해당되는 것이 소유권이며, 네 번째 필드에 해당하는 것이 그룹소유권입니다.

이들 소유권은 변경할 수 있으며 파일소유권을 변경할 때에는 "chown"(change owner)이란 명령어를 사용하며 그룹소유권을 변경할 때에는 "chgrp"(change group)란 명령어를 사용합니다.

사용형식 :    chown 새로운소유자 변경할파일(디렉토리) chgrp 새로운소유그룹 변경할파일(디렉토리)

[root@www testpass]# ls -l
total 8
drwxr-xr-x 3 sspark sspark 4096 Oct 12 23:42 aaa
-rw-r--r-- 1 sspark sspark 1174 Oct 12 23:51 sample.shtml
[root@www testpass]#
[root@www testpass]#
chown minoz sample.shtml
[root@www testpass]#
ls -l
total 8
drwxr-xr-x 3 sspark sspark 4096 Oct 12 23:42 aaa
-rw-r--r-- 1 minoz sspark 1174 Oct 12 23:51 sample.shtml
[root@www testpass]#
[root@www testpass]#
chgrp minoz sample.shtml
[root@www testpass]#
[root@www testpass]#
ls -l
total 8
drwxr-xr-x 3 sspark sspark 4096 Oct 12 23:42 aaa
-rw-r--r-- 1 minoz minoz 1174 Oct 12 23:51 sample.shtml



참고로 현재 디렉토리 이하의 모든 파일들에 대해 소유권변경을 하려면 -R옵션을 사용하며, 다음의 예를 참고바랍니다.

[root@www testpass]# chown -R  minoz:student   *


이 명령의 결과 현재 디렉토리 이하에 존재하는 모든 파일과 디렉토리들의 소유자는 minoz가 되며 그룹소유자는 student로 변경 됩니다.

19. cat(파일 내용 확인)

파일의 내용을 볼 수 있는 명령어는 cat과 pg 그리고 head와 tail, strings란 명령어가 있으며 도스의 type 명령어와 같으나 이보다 훨씬 다양하게 활용할 수가 있습니다. 이 명령어는 지정한 파일의 내용을 보고자 할 때 사용하는 명령어입니다.

cat명령어는 보고자하는 파일이 텍스트파일일 경우는 내용을 알아볼 수 있게 출력하지만, 바이너리파일일 경우에는 내용을 볼 수는 있으나 알 수 없는 문자들로 그 내용을 알기 어렵습니다.

cat파일은 2개 이상의 파일이름이 지정되면 모든 파일이 연결되어 보여집니다.

cat명령의 옵션과 사용예

-b : 행번호를 앞에 붙여서 출력합니다.(빈행은 번호를 붙이지 않습니다.) -n : 행번호를 앞에 붙여서 출력합니다.(빈행도 번호를 붙입니다.)

[root@www testpass]# cat abcd.txt

파일의 내용이 너무 많아 한화면에 볼 수 없을 때는 Ctrl+S로 정지시켰다가 Ctrl+Q로 재개할 수 있습니다. 이 보다도 한화면씩볼 수 있도록 more명령어를 활용하면 됩니다.

[root@www testpass]# cat abcd.txt | more

하지만 이런 명령어가 귀찮으면 pg 명령어를 사용하여 보겠습니다.

[root@www testpass]# more abcd.txt

이 명령어 역시 파일의 내용을 한 화면씩 보여줍니다.



20. cat응용 (여러개의 파일을 하나로 합치기)

몇 개의 파일을 하나로 합쳐야 할 경우에 앞에서 보았던 cat이란 명령어로 다음과 같이 할 수 있습니다.

위의 예는 ccc라는 파일속에 aaa와 bbb를 합쳐서 넣은 결과를 보여주고 있습니다. 이때 나열한 파일 순서대로 입력되며 원래의 aaa, bbb파일은 그대로 존재하게 됩니다.

추가하여 하나만 더 알고 갑시다. 위의 예처럼 "cat aaa bbb > ccc"라고 했을 때, ccc라는 파일이 없었던 파일이라면 당연히 aaa bbb두 파일의 내용이 합쳐진 결과가 들어가겠지만, 만약 ccc 라는 파일이 기존에 내용을 가지고 있었던 파일이라고 ccc에 기존에 있었던 내용들은 모두 없어지고 aaa bbb의 합쳐진 결과만이 들어갈 것입니다.

이런 경우 > 대신에 >>를사용하게되면 ccc에 기존에 있던 내용에 aaa bbb의 합쳐진 결과가 추가되어 들어가게 됩니다. 즉, "cat aaa bbb >> ccc"라고 하면 aaa와 bbb의 파일내용이 합쳐져서 ccc라는 파일의 기존내용에 추가되어 들어가게 됩니다. >>를 사용하더라도 ccc라는 파일이 없었을 경우에 새로 생성이된다는 사실도 참고로 알아두도록 하십시요.



21. head(파일의 앞부분 내용 확인방법)

head 명령어는 파일내용의 첫부분을 기준으로 출력합니다. 아래의 예는 access_log라는 파일의 첫 5라인만을 보여줍니다.



22. tail (파일의 뒷부분 내용 확인방법)

tail명령어는 파일내용의 뒷부분을 보고자할 때 사용하는 명령어입니다. 숫자를 지정하지 않은 경우에는 마지막 10행만을 보여줍니다.

파일의 마지막 10행만을 보여줍니다.

파일의 마지막 5행만을 보여줍니다.

파일의 50번째행부터 끝까지 출력합니다.



23. find (특정 파일찾는 여러가지 기법들)

리눅스 서버는 윈도우와 같은GUI방식의 운영체제가 아니므로(X윈도우 개념제외) 종종 어떤 파일을 찾아야 할 때에는 어디에 있는지 쉽게 알지 못할 때가 있습니다. 이럴 때 쓰이는 명령어가 find라는 명령어로서 윈도우95나 98등에서 [시작 → 찾기]에 해당하는 기능이라고 할 수 있습니다.

윈도우에서도 이 찾기 기능을 이용하여 특정 날짜에 해당하는 파일이나 특정 파일사이즈에 해당하는 파일이나 특정이름을 가진 파일들을 찾을 수 있듯이 리눅스의 find라는 명령어에도 다양한 옵션이 있습니다.

find명령어의 형식은 다음과 같습니다.

$ find [찾을 디렉토리경로] [찾기옵션] [찾은후행할 작업]

[찾을 디렉토리경로]에는 다음과 같은 것들이 있습니다.

· : 현재 디렉토리이하
/ : 루트디렉토리이하(파일시스템전체)
~ID : 특정ID의 홈디렉토리이하

[찾기옵션]에는 다음과 같은 것들이 있습니다.

-empty : 비어있는 파일
-gid n : 특정 gid를 갖는 파일(n : 특정 gid)
-group gname : 특정 group에 속한 파일(gname : group명)
-name : 지정한 형식을 갖는 파일이름
-newer : 특정 파일 이후에 생성된 파일
-perm : 특정 허가모드를 가지고 있는 파일
-uid n : 특정 uid를 갖는 파일(n : 특정 uid)
-used n : 최근에 n일 이후에 변경된 파일(n : 일수)
-user : 특정파일을 소유하고 있는 소유자의 파일

[찾은 후 행할 작업]에 수행할 내용은 다음과 같은 것들이 있습니다.

-print : 가장많이 쓰는 옵션으로 찾은 파일을 보여줍니다.
-exec : 찾은 파일들에 대해 특정명령을 수행합니다.

위의 예는 루트디렉토리(/)부터 uid가 503인 파일을 찾아서 보여달라(-print)는 명령어입니다.

위의 명령어는 특정가입자(sspark)의 홈디렉토리(~sspark)이하(/home/sspark 이하)에 존재하는 shtml로 끝나는 파일을 찾아서 보여달라는 명령어입니다.

 

위의 명령어는 특정가입자의 홈디렉토리(~sspark)이하에 존재하는 doc로 끝나는(*.doc) 파일을 찾아서 묻지말고(-f) 지워(rm)버리라는 명령어입니다.



24. 특정 명령어 검색법(which, whatis, whereis)

find가 특정 파일을 찾아주는 명령어인데 비해 which라는 명령어는 특정명령어의 위치가 어디인지를 찾아주는 명령어입니다. 리눅스에서는 명령어의 위치를 모두 기억하기 어려우므로 이 명령어를 활용하여 찾고자하는 명령어의 위치를 확인할 수 있습니다.

아래의 예는 perl등으로 프로그램된 CGI를 설치할 때 많이 쓰이는 perl의 경로를 확인하는 것입니다.

whereis란 명령어도 이와 유사한 기능을 하는데 다른 점은 패스에 해당하는 모든 디렉토리를 뒤져서 해당 명령어를 찾아줍니다.

참고로 whatis란 명령어가 있는데 which나 whereis가 명령어의 위치를 찾아주는데 비해 whatis란 명령어는 해당 명령어가 무엇을 하는 것인지 간단하게 보여줍니다.



25. sort (파일내용 정렬하기)

프로그램작업이나 파일조작에 대한 작업을 할 때 텍스트로 된 파일을 정렬해야할 필요가 생깁니다. 이는 주로 시스템에서 얻은 어떤 정보를 가공하여 프로그램에서 입력값등으로 주로 쓰이며 단순히 특정파일의 내용을 정렬하여 보고자 할 때도 쓰입니다.

다음의 예는 name.txt라는 파일에 학생이름이 입력되어 있으며 첫번째는 이를 알파벳 순서대로 정렬을 한 예이며 두 번째는 알파벳 역순으로 정렬을 한 예입니다.



26. file (파일의 종류 확인하기)

리눅스에서 파일의 확장자가 특별한 의미를 갖는 것은 아니지만 파일을 만든 사람이 특정한 목적의 파일임을 나타내기위해서 또는 파일들과 구별하기 위해서 임의로 붙여놓은 것입니다.

예컨데 abc.txt라고 해서 이 파일이 꼭 텍스트파일이란 보장은 없습니다.

따라서 특정파일이 실제로 어떤 종류의 파일인지 확인하는 것이 필요합니다.

즉, 텍스트파일인지 바이너리 파일인지 등에 대한 조사를 하여 보여주는 명령어가 file이란 명령어입니다.

위의 예에서 name.txt는 텍스트파일임을 알 수 있고 index.html은 HTML파일임을 report는 디렉토리임을 각각 알 수 있습니다.



27. du (디스크사용량 체크)

du명령어는 Disk Usage의 약어로 해당 디렉토리의 사용량을 출력해 줍니다.

그냥 "du"라고 하면 현재 디렉토리 이하의 개별 디렉토리별로 사용량을 체크해 주지만 "-s"(summary)을 주게 되면 전체사용량을 간략히 표현합니다. 이때 표현되는 단위는 block으로 Kbyte단위입니다. 이를 좀더 알기쉽게 표현하려면 "-h"(human-readable)라는 옵션을 사용하면 용량단위로 표시하여 좀 더 알기 쉽게 출력됩니다.

다음은 root권한을 가진 관리자가 사용자 각각에 대해서 디스크 사용량을 확인하는 방법입니다.



28. df (파일시스템 디스크사용량 점검)

관리자 명령어중에서 아마도 가장 많이 사용되는 명령어중의 하나가 아닐까 합니다.

서버가 다운되는 가장 흔한 원인중의 하나가 파일시스템이 꽉차서(filesystem full) 시스템이 정지하는 원인입니다. 이런 것을 예방하기 위해 서버관리자는 다양한 방법으로 파일시스템의 사용량을 주기적으로 체크하여야 합니다. 파일시스템의 사용량체크에 필수적으로 사용되는 명령어가 df 입니다.

또한 df는 현재 시스템에서 사용중인 파일시스템 즉 마운트된 디스크 정보와 사용량을 보여줍니다.

df는 /etc/fstab에있는 파일시스템테이블(filesystem table)파일을 참조하여 여기에 할당되어 있는 파일시스템의 전체할당용량과 사용량, 그리고 현재 가용량을 표시해줍니다.

df의 결과값에 있어 기본 단위는 KB이며 -k 옵션을 사용하지 않아도 default가 KB단위입니다. 물론 df -k로 사용을 해도 마찬가지입니다. 또한 df -m을 사용하면 MB단위로 보여줍니다.


29. touch (파일의 시간정보 변경)

비어있는 파일을 만들 필요가 있을 때에는 touch라는 명령어를 사용합니다. abcd.txt라는 파일이 생성되었으며 크기는 0입니다. 

또한 touch 명령어는 대상 파일의  생성시간을 시스템의 현재시간으로 바꾸어 줍니다. 만약 대상파일이 지정되지 않았다면 크기가 0인 비어있는 파일을 생성하게 됩니다.



[원글링크] : https://www.linux.co.kr/home2/board/subbs/board.php?bo_table=lecture&wr_id=1331


이 글을 트위터로 보내기 이 글을 페이스북으로 보내기 이 글을 미투데이로 보내기

 
박성수
파파
헐렁고수