이 튜토리얼에서는 리눅스 cp 명령어를 사용하는 방법을 배웁니다. cp는 한 디렉터리에서 다른 디렉터리로 파일을 복사하는 기본 명령어입니다. 리눅스는 많은 개발자들이 선호하는 플랫폼입니다. 리눅스를 처음 접한다면 머지않아 파일을 한 곳에서 다른 곳으로 복사해야 할 일이 생길 것입니다. 이 글에서는 리눅스 cp 명령어의 기본 사용법과 함께 알아두면 유용한 팁과 트릭까지 자세히 소개합니다. cp 명령어란? cp 명령어의 목적은 아주 단순합니다. 바로 파일과 폴더를 한 위치에서 다른 위치로 복사하는 것입니다. 이 명령어는 리눅스 시스템에
Unix/Linux에서 실행 파일 위치를 찾는 방법 Unix 또는 Linux 시스템에서 특정 실행 바이너리가 어디에 위치해 있는지 확인하고 싶을 때 유용하게 활용할 수 있는 명령어가 두 가지 있습니다. 바로 whereis와 type입니다. 1. whereis 명령어 whereis는 지정한 파일과 관련된 소스 코드, 바이너리(실행 파일), 그리고 매뉴얼(man) 페이지의 위치를 한 번에 찾아주는 명령어입니다. 예를 들어 터미널에 whereis ls라고 입력하면 ls 명령의 실행 파일 경로와 매뉴얼 문서가 저장된 위치가 함께 출력되므로
이 글에서는 리눅스(Ubuntu 포함) 셸에서 명령어를 백그라운드로 실행하는 방법을 소개합니다. 특히 SSH로 원격 서버에 접속해 작업할 때 매우 유용한 기능입니다. SSH를 통해 원격 컴퓨터에 접속한 상태에서 오래 걸리는 작업을 실행해야 한다고 가정해 봅시다. 일반적으로 작업이 진행되는 동안에는 터미널 창과 연결을 계속 열어두어야 합니다. 하지만 다른 작업을 위해 창을 닫아야 하거나, 인터넷 연결이 불안정해서 언제든 끊길 수 있는 상황이라면 상당히 번거롭습니다. 창이 닫히거나 연결이 끊기면 원격 컴퓨터에서 실행 중이던 명령어도 중
Bash/Shell 스크립트를 작성하다 보면 사용자로부터 키보드 입력을 받아야 하는 경우가 자주 생깁니다. 이 글에서는 read 명령어 하나만으로 스크립트에 사용자 입력 기능을 손쉽게 추가하는 방법을 예제와 함께 소개합니다. read 명령어란? 셸 스크립트에서 사용자 입력을 읽어 들일 때는 이름 그대로 read 명령어를 사용합니다. 기본 문법은 다음과 같습니다. read OPTIONS VARIABLES read 명령어의 동작 방식을 정리하면 다음과 같습니다. 표준 입력(standard input)으로부터 한 줄을 읽어 지정한 변수
이 글에서는 리눅스 Bash/Shell 환경에서 printf 명령어를 실제로 활용할 수 있는 다양한 예제를 소개합니다. printf 명령어는 echo 명령어처럼 텍스트를 출력하지만, 출력 형식을 훨씬 더 세밀하게 제어할 수 있다는 점이 큰 차이입니다. 특히 변수를 텍스트에 삽입하거나, 줄바꿈을 포함하거나, 텍스트를 정렬하고 서식을 지정하는 등 나만의 형식화된 출력을 만들 때 매우 유용한 도구입니다. printf 명령어 문법 printf 명령어는 다음과 같은 문법 구조를 가집니다: printf [-v var] format [argum
이 글에서는 Bash/셸 스크립트에서 Heredoc(Here Document)을 사용하여 여러 줄의 텍스트를 다루는 방법을 소개합니다. Heredoc은 여러 줄 입력을 처리할 때 가장 유용합니다. 사용자가 한 줄의 텍스트를 입력하고 Enter 키를 누른 뒤, 다음 줄을 이어서 입력하는 방식으로 동작하며, 스크립트 안에서 여러 줄 텍스트를 정의하는 용도로도 활용할 수 있습니다. 또한 실행 중인 대화형 프로그램에 여러 개의 명령을 한 번에 전달하는 데도 사용할 수 있습니다. 구체적인 예시는 아래에서 확인할 수 있습니다. 이 글의 예제는
이 튜토리얼에서는 Bash/셸 스크립트에서 export 키워드를 사용해 환경 변수를 설정하는 방법을 소개합니다. 일반적으로 Bash/셸 스크립트에서 선언한 변수는 해당 스크립트가 실행되는 동안에만 존재합니다. 변수를 다른 곳에서도 사용하려면 환경 변수(environmental variable)로 설정해야 합니다. 환경 변수로 만들면 스크립트 외부의 명령어 실행 시에도 변수를 사용할 수 있습니다. 예를 들어, 스크립트 실행이 끝난 후에도 명령줄에서 해당 변수에 접근할 수 있습니다. 바로 이 작업을 export 키워드가 수행합니다. 사
이 글에서는 Bash 셸 및 명령줄 환경에서 PHP를 활용하는 다양한 방법을 실전 예제와 함께 간결하게 정리해 드립니다. PHP는 일반적으로 웹에 제공할 콘텐츠를 생성하는 용도로 많이 쓰이지만, 사실 명령줄(Command Line)에서도 충분히 활용할 수 있는 언어입니다. 명령줄에서 PHP를 사용하는 경우는 주로 테스트나 PHP 환경 정보 확인이 대부분입니다. 하지만 이를 넘어 명령줄용 스크립트를 작성하는 데도 활용할 수 있습니다. 물론 자주 사용되는 편은 아닌데, 이는 더 적합한 대안 언어들이 존재하기 때문입니다. 셸에서 PHP
리눅스 명령줄 환경에서 파일을 압축(zip)하는 방법은 이미 다뤘습니다. 이번에는 반대로 압축을 해제(unzip)하는 방법을 알아보겠습니다. 이 글에서는 unzip 명령어의 설치부터 다양한 활용 옵션까지 하나씩 정리해 드립니다. ZIP 압축이란? ZIP은 하나 이상의 파일이나 디렉터리를 .zip 확장자를 가진 단일 압축 파일로 묶는 것을 의미합니다. 압축 방법에 대해서는 별도의 글에서 자세히 다루었으므로, 여기서는 압축 해제에 집중하겠습니다. unzip 명령어 설치하기 unzip은 시스템에 기본적으로 설치되어 있지 않을 수 있습니다
이 글에서는 Bash/Shell 스크립트에서 지정한 구분자를 기준으로 문자열을 분할하는 방법을 예제와 함께 소개합니다. 문자열 분할은 스크립트를 작성할 때 매우 유용하게 쓰이는 기능입니다. CSV(Comma Separated Values, 쉼표로 구분된 값)는 온라인에서 데이터를 제공할 때 흔히 사용되는 형식으로, 표의 각 데이터 필드가 쉼표로 구분되어 있습니다. 또한 문장을 공백을 기준으로 단어별로 나누거나, 문단을 마침표를 기준으로 문장 단위로 분리하는 등 다양한 용도로 활용할 수 있습니다. 많은 해결 방법이 Bash 전용 기능
이 글에서는 visudo를 사용해 sudoers 파일을 편집하여 사용자에게 root 권한을 부여하는 방법을 소개합니다. 동시에, 사소한 실수로 인해 Linux 시스템에 영구적으로 접근하지 못하는 최악의 상황을 예방하는 요령도 함께 정리했습니다. sudoers 파일이란? sudoers 파일은 Linux 시스템에서 어떤 사용자가 sudo 명령어를 사용할 수 있는지를 정의하는 파일입니다. 파일 위치는 다음과 같습니다. /etc/sudoers 파일을 열면 대략 다음과 같은 내용이 담겨 있습니다. # # This file MUST be ed
리눅스에서 셸 스크립트를 작성할 때 기억해두면 큰 도움이 되는 실용적인 팁들을 소개합니다. 셸 스크립트는 리눅스는 물론 macOS, 그리고 WSL(Windows Subsystem for Linux)을 통해 윈도우에서까지 작업 흐름을 자동화할 수 있는 매우 유연한 도구입니다. 다만 셸 스크립팅은 문법과 동작 방식에 특유의 특성이 있어서, 이를 제대로 이해하고 활용하면 스크립트를 훨씬 간결하고 안전하게 만들 수 있습니다. Bash 스크립팅 핵심 팁 아래 팁들은 인터넷 곳곳에서 수집한 내용에 직접 경험을 바탕으로 한 몇 가지를 더한 것입
리눅스에서 셸 스크립트는 시스템 관리 작업을 수행·자동화하거나 간단한 명령줄 도구를 만드는 등 매우 다양한 용도로 활용됩니다. 이 가이드에서는 리눅스 초보 사용자를 위해 커스텀 셸 스크립트를 안정적으로 보관할 위치, 자신만의 셸 함수와 라이브러리를 작성하는 방법, 그리고 다른 스크립트에서 라이브러리의 함수를 호출하는 방법까지 차근차근 살펴봅니다. 셸 스크립트 저장 위치 정하기 매번 전체 경로(절대 경로)를 입력하지 않고 스크립트를 바로 실행하려면, $PATH 환경 변수에 포함된 디렉터리 중 하나에 스크립트를 저장해야 합니다. 현재
리눅스는 다중 사용자(multi-user) 시분할(time-sharing) 시스템입니다. 즉, 여러 사용자가 하나의 시스템에 동시에 로그인하여 사용할 수 있습니다. 시스템 관리자는 소프트웨어 설치·업데이트·삭제, 실행 가능한 프로그램, 열람 및 편집할 수 있는 파일 등 사용자가 시스템을 운영하는 방식의 다양한 측면을 관리하는 역할을 맡습니다. 또한 리눅스는 사용자 환경을 두 가지 방식으로 생성하고 유지합니다. 바로 시스템 전체(전역) 설정과 사용자별(개인) 설정입니다. 일반적으로 리눅스 시스템을 다루는 기본적인 방법은 셸(shell
ShellCheck는 bash/sh 셸 스크립트 속 잘못된 코드를 찾아 경고와 수정 제안을 보여주는 정적 분석(static analysis) 도구입니다. 다양한 방식으로 활용할 수 있는데, 웹사이트(https://www.shellcheck.net)에 접속해 자신의 셸 스크립트를 온라인 코드 편집기(Ace – JavaScript로 작성된 독립형 코드 편집기)에 붙여넣어 즉각적인 피드백을 받는 것이 가장 간편한 방법입니다. 이 사이트는 항상 최신 git 커밋과 동기화되어 있어 ShellCheck을 처음 접해보기에 좋습니다. 또는 자신의
셸 스크립팅은 리눅스에서 배울 수 있는 가장 쉬운 프로그래밍 형태입니다. 동시에 시스템 관리 업무에서 반복 작업 자동화나 간단한 유틸리티·도구 개발 등에 반드시 필요한 핵심 기술이기도 합니다. 이 글에서는 효과적이고 안정적인 Bash 스크립트를 작성하기 위한 10가지 실용적인 팁을 소개합니다. 1. 스크립트에는 항상 주석을 달기 주석 작성은 셸 스크립팅뿐 아니라 모든 프로그래밍에서 권장되는 기본 관행입니다. 스크립트에 주석을 남겨두면 나중에 본인이나 다른 사람이 코드를 검토할 때 각 부분의 역할을 쉽게 파악할 수 있습니다. 주석은
Bash(Bourne Again Shell)는 의심할 여지 없이 가장 널리 사용되는 Linux 셸이며, 수많은 Linux 배포판의 기본 셸로 채택된 것도 바로 그 강력함 때문입니다. Bash의 가장 매력적인 기능 중 하나는 내장된 자동 완성(auto-completion) 지원입니다. 이 기능은 TAB 완성이라고도 불리며, 명령어 구조를 손쉽게 완성할 수 있게 도와줍니다. 명령어의 일부만 입력한 후 [Tab] 키를 누르면 나머지 명령과 인수가 자동으로 완성되며, 가능한 경우 일치하는 모든 후보 목록까지 표시해 줍니다. Bash뿐만 아
bash를 비롯한 Unix/Linux 셸 프로그램의 강력한 점 중 하나는 조건 분기, 명령 반복 실행, 새로운 함수 생성 등 일반적인 프로그래밍 구문을 폭넓게 지원한다는 것입니다. 여러 명령어를 셸 스크립트라 불리는 하나의 파일에 작성해 두면 한 번에 실행할 수 있습니다. 이는 시스템 관리를 위한 안정적이고 효율적인 수단이 됩니다. 매일의 백업, 시스템 업데이트 같은 반복 작업을 자동화하는 스크립트를 작성하거나, 자신만의 커스텀 명령어·유틸리티·도구를 만들 수도 있습니다. 나아가 서버에서 벌어지는 상황을 놓치지 않고 파악하는 데 도
이 글에서는 Vim 에디터에서 새로 생성되는 모든 bash 스크립트에 사용자 정의 헤더를 자동으로 추가하는 간단한 방법을 소개합니다. 이 설정을 적용하면 vi/vim으로 새로운 .sh 파일을 열 때마다 미리 정의해 둔 헤더가 파일에 자동으로 삽입되므로, 매번 동일한 내용을 수동으로 입력하는 번거로움을 없앨 수 있습니다. Bash 스크립트 헤더 템플릿 파일 만들기 먼저 사용자 정의 bash 스크립트 헤더가 담긴 템플릿 파일 sh_header.temp를 생성합니다. 일반적으로 홈 디렉터리 아래의 ~/.vim/ 폴더에 저장하는 것이 관리
jm-shell이란? jm-shell은 무료 오픈소스로 제공되는 가볍고 정보성 높은 맞춤형 Bash 셸입니다. 일반적인 셸 환경에서는 확인하기 어려운 다양한 정보를 실시간으로 보여주며, 시스템 부하 평균치(load average), 노트북 배터리 상태 등 유용한 시스템 정보도 함께 표시해 줍니다. 특히 jm-shell의 가장 큰 특징은 명령어 기록 관리 방식입니다. 기본 Bash는 중복을 제거한 고유 명령어만 히스토리 파일에 저장하는 반면, jm-shell은 실행된 모든 셸 활동을 로그 파일에 그대로 기록합니다. 덕분에 이전에 실행