※ 요약

리눅스 명령어 printenv는 print environment VARIABLE의 약자로써, 환경 변수의 값을 출력하는 명령어다. 명령어 실행시 특정 환경 변수명을 지정하면 해당 환경 변수 값만 출력하고 환경 변수명 없이 명령어만 실행할 경우 시스템에 있는 모든 환경 변수의 값을 출력한다.


※ 경로

/usr/bin/printenv


※ 사용법

printenv [옵션]... [환경 변수명]...


※ 옵션

 Long옵션

 설명

 --help

 printenv 명령어의 사용법 출력

 --version

 printenv 명령어의 버전 정보 출력



※ 사용예

아래는 printenv 명령어의 실행예다.


※ 관련 명령어

env : 환경 변수 보기 및 변경

echo : 환경 변수 출력

export : 환경 변수 확인 및 수정


※ 요약

리눅스 명령어 env는 현재 지정되어 있는 환경 변수들을 출력하거나, 새로운 환경 변수를 설정하고 적용된 내용을 출력하는 명령어다.


※ 경로

내부 명령어


※ 사용법

env [옵션]... [name=값]... [명령 [인수]...]


※ 옵션

 옵션

 Long옵션

 설명

 -i

 --ignore-environment

 현재 환경을 무시하고 지정한 변수 값을 따름

 -u

 --unset name

 지정한 변수(name)를 제거

 

 --help

 env 명령어의 사용법 출력

 

 --version

 env 명령어의 버전 정보 출력



※ 사용예

옵션 없이 env 명령어만 입력하여 변수 값만 출력해 보았다.


※ 관련 명령어

echo : 환경 변수 출력

export : 환경 변수 확인 및 수정

printenv : 환경 변수 보기


※ 요약

리눅스 명령어 dir은 디렉토리와 파일 목록을 출력하는 명령어로써 ls 명령어와 동일한 기능을 한다. MS-DOS에도 있는 명령어라 MS-DOS에 익숙한 사용자라면 편하게 사용할 수 있다.


※ 경로

/usr/bin/dir

※ 사용법

dir [옵션]... [파일]...

[옵션] : 생략 가능하고 여러개 사용가능

[파일] : 생략 가능하고 여러개 지정가능


※ 옵션

옵션은 보통 (-)와 함께 입력하여 사용한다.

그 밖에 LONG 옵션을 제공하는데, LONG 옵션은 보통 (--) 기호를 선행하여 사용한다.

 옵션

 Long 옵션

 설명

 -a

 --all

 .을 포함하여 경로 안의 모든 내용을 출력

 -A

 --almost-all

 .과 ..을 제외한 모든 내용을 출력

 -b

 --escape

 알파벳 형식의 리스트를 출력

 

 --block-size=SIZE

 지정한 바이트(SIZE) 만큼의 블록을 사용

 -B

 --ignore-backups

 ~로 끝나는 백업 파일을 출력하지 않음

 -c

 

 -lt 옵션과 함께 마지막 변경 시간을 출력하고 시간을 기준으로 정렬

 -l 옵션과 함께 마지막 변경된 시간을 출력하고 이름을 기준으로 정렬

 -C

 

 열의 엔트리를 출력

 

 --color[=WHEN]

 파일의 타입을 색으로 구별함

 WHEN에 올 수 있는 값은 'never', 'always', 'auto'

 -d

 --directory

 디렉토리의 경로를 출력, 심볼릭 링크라면 원래의 링크 정보를 출력 안 함

 -D

 --dired

 emacs를 위한 출력 형태를 생성

 -f

 

 정렬하지 않음, 이 옵션은 -aU 옵션을 활성화하고 -ls --color 옵션을 비활성화

 -F

 --classify

 목록의 마지막에 (*/=>@|) 중에 하나의 지시자를 붙임

 (실행파일은 *, 경로는 /, 소켓은 =, 심볼릭 링크는 @, FIFO는 |)

 

 --file-type

 -F, --classify과 비슷하나, *은 덧붙이지 않음

 

 --format=WORD

 옵션 대신 워드 서식을 지정하여 출력

 (across는 -x, commas는 -m, horizontal는 -x, long는 -l, single-column는 -1, verbose는 -l, vertical는 -C)

 

 --full-time

 -l --time-style=full-iso와 비슷함

 -g

 

 -l과 비슷하나 소유자의 리스트를 출력하지 않음

 

 --group-directories-first

 파일 이전에 그룹 디렉토리를 먼저 출력

 -G

 --no-group

 긴 리스트 형식으로 출력하나 그룹 이름은 출력하지 않음

 -h

 --human-readable

 -l과 함께 사람이 읽기 쉬운 형식의 크기로 출력

 

 --si

 -h와 비슷하나 1,024 단위가 아닌 1,000의 단위로 출력

 -H

 --dereference-command-line

 심볼릭 링크면 실제로 참조하는 목록을 출력

 

 --hide=PATTERN

 지정한 PATTERN과 매칭되는 리스트를 숨김(-a나 -A 옵션이 우선함)

 

 --indicator-style=WORD

 목록 이름에 WORD 스타일의 지시자를 추가

 (none은 기본값, slash는 -p, file-type은 --file-type, classify는 -F)

 -i

 --inode

 각 파일의 인덱스 값을 출력

 -I

 --ignore=PATTERN

 지정한 PATTERN에 매칭되는 목록을 출력하지 않음

 -k

 --kibibytes

 --block-size=1K와 비슷함

 -l

 

 긴 리스트 형식으로 출력

 -L

 --dereference

 심볼릭 링크의 정보를 보여줄 때 링크 파일의 원본 파일의 정보를 출력

 -m

 

 콤마로 구분된 목록 형식으로 출력

 -n

 --numeric-uid-gid

 -l 옵션과 비슷하나, 숫자 형식의 사용자와 그룹 ID를 출력

 -N

 --literal

 원래의 이름 형식으로 출력(보통 영문이 아닌 경우 \를 붙여서 출력)

 -o

 

 -l와 비슷하지만 그룹의 정보를 출력하지 않음

 -p

 --indicator-style=slash

 디렉토리에 슬래시(/)를 추가

 -q

 --hide-control-chars

 그래픽이 아닌 문자 대신 ?를 출력

 -Q

 --quote-name

 목록에 쌍 따옴표로 감싸서 출력

 -r

 --reverse

 정렬의 순서를 역순으로 바꿈

 -R

 --recursive

 현재 디렉토리를 기준으로 모든 하위의 디렉토리를 출력

 -s

 --size

 각 파일이나 블록에 할당된 크기를 출력

 -S

 

 파일의 크기를 기준으로 정렬

 -t

 

 수정된 시간을 기준으로 정렬

 -T

 --tabsize=COLS

 기본값 8 대신 지정한 COLS를 탭 간격으로 지정

 -u

 

 -lt 옵션과 함께 접근 시간을 기준으로 정렬

 -l 옵션과 함께 접근 시간을 출력하는데 이름을 기준으로 정렬

 -U

 

 정렬하지 않음

 -v

 

 

 -w

 --width=COLS

 현재 값 대신 스크린 넓이(COLS)를 지정

 -x

 

 열의 기준 대신 라인의 기준으로 출력

 -X

 

 목록의 확장자를 기준으로 알파벳 순으로 정렬

 -Z

 --context

 각 파일의 SELinux 보안 컨텍스트를 출력

 -1

 

 줄 별로 하나의 파일을 출력

 

 --help

 사용법을 출력

 

 --version

 버전 정보를 출력


※ 사용예

사용법 및 사용예는 ls와 같으므로 ls 페이지를 참고하기 바란다.



※ 요약

리눅스 명령어 lsof는 현재 사용중인 파일들의 목록과 함께 해당 파일의 소유자, 관련 프로세스, 크기, 타입 등의 정보를 출력해주는 명령어다. 


※ 경로

/usr/sbin/lsof


※ 사용법

lsof [옵션]... [파일]...


※ 옵션

 옵션

 설명

 -a

 파일을 선택하는데 AND 연산으로 대상을 출력

 -c

 지정한 COMMAND 필드만 출력

 -F

 지정한 구분자로 필드를 구분하여 출력

 -g

 지정한 그룹 아이디를 사용하는 관련 프로세스를 출력

 -i

 현재 사용되는 소켓 정보를 출력

 -l

 로그인 사용자명 대신에 UID를 출력

 -n

 호스트명 대신에 IP주소를 출력

 -P

 포트 서비스명 대신에 포트 번호를 출력

 -r

 지정한 초의 주기로 반복해서 출력 (디폴트 값은 15초)

 -s

 파일의 크기를 출력

 -V

 보다 상세한 정보를 출력



※ 사용예

lsof의 사용 예제다. 먼저 -c mysql 옵션을 주어 mysql 관련 필드만 출력하도록 해봤는데, 생각보다 꽤 많았다.


아래 예제는 -iTCP 옵션을 주어 TCP 관련 소켓 정보를 출력하는 예제다. 모두 알겠지만 UDP를 보려면 당연히 -iUDP를 하면 된다.


※ 요약

리눅스 명령어 file은 파일의 종류 확인 및 파일 속성 값을 확인할때 사용하는 명령어다. 주로 acsii나 text, date와 같은 파일 속성을 출력하는데, /usr/share/magic이나 /usr/lib/magic에 저장한 파일 정보를 참고하여 파일 속성을 출력한다. 필자 생각에 이 명령어는 중요도도 낮고 사용 빈도도 낮을거 같으므로 이런 명령어도 있구나 하고 넘어가면 될것이다.


※ 경로

/usr/bin/file


※ 사용법

file [옵션]... filename



※ 옵션

 옵션

 Long옵션

 설명

 -b

--brief 

 지정한 파일명은 출력하지 않고 파일의 유형만 출력

 -f

 --file-from 파일목록

 파일목록에서 지정한 파일들에 대해서만 명령을 실행

 -i

 --mime

 MIME 타입 문자로 출력

 (예로 ascii text를 text/plain; charset=us-ascii 형태로 출력)

 -L

 --dereference

 심볼릭 링크된 파일을 추적하여 원본 파일 정보를 출력

 -m

 --magic-file 매직파일

 임의로 매직파일을 지정(디폴트 값은 /usr/share/file/magic)

 -z

 --uncompress

 압축된 파일의 내용을 출력

 -v

 --version

 버전 정보를 출력

 

 --help

 사용법 출력


※ 사용예

아래는 필자가 임대 받은 카페24 가상서버에 접속한 화면이고, 임의로 몇 가지 파일 및 디렉토리들에 대해서 명령어를 실행해봤다. 설명은 따로 안해도 될듯 싶다.


※ 요약

리눅스 명령어 logger는 /var/log/message 파일에 원하는 메시지(로그)를 기록할 수 있는 명령어다. 필자는 이 명령어가 익숙하지 않아서 거의 사용안하지만 습관적으로 사용하면 꽤 유용할거 같다.


※ 경로

/usr/bin/logger


※ 사용법

logger [옵션]... [메시지]...


※ 옵션

 옵션

 설명

 -i

 각각의 라인마다 logger의 프로세스 ID를 기록

 -s

 시스템 로그뿐만 아니라 표준 출력으로도 메시지를 기록

 -f file

 지정한 file에 로그를 기록

 -p pri

 pri(우선순위)를 메시지와 함께 기록, 기본값은 user.notice

 -t tag

 tag를 각각의 라인마다 기록 (검색시 유용할듯 싶다.)



※ 사용예

아래는 logger 명령어 사용예인데, root 계정이 아니다보니 sudo를 이용했다. 간단한 예제이므로 따로 설명은 하지 않겠다.



※ 요약

리눅스 명령어 lastlog는 /var/log/lastlog 로그 파일의 정보를 분석하여 출력하는 명령어다. 이 파일을 통해 사용자의 마지막 로그인 시간, 호스트명, 포트 등을 볼 수 있다. 


※ 경로

/usr/bin/lastlog


※ 사용법

lastlog [옵션]...


※ 옵션

 옵션

 Long옵션

 설명

 -t DAYS

 --time DAYS

 지정한 날짜 단위(DAYS) 기간에 로그인한 정보만 출력

 -u LOGIN

 --user LOGIN

 지정한 로그인명(LOGIN)의 lastlog 정보만 출력

 -h

 --help

 lastlog 명령어 사용법 출력


※ 사용예

아래는 필자의 시스템에서 lastlog 명령어를 실행한 화면이다. 보면 알겠지만 root 계정 말고는 로그인한 적이 없다.



-u 옵션으로 특정 계정의 정보만 출력하였다.


-t 15 옵션으로 15일 내의 정보만 출력했다.


※ 관련 명령어

last : 로그인과 재부팅 로그 확인

lastb : 접속 실패 기록 보기

who : 호스트에 로그인한 사용자 정보 출력

logger : 시스템 로그 기록

logrotate : 로그 파일 관리

grep : 패턴에 매치되는 문자열 검색


※ 요약

리눅스 명령어 lastb는 접속 실패 기록을 보여주는 명령어다. last 명령어가 로그인 기록과 재부팅 기록을 보기 위해 /var/log/wtmp 파일을 열람한다면, lastb는 /var/log/btmp 파일을 열람하여 실패 목록을 보여준다. lastb는 접속 실패를 기록하는 파일인 btmp 파일을 열람한다는 것을 제외하고는 last 명령어와 같다.


※ 경로

/usr/bin/lastb


※ 사용법

lastb [옵션]... [유저명]... [tty]...


※ 옵션

 옵션

 설명

 -num

 num 만큼의 줄만 출력

 -n num

 -num과 동일

 -R

 hostname필드는 출력 안 함

 -a

 출력되는 목록에서 hostname 필드는 마지막에 출력

 -d

 다른 host에서 접속한 내용만 출력

 -x

 shutdown 상태 및 runlevel이 바뀐 상태 출력

 -f file

 지정한 file에서 정보를 읽어와서 출력



※ 사용예

아래는 lastb의 간단한 사용 화면이다. 필자의 시스템에는 로그인 실패 기록이 없어 일부러 만든뒤 실패 로그를 출력하였다.


※ 관련 명령어

last : 로그인과 재부팅 로그 확인

lastlog : 접속 로그 보기

logger : 시스템 로그 기록

logrotate : 로그 파일 관리

grep : 패턴에 매치되는 문자열 검색


※ 요약

리눅스 명령어 last는 로그인과 재부팅 로그를 출력하는 명령어다. 로그 파일은 /var/log/wtmp 파일에 위치하며 시스템의 부팅부터 현재까지의 모든 유저의 로그인과 로그아웃에 대한 정보를 가지고 있는데, 이 파일의 내용을 last 명령어가 보여준다. 참고로 lastb 명령어는 /var/log/btmp 로그 파일을 보여주는 명령어로써, 어느 파일을 오픈하는지만 다르고 나머지는 똑같다고 보면 된다. 어렵지 않은 명령어이므로 금방 익힐 수 있으며 


※ 경로

/usr/bin/last


※ 사용법

last [옵션]... [유저명]... [tty]...


※ 옵션

 옵션

 설명

 -num

 num 만큼의 줄만 출력

 -n num

 -num과 동일

 -R

 hostname필드는 출력 안 함

 -a

 출력되는 목록에서 hostname 필드는 마지막에 출력

 -d

 다른 host에서 접속한 내용만 출력

 -x

 shutdown 상태 및 runlevel이 바뀐 상태 출력

 -f file

 지정한 file에서 정보를 읽어와서 출력



※ 사용예

아래는 last 명령어를 실행한 모습이다. 필자는 주로 root 계정으로 로그인한걸 알 수 있다. 재부팅은 reboot이라고 표기되어 있는 것도 볼 수 있다. 모자이크 처리한 부분은 hostname(ip주소)이다.


라인이 너무 많아 최근 10라인만 보기 위해 -10 옵션을 주었다.


grep 명령어를 이용하여 reboot 기록만 출력한 모습이다. 응용하면 특정 계정만 로그인한 것도 찾을 수 있을 것이다. -R 옵션을 준 이유는 모자이크 하기 귀찮기 때문이다. 마지막으로 아래 26+23:25의 의미는 시스템이 종료하기 전까지 시스템이 켜져 있던 시간을 의미한다. 즉 26일 하고도 23시간 25분 켜져 있었다는 의미다. 91+13:05는 말 안해도 알거라 믿는다.


※ 관련 명령어

lastb : 접속 실패 기록 보기

lastlog : 접속 로그 보기

logger : 시스템 로그 기록

logrotate : 로그 파일 관리

grep : 패턴에 매치되는 문자열 검색


※ 요약

리눅스 명령어 pstree는 프로세스의 상관관계(부모-자식 관계)를 트리 형태로 출력해주는 명령어로써, 관계를 트리 형태로 출력해주므로 계층 관계를 한 눈에 파악할 수 있다.


※ 경로

/usr/bin/pstree


※ 사용법

pstree [옵션]... [pid|user]


※ 옵션

옵션

 설명

 -a

 지정한 인수까지 출력

 -c

 중복된 프로세스도 모두 출력, 디폴트 값은 트리 내의 동일한 프로세스를 하나의 프로세스로 출력하고 중복된 개수를 출력함

 -G

 VT100 형태의 트리로 출력

 -h

 현재 프로세스와 부모 프로세스를 하이라이트 형태로 출력

 -H pid

 지정한 pid(프로세스ID)의 프로세스와 부모 프로세스를 하이라이트 형태로 출력

 -l

 긴 라인을 모두 출력

 -n

 pid를 기준으로 정렬하여 출력

 -p

 pid도 출력

 -u

 uid도 출력

 -U

 UTF-8(유니코드) 형태로 출력

 -V

 pstree의 버전 정보를 출력


※ 사용예

아무 옵션없이 pstree만 실행한 모습이다. 아래 출력된 내용을 보면 모든 프로세스는 init에서 파생된 자식 프로세스들이라는 것을 알 수 있다.



옵션 a와 p를 입력한 모습이다. 옵션 p로 인해 pid도 함께 출력된 모습이다.


※ 관련 명령어


+ Recent posts