ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 리눅스 명령어 정리 (2)
    Pentesting/Linux 2019. 1. 17. 19:27

    ▷ logger 명령어
    :운영체제의 주요 로그 저장 파일(/var/log/messages)에 메시지를 저장한다.
    [문법]: logger [옵션] [메시지]
    [옵션]: -f 파일에 로그를 기록한다, -i 작성되는 로그마다 프로세스ID를 포함, -p 우선권이 있는 메시지를 저장

    [TEST]
    >logger -i 'date' Shell Scripting!
    >tail /var/log/messages
    ...
    Dec 19 06:54:32 localhost root[30738]: 2014.12.19. (금) 06:54:32 KST Shell Scripting!
    ...

    ▷ lsof 명령어
    :lsof(list open files) 명령어는 시스템에서 열린 파일 목록을 알려주고 사용하는 프로세스,
    디바이스 정보, 파일의 종류 등을 표시
    [문법]: lsof [옵션]
    [옵션]: -u 사용자를 지정하여 출력, -i 특정 포트를 사용하는 프로세스를 출력(단일포트 lsof -i TCP:80)
    (포트범위: lsof -i TCP:22-1024), -c 특정 명령어가 사용하는 프로세스를 출력(lsof -c httpd)
    +D 지정된 디렉터리 하위에 열려 있는 프로세스를 출력(lsof +D /home/user1)

    [TEST]
    >lsof -i TCP:80
    80번포트 사용하는 프로세스 출력....
    ....

    >lsof /var/log/messages
    시스템의 로그들이 저장되는 messages 파일을 사용한 프로세스를 출력한 결과...
    ....


    ▷ netstat 명령어
    :현재 시스템에 연결되어 있는 네트워크 연결 상태 및 포트 정보를 표시
    [문법]: netstat [옵션]
    [옵션]: -r 커널의 라우팅 테이블 정보를 출력, -i 네트워크 인터페이스 테이블 정보를 출력
    -g 멀티캐스트 그룹 정보를 출력, -s 네트워크 통계 요약을 출력, -M 매스커레이드된 연결 목록을 출력
    -v 상세정보 출력, -n 숫자 형태의 IP주소로 출력, -c 매초마다 정보를 최신화하여 출력
    -p 소켓을 사용하는 프로그램의 PID를 출력, -l LISTENING 상태의 소켓을 출력

    [TEST]
    >netstat
    현재 시스템과 연결된 시스템들의 정보를 출력
    ....

    >netstat -nr
    숫자형태의 IP주소와 커널의 라우팅 테이블 정보를 출력

    ▷ nl 명령어
    :텍스트 형태의 파일을 읽어 행 번호를 부여한다.
    [문법]: nl [옵션] [텍스트 형태 파일]
    [옵션]: -b 본문에 번호를 붙이는 데 스타일을 사용, -d 논리적 페이지를 구분, -f 꼬리말에 번호를 붙힘
    -h 머리말에 번호를 붙힘, -i 각 줄의 줄 번호를 증가, -l 지정된 숫자만큼의 줄은 하나로 취급

    [TEST]
    >nl /etc/passwd

    ▷ ntpdate 명령어
    :지정된 time 서버로부터 시간 정보를 동기화
    [문법]: ntpdate [옵션] [time 서버 주소]
    [옵션]: -d 시간 동기화 실패 시 원인을 위해 디버깅을 할 때 활용, -q 시스템의 시간을 설정하지 않고
    시간정보만을 확인, -s 표준 시간 정보를 시스템 로그에 전달, -t timeout 대기 시간을 설정, -v 상세정보

    [TEST]
    >ntpdate time.nuri.net
    시간동기화 실패
    >ntpdate -d time.nuri.net
    실패 디버깅 로그 출력...
    ...
    시간동기화 실패


    ▷ ping 명령어
    :IMCP 프로토콜을 이용하여 네트워크에 연결된 호스트의 연결 상태를 확인하고, 호스트 간에 패킷이
    왕복된 시간을 측정하여 표시
    [문법]: ping [옵션] [호스트주소]
    [옵션]: -b 브로트캐스트 주소로 패킷을 보냄, -c 지정된 숫자만큼만 패킷을 보냄, -i 지정된 간격으로 패킷을 보냄

    [TEST]
    >ping -c 5 192.168.159.130
    ping~
    ping~
    ping~
    ping~
    ping~ 5번 ....

    ▷ pmap 명령어
    :시스템의 프로세스 ID를 기준으로 메모리 맵 정보를 출력
    [문법]: pmap [옵션] [PID]
    [옵션]: -x 확장된 형식으로 출력, -d 디바이스 형식으로 출력, -q 간단한 요약 정보를 출력

    [TEST]
    >pmap -x 2755    (2755는 PID)
    ....출력

    ▷ pr 명령어
    :텍스트 파일을 인쇄가 가능한 표준 출력 형식으로 변환

    [문법]: pr [옵션] [파일]
    [옵션]: -D 머리말의 날짜 형태를 지정, -e 텝의 너비를 지정, -J 모든 행을 합침
    -s 열 구분자를 지정, -n 행의 번호를 지정, -t 머리말과 꼬리말을 생략

    [TEST]
    >ps -ef | pr
    시스템의 프로세스 상태를 출력할 수 있도록 ps명령어의 결과를 pr명령어로 파이프 지정한 예제..

    ▷ ps 명령어
    :현재 시스템의 프로세스 상태를 출력

    [문법]: ps [옵션]
    [옵션]: -A 모든 프로세스를 출력, -e 커널 프로세스를 제외한 모든 프로세스를 출력
    -C 지정된 명령어에 대한 정보를 출력, -G 지정된 그룹 ID에 대한 정보를 출력
    -t tty를 지정하여 정보를 출력, -f 모든 형태의 정보를 출력, -H 프로세스를 계층형으로 출력
    -m 쓰레드 정보를 출력, -u 사용자 ID를 지정

    [TEST]
    > ps -u nobody -f
    nobody 사용자의 모든 형태의 정ㄹ보를 확인.
    ...

    ▷ pwd 명령어
    :현재 작업중인 디렉토리 명 출력
     
    ▷ route 명령어
    :네트워크 라우팅 테이블을 출력하거나 설정
    [문법]: route [옵션] [명령]
    [옵션]: -v 자세한 정보를 출력, -n 숫자인 IP주소 형태로 출력, -e 라우팅 테이블 정보를 확장된 형태로 출력
    -F 시스템 커널의 FIB 라우팅 테이블 정보를 출력
    [명령어]
    add IP주소를 입력한다
    gw 게이트웨이를 설정한다
    netmask 넷마스크를 설정
    dev 장치를 설정
    mss 최대 TCP세그먼트 사이즈를 설정
    del IP주소를 삭제

    [TEST]
    >route -n
    라우팅 정보 확인..

    >route add default gw 192.168.159.10
    default 게이트웨이를 추가

    >route del default
    default 게이트웨이를 삭제

    ▷ script 명령어
    :터미널에서 수행하는 작업들을 텍스트 형식으로 저장

    [문법]:script [옵션] [저장파일]
    [옵션]:-a 기존 파일에 작업 내용을 추가, -f 출력 화면을 깨끗하게 정리, -q 메시지를 출력하지 않음

    ※ 특정 사용자 profile에 script 명령어를 추가하여 특정 계정 사용자들이 로그인해서 작업한 내용을
    확인해야 할 때도 유용하게 활용 가능.
    [TEST]
    >script script.log
    Script started, file is script.log
    >ls
    .....
    >ps
    .....
    >exit
    Script done,file is script.log
    >pr script.log | more
    위 명령어들과 출력들이 다 저장됨

    ▷ sort 명령어
    :텍스트 파일을 행 단위로 정렬
    [문법]: sort [옵션] [파일]
    [옵션]: -d 알파벳과 숫자를 사전순으로 정렬, -f 대소문자를 구별하지 않는다 ,-r 내림차순으로 정렬
    -m 이미 정렬된 파일을 병합, -t 필드를 구분하는 구분자를 지정, -k 각 행의 지정된 필드를 기준으로 정렬

    [TEST]
    >ls -al | sort -rk 5 
    ..파일 용량순 내림차순 정렬...

    ▷ tail 명령어
    :텍스트 파일의 마지막 행의 내용부터 출력
    [문법]:tail [옵션] [파일]
    [옵션]:-c 지정된 마지막 바이트 만큼 내용을 출력, -f 명령을 종료하지 않고 추가되는 내용을 실시간 출력
    -n 마지막 행부터 n행 까지의 내용을 출력

    [TEST]
    >tail -7 /var/log/messages
    마지막 행에서 7번째 행까지의 내용을 출력

    ▷ tar 명령어
    :여러 파일들을 하나의 파일로 묶는다.
    [문법]:tar [옵션] [생성파일.tar] [묶을 대상 파일]
    [옵션]: -c tar파일을 만들 때 사용, -x 묶어진 파일을 해제할 때 사용, -v 파일을 묶거나 해제할 때
    파일들의 이름과 크기를 표시, -f 사용할 tar 파일을 지정, -t 묶여진 tar 파일의 내용물을 출력

    [TEST]
    >tar -cvf ch_4.tar /test/ch_4
    -cvf 옵션을 사용하여 /test/ch_4의 파일 및 디렉토리를 ch_4.tar로 묶는 작업
    >tar -xvf ch_4.tar
    -xvf 옵션을 사용하여 묶은 것을 해제

    ▷ time 명령어
    :특정 프로세스나 명령어에 사용된 시스템 자원 정보를 출력
    [문법]: time [옵션] [명령어]
    [옵션]: -f 지정한 출력 형식에 맞춰 표시
    -p 지정된 형식으로 정보를 출력..
    * %(형식)의 의미
    %E 경과된 시간
    %S 커널 모드에서 프로세스가 사용한 CPU 시간
    %U 유저 모드에서 프로세스가 사용한 CPU 시간
    %P 작업 시 사용한 CPU 작업량(%)
    ....
    ....
    ....
    (생략)

    ▷ touch 명령어
    :0바이트의 빈 파일을 생성하거나, 기존 파일이 있을 경우 파일의 수정 시간을 현재 시간으로 변경
    [문법]: touch [옵션] [파일]
    [옵션]: -a 최근 파일 사용 시간을 변경, -c 파일이 이미 존재하지 않는다면 새로 만들지 않는다
    -t 현재 시간 대신 지정된 시간을 변경, -m 최근 파일 변경 시간을 변경

    [TEST]
    >touch -t 200206252310 touch.test
    -t옵션을 이용하여 기존의 touch.test 파일의 생성 또는 변경 시간을 2002년 6월 25일 23시 10분으로 조정

    ▷ tr 명령어
    :특정 문자를 다른 문자로 변경할 때 사용되며, 대부분 재지정 시 활용
    [문법]: tr [옵션] [문자열1] [문자열2]
    [옵션]: -d 지정된 문자열을 삭제, -s 지정된 문자열에서 반복되는 문자를 삭제, -t 문자열1을 문자열2의 길이로 자름

    [TEST]
    >more tr.test
    LINUX_UNIX_Shell Script
    >tr "a-z" "A-Z" < tr.test
    LINUX_UNIX_SHELL_SCRIPT

    >more tr.test
    linux_UNIX_Shell Script
    >tr -d "_" < tr.test
    LinuxUNIXShell Script

    ▷ traceroute 명령어
    :네트워크 경로를 확인하기 위해 패킷이 거쳐 가는 경로를 추적하여, 경로 중에 네트워크 부하가 높은
    곳을 찾을 때 활용

    [문법]:traceroute [옵션] [호스트주소]
    [옵션]: -m 홉 수를 지정, -n IP 주소가 안보이도록 설정, -q 패킷 수를 지정, -w timeout을 지정

    ▷ uptime 명령어
    :평균 시스템 부하 정보를 출력
    [TEST]
    >uptime
    22:10:33 up 2 days, 20:53, 3users, load average: 0.00, 0.00, 0.00
    시스템이 시작된 시간, 현재 사용자 수, 평균 부하량을 확인..

    ▷ vmstat 명령어
    :가상 메모리 상태를 확인
    [문법]: vmstat [옵션]
    [TEST]
    > vmstat 1 3
    1초마다 3번점검..
    ....

    [컬럼별 의미]
    prcos - r : cpu 접근 대기 중인 프로세스 수
    - b : 인터럽트가 불가능한 프로세스 수
    memory - swpd : 사용된 가상 메모리 양
     - free : 여유 메모리
     - buff : 버퍼에 사용된 메모리
     - cache : 캐시에 사용된 메모리
    swap - si : 디스크로부터 스왑된 메모리 양
     - so : 디스크에 스왑된 메모리 양
    io - bi : 블록 장치로 보낸 블록
     - bo : 블록 장치에서 받아온 블록
    system - in : 초당 인터럽트 수
     - cs : 초당 컨텍스트 스위칭 작업 수
    cpu - us : 커널 코드가 아닌 작업의 구동 시간
    - sy : 커널 코드의 작업 구동 시간
    - id : 유휴 대기 시간
    - wa : 입출력을 위한 대기 시간
    - st : 가상머신으로부터 손실된 시간

    ▷ w 명령어
    :시스템에 로그인한 사용자의 정보를 출력
    [문법]: w [옵션]
    [옵션]: -h 헤더 정보를 출력하지 않는다, -s 간략한 요약 정보를 출력한다.

    'Pentesting > Linux' 카테고리의 다른 글

    peda 설치 및 명령어  (0) 2019.11.14
    웹서버 access 로그 분석 구문  (0) 2019.10.23
    간단한 명령어 반복 실행 스크립트  (0) 2019.08.07
    리눅스 명령어 정리 (3)  (0) 2019.02.13
    리눅스 명령어 정리 (1)  (0) 2019.01.17

    댓글

Designed by Tistory.