강좌

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


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






--알림--

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






































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

서버로의 로그인은 로컬(local, console) 로그인과 원격(remote)에서 로그인하는 두가지 방법이 있습니다. 로컬로그인은 console로 직접 로그인하는 것을 의미하며 원격로그인(remote login)은 원거리에서 telnet이나 ssh등을 이용하여 접속하는 것을 의미합니다.

로그인 한다는 의미는 운영체제로부터 정상적인 사용자로 접속허가를 받는다는 의미입니다.

그럼, 우선 telnet으로 원격로그인 하는 예를 간단히 보기로 하겠습니다.


다음은 다른 시스템으로 ssh를 통해 로그인하는 예를 보인 것입니다.

ssh로 로그인하는 방법에는 다음과 같이 두가지 방법이 있습니다.ssh는 telnet의 보안에 취약한 점을 보완할 수 있는 접속도구로서 데이터를 암호화하여 송수신하는 일종의 보안 프로그램입니다.  일단 접속을 한 후에는 telnet을 사용하는 것과 동일하게 사용할 수가 있습니다. 요즘에는 보안을 위해 telnet보다는 ssh를 주로 사용합니다.

ssh에 대해서는 "서버보안편"에서 자세히 설명되므로 여기서는 ssh로 로그인하는 방법에 대한 것만을 확인하도록 하겠습니다.


-l 옵션을 사용하여 로그인계정을 직접 적어주는 방식입니다.


다음은 위와 달리 email 계정형식을 사용하여 접속한 예를 보여준 것입니다. 물론, 결과는 양측 모두 동일합니다.


2. 로그아웃(logout)하기

로그아웃(logout)이란 현재 접속한 서버에서 접속을 종료하고(session종료)  빠져 나가는 것을 말합니다. 간단히 "logout"일라고 입력하거나 "exit"를 입력하면 됩니다.

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

whomai는 EUID(effective userid)라는 것을 확인하는 명령어입니다. 접속한 시스템에서 나 자신이 누구인가를 확인해 보는 방법이 몇가지 있습니다. ID를 확인하거나 속해있는 Group, 홈디렉토리등에 대한 간단한 정보를 조회해 볼 수 있습니다.

아래 명령어들의 결과는 배포판에 따라 조금씩 다르게 출력될 수 있으며 경우에 따라서 적절히 사용해 보시기 바랍니다.  "시스템에 접속해 있는 나 자신이 누구인가?"를 시스템에서 확인해 보는 것으로 가장 간단한 명령입니다.

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

접속해 있는 호스트명등 whoami 보다 좀 더 자세한 정보를 보여줍니다.

출력결과를 보면 www.kusung.co.kr은 현재 시스템을 나타내며 sskim은 이 시스템에 접속해 있는 자신의 ID이며 그 뒤엔 접속한 경로와 날짜, 그리고 어디서 접속을 했는지를 보여줍니다.


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

id는 주로 시스템에 속해있는 자신에 대한 uid나 gid에 대한 정보를 보여줍니다. 필자가 주로 사용하는 명령어는 whoami나 who am i 보다는 id를 많이 사용합니다.

6. groups(그룹정보 확인)

리눅스 계정을 사용하는 사용자에게는 한 개이상의 그룹이 존재할 수 있습니다. /etc/group파일에는 전체 그룹에 대한 정보가 저장되어 있습니다. 계정 하나에 하나의 그룹만이 존재 할 수 있는 것은 아니며 어떤 소속에 속하게 하기 위해서나 또는 어떤 그룹에 특정한 권한을 부여하기 위해 그룹을 만들고 그 그룹에 특정한 계정들을 속하게 만들어 두는등 하나의 그룹에 여러 명의 사용자 계정이 소속될 수 있습니다. 이런 환경에서 자기가 속해 있는 그룹이 어떤 것들이 있는가를 확인하는 명령어가 groups란 명령어입니다.  리눅스에서는 계정이 생성될 때 두가지가 자동으로 만들어 집니다.  홈디렉토리(/home/sspark)와 자기자신의 그룹(sspark)이 그것입니다.  말씀드린 바와 같이 한 계정에 대한 다수의 그룹이 존재할 수 있습니다.  다음은 하나의 그룹에만 소속된 예를 보인 것이다 .

이번에는 다수의 그룹에 속해 있는 예입니다.

참고로 특정 그룹에 계정 사용자를 소속 시키려면 /etc/group파일에서 원하는 그룹행의 마지막에 ID를 추가시키주면 됩니다.


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

finger는 지정한 ID에 대한 위의 네 경우 보다 훨씬 자세한 정보를 보여줍니다. 그리고finger라는 명령을 이용하여 원격지의 서버에 존재하는 특정계정의 정보를 확인할 수 있습니다. 그렇게 유용하다고는 할 수 없으나 해킹을 위한 도구로도 finger가 사용될수 있음을 알고 계셔야합니다. 따라서 대부분의 서버관리자들은 finger의 사용을 제한해 두거나 아예 finger를 사용하지 못하도록 막아두는 경우도 많이 있습니다.

다음은 자신의 로컬서버에 존재하는 sskim이라는 계정사용자의 정보를 간단히 확인해본 예입니다.

다음은 원격지의 서버에 존재하는 특정 계정정보를 확인해 본 예입니다.

finger에 대한 응답을 제대로 하기 위해서는 /etc/services 파일과 /etc/inetd.conf파일(7.X에서는 /etc/xinetd.d/finger 파일)에 finger에 대한 설정이 제대로 되어 있어야만 합니다.

다음은 finger에 대한 inetd.conf파일내의 설정과 /etc/xinetd.d/finger파일의 예입니다.

/etc/inetd.conf 파일내의 finger설정 예 (Redhat 7.0 이전)

/etc/xinetd.d/finger 파일의 설정 예 (Redhat 7.0 이후)


8. 홈디렉토리는

로그인을 했을 때 처음으로 보이는 곳이 자기의 홈디렉토리입니다. 계정 생성시의 설정항목을 변경하지 않았다면 사용자 홈디렉토리는 /home밑에 ID와 같은 디렉토리명이 자기의 홈디렉토리가 됩니다. 서버접속 중 "cd"라고만 하면 로그인 했을 때의 홈디렉토리로 이동합니다.

홈디렉토리의 기본적인 설정은 /etc/passwd파일 내의 홈디렉토리 필드에 설정이 되어 있습니다. 아래의 예는 /etc/passwd 파일내용 중 superman이라는 사용자의 설정 부분 만을 보인 것입니다.


여기서 홈디렉토리 설정은 6번째 필드에 /home/superman 이라고 설정이 되어 있습니다.

주로 서버관리자는 계정사용자들의 홈디렉토리를 정확히 확인하기 위해서 /etc/passwd파일을 참조하게 됩니다.


9. passwd (패스워드변경)

리눅스를 포함한 모든 시스템에 있어 제1차적인 보안이 패스워드입니다. 이런 패스워드는 주기적으로 한번씩 변경을 해주어야하는데 그 방법을 간단히 알아 보도록 하겠습니다.

로그인 후에 어디서나 "passwd"라고만 하면 기존의 패스워드를 입력하고 새로운 패스워드를 2회 반복입력하면 패스워드가 변경됩니다.

또한 root권한을 가진 서버관리자는 모든 사용자의 패스워드를 변경할 수 있으며 이때는 기존 패스워드 입력없이 새로운 패스워드만 2회 반복 입력해 줌으로써 모든 사용자의 패스워드 변경이 가능합니다.

 

알고 계시는 바와 같이 패스워드와 관련된 파일은 /etc/passwd 파일과 /etc/shadow파일입니다. 서버관리자는 주기적으로 /etc/passwd파일과 /etc/shadow파일을 백업해 두는 습관이 필요합니다.





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


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

 
박성수
파파
헐렁고수