강좌

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


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






--알림--

이 강좌는 리눅스 서버를 관리하고자하시는 분들을 위한 초급 강좌로서 리눅스서버관리에 꼭 필요한 기초 명령어들에 대한 강좌입니다. 모두 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)






























10. chsh (사용쉘 변경)

리눅스의 쉘(shell)에는 아래 예를 보시는 것 처럼 모두 7개의 기본쉘이 있습니다. 물론 리눅스의 기본이 되는 쉘은 bash입니다. 쉘은 OS명령어를 해석해주고 사용자의 사용환경을 제공해주는 것으로 DOS의 command.com의 역할과 같은 것이라 할 수 있습니다. chsh라는 명령어를 이용하여 자기가 사용하는 쉘을 변경할 수 있습니다. 쉘의 종류에는 다음과 같은 것들이 있으며 사용하는 쉘을 변경하는 명령어는 change shell의 약자인 "chsh"입니다. 시스템에서 제공하는 쉘의 종류는 /etc/shells에 정의되어 있습니다.

 

자기가 현재 사용중인 쉘이 어떤 종류인가를 확인하는 방법은 다음과 같습니다.

그리고 사용하고자하는 쉘을 변경하고자 한다면 chsh를 사용하십시오.

sskim이라는 사용자가 자기가 사용하는 쉘을 /bin/bash에서 /bin/csh로 변경한 예입니다. 일반사용자가 chsh를 사용하여 쉘을 변경코자할 경우에 현재 패스워드를 입력해야합니다.

하지만 다음 예와 같이 root계정일 경우에는 패스워드 입력없이 바로 쉘 변경이 가능합니다.

위의 예는 /bin/bash 쉘에서 /bin/sh로 변경한 예입니다.



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

시스템의 날짜와 시간을 확인하고 변경할 수 있으며, 단순히 날짜와 시간 확인은 일반계정에서도 얼마든지 가능하지만 시스템 날짜와 시간을 변경하는 것은 root권한으로만  가능합니다. 다음의 예처럼 시스템의 날짜를 변경코자 한다면 "date MMDDhhmmYY" 와 같은 형식을 사용하면 됩니다.

현재 날짜정보 확인

시스템 날짜 수정

이상과 같이 날짜확인과 날짜 및 시간수정은 이런 방법으로 할 수 있습니다.  다음은 주기적으로 시간을 설정하는 방법에 대해서 알아보겠습니다.

리눅스 서버를 관리하시다 보면 가끔씩 시간이 정확하지 않은 경우가 있을 것입니다. 큰 시간차이는 없겠지만 파일생성시간이나 서버작업시간을 확인하고자 경우, 그리고 서버접속시간을 정확하게 알기 위해서라든지 하는 경우에는 서버의 시간설정이 정확해야 그 효과가 있다고 할 수 있습니다.

필자의 경우에는 다음과 같은 실제상황이 있었습니다.

서버 설치 후에 서버시간에 대해서는 거의 신경을 쓰지 못한 상황에서 서버에 이상이 발생한 것을 확인했었습니다. 해킹을 당한 것 같아서 로그파일을 확인해 보았습니다. 그런데 로그파일에 기록된 로그들의 시간이 모두 현재 시간들과는 차이가 있는 것입니다.

그래서 정확한 접속시간과 작업시간을 확인하지 못하여 로그분석하는데 많은 문제가 있었던 경험이 있었습니다.

서버의 시간은 아주 조금씩 차이가 날 수 있습니다. 서버의 시간을 주기적으로 맞게 수정해 주려면 cron에 다음과 같은 항목을 추가해 주시면 됩니다.

0 0 * * 1 root /usr/bin/rdate -s time.bora.net && /sbin/clock -w

Cron 주기를 너무 짧게 설정해 주시는 것 보다는 일주일 이나 한달에 한번정도씩 rdate가 실행되도록 위의 cron설정을 하시는 것이 좋습니다.

아시겠지만 cron에 위의 설정을 추가 하시려면 "crontab -e"라고 하면 추가하실 수 있습니다.  위의 cron설정 중 time.kriss.re.kr은 시스템 시간을 맞추기 위해 time server역할을 합니다. 이런 time server로서 사용할 수 있는 서버로는 time.bora.net외에도 time.kriss.re.kr와 time.nuri.net등이 있습니다.


12. 명령어 히스토리기능

리눅스 서버는 사용자가 사용한 명령어를 기억하고 있으며 필요할 때에만 언제나 그 명령어를 다시 사용할 수 있습니다. 특히 복잡하고 긴 명령어 일 경우에는 키보드로 다시 입력하기 보다는 이전에 사용했던 명령어를 재사용하는 것이 효율적입니다. 명령어를 다시 사용하는 방법에는 다음과 같이 몇가지 방법이 있습니다.

-  방향(위, 아래)키 이용 -  history 기능즉, 방향키중 위쪽키와 아래쪽키를 이용하면 이전에 사용했던 명령어들이 차례대로 쉘프롬프트에 나타납니다. 그리고 history명령를 입력하면 아래와 같이 이전에 사용했던 명령어들을 번호와 함께 다시 볼 수 있습니다.


그리고 이전에 사용했던 명령어를 다시 사용하려면 아래 예처럼 느낌표(!)뒤에 해당번호를 붙여서 사용합니다. 다음의 예를 보십시오.



이런 history정보는 각 계정의 홈디렉토리에 .bash_history라는 파일명에 그동안 사용했던 명령어를 모두 저장하고 있습니다.

이렇게 이전에 사용했던 명령어들을 활용하시면 굉장히 빠른 작업을 할 수가 있습니다. 그리고 /root/.bash_history 파일은 주기적으로 백업을 해두는 것이 보안을 위해서 그리고 서버관리자의 작업내역 참조를 위해서 필요할 것입니다.

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

리눅스나 유닉스시스템에는 외우기 힘들 정도로 많은 명령어가 있습니다. 이들 명령어를 모두 다 알고 사용할 수 있으면 좋겠지만 어떤 명령어가 있다는 것과 어떤 상황에서 무엇을 확인하고자 할 때는 어떤 명령어를 사용해야 한다는 것 정도만 알아도 시스템관리를 훌륭하게 할 수 있습니다.  시스템 관리를 잘하는 관리자는 명령어 도움말 즉, 매뉴얼 페이지를 잘 활용합니다. 명령어에 대한 도움말이나 사용법등을 확인하려면 "man 명령어"를 사용하십시요.

서버관리자로서의 경력이 수년이상 되시는 분들도 man페이지는 거의 매일 보면서 작업하게 됩니다. 즉 수십개 이상의 옵션들이 있는 명령어들이 대부분이며 모든 명령어에서 사용할 수 있는 많은 옵션들을 모두 외우고 있기에는 역부족입니다. 따라서 자주 사용되는 옵션들은 기억을 하는 것이 좋겠지만 아주 가끔씩 사용되는 옵션들은 필요할 때마다 man페이지를 참조하여 사용하는 것이 일반적입니다.


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

리눅스서버의 여기저기를 다니면서 작업을 하다보면 현재 내가 어떤 디렉토리에 있는가를 확인해야 할 경우가 있습니다. 이때 사용하는 명령어가 pwd이며 현재 디렉토리의 절대 경로를 표시해 줍니다.

그런데 서버관리자들이 서버작업을 하다보면 현재위치를 항상 확인해야 할 필요성이 있습니다. 즉 서버관리자들의 작업위치는 서버의 모든 위치를 대상으로 하기 때문에 현재 어떤 작업을 어디서 하고 있다는 것을 항상 인식해야하기 때문이죠. 즉 서버관리자의 현재 작업위치를 항상 확인하기 위해서 쉘프롬프트에 전체졍로를 표시하도록 설정하는 것이 필요하다는 말입니다.

쉘프롬프트에 전체경로를 표시하기 위해서는 /etc/bashrc 파일의 쉘프롬프트 표시부분을 수정해 주시면 됩니다. 다음의 예를 보십시오.

이 예는 /etc/bashrc 파일의 내용중 쉘프롬프트 표시부분 만을 나타낸 것입니다. 이 부분에서 PS1="[u@h w]이라고 되어 있는 부분이 쉘프롬프트 표시를 해주는 부분으로서 w(소문자)로 해두시면 쉘프롬프트에 전체경로를 표시해 주게 됩니다. 기본적으로는 W(대문자)로 되어있으나 위의 설정은 소문자 w로 수정을 해둔 것이므로 필요에 따라서 수정해서 사용하시면 되겠습니다. 이런 수정을 한 후에 쉘프롬프트에 전체경로가 표시되는가를 확인하기 위해서는 로그아웃해서 다시 로그인 하시거나 아니면 source .bashrc를 해주시면 됩니다. 그리고 다음은 쉘프롬프트에 전체경로가 표시되는 예를 보인 것입니다.

위의 예를 보시는 바와 같이 디렉토리를 이동할 때마다 쉘프롬프트에 전체경로를 표시에 주게 됩니다. 현재 작업위치를 정확히, 그리고 즉시 확인 할 수 있도록 하기 위한 것입니다.


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

"change directory"의 약어로 디렉토리를 이동하기 위한 명령어로 원하는 디렉토리로 이동하고자 할 때는 "cd 디렉토리명"을 사용합니다. 또한 한번에 이동하기 위해 절대경로로 지정하여 이동할 수도 있습니다. 그냥 "cd"라고 하면 자기의 홈디렉토리로 이동합니다.

현재 어디에 있든지 처음에 로그인 했을 때의 위치로 자신의 홈디렉토리로 가게됩니다. 그리고 현재 디렉토리에서 바로 이전에 작업했던 디렉토리로 바로 이동하기 위해서는 "cd –"이라고만 하면 됩니다. 다음의 예를 보십시오.

위의 예는 처음 위치가 /etc 였으며 그 다음 /home으로 디렉토리를 이동해 갔습니다. 그러다 다시 /etc에 작업할 일이 있어 "cd /etc"라고 하지 않고 "cd –"라고만 했습니다. 그랬더니 바로 전에 작업했던 디렉토리로 이동해가는 것을 확인할 수 있습니다.


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

파일을 복사해 주는 명령어로 DOS의 copy 명령어와 같으며 사용하는 형식은 다음과 같습니다.

$ cp <복사할 파일명> <복사되어 생성될 파일명>

위의 예에서 index.html을 index2.html로 복사를 하였습니다. ls -l을 해보면 새로 생성된 index2.html이 있음을 알 수 있습니다.

위의 예는 index2.html이란 파일을 pds라는 디렉토리로 복사한 것입니다. 그리고 pds란 디렉토리로 이동하여 복사된 파일을 확인하였습니다.

참고로, 서브디렉토리까지 모두 한번에 복사를 하려면 -r 옵션을 사용하시면 됩니다.


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

필요한 디렉토리를 만들기 위한 명령어로 "mkdir"과 필요없는 디렉토리를 삭제하기 위한 명령어로 rmdir을 사용합니다.

rmdir로 디렉토리를 지울 때는 반드시 해당 디렉토리가 비워져있어야 하며 비워있지 않은 디렉토리를 지우려고 할 때는 "Directory not empty"란 에러메시지를 보여줍니다.

또한 디렉토리와 그 안에 들어 있는 파일들까지 한꺼번에 지우기 위해서는 예에서 보았던 "rm -rf 디렉토리명"을 사용하면 됩니다. 간단한 예로서 이들 명령어의 사용법을 알아 보겠습니다.

참고로 mkdir명령어에서 -p옵션은 필요한 디렉토리까지 생성하면서 새로운 디렉토리를 만들어주는 옵션입니다.




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


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

 
박성수
파파
헐렁고수