리눅스프로그래밍 28

우분투 리눅스 - 사용자 계정 관련 파일

리눅스는 여러 명이 사용하는 시스템이므로 각 사용자를 등록하고 관리하는 방법을 알아야한다. 사용자 계정에는 암호가 설정되어야 한다. 이 암호의 사용 가능 기간을 설정하는 패스워드 에이징 방법도 알아야한다. 사용자의 정보 확인, 소속 그룹 확인하는 명령도 살펴본다. 시스템 관리자는 필요시 파일 및 디렉터리의 소유자와 소유 그룹을 다른 계정으로 변경할 수 있다. 사용자 계정은 사용자가 시스템에 접근할 수 있는 유일한 방법! 시스템 관리자 입장에서도 사용자의 접근 권한을 통제할 수 있는 중요한 수단이다. 리눅스에서 사용자 계정과 관련된 파일 /etc/passwd /etc/shadow /etc/login.defs /etc/group /etc/gshadow 1. /etc/passwd 사용자 계정 정보가 저장된 기..

우분투 리눅스 - 소프트웨어 컴파일

1. 컴파일러 설치하기 사용자가 작성한 프로그램은 시스템이 이해할 수 있는 형태로 변환해야 실행이 가능하다. 시스템이 이해할 수 있으려면? 기계어로 바꿔야한다! 일반적으로 실행 파일은 기계어로 되어 있는 파일이다. C 언어 - > 기계어로 바꾸는 것 이런게 컴파일이다~ 리눅스는 C언어로 만들어졌기 때문에 C컴파일러를 설치해본다. sudo apt-get install gcc 명령 이용! 2. 간단한 C 프로그램 컴파일하고 실행하기 1) 우선 vi 를 이용하여 hello, world 를 찍어보자! (C언어 형식으로 해주면 된다.) 2) 입력을 완료하면 컴파일을 한다. gcc 소스파일명 3) 경로를 지정하여 소스파일명을 입력해주면 출력된다. ./a.out (실행 파일의 이름은 사용자가 지정하지 않으면 기본적으..

우분투 리눅스 - 파일 아카이브

파일 아카이브 - 파일을 묶어서 하나로 만든 것 - tar (tape archive) 명령은 원래 여러 파일이나 디렉터리를 묶어서 마그네틱 테이프와 같은 이동식 저장 장치에 보관하기 위해 사용하는 명령 - 현재는 다른 시스템과 파일을 주고 받거나, 백업을 하기 위해 여러 파일이나 디렉터리를 하나의 아카이브 파일로 생성하거나, 기존 아카이브에서 파일을 추출하기 위해 사용한다. tar 기능: 파일과 디렉터리를 묶어 하나의 아카이브 파일을 생성한다. 형식: tar 기능 [옵션] [아카이브 파일] 파일명 기능 c : 새로운 tar 파일을 생성한다. t : tar 파일의 내용을 출력한다. x : tar 파일에서 원본 파일을 추출한다. r : 새로운 파일을 추가한다. u : 수정된 파일을 업데이트 한다. 옵션 f ..

우분투 리눅스 - 스냅

스냅 우분투 16.04 버전 부터 등장한 새로운 패키지 형식 스냅 패키지는 기존의 deb 패키지와 호환성을 유지! 우분투가 새로 도입한 패키지 형식으로 샌드박스 형태의 패키지 샌드박스란 ? 원래 외부에서 받은 파일을 그냥 실행하는 것이 아니라 보호된 영역에서 실행해보는 것으로, 외부의 파일이 내부 시스템에 악영향을 주는 것을 방지하는 보안 기술을 말한다. (아이폰이나 안드로이드에서도 샌드박스 형식을 사용 ) 패키지를 만들 때 프로그램이 사용하는 모든 라이브러리를 패키지 안에 포함한다. 패키지 개념인 샌드박스 형식을 스냅이 사용함으로써 얻게 되는 장점 ( 개발자가 다른 패키지나 라이브러리와의 의존성을 신경 쓰지 않아도 된다. 기존 시스템과 격리되어 실행하는 샌드박스 형식이므로 보안이 강화된다.) 단점: 패..

우분투 리눅스 - 우분투 패키지

1. 리눅스에서 주로 사용하는 패키지 리눅스에서 소프트웨어는 소스코드 형식 or 패키지 형태 (바로 설치하여 사용할 수 있는!) 소스 코드 형식) 하나의 아카이브 파일로 묶은 후 압축해서 배포 바이너리 패키지 ) 우분투 16.04 ~ 새로운 패키지로 스냅도 도입했다! (deb 패키지와의 호환성) deb : 데비안, 우분투 계열에서 사용하는 패키지 RPM (Redhat Package Manager) : 레드햇 계열 리눅스에서 주로 사용 *데비안 패키지: 간편하게 설치할 수 있도록 구성된 패키지, 간단한 명령으로 패키지 설치, 삭제, 정보 확인이 가능하다. 1) 우분투 패키지의 특징 바이너리 파일로 구성되어 있기 때문에 컴파일이 필요없다. 패키지의 파일이 관련 디렉터리에 바로 설치된다. 패키지를 삭제할 때 ..

우분투 리눅스 - systemd 서비스

systemd 서비스 - 리눅스 시스템 및 서비스 관리자 - init 프로세스가 하던 작업을 대신해서 수행한다. - 다양한 서비스 데몬을 시작하고 프로세스들의 상태를 유지하며 시스템의 상태를 관리한다. init 프로세스 - init 프로세스는 스크립트를 순차적으로 실행하여 다른 프로세스를 동작시킨다. - 우분투의 14.10 ver 까지는 자체적으로 개발한 upstart 를 기존의 init 대신 사용했으나 지금은 upstart 를 설치 안함 - init을 systemd 로 대체 - upstart 와 관련된 스크립트 파일은 /etc/init 디렉터리 , 작업명.conf 파일로 구성 - init 과 관련된 스크립트 파일은 /etc/init.d 디렉터리에 있으며 아직 일부 서비스의 스크립트 파일이 남아있다. i..

우분투 리눅스 - 부팅

리눅스 시스템의 부팅 리눅스의 부팅은 PC전원을 켜는 순간 ~ 로그인 프롬프트가 출력될 때 까지를 말한다. 전원 ON → 바이오스 단계 → 부트 로더 단계 → 커널 초기화 단계 →systemd 서비스 단계→ 로그인 프롬프트 출력 ---------pc 부팅------------- ----------------------------------------리눅스 부팅---------------------------------------- 우분투는 15.x 버전부터 기존의 1번 프로세스인 init 를 대체한 systemd 서비스를 도입했다. 1) 바이오스 단계 (BIOS : Basic Input / Output System) 바이오스는 보통 ROM 에 저장되어 있어 ROM-BIOS 라고 부른다. PC 에 장착된 ..

우분투 리눅스 - 파일 시스템의 구조

리눅스의 모든 파일 시스템은 기본적으로 유닉스 운영체제에서 유래된 공통의 개념을 바탕으로 구현된다. 1) 파일은 inode 로 관리된다. 2) 디렉터리는 단순히 파일의 목록을 가지고 있는 파일일 뿐이다. 3) 특수 파일을 통해 장치에 접근할 수 있다. 1. ext4 파일 시스템의 구조 ext4 파일 시스템은 효율적으로 디스크를 사용하기 위해 저장 장치를 논리적인 블록의 집합 ( 블록 그룹, 크기가 4 KB )으로 구분한다. 실제 크기는 시스템 설정에 따라 달라질 수 있다. 1) 블록 그룹 0 : 파일 시스템의 첫 번째 블록 그룹 / 그룹 0 패딩 , 슈퍼블록, 그룹 디스크립터를 가지고 있다. 2) 블록 그룹 a : 파일 시스템에서 첫 번째 블록 그룹이 아닌 블록 그룹 / 그룹 0 패딩이 없으나 슈퍼블록과..

우분투 리눅스 - 파일시스템의 종류

1. 파일시스템 1) 운영체제의 주요한 기능 중 하나 2) 파일과 디렉터리의 집합을 구조적으로 관리하는 체계 3) 어떤 구조를 구성하여 파일이나 디렉터리를 관리하느냐에 따라 다양한 형식의 파일 시스템이 존재 2. 리눅스 고유의 디스크 기반 파일 시스템 ext => Extended File System 1) ext (ext1) - inode 수정과 데이터의 수정 시간 지원이 안 되고, 파일 시스템이 복잡해지고 파편화 되는 문제 - 현재 리눅스에서는 ext 파일 시스템을 사용하지 않음 2) ext2 - ext 파일 시스템이 가지고 있던 문제를 해결, 1993년 1월 발표 - ext2 는 ext3 파일 시스템이 도입되기 전까지 사실상 리눅스 표준 파일 시스템으로 사용 - 이론적으로 32TB까지 가능 - 지금도..

우분투 리눅스 - 포그라운드, 백그라운드 프로세스와 작업 제어

1. 포그라운드 작업 포그라운드 프로세스 : 사용자가 입력한 명령이 실행되어 결과가 출력될 때까지 기다려야 하는 포그라운드 방식으로 처리되는 프로세스 ex. sleep 100 sleep 프로세스가 실행되고 100초간 기다린다. 2. 백그라운드 작업 백그라운드 프로세스: 명령을 실행하면 명령의 처리가 끝나는 것과 관계 없이 곧바로 프롬프트가 출력되어 사용자가 다른 작업을 계속할 수 있음 ex. sleep 100 & 백그라운드 작업과 출력 방향 전환하기: 백그라운드로 처리할 때는 주로 출력과 오류 방향을 전환하여 실행 결과와 오류 메시지를 파일로 저장한다. find / -name passwd > pw.dat 2>&1 & pw.dat 에 결과와 오류를 저장하는 명령이다. 하면 결과로 예를 들어 이런 결과 값이..