DEVOPS 51

[Linux] 프로세스 명령어(sleep, kill, exit)

sleep 지정된 시간(초)만큼 실행을 중지한다. $ sleep (초) kill 현재 실행중인 프로세스를 강제로 종료한다. $ kill [-시그널] 프로세스번호 exit 쉘을 종료하고 종료코드(exit code)을 부모 프로세스에 전달한다. $ exit [종료코드] exit(0) - 정상적인 종료 exit(1) - 비정상적인 종료(오류 났을 때) 부모 프로세스는 전달된 종료코드를 보고 자식 프로세스가 이 번호로 가지고 종료했다는 것을 알게된다. 커널 입장에서 exit 했다는 것은 이 프로세스가 정상적으로 사용자가 종료했다고 생각한다. 오류라는 것은 프로그래머가 생각하는 논리적인 오류이다. 커널 입장과 프로그래머 입장에서 오류를 판단하는 기준이 다르다.

DEVOPS/LINUX 2021.12.04

[Linux] 프로세스란?(+init프로세스)

프로그램과 프로세스 프로그램이란 실행 파일이다. 실행 파일이 주기억장치에 올라가 실행을 하게 되면 프로세스로 만들어진다. 프로세스란 실행중인 상태의 프로그램을 말한다. 프로그램 자체가 프로그램은 아니다. 하나의 프로그램에서 여러 개의 프로세스를 생성할 수 있다. 각 프로세스를 프로그램의 인스턴스라고 한다. 프로세스를 다른 프로세스가 만든다. 프로세스마다 부모 자식간의 관계가 있는데 만든 프로세스를 부모 프로세스, 만들어진 프로세스를 자식 프로세스라고 부른다. 모든 프로세스는 부모 프로세스를 가진다. ex) 쉘에서 프로세스를 만드는게 가장 흔한 프로세스를 만드는 방법이다. 쉘이라는 프로세스가 vi라는 프로세스를 만든다. 프로세스 각 프로세스는 유일한 프로세스 번호 PID를 갖는다. 사용자는 파일 이름으로 ..

DEVOPS/LINUX 2021.12.04

[Linux] 잠금(lock)

파일 혹은 레코드(파일의 일부 영역) 잠금 -한 프로세스가 그 영역을 읽거나 수정할 때 다른 프로세스의 접근을 제한 -잠금된 영역에 한 번에 하나의 프로세스만 접근 -레코드에 쓰기(혹은 수정)를 할 경우 대상 레코드에 대해 잠금을 해서 다른 프로세스가 접근하지 못하게 해야 한다. 잠금 구현 fcntl( ) 함수로 구현 int fcntl(int fd, int cmd, struct flock *lock); 잠금의 종류 -F_RDLCK : 여러 프로세스가 공유 가능한 읽기 잠금 -F_WRLCK : 한 프로세스만 가질 수 있는 배타적인 쓰기 잠금 이 때 읽기 잠금은 동시에 여러개의 프로세스가 여러번 할 수 있다. 즉 공유가 가능하다. 데이터의 변화가 안생기기 때문이다. 쓰기 잠금은 다른 프로세스가 read도 못..

DEVOPS/LINUX 2021.12.04

[Linux] 리눅스 ps 명령어

$ ps -elf 모든 사용자 프로세스 정보를 자세히 출력 이 때 pid가 1번인 프로세스는 주기억장치상에서 처음에 부팅할때 수작업으로 만든 init프로세스이다. 모든 프로세스의 부모이다. PPID가 0이라는것은 부모가 없다는 뜻이다. wc: 라인 수를 셈 317개의 프로세스가 동작중이다. 맨 마지막 라인 쪽 부분을 보면 R은 현재 실행중, S는 sleep중이란 뜻이다. 프로세스의 아이디는 34751이고, 부모 프로세스 아이디는 34744이다. 바로 위에 있는 bash이다.

DEVOPS/LINUX 2021.11.07

[Git] remote branch 명령어

깃허브에 새로운 레퍼지토리를 생성하고 연결한다. remote repository를 등록만 했기 때문에 아직 remote branch는 없다. 브랜치는 자동으로 원격에 등록되지 않는다. push를 하면 remote repository는 로컬과 동일한 branch를 생성한다. 이름이 다른 branch로 연결하려면 git push origin [브랜치이름]:[새로운 브랜치 이름] footer라는 브랜치를 function 이름으로 추가한다. git clone을 해 브랜치를 확인해 보면 remote repository의 모든 branch정보를 다 가져오지는 않는다. master branch 하나만 표시한다. git branch -r / git branch -a remote branch 정보를 확인 git bran..

DEVOPS/GIT 2021.10.21

[Git] git branch 생성, 확인, 이동

로컬 레퍼지토리를 만들고 branch.html 파일을 추가해 커밋한다. branch 생성 $git branch [새로 만들 브랜치 이름] 원하는 이름의 브랜치를 생성한다. 브랜치 확인 $git branch 브랜치 목록을 확인한다. 현재의 branch에 *표기가 되어있다. 지금은 master 브랜치이다. $git rev-parse [브랜치이름] 현재 브랜치가 어떤 commit ID(해시값)을 가리키는지 확인 현재 같은 커밋 id를 가리키는 것을 볼 수 있다. git log로 커밋 로그를 확인해보면 HEAD 포인터가 master와 footer 브랜치를 참조한다. $git branch -v branch이름, commitID, commit 메세지를 확인 branch 이동 $git checkout [이동할 브랜치..

DEVOPS/GIT 2021.10.21

[Git] 깃허브 원격 레퍼지토리 연동, 전송, 내려받기

깃허브 레퍼지토리 생성 local repository를 생성해 파일을 추가하고 커밋한다. 로컬 레포지토리에 리모트 레퍼지토리(서버)를 등록하려면 서버 주소가 필요하다. 깃허브의 레퍼지토리 주소는 프로토콜+도메인 주소로 구성되어있다. 별칭: romote 서버의 주소는 긴 문자열로 구성되어 있다. 접근 편의를 위해 URL 문자열을 별칭으로 만들어 활용이 가능하다. 대표적으로 사용하는 별칭은 origin이다. 원격 저장소와 연결 git은 remote repository를 관리하는데 remote 명령어를 사용한다. 주소를 복사한 후, git remote add origin [주소] 입력하면 remote repository와 연결한다. = git remote add [remote repository 별칭] [re..

DEVOPS/GIT 2021.10.21

[Git] git 커밋(commit) 명령어

commit하기 $ git commit -m "메세지" commit을 하면 stage영역은 초기화된다. working tree clean 메세지- 더이상 추가된 새로운 파일과 수정된 파일이 없다는 의미 $ git commit -am "메세지" add와 commit 동시에 실행 메세지 없이 "" 만으로 커밋하려하면 오류가 난다. $git commit --allow-empty-message -m "" 메세지 없이 커밋할 수 있는 명령어이다. commit간 차이 확인 $git diff working directory와 stage를 비교한다. $git diff head 파일을 stage에 등록하고 git 상태를 확인한다. git diff를 했을 때 working directory와 stage는 차이가 없는 것을..

DEVOPS/GIT 2021.10.21

[Git] git 명령어 살펴보기(등록, 변경, 상태 확인)

초기화 $git init 경로명 (경로명 입력하지 않는 경우, 현재 폴더에서 초기화) 저장소를 생성하기 위해 초기화 작업을 한다. 초기화 한 후 새 파일을 생성한다. 상태 확인 $git status 상태를 확인한다. 새 파일이 추가되면 git은 변화된 상태를 감지한다. Untracked files목록으로 working directory에 생성된 새로운 파일을 확인할 수 있다. 새 파일 등록 working directory에 새로 추가된 untracked files를 추적 가능 상태로 변경하려면 파일을 stage 영역에 추가 해야한다. $git add filename (파일 이름 대신 .을 이용하면 전체 파일과 폴더 모두 등록) working directory 파일을 stage로 등록한다. 파일 등록 취소..

DEVOPS/GIT 2021.10.21

[Linux] 파일 시스템 구조 - i node란?

파일 시스템 구조 블록들이 하나의 I/O 단위가 된다. 부트 블록(Boot block) 파일 시스템 시작부에 위치하고 보통 첫 번째 섹터를 차지 부트스트랩 코드가 저장되는 블록 슈퍼 블록(Super block) 전체 파일 시스템에 대한 정보를 저장 총 블록 수, 사용 가능한 i-노드 개수, 사용 가능한 블록 비트 맵, 블록의 크기, 사용 중인 블록 수, 사용 가능한 블록 수 등 i-리스트(i-list) 각 파일을 나타내는 모든 i-노드들의 리스트 한 블록은 약 40개 정도의 i-노드를 포함 모든 파일은 반드시 i-노드 블록을 하나 가지고 있음 데이터 블록(Data block) 파일의 내용(데이터)을 저장하기 위한 블록들 i-node란? 파일을 구성하는 구성 요소는 파일 이름, 파일의 내용, 파일의 메타 ..

DEVOPS/LINUX 2021.10.13
반응형