728x90

인터넷

인터넷 통신 : request, response 가 계속해서 왕래하는 컴퓨터 간의 대화
client : request를 하는 컴퓨터
server : request를 받아서 response를 하는 컴퓨터

domain name : google.com과 같이 서버에 접속할 때 사용하는 이름
ip address : 서버에 접속할 수 있는 주소.ping google.com으로 확인해볼 수 있다.

DNS 서버 : domain name의 ip address를 저장해둔 서버
domain name을 입력하면 DNS 서버를 통해 ip address로 변환되어 서버에 접속하여 응답이 온다.

ip addr : 본인의 ip 주소를 알 수 있는 명령어 -> 컴퓨터에 부여된 실제 ip, private address
curl ipinfo.io/ip : 본인 컴퓨터의 ip를 알려주는 명령어 -> 온라인 서비스 입장에서 접속 ip를 확인, public address
두 값이 같다면 컴퓨터에 부여된 실제 ip와 외부에 접속할 때 사용하는 ip가 같은 것이다. (router를 사용하지 않는 경우)

cf) curl google.com : google의 HTML 파일을 받아서 보여준다.

router(공유기)를 사용하여 하나의 회선으로 여러개의 device에 연결해서 사용할 수 있도록 한다.
통신사가 제공한 ip(public address)는 router의 ip가 된다.
router에 연결된 각각의 컴퓨터들은 사설 ip (private address)를 사용하여 ip를 부여받는다.


apache 웹서버

sudo apt-cache search apache : apache라는 이름을 가진 패키지를 검색
sudo apt-get update; : 프로그램 설치하기 전에 해주면 좋음
sudo apt-get install apache2 : apache2 설치
sudo service apache2 start : apache2 실행

웹 서버 접속 (여러 프로그램 중 elinks 사용)
sudo apt-get install elinks : elinks 설치
elinks : elinks 실행

elinks https://[ip address]/ 통해서 설치한 apache 서버에 접속해 볼 수 있다.

localhost : 동일한 컴퓨터 안에 있는 서버를 접속할 때 사용
127.0.0.1 : 자기자신을 가리키는 특수한 ip 주소

apache 설정파일 : 웹서버는 사용자가 요청한 파일을 지정된 디렉토리에서 읽어옴. 해당 설정은 apache 설정 파일에서 변경 가능.
/etc/apache2/apache2.conf : apache의 메인 설정 파일
/etc/apache2/sites-enabled/000-default.conf : 기본 사이트 설정 파일. DocumentRoot 설정을 확인 가능.

DocumentRoot 설정은 기본적으로 /var/www/html로 되어 있음.
var/www/html/index.html : 기본 웹 페이지 파일. sudo nano를 통해서 편집
elinks http://127.0.0.1/index.html : 변경사항을 웹브라우저에서 확인

로그파일 : apache 웹 서버의 동작을 모니터링하고 문제를 해결하기 위해 로그 파일을 확인할 수 있습니다.
/var/log/apache2/access.log : 접속기록 저장
tail -f /var/log/apache2/access.log : 실시간으로 업데이트되는 접속기록을 열람가능한 명령어
/var/log/apache2/error.log : 에러기록 저장


원격제어 ssh

sever 컴퓨터에 ssh server 설치, client 컴퓨터에 ssh client 설치

  1. 로컬 컴퓨터 내 설치된 ssh client를 통해 명령 전달
  2. ssh sever를 통해 전달받은 명령어를 sever 컴퓨터에 전달해 실행
  3. server 컴퓨터는 실행결과를 ssh server에 전달
  4. ssh server는 해당 내용을 client에 보냄
  5. 내용을 전달받은 client는 ssh client 화면에 내용을 보임

sudo apt-get purge openssh-server openssh-client : 서버 삭제
sudo apt-get install openssh-server openssh-client : 서버설치
sudo service ssh start : ssh 실행
sudo ps aux | grep ssh : 실행확인

ssh \[접속하고자 한 아이디\]@\[접속하고자하는 컴퓨터 ip\] : 원격 제어를 통해 타 컴퓨터에 접속


포트 port

포트 : 네트워크 상에서 특정 서비스나 애플리케이션이 통신을 위해 사용하는 논리적 접속 지점

ssh -p \[포트번호\] \[접속하고자 한 아이디\]@\[접속하고자하는 컴퓨터 ip\] : 포트번호를 입력해서 접속 (포트 번호 생략해도 접속 가능)

포트 번호는 0번부터 65535번까지 사용 ex ) web : 80 / ssh : 22
Well-Known Ports (0-1023):주요 네트워크 서비스와 프로토콜에 할당된 포트
1024 바깥쪽은 임의로 할당 가능

포트 포워딩 port forwarding : 라우터나 방화벽이 외부 네트워크에서 특정 포트로 들어오는 데이터를 내부 네트워크의 특정 장치로 전달하는 기술

라우터에 사용자가 접근할 때 9000번 포트 사용
사용자는 웹브라우저 상에서 211.46.24.37:9000를 통해 라우터에 접근
라우터 설정 : 9000번 포트는 192.168.0.4:80으로 가라고 지정
그러면 192.168.0.4:80으로 데이터가 전달됨

default gateway : 공유기(라우터)의 내부에서만 통용되는 ip (내부 네트워크와 외부 네트워크(또는 인터넷) 간의 트래픽을 전달하는 역할)
ip route : default gateway 정보

728x90

GROUP

: 파일과 디렉토리를 여러 사용자들이 공동으로 관리할 수 있는 방법

 

특정한 사람들을 묶어 그룹으로 만들어 권한을 부여하고, 각 그룹은 이름을 가진다.

groupadd

groupadd {options} [group] : 새 그룹 추가
usermod -a -G [group] [user] : 그룹에 사용자를 추가 (-a : append, 사용자 추가 옵션)
chown {-R} [user]{:group} [file|directory] : 디렉토리의 그룹 변경

 

<예시>
groupadd developer는 실행이 안 되기 때문에 관리자 권한으로 실행해야한다. 
sudo !!을 통해 developer 그룹을 추가한다.  (cf. !!: 직전에 입력했던 명령어)

 

nano /etc/group 을 통해서 group에 대한 정보를 확인할 수 있다.

 

sudo usermod -a -G developer egoing을 통해 egoing 사용자를 developer 그룹에 추가한다.

 

sudo chown root:developer .을 통해 현재 소유 그룹을 developer로 변경한다.

728x90

권한 Permission

  • unix 계열 시스템에서는 file&directory에 대해 Read(읽기), Write(쓰기), Excute(실행)의 user권한을 지정한다.

(1) type : 파일(-), 디렉토리(d), 링크 등 타입을 나타낸다.

(2) access mode : 권한을 나타낸다.

(2-1) owner의 권한

(2-2) group의 권한

(2-3) other의 권한

(3-1) owner의 이름

(3-2) group의 이름

  • access mode의 표기 의미
    • r : read (읽기)
    • w : write (쓰기)
    • x : excutr (실행)

권한 변경 chmod

<예시>
chmod o-r [filename] : other의 r(읽기) 권한을 뺀다
chmod o+r [filename] : other의 r(읽기) 권한을 더한다
chmod o+w [filename] : other의 w(쓰기) 권한을 더한다

 

chmod u-r [filename] : owner의 r(읽기) 권한을 뺀다
chmod u+r [filename] : owner의 r(읽기) 권한을 더한다

실행 excute

hi-machine.sh 파일을 실행시키고자 할 때,
/bin/bash hi-machine.sh는 실행이 되지만 ./hi-machine,sh은 실행되지 않는다.
전자는 특정 프로그램(/bin/bash)을 통해서 파일을 실행시키는 것으로 제약이 없다.
후자는 컴퓨터에 설치된 프로그램인 것처럼 실행하는 것으로 파일에게 실행권한(excute)을 부여할 필요가 있다.

 

chmod u+x hi-machine.sh 명령을 실행하고 ./hi-machine.sh를 입력하고 바로 실행되는 것을 확인할 수 있다.

directory의 권한

디렉토리에 대한 r(읽기) 권한 : 디렉토리 안 내용 열람
디렉토리에 대한 w(쓰기) 권한 : 디렉토리 안 파일 생성 및 삭제, 파일 이름 변경
디렉토리에 대한 x(실행) 권한 : 디렉토리에 cd 명령을 통해 접근

 

chmod -R o+w [directoryname] : 모든 하위 파일 및 디렉토리에 대한 권한 변경 (-R을 통해 재귀적으로 적용되도록 명령)

 

chmod 총정리

chmod [options] mode[,mode] file1 [file2 ...]
  • mode
    • Symbolic modes : o+r, o-x 등등
    • Octal modes
      ex. chmod 111 perm.txt : 모든 사용자에 대해 실행만 가능하도록 (--x) 설정

728x90

다중사용자

컴퓨터를 여러명이 사용할 수 있게 되지만 시스템의 복잡도가 높아진다.
모든 사용자에 대한 권한을 체크를 해야하기 때문에 기능이 복잡해진다.

여러명이 운영체제를 같이 사용하는 방법, 그 과정에서의 복잡성, 파생되는 위험성을 살펴본다.

id (identify) : 현재 사용자(me)의 정보를 알 수 있는 명령어
who : 현재 시스템에 접속하고 있는 사용자를 확인하는 명령어

관리자와 일반 사용자 super(root) user VS user

  • sudo(superuser do) : 일시적으로 관리자 권한으로 명령을 실행할 때 사용하는 접두사. 모든 일반 유저가 사용할 수 있는 것은 아니고 슈퍼 유저가 될 수 있는 일반 사용자만 사용할 수 있다.
  • superuser가 되는 방법
    • su : user ID를 바꾸거나 superuser가 되는 명령어
    • su - root 를 명령하고 password를 입력하면 superuser가 될 수 있다.
    • exit를 입력하면 이전 사용자로 돌아갈 수 있다.

    • superuser는 root라는 이름을 가지고, 쉘에 $가 아닌 #이 표시된다.
    • root 사용자는 사용하지 않는 것이 안전하다.

    • 몇몇 운영체제에서는 root 사용자를 막아두었다. -> 락을 풀어 사용한다.
      • sudo passwd -u root : 락을 푸는 명령 (-u : unlock)
      • sudo passwd -l root : 락을 거는 명령 (-l : lock)
    • root 사용자의 홈 디렉토리 : /root
    • 일반 사용자의 홈 디렉토리 : /home 밑에 존재

사용자의 추가

  • sudo userad -m [username] : 새 사용자를 생성하는 명령어
  • sudo passwd [username] : 새 사용자의 패스워드를 설정하는 명령어
  • sudo usermod -a -G sudo [username] : 사용자에게 superuser 권한을 부여하는 명령어
    (man usermod 명령어를 통해 더 자세한 내용을 알 수 있음)
728x90

Sever-Client

웹 서버에 있는 리소스를 클라이언트가 받아 보려면, 클라이언트는 웹에게 특정 리소스를 지정하여 제공해달라고 요청해야 함. 이때, 서버는 해당 요청을 이해하고 대응되는 동작을 통해 클라이언트에게 리소스 반환함.

Cookie

  • 클라이언트의 정보 기록과 상태 정보를 표현하는 용도로 사용
    • 정보 기록 : 웹 서버는 각 클라이언트의 팝업 옵션을 기억하기 위해 사용
    • 상태 정보 : 웹 서버는 클라이언트를 식별할 수 있는 값을 저장하여 사용
  • HTTP
    • 하나의 Request와 Response의 쌍이 독립적으로 구성되어 통신
      • connectionless 속성 : 하나의 요청에 하나의 응답을 한 후 네트워크 연결을 끝맺는 것
      • stateless 속성 : 네트워크가 연결이 끝맺을 때 상태를 유지하지 않는 것
    • 위와 같은 속성 때문에 HTTP 요청마다 사용자 인증을 해야되는데, 상태를 유지하기 위해서 cookie가 탄생함
  • Cookie 가 있는 통신
    • 클라이언트는 서버에 요청을 보낼 때마다 쿠키를 포함하고, 서버는 해당 쿠키를 통해 클라이언트를 식별함
    • 하지만, 서버가 별다른 검증 없이 쿠키를 통해 이용자의 인증 정보를 식별한다면 쿠키 변조를 통해 공격자가 타 이용자를 사칭해 정보 탈취가 가능함.

Session

  • 세션은 일정 기간동안 같은 사용자(클라이언트)로부터 들어오는 일련의 요구를 하나의 상태로 보고 그 상태를 일정하게 유지시키는 기술
  • 쿠키에 인증 상태를 저장하지만, 클라이언트가 인증 정보를 변조할 수 없도록 하기 위해 사용
  • 인증 정보를 서버에 저장하고 해당 데이터에 접근할 수 있는 키 (랜덤 문자)를 만들어 클라이언트에 전달하는 방식
    • 브라우저 -> 해당 키를 쿠키에 저장하고 이후 HTTP 요청을 보냄
    • 서버 -> 요청에 포함된 키에 해당하는 데이터를 가져와 인증 상태를 확인

개발자 도구 (F12)

  • 요소 검사 버튼 : 웹 페이지의 각 요소에 마우스를 갖다대고 클릭하면 해당 코드를 쉽게 찾을 수 있음
  • 디바이스 툴바 버튼 : 현재 브라우저의 화면 비율 및 User-Agent를 원하는 값으로 변경 가능
  • Elements : 페이지를 구성하는 HTML 검사
  • Console : 자바 스크립트를 실행하고 결과 확인
  • Sources : HTML, CSS, JS 등 페이지를 구성하는 리소스 확인 및 디버깅
  • Network : 서버와 오가는 데이터 확인
  • Application : 쿠키를 포함한 웹 어플리케이션과 관련된 데이터 확인

URI(URL)

  • URI (Uniform Resource Identifier)
    : 인터넷에서 특정 리소스를 나타내는 유일한 주소. URL(Uniform Resource Locator)과 URN(Uniform Resource Name)의 두 가지 형태로 나뉨.
  • URL (Uniform Resource Locator)
    : 인터넷 상의 특정 리소스의 위치를 지정하는 URI의 하위 집합. 일반적으로 프로토콜(예: HTTP, HTTPS), 호스트(웹 사이트의 도메인 이름), 리소스의 경로 및 파일 이름 등의 구성 요소로 구성. 
    ex) "https://www.example.com/page.html" ->  HTTPS 프로토콜을 사용하여 "www.example.com" 호스트에 위치한 "page.html"이라는 파일

포트

  • 호스트 내에서 실행되고 있는 프로세스를 구분짓기 위한 16비트의 논리적 할당
  • 0~65536개의 개수 가짐
  • IP주소는 컴퓨터를 찾을 때 필요한 주소, 포트는 컴퓨터 안에서 프로그램을 찾을 때 사용
  • 포트 번호
    • 0번 ~ 1023번 : well-known port (ex. 80 : HTTP / 443 : HTTPS)
    • 1024번 ~ 49151번 : registered port
    • 49152번 ~ 65535번 : dynamic port (동적 포트)

PHP

  • Hypertext Preprocessor : C언어를 기반으로 만들어진 서버 측에서 실행되는 서버 사이드 스크립트 언어

Burp Suite

  • 웹 응용 프로그램의 보안 테스트 도구
  • 웹 애플리케이션, 모바일 서비스 등을 대상으로 요청에 대한 클라이언트를 대신하여 중간에 만날 수 있는 모든 환경 작업을 수행하기 위한 프록시 서버 기능을 가짐
728x90

Level 0

  •  SSH(Secure Shell) : 원격지 호스트 컴퓨터에 접속하기 위해 사용되는 인터넷 프로토콜
  •  접속 명령어 
ssh [USER]@[HOSTNAME] -p [PORT]

명령어와 문제에 나온 패스워드를 입력하여 서버에 접속했다.


Level 0 → Level 1

readme 파일 안에 패스워드가 있다.

  • ls : 현재 디렉토리의 내용 나열
  • cd : 디렉토리 변경
  • cat : 파일 내용 표시
  • file : 파일의 유형 확인
  • du : 디스크 사용량 보고
  • find :  파일 및 디렉토리 검색

홈 디렉토리 안에 readme 파일이 있고, 해당 파일을 열어 패스워드를 확인할 수 있다.


Level 1 → Level 2

'-'라는 이름을 가진 파일 안에 패스워드가 있다. 

`cat -`으로 입력하면 옵션으로 인식되기 때문에 `-`로 시작하는 이름을 가진 파일은 단순하게 cat만 사용하여 열 수 없다.

`cat < -`(리다이렉션) 또는 `cat ./-` (파일경로입력) 와 같은 방식으로 열 수 있다.


Level 2 → Level 3

'spaces in this filename' 파일 안에 패스워드가 있다.

명령줄 인터프리터는 각 공백을 인수 구분자로 인식하기 때문에 공백이 포함된 파일명은 따옴표 `' '` 안에 입력하거나 공백 앞에 `\`을 입력해야 올바르게 인식된다.


Level 3 → Level 4

inhere 디렉토리의 숨겨진 파일 안에 패스워드가 있다.

`-a` 옵션을 이용하여 숨겨진 파일과 디렉토리를 모두 표시하면, 숨겨진 '.hidden' 파일을 확인할 수 있다.

숨겨진 파일과 디렉토리는 이름이 `.`으로 시작한다.


Level 4 → Level 5

inhere 디렉토리에서 사람이 읽을 수 있는 파일에 패스워드가 있다.

inhere 디렉토리에 있는 모든 파일 (`*`)의 정보를 `file` 명령어를 이용해서 확인해보면 '-file07'이 아스키코드로 되어 있다는 걸 확인할 수 있다. 


Level 5 → Level 6

inhere 디렉토리 안 '사람이 읽을 수 있고, 크기가 1033 바이트에, 실행이 불가능한' 파일 안에 패스워드가 있다.

`find` 명령어의 `size` 옵션을 사용하여 1033바이트의 크기를 가진 파일이 './maybehere07/.file2' 하나인 것을 확인할 수 있다. 

`file` 명령어를 통해 해당 파일의 정보를 확인해보면 아스키코드로 되어있어 사람이 읽을 수 있다는 조건을 만족한다.

`ls -l` 명령어를 통해 해당 파일의 파일 권한을 확인해보면 '-rw-r-----'로 실행할 수 없다는 조건을 만족한다. 

따라서 './maybehere07/.file2' 파일이 모든 조건을 만족하고, 해당 파일을 읽어보면 패스워드를 확인할 수 있다. 

728x90

Linux

  • 운영 체제 (Operating System)
    : 컴퓨터 하드웨어를 구동하고 사용자의 요청을 받아 여러가지 응용프로그램을 실행시키는 프로그램
  • Unix
    • 다중 사용자 및 다중 작업 운영체제 : 여러 사용자가 동시 로그인, 동시 작업 가능, 각각의 사용자는 독립적으로 작업 가능
    • 고수준 언어(c)로 작성된 최초의 운영체제
    • 최소한의 조정으로 다른 기계에 쉽게 이식
    • 서버에 특화
  • Linux
    • Unix에서 파생된 컴퓨터 운영 체제
    • 오픈 소스 기반 : 누구나 자유롭게 접근과 수정이 가능
    • 다양한 배포판 존재 : 사용자의 요구에 맞게 선택 가능 (ex. Ubuntu)
    • 다중 사용자 및 다중 작업 지원, 다중처리 시스템
    • 안정성과 보안
    • 안정적인 네트워크 지원
    • 다양한 응용프로그램 제공
  • Ubuntu
    • Linux 배포판 중 하나
    • 사용자 친화적인 환경 제공
    • 쉽게 설치 가능하며 다양한 그래픽 도구 사용 가능

리눅스 문법

  • 파일 권한 : ls -l 명령을 사용하여 확인 가능
    • 1 번째 자리 : -(파일), d(디렉토리)
    • 2~4 번째 자리 : 유저owner의 권한
    • 5~7 번째 자리 : 그룹group의 권한
    • 8~10 번째 자리 : 제3자other의 권한
    • 순서대로 r(read, 읽기), w(write, 쓰기), x(execute, 실행) 권한을 나타낸다
    • 예시 : -rwxr-xr-x (해당 파일은 유저에게 모든 권한 부여, 그룹과 제3자에게는 읽기와 실행 권한만 부여)
  • ls(list) : 해당 디렉토리에 있는 파일의 목록 나열
    • ls -l : 자세히 나열
    • ls -a : 숨겨진 파일을 포함한 나열
    • ls -al : 숨겨진 파일을 포함하여 자세히 나열
    • 숨겨진 파일 : 파일이름이 .으로 시작, 일반 파일 목록에선 보이지 않음
  • pwd (Print Working Directory) : 현재 디렉토리의 전체 경로 출력
  • cd (Change Directory) : 디렉토리 이동
    • ~ : 홈 디렉토리
    • . : 현재 디렉토리
    • .. : 상위 디렉토리
  • cat (concatenate) : 파일 내용 출력
  • vi : 새로운 문서 편집
  • file : 어떤 종류의 파일인지 출력
  • clear : 터미널 화면을 깨끗하게 지움
  • mkdir(make directory) : 새로운 디렉토리 생성, 생성된 디렉토리는 만든 사용자의 소유
  • rm (remove) : 파일이나 디렉토리 삭제
    • rm -i : 정말 지울지 확인하는 메시지가 출력됨
    • rm -f : 확인하지 않고 바로 삭제
    • rm -r : 디렉토리와 디렉토리 안 파일까지 모두 삭제
  • mv (move) : 파일이나 디렉토리 이동 또는 이름 변경
  • cp (copy) : 파일이나 디렉토리 복사
  • find : 특정 파일의 위치 검색
    • find -name : 파일 이름
    • find -user : 파일 소유자
    • find -perm : 파일 권한
    • find -size : 파일 크기 (b: 블록단위 / c : byte / k : kbyte / w : 워드)
    • find -group : 파일 그룹
  • id : uid, gid 등을 출력
  • whoami : 현재 사용자 이름 출력
  • touch : 크기가 0인 새 파일을 생성하거나 최종 수정 시간 변경
  • *(와일드카드) : 임의의 문자(열)에 대응시키기 위하여 사용하는 문자
  • |(파이프라인) : 한 데이터 처리 단계에 출력이 다음 단계의 입력으로 이어지는 형태로 연결된 구조
  • grep [OPTION] [PATTERN] [FILE] : 파일 내에서 문자열 검색
    • OPTION : 출력
    • PATTERN : 검색할 문자열
    • FILE : 검색 대상 파일

리눅스 프로세스 메모리 구조 Linux Process Memory Layout

  • 프로세스의 메모리를 크게 5개의 세그먼트(Segment)로 구분
    • 세그먼트 : 적재되는 데이터의 용도별로 메모리의 구획을 나눈 것
  • os가 각 용도에 맞게 적절한 권한을 부여할 수 있음 -> cpu가 메모리에 대한 권한이 부여된 행위만 할 수 있음

  • 코드 세그먼트 (Code Segment) : 실행 가능한 기계 코드가 위치하는 영역 (읽기, 실행 권한)
  • 데이터 세그먼트 (Data Segment) : 컴파일 시점에 값이 정해진 전역 변수 및 전역 상수들이 위치하는 영역 (읽기 권한)
    • 쓰기가 가능한 세그먼트 (=data segment) : 값이 변할 수 있는 데이터 (ex. 전역 변수)
    • 쓰기가 불가능한 세그먼트 (=rodata segment) : 값이 변할 수 없는 데이터 (ex. 전역 상수)
  • BSS 세그먼트 (BSS Segment) : 컴파일 시점에 값이 정해지지 않은 전역 변수가 위치하는 영역 (읽기, 쓰기 권한)
  • 스택 세그먼트 (Stack Segment) : 프로세스의 스택이 위치하는 영역, 실행 중에 동적으로 할당되어 임시 변수들이 저장됨 (읽기, 쓰기 권한)
  • 힙 세그먼트 (Heap Segment) : 힙 데이터가 위치하는 영역, 실행 중에 동적으로 할당 (읽기, 쓰기 권한)

SSH

  • shell : 사용자가 글자를 입력하여 컴퓨터에 명령할 수 있도록 하는 프로그림
  • SSH (Secure Shell) : 네트워크 상 다른 컴퓨터의 쉘을 사용할 수 있게 해주는 프로토콜, 강력한 보안 제공
  • PuTTY : windows를 위한 무료 SSH
728x90

Process

컴퓨터의 구조

  • Processor - cpu
    • Memory에 올라와 있는 프로그램을 읽어서 실행한다
  • Memory - RAM
    • 가격이 비싸다 -> 저장공간이 작다, 속도가 빠르다
    • 사용하는 프로그램을 Storage에서 읽어서 적재한다
  • Storage - SSD, HDD
    • 가격이 싸다 -> 저장공간이 크다, 속도가 느리다
    • 실행되지 않는 프로그램들을 저장한다
  • process : 실행되고 있는 상태의 프로그램

프로세스 모니터링 (ps, top, htop)

ps : 프로세스 리스트를 보여준다
kill : 강제로 프로그램을 종료시킨다

sudo top : 프로세스 리스트
sudo htop : 프로세스 리스트, sudo top보다 그래픽적 요소가 있음, CPU와 MEM을 기준으로 재정렬할 수 있음

백그라운드 실행

Ctrl + z : 실행중인 프로그램을 백그라운드로 보내는 단축키. 명령어가 일시정지된다.
fg : background에 실행되던 프로그램을 foreground로 불러내는 명령어.
jobs : 현재 background 작업을 확인하는 명령어.

&: 명령어 뒤에 붙여 실행할 때부터 프로그램을 background로 보낸다

항상 실행 - 데몬

데몬에 해당하는 프로그램들은 항상 켜져 있다
서버가 데몬에 해당한다

/etc/init.d : 데몬 프로그램들이 위치하는 디렉토리

service라는 명령어를 통해 실행, 중지시킨다
sudo service appache2 start, sudo service appache2 stop

정기적 실행 - cron

crontab -e

쉘을 시작할 때 실행

startup 설정

alias : 명령에 별명을 붙여줌
ex) alias l='ls -al' : l을 입력하면 ls -al 이 실행된다

.bashrc : 쉘을 시작할 때 실행될 내용이 저장된 파일

+ Recent posts