Server/linux, ubuntu

리눅스 명령어 총정리

삼군개발자 2023. 1. 20. 16:22
 

JSLinux

 

bellard.org

 

 

  • 디렉터리 관련
    • cd (Change Directory)
      • 현재 작업 디렉토리를 지정한 디렉토리로 변경
      • cd -
        • 바로 이전의 디렉토리로 이동, 반복하면 왔다갔다함
    • ls (List)
      • 현 디렉토리의 파일 목록을 출력
      • ls -al
        • .(dot)이 붙어있는 숨김파일까지 출력됨
      • 1, h, t, r 옵션이 있음
      • ls -1
        • 숨김파일을 제외한 파일들의 파일명을 가져옴
      • ls -alh
        • h: 사람이 읽기 편한 용량을 표시해줌
      • ls -alt
        • t: 시간 최종수정시간을 표기함
      • ls -alr
        • r: 출력을 역순으로 표기
      • ls -al test
        • test 디렉토리 또는 파일정보 출력
    • df (Disk Free)
      • 마운트된 모든 장치에 대한 현재의 디스크 공간 통계를 출력
      • df -h
        • 용량이 보기쉽게 나옴
      • df -T
        • 디스크의 타입이 나옴
      • di -i
        • Inode를 조회할때 사용(파일시스템에 대한 이해 필요)
  • 파일관련
    • mkdir (Make Directory)
      • 디렉토리를 생성
      • mkdir test
        • test 디렉토리 생성
      • mkdir
    • rmdir (Remove Directory)
      • 디렉토리를 삭제
    • pwd (Print Working Directory)
      • 현재 위치한 디렉토리의 절대경로를 출력
    • mount
      • 디스크 장치를 표시하거나 가상 파일 시스템으로 지정한 디렉토리를 연결(마운트)
      • umount → 접속 해제
    • stat
      • 지정한 파일의 파일통계를 출력
      • stat 파일명
        • 파일사이즈, 접근, 수정, 변경한 정보가 보임
    • touch
      • 지정한 이름의 비어있는 파일을 생성하거나 파일이 있는 경우 타임스탬프를 업데이트
      • touch testfile
        • testfile 생성
        • testfile 파일이 이미 존재한다면, 수정된 타임스탬프가 변경됨(거의 안씀)
    • cat (catenate)
      • 지정한 피일의 내용을 출력
      • cat testfile.txt
    • head
      • 지정한 파일의 1라인부터 지정한 라인까지 출력
      • 기본 지정값 10라인
      • head -n 2 testfile.txt
        • 2줄만 보기, n 옵션 줘야함
    • tail
      • 지정한 파일의 마지막 라인부터 지정한 수 만큼의 라인을 출력
      • 기본 지정값 10라인
      • tail -n 2 testfile.txt
        • 2줄만 보기, n 옵션 줘야함
      • tail -f testfile.txt
        • ctrl + c 로 중지할때까지 업데이트되는 파일내용을 계속 볼수있음
    • cp (Copy)
      • 지정한 파일을 지정한 위치와 이름으로 복사
      • cp -rfp 원본파일패스/이름 복사파일생성할패스/이름
      • r : 하위디렉터리를 포함
      • f : force(강제함), 대상 파일에 지정한 파일이름이 같더라도 강제로 덮어쓰기함
      • p: permisison, 권한을 복사함
    • mv (Move)
      • 지정한 파일을 지정한 위치와 이름으로 이동
    • rename
      • 지정한 규칙에 따라 여러 개의 파일 이름을 변경
      • rename 변경전파일명 변경후파일명 대상파일
      • 대상파일 위치에서 정규표현식 사용 가능(?)
    • rm (Remove)
      • 지정한 파일을 삭제
      • rm test1 test2 test3
        • test1, test2, test3 파일 생성
      • rm에 i 옵션이 자동으로 붙어있으며 i옵션은 해당 동작의 확인을 하는 동작
      • rm -f 파일명으로 실행시 i옵션을 생략하고 파일을 강제 삭제함
      • rm -f test?
        • 삭제파일명에 정규식 사용 가능
      • rm -rf 디렉토리
        • 디렉토리 삭제
    • less
      • 상하로 커서 이동이 가능한 파일보기
      • less testfile.txt
        • q를 이용하여 빠져나옴
        • vim과 비슷한 명령
    • ln (Link)
      • 지정한 파일에 대한 심볼릭링크나 하드링크를 생성
      • ln 옵션 링크의원본파일패스/이름 링크파일패스/이름
        • 옵션 사용하지않을시 하드링크 생성 (완전히 같은 원본데이터를 생성하나, 용량은 늘어나지않음[같은 저장소를 바라봄])
        • -s 옵션 사용시 심볼릭 링크 생성 (윈도우의 바로가기와 같음)
    • paste
      • 지정한 파일들의 행을 읽어 탭으로 구분하여 병합
      • paste txt1.txt txt2.txt 출력하면 각각 가로로 합쳐짐
      • 쉘스크립트 사용시 많이 사용
    • dd (Dataset Dafinition)
      • 블록 단위로 데이터셋을 정의하여 파일을 쓰고 읽음
      • dd if=인풋파일이름 of=아웃풋파일이름 bs=바이트(크기) count=블럭을복사할횟수
      • ibs(인풋파일 사이즈), obs(아웃풋파일 사이즈) —> bs 설정시 둘이 똑같이 설정됨
      • dd if=/dev/urandom(urandom은 자동으로 문자를 생성해주는 내장디렉토리) of=ddtest bs=1024 count=10
    • tar (Tape Archive)
      • 지정한 데이터 및 디렉토리를 하나의 파일로 만듦, 알집
      • 압축시: tar -cvzf 타르볼파일명 디렉토리명/파일명.tgz
        • c: create, 새로 만듦
        • v: verbose, 진행과정을 보여줌(log)
        • z: zip, 압축
        • f: 타르볼의 파일명을 지정함
      • 압축풀기시: tar -xvzf 타르볼파일명.tgz
        • x: extract, 타르볼을 풀어준다
        • 나머지는 위와 동일
  • 프로세스 관련
    • ps (Process Status)
      • 시스템에서 실행 중인 프로세스에 대한 정보를 출력
      • ps -ef
      • ps aux / ps auxwwwww (w개수는 트리뎁스, 명령어 출력 전부보기위해)
    • pstree (Process Status TREE)
      • 시스템에서 실행 중인 프로세스에 대한 정보를 트리구조로 출력
    • top
      • 프로세스 목록을 일정 시간마다 새로고침하여 화면에 출력하는 툴, 시스템 전반적인 상황을 모니터링 할 수 있음
      • 실행중 k 를 입력하면 kill을 통해 PID를 입력하면 프로세스종료 가능
    • nohup (NO HangUPs)
      • 쉘 스크립트 파일을 데몬 형태로 실행. 표준 출력을 지정한 파일로 리다이렉트
    • kill
      • 지정한 프로세스에 지정한 시그널을 보내 프로세스 종료, 시그널 종류가 30개정도됨
      • INT / TERM / KILL 3가지를 자주 씀
      • kill -2 프로세스번호 == kill -INT 프로세스번호
      • kill -15 프로세스번호 == kill -TERM 프로세스번호
      • kill -9 프로세스번호 == kill -KILL 프로세스번호
      • 등등..
  • 네트워크관련
    • ifconfig (Interface Configration)
      • 네트워크 인터페이스의 활성/비활성화 및 설정
      • ifconfig eth0
      • ls -al /etc/sysconfig/network-scripts/
        • 해당경로에 eth? 관련 파일들 존재
        • 우분투는 ls -al /etc/network/interfaces 경로에 존재
    • ip
      • ip관련 정보 조회 및 설정
      • ip address show eth0 == ip ad sh eth0
    • netstat (Network Statistics)
      • netstat -nltpu
        • tcp / udp 통신에 대해 열려있는 port들이 나옴
        • 옵션 u 빼면 tcp만 나옴(주로씀)
        • 서버가 열고있는 port와 프로그램을 확인
      • netstat -ltp
        • 22 port가 ssh, 111 port가 sunrpc, 80 port가 http로 바뀌어 출력됨
        • port에 대한 정의는 vi /etc/services 파일에 있음
        • l: 리스닝(포트를 열고 대기중)
        • t: tcp
        • p: 프로그램의 이름을 출력
        • u: udp
      • netstat -tanu
        • 서버 전체 확인
      • 네트워크 프로토콜의 통계와 연결상태를 출력
    • ss (Socket Statistics)
      • 네트워크 소켓의 통계와 연결상태를 출력
    • iptables
      • 패킷 필터링 도구로 패킷의 출입을 제한하는 방화벽구성이나 NAT(Network Address Translation) 구성에 사용
      • iptables -nL
        • systemctl status iptables로 커맨드 살아있는지 확인 / systemctl start iptables
        • n: 지정한 이름을 표기하지않고 포트나 ip를 숫자 그대로 표기
        • L: List의 약자
        • 표기되는 내용
          • source (보내는곳) → destination (목적지)
          • Chain INPUT
            • 외부에서 이 서버로 들어오는 통신에 적용되는 룰
            • 회사의 정책따라 보통 다 막혀있고, 꼭 필요한 ip와 포트만 열어둠
          • Chain FORWARD
            • 이 서버를 경유해서 통과하는 통신에 적용되는 룰
          • Chain OUTPUT
            • 이 서버에서 외부로 나가는 통신에 적용되는 룰
      • iptables 필요하면 더 찾아보기!!
    • ufw (Uncomplicated Firewall)
      • iptables의 제어를 쉽게 하기 위한 도구
      • 필요하면 더 찾아보기
    • ping
      • ICMP 프로토콜의 응답 확인 도구
      • ping -c 5 (servername: cat /etc/hosts 로 확인)
        • 굉장히 많이사용하며, 몇번 ping을 찍을건지 확인
        • c : count
    • wget (World wide web + GET)
      • 웹서버로부터 컨텐츠를 가져오는 도구
      • wget 다운로드URL
        • 해당 경로에 파일 다운로드
    • curl (Client for URLs)
      • 다양한 프로토콜을 사용하여 데이터를 전송하게 해 주는 도구
      • curl https://gmail.com / curl -L https://gmail.com
      • curl -Lkso /dev/null -w “%{http_code}\n” https://gmail.com
        • result : 200
        • L : 리다이렉트 링크를 따라가는 옵션
        • k : 인증을 무시하는 옵션
        • s : silent 모드로 실행하는옵션, 통계값 출력 생략
        • o : output 파일 지정, /dev/null
          • /dev 폴더에 여러가지 장치파일이 있음
          • /dev/urandom, 랜덤문자열로 가득 채움
          • /dev/zero, 0으로 가득 채움
          • /dev/null, 굉장히 많이 사용, 아무것도 없는것을 뜻함, 출력 결과를 이쪽으로 보내면 출력파일을 만들기 않겠다는 뜻
        • -w : 아웃풋 포맷을 결정하는 옵션, ‘http_code’, 여러가지 있는듯 검색 해봐야함
    • route
      • 네트워크의 경로 정보(라우팅 테이블)의 출력, 변경하는 도구
      • result
        • destnation : 목적지
        • Gateway : 외부 네트워크와 연결하기위한 게이트웨이의 주소
        • Genmask : 목적지 네트워크의 넷마스크 주소, 255.255.255.255일 경우 목적지의 호스트주소, 0.0.0.0 일경우 기본 게이트웨이의 주소
        • Flags : 해당 경로에 대한 정보를 알려주는 기호, U는 up(살아있음), h (호스트주소), g(게이트웨이를 향하는 경로)
        • Metric : 목적지 네트워크까지의 거리
        • Ref : 경로를 참조한 횟수
        • Use : 경로를 탐색한 횟수
        • Iface : 어떤 이더넷 디바이스를 사용했는지
      • route -r
        • 보통 이렇게쓰며 모든 도메인네임이나 게이트웨이를 아이피주소로 변환해서 보여줌
      • route add ~~~
        • 라우트정보 추가
      • route del
        • 라우트정보 삭제
  • 검색/탐색 관련 명령
    • find
      • 지정한 파일명 또는 정규표현식을 이용하여 파일을 검색
      • find 옵션 찾기시작할패스 익스프레션
        • 익스프레션에 들어갈수 있는 내용
          • name, type, perm(퍼미션/권한), empty(빈파일), f(파일), d(디렉터리) 등등..
      • find ./ -name testfile.txt
        • ./ : 현재경로
        • -name : 파일 이름으로 찾기
      • find ./ -name ?e?tfile.???
      • find ./ -name testfile.*
        • 파일명에 정규표현식 사용 가능
    • which
      • 환경변수 PATH에 등록된 디렉토리에 있는 명령어를 찾아주는 도구
      • echo ${PATH}로 환경변수 확인 가능
      • which ls
      • which df
      • which find
      • which ps
    • grep (Global / Regular Expression / Print)
      • 텍스트 검색 기능을 가진 도구, 파일이나 표준 입력을 검색하여 지정한 정규 표현식과 맞는 줄을 출력
      • grep 옵션 ‘찾을문자열’ 찾을파일명(또는패스)
        • 시스템로그 찾기 예제
          • grep -ir ‘error’ /var/log/messages(보통 이경로에서 시스템로그 볼수있음)
          • grep -ir ‘error’ /var/log/*
      • 대소문자 구분함(error, Error)
      • i : 대소문자 구분하지 말것
      • r: 하위디렉터리 포함
    • history
      • 명령어를 수행한 목록을 출력/조작
      • ls -al .bash_history
        • 해당 파일에 커맨드 히스토리가 존재함
    • redirection( > , >> , >| )
      • 표준 스트림(stdin, stdout, stderr)을 부동호를 사용하여 지정한 위치로 보낼 수 있는 방향 지정 옵션
      • echo ‘dddd’ : dddd 출력
      • 명령 리다이렉션기로 파일명
        • ‘>’ : 파일 내용을 초기화해서 덮어 씌우는 내용
          1. echo a > a : a파일에 a 텍스트가 추가됨
          2. echo b > a : a파일에 b 텍스트만 남음(덮어쓰기됨)
        • ‘>>’ : 기본 파일 내용의 하단에 내용 추가
          1. echo a >> a : a파일에 a 텍스트가 추가됨
          2. echo zzz >> a : a파일 하단에 zzz 텍스트가 추가됨
        • ‘>|’ : 파이프라인, 부등호 하나만 쓰면 파일이 없다면서 에러가 나는경우가 생기는데, 없는파일을 생성하며 내용 추가
    • echo
      • 문자열을 출력하는 도구
    • chmod (Change Mode)
      • 파일이나 디렉토리의 모드(접근권한)을 변경하는 도구
      • chmod 권한정보 파일명
        • 권한정보: rwxrwxrwx (421 421 421), 숫자를 더해서 표현
          • rw-rw-r— (421 421 421 = 664) : 소유자그룹은 읽기와 쓰기가 가능, 그 밖은 읽기만 가능
          • chmod 664 파일명
    • chown (Change the Owner of a file)
      • 파일의 소유권을 바꾸기 위한 도구
      • chown 소유자명:그룹명파일/디렉토리이름
        • chown seo_youngwoo02:seo_youngwoo02 aaa
    • sudo (Superuser DO —> Substitude DO)
      • root 사용자의 보안 권한을 이용하여 명령 또는 프로그램을 실행하는 도구
    • who
      • 현재 시스템에 로그인한 사용자 목록을 출력
  • 기타 명령어
    • date
      • 현재의 날짜와 시간을 출력
      • 날짜별로 로그를읽는경우 많이 사용
      • date -d ‘-1 day’ : 하루 전 출력
      • date -d ‘1 day ago’ : 하루 전 출력
      • date -d ‘1 day’ : 하루 뒤 출력
      • date -d ‘1 week’ : 1주 뒤 출력
      • week / month / year / hour / minute / second
      • date ‘+%Y-%m-%d %H:%M:%S’
        • 2023-01-19 17:41:39
      • date ‘+%Y%m%d’
        • 20230119
    • seq (Sequence)
      • 지정한 규칙으로 숫자열을 출력하는 도구 (숫자만!)
      • seq 시작숫자 끝숫자
      • seq 1 5 : 1부터 5까지 출력됨
      • seq -w 1 10
        • 01..02..03 이런식으로 최고 자릿수의 빈자리에 0이 추가되어 출력됨
      • seq -f %0자릿수g
      • seq -f %03g 1 10
        • 3자릿수가 최고자리라고 가정, 001, 002 이런식으로 나옴
      • w : equal width
    • more
      • 한 화면씩 지정한 파일의 내용을 출력하는 도구
      • more testfile.txt
        • testfile의 내용을 한페이지씩 보여줌
        • enter : 다음페이지
        • q : 나가기
        • space : 끝페이지
    • watch
      • 지정한 명령어를 지정한 시간(초) 마다 재실행하여 화면에 출력하는 도구(배치개념)
    • crontab (중요! 스케줄러개념)
      • 리눅스의 잡 스케줄러의 내용을 출력하거나 편집할 수 있는 도구
      • crontab -l
        • l : List, 등록된 cron job을 보여줌
      • crontab -e
        • e : edit, cron jon을 등록할수 있도록 crontab을 편집
      • crontab -r (조심!!!!!!)
        • r : remove, crontab에 등록된 모든 작업을 지움
        • 디렉터리 관련
          • cd (Change Directory)
            • 현재 작업 디렉토리를 지정한 디렉토리로 변경
            • cd -
              • 바로 이전의 디렉토리로 이동, 반복하면 왔다갔다함
          • ls (List)
            • 현 디렉토리의 파일 목록을 출력
            • ls -al
              • .(dot)이 붙어있는 숨김파일까지 출력됨
            • 1, h, t, r 옵션이 있음
            • ls -1
              • 숨김파일을 제외한 파일들의 파일명을 가져옴
            • ls -alh
              • h: 사람이 읽기 편한 용량을 표시해줌
            • ls -alt
              • t: 시간 최종수정시간을 표기함
            • ls -alr
              • r: 출력을 역순으로 표기
            • ls -al test
              • test 디렉토리 또는 파일정보 출력
          • df (Disk Free)
            • 마운트된 모든 장치에 대한 현재의 디스크 공간 통계를 출력
            • df -h
              • 용량이 보기쉽게 나옴
            • df -T
              • 디스크의 타입이 나옴
            • di -i
              • Inode를 조회할때 사용(파일시스템에 대한 이해 필요)
        • 파일관련
          • mkdir (Make Directory)
            • 디렉토리를 생성
            • mkdir test
              • test 디렉토리 생성
            • mkdir
          • rmdir (Remove Directory)
            • 디렉토리를 삭제
          • pwd (Print Working Directory)
            • 현재 위치한 디렉토리의 절대경로를 출력
          • mount
            • 디스크 장치를 표시하거나 가상 파일 시스템으로 지정한 디렉토리를 연결(마운트)
            • umount → 접속 해제
          • stat
            • 지정한 파일의 파일통계를 출력
            • stat 파일명
              • 파일사이즈, 접근, 수정, 변경한 정보가 보임
          • touch
            • 지정한 이름의 비어있는 파일을 생성하거나 파일이 있는 경우 타임스탬프를 업데이트
            • touch testfile
              • testfile 생성
              • testfile 파일이 이미 존재한다면, 수정된 타임스탬프가 변경됨(거의 안씀)
          • cat (catenate)
            • 지정한 피일의 내용을 출력
            • cat testfile.txt
          • head
            • 지정한 파일의 1라인부터 지정한 라인까지 출력
            • 기본 지정값 10라인
            • head -n 2 testfile.txt
              • 2줄만 보기, n 옵션 줘야함
          • tail
            • 지정한 파일의 마지막 라인부터 지정한 수 만큼의 라인을 출력
            • 기본 지정값 10라인
            • tail -n 2 testfile.txt
              • 2줄만 보기, n 옵션 줘야함
            • tail -f testfile.txt
              • ctrl + c 로 중지할때까지 업데이트되는 파일내용을 계속 볼수있음
          • cp (Copy)
            • 지정한 파일을 지정한 위치와 이름으로 복사
            • cp -rfp 원본파일패스/이름 복사파일생성할패스/이름
            • r : 하위디렉터리를 포함
            • f : force(강제함), 대상 파일에 지정한 파일이름이 같더라도 강제로 덮어쓰기함
            • p: permisison, 권한을 복사함
          • mv (Move)
            • 지정한 파일을 지정한 위치와 이름으로 이동
          • rename
            • 지정한 규칙에 따라 여러 개의 파일 이름을 변경
            • rename 변경전파일명 변경후파일명 대상파일
            • 대상파일 위치에서 정규표현식 사용 가능(?)
          • rm (Remove)
            • 지정한 파일을 삭제
            • rm test1 test2 test3
              • test1, test2, test3 파일 생성
            • rm에 i 옵션이 자동으로 붙어있으며 i옵션은 해당 동작의 확인을 하는 동작
            • rm -f 파일명으로 실행시 i옵션을 생략하고 파일을 강제 삭제함
            • rm -f test?
              • 삭제파일명에 정규식 사용 가능
            • rm -rf 디렉토리
              • 디렉토리 삭제
          • less
            • 상하로 커서 이동이 가능한 파일보기
            • less testfile.txt
              • q를 이용하여 빠져나옴
              • vim과 비슷한 명령
          • ln (Link)
            • 지정한 파일에 대한 심볼릭링크나 하드링크를 생성
            • ln 옵션 링크의원본파일패스/이름 링크파일패스/이름
              • 옵션 사용하지않을시 하드링크 생성 (완전히 같은 원본데이터를 생성하나, 용량은 늘어나지않음[같은 저장소를 바라봄])
              • -s 옵션 사용시 심볼릭 링크 생성 (윈도우의 바로가기와 같음)
          • paste
            • 지정한 파일들의 행을 읽어 탭으로 구분하여 병합
            • paste txt1.txt txt2.txt 출력하면 각각 가로로 합쳐짐
            • 쉘스크립트 사용시 많이 사용
          • dd (Dataset Dafinition)
            • 블록 단위로 데이터셋을 정의하여 파일을 쓰고 읽음
            • dd if=인풋파일이름 of=아웃풋파일이름 bs=바이트(크기) count=블럭을복사할횟수
            • ibs(인풋파일 사이즈), obs(아웃풋파일 사이즈) —> bs 설정시 둘이 똑같이 설정됨
            • dd if=/dev/urandom(urandom은 자동으로 문자를 생성해주는 내장디렉토리) of=ddtest bs=1024 count=10
          • tar (Tape Archive)
            • 지정한 데이터 및 디렉토리를 하나의 파일로 만듦, 알집
            • 압축시: tar -cvzf 타르볼파일명 디렉토리명/파일명.tgz
              • c: create, 새로 만듦
              • v: verbose, 진행과정을 보여줌(log)
              • z: zip, 압축
              • f: 타르볼의 파일명을 지정함
            • 압축풀기시: tar -xvzf 타르볼파일명.tgz
              • x: extract, 타르볼을 풀어준다
              • 나머지는 위와 동일
        • 프로세스 관련
          • ps (Process Status)
            • 시스템에서 실행 중인 프로세스에 대한 정보를 출력
            • ps -ef
            • ps aux / ps auxwwwww (w개수는 트리뎁스, 명령어 출력 전부보기위해)
          • pstree (Process Status TREE)
            • 시스템에서 실행 중인 프로세스에 대한 정보를 트리구조로 출력
          • top
            • 프로세스 목록을 일정 시간마다 새로고침하여 화면에 출력하는 툴, 시스템 전반적인 상황을 모니터링 할 수 있음
            • 실행중 k 를 입력하면 kill을 통해 PID를 입력하면 프로세스종료 가능
          • nohup (NO HangUPs)
            • 쉘 스크립트 파일을 데몬 형태로 실행. 표준 출력을 지정한 파일로 리다이렉트
          • kill
            • 지정한 프로세스에 지정한 시그널을 보내 프로세스 종료, 시그널 종류가 30개정도됨
            • INT / TERM / KILL 3가지를 자주 씀
            • kill -2 프로세스번호 == kill -INT 프로세스번호
            • kill -15 프로세스번호 == kill -TERM 프로세스번호
            • kill -9 프로세스번호 == kill -KILL 프로세스번호
            • 등등..
        • 네트워크관련
          • ifconfig (Interface Configration)
            • 네트워크 인터페이스의 활성/비활성화 및 설정
            • ifconfig eth0
            • ls -al /etc/sysconfig/network-scripts/
              • 해당경로에 eth? 관련 파일들 존재
              • 우분투는 ls -al /etc/network/interfaces 경로에 존재
          • ip
            • ip관련 정보 조회 및 설정
            • ip address show eth0 == ip ad sh eth0
          • netstat (Network Statistics)
            • netstat -nltpu
              • tcp / udp 통신에 대해 열려있는 port들이 나옴
              • 옵션 u 빼면 tcp만 나옴(주로씀)
              • 서버가 열고있는 port와 프로그램을 확인
            • netstat -ltp
              • 22 port가 ssh, 111 port가 sunrpc, 80 port가 http로 바뀌어 출력됨
              • port에 대한 정의는 vi /etc/services 파일에 있음
              • l: 리스닝(포트를 열고 대기중)
              • t: tcp
              • p: 프로그램의 이름을 출력
              • u: udp
            • netstat -tanu
              • 서버 전체 확인
            • 네트워크 프로토콜의 통계와 연결상태를 출력
          • ss (Socket Statistics)
            • 네트워크 소켓의 통계와 연결상태를 출력
          • iptables
            • 패킷 필터링 도구로 패킷의 출입을 제한하는 방화벽구성이나 NAT(Network Address Translation) 구성에 사용
            • iptables -nL
              • systemctl status iptables로 커맨드 살아있는지 확인 / systemctl start iptables
              • n: 지정한 이름을 표기하지않고 포트나 ip를 숫자 그대로 표기
              • L: List의 약자
              • 표기되는 내용
                • source (보내는곳) → destination (목적지)
                • Chain INPUT
                  • 외부에서 이 서버로 들어오는 통신에 적용되는 룰
                  • 회사의 정책따라 보통 다 막혀있고, 꼭 필요한 ip와 포트만 열어둠
                • Chain FORWARD
                  • 이 서버를 경유해서 통과하는 통신에 적용되는 룰
                • Chain OUTPUT
                  • 이 서버에서 외부로 나가는 통신에 적용되는 룰
            • iptables 필요하면 더 찾아보기!!
          • ufw (Uncomplicated Firewall)
            • iptables의 제어를 쉽게 하기 위한 도구
            • 필요하면 더 찾아보기
          • ping
            • ICMP 프로토콜의 응답 확인 도구
            • ping -c 5 (servername: cat /etc/hosts 로 확인)
              • 굉장히 많이사용하며, 몇번 ping을 찍을건지 확인
              • c : count
          • wget (World wide web + GET)
            • 웹서버로부터 컨텐츠를 가져오는 도구
            • wget 다운로드URL
              • 해당 경로에 파일 다운로드
          • curl (Client for URLs)
            • 다양한 프로토콜을 사용하여 데이터를 전송하게 해 주는 도구
            • curl https://gmail.com / curl -L https://gmail.com
            • curl -Lkso /dev/null -w “%{http_code}\n” https://gmail.com
              • result : 200
              • L : 리다이렉트 링크를 따라가는 옵션
              • k : 인증을 무시하는 옵션
              • s : silent 모드로 실행하는옵션, 통계값 출력 생략
              • o : output 파일 지정, /dev/null
                • /dev 폴더에 여러가지 장치파일이 있음
                • /dev/urandom, 랜덤문자열로 가득 채움
                • /dev/zero, 0으로 가득 채움
                • /dev/null, 굉장히 많이 사용, 아무것도 없는것을 뜻함, 출력 결과를 이쪽으로 보내면 출력파일을 만들기 않겠다는 뜻
              • -w : 아웃풋 포맷을 결정하는 옵션, ‘http_code’, 여러가지 있는듯 검색 해봐야함
          • route
            • 네트워크의 경로 정보(라우팅 테이블)의 출력, 변경하는 도구
            • result
              • destnation : 목적지
              • Gateway : 외부 네트워크와 연결하기위한 게이트웨이의 주소
              • Genmask : 목적지 네트워크의 넷마스크 주소, 255.255.255.255일 경우 목적지의 호스트주소, 0.0.0.0 일경우 기본 게이트웨이의 주소
              • Flags : 해당 경로에 대한 정보를 알려주는 기호, U는 up(살아있음), h (호스트주소), g(게이트웨이를 향하는 경로)
              • Metric : 목적지 네트워크까지의 거리
              • Ref : 경로를 참조한 횟수
              • Use : 경로를 탐색한 횟수
              • Iface : 어떤 이더넷 디바이스를 사용했는지
            • route -r
              • 보통 이렇게쓰며 모든 도메인네임이나 게이트웨이를 아이피주소로 변환해서 보여줌
            • route add ~~~
              • 라우트정보 추가
            • route del
              • 라우트정보 삭제
        • 검색/탐색 관련 명령
          • find
            • 지정한 파일명 또는 정규표현식을 이용하여 파일을 검색
            • find 옵션 찾기시작할패스 익스프레션
              • 익스프레션에 들어갈수 있는 내용
                • name, type, perm(퍼미션/권한), empty(빈파일), f(파일), d(디렉터리) 등등..
            • find ./ -name testfile.txt
              • ./ : 현재경로
              • -name : 파일 이름으로 찾기
            • find ./ -name ?e?tfile.???
            • find ./ -name testfile.*
              • 파일명에 정규표현식 사용 가능
          • which
            • 환경변수 PATH에 등록된 디렉토리에 있는 명령어를 찾아주는 도구
            • echo ${PATH}로 환경변수 확인 가능
            • which ls
            • which df
            • which find
            • which ps
          • grep (Global / Regular Expression / Print)
            • 텍스트 검색 기능을 가진 도구, 파일이나 표준 입력을 검색하여 지정한 정규 표현식과 맞는 줄을 출력
            • grep 옵션 ‘찾을문자열’ 찾을파일명(또는패스)
              • 시스템로그 찾기 예제
                • grep -ir ‘error’ /var/log/messages(보통 이경로에서 시스템로그 볼수있음)
                • grep -ir ‘error’ /var/log/*
            • 대소문자 구분함(error, Error)
            • i : 대소문자 구분하지 말것
            • r: 하위디렉터리 포함
          • history
            • 명령어를 수행한 목록을 출력/조작
            • ls -al .bash_history
              • 해당 파일에 커맨드 히스토리가 존재함
          • redirection( > , >> , >| )
            • 표준 스트림(stdin, stdout, stderr)을 부동호를 사용하여 지정한 위치로 보낼 수 있는 방향 지정 옵션
            • echo ‘dddd’ : dddd 출력
            • 명령 리다이렉션기로 파일명
              • ‘>’ : 파일 내용을 초기화해서 덮어 씌우는 내용
                1. echo a > a : a파일에 a 텍스트가 추가됨
                2. echo b > a : a파일에 b 텍스트만 남음(덮어쓰기됨)
              • ‘>>’ : 기본 파일 내용의 하단에 내용 추가
                1. echo a >> a : a파일에 a 텍스트가 추가됨
                2. echo zzz >> a : a파일 하단에 zzz 텍스트가 추가됨
              • ‘>|’ : 파이프라인, 부등호 하나만 쓰면 파일이 없다면서 에러가 나는경우가 생기는데, 없는파일을 생성하며 내용 추가
          • echo
            • 문자열을 출력하는 도구
          • chmod (Change Mode)
            • 파일이나 디렉토리의 모드(접근권한)을 변경하는 도구
            • chmod 권한정보 파일명
              • 권한정보: rwxrwxrwx (421 421 421), 숫자를 더해서 표현
                • rw-rw-r— (421 421 421 = 664) : 소유자그룹은 읽기와 쓰기가 가능, 그 밖은 읽기만 가능
                • chmod 664 파일명
          • chown (Change the Owner of a file)
            • 파일의 소유권을 바꾸기 위한 도구
            • chown 소유자명:그룹명파일/디렉토리이름
              • chown seo_youngwoo02:seo_youngwoo02 aaa
          • sudo (Superuser DO —> Substitude DO)
            • root 사용자의 보안 권한을 이용하여 명령 또는 프로그램을 실행하는 도구
          • who
            • 현재 시스템에 로그인한 사용자 목록을 출력
        • 기타 명령어
          • date
            • 현재의 날짜와 시간을 출력
            • 날짜별로 로그를읽는경우 많이 사용
            • date -d ‘-1 day’ : 하루 전 출력
            • date -d ‘1 day ago’ : 하루 전 출력
            • date -d ‘1 day’ : 하루 뒤 출력
            • date -d ‘1 week’ : 1주 뒤 출력
            • week / month / year / hour / minute / second
            • date ‘+%Y-%m-%d %H:%M:%S’
              • 2023-01-19 17:41:39
            • date ‘+%Y%m%d’
              • 20230119
          • seq (Sequence)
            • 지정한 규칙으로 숫자열을 출력하는 도구 (숫자만!)
            • seq 시작숫자 끝숫자
            • seq 1 5 : 1부터 5까지 출력됨
            • seq -w 1 10
              • 01..02..03 이런식으로 최고 자릿수의 빈자리에 0이 추가되어 출력됨
            • seq -f %0자릿수g
            • seq -f %03g 1 10
              • 3자릿수가 최고자리라고 가정, 001, 002 이런식으로 나옴
            • w : equal width
          • more
            • 한 화면씩 지정한 파일의 내용을 출력하는 도구
            • more testfile.txt
              • testfile의 내용을 한페이지씩 보여줌
              • enter : 다음페이지
              • q : 나가기
              • space : 끝페이지
          • watch
            • 지정한 명령어를 지정한 시간(초) 마다 재실행하여 화면에 출력하는 도구(배치개념)
          • crontab (중요! 스케줄러개념)
            • 리눅스의 잡 스케줄러의 내용을 출력하거나 편집할 수 있는 도구
            • crontab -l
              • l : List, 등록된 cron job을 보여줌
            • crontab -e
              • e : edit, cron jon을 등록할수 있도록 crontab을 편집
            • crontab -r (조심!!!!!!)
              • r : remove, crontab에 등록된 모든 작업을 지움

 

공부하면서 정리했던것, 몇개 빠져있음

'Server > linux, ubuntu' 카테고리의 다른 글

액션 vim~!  (0) 2023.01.20
우분투 메일서버 구축  (0) 2022.04.05