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를 조회할때 사용(파일시스템에 대한 이해 필요)
- cd (Change Directory)
- 파일관련
- 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, 타르볼을 풀어준다
- 나머지는 위와 동일
- mkdir (Make Directory)
- 프로세스 관련
- 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 프로세스번호
- 등등..
- ps (Process Status)
- 네트워크관련
- 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
- 서버 전체 확인
- 네트워크 프로토콜의 통계와 연결상태를 출력
- netstat -nltpu
- 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
- 라우트정보 삭제
- ifconfig (Interface Configration)
- 검색/탐색 관련 명령
- 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 출력
- 명령 리다이렉션기로 파일명
- ‘>’ : 파일 내용을 초기화해서 덮어 씌우는 내용
- echo a > a : a파일에 a 텍스트가 추가됨
- echo b > a : a파일에 b 텍스트만 남음(덮어쓰기됨)
- ‘>>’ : 기본 파일 내용의 하단에 내용 추가
- echo a >> a : a파일에 a 텍스트가 추가됨
- echo zzz >> a : a파일 하단에 zzz 텍스트가 추가됨
- ‘>|’ : 파이프라인, 부등호 하나만 쓰면 파일이 없다면서 에러가 나는경우가 생기는데, 없는파일을 생성하며 내용 추가
- ‘>’ : 파일 내용을 초기화해서 덮어 씌우는 내용
- echo
- 문자열을 출력하는 도구
- chmod (Change Mode)
- 파일이나 디렉토리의 모드(접근권한)을 변경하는 도구
- chmod 권한정보 파일명
- 권한정보: rwxrwxrwx (421 421 421), 숫자를 더해서 표현
- rw-rw-r— (421 421 421 = 664) : 소유자그룹은 읽기와 쓰기가 가능, 그 밖은 읽기만 가능
- chmod 664 파일명
- 권한정보: rwxrwxrwx (421 421 421), 숫자를 더해서 표현
- chown (Change the Owner of a file)
- 파일의 소유권을 바꾸기 위한 도구
- chown 소유자명:그룹명파일/디렉토리이름
- chown seo_youngwoo02:seo_youngwoo02 aaa
- sudo (Superuser DO —> Substitude DO)
- root 사용자의 보안 권한을 이용하여 명령 또는 프로그램을 실행하는 도구
- who
- 현재 시스템에 로그인한 사용자 목록을 출력
- find
- 기타 명령어
- 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를 조회할때 사용(파일시스템에 대한 이해 필요)
- cd (Change Directory)
- 파일관련
- 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, 타르볼을 풀어준다
- 나머지는 위와 동일
- mkdir (Make Directory)
- 프로세스 관련
- 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 프로세스번호
- 등등..
- ps (Process Status)
- 네트워크관련
- 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
- 서버 전체 확인
- 네트워크 프로토콜의 통계와 연결상태를 출력
- netstat -nltpu
- 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
- 라우트정보 삭제
- ifconfig (Interface Configration)
- 검색/탐색 관련 명령
- 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 출력
- 명령 리다이렉션기로 파일명
- ‘>’ : 파일 내용을 초기화해서 덮어 씌우는 내용
- echo a > a : a파일에 a 텍스트가 추가됨
- echo b > a : a파일에 b 텍스트만 남음(덮어쓰기됨)
- ‘>>’ : 기본 파일 내용의 하단에 내용 추가
- echo a >> a : a파일에 a 텍스트가 추가됨
- echo zzz >> a : a파일 하단에 zzz 텍스트가 추가됨
- ‘>|’ : 파이프라인, 부등호 하나만 쓰면 파일이 없다면서 에러가 나는경우가 생기는데, 없는파일을 생성하며 내용 추가
- ‘>’ : 파일 내용을 초기화해서 덮어 씌우는 내용
- echo
- 문자열을 출력하는 도구
- chmod (Change Mode)
- 파일이나 디렉토리의 모드(접근권한)을 변경하는 도구
- chmod 권한정보 파일명
- 권한정보: rwxrwxrwx (421 421 421), 숫자를 더해서 표현
- rw-rw-r— (421 421 421 = 664) : 소유자그룹은 읽기와 쓰기가 가능, 그 밖은 읽기만 가능
- chmod 664 파일명
- 권한정보: rwxrwxrwx (421 421 421), 숫자를 더해서 표현
- chown (Change the Owner of a file)
- 파일의 소유권을 바꾸기 위한 도구
- chown 소유자명:그룹명파일/디렉토리이름
- chown seo_youngwoo02:seo_youngwoo02 aaa
- sudo (Superuser DO —> Substitude DO)
- root 사용자의 보안 권한을 이용하여 명령 또는 프로그램을 실행하는 도구
- who
- 현재 시스템에 로그인한 사용자 목록을 출력
- find
- 기타 명령어
- 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에 등록된 모든 작업을 지움
- date
- date
공부하면서 정리했던것, 몇개 빠져있음
'Server > linux, ubuntu' 카테고리의 다른 글
액션 vim~! (0) | 2023.01.20 |
---|---|
우분투 메일서버 구축 (0) | 2022.04.05 |