AWS Lightsail 인스턴스 관리를 위한 필수 리눅스 명령어 25가지

글자 크기

AWS Lightsail 을 이용하여 워드프레스를 운영하기 위해서는 몇가지 리눅스 명령어를 알아야 하지만, 윈도우 기반의 GUI 시스템만 사용하셨던 분들에게는 어려울 수 있습니다. 이런 분들을 위해 이 글에서 AWS Lightsail 인스턴스 관리를 위한 필수 리눅스 명령어 25가지에 대해 알아보겠습니다. 

AWS Lightsail 인스턴스 관리를 위한 필수 리눅스 명령어 25가지



1. 시스템 정보 확인


1) uname -a

  • 설명: 시스템에 대한 모든 정보(커널 이름, 호스트 이름, 커널 릴리즈, 커널 버전, 머신 하드웨어 이름, 프로세서 유형, 하드웨어 플랫폼, 운영체제)를 표시합니다.
  • 예제 : uname -a


2) hostname

  • 설명: 현재 시스템의 네트워크 호스트 이름을 표시하거나 변경합니다. 루트 권한이 필요할 수 있습니다.
  • 예제:
    • 현재 호스트 이름 표시 : hostname
    • 호스트 이름 변경 (루트 권한 필요) : sudo hostname new_hostname


3) df -h

  • 설명: 파일 시스템별로 디스크 사용량을 사용자가 읽을 수 있는 형태(예: MB, GB)로 표시합니다.
  • 예제 : df -h


4) free -m

  • 설명: 시스템의 메모리 사용량(총 메모리, 사용 중인 메모리, 무료 메모리, 버퍼/캐시 사용량)을 MB 단위로 표시합니다.
  • 예제 : free -m


2. 파일 및 디렉토리 관리


5) ls -l

  • 설명: 현재 디렉토리의 파일 목록을 자세히(파일 모드, 링크 수, 소유자, 그룹, 파일 크기, 타임스탬프, 파일명) 표시합니다.
  • 예제 : ls -l


6) cd directory_name

  • 설명: 사용자를 지정된 디렉토리로 이동시킵니다.
  • 예제:
    • 홈 디렉토리로 이동 : cd ~
    • 상위 디렉토리로 이동 : cd ..


7) pwd

  • 설명: 현재 작업 중인 디렉토리의 절대 경로를 표시합니다.
  • 예제 : pwd


8) mkdir directory_name

  • 설명: 새 디렉토리를 만듭니다.
  • 예제 : mkdir new_directory


9) rm file_name

  • 설명: 파일이나 디렉토리를 삭제합니다. 디렉토리를 삭제하려면 -r 옵션을 사용해야 합니다.
  • 예제:
    • 파일 삭제 : rm file.txt
    • 디렉토리 삭제 : rm -r directory_name


10) cp source_file target_file

  • 설명: 파일을 복사합니다.
  • 예제 : cp original.txt copy.txt


11) mv old_name new_name

  • 설명: 파일 또는 디렉토리의 이름을 변경하거나 다른 위치로 이동합니다.
  • 예제 : mv old_name.txt new_name.txt



3. 파일 내용 확인 및 수정


12) cat file_name

  • 설명: 파일의 내용을 표준 출력(보통은 화면)에 표시합니다.
  • 예제 : cat file.txt


13) more file_name / less file_name

  • 설명: 파일 내용을 페이지 단위로 확인할 수 있습니다. lessmore보다 더 많은 기능을 제공합니다.
  • 예제:
    • more 사용 : more file.txt
    • less 사용 : less file.txt


14) tail file_name

  • 설명: 파일의 마지막 부분을 표시합니다. 로그 파일 같은 지속적으로 업데이트되는 파일을 모니터링할 때 유용합니다.
  • 예제 : tail -f /var/log/syslog


15) grep ‘search_string’ file_name

  • 설명: 파일 내에서 주어진 문자열이 포함된 모든 줄을 검색합니다.
  • 예제 : grep 'error' /var/log/syslog


16) nano file_name / vi file_name


a) nano
  • nano는 리눅스 초보자들에게 친숙한 인터페이스를 제공하는 간단하고 사용하기 쉬운 텍스트 에디터입니다. nano는 기본적인 텍스트 편집 기능을 제공하며, 키보드 단축키와 명령어가 화면 하단에 표시되어 있어 사용자가 쉽게 조작할 수 있습니다.
  • 특징
    • 사용하기 쉬운 인터페이스
    • 화면 하단에 표시되는 도움말로 키보드 단축키와 명령어 쉽게 알 수 있음
    • 검색, 교체, 자르기, 붙여넣기 등의 기본적인 편집 기능 제공
    • 여러 파일 동시 편집 지원 (탭이나 창 기반의 인터페이스는 아님)
  • 사용 예제
    • 파일 열기 : nano file.txt
    • 저장하고 나가기 : Ctrl + O를 누른 뒤 Enter 키를 누르고, Ctrl + X로 종료
    • 검색 : Ctrl + W, 검색할 텍스트 입력
    • 자르기 (삭제) : Ctrl + K
    • 붙여넣기 : Ctrl + U

b) vi/vim
  • vi는 원래 유닉스 시스템에 포함된 전통적인 텍스트 에디터이며, vim (Vi IMproved)은 vi의 강화된 버전으로, 더 많은 기능과 개선된 사용자 인터페이스를 제공합니다. vi/vim은 텍스트 편집의 효율성과 강력한 기능을 제공하지만, 초보자에게는 사용법이 다소 복잡할 수 있습니다.
  • 특징
    • 다양한 모드 지원 (명령 모드, 입력 모드, 비주얼 모드 등)
    • 강력한 텍스트 편집 및 프로그래밍 기능 (문법 강조, 코드 완성, 플러그인 지원 등)
    • 커스터마이징이 가능한 설정
    • 키보드만으로 모든 작업 수행 가능, 마우스 사용 최소화
  • 사용 예제
    • 파일 열기 : vi file.txt 또는 vim file.txt
    • 입력 모드 전환 : i (Insert 모드)
    • 명령 모드로 돌아가기 : Esc
    • 저장하고 나가기 : :wq (Write and Quit)
    • 강제 종료(저장하지 않고) : :q!
    • 검색 : /text to search



4. 사용자 및 그룹 관리


17) whoami

  • 설명: 현재 로그인한 사용자의 이름을 표시합니다.
  • 예제 : whoami


18) sudo command

  • 설명: 슈퍼유저 또는 루트 권한으로 명령을 실행합니다.
  • 예제 : sudo apt update


19) useradd user_name

  • 설명: 새로운 사용자 계정을 생성합니다.
  • 예제 : sudo useradd new_user


20) passwd user_name

  • 설명: 사용자 계정의 비밀번호를 설정하거나 변경합니다.
  • 예제 : sudo passwd user_name


21) groupadd group_name

  • 설명: 새로운 그룹을 생성합니다.
  • 예제 : sudo groupadd new_group


5. 네트워킹


22) ping host

  • 설명: 네트워크 호스트에 대한 연결을 테스트합니다. 패킷 손실률과 왕복 시간을 보여줍니다.
  • 예제 : ping google.com


23) netstat -tuln

  • 설명: 시스템의 네트워크 연결, 라우팅 테이블, 인터페이스 통계 등을 표시합니다.
  • 예제 : netstat -tuln


6. 파일 권한 변경


24) chmod permissions file_name

chmod 명령어는 리눅스와 유닉스 시스템에서 파일이나 디렉토리의 권한을 변경하는 데 사용됩니다. 파일 권한은 파일의 소유자(owner), 소유자가 속한 그룹(group), 그리고 시스템의 다른 모든 사용자(others)에 대한 접근 권한을 제어합니다. chmod 명령어는 숫자와 기호 두 가지 방식으로 권한을 지정할 수 있습니다.


a) 권한의 종류
  • 읽기(read, r) : 파일의 내용을 볼 수 있는 권한, 디렉토리의 경우 디렉토리 내의 파일 목록을 볼 수 있는 권한
  • 쓰기(write, w) : 파일의 내용을 변경할 수 있는 권한, 디렉토리의 경우 파일을 생성하거나 삭제할 수 있는 권한
  • 실행(execute, x) : 파일을 실행할 수 있는 권한, 디렉토리의 경우 디렉토리 내로 이동할 수 있는 권한

b) 숫자를 사용한 권한 설정 (Octal Notation)

각 권한은 숫자로 표현할 수 있으며, 이 숫자들을 조합하여 파일이나 디렉토리의 권한을 설정할 수 있습니다.

  • 4 : 읽기 권한
  • 2 : 쓰기 권한
  • 1 : 실행 권한
  • 0 : 권한 없음

세 자리 숫자를 사용하여 chmod 명령어로 권한을 설정합니다. 첫 번째 숫자는 소유자의 권한, 두 번째 숫자는 그룹의 권한, 세 번째 숫자는 다른 사용자의 권한을 나타냅니다.

예를 들어, chmod 755 file 명령어는 소유자에게 읽기, 쓰기, 실행 권한을 부여하고(7 = 4+2+1), 그룹과 다른 사용자에게는 읽기와 실행 권한만 부여합니다(5 = 4+1).

c) 기호를 사용한 권한 설정 (Symbolic Mode)

기호를 사용하여 더 직관적으로 권한을 설정할 수 있습니다.

  • u (user) : 소유자
  • g (group) : 그룹
  • o (others) : 다른 모든 사용자
  • a (all) : 모든 사용자 (u, g, o를 모두 포함)

권한을 추가(+), 제거(-), 설정(=)할 수 있습니다.

예를 들어, chmod g+w file 명령어는 그룹에게 쓰기 권한을 추가합니다. chmod o-r file 명령어는 다른 모든 사용자의 읽기 권한을 제거합니다. chmod u=rx file 명령어는 소유자에게 읽기와 실행 권한만 설정하고, 쓰기 권한은 제거합니다.

d) 예제
  • 755 설정 : 일반적으로 웹 서버에서 스크립트 파일에 사용합니다. chmod 755 script.sh
  • 644 설정 : 일반적인 문서나 이미지 파일에 사용합니다. chmod 644 document.txt
  • 그룹에 쓰기 권한 추가 : chmod g+w filename
  • 다른 모든 사용자의 실행 권한 제거 : chmod o-x filename

chmod 명령어를 사용할 때는 권한 변경이 민감한 파일이나 디렉토리에 영향을 줄 수 있으므로 주의해야 합니다. 권한을 변경하기 전에 현재 권한을 확인하는 것이 좋으며, 이는 ls -l 명령어로 확인할 수 있습니다.


25) chown user:group file_name

  • 설명: 파일 또는 디렉토리의 소유자와 그룹을 변경합니다.
  • 예제 : chown user:group file



오늘은 AWS Lightsail 인스턴스 관리를 위한 필수 리눅스 명령어 25가지를 알아보았습니다. 명령어를 통해 시스템을 조작하는 리눅스가 처음이신 분들은 생소한 명령어들로 인해 어려움을 느끼거나 주저하실 수 있습니다. 명령어 사용에 익숙해지기 위해서는 시스템에 직접 접속하여 하나씩 직접 실행해 보고 결과를 확인하는 것이 좋습니다. 다만, rm과 mv와 같이 파일을 삭제하거나 이동시키는 명령어는 의도치 않게 시스템에 영향을 줄 수 있으므로 사용에 주의하시기 바랍니다.