이 튜토리얼에서는 간단한 예제를 통해 리눅스에서 which 명령어를 사용하는 방법을 알아봅니다. which 명령어는 시스템에 존재하는 특정 명령어가 실제로 어떤 실행 파일을 호출하는지 그 경로를 알려줍니다. 왜 유용할까요? 예를 들어, 시스템에 MySQL 실행 파일이 서로 다른 방식으로 설치되어 두 개의 복사본이 존재한다고 가정해 봅시다. 이때 실제로 사용 중인 것이 어느 것인지 파악해 나머지 하나를 삭제하고 싶다면, which 명령어를 활용하면 됩니다. 터미널에서 MySQL을 실행할 때 두 실행 파일 중 어떤 것이 호출되는지 정확
tr(translate) 명령어는 Linux에서 표준 입력(standard input)으로부터 텍스트를 읽어 들여, 지정된 방식대로 변환한 뒤 표준 출력(standard output)으로 내보내는 도구입니다. 이 글에서는 tr 명령어가 무엇인지, 어떤 상황에서 그리고 어떻게 사용하는지 예제와 함께 자세히 살펴봅니다. tr 명령어 기본 문법 tr 명령어를 사용할 때의 기본 문법은 다음과 같습니다. tr OPTIONS SET1 [SET2] 각 구성 요소를 살펴보면 다음과 같습니다. OPTIONS: 아래 표에 정리된 옵션 목록을 지정합
리눅스(Linux)/Bash의 cat(concatenate, 연결) 명령어는 파일의 내용을 읽을 때 가장 많이 사용되는 명령어입니다. 지정한 파일의 내용을 화면에 출력해 주며, 그 사용법은 매우 간단합니다. cat 명령어는 파일들을 표준 출력(standard output)으로 연결(concatenate)합니다. 기본적으로 표준 출력은 콘솔(console)이므로, 결과가 컴퓨터 화면에 표시됩니다. 이러한 특성 덕분에 파일 내용을 빠르게 확인할 때 유용하게 활용할 수 있습니다. 물론 cat 명령어에는 다른 용도도 있습니다. 먼저 기본
diff 명령어는 리눅스 셸에서 파일이나 디렉터리를 손쉽게 비교할 수 있는 도구입니다. 이 글에서는 diff의 기본 사용법을 예제와 함께 자세히 살펴보겠습니다. diff 명령어는 두 개의 파일 또는 디렉터리를 한 줄씩 비교하여 그 차이점을 출력합니다. 파일이나 디렉터리를 비교해야 하는 이유 이름이 같고 내용이 비슷해 보이는 두 파일의 실제 차이점을 확인하고 싶을 때 프로젝트 코드의 이전 버전과 새 버전 사이에 어떤 변경 사항이 있는지 파악하고 싶을 때 다른 드라이브로 복사한 많은 파일들이 손상 없이 제대로 복사되었는지 검증하고 싶
이 글에서는 Bash 및 셸 스크립트에서 $@가 무엇을 의미하는지, 그리고 이를 어떻게, 왜 사용하는지 자세히 설명합니다. $@는 Bash의 특수 변수(special variable)로, 스크립트에 전달된 모든 명령줄 인수(매개변수)의 값을 담고 있습니다. Bash에서의 명령줄 인수(Command Line Arguments) 셸 스크립트에서 명령줄 인수를 다루는 것은 매우 중요하고 유용한 기능입니다. 명령줄 인수를 활용하면 스크립트 실행 시 외부에서 값을 전달해 동작을 유연하게 제어할 수 있습니다. 이 글은 셸/Bash 스크립트의
앞서 Bash에서 변수를 사용하는 기본적인 방법을 소개한 적이 있습니다. 이번 글에서는 한 단계 더 나아가 Bash 배열(array) 변수의 개념과 사용 방법을 실제 예제와 함께 자세히 살펴보겠습니다. 배열이란 무엇인가? 배열은 여러 개의 값을 하나의 변수에 담을 수 있는 변수 유형입니다. 값들의 목록이라고 생각하면 되며, 반복문을 사용해 목록을 순회하면서 각 개별 값에 대해 원하는 작업을 수행할 수 있습니다. 예를 들어, 여러 파일에 동일한 작업을 적용하고 싶다고 가정해 봅시다. 파일 목록을 배열로 저장해 두면 반복문으로 파일 이
Bash/셸 스크립트는 일반적으로 파일 안의 모든 코드가 실행될 때까지 순서대로 진행됩니다. 하지만 exit 명령어를 사용하면, 개발자가 지정한 조건에 따라 스크립트를 중간에 종료할 수 있습니다. exit 명령어 문법 Bash/셸 스크립트에서 사용할 수 있는 exit 명령어의 기본 문법은 다음과 같습니다. exit STATUS 각 요소의 의미는 다음과 같습니다. STATUS는 선택적 매개변수로, 스크립트의 종료 상태(exit status)를 지정합니다. 종료 상태는 다른 프로그램에 이 스크립트가 성공적으로 실행되었는지 여부를 알
이 글에서는 리눅스에서 mv 명령어를 사용해 파일을 이동하는 방법을 예제와 함께 소개하고, 파일을 안전하게 다루기 위한 유용한 팁까지 알려드립니다. mv 명령어 기본 문법 파일을 이동할 때는 mv 명령어를 사용하며, 기본 문법은 다음과 같습니다. mv OPTIONS SOURCE DESTINATION 각 항목의 의미는 다음과 같습니다. OPTIONS: 아래 표에 정리된 옵션 목록 SOURCE: 이동하려는 파일의 경로 DESTINATION: 파일을 이동할 목적지 경로 새 파일 이름을 포함할 수도 있고, 단순히 대상 폴더의 경로일 수
이 글에서는 리눅스에서 rm 명령어를 사용해 파일과 디렉터리를 삭제하는 방법을 설명하고, 실제 활용 예제도 함께 소개합니다. 리눅스의 rm 명령어란? 리눅스에서는 셸(터미널) 환경에서 rm(remove) 명령어를 사용해 파일이나 디렉터리를 손쉽게 삭제할 수 있습니다. rm 명령어 기본 문법 rm OPTIONS FILES 각 항목의 의미는 다음과 같습니다. OPTIONS(옵션): 아래 표에 정리된 옵션 중 필요한 것을 선택해 사용합니다. FILES(파일): 삭제할 파일 또는 디렉터리(-r 옵션 지정 시)의 목록입니다. 여러 개의
리눅스 셸/터미널에서 작업하는 시간이 많다면 별칭(alias)은 놓칠 수 없는 강력한 시간 절약 도구입니다. 이 글에서는 Bash 별칭을 직접 만들고 활용하는 방법을 다양한 예제와 함께 소개합니다. Bash/리눅스 셸에서 별칭(alias)이란? 별칭(alias)은 긴 명령어를 대신 실행해 주는 일종의 단축키입니다. 그래픽 환경에서 CTRL + C 조합이 복사 명령의 단축키인 것처럼(마우스를 화면 가로질러 옮기고 여러 메뉴를 클릭하는 수고를 덜어주듯), 별칭은 더 긴 터미널 명령어를 대신 입력해 주는 단축키입니다(전체 명령어를 일일이
이 글에서는 지정한 일수(또는 시간/분)보다 오래된 파일을 수동으로 또는 Bash 스크립트를 통해 자동으로 삭제하는 방법을 소개합니다. 실제 활용 가능한 예제도 함께 담았습니다. 일정 기간보다 오래된 파일(분, 시간 단위 포함)을 삭제하려면 리눅스의 두 가지 핵심 명령어인 rm과 find를 조합해 사용합니다. rm 명령어로 파일 삭제하기 먼저 rm 명령어부터 살펴보겠습니다. rm(remove)은 리눅스에서 파일과 디렉터리를 삭제할 때 사용하는 기본 명령어입니다. 다양한 옵션과 사용법이 궁금하다면 관련 문서를 참고하는 것도 좋습니다.
이 글에서는 Linux의 uniq 명령어를 사용해 파일에서 반복되는 줄을 찾거나 필터링하는 방법을 설명하고, 다양한 실전 예제를 함께 소개합니다. uniq 명령어는 입력으로 받은 내용이나 파일에서 반복되는 줄을 출력하거나 생략하는 아주 간단한 명령어입니다. uniq 명령어 문법 uniq 명령어의 기본 문법은 다음과 같습니다: uniq OPTIONS INPUT OUTPUT 각 항목에 대한 설명은 다음과 같습니다: OPTIONS: 아래 표에 정리된 옵션 목록 INPUT: 읽어 들일 파일의 경로 *표준 입력*도 사용할 수 있습니다
리눅스에서 ./(점 슬래시, dot slash)는 현재 작업 디렉터리(current working directory)를 가리키는 상대 경로입니다. 이 글에서는 ./가 정확히 어떤 의미를 갖는지, 그리고 실제로 어떻게 활용되는지 하나씩 살펴보겠습니다. . (점)과 .. (더블 점)의 의미 .(마침표 하나)와 ..(마침표 두 개)는 리눅스를 비롯한 유닉스 계열 운영체제에서 사용되는 특수한 디렉터리 이름입니다. . : 현재 디렉터리를 나타냅니다. .. : 현재 디렉터리의 상위(부모) 디렉터리를 나타냅니다. ./ (점 슬래시)란? ./
리눅스의 touch 명령어는 파일의 타임스탬프(시간 정보)를 갱신하거나, 해당 파일이 존재하지 않을 경우 새로 생성하는 역할을 합니다. 아래에서 다양한 예제와 활용 사례를 함께 살펴보겠습니다. 언뜻 쓸모없어 보일 수 있지만, 실제로는 매우 유용한 명령어입니다. 예를 들어 my_file.txt라는 빈 파일을 만들고 싶다면 다음 명령어 하나면 충분합니다. touch my_file.txt 정말 간단하죠! 파일의 타임스탬프를 갱신하는 것 또한 실무에서 유용하게 쓰입니다. 예를 들어 현재 즐겨 보는 TV 프로그램 이름을 기록해 두는 favo
이 튜토리얼에서는 Bash(배시) 스크립트에 명령줄 인수를 전달하는 방법을 설명합니다. 바로 따라 해볼 수 있도록 다양한 예제도 함께 준비했습니다. Bash/셸 스크립트는 리눅스 작업 흐름을 자동화하고 업무 속도를 크게 높여주는 강력한 도구입니다. 반복적인 작업을 스크립트로 처리하면 퇴근 시간까지 여유롭게 시간을 벌 수 있죠. 스크립트를 재사용 가능하게 만들면 활용 가치가 더욱 높아집니다. 서로 다른 데이터나 날짜마다 같은 작업을 수행하는 스크립트를 일일이 새로 작성할 필요 없이, 하나의 스크립트를 재사용하면서 명령줄을 통해 전달되
얼마 전 끔찍한 프로그래밍 실수를 다룬 온라인 스레드를 훑어보다가 소름 돋는 사례 하나를 발견했습니다. 해당 GitHub 커밋 보기 이 커밋에는 아래와 같은 명령어가 담겨 있었습니다: rm -rf /foo-bar-usr /lib/nvidia-current/xorg/xorg 참고 – 여러분이 이 명령을 그대로 실행했을 때 설명하려는 사고가 발생하지 않도록 경로에 foo-bar-를 추가해 두었습니다. 솔직히 이 명령이 클립보드에만 있어도 불안합니다! 공백 하나가 만든 참사 이 명령을 실행하면 어떻게 될까요? 시스템의 /usr/ 디렉터리
이 글에서는 Bash/Shell 스크립트에서 sleep 명령어가 무엇인지, 그리고 어떤 상황에서 왜 사용하는지 예제와 함께 자세히 설명합니다. sleep 명령어는 Bash를 비롯한 다양한 Linux 셸에서 스크립트 실행을 지정한 시간만큼 일시 중지하는 역할을 합니다. 초, 분, 시간 등 원하는 단위로 스크립트의 진행을 잠시 멈출 수 있습니다. 스크립트 실행을 왜 멈춰야 할까? 스크립트 실행 도중에 의도적으로 지연 시간을 두는 이유는 여러 가지가 있습니다. 사용자에게 자동화된 작업을 중단할 기회를 주고 싶을 때 사용자의 입력을 기다
Bash 스크립트에서 함수(function)를 사용하는 방법을 소개합니다. 함수를 활용하면 코드를 재사용하고 스크립트를 훨씬 간결하게 관리할 수 있습니다. 같은 코드를 여러 번 작성할 필요 없이, 한 번만 작성해 두고 필요할 때마다 재사용할 수 있다면 얼마나 편할까요? 바로 그 역할을 해주는 것이 함수입니다. 이 글에서는 Bash/Shell 스크립트에서 함수를 정의하고 활용하는 방법을 예제와 함께 자세히 살펴봅니다. 함수란 무엇인가? 함수는 재사용 가능한 코드 블록입니다. 함수는 매개변수(파라미터)를 받을 수 있어, 서로 다른 입력
이 글에서는 리눅스의 Bash와 Shell 스크립트에서 변수를 선언하고 사용하는 방법을 소개합니다. Bash(또는 리눅스 셸) 스크립트는 반복적인 작업을 자동화하고 시간을 절약할 수 있도록 명령어들을 모아놓은 파일입니다. 변수(Variables)는 스크립트 내에서 나중에 사용할 값을 저장해 두는 요소로, 숫자, 파일 이름 등 어떤 값이든 담을 수 있습니다. 아래에서는 리눅스 셸 스크립트에서 변수를 정의하고 사용하는 방법을 단계별로 살펴봅니다. 다음 예제들은 가장 널리 쓰이는 리눅스 셸인 Bash와 Zsh에서 모두 동작합니다. Bas
수학은 쉽고, Bash 스크립트 작성도 쉽습니다. 그렇다면 Bash/Shell 스크립트에서 수학·산술 연산을 수행하는 일 역시 어렵지 않아야 마땅합니다. 실제로도 그렇습니다. 지금부터 그 방법을 하나씩 살펴보겠습니다. 정수(Integer) 다루기 Bash의 내장 산술 연산은 정수 값만 처리할 수 있습니다. 만약 정수가 아닌 값으로 변수를 선언하려고 하면: declare -i e=2.5 다음과 같은 오류 메시지가 출력됩니다: bash: declare: 2.5: syntax error: invalid arithmetic operator