강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

실무명령어# 16-2 : /etc/passwd파일에서 계정명(ID)만 출력하기

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

실무명령어# 16-2 : /etc/passwd파일에서 계정명(ID)만 출력하기

 

웹호스팅서버 또는 많은 사용자들이 사용하는 서버의 /etc/passwd파일에는 수많은 사용자의 계정정보가 저장되어 있습니다.  이때 각 사용자의 ID만을 출력하고자 한다면 어떻게 하면 될까요? awk를 사용하면 간단히 처리할 수 있습니다.  , /etc/passwd파일의 내용을 살펴보면 ":"(콜론)으로 계정 사용자정보의 항목들이 구분되어있다는 것을 알고 계실 것입니다.

 

, 간단히 /etc/passwd파일을 살펴보면 아래와 같이 관리자가 원하는 중요한 정보들이 많이 있습니다.  , /etc/passwd파일에는 다음과 같은 정보들이 순서대로 기록되어 있습니다.

 

 계정명 : 패스워드부분 : UID : GID : 코멘트 : 홈디렉토리 : 기본사용쉘
  $1          $2         $3    $4      $5         $6             $7

 

이들 정보는 awk명령어의 필드분리명령에 의해 왼쪽에서 부터 차례대로 $1....$7에 대응됩니다. 이런 사항을 이용하여 /etc/passwd파일의 정보에서 원하는 부분만을 출력해주는 방법에 대해서 설명합니다.

 

, 아래의 예는 awk를 이용하여 /etc/passwd파일에서 각 계정사용자들의 ID만을 출력하는 것입니다.

[root@file root]# cat /etc/passwd | awk -F: '{print $1}'

 

좀 더 상세히 설명하면 위와 같이 "cat /etc/passwd"명령어로 /etc/passwd파일의 각각의 행들이 "|"(파이프명령어)에 의해 차례대로 awk의 입력으로 들어오게 됩니다.  이때 "-F:"에 의해 입력으로 들어온 /etc/passwd파일의 각각의 행들이 ":"(콜론)으로 구분됩니다.  예를들어 /etc/passwd의 내용중 아래와 같은 행이 있다고 가정 하겠습니다.

 

sspark:x:501:501::/home/sspark:/bin/bash

 

이 행은 "-F:"에 의해 각각의 항목들이 ":"(콜론)으로 구분되어 다음과 같은 awk의 입력변수로 작용합니다.

 

$1에는 sspark이 할당되고,

$2에는 x가 할당되며,

$3에는 501이 할당되고,

$4에는 501이 할당되며,

$5에는 공백이 할당되며,

$6에는 /home/sspark이 할당되고

$7에는 /bin/bash가 각각 할당됩니다.

 

이것이 바로 "-F:"의 의미입니다. 이제 awk에서 사용된 "-F:"의 의미를 확실히 아셨을 것이라 생각됩니다.

 

그렇다면 '{print $1}'는 어떤 의미일까요?

 

위의 의미 그대로 $1만을 출력(print)하라는 의미입니다.

 

설명이 다소 길어지기는 하였지만 아래 명령의 결과로는 /etc/passwd파일의 각각의 행들이 ":"(콜론)문자로 구분된 후 첫번째 단어인 각행의 ID들만이 결과로 출력이 됩니다.

 

[root@file root]# cat /etc/passwd | awk -F: '{print $1}'

root

bin

daemon

gopher

ftp

nobody

rpm

vcsa

nscd

sshd

rpc

rpcuser

nfsnobody

mailnull

smmsp

pcap

apache

squid

webalizer

xfs

named

ntp

gdm

postgres

bible

sspark

working

locli

mysql

test01

test02

test03

jinious

public

samba

[root@file root]#

 

첫번째 사용예의 설명을 정확하게 이해하시기 바랍니다.  이 사용예만 정확하게 이해한다면  다음 예들은 이 예를 조금 응용한 것이므로 쉽게 이해하실 수 있을 것입니다.

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,043 명
  • 현재 강좌수 :  35,853 개
  • 현재 접속자 :  91 명