DEVOPS 51

[Linux] 커널과 시스템 콜(System call)

시스템 소프트웨어 응용 소프트웨어 응용 소프트웨어는 일상생활에서 도움을 받는 소프트웨어이고, ex) 게임, 아래한글, 오피스 시스템 소프트웨어는 응용 소프트웨어의 개발이나 운영을 지원하기 위한 소프트웨어이다. Ex) DBMS, OS(운영 체제), visual studio, server 다른 응용 소프트웨어는 시스템 소프트웨어로부터 도움을 받기 때문에 운영체제나 하드웨어를 잘 최적화 시켜서 활용해야 한다. 시스템 소프트웨어를 지원하기 위해 시스템 콜이란 것을 사용한다. 운영체제 커널이 제공하는 것으로, 시스템 콜을 가장 최적화된 환경으로 활용하여 개발해야 한다. 커널 커널이란 운영체제(OS)에서 가장 중요한 구성요소로서, 입출력을 관리하고 소프트웨어로부터 요청 (System Call)을 컴퓨터에 있는 하드..

DEVOPS/LINUX 2021.10.13

[Linux] 쉘(shell)이란?

쉘(shell)이란? 쉘은 명령어와 프로그램을 실행할 때 사용하는 인터페이스이다. 사용자와 운영체제 사이에 창구 역할을 하는 소프트웨어라고 볼 수 있다. 명령어 처리기(command processor)로써, 사용자로부터 명령어를 입력 받아 이를 처리한다. 쉘의 기능 명령어 처리 사용자가 입력한 명령을 해석하고 적절한 프로그램을 실행한다. 사용자 환경 설정 시작 파일이 로그인할 때 실행되어 사용자 별로 맞춤형 사용 환경을 설정할 수 있다. 스크립트 쉘 자체 내의 프로그래밍 기능이 있어 프로그램을 작성할 수 있다. 쉘 프로그램을 쉘 스크립트라 부른다. 쉘의 종류 쉘의 종류 쉘 실행 파일 본 쉘 /bin/sh C 쉘 /bin/csh Bash /bin/bash tcsh /bin/tcsh 콘 쉘 /bin/ksh ..

DEVOPS/LINUX 2021.10.12

[Linux] 리눅스 프로세스 확인하기, 죽이기

실행 중인 프로그램을 프로세스라고 부른다. 각 프로세스는 유일한 프로세스 번호 PID를 갖는다. 프로세스 확인하기 프로세스 목록 확인 $ ps 프로세스 목록 자세히 확인 $ ps u 프로세스 목록 배열 및 시스템 자원 사용률 확인 $ ps aux 프로세스 죽이기 kill 명령어는 프로세스를 강제로 종료시킨다. $ kill 프로세스 번호 $ kill %작업번호

DEVOPS/LINUX 2021.10.12

[Linux] cd 명령어와 절대 경로/상대 경로

cd(Change Directory)는 원하는 폴더로 이동하게 해주는 명령어이다. cd / 최상위 루트 디렉토리로 이동 cd ~ home 디렉토리로 이동 cd – 이전 디렉토리로 이동 cd .. 현재 디렉토리의 부모 디렉토리로 이동 pwd 현재 위치 확인 cd 절대 경로명(absolute pathname) 루트 디렉터리로부터 시작하여 이동할 목표 경로까지 모든 경로 이름을 정확하게 적어 이동 [cd /home/doyeon/test] 상대 경로명(relative pathname) 현재 작업 디렉터리부터 시작해서 경로 이름을 적어 바로 이동 .명령어는 자신의 현재 위치를 절대 경로로 요약해준다. 현재 폴더 안의 test 라는 폴더로 가고 싶으면 [cd ./test] 로 이동한다.

DEVOPS/LINUX 2021.10.12

[Linux] 리눅스 디렉터리 계층 구조

리눅스 디렉터리 홈 디렉터리(home directory) 각 사용자마다 별도의 홈 디렉터리가 있다. 사용자가 로그인하면 홈 디렉터리에서 작업을 시작한다. 현재 작업 디렉터리(current working directory) 현재 작업 중인 디렉터리 로그인 하면 홈 디렉터리에서부터 작업이 시작된다. 루트 디렉터리 리눅스 파일 체제의 최상위 디렉토리 모든 디렉토리들의 시작점으로 일반적인 데이터를 저장하지 않는다. 루트 디렉터리: ' / ' 홈 디렉터리: ' ~ ' 루트 디렉터리의 하위 디렉터리 홈 디렉터리의 하위 디렉터리

DEVOPS/LINUX 2021.10.12

[Linux] 리눅스 쉘 환경변수/지역변수

쉘 변수 환경변수와 지역변수 두 종류로 나눌 수 있다. 환경 변수는 값이 자식 프로세스에게 상속되지만 지역변수는 그렇지 않다. 환경 변수는 시스템 전체에 적용되는 변수이고 지역변수는 현재 터미널에서만 적용되는 변수이다. 환경변수와 지역변수 예 $ country=korea city=seoul (변수이름) = (값) country라는 지역 변수를 환경 변수로 만들려면 export를 사용한다. $ export country export country = korea 이렇게 하나의 명령어로도 할 수 있다. $ echo $country $city 출력을 해준다. $ sh 현재 bash 위에다 본 쉘을 실행시킨다. bash: 부모, shell: 자식 $ echo $country $city korea => city는 ..

DEVOPS/LINUX 2021.09.11

[Linux] 리눅스 쉘 전면처리/후면처리

전면 처리(foreground processing) 명령어를 입력하면 명령어가 전면에서 실행되며 명령어 실행이 끝날 때까지 쉘이 기다려 준다. 표준입력이 가능하다. 후면 처리(background processing) 명령어들을 후면에서 처리하고 전면에서는 다른 작업을 할 수 있으며 동시에 여러 작업을 수행할 수 있다. $ 명령어 & background에서 작업 실행하기 $ (sleep 50; echo done1) & => 세미콜론은 연속해서 실행하라는 뜻이다. 괄호는 두개 이상의 명령어를 연결하고 전체를 백그라운드에서 돌리기 위함이다. 50초동안 sleep하라. 50초가 지나고 sleep이 실행이 된 후에 done1을 출력하라. 백그라운드가 돌아가고 바로 프롬프트가 뜬다. $ (sleep 50; echo..

DEVOPS/LINUX 2021.09.11

[Linux] 리눅스 권한 변경하기(chmod, chown,chgrp)

파일 속성 ex) 4: 파일의 블록 수 -: 일반 파일 -rw-rw-r--: 사용 권한 1: 링크 수 doyeon doyeon: 소유자, 그룹 6: 파일 사이즈 Sep 9 02:24 : 수정 시간 text.txt: 파일 이름 사용 권한 rwxrwxrwx라고 한다면 앞의 rwx는 소유자, 두번째 rwx는 그룹, 마지막 rwx는 기타 사용자에 대한 접근 권한이다. 권한이 없으면 -로 표시한다. ex) rw- r-- r-- => 현재 소유자는 읽고 쓰기 권한이 있으며 실행 권한은 없다.(실행 파일이 아니다.) 소유자가 속한 그룹의 접근 권한은 읽기 권한만 있다. 기타 사람들은 읽기 권한만 있다. 파일 권한 변경 파일 및 폴더의 권한은 셸에서 ls -al 명령을 통해 확인할 수 있다. 맨 앞에 d가 있으면 해당..

DEVOPS/LINUX 2021.09.09

[Linux] 리눅스 명령어들 정리

간단한 명령어 $ date : 날짜 출력 $ hostname : hostname 출력 $ uname : username 출력 $ who : 현재 로그인 한 사람 출력 $ ls : 현재 디렉토리의 파일 리스트 출력 $ clear : 화면 지우기 $ passwd : 패스워드 바꾸기 디렉터리 관련 명령어 $ pwd print working directory 현재 작업 디렉터리를 프린트 현재 작업 디렉터리는 프로세스마다 부여된다. 현재 명령을 내리는 shell이라는 프로세스의 작업 디렉토리를 의미한다. $ cd [디렉터리] change directiory 현재 작업 디렉토리를 이동 shell에 있는 현재 디렉토리를 다른 디렉토리로 이동한다는 의미다. $mkdir [디렉터리] make directory 새 디렉터..

DEVOPS/LINUX 2021.09.09

[Git] 깃(Git) / 깃허브(GitHub) 개념 정리

버전 관리 내가 원하는 시점으로 이동하게 해주는 것이 버전 관리다. 이를 도와주는 툴이 버전 관리 시스템이다. Git, GitHub 내가 원하는 시점마다 깃발을 꽂고 그 시점으로 자유롭게 이동한다면 편안하게 새로운 소스코드를 추가/삭제 할 수 있을것이다. 이를 가능하게 해주는 것이 소스코드 버전 관리 시스템, Git이다. 깃은 개인 컴퓨터 뿐만 아니라 어디서든 사용할 수 있다. 이렇게 깃으로 관리하는 프로젝트를 올려둘 수 있는 깃 호스팅 사이트 중 하나가 바로 GitHub다. 깃허브에 소스코드를 올리면 공간, 시간 제약 없이 협업 할 수 있고 프로젝트를 공개 저장소로 만든다면 누구든지 접근이 가능하다. 이러한 공개저장소 프로젝트를 오픈소스라고 한다. 깃을 통해 버전관리가 이뤄질 내 컴퓨터에 있는 폴더를 ..

DEVOPS/GIT 2021.08.12