Linux 소개 & 명령어 정리

EBAB!·2023년 7월 9일
0

OS

목록 보기
4/16

Terminal(Linux)

Linux

UNIX 계열 운영 체제 중 하나로, 무료 및 오픈 소스 소프트웨어로 제공되는 운영 체제입니다. 리눅스는 개발자, 시스템 관리자, 서버 운영자, 임베디드 시스템 개발자 등 다양한 사용자에게 널리 사용되고 있습니다. 리눅스는 많은 배포판(Distribution)으로 나뉘어져 있어, 사용자들은 자신의 요구에 맞는 배포판을 선택할 수 있습니다.

  • UNIX란? 유닉스(UNIX)는 범용 멀티태스킹 및 멀티유저 운영 체제로 개발된 컴퓨터 운영 체제입니다. 초기에는 대형 컴퓨터를 위해 개발되었지만, 이후 다양한 플랫폼에서 사용되고 있습니다.

    유닉스 특징

    1. 다중 사용자(Multi-user): 여러 명의 사용자가 동시에 시스템에 접속하여 작업을 수행할 수 있습니다. 각 사용자는 자신만의 개인적인 작업 환경을 가질 수 있습니다.

    2. 다중 작업(Multi-tasking): 여러 개의 프로세스가 동시에 실행되어 서로 간섭 없이 병행적으로 실행될 수 있습니다. 이를 통해 시스템 자원을 효율적으로 활용할 수 있습니다.

    3. 파일 시스템(File System): 파일 시스템이 트리 구조로 구성되어 있으며, 파일 및 디렉터리에 대한 권한과 소유자를 지정하여 파일 관리가 가능합니다.

    4. 쉘(Shell): 사용자와 운영 체제 간의 인터페이스로서, 명령어를 입력하여 시스템을 제어할 수 있는 명령어 인터프리터를 제공합니다.

    5. 네트워킹(Networking): 네트워크 환경에서 다양한 프로토콜과 서비스를 지원하며, 서버 운영 체제로 널리 사용됩니다.

      유닉스는 안정성, 확장성, 보안성 등의 장점을 가지고 있어 다양한 분야에서 사용한다

    • 운영 체제와 서버 시스템
    • 임베디드 시스템
    • 과학 및 연구 분야
    • 네트워크 장비 등등

리눅스 특징

  1. 오픈 소스: 리눅스는 오픈 소스로 개발되어 있어, 소스 코드에 대한 접근과 수정이 가능하며, 커뮤니티에 의한 지속적인 개발과 개선이 이루어집니다.
  2. 다양한 배포판: 리눅스는 다양한 배포판이 존재하며, 사용자가 필요에 맞는 배포판을 선택할 수 있습니다. 대표적인 리눅스 배포판으로는 Ubuntu, Fedora, CentOS, Debian 등이 있습니다.
  3. 안정성과 보안: 리눅스는 안정성과 보안이 높은 운영 체제로 알려져 있습니다. 커뮤니티에 의한 지속적인 검토와 개선이 이루어지며, 다양한 보안 기능과 도구가 제공됩니다.
  4. 다양한 용도: 리눅스는 서버, 워크스테이션, 개발 환경, 임베디드 시스템 등 다양한 용도로 사용됩니다. 특히, 서버 환경에서는 안정성, 확장성, 보안성 등의 장점으로 인해 많이 사용되고 있습니다.
  5. 커스터마이징 가능: 리눅스는 사용자가 필요에 맞게 시스템을 커스터마이징할 수 있는 유연성을 제공합니다. 사용자가 원하는 기능을 선택하여 설치하고, 시스템 설정을 조정할 수 있습니다.
  6. 호환성: 리눅스는 다양한 하드웨어 아키텍처와 호환되며, 다양한 소프트웨어와의 연동이 가능합니다. 또한, 다양한 파일 시스템을 지원하여 데이터의 유연한 관리가 가능합니다.
  7. 비용 저렴성: 리눅스는 무료로 사용할 수 있는 오픈 소스 소프트웨어로, 라이선스 비용이 없습니다. 또한, 하드웨어 요구 사항이 낮아 비용을 절감할 수 있습니다.
  8. 높은 확장성: 리눅스는 모듈화된 아키텍처를 가지고 있어, 필요에 따라 시스템을 확장하고 기능을 추가할 수 있습니다. 이는 서버 환경에서의 확장성과 유연성을 높여줍니다.
  9. 다양한 소프트웨어 지원: 리눅스는 다양한 오픈 소스 소프트웨어와 어플리케이션을 지원합니다. 웹 서버, 데이터베이스, 개발 도구, 그래픽 소프트웨어 등 다양한 분야에서 다양한 소프트웨어를 사용할 수 있습니다.
  10. 활발한 개발 및 업데이트: 리눅스는 지속적으로 개발과 업데이트가 이루어지며, 새로운 기능과 개선 사항이 빠르게 반영됩니다. 사용자들은 최신 버전의 리눅스를 사용하여 최신 기술과 동향을 따를 수 있습니다.

Ubuntu

Ubuntu는 유명한 GNU/Linux 배포판 중 하나로 데스크톱 및 서버 운영 체제로 사용되는 운영 체제입니다.

특징

  • 사용자 친화적인 인터페이스와 다양한 소프트웨어를 제공하여 개인 및 기업 사용자에게 널리 인기가 있습니다.
  • 무료로 사용할 수 있는 오픈 소스 소프트웨어로 기본적으로 Debian을 기반으로 개발되었습니다.
  • 6개월마다 새로운 버전이 출시되며, Long-Term Support (LTS) 버전은 5년 이상의 지원 기간을 제공하여 안정적인 운영 체제를 유지할 수 있도록 지원됩니다.
  • 다양한 데스크톱 환경을 지원합니다.
  • 다양한 소프트웨어와 애플리케이션을 제공하며, Ubuntu 소프트웨어 센터를 통해 쉽게 소프트웨어를 설치하고 관리할 수 있습니다.
  • Ubuntu는 커뮤니티 및 개발자들에 의해 지원되고 있어, 다양한 문제에 대한 커뮤니티 지원 및 개발자 도구를 제공합니다.
  • 서버 운영 체제로도 널리 사용되며, 데이터 센터, 클라우드, 웹 서버, 데이터베이스 서버 등 다양한 서버 환경에서 안정적으로 운영될 수 있습니다. IoT(사물인터넷) 및 임베디드 시스템에서도 널리 사용되어, 다양한 장치에서 활용될 수 있습니다.

Linux Command

  • cd: 현재 디렉토리 변경

    • cd <디렉토리 경로>: 지정한 디렉토리로 이동합니다. 경로는 절대 경로나 상대 경로로 지정할 수 있습니다.
    • cd ..: 상위 디렉토리로 이동합니다.
    • cd -: 이전에 작업하던 디렉토리로 이동합니다.
  • ls: 현재 디렉토리의 파일 목록 보기

    • ls -l: 파일 목록을 자세히 출력합니다. 이 명령어를 사용하면 파일 이름 외에도 파일 권한, 소유자 및 그룹, 파일 크기, 수정한 날짜와 시간 등 자세한 정보를 확인할 수 있습니다.
    • ls -a: 현재 디렉토리의 모든 파일, 디렉토리 및 숨김 파일을 출력합니다. 숨김 파일은 이름이 마침표로 시작하는 파일로, 일반적으로 시스템 파일 또는 설정 파일과 같은 중요한 파일입니다.
    • ls -t: 파일을 수정한 시간순으로 정렬하여 출력합니다. 가장 최근에 수정된 파일이 위쪽에 나타납니다.
    • ls -r: 파일 이름을 역순으로 출력합니다. 이 명령어를 사용하면 가장 최근에 만들어진 파일이 아래쪽에 나타납니다.
    • ls -R: 모든 하위 디렉토리의 파일 목록을 포함하여 현재 디렉토리의 모든 파일 목록을 출력합니다.
    • ls -h: 파일 크기를 인간이 읽기 쉬운 형식으로 출력합니다. 예를 들어, KB, MB, GB 등으로 크기를 표시합니다.
  • cat: 파일 내용 출력

    • cat <파일 이름>: 해당 파일의 내용을 출력합니다.
    • cat -n <파일 이름>: 파일 내용을 출력하면서 각 줄에 번호를 붙입니다.
    • cat -b <파일 이름>: 파일 내용을 출력하면서 비어있지 않은 줄에만 번호를 붙입니다.
    • cat -s <파일 이름>: 파일 내용을 출력하면서 연속된 빈 줄을 하나로 합칩니다.
  • cp: 파일 또는 디렉토리 복사

    • cp <원본 파일> <대상 파일>: 원본 파일을 대상 파일로 복사합니다.
    • cp -r <원본 디렉토리> <대상 디렉토리>: 원본 디렉토리를 대상 디렉토리로 복사합니다. r 옵션은 디렉토리와 그 하위 파일 및 디렉토리를 모두 복사합니다.
    • cp -f <원본 파일> <대상 파일> 또는 cp -rf <원본 디렉토리> <대상 디렉토리>: 복사시 물어보지 않고 덮어쓰기를 수행합니다. r 옵션을 사용할 경우 f 옵션을 함께 사용해야 합니다.
    • cp -i <원본 파일> <대상 파일> 또는 cp -ri <원본 디렉토리> <대상 디렉토리>: 복사하기 전에 사용자에게 덮어쓰기 여부를 물어봅니다. r 옵션을 사용할 경우 i 옵션을 함께 사용해야 합니다.
  • mv: 파일 또는 디렉토리 이동 또는 이름 변경

    • 예시: mv file1 directory1
    • 설명: 현재 디렉토리의 file1directory1로 이동합니다.
    • 예시: mv file1 file2
    • 설명: 현재 디렉토리의 file1의 이름을 file2로 변경합니다.
  • mkdir: 디렉토리 생성

    mkdir 명령어는 디렉토리를 생성합니다.

    • mkdir <디렉토리 이름>: 지정한 이름의 디렉토리를 생성합니다.
    • mkdir -p <디렉토리 경로>: 지정한 경로에 디렉토리를 생성합니다. 만약 경로에 해당 디렉토리가 존재하지 않으면 해당 디렉토리를 생성합니다.
    • mkdir -m <권한> <디렉토리 이름>: 생성한 디렉토리에 권한을 설정합니다. 권한은 숫자로 표시되며, 4(읽기), 2(쓰기), 1(실행)의 합으로 표현됩니다. 예를 들어 m 755는 소유자에게 모든 권한을 부여하고, 그룹 및 기타 사용자에게 읽기 및 실행 권한을 부여합니다.
  • rmdir: 지정된 디렉토리를 삭제.

    디렉토리가 비어 있어야 삭제할 수 있습니다.

    • rmdir -p <directory>: 지정된 디렉토리를 삭제하고, 필요한 경우 상위 디렉토리도 삭제합니다.

    • rmdir --ignore-fail-on-non-empty: 디렉토리가 비어 있지 않아도 삭제를 시도합니다.

    • rmdir --help: 도움말을 출력합니다.

      예시:

      rmdir dir1  # dir1이 비어있는 경우 삭제
      rmdir -p dir1/dir2  # dir1과 dir1/dir2를 모두 삭제
      rmdir --ignore-fail-on-non-empty dir1  # dir1이 비어있지 않아도 삭제를 시도
      
  • rm: 파일 또는 디렉토리 삭제

    • rm <파일 이름>: 해당 이름의 파일을 삭제합니다.
    • rm -r <디렉토리 이름>: 해당 이름의 디렉토리를 삭제합니다. r 옵션은 디렉토리와 그 하위 파일 및 디렉토리를 모두 삭제합니다.
    • rm -f <파일 이름> 또는 rm -rf <디렉토리 이름>: 삭제시 물어보지 않고 바로 삭제합니다. r 옵션을 사용할 경우 f 옵션을 함께 사용해야 합니다.
    • rm -i <파일 이름> 또는 rm -ri <디렉토리 이름>: 삭제하기 전에 사용자에게 삭제 여부를 물어봅니다. r 옵션을 사용할 경우 i 옵션을 함께 사용해야 합니다.
  • touch: 빈 파일 생성 또는 파일 수정 시간 변경

    touch 명령어는 빈 파일을 생성하거나, 이미 존재하는 파일의 수정 시간을 변경합니다.

    • touch <파일 이름>: 지정한 이름의 빈 파일을 생성합니다. 만약 해당 이름의 파일이 이미 존재하면, 해당 파일의 수정 시간을 현재 시간으로 변경합니다.
    • touch -a <파일 이름>: 해당 파일의 마지막 접근 시간을 현재 시간으로 변경합니다.
    • touch -m <파일 이름>: 해당 파일의 마지막 수정 시간을 현재 시간으로 변경합니다.
    • touch -c <파일 이름>: 해당 파일이 존재하지 않으면 아무 작업도 수행하지 않습니다.
    • touch -r <원본 파일> <대상 파일>: 대상 파일의 수정 시간을 원본 파일의 수정 시간으로 변경합니다.
  • locate : 파일 시스템에서 지정된 패턴(문자열)을 포함하는 파일 탐색

    locate 명령어는 파일 시스템에서 지정된 패턴(문자열)을 포함하는 파일을 찾습니다. find 명령어보다 빠르게 실행됩니다.

    • locate <pattern>: 지정된 패턴을 포함하는 파일을 찾습니다.
    • locate -i: 대소문자를 구분하지 않습니다.
    • locate -r <regex>: 정규식 패턴을 사용하여 파일을 검색합니다.
    • locate -c: 찾은 파일의 개수만 출력합니다.
    • locate -e: 찾은 파일 중 존재하는 파일만 출력합니다.
    • locate -S: 각 파일의 크기를 출력합니다.
    • locate --version: locate 명령어의 버전 정보를 출력합니다.
    • locate --help: 도움말을 출력합니다.
  • find :파일 시스템에서 파일을 검색하고, 검색된 파일에 대해 지정된 작업을 수행.

    • find <path> <option> <expression>: 지정된 경로에서 검색 조건에 맞는 파일을 찾습니다.

    • find / -name <name>: 루트 디렉토리부터 시작하여 이름이 일치하는 파일을 찾습니다.

    • find <path> -type <type>: 파일 타입으로 검색합니다.

    • find <path> -size <size>: 파일 크기로 검색합니다.

    • find <path> -user <username>: 파일 소유자로 검색합니다.

    • find <path> -mtime <days>: 최종 수정 시간으로 검색합니다.

    • find <path> -newer <file>: 지정된 파일보다 최근에 수정된 파일을 검색합니다.

    • find <path> -exec <command>: 검색된 파일에 대해 지정된 명령을 수행합니다.

    • find <path> -print: 검색된 파일의 경로를 출력합니다.

    • find <path> -delete: 검색된 파일을 삭제합니다.

      예시:

      find / -name "*.txt" -type f  # 루트 디렉토리부터 시작하여 확장자가 .txt인 파일을 검색
      find /home -user gildong  # /home 디렉토리에서 소유자가 gildong인 파일 검색
      
  • grep: 파일 내용에서 패턴 검색

    • grep <패턴> <파일 이름>: 해당 파일에서 지정한 패턴을 검색합니다.
    • grep -i <패턴> <파일 이름>: 대소문자를 구분하지 않고 검색합니다.
    • grep -v <패턴> <파일 이름>: 해당 패턴이 포함되지 않은 라인을 출력합니다.
    • grep -c <패턴> <파일 이름>: 해당 패턴이 포함된 라인의 개수를 출력합니다.
    • grep -n <패턴> <파일 이름>: 해당 패턴이 포함된 라인의 번호를 출력합니다.
    • grep -r <패턴> <디렉토리 이름>: 해당 디렉토리와 그 하위 디렉토리의 모든 파일에서 패턴을 검색합니다.
  • df: 파일 시스템 별 디스크 사용량과 여유 공간 확인

    • df: 파일 시스템의 디스크 사용량과 여유 공간을 확인합니다.
    • df -h: 사용 용량과 여유 공간을 인간이 읽기 쉬운 형태로 출력합니다.
    • df -T: 파일 시스템의 유형을 함께 출력합니다.
    • df -i: 파일 시스템의 inode 사용량과 여유 공간을 확인합니다.
    • df -a: 파일 시스템의 모든 포인트(마운트 포인트, 특수 파일 등)를 표시합니다.
    • df -x: 지정한 파일 시스템 유형을 제외한 파일 시스템만 표시합니다.
    • df -l: 로컬 파일 시스템만 표시합니다.
    • df -P: 출력을 POSIX 표준 형식으로 표시합니다.
  • du: 디렉토리 및 파일 크기 확인

    • du: 현재 디렉토리의 크기를 확인합니다.
    • du -h: 인간이 읽기 쉬운 형태로 출력합니다.
    • du -s: 디렉토리의 크기를 총합하여 출력합니다.
    • du -a: 디렉토리 내의 모든 파일의 크기를 출력합니다.
    • du -c: 총 크기를 마지막에 출력합니다.
    • du -d <depth>: 디렉토리 탐색의 깊이를 제한합니다.
    • du -x: 다른 파일 시스템에 있는 파일은 무시합니다.
    • du --exclude: 지정한 파일이나 디렉토리를 제외합니다.
  • head: 파일 또는 텍스트에서 처음 몇 줄 출력

    • 예시: head -n 5 file1
    • 설명: file1의 처음 5 줄을 출력합니다.
  • tail: 파일 또는 텍스트에서 마지막 몇 줄 출력

    • 예시: tail -n 5 file1
    • 설명: file1의 마지막 5 줄을 출력합니다.
  • diff :두 파일 사이의 차이점을 비교.

    • diff <file1> <file2>: 두 파일 사이의 차이점을 출력합니다.
    • diff -c <file1> <file2>: 두 파일 사이의 차이점을 컨텍스트 형식으로 출력합니다.
    • diff -u <file1> <file2>: 두 파일 사이의 차이점을 유니파일 형식으로 출력합니다.
    • diff -r <dir1> <dir2>: 두 디렉토리 사이의 차이점을 출력합니다.
    • diff -w <file1> <file2>: 두 파일 사이의 차이점을 공백을 무시하고 출력합니다.
    • diff --brief <file1> <file2>: 파일 사이의 차이점이 있는지 확인합니다.
  • tar: 파일 또는 디렉토리를 아카이브로 묶거나 압축 해제

    • tar -c: 아카이브를 생성합니다.

    • tar -x: 아카이브를 압축 해제합니다.

    • tar -f <파일 이름>: 아카이브 파일 이름을 지정합니다.

    • tar -v: 파일을 아카이브에 추가할 때마다 상세 정보를 출력합니다.

    • tar -z: gzip으로 압축합니다.

    • tar -j: bzip2로 압축합니다.

    • tar -J: xz로 압축합니다.

    • tar -r: 아카이브에 파일을 추가합니다.

    • tar -t: 아카이브에 포함된 파일 목록을 출력합니다.

    • tar --delete: 아카이브에서 파일을 삭제합니다.

    • tar --wildcards: 와일드카드를 사용하여 파일을 선택합니다.

    • tar -C: 특정 디렉토리에서 아카이브를 작업합니다.

      아카이브란 여러 파일을 하나의 파일로 묶는 것을 말합니다. 이렇게 묶어진 파일은 압축하여 용량을 줄일 수도 있습니다. tar 명령어로 아카이브를 생성하거나 압축 해제할 수 있습니다.

  • chmod: 파일 또는 디렉토리의 권한 변경

    chmod 명령어는 파일 또는 디렉토리의 권한을 변경합니다. 권한은 r (읽기), w (쓰기), x (실행)의 3개 옵션으로 표시하며, 각각 소유자(user), 그룹(group), 기타 사용자(other)에 대한 권한입니다. 권한 숫자는 r이 4, w가 2, x가 1의 값을 가집니다. 각 권한을 더한 값이 권한 숫자입니다. 예를 들어, 읽기 및 쓰기 권한이 있는 파일의 권한 숫자는 6(4+2)입니다.

    • chmod <권한 숫자> <파일 이름>: 해당 파일의 권한을 숫자 형태로 변경합니다.

    • chmod <권한 문자> <파일 이름>: 해당 파일의 권한을 문자 형태로 변경합니다. 예를 들어 chmod u+rw <파일 이름>은 소유자에게 읽기 및 쓰기 권한을 부여합니다.

    • chmod ugo+rwx <파일 이름>: 해당 파일에 대해 모든 사용자에게 읽기, 쓰기 및 실행 권한을 부여합니다.

    • chmod -R <권한> <디렉토리 이름>: 해당 디렉토리와 그 하위 파일 및 디렉토리의 권한을 모두 변경합니다.

      예시:

    • chmod 755 file.txt: file.txt 파일에 대해, 소유자는 읽기, 쓰기, 실행 권한을 가지고, 그룹과 기타 사용자는 읽기 및 실행 권한을 가집니다.

    • chmod u=rw,g=r,o= file.txt: file.txt 파일에 대해, 소유자는 읽기 및 쓰기 권한을 가지고, 그룹과 기타 사용자는 권한이 없습니다.

    • chmod ugo+rwx dir: dir 디렉토리와 그 하위 파일 및 디렉토리에 대해, 모든 사용자는 읽기, 쓰기, 실행 권한을 가집니다.

    • chmod -R u+rwX,go+rX dir: dir 디렉토리와 그 하위 파일 및 디렉토리에 대해, 소유자는 읽기 및 쓰기 권한을 가지고, 그룹과 기타 사용자는 실행 권한만 가집니다.

  • chown: 파일 또는 디렉토리의 소유자 변경

    • chown <소유자>:<그룹> <파일 이름>: 해당 파일의 소유자와 그룹을 변경합니다.
    • chown <소유자> <파일 이름>: 해당 파일의 소유자를 변경합니다.
    • chown :<그룹> <파일 이름>: 해당 파일의 그룹을 변경합니다.
    • chown -R <소유자>:<그룹> <디렉토리 이름>: 해당 디렉토리와 그 하위 파일 및 디렉토리의 소유자와 그룹을 모두 변경합니다.
    • chown -R <소유자> <디렉토리 이름>: 해당 디렉토리와 그 하위 파일 및 디렉토리의 소유자를 모두 변경합니다.
    • chown -R :<그룹> <디렉토리 이름>: 해당 디렉토리와 그 하위 파일 및 디렉토리의 그룹을 모두 변경합니다.
  • jobs :현재 실행 중인 작업의 목록을 출력

    • jobs: 백그라운드에서 실행 중인 작업의 목록을 출력합니다.
    • jobs -l: 작업 번호와 PID를 포함하여 자세한 정보를 출력합니다.
    • jobs -n: 상태가 변경된 작업의 목록을 출력합니다.
    • jobs -p: 작업 ID만 출력합니다.
    • jobs -r: 실행 중인 작업의 목록을 출력합니다.
    • jobs -s: 정지된 작업의 목록을 출력합니다.
    • jobs %<job number>: 특정 작업의 정보를 출력합니다.
    • jobs -x: 작업이 종료되면 자동으로 kill 명령어로 종료합니다.
  • kill : 실행 중인 프로세스를 종료

    • kill <PID>: 지정된 PID를 가진 프로세스를 종료합니다.
    • kill -l: 시스템에서 사용 가능한 모든 시그널을 출력합니다.
    • kill -<signal> <PID>: 지정된 시그널을 지정된 PID에게 보냅니다. 예를 들어, kill -9 1234는 PID가 1234인 프로세스에게 SIGKILL 시그널을 보냅니다.
    • killall <process name>: 지정된 프로세스 이름을 가진 모든 프로세스를 종료합니다.
    • pkill <process name>: 지정된 프로세스 이름을 가진 모든 프로세스를 종료합니다.
  • ping : 네트워크 연결 상태를 확인

    • ping <호스트 이름 또는 IP 주소>: 지정된 호스트에 ICMP 패킷을 보내 응답을 확인합니다.
    • ping -c <횟수>: 지정된 횟수만큼 ICMP 패킷을 보내 응답을 확인합니다.
    • ping -i <대기 시간>: ICMP 패킷을 보내기 전 대기 시간을 지정합니다.
    • ping -t: ping을 지속적으로 수행합니다.
    • ping -s <패킷 크기>: 보낼 ICMP 패킷의 크기를 지정합니다.
    • ping -R: 응답 패킷에 대한 경로를 표시합니다.
    • ping -r: 응답 패킷의 수신처를 표시합니다.
    • ping -n: 응답 패킷의 IP 주소를 숫자로 표시합니다.
    • ping -v: 상세 정보를 출력합니다.
  • wget :인터넷에서 파일을 다운로드하기 위해 사용

    • wget <URL>: 지정된 URL에서 파일을 다운로드합니다.

    • wget -c <URL>: 이전에 다운로드한 파일을 이어받아 다운로드합니다.

    • wget -i <file>: 파일에 나열된 URL에서 파일을 다운로드합니다.

    • wget --limit-rate: 다운로드 속도를 제한합니다.

    • wget --mirror: 웹사이트를 미러링합니다.

    • wget -r: 웹사이트를 재귀적으로 다운로드합니다.

    • wget -np: 상위 디렉토리로 이동하지 않습니다.

    • wget -p: 모든 페이지에 필요한 파일을 다운로드합니다.

    • wget -O <output file>: 출력 파일의 이름을 지정합니다.

    • wget --user: 서버에 로그인할 사용자 이름을 지정합니다.

    • wget --password: 서버에 로그인할 비밀번호를 지정합니다.

    • wget --no-check-certificate: SSL 인증서를 검사하지 않습니다.

    • wget --help: 도움말을 출력합니다.

      예시:

      wget <http://example.com/file.txt>  # example.com에서 file.txt 파일을 다운로드
      wget -c <http://example.com/file.txt>  # 이전에 다운로드한 파일을 이어받아 다운로드
      wget -i urls.txt  # urls.txt 파일에 나열된 URL에서 파일을 다운로드
  • uname :현재 운영체제의 정보를 출력

    • uname: 현재 운영체제 이름 출력
    • uname -a: 운영체제 이름, 버전, 호스트 이름 등 모든 정보 출력
    • uname -s: 운영체제 이름 출력
    • uname -n: 호스트 이름 출력
    • uname -r: 운영체제 버전 출력
    • uname -v: 운영체제 릴리즈 정보 출력
    • uname -m: 머신 아키텍처 출력
    • uname -p: 프로세서 타입 출력
    • uname -i: 하드웨어 플랫폼 출력
  • top :시스템의 프로세스 상태를 실시간으로 모니터링

    • top: 프로세스의 상태를 실시간으로 모니터링합니다.
    • top -d <seconds>: 지정된 초마다 프로세스의 상태를 모니터링합니다.
    • top -u <username>: 지정된 사용자의 프로세스만 모니터링합니다.
    • top -p <pid>: 지정된 PID의 프로세스만 모니터링합니다.
    • top -c: 명령어의 전체 이름을 표시합니다.
    • top -o <field>: 지정된 필드를 기준으로 프로세스를 정렬합니다.
    • top -i: 프로세스 ID가 아닌 인덱스를 사용하여 프로세스를 선택합니다.
    • top -H: 멀티스레드 프로세스의 각 스레드를 별도의 프로세스로 표시합니다.
    • top -n <iterations>: 지정된 횟수만큼 반복하여 출력합니다.
    • top -b: 배치 모드로 실행합니다. 상호작용 없이 결과를 출력합니다.
    • top -w: 출력 창의 너비를 조정합니다.
    • top -Z: 프로세스의 SELinux 컨텍스트를 표시합니다.
  • echo :문자열을 출력

    • echo <string>: 지정된 문자열을 출력합니다.
    • echo -n <string>: 지정된 문자열을 출력하지만, 줄 바꿈을 하지 않습니다.
    • echo -e: 이스케이프 문자를 인식합니다.
      • \\n: 줄 바꿈
      • \\t: 탭
      • \\\\: 역슬래시
    • echo $<variable>: 지정된 환경 변수의 값을 출력합니다.
    • echo $?: 이전 명령어의 종료 코드(exit code)를 출력합니다.
    • echo $$: 현재 쉘의 프로세스 ID를 출력합니다.
    • echo -: 이전 명령어에서 사용한 인수(argument)를 출력합니다.
    • echo --help: 도움말을 출력합니다.
  • zip :파일이나 디렉토리를 압축하여 ZIP 파일로 만드는 데 사용

    • zip <output file> <input file/directory>: 파일이나 디렉토리를 지정된 이름의 ZIP 파일로 압축합니다.
    • zip -r <output file> <input directory>: 디렉토리를 지정된 이름의 ZIP 파일로 압축합니다. r 옵션은 디렉토리를 재귀적으로 압축합니다.
    • zip -q: 출력을 표시하지 않습니다.
    • zip -v: 압축할 파일의 이름과 크기를 표시합니다.
    • zip -c: 압축할 파일의 CRC(cyclic redundancy check) 값을 표시합니다.
    • zip -e: 암호화된 ZIP 파일을 만듭니다. 암호는 사용자가 지정합니다.
    • zip -x: 압축에서 제외할 파일이나 디렉토리 목록을 지정합니다.
    • zip -u: ZIP 파일에 새로운 파일을 추가합니다.
    • zip -d: ZIP 파일에서 파일을 삭제합니다.
    • zip -m: 원본 파일을 삭제한 후 압축합니다.
      zip -r backup.zip /home/user/data  # /home/user/data 디렉토리를 backup.zip 파일로 압축
      zip -e -r backup.zip /home/user/data  # /home/user/data 디렉토리를 암호화된 backup.zip 파일로 압축
  • unzip :ZIP 파일에서 파일을 추출하는 데 사용

    • unzip <file>: ZIP 파일에서 파일을 추출합니다.

    • unzip -l <file>: ZIP 파일 내의 파일 목록을 표시합니다.

    • unzip -t <file>: ZIP 파일의 무결성을 테스트합니다.

    • unzip -q <file>: 출력을 표시하지 않습니다.

    • unzip -o <file>: 기존 파일을 덮어씁니다.

    • unzip -d <directory> <file>: 지정된 디렉토리에 파일을 추출합니다.

    • unzip -p <file> <pattern>: ZIP 파일에서 패턴과 일치하는 파일의 내용을 표시합니다.

    • unzip -x <file> <pattern>: ZIP 파일에서 패턴과 일치하지 않는 파일만 추출합니다.

    • unzip --help: 도움말을 출력합니다.

      예시:

      unzip backup.zip  # backup.zip 파일에서 파일을 추출합니다.
      unzip -l backup.zip  # backup.zip 파일 내의 파일 목록을 표시합니다.
      unzip -t backup.zip  # backup.zip 파일의 무결성을 테스트합니다.
  • hostname: 시스템의 호스트네임을 출력하거나 설정.

    • f: FQDN(Fully Qualified Domain Name)을 출력
    • s: 짧은 호스트 이름을 출력
  • useradd: 새로운 사용자 계정을 생성

    • m: 사용자의 홈 디렉토리를 생성
    • s: 사용자의 셸을 설정
    • g: 사용자의 기본 그룹을 설정
  • userdel: 사용자 계정을 삭제

    • r: 사용자의 홈 디렉토리와 메일 박스를 함께 삭제
  • apt-get: APT(Advanced Packaging Tool)를 사용하여 리눅스 패키지를 설치

    • install <package>: 패키지를 설치
    • remove <package>: 패키지를 삭제
    • update: 패키지 목록을 업데이트
    • upgrade: 설치된 패키지를 최신 버전으로 업그레이드
  • nano: 기본적인 텍스트 에디터

    • r: 파일을 읽기 전용 모드로 엽니다.
    • w: 파일을 쓰기 전용 모드로 엽니다.
  • vi: 기본적인 텍스트 에디터

    • :w: 파일을 저장합니다.
    • :q: 에디터를 종료합니다.
    • :wq: 파일을 저장하고 에디터를 종료합니다.
  • jed: 텍스트 에디터

    • batch: 배치 모드로 실행합니다.
    • version: 버전 정보를 출력합니다.
  • alias: 명령어나 명령어 조합에 별칭을 지정

    • p: 현재 정의된 별칭을 출력합니다.
  • unalias: 지정된 별칭을 삭제

  • su: 다른 사용자로 권한을 변경

    • <username>: 권한을 변경할 사용자 이름을 지정합니다.
  • htop: 프로세스 관리 도구

    • d <delay>: 갱신 주기를 지정
    • u <username>: 지정된 사용자의 프로세스만 표시
    • p <pid>: 지정된 PID(Process ID)를 가진 프로세스만 표시
  • ps: 현재 실행 중인 프로세스의 정보를 출력

    • aux: 모든 사용자의 프로세스를 상세하게 출력
    • f: 프로세스 간의 계층 구조를 표시
    • u: 프로세스 소유자의 이름과 실행 시간 등 자세한 정보를 출력
  • ssh: 원격 서버에 보안 셸 연결

    ssh 명령어는 원격 서버에 보안 셸 연결을 제공합니다. 다음은 ssh 명령어의 일부 옵션입니다.

    • ssh <user>@<hostname>: 호스트 이름과 사용자 이름을 지정하여 원격 서버에 연결합니다.
    • ssh -p <port> <user>@<hostname>: 호스트 이름, 포트 및 사용자 이름을 지정하여 원격 서버에 연결합니다.
    • ssh -i <identity_file> <user>@<hostname>: 키 파일을 사용하여 원격 서버에 연결합니다.
    • ssh -X <user>@<hostname>: X11 포워딩을 사용하여 원격 서버에 연결합니다.
    • ssh -L <local_port>:<remote_host>:<remote_port> <user>@<hostname>: 로컬 포트를 리모트 호스트의 리모트 포트로 포워딩합니다.
    • ssh -D <local_port> <user>@<hostname>: SOCKS 프록시를 사용하여 로컬 포트에 대한 포워딩을 설정합니다.
    • ssh -N <user>@<hostname>: 백그라운드에서 SSH 연결을 엽니다.
    • ssh -T <user>@<hostname>: 명령을 실행하지 않고 원격 호스트에 연결합니다.
    • ssh -C <user>@<hostname>: 데이터를 압축하여 전송합니다.
  • rsync: 로컬 및 원격 파일 및 디렉토리 동기화

    • rsync <소스> <대상>: 로컬 파일 또는 디렉토리를 다른 로컬 경로 또는 원격 호스트로 복사합니다.
    • rsync -a: 아카이브 모드로 파일 및 디렉토리를 복사합니다. 소유자, 그룹, 권한, 타임스탬프와 같은 메타데이터가 유지됩니다.
    • rsync -r: 하위 디렉토리를 포함하여 디렉토리를 복사합니다.
    • rsync -v: 작업 진행 상황을 자세하게 출력합니다.
    • rsync -h: 파일 크기 등을 인간이 읽기 쉬운 형태로 출력합니다.
    • rsync -z: 파일을 전송하기 전에 압축합니다.
    • rsync -P: 작업 진행 상황을 자세하게 출력하면서, 중단한 작업을 이어서 진행할 수 있도록 합니다.
    • rsync -u: 대상 파일이 소스 파일보다 오래된 경우에만 복사합니다.
    • rsync -i: 변경된 파일만 복사합니다. 변경된 파일을 출력합니다.
    • rsync --delete: 대상 디렉토리에 소스 디렉토리에 없는 파일이 있다면 삭제합니다.
    • rsync -e: SSH 연결에 사용할 명령어를 지정합니다.
    • rsync --exclude: 복사에서 제외할 파일이나 디렉토리를 지정합니다.
    • rsync --include: 제외할 파일이나 디렉토리 중에서 복사할 목록을 지정합니다.
    • rsync --dry-run: 실제로는 실행하지 않고 작업 내용을 출력합니다.
  • ifconfig: 네트워크 인터페이스 구성 정보 확인

    • ifconfig: 모든 인터페이스의 상태를 표시합니다.
    • ifconfig <인터페이스 이름>: 특정 인터페이스의 상태를 표시합니다.
    • ifconfig -a: 모든 인터페이스의 상태를 표시합니다. 단, 비활성화된 인터페이스도 표시됩니다.
    • ifconfig -s: 간단한 통계 정보를 표시합니다.
    • ifconfig -v: 자세한 정보를 표시합니다.
    • ifconfig <인터페이스 이름> up: 특정 인터페이스를 활성화합니다.
    • ifconfig <인터페이스 이름> down: 특정 인터페이스를 비활성화합니다.
    • ifconfig <인터페이스 이름> <IP 주소>: 특정 인터페이스에 IP 주소를 할당합니다.
    • ifconfig <인터페이스 이름> netmask <넷마스크>: 특정 인터페이스에 넷마스크를 설정합니다.
    • ifconfig <인터페이스 이름> broadcast <브로드캐스트 주소>: 특정 인터페이스에 브로드캐스트 주소를 설정합니다.
    • ifconfig <인터페이스 이름> mtu <MTU>: 특정 인터페이스의 MTU(Maximum Transmission Unit) 값을 설정합니다.
    • ifconfig <인터페이스 이름> hw <MAC 주소>: 특정 인터페이스의 MAC 주소를 변경합니다.
  • traceroute: 네트워크 경로 추적

    • 예시: traceroute example.com
    • 설명: example.com까지의 네트워크 경로를 출력합니다.
  • awk: 파일 또는 텍스트에서 특정 패턴 찾기 및 처리

    • awk '<pattern> {<action>}' <file>: 파일에서 패턴을 찾고 해당 패턴에 대해 지정된 작업을 수행합니다.
    • awk '/<pattern>/ {<action>}' <file>: 파일에서 정규식 패턴을 찾고 해당 패턴에 대해 지정된 작업을 수행합니다.
    • awk '{<action>}' <file>: 파일의 각 줄에 대해 지정된 작업을 수행합니다.
    • awk -F: 필드 구분자를 지정합니다.
    • awk -v: 변수를 정의합니다.
    • awk 'BEGIN {<action>}': 처리 전에 실행할 작업을 지정합니다.
    • awk 'END {<action>}': 처리 후에 실행할 작업을 지정합니다.
    • awk '{print $<number>}': 지정된 필드(열)의 값을 출력합니다.
    • awk '{<expression>}: 지정된 표현식을 평가하고 결과를 출력합니다.
    • awk '{printf <format>, <expr1>, <expr2>, ...}': 지정된 형식으로 출력합니다.
  • sort: 파일 또는 텍스트 정렬

    • sort: 오름차순으로 정렬합니다.
    • sort -r: 내림차순으로 정렬합니다.
    • sort -n: 숫자로 정렬합니다.
    • sort -k <field>: 지정된 필드를 기준으로 정렬합니다.
    • sort -t <delimiter>: 필드 구분자를 지정합니다.
    • sort -u: 중복 라인을 제거합니다.
    • sort -c: 파일이 정렬되어 있는지 검사합니다.
    • sort -f: 대소문자를 구분하지 않습니다.
    • sort -o <output>: 정렬 결과를 지정된 파일에 출력합니다.
    • sort --help: 도움말을 출력합니다.
  • uniq: 파일 또는 텍스트에서 중복 라인 제거

    • 예시: uniq file1
    • 설명: file1에서 중복 라인을 제거합니다.
  • cut: 파일 또는 텍스트에서 열 추출

    cut 명령어는 파일 또는 텍스트에서 지정된 열만 추출합니다.

    • cut -f <number>: 지정된 필드(열)를 추출합니다.

    • cut -f <number>-<number>: 지정된 범위(열)를 추출합니다.

    • cut -f <number>,<number>: 지정된 필드(열)을 쉼표로 구분하여 추출합니다.

    • cut -c <number>: 지정된 문자(열)를 추출합니다.

    • cut -c <number>-<number>: 지정된 범위(문자)를 추출합니다.

    • cut -d <delimiter>: 필드 구분자를 지정합니다.

    • cut -s: 구분자가 없는 라인(행)을 제외합니다.

    • cut --complement: 지정된 열을 제외한 나머지 열을 추출합니다.

    • cut --output-delimiter: 출력 구분자를 지정합니다.

    • cut --help: 도움말을 출력합니다.

      예시:

      cut -d ',' -f 1,3 file.csv  # file.csv에서 1, 3번째 열 추출
      cut -c 1-5 file.txt  # file.txt에서 1~5번째 문자 추출
      
  • paste: 파일 또는 텍스트에서 열 병합

    • paste: 파일의 열을 병합합니다. 구분자는 탭(\t) 문자로 지정됩니다.

    • paste -d <delimiter>: 병합 시 사용할 구분자를 지정합니다.

    • paste -s: 파일의 모든 행을 하나의 행으로 병합합니다.

    • paste <file1> <file2>: 두 파일의 열을 병합합니다. 구분자는 탭(\t) 문자로 지정됩니다.

      예시:

      paste file1 file2  # file1과 file2의 열을 병합
      paste -d ',' file1 file2  # file1과 file2의 열을 쉼표로 구분하여 병합
      paste -s file1  # file1의 모든 행을 하나의 행으로 병합
  • patch: 파일에 변경 내용 적용 patch 명령어는 파일에 변경 내용을 적용합니다.
    • patch <original file> <patch file>: 원본 파일에 패치 파일의 변경 내용을 적용합니다.

    • patch -p<n>: 패치 파일의 경로에서 단계를 제거합니다.

    • patch -R: 변경 내용을 되돌립니다.

    • patch -u: 패치 파일을 유닉스 표준 형식으로 지정합니다.

    • patch -i <patch file>: 지정된 패치 파일을 사용하여 변경 내용을 적용합니다.

    • patch -o <output file>: 변경 내용을 출력 파일에 저장합니다.

    • patch --dry-run: 변경 내용을 적용하지 않고 테스트합니다.

    • patch --help: 도움말을 출력합니다.

      예시:

      patch file.txt patch.diff  # file.txt에 patch.diff 파일의 변경 내용 적용
      patch -p1 < patch.diff  # patch.diff 파일에서 경로에서 첫 번째 디렉토리를 제거한 후 변경 내용 적용
      patch -R file.txt patch.diff  # file.txt의 변경 내용을 되돌림

Tip

  • clear : 터미널 화면을 지우기
  • 명령어에 인자를 입력한 후 Tab 버튼을 눌러 자동 완성 기능을 사용
  • Ctrl + C : 실행 중인 명령을 종료
  • Ctrl + Z : 작업 중인 명령을 일시 중단
  • Ctrl + S : 터미널을 일시적으로 정지
  • Ctrl + Q : 터미널 정지를 취소
  • Ctrl + A : 명령어 라인의 시작으로 이동
  • Ctrl + E : 명령어 라인의 끝으로 이동
  • 한 줄에 여러 개의 명령어를 실행할 때 ;를 사용하여 구분
  • 이전 명령이 성공한 경우에만 다음 명령어가 실행되도록 연결하는 &&를 사용
profile
공부!

0개의 댓글