전체 글 665

따옴표와 이스케이프 문자로 변수 평가 차단

따옴표와 이스케이프 문자로 변수 평가 차단 리눅스 쉘 스크립팅에서 변수의 평가(expansion)를 차단하는 것은 다양한 시나리오에서 중요할 수 있습니다. 특히 문자열 리터럴을 그대로 처리하거나 공백을 포함한 문자열을 전달할 때 유용합니다. 변수 평가를 차단하는 두 가지 방법은 다음과 같습니다. 1. 따옴표 사용하기 단일 따옴표(Single Quotes): 변수가 있는 문자열을 단일 따옴표(')로 둘러싸면 쉘은 그 안에 있는 모든 문자를 리터럴로 취급합니다. 변수의 평가가 이루어지지 않습니다. VARIABLE='값' echo '$VARIABLE' 위 코드는 $VARIABLE이라는 문자열을 그대로 출력할 것입니다. 실제 변수 VARIABLE의 값은 평가되지 않습니다. 이중 따옴표(Double Quotes)..

표준 출력과 오류를 동시에 리다이렉션하는 방법

표준 출력과 오류를 동시에 리다이렉션하는 방법 표준 출력과 오류를 동시에 리다이렉션하는 것은 스크립트 실행 결과와 오류 메시지를 동일한 파일에 기록할 때 유용합니다. 이는 로깅, 디버깅, 또는 스크립트 실행의 결과를 추후 분석하기 위해 자주 사용됩니다. 다음은 몇 가지 사례를 소개합니다. 1. 표준 출력과 표준 오류를 같은 파일로 리다이렉션 사례: 스크립트 실행 결과와 오류를 log.txt에 기록하기 ./my_script.sh > log.txt 2>&1 이 명령어는 my_script.sh 스크립트의 표준 출력(stdout)과 표준 오류(stderr)를 모두 log.txt 파일로 리다이렉션합니다. 2>&1 구문은 "표준 오류를 표준 출력과 동일한 위치로 리다이렉션하라"는 의미입니다. 이를 통해, 표준 출력..

표준 오류와 리다이렉션

표준 오류와 리다이렉션 리눅스와 다른 유닉스 계열 운영체제에서, 표준 오류(standard error)와 리다이렉션(redirection)은 쉘 스크립팅 및 커맨드 라인 작업에서 중요한 개념입니다. 이들을 이해하고 활용하는 것은 효과적인 시스템 관리와 문제 해결에 필수적입니다. 표준 스트림(Standard Streams) 리눅스에서는 입력과 출력을 스트림(streams)을 통해 처리합니다. 기본적으로 세 가지 주요 스트림이 있습니다: 표준 입력(Standard Input, stdin): 프로그램에 데이터를 제공하는 스트림입니다. 기본적으로 키보드 입력을 받습니다. 표준 출력(Standard Output, stdout): 프로그램의 출력을 보여주는 스트림입니다. 기본적으로 콘솔이나 터미널 화면에 데이터를 ..

입출력 리다이렉션(input/output redirection)

입출력 리다이렉션(input/output redirection) 입출력 리다이렉션(input/output redirection)은 리눅스와 다른 유닉스 계열 운영 체제에서 사용되는 중요한 개념입니다. 이 기능을 통해 사용자는 커맨드의 출력을 파일로 저장하거나, 파일의 내용을 커맨드의 입력으로 사용할 수 있습니다. 이를 통해 프로그램의 출력을 다른 프로그램의 입력으로 연결하는 파이프라인을 구성할 수 있습니다. 기본 사용법 표준 출력 리다이렉션 (Standard Output Redirection) > 연산자를 사용하여 커맨드의 출력을 파일로 리다이렉션 합니다. 예: echo "안녕하세요" > hello.txt 이 커맨드는 "안녕하세요"라는 문자열을 hello.txt 파일에 저장합니다. 이미 파일이 존재한다면..

별명이 본명보다 앞서는 리눅스 명령어, alias

별명이 본명보다 앞서는 리눅스 명령어, alias alias 명령어는 Linux에서 매우 유용하게 사용되는 명령어로, 긴 명령어나 자주 사용되는 명령어의 단축 버전을 정의하는 데 사용됩니다. 사용자가 특정 명령어를 입력할 때마다 이에 대응하는 더 긴 명령어가 실행되도록 설정할 수 있습니다. 즉, 새로운 이름으로 '별명'이라고 할 수 있습니다. 이는 반복적인 작업을 단순화하고, 사용자의 작업 효율성을 향상시키는 데 도움을 줍니다. 기존에 같은 이름의 명령어로 alias를 설정하면 설정된 별명이 우선 적용됩니다. 어떤 별명이 적용되는지 알아보는 명령은 `alias`입니다. 기본 사용법 alias name='command' name은 단축하고 싶은 명령어의 이름입니다. command는 해당 이름으로 실행하고 ..

리눅스 셸에서 `echo`와 `printenv` 명령어

리눅스 셸에서 echo와 printenv 명령어 리눅스 셸에서 echo와 printenv 명령어는 환경 변수의 값을 출력하는 데 사용됩니다. echo $HOME은 사용자의 홈 디렉터리(Home Directory) 경로를 출력하고, echo $USER는 현재 사용자의 이름을 출력합니다. 반면, printenv 명령어는 주로 환경 변수에 직접 접근할 때 사용되며, 특정 환경 변수의 값을 출력하는 데 사용됩니다. 이 명령어는 echo보다 더 특화되어 있어, 환경 변수가 셸에 의해 올바르게 확장되고 해석되는지 확인하는 데 유용합니다. 환경 변수는 시스템의 작동 방식과 사용자의 세션 정보를 포함하며, 쉘 스크립트나 다양한 프로그램들이 실행될 때 중요한 정보를 제공합니다. 이러한 변수들을 이해하고 활용하는 것은 리..

리눅스 셸 스크립팅에서 변수 값의 평가

리눅스 셸 스크립팅에서 변수 값의 평가 리눅스 셸 스크립팅에서 변수 값의 평가는 스크립트 내에서 변수를 사용하여 동적인 값 할당, 조건문 실행, 반복문 제어 등 다양한 작업을 수행할 수 있도록 합니다. 변수 값의 평가와 관련하여 몇 가지 중요한 개념을 소개합니다. 변수 값 할당 및 접근 변수에 값을 할당할 때는 = 연산자를 사용하며, 변수 값을 참조할 때는 $ 기호를 변수 이름 앞에 붙입니다. variable="Hello, World!" echo $variable 변수 치환 변수 치환은 변수의 값을 다른 문자열의 일부로 사용할 때 발생합니다. 이를 통해 동적인 문자열을 생성할 수 있습니다. greeting="안녕하세요" name="김철수" message="$greeting, $name님!" echo $m..

리눅스 시스템 종료 방법

리눅스는 오픈소스 운영 체제로, 다양한 버전(배포판)이 있습니다. 사용자가 시스템을 안전하게 종료할 수 있도록 몇 가지 명령어를 제공합니다. 여기서는 리눅스 시스템을 종료하는 데 사용되는 주요 명령어에 대해 알아보겠습니다. 1. shutdown 명령어 - `shutdown` 명령어는 시스템을 안전하게 종료하거나 재부팅하기 위해 가장 일반적으로 사용됩니다. - 즉시 종료하려면 `sudo shutdown now` 명령을 사용합니다. - 시스템을 특정 시간에 종료하려면 `sudo shutdown +[시간]` 형식을 사용합니다. 예를 들어, 10분 후에 시스템을 종료하려면 `sudo shutdown +10`을 입력합니다. - 시스템을 특정 시간에 종료하려면 `sudo shutdown [시간]` 형식을 사용합니다..

[gcc] GCC 설치 완료와 오픈소스 권리와 책임 관계

GCC 설치 완료와 오픈소스 권리와 책임 관계 설치가 끝났습니다. 설치 디렉터리를 확인합니다. /opt/gcc-custom 디렉터리에 GCC를 성공적으로 빌드하고 설치하였으며, 이를 시스템의 PATH에 추가하여 기본 컴파일러로 사용할 수 있게 설정했음을 알 수 있습니다. c++: C++ 컴파일러입니다. cpp: C 전처리기입니다. gcc: C 컴파일러입니다. gcov: 코드 커버리지 분석 도구입니다. g++: GCC의 C++ 컴파일러 프런트엔드입니다. gcc-ar, gcc-nm, gcc-ranlib: GCC를 사용한 아카이브 관리 도구입니다. 마지막으로 gcc --version 명령을 실행했을 때, 설치된 GCC의 버전 정보가 표시됩니다. 이 버전은 "14.0.1 20240326 (experimental..

[gcc] GCC (GNU Compiler Collection) 소스 코드를 직접 빌드하는 과정

GCC (GNU Compiler Collection) 소스 코드를 직접 빌드하는 과정 GCC (GNU Compiler Collection) 소스 코드를 직접 빌드하는 과정은 복잡할 수 있지만, 시스템에 최적화된 컴파일러를 얻을 수 있다는 이점이 있습니다. 여기서는 GCC 소스 코드를 빌드하는 기본적인 단계를 설명합니다. 이 과정을 시작하기 전에, 필요한 모든 의존성이 설치되어 있어야 합니다. 의존성은 GCC 버전과 사용하는 시스템에 따라 다를 수 있습니다. 1. 필요한 의존성 설치 GCC를 빌드하기 전에, 빌드 과정에서 필요한 여러 도구와 라이브러리를 설치해야 합니다. 대표적으로 gcc, g++, make, libgmp-dev, libmpfr-dev, libmpc-dev 등이 있습니다. Debian 기반..