Linuxpia 498

[gcc] 다양한 프로그래밍 언어의 소스 코드를 컴파일, GCC (GNU Compiler Collection)

다양한 프로그래밍 언어의 소스 코드를 컴파일, GCC (GNU Compiler Collection) GCC (GNU Compiler Collection)는 다양한 프로그래밍 언어의 소스 코드를 컴파일하는 데 사용되는 자유롭고 오픈 소스 컴파일러 모음입니다. 주로 C, C++, Objective-C, Fortran, Ada, Go 및 D 언어를 지원합니다. GCC는 GNU 프로젝트의 일부로 개발되었으며, Linux를 포함한 다양한 운영 체제에서 기본 컴파일러로 광범위하게 사용됩니다. 기본 사용법 GCC를 사용하여 C 언어 프로그램을 컴파일하는 기본 명령어는 다음과 같습니다. gcc source.c -o output 여기서 source.c는 소스 파일의 이름이고, output은 생성될 실행 파일의 이름입니다..

[리눅스 팁] 변수 값의 출처는 어디?

리눅스 기반 시스템에서 변수의 값은 여러 출처 리눅스 및 유닉스 기반 시스템에서 변수의 값은 여러 출처에서 설정될 수 있으며, 이는 환경 변수와 셸 변수를 포함하여 광범위한 범위에 걸쳐 있습니다. 변수 값의 주요 출처는 다음과 같습니다. 1. 시스템 환경 설정 시스템 시작 시: 시스템이 부팅될 때, /etc/profile, /etc/environment 같은 글로벌 설정 파일들에서 초기 환경 변수가 설정됩니다. 이러한 파일들은 시스템 전체에 걸쳐 적용되며, 모든 사용자와 프로세스에 기본적인 환경 설정을 제공합니다. 2. 사용자 프로필 설정 사용자 로그인 시: 사용자가 로그인하면, 사용자의 홈 디렉터리(디렉토리) 내의 설정 파일들(.bash_profile, .bashrc, .profile 등)이 실행되어 ..

[리눅스 팁] 환경 변수를 출력해주는 printenv 명령어

printenv 명령어 printenv 명령어는 리눅스 및 유닉스 기반 시스템에서 환경 변수들을 출력하는 데 사용됩니다. 환경 변수는 운영 체제의 작업 환경에 관한 정보를 저장하는 문자열로, 주로 시스템 설정이나 프로그램 설정을 관리하는 데 사용됩니다. printenv는 사용자의 현재 셸 환경에 설정된 환경 변수와 그 값을 보여주며, 시스템 구성이나 디버깅 정보를 확인하는 데 유용합니다. 사용법 기본적으로 printenv 명령어를 인자 없이 실행하면 시스템에 설정된 모든 환경 변수와 그 값들을 출력합니다. 특정 환경 변수의 값을 확인하고 싶은 경우에는 변수명을 인자로 전달할 수 있습니다. 모든 환경 변수와 값 출력 printenv 특정 환경 변수의 값 출력 printenv HOME 이 명령어는 사용자의 ..

[리눅스 팁] 표현식의 평가와 패턴의 확장

표현식의 평가와 패턴의 확장 리눅스 셸에서 "표현식의 평가(Expression Evaluation)"와 "패턴의 확장(Pattern Expansion)"은 스크립트나 명령어를 처리할 때 핵심적인 작업입니다. 이 두 과정은 셸이 명령어를 정확하게 해석하고 실행하기 위해 수행하는 중요한 단계입니다. 표현식의 평가 (Expression Evaluation) 표현식의 평가는 셸이 또는 스크립트가 수학적, 논리적, 또는 다른 형태의 표현식을 해석하고 그 결과를 도출하는 과정입니다. 이는 변수의 값을 계산하거나, 조건문의 참/거짓을 판단하며, 산술 연산을 수행하는 등 다양한 형태로 나타납니다. 산술 표현식: (( expression )) 구문을 사용하여 수행됩니다. 예를 들어, ((sum = 3 + 2))는 sum..

[리눅스 팁] 파일 패턴 매칭에 대하여

파일 패턴 매칭 파일명 패턴 매칭은 리눅스 및 유닉스 셸에서 파일과 디렉터리(디렉토리)를 선택할 때 사용되는 기법입니다. 이는 특정 규칙이나 패턴에 따라 파일명을 일치시키기 위해 사용되며, 주로 파일을 검색하거나 명령어에 파일명을 인자로 전달할 때 활용됩니다. 셸은 이러한 패턴 매칭을 통해 사용자가 복잡한 파일명을 일일이 지정하지 않고도, 특정 조건에 맞는 파일이나 디렉터리 그룹을 손쉽게 선택할 수 있게 해 줍니다. 주요 패턴 매칭 기호 * (Asterisk): 0개 이상의 문자와 일치합니다. 예를 들어, *.txt는 확장자가 .txt인 모든 파일과 일치합니다. ? (Question Mark): 정확히 한 개의 문자와 일치합니다. 예를 들어, ?.txt는 한 개의 문자 다음에 .txt가 오는 파일명과 일..

[리눅스 팁] 한꺼번에 테스트 파일 100개 만들기

한꺼번에 생성하는 테스트 파일들 001.txt부터 100.txt까지 총 100개의 파일을 한꺼번에 생성하기 위해 리눅스 셸에서는 루프(loop)를 사용하는 스크립트나 한 줄의 명령어를 활용할 수 있습니다. 여기서는 bash 셸을 사용하는 예시를 소개합니다. for 루프를 사용하는 방법 for 루프를 사용하여 지정된 범위의 숫자에 대해 반복하면서 각 숫자를 파일명에 포함시켜 파일을 생성할 수 있습니다. 다음은 그 예시입니다: for i in $(seq -w 1 100); do touch "00$i.txt" done 여기서 seq -w 1 100 명령어는 1부터 100까지의 숫자를 생성하며, -w 옵션은 모든 숫자를 같은 너비로 포맷팅 하여 앞에 0을 붙입니다. 예를 들어, 1은 001로, 10은 010로 ..

[리눅스 팁] 비대화형 셸의 사례들

비대화형 셸의 사례 비대화형 셸(Non-interactive Shell)은 사용자의 직접적인 입력 없이 스크립트나 명령어 시퀀스를 실행하는 경우에 주로 사용됩니다. 이는 주로 자동화된 작업이나 배치 처리, 시스템 부팅 스크립트 등에 활용됩니다. 여기 몇 가지 좋은 사례를 소개합니다. 1. 시스템 부팅 스크립트 리눅스 시스템이 부팅될 때, 다양한 초기화 스크립트와 서비스가 자동으로 실행됩니다. 이러한 스크립트는 대개 비대화형 셸을 통해 실행되며, 시스템의 네트워크 설정, 시스템 로깅, 하드웨어 초기화 등을 처리합니다. 사용자의 개입 없이 시스템이 올바르게 시작될 수 있도록 하는 데 필수적인 역할을 합니다. 2. 백업 스크립트 데이터 백업은 정기적으로 자동으로 수행되어야 하는 중요한 작업입니다. 비대화형 셸..

[리눅스 팁] 대화형 셸과 비대화형 셸

대화형 셸과 비대화형 셸 대화형 셸(Interactive Shell)과 비대화형 셸(Non-interactive Shell)은 리눅스 및 유닉스 시스템에서 셸의 작동 방식을 구분하는 두 가지 주요 유형입니다. 각각의 특징과 사용 사례를 이해하는 것은 시스템 작업을 효율적으로 수행하는 데 중요합니다. 대화형 셸 (Interactive Shell) 대화형 셸은 사용자와 직접 대화(인터랙션)하는 셸을 의미합니다. 사용자가 터미널 또는 콘솔을 통해 명령어를 입력하면, 셸은 해당 명령어를 실행하고 결과를 사용자에게 바로 표시합니다. 대화형 셸은 실시간으로 사용자의 입력을 받아 처리할 수 있으며, 사용자는 즉각적인 피드백을 통해 작업을 조정할 수 있습니다. 대화형 셸의 주요 특징 사용자와 직접적인 인터랙션을 통해 ..

[리눅스 팁] 셸에서 명령어를 처리하는 과정

셸에서 명령어를 처리하는 과정 ls *.py 명령어가 리눅스 셸에서 어떻게 처리되는지 설명하기 전에, 해당 명령어의 기능을 간단히 요약하자면, 현재 디렉터리(directory) 내의 모든 Python 파일(확장자가 .py인 파일)을 나열하는 것입니다. 이 과정은 여러 단계를 거쳐 실행됩니다: 1. 명령어 입력 및 해석 사용자가 터미널에 ls *.py를 입력하고 엔터 키를 누르면, 셸은 이 명령어를 받아 처리하기 시작합니다. 여기서 ls는 'list'의 약자로, 파일 및 디렉터리 목록을 보여주는 명령어입니다. *.py는 와일드카드 패턴을 사용한 표현으로, 모든 .py 확장자를 가진 파일과 일치합니다. 2. 와일드카드 확장 셸은 명령어를 해석할 때 와일드카드(*)를 현재 디렉터리에 있는 파일 목록과 비교하여..

사용자와 리눅스 운영 체제 간의 인터페이스, 리눅스 셸

리눅스 셸 리눅스 셸(Linux shell)은 사용자와 리눅스 운영 체제 간의 인터페이스를 제공하는 프로그램입니다. 사용자가 명령어를 입력하면, 셸은 그 명령어를 해석하고 운영 체제가 이해할 수 있는 형태로 변환하여 실행합니다. 셸에는 여러 종류가 있으며, 각각 다른 특징과 기능을 가지고 있습니다. 주요 용어는 다음과 같습니다. bash(Bourne Again SHell): 가장 널리 사용되는 셸 중 하나로, GNU 프로젝트의 일환으로 개발되었습니다. bash는 Bourne 셸(sh)의 확장 버전이며, 사용하기 쉽고 강력한 프로그래밍 기능을 제공합니다. zsh(Z Shell): bash와 유사한 기능을 제공하지만, 사용자 사용성과 편의성에 중점을 둔 셸입니다. 테마와 플러그인 지원이 특징입니다. fish..