1. 명령행 인터페이스(1) - 시스템 시작, 종료

프라이마리모·2025년 10월 25일
post-thumbnail

명령행 인터페이스(CLI)란?

사용자가 키보드로 문자열 명령을 입력하고 컴퓨터가 처리한 결과를 화면에서 확인하는 상호작용이다.
명령행 인터페이스는 시스템 자원을 덜 소모하고 효율적으로 시스템을 관리할 수 있다. 특히 서비스를 빠르고 안정적으로 제공하는 일 이더 중요한 서버 컴퓨터에서는 그래픽 사용자 인터페이스(GUI)보다 명령행 인터페이스를 선호한다. 서버 서비스에 꼭 필요한 패키지만 제공하는 우분투 서버도 명령행으로 제어한다.
그러므로 우분투 데스크톱을 사용하더라도 명령행 인터페이스를 익혀야 한다.

Bash 셸에서 명령행 인터페이스 사용해보기

Bash 셸에서 HelloBash라는 텍스트를 입력해보자.

  • 터미널 실행 후 HelloBash 문자열 입력
    • 1행: 셸이 사용자에게서 명령을 받을 준비가 되었음을 의미한다.
    • 2행: 출력할 텍스트를 바로 입력하고 엔터를 누르면 셸이 해석을 시도한다.
    • 3행: 해당 문자열은 셸이 해석할 수 없는 아무 의미 없는 명령이므로 오류 메세지를 출력한다.
    • 4행: 명령 실행이 끝나고 다음 사용자 입력을 받고자 새로운 프롬프트가 나타난다.
  • echo HelloBash 문자열 입력

    이 때 셸은 입력된 문자열을 echo 와 HelloBash로 나누어 처리한다. echo는 배시가 제공하는 문자열 출력 명령으로, 뒤에 오는 문자열은 echo 명령이 출력할 문자열 인자로 분석한다.
    • 1행: 명령어 echo와 문자열 HelloBash를 입력 후 엔터를 누른다.
    • 2행: echo 명령의 결과로 사용자가 입력한 문자열 HelloBash를 화면에 출력한다.
      (정상적 명령 수행으로 오류가 발생하지 않는다.)
    • 3행: 새로운 프롬프트가 나타나며 셸이 다시 준비가 되었음을 알 수 있다.

셸 명령 옵션

어떤 명령들은 세부 기능을 선택할 수 있도록 옵션을 제공한다.

  • 옵션은 기호 ---로 시작하며 영문 대/소문자로 입력한다.
    일반적으로 --로 시작하는 옵션은 이름으로 의미를 알기 쉽지만 여러 문자를 입력해야하며, -로 시작하는 축약형 옵션은 짧게 입력할 수 있어 사용에는 편리하지만 어느정도 암기가 필요하다.

    예를 들어 사용자를 추가하는 useradd 명령은 사용법을 알려주는 --help-h 옵션을 모두 지원한다.
useradd --help
useradd -h
  • 여러 옵션을 붙여 쓰는 것도 가능하다.
    예를 들어 파일 목록을 화면에 보여주는 ls 명령은 숨김 파일까지 모두 표시하는 -a 옵션과 파일 정보를 함께 출력하는 -l 옵션을 제공하는데, 두 옵션을 동시에 사용해서 적용할 수 있다.
#옵션을 붙여 쓰는 경우 순서와 상관없이 명령을 처리한다.
ls -al
ls -la 

시스템 시작, 종료하기

시스템을 시작하고 종료하는 명령어는 다음과 같다.

명령설명
logout셸 사용을 종료하고 로그인 대기 상태로 돌아간다.
printenv설정된 모든 환경변수를 출력한다.
export환경변수를 등록한다.
unset등록한 환경변수를 삭제한다.
shutdown시스템을 종료한다.
reboot시스템을 다시 시작한다.

셸 시작하기

  • 우분투 데스크톱 : 터미널 앱 실행. 한글 입출력 가능, 명령어 logout 실행 시 터미널 종료

  • 우분투 서버 : 기본 콘솔 환경. 계정 로그인 시 활용 가능. 한글 입출력 불가능. 명령어 logout 실행 시 첫화면으로 돌아가 로그인 대기

셸 환경변수

printenv

printenv현재 설정된 모든 환경변수를 출력한다.

이 중 핵심 내용만 몇 가지 정리하였다.

변수명설명
SHELL현재 로그인 한 셸 정보
PWD현재 작업 디렉터리 경로
LOGNAME로그인 한 사용자 이름
HOME사용자 홈 디렉토리 경로
LANG로케일 설정
PATH실행할 명령을 찾는 경로

기본 변수 등록

[변수명]=[값]의 형식으로 입력하여 셸에서 사용할 변수를 정의한다.
이 때, 변수 이름, 등호, 값 사이에 공백이 없어야한다.
변수를 사용할 때는 변수이름 앞에 $를 붙여야 한다.

export

사용자가 실행하는 명령은 셸의 자식 프로세스로 동작하므로, 방금 등록한 VAR 변수는 자식 프로세스에서 동작할 수 없어 사용에 제약이 있다. 환경변수를 조회해도 해당 변수는 찾아볼 수 없다.

export 명령은 변수를 환경변수로 내보낸다. VAR을 export 명령으로 등록 후 환경변수를 확인하면 VAR 변수가 등록됨을 확인할 수 있다.

export VAR=1

export 로 내보낸 환경변수는 로그인 상태에서만 유지된다.
터미널을 닫거나 로그아웃 이후 환경변수는 모두 초기화된다. 환경변수를 유지하려면 환경 설정 파일에 등록해야 한다.
현재 로그인 한 사용자에 해당하는 환경변수는 홈 디렉터리의 배시 환경 설정 파일 .bashsrcexport명령으로 등록할 수 있다.
시스템 전체 등록 시 /etc/environment에 등록하면 된다.

unset

unset 명령은 환경변수를 삭제한다.

unset VAR

시스템 종료하기

shutdown 명령은 시스템을 종료한다. 우분투 서버, 우분투 데스크톱 터미널 모두에서 동일하게 동작한다.
shutdown은 루트권한이 필요하므로 앞에 sudo 명령을 붙여야 한다.

sudo shutdown -h now
  • shutdown [옵션][시간] 형식으로 입력한다.
  • -h는 명령을 실행한 이후 전원을 차단하는 옵션이다.
  • now는 지금 즉시 명령을 실행한다.

예약 종료

  • 몇 분 후에 종료할 지 옵션 지정 시 now 자리에 15 를 입력하면 된다.
sudo shutdown -h 15
  • 종료 시각을 지정할 수 있다. 3시 30분에 종료하고 싶다면 03:30을 입력하면 된다.
sudo shutdown -h 03:30
  • 예약 종료를 취소하려면 옵션 -c를 사용한다.
sudo shutdown -c
  • 재부팅 시 옵션 -r을 사용하거나 reboot 명령어를 사용한다.
sudo shutdown -r now
sudo reboot		#shutdown -r과 동일한 동작
profile
개발공부 요약노트

0개의 댓글