HOWTO · Bash

Bash를 사용하여 HTML 파일 열기

Bash에서 기존 HTML 파일을 여는 방법을 설명합니다. macOS에서는 `open`, Linux 데스크톱 환경에서는 `xdg-open`을 사용해 기본 브라우저나 연결된 애플리케이션으로 파일을 열 수 있습니다.

이 페이지의 내용

Bash에서 기존 로컬 HTML 파일을 열려면 운영체제에 맞는 실행 명령을 사용하세요. macOS에는 open이 있고, 많은 Linux 데스크톱 환경에는 xdg-open이 있습니다. 두 명령 모두 데스크톱 환경에 파일을 연결된 애플리케이션으로 열도록 요청하며, 보통 기본 브라우저에서 파일이 표시됩니다. 이 명령은 로컬 파일을 열 뿐, 웹 서버를 시작하거나 페이지를 게시하지 않습니다.

기본 브라우저로 HTML 파일 열기

먼저 페이지가 있는 디렉터리로 이동하거나 파일 경로를 직접 지정하세요. macOS에서는 현재 디렉터리의 파일을 open ./index.html로 엽니다. Linux에서는 같은 방식으로 기본 애플리케이션을 사용하려면 xdg-open ./index.html을 실행하세요. index.html을 실제 파일 이름으로 바꾸면 됩니다. 다른 디렉터리에 있는 파일은 /home/alex/site/index.html 같은 절대 경로나 ../site/index.html 같은 현재 디렉터리 기준 상대 경로로 지정할 수 있습니다.

실행 명령은 경로를 데스크톱 환경에 전달한 뒤 셸에 제어를 돌려줍니다. 렌더링된 페이지를 터미널 출력으로 표시하는 것은 아닙니다. HTML 페이지는 브라우저에서 표시되며, 실제로 열리는 애플리케이션은 해당 컴퓨터에 설정된 파일 연결에 따라 달라집니다.

macOS에서 HTML 파일 열기

macOS에 기본으로 포함된 open 명령은 파일 형식에 연결된 애플리케이션을 사용합니다. 파일이 있는 디렉터리에서 open ./index.html을 실행하거나 전체 경로를 지정하세요. 예를 들면 open "$HOME/Sites/demo/index.html"과 같습니다. 경로를 따옴표로 감싸면 공백이나 다른 셸 문자가 구분자로 해석되지 않습니다. open 을 입력한 다음 Finder에서 파일을 터미널 창으로 끌어다 놓아 경로를 입력하고 Return 키를 눌러도 됩니다.

설치된 특정 애플리케이션으로 열려면 open -a 뒤에 애플리케이션 이름과 파일 경로를 입력하세요. 예를 들어 open -a "Google Chrome" ./index.html은 macOS에 페이지를 Google Chrome으로 열도록 요청합니다. 같은 형식으로 Firefox처럼 설치된 브라우저에 표시된 애플리케이션 이름을 사용할 수 있습니다. 이는 macOS 문법이며, 아래에 나오는 Linux 명령은 open -a가 아닙니다.

Linux에서 HTML 파일 열기

Linux 그래픽 데스크톱 세션에서 xdg-open ./index.html을 실행하면 데스크톱 환경이 HTML 파일에 연결된 기본 애플리케이션으로 페이지를 열도록 요청합니다. 필요에 따라 절대 경로나 상대 경로를 지정하고, 공백이 있는 경로는 따옴표로 감싸세요. 예: xdg-open "$HOME/sites/my demo/index.html".

xdg-open은 데스크톱 통합 패키지에 포함되는 경우가 많지만, 모든 Linux 환경에 설치되어 있거나 유용하게 동작한다고 보장할 수는 없습니다. 그래픽 세션이 없는 텍스트 전용 서버, 컨테이너 또는 원격 셸에는 실행할 브라우저가 없을 수 있습니다. macOS에 Homebrew를 설치해도 xdg-open이 표준 macOS 실행 명령이 되는 것은 아닙니다. macOS에서는 open을 사용하세요.

브라우저를 선택하고 여러 파일 열기

macOS에서는 open -a "Google Chrome" ./one.html ./two.html을 실행해 두 파일을 Google Chrome에서 열도록 요청할 수 있습니다. 필요하면 애플리케이션 이름을 설치된 다른 브라우저의 이름으로 바꾸세요. open -a 형식은 파일 하나나 여러 경로에 모두 사용할 수 있습니다.

Linux에서 xdg-open은 URL이나 파일을 기본 데스크톱 애플리케이션으로 여는 명령입니다. 표시 이름으로 브라우저를 선택하는 이식성 있는 옵션은 제공하지 않습니다. 특정 브라우저를 사용하려면 해당 브라우저의 명령줄 실행 파일이 설치되어 있고 PATH에서 검색되는 경우 그 실행 파일을 사용하세요. 실행 파일 이름과 옵션은 배포판 및 브라우저마다 다릅니다. 시크릿 브라우징 같은 브라우저별 모드도 각 브라우저의 자체 옵션을 사용하므로 open 또는 xdg-open의 옵션과 서로 바꿔 쓸 수 없습니다.

경로와 명령 사용 가능 여부 확인

상대 경로는 문서나 브라우저가 있는 디렉터리가 아니라 셸의 현재 작업 디렉터리를 기준으로 해석됩니다. 현재 디렉터리를 확인하려면 pwd를 실행하세요. ls로 그 안의 파일을 살펴보거나 cd로 올바른 디렉터리로 이동한 다음, HTML 파일 이름을 운영체제에 맞는 실행 명령에 전달하세요. 경로에 공백이 있으면 전체 경로를 따옴표로 감싸세요. 파일이 실제로 존재하고, 입력한 경로의 철자와 대소문자가 파일과 일치하는지도 확인하세요.

열려는 HTML 파일을 확인하려면 지정한 경로 자체를 검사해야 합니다. target에 open 또는 xdg-open에 전달할 경로를 지정하고, 파일 이름에 공백이 포함될 수 있으므로 따옴표로 감싸세요. 이 예제는 파일이 있거나 없어도 결과를 분명하게 알리고 성공 상태로 종료합니다. 제공된 실행에서는 기본 경로에 파일이 없어 HTML file not found: ./index.html이 출력되었습니다.

이 섹션의 코드와 표시되는 레이블 또는 출력은 영어로 유지됩니다.

target=${1:-./index.html}
if [[ -f "$target" ]]; then
  printf 'Found HTML file: %s\n' "$target"
else
  printf 'HTML file not found: %s\n' "$target"
fi

예를 들어 스크립트를 check-html-path.sh로 저장한 뒤 bash check-html-path.sh "$HOME/Sites/demo page/index.html"로 검사를 실행할 수 있습니다. 스크립트에 전달한 경로가 실제 검사 대상입니다. 별도의 임시 파일이 존재한다고 해서 이 검사가 통과하지는 않습니다. Found HTML file 결과가 나오면 같은 경로를 운영체제에 맞는 실행 명령에 사용하세요. 이 검사는 일반 파일의 존재 여부만 확인하며, HTML 내용이 올바른지 검증하거나 브라우저를 실행하지는 않습니다.

다음 별도의 셸 프로브는 임시 파일을 대상으로 Bash의 파일 검사를 시험합니다. HTML 대상 경로를 확인하는 검사는 아닙니다.

file=$(mktemp)
trap 'rm -f "$file"' EXIT
[[ -f "$file" ]]

프로브는 성공적으로 완료되었고 stdout은 출력하지 않았습니다.

Bash에서 open 또는 xdg-open을 찾을 수 없다고 나오면 운영체제에 맞는 명령을 사용했는지 확인하세요. macOS에서는 open을 사용하고, Linux에서는 xdg-open을 제공하는 데스크톱 통합 패키지가 빠져 있을 수 있습니다. 실행 명령은 작동하지만 브라우저가 나타나지 않는다면 그래픽 데스크톱 세션이 사용 가능한지, HTML 파일에 연결된 애플리케이션이 있는지 확인하세요. 특정 브라우저를 지정했다면 설치 여부와 명령 또는 애플리케이션 이름이 올바른지도 확인하세요.

자신의 컴퓨터에서 페이지를 확인할 때는 로컬 미리보기를 사용할 수 있습니다. 페이지가 웹 서버의 동작, 경로 또는 HTTP가 필요한 리소스에 의존한다면 로컬 개발 서버를 별도로 실행하고 그 URL을 여세요. open과 xdg-open은 파일이나 URL을 데스크톱 애플리케이션에 전달할 뿐입니다.