1. 리눅스에서의 Root 개념
리눅스는 계정 관리에 매우 엄격한 시스템입니다. 사용자별로 권한과 접근 범위가 명확히 구분되어 있으며, 특히 root 계정은 시스템 관리에 있어 중요한 역할을 담당합니다.
Root의 정의
- Root 계정: 시스템의 최고 관리자 계정으로, 모든 파일 및 폴더에 접근할 수 있는 권한을 가집니다.
- 관리 기능: 사용자 계정 생성/삭제, 시스템 파일 관리, 설정 변경 등 모든 권한이 있습니다.
일반 사용자와의 차이
- 일반 사용자: 제한된 권한을 가지며, 주로 자신의 홈 디렉터리 내에서만 작업이 가능합니다.
- Root 사용자: 시스템의 모든 영역에서 작업이 가능합니다.
Tip: 리눅스에서는 보안을 위해 일상적인 작업에서는 일반 사용자 계정을 사용하고, 특정 작업에서만 root 권한을 사용해야 합니다.
2. 우분투 (Ubuntu)
우분투(Ubuntu)는 가장 널리 사용되는 리눅스 배포판 중 하나로, 서버와 데스크탑 환경 모두에서 사용됩니다.
우분투의 특징
- 서버 관리에 적합: 보안성과 안정성이 뛰어나 서버 운영체제(OS)로 자주 사용됩니다.
- 사용자 친화적: 데스크탑 사용자들을 위한 직관적인 인터페이스 제공.
- 패키지 시스템:
apt
패키지 관리자를 사용하여 프로그램을 쉽게 설치하고 관리할 수 있습니다.
# 패키지 목록 업데이트
sudo apt update
# 새로운 프로그램 설치
sudo apt install package-name
3. vi와 vim
리눅스에서 코드를 작성하거나 설정 파일을 수정할 때 주로 사용하는 텍스트 편집기입니다.
vi
- 기본 텍스트 편집기: 대부분의 리눅스 배포판에 기본 설치됨.
- 사용 난이도: 기능이 제한적이며 사용이 다소 불편하지만, 보안이 중요한 환경에서는 많이 사용됩니다.
vim
- 향상된 버전: vi의 확장판으로, 더 많은 기능과 편의성을 제공합니다.
- 개발자에게 유리: 코드 작성에 유용한 구문 강조 및 자동 들여쓰기 기능을 지원합니다.
Tip: 서버 환경에서는 vi만 설치된 경우가 많으므로, vi 사용법을 익혀두는 것이 중요합니다.
4. 컴파일러
컴파일러는 프로그래밍 언어로 작성된 소스 코드를 기계어로 변환하여 실행 가능한 파일로 만들어 주는 프로그램입니다.
gcc (GNU Compiler Collection)
- 리눅스에서 사용되는 컴파일러: 주로 C 언어를 컴파일하는 데 사용되며, 다른 언어(C++, Fortran 등)도 지원합니다.
- 역할: 소스 코드를 분석하고, 이를 컴퓨터가 이해할 수 있는 기계어로 변환합니다.
컴파일 과정
- 소스 코드 작성: C 언어로 작성된
.c
파일. - 컴파일:
gcc
를 이용해 소스 코드를 컴파일. - 실행 파일 생성: 기계어로 변환된 실행 파일 생성.
# C 소스 파일을 컴파일하여 실행 파일 생성
gcc hello.c -o hello
# 실행 파일 실행
./hello
5. C언어와 컴파일러
C 언어는 효율적이고 이식성이 뛰어난 프로그래밍 언어로, 시스템 프로그래밍, 운영체제 개발, 임베디드 시스템 등에서 많이 사용됩니다.
C언어를 배우는 이유
- 컴퓨터와 소통: C언어는 기계와 직접 소통할 수 있는 저수준 언어이므로, 컴퓨터 하드웨어와 소프트웨어의 상호작용을 이해하는 데 도움이 됩니다.
- 대중성 및 효율성: 다양한 플랫폼에서 널리 사용되며, 컴퓨터 자원을 효율적으로 활용할 수 있습니다.
6. 함수
함수는 특정 작업을 수행하는 코드 블록입니다. 재사용성과 가독성을 높이는 데 중요한 역할을 합니다.
함수의 역할
- 재사용 가능: 한 번 작성한 코드를 여러 곳에서 사용할 수 있습니다.
- 가독성 향상: 프로그램을 논리적으로 구성하고, 코드의 복잡도를 줄여 가독성을 높입니다.
예시: printf()
함수
#include <stdio.h>
int main() {
printf("Hello, World!\n"); // 화면에 텍스트 출력
return 0;
}
7. main 함수
C 프로그램에서 main 함수는 모든 프로그램의 진입점입니다. C 프로그램이 실행될 때 가장 먼저 호출되는 함수로, 프로그램의 흐름을 결정하는 중요한 역할을 합니다.
int main() {
// 프로그램 코드
return 0;
}
- main 함수: 반드시 있어야 하며, 프로그램이 시작될 때 가장 먼저 호출됩니다.