현재 로그인 한 사용자의 정보를 보여주는 명령어

사용법 : w [옵션] [사용자] 
-f : 원격에서 접속한 호스트의 이름을 보여주지 않는다. 
-h : 각 필드에 대한 헤딩 정보(필드명)를 생략한다. 
-s : 간략한 형식으로 정보를 보여준다. 
-V : 버전 정보를 보여준다. 

현재 로그인 한 사용자 정보를 저장하는 /var/run/utmp 파일의 정보를 보여준다.
who 명령과는 조금 다르게 WHAT필드가 있어 사용자가 현재 로긴해서 하고 있는 작업 내용을 볼 수 있다..
2005/06/16 18:27 2005/06/16 18:27
모든 터미널에 메시지를 출력하는 명령어

사용법 : wall [메시지] 

시스템을 사용하는 모든 터미널에 메시지를 보내는 명령이다. 이 경우 현재 로그인한 사용자들은 Wall 명령으로 보내온 메시지를 보고, 작업하던 내용을 종료하게 된다.
wall 명령 후 입력하고 싶은 메시지즈를 입력하면, 각 터미널에서 작업중인 사용자들은 Broadcast message로 시작하는 메시지와 함께 입력한 메시지를 볼 수 있다.
2005/06/16 17:16 2005/06/16 17:16
문서가 몇 줄 몇 단어로 이루어져 있는지 한번에 세어 준다.

사용법 : wc [옵션] [파일] 
-c, -bytes, --chars : 문자 수만을 보여준다. 
-l, --lines : 라인 수만을 보여준다. 
-w, --words : 단어 수만을 보여준다. 
--help : 도움말을 보여준다. 
--version : 버전정보를 보여준다. 

wd 명령은 파일의 라인, 단어, 문자의 수를 한 줄로 볼 수 있다.
아래 예제는 httpd.conf 파일은 1467개의 라인과 7304의 단어와 51633개의 문자로 되어 있다는 의미이다. 각각의 라인과 단어와 문자의 순서에 유의하자.

# wc /etc/httpd/conf/httpd.conf 
1467    7304   51633 /etc/httpd/conf/httpd.conf 

참고로 -L 옵션은 가장 긴 줄의 길이만 나타낸다.

# wc -L /etc/httpd/conf/httpd.conf 
105 /etc/httpd/conf/httpd.conf 

아래는 apache 사용자 소유의 프로세스의 개수를 알 수 있다. ps -u 옵션은 지정한 소유자의 프로세스만을 보여 주는 명령이다. 이를 파이프로 받아 wc -l 명령은 라인수를 출력하게 된다. 결과 값 18은 현재 apache 소유자의 프로세스 개수가 18개라는 말이다.

# ps -u apache | wc -l 
18 

현재 로긴한 사용자 수를 파악해 보자. who 명령은 현재 접속한 사용자를 보여주는데, wc -l 명령으로 현재 로그인한 사용자 수를 보여준다. 현재 이 호스트에는 4명의 사용자가 로그인하여 있다.

# who | wc -l 
4 
 
2005/06/16 17:15 2005/06/16 17:15
whatis DB를 검색하여 키워드에 해당하는 명령어만 보여준다.

사용법 : whatis 키워드 

apropos는 whatis DB를 검색해 관련 명령어와 그 명령어에 대한 간단한 설명을 보여 준다. whatis는 whatis DB에서 명령어만 검색하여 출력되지만 apropos는 명령어, 설명 모두를 검색해 결과를 보여준다. 이는 man -k 명령과 동일하다.

# apropos who 
at.allow [at]        (5)  - determine who can submit jobs via at or batch 
at.deny [at]         (5)  - determine who can submit jobs via at or batch 
ftpwho               (1)  - show current process information for each FTP session 
fwhois [whois]       (1)  - query a whois or nicname database 
w                    (1)  - Show who is logged on and what they are doing 
who                  (1)  - show who is logged on 
whoami               (1)  - print effective userid 
whois                (1)  - query a whois or nicname database 
whom                 (1)  - report to whom a message would go 
# whatis who 
who                  (1)  - show who is logged on 

[관련 명령어]
apropos whatis DB를 검색하여 관련 명령어를 보여줌
whereis 실행파일, 소스, 메뉴얼의 위치를 검색
2005/06/16 17:07 2005/06/16 17:07
명령어를 입력 받아 해당 명령어의 절대 경로를 찾아준다.

whereis [옵션] 파일명 
-b : 바이너리 파일만 찾는다. 
-m : 메뉴얼 페이지만 찾는다. 
-s : 소스만 찾는다. 
-u : 일반적이지 않은 항목을 찾는다. 이 옵션은 일반적으로 특정 파일을 제외하는데 사용된다. 
-B : 실행 파일을 찾을 경로를 지정한다. 
-M : 메뉴얼 페이지를 찾을 경로를 지정한다. 
-S : 소스 파일을 찾을 경로를 지정한다. 
-f : 경로 지정이 끝나고 다음에 오는 것은 찾을 파일 이름을 알리는 옵션이다. 
이 옵션은 -B, -M, -S 옵션들이 사용될 때에 사용해야 한다. 

whereis는 실행파일의 위치와 함께 소스, 설정파일, 메뉴얼 페이지를 검색하여 보여준다. 이는 locate(slocate) 명령보다 검색 속도가 느리고 검색범위에 제한이 있으며, 출력결과를 단순하게 보여준다.
which 명령은 $PATH내의 실행파일의 위치를 알려준다.
반면에, whereis는 $PATH내의 실행 파일 경로뿐만 아니라, 메뉴얼 페이지의 전체 경로도 알려 준다.
아래와 같이, whereis 명령으로 rm 명령의 실행 파일 위치와 맨페이지 위치를 한 번 살펴보자.

# whereis rm 
rm: /bin/rm /usr/share/man/man1/rm.1.gz 

# which rm 
alias rm='rm -i' 
/bin/rm 
 
2005/06/16 17:05 2005/06/16 17:05
$PATH 환경변수 내의 파일 위치를 알려주는 명령어

사용법 : which [옵션] [--] [명령어] [...] 
-a, --all : 모든 것을 보여준다. 
-i, --read-alias : alias 설정 환경을 보여준다. 
--skip-alias : alias 설정을 무시한다. 
--skip-dot : dot(.)으로 시작하는 디렉토리를 제외한다. 
--skip-tilde : 틸드(~)로 시작하는 디렉토리($HOME 디렉토리)를 제외한다. 
--show-dot : dot(.)으로 시작하는 디렉토리를 포함한다. 
--show-tilde : 틸드(~)로 시작하는 디렉토리를 포함한다. 
-v, -V, --version : 버전정보를 보여준다. 

PATH 환경변수에 있는 디렉토리를 모두 검색하여, 찾고자 하는 명령어의 full path를 보여준다.
아래와 같이 which는 alias설정이 되어 있고, /usr/bin/which 에 위치한다.

# which which 
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde' 
        /usr/bin/which 
2005/06/16 17:03 2005/06/16 17:03
현재 호스트에 로긴한 사용자 정보를 보여주는 명령어

사용법 : who [옵션] .. [파일 | 인수1 인수2] 
-m : who am i' 와 같음. 
-q, --count : 로그인명과 로그인한 횟수를 출력한다. 다른 옵션은 무시된다. 
-s : 무시된다; 단지 다른 버전의 who 와 호환되도록 하기 위함이다. 
-i, -u, --idle : 로그인 후 사용자가 얼마의 시간, 분 동안 한가하게 있었는지 출력해준다. .'은 바로 방금 전까지도 활동을 하고 있다는 의미이다. 
old' 는 24시간 이상 한가하게 있었음을 의미한다. 
-H, --heading : 칼럼 헤더 라인을 출력한다. 
-w, -T, --mesg, --message, --writable : -s 와 마찬가지로, 로그인명 다음에 사용자의 메시지 상황을 문자로 출력한다. 
+ : write 메시지 허가 
- : write 메시지 불허 
? : 터미널 장치를 찾을 수 없음 

--help : 사용법을 출력한다. 
--version : 버전정보를 출력한다. 

현재 접속한 사용자를 보여주는 것으로, utmp 파일의 저장된 정보를 보는 어플리케이션이다. 사용자가 원경 호스트에 로긴할 경우 utmp에 로긴한 사용자 정보를 기록하고 사용자가 원격 호스트에서 로그아웃 할때, 기록되어 있는 정보를 삭제하게 된다. 레드햇 리눅스 기준으로 utmp 파일은 /var/run/utmp에 저장된다.
who 명령은 현재 호스트에 접속해 있는 사용자의 로그인명, 터미널, 로그인 시간, 원격 호스트 또는 X 디스플레이를 보여준다.
2005/06/16 17:02 2005/06/16 17:02
현재 로긴한 사용자 ID를 보여준다.

사용법 : whoami 

사용자명에 연관된 현재의 사용자 ID를 보여준다. 이것은 id -un 명령과 동일하다. 이 명령은, 처음 로그인한 다음 su 명령으로 다른 사용자로 로그인하여 사용하다가 지금 사용하는 계정이 어느 계정인시를 확인할 때 사용한다.
id는 현재 사용자의 실제 ID와 유효 사용자 ID, 그룹 ID까지 모두 보여주지만, whoami 는 로그인한 사용자의 ID만을 보여준다.
2005/06/16 17:01 2005/06/16 17:01
명령행에서 간단한 메시지를 보내는 명령어

사용법 : write 사용자 [tty] 

write는 간단하게 호스트에 접속해 있는 사용자에게 메시지를 보낼 수 있다. 굳이 비교하자면 여러 통신이나 인터넷 사이트에서 제공하는 쪽지 보내기 기능 같은 것이다.
admin 사용자가 root 어드민에게 메시지를 보내보자. 메시지를 끝낼 때는 Ctrl+D를 입력하면 된다.
2005/06/16 17:00 2005/06/16 17:00
인자들을 필터링하여 넘겨주고 그 명령어를 다시 조합하여 처리하는 명령어

사용법 : xargs [옵션] [명령어] 
-eo[=eof-str], -e[eof-str] : EOF 또는 지정된 문자열이 나올때 까지 계속 xargs를 통한 필터링을 수행한다. 
--help : 도움말을 보여준다. 
--repalce[=replace-str], -i[replace-str] : 각각의 ReplaceString을 Argument에 삽입하면서, 표준 입력의 각 행을 Command 매개변수의 인수로 삽입합니다. 
--max-lines[=max-lines], -l[max-lines] : 비 공백 매개변수 행의 지정된 수와 함께 Command 매개변수는 표준 입력으로부터 읽는다. 
--max-args=max-args, -n max-args : Number 매개변수에 의해 최대로 지정될 때까지 가능한 한 많은 표준 입력 인수를 사용하여 Command 매개변수를 수행한다. 
--interactive, -p : Command 매개변수를 수행할지의 여부를 묻는다. 
 또한 -p 플래그가 -t 플래그를 작동시킨다. 
--max-chars=max-chars, -s max-chars : 명령 라인마다 최대 캐릭터 용량을 제한한다. 
--verbose, -t : 실행 과정을 자세히 보여준다. 
--version : 버전을 보여준다. 
--exit, -x : 명령라인이 -s 크기 플래그에 의해 지정한 바이트 보다 클 경우 xargs를 종료한다. 

xargs는 명령어에 인자를 필터링해서 넘겨주고 명령어 자신을 재조합을 한다. 자신이 받아 들인 데이터를 필터용으로 조각내서 명령어가 처리할 수 있게 한다.
다음은 xargs 명령을 사용한 예제들이다.
a. 현재 디렉토리의 모든 파일을 하나씩 확인하면서 .gz 파일로 압축해보자.

# ls | xargs -p -l gzip 

b. 현재 디렉토리의 파일을 한 줄에 10개씩 나타내 보자.

# ls + xargs -n 10 echo 

c. 아파치와 관련된 패키지를 하나의 명령 조합으로 삭제해 보자.

# rpm -qa |grep apache | xargs rpm -e --nodeps 
2005/06/16 16:58 2005/06/16 16:58
NIS 바인딩 프로세스로, NIS 서버와 클라이언트를 연결한다.

사용법 : ypbind [옵션] 
-broadcast : 지정한 NIS 서버에 바인딩을 위해 정보를 브로드캐스팅한다. 
-ypset : 원격호스트의 ypset 명령을 승인한다. 이는 보안상 매우 위험하므로, 디버깅할때만 사용한다. 
-ypsetme : ypset 요청을 로컬 호스트에만 승인하는지 나타낸다. 이는 신뢰하지 않는 패킷으로 네트워크를 깨뜨릴 수 있으므로 옵션을 추천하지 않는다. 
-c : 설정 파일이 에러가 있는지 체크한다. 
-debug : 디버그 모드 
-f configfile : 기본 설정파일인 /etc/yp.conf 파일을 사용하지 않고, 지정한 설정 파일을 사용한다. 
-p port : 지정한 포트를 사용한다. 
--version : 버전정보를 보여준다. 

ypbind는 NIS(Network Information Service/System) 서버 바인딩 서비스를 위한 /etc/yp.conf 설정 파일을 가지고 있다.
클라이언트가 NIS 맵으로부터 정보를 요청하면 ypbind 데몬은 이를 네트워크에서 브로드캐스팅 한다. 서버가 응답하면 클라이언트는 데몬에게 인터넷 주소와 포트 번호 정보를 넘겨준다.
2005/06/16 16:30 2005/06/16 16:30
NIS 데이터베이스의 모든 키 값을 보여주는 명령어

사용법 : ypcat [옵션] mapname 
-d domain : domainname 명령에 의해 나타나는 도메인을 사용하지 않고, 지정한 domain을 사용한다. 
-k : 맵 키를 보여준다. 
-t : mapname을 맵 이름으로 번역하지 않는다. 
-x : 맵 별명 번역 테이블을 보여준다. 

NIS 서버를 설정하였다면, 이를 테스트할 수 있어야 한다. ypcat 명령은 기본 설정과 일을 만들고 이것이 서버에 연결할 수 있는지 테스트한다.
ypcat -x 명령으로 맵 별명 번역 테이블을 한 번 보자.

# ypcat -x 
Use "ethers"    for map "ethers.byname" 
Use "aliases"   for map "mail.aliases" 
Use "services"  for map "services.byname" 
Use "protocols" for map "protocols.bynumber" 
Use "hosts"     for map "hosts.byname" 
Use "networks"  for map "networks.byaddr" 
Use "group"     for map "group.byname" 
Use "passwd"    for map "passwd.byname" 

hosts.byname을 지정하여 서버에 제대로 연결되는지 확인해 볼 수 있다.

# ypcat hosts.byname 

네트워크 전체의 암호 맵인 passwd.byname을 보려면 맵 이름인 passwd을 지정한다.

# ypcat passwd 
2005/06/16 16:29 2005/06/16 16:29
NIS 서버의 사용자 정보를 변경하는 명령어

사용법 : ypchfn [사용자] 

ypchfn 명령은 RPC를 통해 호스트의 yppasswdd 데몬에 접속하여 사용자 이름, 주소, 전화번호 등의 정보를 변경하는 명령어로, finger 명령으로 보여지는 정보이다. 이른 yppasswd -f 명령과 동일하다.
아래는 ypchfn 명령을 실행하였을 때, 보여주는 항목들이다. 항목을 입력하지 않으려면, 그냥 엔터를 입력하고 아니면 사용자 정보를 입력한다.
아래는, ypchfn 명령만 입력하여 로그인한 사용자의 정보를 변경하였다.

# ypchfn 
Name []: 
Location []: 
Office Phone []: 
Home Phone []: 
2005/06/16 16:20 2005/06/16 16:20
NIS 서버의 사용자 셀을 변경하는 명령어

사용법 : ypchsh [사용자] 

ypchsh 명령은 보통 chsh 명령과 같은 기능을 하는 것으로 RPC를 통하여 호스트의 yppasswdd 패스워드 데몬에 접속하여 셀을 변경할 수 있다. 이는 yppasswd -l 명령과 동일하다.
아래는 ypchsh 명령을 실행하였을 때, 보여지는 내용이다. 현재의 기본 설정된 셀은 /bin/bash 로 나타나 있으며, 변경하고자 하는 셀을 입력하면 된다.

# ypchsh 
Password: 
New shell [/bin/bash]: 
2005/06/16 16:18 2005/06/16 16:18
NIS 맵 내에서 주어진 키 값을 보여주는 명령어

사용법 : ypmatch [옵션] key...mapname 
           ypmatch -x 
-d domain : domainname 명령으로 보여지는 기본 도메인을 사용하지 않고 지정한 domain을 사용한다. 
-k : 맵 키를 보여준다. 
-t : 맵 이름을 별명으로 변역하지 않는다. 
-x : 맵 별명 테이블을 보여준다. 

ypmatch 명령은 NIS 맵에서 하나 이상의 키와 연결된 값을 보여준다.
아래는 ypmatch -x 명령으로 보여주는 맵 별명 테이블이다.

# ypmatch -x 
Use "ethers"    for map "ethers.byname" 
Use "aliases"   for map "mail.aliases" 
Use "services"  for map "services.byname" 
Use "protocols" for map "protocols.bynumber" 
Use "hosts"     for map "hosts.byname" 
Use "networks"  for map "networks.byaddr" 
Use "group"     for map "group.byname" 
Use "passwd"    for map "passwd.byname" 

그럼 그 중에서 nis 도메인에 있는 hosts 맵의 host1키를 보도록 하자.

# ypmatch -d nis -k host1 hosts 

-d옵션은 지정한 도메인에 대한 정보를 -k 옵션으로 지정한 맵 키를 보여주게 되는 것이다.
2005/06/16 16:16 2005/06/16 16:16
NIS 서버의 사용자 패스워드 정보를 변경하는 명령어

사용법 : yppasswd [옵션] [사용자] 
-f : ypchfn 명령과 같다. 
-l : ypchsh 명령과 같다. 
-p : 패스워드를 변경한다. 
-?, --help : 도움말을 보여준다. 
--usage : 간단한 사용법을 보여준다. 
--version : 버전정보를 보여준다. 

보통 시스템에서는 NIS 패스워드와 그룹파일을 일반적으로 /var/yp/ypfiles/에 저장한다. 이것을 사용할 경우엔 일반적인 패스워드 정보나 변경을 하는 명령인 passwd, chfn, adduser등을 사용할 수 없다. 이럴 경우 yppasswdd의 패스워드 데몬을 띄운 후, yppasswd, ypchsh, ypchfn 명령으로 이 같은 패스워드 사용자 정보를 변경 할 수 있느 것이다.
admin 사용자의 NIS 암호를 변경하려면 다음과 같이 한다.

# yppasswd admin 
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully 

yppasswd -f 명령은 ypchfn 명령과 동일한 역할을 한다.

# yppasswd -f admin 

yppasswd -l 명령은 ypchsh 명령과 동일한 역할을 한다.

# yppasswd -l admin 
2005/06/16 16:13 2005/06/16 16:13
마스터 서버의 NIS 맵과 버전을 보여주는 명령어

사용법 : yppoll [옵션] mapname 
옵션 
-d domain : domainname 명령으로 보여지는 기본 도메인을 사용하지 않고 지정한 domain을 사용한다. 
-h host : 기본 서버가 아닌 지정한 host를 사용한다. 기본 서버는 ypwhich 명령으로 찾는다. 

yppoll 명령은 ypserv 데몬을 사용하여 지정한 mapname의 NIS 맵과 버전에 대한 정보를 보여준다.
2005/06/16 16:12 2005/06/16 16:12
NIS 서버의 변경된 데이터베이스가 적용되도록 하는 명령어

사용법 : yppush [옵션] mapname 
-d domain : domainname 명령으로 보여지는 기본 도메인을 사용하지 않고 지정한 domain을 사용한다. 
-h host : 기본서버가 아닌 지정한 host를 사용한다. 기본 서버는 ypwhich 명령으로 찾는다. 

yppush 명령은 마스터 서버의 변경된 데이터베이스가 슬레이브 서버에 적용되도록 하는 명령어이다. 슬레이브 서버들은 yppush 명령을 통해 변경 사항을 체크하고, 변경된 데이터베이스에서 필요한 변경사항들을 업데이트 할 수 있다.
2005/06/16 16:10 2005/06/16 16:10
NIS 서버 프로그램이다

사용법 : ypserv [옵션] 

ypserv는 NIS(Network Information Services)서버에서 클라이언트로 브로드 캐스팅하면서 서버의 위치를 알리고 클라이언트들의 요청을 받아 응답 처리하는 역할을 한다. 이에 대한 설정파일은 /etc/ypserv.conf 파일이다. 기본적으로 설정된 내용을 특별히 수정할 것은 없다.
/var/yp/securenets파일이 있는 경우, ypserv 명령은 파일에 지정된 IP 범위 내에서만 호스트에 응답한다. 적절한 네트워크 범위를 지정하여 수정하여 준다.
모든 설정이 되었다면, ypserv 데몬을 실행한다.

# /etc/rc.d/init.d/ypserv start  
2005/06/16 16:08 2005/06/16 16:08
압축되어 있는 텍스트 파일의 내용을 볼 수 있는 명령어

사용법 : zcat [옵션] [파일...] 
-c, --stdout : 압축 파일을 변환하지 않고, 기본출력으로 보여준다. 
-d, --decompress : 압축을 해제한다. 
-f, --force : 출력파일을 강제로 덮어쓴다. 
-h, --help : 도움말 보여준다. 
-l, --list : 압축된 파일들의 목록을 보여준다. 
-L, --license : 소프트웨어 라이센스를 보여준다. 
-n, --no-name : 원본 파일의 이름, 시간을 저장하지 않는다. 
-N, --name : 원본파일의 이름, 시간을 저장한다. 
-q, --quiet : 모든 경고를 보여주지 않는다. 
-r, --recusive : 하위 디렉토리까지 회귀적으로 작동한다. 
-S .suf  -suffix .suf : .suf 확장자로 압축한다. 
-t --test : 압축된 파일 그대로 테스트한다. 
-v --verbose : 자세하게 보여준다. 
-1 --fast : 압축을 좀 더 빠른 속도로 한다. 
-9 --best : 압축률을 높인다. 

zcat 명령은 gzip 이나 compress 같은 압축 파일의 내용을 볼 수 있다. 이는 guznip -c 옵션과 동일하다.
2005/06/16 16:07 2005/06/16 16:07