반응형

 

리눅스 명령어

 

pwd -> 현재경로보기

cd -> 원하는 디렉토리로 이동

directory -> 이동하기 원하는 디렉토리

. -> 현재 디렉토리

.. -> 상위 디렉토리

$변수 -> 변수에 지정된 정보를 이용하여 디렉토리로 이동

~ -> 로그인 된 사용자의 홈디렉토리로 이동

~계정명 - 지정된 계정의 홈디렉토리로 이동

cd- -> 이전 디렉토리로 이동

ls - 디렉토리 목록 보기

-a, --all -> .을 포함한 경로안의 모든 파일과 디렉토리 표시(.이 앞에붙으면 숨겨진거)

-l,--format=long -> 지정한 디렉토리의 내용을 자세히 출력

-d,--dorectory -> 지정된 디렉토리의 정보 출력

-n,--numeric -> 파일 및 디렉토리 정보 출력시 UID,GID를 사용

-F,--classify -> 파일 형식을 알리는 문자를 각 파일 뒤에 추가("*","/","@","|","NULL")

-R,--recursive -> 하위 경로와 그 안에 있는 모든 파일들도 같이 나열

du -sh -> 용량을 알려주는 명령어

M -> 수정시간

A -> 접근시간

C -> I-node에 저장된 정보가 바뀌었을때

ls-F 파일종류 색깔

* 실행파일 녹색

/ 디렉토리 파란색

@ 심볼릭링크파일 하늘색

| 파이프파일 주황색

= 소켓파일 자주색

null 정규파일 흰색,검정색

cp -> 파일/디렉토리 복사

{} -> 대상 선택 가능

* -> 전부 선택 가능

touch -> 빈파일 만드는 명령어

-i,--interactive -> 복사대상 파일이 있을 경우, 사용자에게 복사에 대한 실행 여부를 묻는다

-f,--force -> 복사대상 파일이 있을 경우, 사용자에게 확인없이 강제로 복사한다

-r,-R,--recursive -> 디렉토리를 복사할 경우 하위 디렉토리와 파일을 모두 복사한다

-v,--verbose -> 복사진행 상태를 출력한다

-d,--no-dereference -> 복사대상 파일이 심볼릭 파일이면 심볼릭 정보를 그대로 유지한 상태로 복사한다

-p,--preserve -> 원본 파일의 소유주, 그룹, 권한, 시간정보를 보존 하여 복사한다

-a,--archive(-dpr) -> 원본 파일의 속성, 링크정보들을 그대로 유지하면서 복사한다

alias -> 기본값 확인

mv -> 파일이나 디렉토리를 이동하거나 이름을 바꿀때 사용

-i,--interactive -> 기본적으로 .bashrc에 alias되어 있는 옵션으로, 이동할 위치에 동일한 파일이 있을 경우 사용자에게 확인

-u,--update -> 이동할 파일이 이동할 위치에 있는 파일보다 최근 파일일 경우에만 이동한다

-b,--backup -> 대상 파일이 이미 있어, 지워지는 것을 대비해 백업파일을 생성한다

-f,--force -> 대상 파일이 이미 있어도 사용자에게 어떻게 처리할지를 묻지 않는다

-v,--verbose -> 파일을 옮기는 과정을 자세하게 보여준다

디렉토리를 복사할때는 -r 옵션이 꼭 있어야한다

 

mkdir -> 디렉토리 생성

-m,--mode -> 디렉토리 생성시 디렉토리의 기본 권한을 지정한다

-p,--parents -> 상위 디렉토리를 만들면서 만들어준다

rmdir -> 디렉토리 삭제,빈 디렉토리 삭제명령,파일은 삭제불가

rm -> 파일 및 디렉토리 삭제

-f,--force -> 파일/디렉토리 삭제시 사용자에게 어떻게 처리할지 물어보지 않는다

-r,-R,--recursive -> 일반 파일이면 그냥 지우고,디렉토리면 디렉토리를 포함한 하위 경로와 파일을 모두 지운다

-v,--verbose -> 각각의 파일 지우는 정보를 자세하게 보여준다

--version -> 버전정보 표시

파일명앞에 .을 붙이면 숨김파일

cat -> 파일 내용 출력

ctrl + C -> 취소,종료

echo "alias 1='clear'" >> /etc/bashrc

전체설정

~/.bashrc

특정설정

cat -n -> 행 번호 활성화

touch -> 파일 시간정보 변경 및 파일 생성

more -> 내용이 많은 파일을 화면단위로 끊어서 출력한다.

more /etc/passwd

less -> 화면단위로 끊어서 왼쪽에 있는 입력값을 오른쪽에 값을 출력

ls -l /etc | less

cat -n /usr/share/dict/words | less +200000 -> 20만번째부터 출력

file -s /dev/sda1 -> 파일 시스템 디스크종류 확인

find -> 파일 및 디렉토리 검색

파일이름 검색

find / -name "test" -type d

find / -name "test" -type f

find / home/ -newer test -> test파일 이후에 수정된 파일 찾기

find /linux -name "test" -exec rm{} \; -> 찾으면서 지워주기

shutdown -[옵션] -[시간]

-k -> 종료 경고 메시지 만은 전송

-h -> 시스템 shutdown후 시스템 종료

-r -> 시스템 shutdown후 시스템 재시작

-f -> 빠른재부팅시 사용

-c -> 종료예약작업시 종료작업 취소(ctrl + c)

+m -> 현재 시간으로부터 종료시점

hh:mm -> 절대시간으로 종료시점 시간지정(시간:분)

now -> 명령어를 수행

jobs -> 백그라운드에서 돌아가고있는거 출력

파일유형(type)

- -> 일반파일

b -> 블록형 특수 장치파일(주로 디스크,/dev/sda등)

c -> 문자형 특수 장치파일(주로 입출력에 사용,/dev/console등)

d -> 디렉토리를 의미

p -> 파이프 파일임을 의미

s -> 소켓 파일임을 의미

l -> 심볼릭 링크파일임을 의미

/ -> 최상위 디렉토리

/boot -> 리눅스 커널의 메모리 이미지와 부팅 과정에 필요한 정보 파일

/bin -> 기본적인 명령어들이 있다

/root -> 슈퍼 유저 root의 홈 디렉토리

/home -> 관리자 이외의 사용자의 홈 디렉토리가 생성되는 위치

/etc -> 시스템이나 사용자관리를 위한 자료 파일이나 관리자용 명령들을 가지고 있다

/dev -> 장치파일 파일시스템과 하드웨어간의 인터페이스를 담당하는 파일이 들어있다

/lib -> 각종 언어를 위한 라이브러리를 가진다

/mnt -> Remote Device를 이용하기 위한 디렉토리

/media -> Local Device를 이용하기 위한 디렉토리

/sbin -> 시스템운영 및 관리를 위한 명령파일들이 있다. 부팅과정에 필요한 명령들은 여기에 있고 정상 동작 상태에서 필요한 크기가 큰 명령들은 /usr/sbin 에 있다.

/usr -> 루트 파일 시스템과 구조는 유사하고 용량이 크고 자주 사용되지 않는 파일들이 있다

/proc -> 커널과 프로세스 정보를 얻을 수 있는 가상 파일 시스템이다. 관리자는 이 디렉토리에 대해서 잘 알고 있어야 한다

/tmp -> 잠시 사용되는 임시 파일들을 위한 디렉토리이다

/var -> /var/log나 /var/adm과 같이 자주 변경되는 시스템 파일들을 가지고 있다

vim 저장하고 나오기

;wq

마크이동

책갈피기능 설정방법

m+? : ?는 A~Z중하나

이동방법 : `+?

vim 명령모드

i -> 현재 위치에서 입력 모드로 변경

I -> 행의 제일 처음에서 입력 모드로 변경

a -> 현재 위치에서 우측으로 한 칸 이동 후 입력 모드로 변경

A -> 행의 제일 마지막에서 입력모드로 변경

o -> 커서 아래에 새로운 행을 추가하고 입력모드로 변경

s -> 현재 문자를 지우고 입력모드로 변경

S -> 현재 행의 모든 문자를 지우고 입력모드로 변경

x -> 커서가 있는 문자 삭제

X -> 커서가 있는 앞 문자 삭제

v -> 비쥬얼모드

dd -> 현재 커서의 행 삭제

숫자 + dd -> 현재 커서부터 숫자만큼 행 삭제

yy -> 현재 커서가 있는 라인을 복사

숫자 + yy -> 현재 커서부터 숫자만큼의 행을 복사

p -> 복사한 내용을 현재 라인 이후에 붙여넣기

P -> 복사한 내용을 현재 라인 이전에 붙여넣기

/ 검색

찾아바꾸기

%s/?/? , %s~?~? , %s/\//@/g

다른작업을 할때는 :! 로 가능

vs /? -> 화면 나누기

ctrl + w 화면 이동

EX모드

:e /[filename] -> 파일열기

:enew -> 현재 창을 닫고 빈 문서를 연다

:q -> 종료(변경된 내용이 없는 경우)

:q! -> 강제종료(변경된 내용이 있어도 무시)

:w -> 파일저장

:wq -> 파일 저장 후 종료

:w /? -> ?이름으로 저장

:w >> /filename -> filename에 내용추가

:f -> 현재 작업중인 파일의 이름과 라인수

:[n]r[filename] -> filename 파일의 내용을 현재 편집중인 파일의 n라인부터 삽입

:[n]r[command] -> Command 실행결과를 파일의 n라인부터 삽입

:set ts=4 -> Tab 사이즈 조절

:set nu -> 행번호 활성화

:set nonu -> 행번호 비활성화

:nohl -> 화면 글씨 검색 색깔 없애기

Shell

유닉스에서 대화형 사용자 인터페이스를 말함

사용자가 입력하는 명령어를 이해

운영체계의 바깥 걔충애 위치하며, 사용자와 커널의 의사소통을 담당

cshell, bourneshell, bashshell, tcshell, kornshell등 다양한 종류가 있음

Shell의 역할

입력을 읽고 해당 명령행을 분석

특수 문자들을 평가함

파이프,리다이렉션,백그라운드 프로세스를 설정

시그널을 처리

ctrl + d -> 저장 종료

ctrl + z -> 일시정지

Bash Shell

다양한 내장 명령어,히스토리,별명,파일,명령어 완성 기능,명령행 편집등의 기능을 지원

2X 버전에 접어 들면서 Com Shell과 C Shell에서 제공하는 기능들도 많이 추가되어 있음

Bourn Shell과 하위 호환성도 유지되고 있음

Bash Shell 구동과정

init -> getty -> login -> bash -> $사용자

Shell 변수

지역변수 -> 자신을 생성한 쉘에서만 사용할 수 있다

환경변수 -> 자신을 생성한 쉘뿐만 아니라, 이로부터 파생되어 나온 자식 프로세스에도 사용할 수 있다

변수 명칭 표준 -> 변수이름에는 알파벳a~z,A~Z,0~9,밑줄문자(_) 63개의 문자를 사용 할 수 있으며 첫 글자는 알파벳 혹은 밑줄문자(_)만 쓸 수 있다

변수에 값 할당하기 -> 등호(=)를 사용하며 등호(=)양쪽에는 공백이 올 수 없다

Variable=value / Variable="value value value"

export PATH=$PATH:~

정규표현식

어떤 문자열의 집합을 묘사하는데 사용되는 텍스트 스트링

정해진 구문 규칙에 따른다

Editor,Utility,Programming 언어에서 텍스트 패턴을 기준으로 검색 혹은 조작하는데 사용된다

정규표현식 찾기

grep "d" [file] d

grep "[de] [file] d 나 e 둘중 하나

grep "[a~z]" [file] a~z중 아무거나 하나

grep "[a~z0~9]" [file] 소문자나 숫자중에 아무거나 하나

grep "^[a~z]" [file] 행의 처음이 소문자로 시작

grep "[^a~z]" [file] 부정의 의미, 소문자를 제외한 나머지

grep "^[^a~z]" [file] 행의 처음이 소문자를 제외한 나머지

grep "test*" [file] *바로 앞 문자열을 0개 이상 반복되는 문자

ex>

tes

test

testt

grep "test[0~9]* [file]

ex>

test

test111

test222

test123

^ -> 줄의 시작을 나타내지만 문맥에 따라서는 정규 표현식에서는 문자 집합의 의미를 반대로 해석해 줌

* -> 바로 앞의 문자열이나 정규 표현식 에서 0 개 이상 반복되는 문자를 나타냄

. -> 새로운 라인을 제외한 오직 한 개의 글자와 일치

$ -> 줄의 끝과 일치하며, ^$의 경우 빈 줄과 일치함

{..} -> 문자들을 집합으로 묶어줌

\ -> 특수 문자를 원래의 문자 의미 그대로 해석 하도록 해줌

\(......\) -> 다음 사용을 위해 태그를 붙인다. 최대 9개 까지 사용가능하다.

\< -> 단어의 시작 지시자

\> -> 단어의 끝 지시자

X\{n\} -> 문자 x를 반복

 

Grep

파일 전체를 뒤져 정규표현식에 대응하는 모든 행들을 출력

기본형식 -> grep <word> <filename>

Egrep -> 확장 정규표현식

Awk -> 파일의 첫번째 필드를 출력한다.

ls -al | awk '{print $1, $9}' -> awk로 필터링 하여 파일의 권한과 파일명만 출력함. awk는 라인을 받아와서 구분자를 통해 구분하고 print 명령으로 출력하게 된다.

 

ls -al | awk '$5 > 1048576 {print $5, $9}' -> 1MB이상의 용량을 갖는 파일명과 용량을 출력한다.

 

awk /root/ /etc/group -> group파일을 'root' 패턴으로 검색하여 그 패턴을 포함하는 라인만 출력함.

 

awk -F: /root/'{print $1}' /etc/group -> group파일에서 각줄마다 'root'라는 패턴을 검색하여 ':'토큰별로 구분하여 첫열만 출력

 

2.스크립트 파일 이용

 

#!/bin/awk -> awk선언

 

BEGIN {

word =0;

}

{

word += NF ----> NF는 각 파일마다의 필드 수를 나타내는 AWK시스템 변수이다. AWK는 구분자가 정해져있지 않을때 공백으로 구분하고 각 라인의 단어의 수가 NF로 들어가고 +=연산자에 의해서 마지막 라인의 단어의 수까지 더해줌

}

 

END {

print "word cnt : "

word;(End)

}

 

작성된 스크립트는 -f 옵션으로 실행

 

awk -f word.awk wordtest.txt

 

3.awk 시스템 변수

 

$0 : 입력라인 모두

$n : 입력라인에서 n번째 필드 값

ARGC : 명령 라인 인자수를 갖는 변수

ARGV : 명령 라인의 인자를 포함하는 배열

ENVIRON : 환경변수들을 모아둔 관계형 배열

FILENAME : 현재 파일명

FNR : 입력파일의 레코드 총수(라인수)

NF : 현재 레코드 필드 수

NR : 현재 레코드 번호

OFMT : 숫자에 대한 출력 포맷

OFS : 출력필드 구분, 빈 라인을 기본으로 사용

ORS : 출력 레코드 구분 (newline을 기본으로 사용)

RLENGTH : 지정한 패턴으로 검색되어 나온 문자열의 길이

RS : 입력 레코드 구분(newline을 기본으로 사용)

RSTART : 지정한 패턴으로 검색되어 나온 문자열의 앞부분

File System

컴퓨터의 파일 시스템은 파일과 그 안에 든 자료를 저장하고 찾기 쉽도록 유지 관리하는 방법이다.

리눅스가 지원하는 파일스스템

리눅스가 지원하는 파일시스템은 매우 뛰어나기는 하지만 완벽하지는 않다

파티션이란?

연속된 저장 공간을 하나 이상의 연속되고 독립된 영역으로 나누어서 사용할 수 있도록 정의한 규약이다

-> 파티션을 나누기 위해서는 저장장치에 연속된 공간이 있어야한다

-> 하나의 하드디스크에는 여러 파티션을 나눌 수 있지만, 두 개의 하드디스크를 이용해서 하나의 파티션을 만들 수는 없다

단일 파티션과 다중 파티션의 가장 큰 차이점은 MBR의 유무이다

-> DOS파티션에서만 해당되는 것으로 파티션이 나눠진 경우 각 파티션들을 관리할수 있는 파티션 테이블과 부팅이 가능하도록 하는 부트 프로그램이 있는 영역이다.

-> 물리적으로는 디스크의 첫 번째 섹터를 의미

파티션의 용도

파티션을 나누는 용도는 개인의 사용용도에 따라 차이가 있다

-> 하나의 물리적인 디스크를 여러 논리 영역으로 나누어 관리를 용이하게 하기 위해

-> OS영역과 Data 영역으로 나누어 OS영역만 따로 포맷 및 관리하기 위해

-> 여러 OS를 설치하기 위해

파티션의 종류

파일시스템의 종류는 벤더에 따라 그 수가 굉장히 많다. 그만큼 파티션의 종류도 각양각색 이다.

DOS Partition Table

-> 현재 가장 많은 OS가 채택하여 사용하고 있는 파티션

UFS / EXT2,3

UFS

유닉스의 대표적인 File System

파티션설정

fdisk /dev/sdb?

Mount

파일 시스템 구조 내에 있는 일련의 파일들을 사용자나 사용자 그룹들이 이용할 수 있도록 만드는 것

리눅스 환경에서 'mount'라는 명령은 논리적으로 디스크와 디렉토리를 붙이는 것을 말함

파일시스템의 마운트와 언마운트

/etc/fstab 파일 내에 마운트할 항목을 추가하여 부트시에 자동으로 마운트 하는방법

파일시스템의 사용을 중지할때에는 umont 명령어를 사용한다

Mout 명령어 사용형식

mount -> 연결확인

mount -a -> etc/fstab에 기술되어 있는 모든 파일시스템을 마운트 한다.

mount -t -> 파일시스템의 형식을 지정한다.

mount -n -> /etc/mtab 파일에 정보를 남기지 않고 마운트한다.

mount -o -> -o [option] 뒤에 콜론으로 다음옵션을 사용할수있다.

async -> 파일시스템에 대한 I/O가 비동기적으로 이뤄지도록 한다.

defaluts -> rw,suid,dev,exec,auto,nouser,async를 기본옵션으로 사용한다

nosuid -> SetUID,SetGID를 무시하게 된다

remount -> 이미 마운트된 파일시스템을 다시 마운트 한다.

Umount -> 장치연결 해제하기

파일시스템의 연결을 해제하여 사용을 중지한다

Syntax -> umout [option] [Device] or [Directory]

Option

-a -> /etc/fstab에 기술되어있는 모든 파일시스템의 마운트를 해제할때 사용하지만, 정상적인 상황에서 실행해서는 안된다.

-f -> 강제로 연결해제 할때 사용할 수 있으며 NFS서비스에 연결되어 있는 파일시스템을 해제할때 사용한다.

/dev/sda1 파티션의 라벨을 조회

e2label /dev/sda1

/dev/sda1/ 파티션의 라벨을 설정

e2label /dev/sda1 bootsection

라벨을 이용한 마운트

/label /

사용자 계정/그룹 관리

계정생성(useradd) 명령어 관련 파일

/etc/passwd -> 사용자 계정 정보의 저장 장소

/etc/shadow -> 안전하게 보호될 사용자 계정 정보가 들어있음

/etc/group -> 계정이 속한 그룹 ID 및 그룹 목록들에 대한 정보

/etc/ghsadow -> 그룹의 암호 정보 저장 장소

/home -> 사용자별 개별 홈 디렉토리가 생성되는 기본 디렉토리

/etc/login.defs -> 계정생성시 참조하는 기본설정정보

/etc/default/useradd

/etc/skel

/etc/passwd

test : x : 500 : 500 : : /home/test : /bin/bash

필드 의미

test 사용자 계정명

x 사용자에게 부여된 패스워드

500 숫자로 표현되는 사용자 id(UID)

500

NULL

/home/test

/bin/bash

/etc/shadow

test : !! : 14349 : 0 : 99999 : 7 : : :

필드 의미

test 사용자 계정명

!! 사용자에게 부여된 기본암호(인증불가)

14349 test 계정에게 부여된 암호 생성일자

0 test 계정의 암호를 변경할 수 있는 최소 기간

99999 test 계정에게 부여된 암호를 변경없이 사용할 수 있는 유효기간

7 만료일 지정시 만료 경고일수

NULL 계정 만료일자와 비활성화 일수

NULL 계정의 만료일(기본값은 지정되어 있지 않다)

chfn -> 정보입력

chage 날짜변경

chage date 월/일 +s(시)/분/년

/etc/group

test : x : 500

필드 의미

test 그룹의 이름

x 그룹 패스워드

500 숫자로 된 그룹id

NULL 그룹소유주

NULL

USERADD 계정 생성명령

Null 사용자 계정명은 직접 지정

-p 사용자의 패스워드 생성(MD5_Crypt)

-u 사용자의 uid정보를 임의로 변경

-g 사용자의 기본그룹 지정시 사용

-c 사용자에게 설명 부여

-d 사용자의 기본 홈 디렉토리 변경

-s 사용자의 로그인 쉘 변경

-r 사용자의 uid정보를 1~499번 사이의 값으로 생성

-o 동일한 uid값을 갖는 계정생성

USERADD 추가 기능

계정 생성과 관련된 기본 정보를 변경할 수 있다.

useradd -D [option] [Argument]

-b 계정생성시 생성되는 홈디렉토리의 기본생성 위치 변경

-e 계정의 기본 만료일자 변경

-f 계정 만료일자에 대한 Inactive Days변경

-g 계정생성시 지정되는 기본그룹 변경

-s 계정의 기본 로그인 쉘 변경

PASSWD 암호 생성

passwd [Option] [ACCONT NAME]

-d 패스워드를 NULL값으로 지정

-l 패스워드를 잠금설정

-u 패스워드를 잠금해제

-S 패스워드 상태출력

--stdin 패스워드를 표준출력장치로 입력받아 생성

GROUPADD 그룹생성 명령

groupadd [Option] [Argument] [Group_Name]

-f 이미 존재하는 그룹과 동일하게 생성

GROUPMOD 그룹수정 명령

groupmod [Option] [Argument] [Group_Name]

-g 기존그룹의 GID값 지정

-n 그룹의 이름 변경

그룹확인

tail -1 /etc/group

소유주지정

gpasswd

소유주확인

tail -1 /etc/gshadow

Permissions

Ownership/Permission

chattr 명령어

리눅스의 second extended 파일 시스템에서 제공되는 파일 속성 변경 명령어

사용형식

chattr [option] [+-=] [속성값] [File / Directory]

속성값

a -> 추가 모드만 지원함(소유주만 가능)

c -> 압축상태로 저장함

d -> 덤프를 하지 않음

i -> 변경 불가능 상태로 설정

j -> 저널링으로 기록하게 함(ext3만 가능)

s -> 안전한 쓰기를 제공

u -> 삭제한 데이터를 debugfs 명령어로 복구 함

속성값 보기 lsattr /?

속성넣기 chattr +? /?

속성빼기 chattr -? /?

UMASK

umask [mode]

mode File Directory

0000 666 777

0001 666 776

0002 664 775

0022 644 755

umask값은 022이 제일 안전

ACL(Access Control List)

ACL은 특별한 권한 설정기능을 제공한다. 우리는 기존에 파일이나 디렉토리에 부여하던 소유자,그룹,기타 사용자의 권한을 특정 사용자,특정 그룹에게 추가해서 설정할 수 있다.

ACL은 그룹에게는 읽기 권한만 주고, 특정 유저에게는 읽기/쓰기 권한을 줄 수도 있다.

setfacl [option] [u,g,o::---] [file / directory]

-m -> Modiffy의 약자로 권한을 지정하거나 수정할때 사용

-x -> 권한을 삭제할 때 사용

-R -> 디렉토리의 경우 하위 디렉토리와 파일까지 권한을 변경

-b -> 권한 및 mask등 지정한 권한을 전부 제거

-d -> 디렉토리는 자신의 디렉토리내에서 생성되는 파일에 자동으로 적용되는 acl

getfacl [option] [file / directory]

-R -> 디렉토리 이면 하위까지 전부 권한을 보여준다

Process

컴퓨터의 CPU에서 실행되는 모든 프로그램을 프로세스라고 한다.

리눅스에서는 top 종료는 q

멀티태스킹의 개녕

시스템은 기본적은 하나의 CPU를 가지고 있으며, 그것을 최적화 하기 위하여 time-sharng 기법을 이용한다

Process의 종류

프로세스에는 대화형 프로세스, 배치프로세스, 데몬 프로세스로 구분되어 진다.

대화형 프로세스

터미널과 세션을 통하여 사용자와 정보를 주고받으며 실행하는 프로세스를 말한다.

배치 프로세스

일련의 작업을 몰아서 특정 시각에 실행 시키는 것이며, 일반적으로 터미널과의 입/출력 교류가 전혀 없다.

중요하지 않은 작업에 대해 시스템의 사용률이 낮을때 처리하는데 매우 유용

batch명령어와 at명령어를 사용한다

데몬

데몬은 특정 서비스를 위해 백그라운드 상태에서 게속실행되는 서버 프로세스이다.

일반적인 서비스는 각각의 서비스가 사용하는 포트를 관리하는 데몬이 존재한다

다른 데몬들에게 할당된 포트를 관리하는 특별한 용도의 데몬도 존재한다

좀비 프로세스

자식 프로세스가 종료 되었는데, 부모 프로세스에게 SIGCHLD 전달이 안되었을 때 혹은 손실(lost) 되었을 때 발생

자식 프로세스는 종료 되었는데 부모 프로세스는 종료되지 않았거나, wait()계열 함수를 호출해서 자식 프로세스를 정리하지 않았을 때 발생

파일 등의 모든 자원 및 메모리 이미지 역시 해제 하였으며 프로세스 테이블만 유지하고 있는 상태이다

at / batch를 이용한 배치 프로세싱

at와 batch는 /bin/sh를 이용하여 지정된 시점에 실행할 명령을 표준 입력이나 지정한 파일에서 읽어들인다

ctrl + d 저장

예약명령 보기 atq

지울때 atrm 숫자

ps

현재 동작하고 있는 프로세스들의 상황(스냅샷)을 보여줌

ps 명령어 주요옵션

au -> 사용자들이 실행시킨 프로세스 목록

ef -> 모든프로세스 목록

a -> 현재 실행중인 전체사용자의 모든 프로세스 출력

e -> 모든프로세스 정보출력

l -> Long Format

u -> 프로세스를 실행한 사용자 정보와 프로세스

kill

프로세스나 프레세스 그룹에게 지정된 시그널을 보내줌

SIGHUP(HUP) <1> -> 로그아웃,설정 파일 다시읽기

SIGINT(INT) <2> -> 키보드에 의한 실행 중지, CTRL+C

SIGKILL(KILL) <9> -> 강제종료,emergency kill

SIGTERM(TERM) <15> -> 실행 종료,안전한 종료

SIGTOP(STOP) <19> -> 실행정지, CTRL+Z

SIGCONT(CONT) <18> -> 일시정지 해제

PID1234 프로세스에서 SIGTERM(기본값) 신호를 보냄

kill PID

다수의 프로세스 강제종료

kill -9 PID1 PID2 PID3 PID4

rpm -Uvh 패키지

rpm -e 패키지명

YUM

yum -y [install / update / remove] [package_name]

yum -y install [package_name]

yum -y remove [package_name]

Tar / gzip / bzip

리눅스에서 사용되는 압축

Tar의 주요옵션

c -> 새로운 묶음을 생성

x -> 묶인 파일을 풀어줌

t -> 묶음을 풀기 전에 목록을 보여줌

f -> 묶음 파일명을 지정해줌

v -> 파일이 묶이거나 풀리는 과정을 보여줌

z -> Tar + gzip

j -> Tar + bizp2