개념
키보드를 이용해 OS와 상호작용하는 SW 메커니즘입니다.
이를 사용하면 텍스트 명령을 입력하여 모든 서버 또는 컴퓨터 시스템에서 프로그램을 구성, 탐색 또는 실행할 수 있습니다.
장점
효율성
- 하나의 명령으로 여러 파일 작업을 수행할 수 있습니다.
- 명령을 숙련되게 사용하면 시스템을 빠르게 탐색하고 조작할 수 있습니다.
- 스크립트를 작성하여 반복 작업을 자동화할 수 있습니다.
원격 엑세스
- 네트워크 자원을 적게 소비하므로 하드웨어 기능이 제한된 시스템이나 원격 서버 환경에 적합합니다.
- 대역폭이 낮은 연결에서도 보안 쉘을 통해 명령을 제출하여 서버를 원격으로 관리할 수 있습니다.
- 그래픽 인터페이스를 사용할 수 없는 헤드리스 환경에서 서버와 클라우드 인스턴스를 관리하는 데 선호됩니다.
문제 해결
- 기본 시스템을 더 깊이 이해하는 데 도움이 됩니다.
- 다양한 도구와 유틸리티를 능숙하게 사용하고 오류 관리가 개선됩니다.
- CLI를 통해 시스템 로그를 보고 포괄적인 오류 메시지와 디버깅 정보를 빠르게 찾을 수 있습니다.
- 텍스트 기반 명령도 쉽게 문서화할 수 있어 작업을 재현하고 향후 문제를 더 쉽게 해결할 수 있습니다.
사용 사례
시스템 관리
- 시스템 관리자는 CLI를 사용하여 시스템 관련 문제를 해결하고, 운영 체제 구성을 확인하며, 원격 시스템의 구성을 변경하거나 업데이트합니다.
- 대규모 명령 및 제어 시스템을 실행할 수 있습니다.
SW 개발
- 소프트웨어 개발자는 CLI 도구를 사용하여 시간을 절약하고 워크플로를 간소화합니다.
- 타사 라이브러리에 대한 참조를 추가할 때 한 번의 명령으로 처리할 수 있습니다.
- 이 접근 방식은 시스템과 상호 작용하는 개발자와 사용자 모두의 시간을 절약합니다.
클라우드 컴퓨팅
- 클라우드 환경에서 CLI는 가상 머신, 컨테이너, 클라우드 서비스 및 서버 구성을 관리하는 데 필수적입니다.
- 개발자와 관리자는 CLI를 사용하여 클라우드 공급자의 API와 상호 작용하고, 리소스 프로비저닝을 자동화하며, 애플리케이션을 배포합니다.
네트워크 관리
- 네트워크 관리자는 CLI를 사용하여 라우터, 스위치, 방화벽 등 네트워킹 디바이스를 구성합니다.
- 네트워크 트래픽을 모니터링하고, 연결 문제를 해결하며, 보안 정책을 구현하는 데 유용합니다.
- 침투 테스터는 CLI 도구를 사용하여 취약성 검사, 네트워크 정찰 및 사고 분석을 수행합니다.
동작원리
쉘
사용자와 OS 사이의 중개자 역할을 합니다.(ex_Bash, cmd.exe, PowerShell 등)
주요기능
- 명령 기록: 화살표 키나 단축키를 사용하여 이전 명령에 액세스할 수 있습니다.
- 입력 및 출력 리디렉션
- 파이핑: 한 명령의 출력을 다른 명령의 입력으로 연결합니다.
- 환경 변수 관리
명령 작동 방식
- 쉘 명령줄 인터프리터는 입력된 명령을 구문 분석하여 구조를 파악하고 명령 이름, 옵션, 인수를 구분합니다.
- 쉘은 사용 가능한 명령 목록에서 명령 이름을 조회합니다. 명령 이름은 수행할 작업을 나타냅니다.
- 시스템의 PATH 변수에서 명령과 관련된 파일을 찾습니다.
- 쉘은 적절한 파일을 호출하고 지정된 옵션과 인수를 입력으로 전달합니다.
- 운영 체제가 필요한 작업을 수행합니다.
- 정보 메시지, 오류 메시지, 요청된 데이터 또는 작업 결과와 같은 출력을 생성합니다.
- 쉘은 출력을 표시하여 명령의 결과를 보여줍니다.
'Dev Ops > 🐈⬛Git' 카테고리의 다른 글
[Git] Git의 기초 (0) | 2024.08.06 |
---|