포스트

리눅스 (1) - 기초 명령어

리눅스 (1) - 기초 명령어

우분투 리눅스 기준으로 글을 작성한다.


Linux의 특징

  • Linux는 공개 소프트웨어이며 무료로 사용
  • 유닉스와의 호환성을 유지
  • 서버용 운영체제로 많이 사용
  • 편리한 GUI 환경을 제공

Linux 구조

  • 커널(kernel): 프로세스/메모리/파일 시스템/장치 관리
  • shell: 사용자 인터페이스
  • application

가상환경에 Linux 돌리기

mac os에서는 UTM을 사용한다.

https://ubuntu.com/download/server 위의 사이트에서 26.04 LTS 를 다운로드 받는다.

UTM에서 가상환경 설정을 할 때 iso 이미지를 base로 한다.

SSH를 이용한 외부 접속: 포트포워딩

내가 쓰는 원래 os에서 접근하려면 포트포워딩이 필요한데 UTM에서는 자동으로 해준다고 한다.

ssh etakyung@192.168.64.6 으로 접근이 된다.

1
2
3
4
5
6
sudo apt update
sudo apt install openssh-server # SSH 설치
sudo systemctl status ssh
sudo systemctl start ssh # 아직 시작이 안되었다면 치기
sudo ufw allow ssh # 방화벽에서 포트 개방
hostname -I # IP 확인

포트 포워딩을 한다면

  • NAT을 사용하는 경우
    • 가상머신을 선택한 후 설정을 클릭하고 네트워크 탭으로 이동
    • 포트포워딩을 누르고 추가
    • 호스트IP: 현재 컴퓨터의 실제 IP
    • 호스트포트: 접속하고자 하는 포트번호
    • 게스트 IP: 가상 머신에 설치된 리눅스의 IP
    • 게스트 포트: ssh의 기본 포트인 22
  • 외부에서 접속
    • ssh 계정@IP -p 포트번호
    • 포트번호가 22번 인 경우는 -p 옵션은 생략 가능

기본 명령어

1
etakyung@linuxv1:~$

위와 같은 형태로 프롬프트가 생긴다.

etakyung: 현재 접속한 사용자 계정 linuxv1: 현재 컴퓨터 ~: 현재 디렉토리로 사용자의 홈 디렉토리

1. 디렉토리 이동 및 위치 확인

  • pwd (Print Working Directory): 현재 위치한 디렉토리의 절대 경로 출력
  • cd (Change Directory): 디렉토리 이동
  • cd ~ : 홈 디렉토리로 이동
  • cd .. : 상위 디렉토리로 이동
  • cd - : 이전 디렉토리로 이동

2. 파일 및 디렉토리 조회

  • ls (List): 현재 디렉토리의 파일 및 폴더 목록 조회
  • ls -l : 상세 정보(권한, 소유자, 크기, 수정일 등) 포함 출력
  • ls -a : 숨김 파일( .으로 시작하는 파일) 포함 출력
  • ls -la : 상세 정보와 숨김 파일 모두 출력

3. 파일 및 디렉토리 생성 / 삭제 / 관리

  • mkdir (Make Directory): 새 디렉토리 생성 (mkdir -p path/to/dir 옵션으로 하위 디렉토리까지 일괄 생성)
  • touch: 빈 파일 생성 또는 파일의 수정 시간 업데이트
  • rm (Remove): 파일 또는 디렉토리 삭제
  • rm -r : 디렉토리 및 내부 내용 삭제
  • rm -rf : 경고 없이 강제 삭제 (주의 필요)

  • cp (Copy): 파일/디렉토리 복사 (cp -r 디렉토리 복사)
  • mv (Move): 파일/디렉토리 이동 또는 이름 변경

4. 파일 내용 확인 및 편집

  • cat (Concatenate): 파일 내용 전체 출력
  • less / more: 파일 내용을 페이지 단위로 끊어서 조회 (대용량 파일 조회 시 유용)
  • head: 파일의 앞부분 일부 출력 (기본 10줄)
  • tail: 파일의 뒷부분 일부 출력 (tail -f 옵션으로 로그 실시간 감시)
  • nano / vim: 터미널 기반 텍스트 에디터

5. 권한 및 소유권 변경

  • chmod (Change Mode): 파일/디렉토리의 읽기(r)·쓰기(w)·실행(x) 권한 변경 (예: chmod 755 script.sh)
  • chown (Change Owner): 파일/디렉토리의 소유자와 그룹 변경 (예: chown user:group file.txt)

6. 시스템 상태 및 프로세스 확인

  • ps (Process Status): 현재 실행 중인 프로세스 확인 (ps aux, ps -ef)
  • top / htop: 실시간 CPU, 메모리 사용량 및 프로세스 모니터링
  • df (Disk Free): 디스크 용량 확인 (df -h로 읽기 쉬운 단위 표시)
  • du (Disk Usage): 파일/디렉토리별 사용 용량 확인 (du -sh *)
  • free: 메모리(RAM) 사용량 확인 (free -h)

7. 검색 및 필터링

  • grep: 파일 내부 또는 출력 결과에서 특정 문자열/패턴 검색 (예: cat log.txt | grep "ERROR")
  • find: 파일 시스템에서 이름, 크기, 수정일 등의 조건으로 파일 검색 (예: find . -name "*.txt")

8. 시간 확인 및 설정

  • date : 시스템의 현재 날짜와 시각 출력
  • timedatectl : 시스템 시계, 타임존(Timezone), 시간 동기화 상태 등 상세 정보 확인
    • timedatectl list-timezones : 설정 가능한 타임존 목록 조회
    • sudo timedatectl set-timezone Asia/Seoul : 타임존 변경 (예: 서울 기준)

9. 별칭(Alias) 관리

  • alias : 현재 설정된 명령어 별칭 목록 확인
  • alias 별명='원래 명령어' : 긴 명령어나 자주 쓰는 옵션을 간단한 별칭으로 등록 (예: alias ls=’ls -al’)
  • type 명령어 : 해당 명령어가 일반 명령어인지, 별칭(alias)인지 확인
  • unalias 별명 : 등록된 별칭 삭제
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.