공부/C언어

리눅스 기반 C 언어 기초 개념(1)

ttaeng98 2024. 9. 19. 23:06

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 등)도 지원합니다.
  • 역할: 소스 코드를 분석하고, 이를 컴퓨터가 이해할 수 있는 기계어로 변환합니다.

컴파일 과정

  1. 소스 코드 작성: C 언어로 작성된 .c 파일.
  2. 컴파일: gcc를 이용해 소스 코드를 컴파일.
  3. 실행 파일 생성: 기계어로 변환된 실행 파일 생성.
# 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 함수: 반드시 있어야 하며, 프로그램이 시작될 때 가장 먼저 호출됩니다.