본문 바로가기

ETC

알아두면 유용한 기본적인 Linux/Unix 명령

728x90
반응형

Linux/Unix 운영체제에서 자주 사용하는 기본적인 명령어들은 파일 및 디렉토리 관리, 시스템 정보 조회, 프로세스 제어 등 다양한 기능을 제공한다. 

오늘 포스팅에서는 자주 사용하는 기본적인 명령어들에 대해 알아보자.


1. 파일 및 디렉토리 관리

a. ls: 디렉토리의 내용 목록을 출력하는 명령어

  • ls: 현재 디렉토리의 파일과 디렉토리를 나열
  • ls -l: 자세한 정보(권한, 소유자, 크기, 수정 날짜 등)를 포함하여 파일 목록을 출력
  • ls -a: 숨김 파일까지 모두 출력

b. cd: 디렉토리 이동

  • cd [디렉토리 경로]: 해당 경로의 디렉토리로 이동
  • cd ~: 홈 디렉토리로 이동
  • cd ..: 상위 디렉토리로 이동

c. pwd: 현재 작업 중인 디렉토리의 경로 출력

  • pwd: 현재 위치한 디렉토리의 절대 경로를 출력

d. cp: 파일 또는 디렉토리를 복사

  • cp [원본 파일] [대상 경로]: 파일을 다른 위치로 복사
  • cp -r [원본 디렉토리] [대상 경로]: 디렉토리를 재귀적으로 복사

e. mv: 파일 또는 디렉토리를 이동하거나 이름 변경

  • mv [원본 파일] [대상 경로]: 파일을 이동
  • mv [파일명] [새 파일명]: 파일 이름을 변경

f. rm: 파일 또는 디렉토리 삭제

  • rm [파일명]: 파일을 삭제
  • rm -r [디렉토리명]: 디렉토리를 재귀적으로 삭제
  • rm -f [파일명]: 강제로 삭제 (확인 없이)

g. touch: 새로운 파일 생성 또는 파일의 수정 시간을 업데이트

  • touch [파일명]: 빈 파일 생성 또는 기존 파일의 타임스탬프 갱신

h. mkdir: 디렉토리 생성

  • mkdir [디렉토리명]: 새로운 디렉토리를 생성
  • mkdir -p [경로/디렉토리명]: 상위 디렉토리까지 함께 생성

2. 파일 읽기 및 편집

a. cat: 파일 내용을 출력

  • cat [파일명]: 파일 내용을 터미널에 출력
  • cat file1 file2: 두 개의 파일을 연결하여 출력

b. less: 파일 내용을 페이지 단위로 출력

  • less [파일명]: 긴 파일 내용을 페이지 단위로 표시하며, 상하로 스크롤할 수 있음

c. head: 파일의 앞부분을 출력

  • head [파일명]: 파일의 처음 10줄을 출력
  • head -n [줄 수] [파일명]: 지정한 줄 수만큼 출력

d. tail: 파일의 뒷부분을 출력

  • tail [파일명]: 파일의 마지막 10줄을 출력
  • tail -f [파일명]: 파일의 마지막 부분을 계속해서 실시간으로 출력 (로그 파일 확인 시 유용)

3. 시스템 정보 및 상태 확인

a. whoami: 현재 로그인한 사용자 이름을 출력

  • whoami: 현재 로그인된 사용자의 이름을 표시

b. hostname: 현재 시스템의 호스트 이름 출력

  • hostname: 시스템의 호스트 이름을 표시

c. uname: 시스템 정보 출력

  • uname: 운영체제 이름을 출력
  • uname -a: 커널 버전, 시스템 이름, 하드웨어 아키텍처 등 시스템 전체 정보를 출력

d. top: 실시간으로 시스템 프로세스 상태를 보여주는 명령어

  • top: CPU 사용률, 메모리 사용량, 실행 중인 프로세스 등을 실시간으로 표시

e. ps: 현재 실행 중인 프로세스 목록을 출력

  • ps: 현재 사용자 세션에서 실행 중인 프로세스를 출력
  • ps aux: 시스템 전체의 모든 프로세스 정보를 자세히 출력

f. df: 디스크 사용량을 출력

  • df: 파일 시스템의 전체 및 사용 중인 디스크 공간을 출력
  • df -h: 사람이 읽기 쉽게 단위(GB, MB 등)로 디스크 사용량을 표시

g. du: 파일과 디렉토리의 크기 확인

  • du [파일명/디렉토리명]: 파일이나 디렉토리의 크기를 출력
  • du -h [파일명/디렉토리명]: 사람이 읽기 쉽게 단위(GB, MB 등)로 크기를 출력

4. 파일 권한 관리

a. chmod: 파일 또는 디렉토리의 권한을 변경

  • chmod [권한] [파일명]: 파일 권한을 변경 (예: chmod 755 파일명)
  • 권한은 숫자로 표현하며, r=4, w=2, x=1로 계산하여 소유자, 그룹, 기타 사용자에게 부여할 권한을 설정

b. chown: 파일 또는 디렉토리의 소유자와 그룹을 변경

  • chown [사용자] [파일명]: 파일의 소유자를 변경
  • chown [사용자]:[그룹] [파일명]: 소유자와 그룹을 모두 변경

5. 네트워크 관련 명령어

a. ping: 네트워크 연결 상태를 확인

  • ping [호스트명/IP주소]: 지정한 호스트나 IP 주소로 ICMP 패킷을 보내 응답 시간을 확인

b. ifconfig 또는 ip: 네트워크 인터페이스 정보를 확인

  • ifconfig: 네트워크 인터페이스 정보 출력 (Ubuntu 20.04 이상에서는 ip 명령어를 사용)
  • ip addr: IP 주소와 네트워크 상태를 출력

c. netstat: 네트워크 연결, 라우팅 테이블, 인터페이스 상태 등을 출력

  • netstat -tuln: 현재 열려 있는 포트와 네트워크 연결 상태를 표시

6. 패키지 관리 (Ubuntu/Debian 계열)

a. apt: 패키지 설치, 삭제, 업데이트를 관리

  • sudo apt update: 패키지 목록을 업데이트
  • sudo apt upgrade: 설치된 패키지를 최신 버전으로 업그레이드
  • sudo apt install [패키지명]: 새로운 패키지 설치
  • sudo apt remove [패키지명]: 패키지 삭제

7. 기타 유용한 명령어

a. grep: 텍스트 파일에서 특정 문자열을 검색

  • grep [검색할 문자열] [파일명]: 파일에서 특정 문자열을 검색
  • ps aux | grep [프로세스명]: 실행 중인 프로세스 중에서 특정 프로세스를 검색

b. find: 파일을 찾기 위한 명령어

  • find [경로] -name [파일명]: 특정 파일을 해당 경로에서 검색
  • find /home -name "*.txt": /home 디렉토리에서 .txt 파일을 검색

c. tar: 파일 압축 및 압축 해제

  • tar -cvf [압축파일명.tar] [디렉토리명]: 디렉토리를 tar 파일로 압축
  • tar -xvf [압축파일명.tar]: tar 파일의 압축 해제

d. ssh: 원격 서버에 접속

  • ssh [사용자]@[서버 IP 또는 도메인]: 원격 서버에 SSH로 접속

e. history: 이전에 입력한 명령어의 기록을 출력

  • history: 최근 실행한 명령어를 출력
  • !번호: 해당 번호의 명령어를 다시 실행

8. 프로세스 제어

a. kill: 프로세스를 종료

  • kill [프로세스 ID]: 지정한 프로세스 ID(PID)를 가진 프로세스를 종료
  • kill -9 [PID]: 강제 종료(SIGKILL)

b. bg: 백그라운드에서 작업 실행

  • bg: 현재 일시 중지된 작업을 백그라운드에서 실행

c. fg: 백그라운드 작업을 포그라운드로 이동

  • fg: 백그라운드 작업을 포그라운드로 가져와 실행

Linux/Unix 시스템에서 일상적으로 사용하는 명령어들이다. 각 명령어에는 다양한 옵션이 있으니, 필요에 따라 man [명령어]를 입력해 매뉴얼을 참고하는 것도 좋을 것 같다.

728x90
반응형

'ETC' 카테고리의 다른 글

Redis란?  (2) 2024.10.27
JUnit을 활용한 유닛 테스트  (3) 2024.10.26
아키텍처 설계 시 고려해야 할 점  (4) 2024.10.24
MSA 설계 시 고려사항, 개발 도입  (1) 2024.10.23
JPA와 Hibernate를 통한 RDBMS 연계방법  (0) 2024.10.22