Devops 3일차 - CLI, 리눅스

문한성·2023년 3월 9일
0

부트캠프

목록 보기
3/123
post-thumbnail

서버용 운영체제에 리눅스를 많이 쓰는 이유

  • 안정성: 리눅스는 안정성이 높은 운영체제입니다. 이는 서버에서 핵심적인 역할을 수행하는 데이터와 애플리케이션을 보호할 수 있습니다. 리눅스는 서버 장애가 발생할 경우 자동으로 복구되는 기능을 제공합니다.
  • 보안: 리눅스는 보안에 매우 강한 운영체제입니다. 이는 서버에서 처리하는 중요한 데이터를 보호할 수 있습니다. 리눅스는 개발자와 사용자들이 수많은 보안 패치를 만들고 공유하기 때문에 계속해서 발전하고 개선됩니다.
  • 비용: 리눅스는 무료이거나 저렴한 비용으로 사용할 수 있습니다. 이는 기업이나 개인이 쉽게 서버를 운영할 수 있게 합니다.
  • 커뮤니티: 리눅스는 매우 큰 커뮤니티가 존재합니다. 이는 문제가 발생했을 때 빠르게 해결할 수 있도록 돕습니다. 또한 리눅스에는 많은 양질의 문서와 자료가 존재하기 때문에 쉽게 배울 수 있습니다.
  • 다양성: 리눅스는 다양한 하드웨어에서 동작할 수 있습니다. 이는 서버를 구축하는데 있어서 자유도가 높게 구성할 수 있다는 장점이 있습니다.

CLI

CLI (Command Line Interface)는 컴퓨터와 상호작용하는 방법 중 하나입니다. CLI를 사용하는 것은 GUI (Graphical User Interface)를 사용하는 것과는 다른 방식으로 컴퓨터를 제어하고 조작할 수 있습니다. CLI의 장점은 다음과 같습니다.

  • 빠른 작업 속도: CLI는 키보드로 명령어를 입력하여 빠르게 작업을 수행할 수 있습니다. GUI보다 더욱 빠른 작업이 가능합니다.
  • 자동화와 스크립팅: CLI는 자동화와 스크립팅이 용이합니다. 명령어를 스크립트로 작성하여 반복적인 작업을 자동화할 수 있습니다.
  • 효율적인 리소스 관리: CLI는 GUI보다 적은 리소스를 사용합니다. 특히 서버나 클라우드 환경에서는 GUI보다 CLI가 더욱 효율적입니다.
  • 멀티태스킹: CLI는 멀티태스킹이 가능합니다. 여러 개의 CLI 창을 띄워서 작업을 동시에 처리할 수 있습니다.
  • 유닉스 철학: CLI는 유닉스 철학을 따릅니다. 즉, 작은 도구들을 조합하여 큰 문제를 해결하는 방식으로 컴퓨터를 다룹니다. 이러한 방식은 간결하고 효율적인 코드 작성에 도움을 줍니다.
  • 표준화: CLI는 표준화되어 있어서 운영체제나 언어의 종류에 상관없이 사용할 수 있습니다. CLI 명령어는 거의 모든 운영체제에서 동일하게 동작합니다.
  • 학습 곡선: CLI는 GUI보다 학습 곡선이 높습니다. 하지만 CLI를 사용하는 방법을 익히면 더욱 빠르고 효율적으로 작업할 수 있습니다.

위와 같은 이유로 CLI는 프로그래머나 시스템 관리자 등 전문가들이 많이 사용하는 인터페이스입니다.

리눅스 기본적인 명령어

  • pwd : 현재 위치 확인하기
  • mkdir : 새로운 폴더 생성하기
    • mkdir 폴더이름
  • ls : 특정 폴더에 포함된 파일이나 폴더 확인하기
    • ls -l : 폴더인지 파일인지 포맷까지 표기
    • ls -a : 숨어있는 폴더나 파일을 포함한 모든 항목 표기
  • open : 현재 디렉토리 GUI로 열기(OS기준)
    • 우분투는 nautilus
  • cd : 폴더에 진입하기
    • cd 폴더명
      • cd .. : 상위 디렉토리로 이동 ex) /user/jtaewu라면 /user로 이동
      • cd . : 새로고침
      • cd - : 이전에 위치한 폴더로 이동
      • cd ~ : 홈 디렉토리로 이동
  • touch : 파일 생성하기
    • touch 파일이름
  • nano : 텍스트 파일 편집기
    • nano 파일명
    • ctrl + x : 파일 닫기
    • ctrl + s : 파일 저장
  • cat : 파일 내용을 터미널에 출력
    • cat 파일명
  • rm : 폴더나 파일을 삭제할 때 사용
    • rm 파일명 : ls를 이용해 현재 위치에 파일이나 폴더를 확인 후 실행
    • rm -rf 폴더명 : 폴더는 rm의 옵션을 사용해야 지울 수 있음
      • rm -r은 지울 때 사용, rm -f는 질문을 받지않고 지울 때 사용
  • mv : 폴더나 파일의 이름을 변경, 또는 폴더나 파일의 위치 옮기기
    • mv 파일이름 옮길위치(현위치에서 폴더이름/) : 파일 위치 변경
    • mv 파일이름 파일이름 : 파일이름 변경
  • cp : 폴더나 파일을 복사하기
    • cp 원본파일이름 복사할파일이름 : 파일복사
    • cp -rf 원본폴더이름 복사할폴더이름 : 폴더복사
      • cp -r : 하위디렉토리까지 모두 복사
      • cp -f : 복사될 파일 이름이 이미 존재 할 경우, 강제로 덮어쓰기
      • cp -i : 복사될 파일 이름이 이미 존재 할 경우 덮어쓰기 여부를 묻습니다.

절대 경로와 상대 경로

리눅스 파일 시스템에서 경로는 파일이나 디렉토리의 위치를 나타냅니다.

경로는 절대경로와 상대경로로 구분됩니다.

절대경로는 루트 디렉토리(/)에서부터 시작하는 전체 경로를 말합니다.

예를 들어, /home/user/Documents는 루트 디렉토리에서 시작하여 home 디렉토리, user 디렉토리, 그리고 Documents 디렉토리를 통과하는 경로입니다.

절대경로는 항상 동일한 파일이나 디렉토리를 가리키므로, 다른 위치에서도 동일한 경로를 사용할 수 있습니다.

반면에, 상대경로는 현재 작업 디렉토리를 기준으로 경로를 지정합니다.

상대경로는 ./, ../ 등으로 표시되며, 현재 디렉토리(./)나 상위 디렉토리(../)를 나타냅니다.

예를 들어, 현재 디렉토리가 /home/user/Documents이고, 상대경로가 ./file.txt라면 /home/user/Documents/file.txt를 의미합니다.

상대경로는 작업 디렉토리가 변경될 때마다 달라질 수 있으므로, 주의해야 합니다.

절대경로와 상대경로는 모두 파일 시스템에서 경로를 지정하는 방법이지만, 어떤 것을 사용할지는 상황에 따라 다릅니다.

절대경로는 항상 동일한 위치를 가리키므로, 시스템 파일이나 프로그램을 실행하는 경우 유용합니다.

상대경로는 현재 작업 디렉토리를 기준으로 지정되므로, 작업 디렉토리가 변경될 때마다 경로를 수정해야 하는 경우 유용합니다.

리눅스 패키지 매니저란?

리눅스 패키지 매니저는 리눅스 운영 체제에서 소프트웨어 패키지를 설치, 업데이트, 제거할 수 있는 도구입니다.

이 도구는 리눅스 배포판에 따라 다양한 이름과 형태로 제공될 수 있지만, 일반적으로 패키지 매니저는 운영 체제에서 소프트웨어를 관리하는 주요 방법 중 하나입니다.

패키지 매니저는 운영 체제의 레파지토리(repository)에서 사용 가능한 패키지를 검색하고 설치할 수 있습니다.

이 패키지는 일반적으로 운영 체제의 기능을 확장하거나 보완하기 위한 유틸리티, 라이브러리, 드라이버 등을 포함합니다.

패키지 매니저는 사용자가 수동으로 소프트웨어를 다운로드하고 설치하는 번거로움을 덜어주고, 패키지 간의 의존성을 관리하여 시스템 안정성을 유지하는 데 도움이 됩니다.

또한 패키지 매니저는 보안 패치와 같은 업데이트를 자동으로 적용하여 시스템 보안을 강화합니다.

리눅스 배포판마다 패키지 매니저의 사용 방법과 명령어가 조금씩 다를 수 있지만, 일반적으로 터미널에서 명령어를 입력하여 패키지 매니저를 사용할 수 있습니다.

과제

CLI로 ‘test’ 폴더를 만들고, 그 안에 ‘sample.txt’를 생성하는 작업을 하기 위해서는 어떤 명령이 필요한지 적고, 설명하세요.

  • mkdir test - 폴더를 만드는 명렁어 mkdir (폴더명)
  • ls - 현재위치의 파일이나 폴더를 조회
  • cd test - 테스트 폴더 안으로 이동
  • touch sample.txt - 파일을 만드는 명령어 touch (파일명)

리눅스의 디렉토리 구조를 학습하고, 이를 정리하세요.

https://inpa.tistory.com/entry/LINUX-📚-리눅스-디렉토리-구조#주요디렉토리의기능

리눅스에서 모든 것은 파일로 표현된다. 

디렉토리도 파일의 한 종류로서 여러개의 하위 파일이나 디렉토리의 주소들을 담고 있다.

이러한 디렉토리들을 파일을 효율적으로 관리하기 위해 계층적으로 구성하는데 이것을 트리구조라고 한다.

리눅스에서는 수많은 파일을 관리하기 위해 이러한 디렉토리 개념을 사용한다.

모든 디렉토리의 최상위 디렉토리를 루트 디렉토리라고 한다. 루트 디렉토리는 / 으로 표시한다.



profile
기록하고 공유하려고 노력하는 DevOps 엔지니어

0개의 댓글