CLI 기본 명령어

Hwanhoon KIM·2023년 5월 15일
0

기본 CLI 명령어

1. 디렉토리 및 파일 관리

2. 파일 내용 및 편집

3. 시스템 관리

4. 네트워크 관리

5. 프로그램 관리

1 - 디렉토리 및 파일 관리

디렉토리 이동:

cd [디렉토리 경로]: 지정된 디렉토리로 이동합니다.
예시: cd Documents (Documents 디렉토리로 이동)

디렉토리 및 파일 목록 표시:

ls: 현재 디렉토리의 파일과 디렉토리 목록을 표시합니다.
ls [디렉토리 경로]: 지정된 디렉토리의 파일과 디렉토리 목록을 표시합니다.
예시: ls (현재 디렉토리의 목록 표시), ls Documents (Documents 디렉토리의 목록 표시)

ls 옵션

  • ls -l: 자세한 정보를 포함한 긴 형식으로 파일 및 디렉토리 목록을 표시합니다. 파일의 소유자, 권한, 크기, 수정 날짜 등을 확인할 수 있습니다.
  • ls -a: 숨겨진 파일 및 디렉토리를 포함하여 목록을 표시합니다. 숨김 속성이 설정된 파일 및 디렉토리는 일반적으로 "."으로 시작합니다.
  • ls -R: 하위 디렉토리를 재귀적으로 표시합니다. 현재 디렉토리와 하위 디렉토리의 모든 파일과 디렉토리 목록을 표시합니다.
  • ls -t: 파일 및 디렉토리를 수정 날짜 순서로 정렬하여 표시합니다. 가장 최근에 수정된 파일이 먼저 나열됩니다.
  • ls -r: 역순으로 파일 및 디렉토리를 나열합니다. 기본적으로 오름차순으로 정렬되지만, 이 옵션을 사용하면 내림차순으로 정렬됩니다.
  • ls -h: 파일 크기를 사람이 읽기 쉬운 형식으로 표시합니다. 예를 들어, "1K", "5M", "2G"와 같이 표시됩니다.
  • ls -l --color: 파일 및 디렉토리를 색상으로 구분하여 표시합니다. 파일 유형과 권한에 따라 다른 색상을 사용하여 시각적으로 구분할 수 있습니다.
  • ls [파일/디렉토리 경로]: 지정된 경로에 대한 파일 및 디렉토리 목록을 표시합니다. 경로를 지정하지 않으면 현재 디렉토리의 목록을 표시합니다.

디렉토리 생성:

mkdir [디렉토리 이름]: 지정된 이름으로 디렉토리를 생성합니다.
예시: mkdir NewDirectory (NewDirectory라는 이름의 디렉토리 생성)

파일 삭제:

rm [파일 이름]: 지정된 파일을 삭제합니다.
예시: rm myfile.txt (myfile.txt 파일 삭제)

디렉토리 삭제:

rmdir [디렉토리 이름]: 지정된 디렉토리를 삭제합니다. (디렉토리가 비어있어야 함)
예시: rmdir OldDirectory (OldDirectory라는 이름의 디렉토리 삭제)

파일 복사:

cp [원본 파일 경로][대상 파일 경로]: 원본 파일을 대상 파일 경로에 복사합니다.
예시: cp myfile.txt backup/myfile.txt (myfile.txt 파일을 backup 디렉토리에 복사)

파일 이동 또는 이름 변경:

mv [원본 파일 경로][대상 파일 경로]: 원본 파일을 대상 파일 경로로 이동하거나 이름을 변경합니다.
예시: mv myfile.txt newdir/myfile_new.txt (myfile.txt 파일을 newdir 디렉토리로 이동하면서 이름을 myfile_new.txt로 변경)

2 - 파일 내용 및 편집

파일 내용 표시:

  • cat [파일 이름]: 파일의 전체 내용을 표시합니다.
  • more [파일 이름]: 파일의 내용을 한 번에 한 페이지씩 표시합니다. 스페이스바를 눌러 다음 페이지로 이동하거나 "q"를 눌러 종료할 수 있습니다.
  • less [파일 이름]: 파일의 내용을 스크롤 가능한 형태로 표시합니다. 스페이스바, 화살표 키 등을 사용하여 스크롤하거나 "q"를 눌러 종료할 수 있습니다.
  • head [파일 이름]: 파일의 앞 부분 몇 줄을 표시합니다. 기본적으로 처음 10줄을 표시하지만, -n 옵션을 사용하여 원하는 줄 수를 지정할 수 있습니다.
  • tail [파일 이름]: 파일의 뒷 부분 몇 줄을 표시합니다. 기본적으로 마지막 10줄을 표시하지만, -n 옵션을 사용하여 원하는 줄 수를 지정할 수 있습니다.

파일 편집:

  • nano [파일 이름]: Nano 편집기를 실행하여 파일을 편집합니다. Nano는 텍스트 편집을 위한 간단한 명령어 기반 편집기입니다.
  • vi [파일 이름] 또는 vim [파일 이름]: Vim 편집기를 실행하여 파일을 편집합니다. Vim은 강력하고 널리 사용되는 텍스트 편집기입니다. 입문자에게는 처음 사용하기 어려울 수 있습니다.
  • emacs [파일 이름]: Emacs 편집기를 실행하여 파일을 편집합니다. Emacs는 강력한 텍스트 편집기로 다양한 기능과 확장성을 가지고 있습니다.

3 - 시스템 관리

사용자 관리:

  • useradd [사용자 이름]: 새로운 사용자 계정을 생성합니다.
  • passwd [사용자 이름]: 사용자의 암호를 변경합니다.
  • usermod [옵션] [사용자 이름]: 사용자 계정의 속성을 수정합니다. 예를 들어, 사용자의 그룹, 홈 디렉토리 등을 변경할 수 있습니다.
  • userdel [사용자 이름]: 사용자 계정을 삭제합니다.

그룹 관리:

  • groupadd [그룹 이름]: 새로운 그룹을 생성합니다.
  • groupmod [옵션] [그룹 이름]: 그룹의 속성을 수정합니다. 예를 들어, 그룹 이름을 변경하거나 그룹 ID를 변경할 수 있습니다.
  • groupdel [그룹 이름]: 그룹을 삭제합니다.

권한 관리:

  • chmod [옵션] [모드] [파일 이름]: 파일 또는 디렉토리의 권한을 변경합니다. 권한은 숫자나 기호를 사용하여 표현할 수 있습니다.
  • chown [옵션] [사용자:그룹] [파일 이름]: 파일 또는 디렉토리의 소유자와 그룹을 변경합니다.
  • chgrp [옵션] [그룹] [파일 이름]: 파일 또는 디렉토리의 그룹을 변경합니다.

프로세스 관리:

  • ps [옵션]: 현재 실행 중인 프로세스 목록을 표시합니다. 주로 ps aux 또는 ps -ef를 사용하여 자세한 정보와 함께 표시됩니다.
  • top: 현재 실행 중인 프로세스의 실시간 모니터링 정보를 표시합니다.
  • kill [옵션] [프로세스 ID]: 지정된 프로세스를 종료합니다.
  • killall [프로세스 이름]: 지정된 이름의 모든 프로세스를 종료합니다.

서비스 관리:

  • systemctl [옵션] [서비스 이름]: 시스템 서비스의 상태를 확인하고 제어합니다. 예를 들어, 서비스를 시작하거나 중지할 수 있습니다.
  • service [서비스 이름] [옵션]: 시스템 서비스의 상태를 확인하고 제어합니다. - systemctl 명령어와 유사한 기능을 수행합니다.

4 - 네트워크 관리

IP 주소 관리:

  • ifconfig 또는 ip addr show: 시스템의 네트워크 인터페이스 정보, IP 주소, 서브넷 마스크 등을 표시합니다.
  • ifconfig [인터페이스 이름] up/down: 특정 네트워크 인터페이스를 활성화 또는 비활성화합니다.
  • ifconfig [인터페이스 이름] [IP 주소] netmask [서브넷 마스크]: 특정 네트워크 인터페이스의 IP 주소와 서브넷 마스크를 설정합니다.

라우팅 테이블 관리:

  • route 또는 ip route show: 현재 시스템의 라우팅 테이블을 표시합니다.
  • route add default gw [게이트웨이 IP 주소]: 기본 게이트웨이를 설정합니다.
  • route add -net [네트워크 주소] netmask [서브넷 마스크] gw [게이트웨이 IP 주소]: 특정 네트워크의 경로를 추가합니다.

DNS 관리:

  • cat /etc/resolv.conf: 시스템의 DNS 설정을 표시합니다.
  • nslookup [도메인 이름]: 특정 도메인 이름에 대한 IP 주소를 조회합니다.
  • dig [도메인 이름]: DNS 레코드 및 도메인 정보를 자세히 조회합니다.

포트 관리:

  • netstat -tuln 또는 ss -tuln: 열려 있는 포트와 해당 포트를 사용하는 프로세스 목록을 표시합니다.
  • lsof -i :[포트 번호]: 특정 포트를 사용하는 프로세스 정보를 표시합니다.
  • iptables: 방화벽 규칙을 관리하고 설정합니다. (Linux에서)

네트워크 연결 관리:

  • ping [호스트 또는 IP 주소]: 특정 호스트나 IP 주소에 대한 응답 확인을 위해 ICMP 패킷을 보냅니다.
  • traceroute [호스트 또는 IP 주소]: 목적지까지의 경로를 추적하여 네트워크의 통과 지점을 확인합니다.
  • curl [URL]: 지정된 URL로 HTTP 요청을 보내고 응답을 표시합니다.

5 - 프로그램 관리

패키지 관리:

  • apt-get install [패키지 이름]: APT (Advanced Package Tool)를 사용하여 패키지를 설치합니다. Ubuntu 및 Debian 기반 시스템에서 사용됩니다.
  • yum install [패키지 이름]: YUM (Yellowdog Updater Modified)을 사용하여 패키지를 설치합니다. CentOS 및 Fedora 기반 시스템에서 사용됩니다.
  • dnf install [패키지 이름]: DNF (Dandified YUM)을 사용하여 패키지를 설치합니다. 최신 Fedora 및 RHEL 8 이상 버전에서 사용됩니다.
  • brew install [패키지 이름]: Homebrew를 사용하여 macOS에서 패키지를 설치합니다.
  • pip install [패키지 이름]: Python 패키지를 설치합니다. Python 패키지 관리자인 pip를 사용합니다.

프로세스 관리:

  • ps [옵션]: 현재 실행 중인 프로세스 목록을 표시합니다. 주로 ps aux 또는 ps -ef를 사용하여 자세한 정보와 함께 표시됩니다.
  • top: 현재 실행 중인 프로세스의 실시간 모니터링 정보를 표시합니다.
  • kill [옵션] [프로세스 ID]: 지정된 프로세스를 종료합니다.
  • killall [프로세스 이름]: 지정된 이름의 모든 프로세스를 종료합니다.

서비스 관리:

  • systemctl [옵션] [서비스 이름]: 시스템 서비스의 상태를 확인하고 제어합니다. 예를 들어, 서비스를 시작하거나 중지할 수 있습니다.
  • service [서비스 이름] [옵션]: 시스템 서비스의 상태를 확인하고 제어합니다. systemctl 명령어와 유사한 기능을 수행합니다.

로그 관리:

  • tail [옵션] [로그 파일]: 로그 파일의 마지막 내용을 표시합니다. 주로 -n 옵션을 사용하여 표시할 줄 수를 지정할 수 있습니다.
  • grep [패턴] [로그 파일]: 로그 파일에서 특정 패턴을 검색합니다. 패턴 매칭된 줄만 표시됩니다.
  • less [로그 파일]: 로그 파일을 스크롤 가능한 형태로 표시합니다. 검색, 스크롤 등 다양한 기능을 제공합니다.

컴파일 관리:

C/C++ 컴파일:

  • gcc [소스 파일]: C 소스 파일을 컴파일하여 실행 파일을 생성합니다.
  • g++ [소스 파일]: C++ 소스 파일을 컴파일하여 실행 파일을 생성합니다.
  • gcc -o [실행 파일] [소스 파일]: 컴파일된 실행 파일의 이름을 지정하여 생성합니다.
  • g++ -o [실행 파일] [소스 파일]: 컴파일된 실행 파일의 이름을 지정하여 생성합니다.

Java 컴파일:

  • javac [소스 파일]: Java 소스 파일을 컴파일하여 바이트코드(.class 파일)를 생성합니다.

빌드 도구:

  • make: Makefile을 사용하여 프로젝트를 빌드합니다. Makefile은 빌드 프로세스와 의존성 관리를 정의하는 텍스트 파일입니다.
  • cmake: CMakeLists.txt를 사용하여 프로젝트를 빌드합니다. CMake는 플랫폼 독립적인 빌드 자동화 도구입니다.

라이브러리 관리:

  • ar: 정적 라이브러리(.a 파일)를 생성하거나 관리합니다. 주로 C/C++ 라이브러리를 처리하는 데 사용됩니다.
  • ld: 링커를 실행하여 여러 개의 오브젝트 파일을 하나의 실행 파일로 결합합니다.

패키지 관리자:

패키지 관리자는 운영체제 또는 프로그래밍 언어에 따라 다를 수 있습니다. 일반적으로 패키지 관리자는 프로그램의 설치, 업데이트, 제거 등을 관리합니다. 일부 유명한 패키지 관리자는 다음과 같습니다:

  • apt 또는 apt-get: Ubuntu 및 Debian 계열의 Linux에서 사용됩니다.
  • yum: CentOS 및 Fedora 계열의 Linux에서 사용됩니다.
  • dnf: 최신 Fedora 및 RHEL 8 이상 버전에서 사용됩니다.
  • brew: macOS에서 사용되는 패키지 관리자입니다.
  • pip: Python 패키지 관리자입니다.
profile
Frontend Developer, I post about HTML, CSS(SASS, LESS), JavaScript, React, Next, TypeScript.

0개의 댓글