Web 공부/Shell

Shell

sumiin 2022. 3. 17. 19:46
반응형
SMALL

Shell& Shell Editors

  • 컴퓨터
    • 하드웨어
    • 소프트웨어
  • 소프트웨어
    • 시스템 s/w : 사용자들의 지시를 하드웨어와의 소통을 통해서 수행시켜주는 프로그램들의 집합
    • 응용 s/w

(= 운영체제 (OS): 모여있는 프로그램의 집합 )

  • 운영체제 (공통적으로 프로그램 내재시켜놓음)
    • 커널 공간 : 하드웨어와의 소통을 주관하는 공간
    • 사용자 공간 : 사용자와 직접적으로 연결된 공간
      • 사용자 공간과 커널공간들은 운영체제 안에서 형성
      • 자주 볼 수 있는 운영체제 : windows,mac,linux 운영체제
  • Shell: 커널 공간과 사용자 공간을 이어주는 역할을 하는 것
  • 사용자가 소프트웨어를 직접 실행시키고 싶거나 하드웨어의 직접적인 명령을 하고 싶을 떄 사용자 공간에서 커널 공간에 내리는 명령을 shell이라는 곳에서 진행하는 것
  • Shell 명령어: 사용자 공간에서 커널 공간에 내리는 명령어
  • CLI (Command Line Interface) : 명령어 라인을 치는 공간
    ex) Command prompt( 까만창, 마우스 X)
  • GUI (Graphical User Interface) : 그래픽 환경으로 된 사용자 공간
    ex) Window 바탕화면 (마우스 사용 제어)

->CLI와 GUI를 통해 커널 공간에 명령을 내릴 수 있음)

  • wsl : 리눅스용 윈도우 하위 시스템
  • pwd (Print working directory) : 현재 작업중인 디렉터리 출력
  • cd(Change Directory) : 디렉터리(경로) 이동
  • ls(List) : 디렉터리 목록 확인
  • cp(Copy) -파일 또는 디렉터리 복사
  • mv(Move) : 파일 혹은 디렉터리의 이동 ( cd랑 사용법 비슷)
  • mkdir(Make directory) : 디렉터리의 생성
  • rm(remove) : 파일이나 디렉터리를 삭제
    ex) rm -d kay -> kay라는 디렉토리를 지움
  • cat(concatenate) : 단순 파일 내용 출력 , 파일의 조작
    ex) cat jay.txt -> 빈 파일일 경우. 아무것도 출력 안됨
    cat > jay.txt 입력 후 Enter, 밑 줄에 문장 입력 후, ctrl+d를 누르면 파일에 문장 입력 가능
    다시 cat jay.txt 입력 시, 문장이 들어간 것을 알 수 있음
  • help, man : 다양한 명령어의 도움말 확인 (man이 더 구체적인 사용법)
  • Find : 리눅스에서 파일 및 디렉토리를 검색할 때 사용하는 명령
  • 일반적인 리눅스 파일 시스템은 그 구조가 매우 복잡하여 현재 디렉토리에 있는 파일을 찾기 위해 find 명령을 사용하는 경우는 드물고, 지정된 디렉토리에 포함된 디렉토리 및 패턴으로 지정된 파일 이름으로 파일을 찾는 경우가 많음 (현재 디렉토리에 있는 파일 검색은 주로 ls 명령 사용) 이에 따라 find 명령에 사용하는 옵션도 조금 더 복잡하게 지정, 보통 아래의 기본 형식을 변형해서 사용
    $ find . -name "FILE"
  • 파이프라인 : 앞 명령어 수행의 결과를 받아 다음 명령어 수행
  • 앞의 출력 결과를 뒤에 실행하는 명령어의 입력으로 보내줌으로 인해 파이프(|)를 사용하면 여러 명령을 동시에 연결해서 사용 가능
  • Grep: 입력으로 전달된 파일 내 지정 문자열 찾아 출력 ( grep이 파일의 문자열을 검색할 때, 단순 문자열 매칭이 아닌 정규 표현식(Regular Expression)에 의한 패턴 매칭(Pattern Matching) 방식을 사용)
    $ grep [OPTION] [PATTERN] [FILE]
  • Window 운영체제 : windows power shell(cmd 보다 고급화)
  • Linux 운영 체제: 구름 IDE이용하여 실습 / WSL(ver.2)를 이용하여 실습
  • power Shell의 세 가지 주요 Cmdlet( command let : 동사와 명사를 /로 구분)
    • Get -Command : 현재 컴퓨터에 사용 가능한 명령어를 검색하고 싶을 떄
    • Get- Help : 명령어를 어떻게 사용해야 하는지 알아볼 때 (-detailed) 명령어를 통해 옵션 확인도 가능)
    • Get-Member : 개체 유형의 정식 이름과 멤버의 목록을 보고싶을 때 출력 값이 어떤 개체들로 이루어져 있는지 알아봄
      ex) get-command | get-member -> get-command 중 개체들만 정리해서 가져옴
  • 리눅스 상에서의 문서 편집기의 종류 및 특징
  • VI
  • VI 시작 -> 명령 모드로 시작
  • 명령 모드 : -커서이동 -줄, 글자 삭제, 복사 -'i','a' 누를 경우, 입력 모드로 전환) - ':'누르면 마지막 행 모드로 전환
    • zz (대문자)- 작업한 내용을 저장하고 vi를 종료
    • i- 현재 커서 자리에 입력
    • a- 현재 커서 다음 자리에 입력
    • : - 마지막 행 모드로 전환
  • 입력 모드 : - 문자의 입력 -esc 누르면 명령 모드로 전환
  • 마지막 행 모드: -저장 및 종료 -'q', 'q!', 'wq' 누르면 vi 종료 -esc 누르면 명령모드로 전환
    • q - 작업한 것이 없을 시 종료
    • q! - 작업한 내용을 저장하지 않고 종료
    • w(파일명) - 현재 작업한 내용을 저장만 한다. 파일명을 입력시 다른 이름으로 저장
    • wq - 작업한 내용을 저장하고 종료
    • wq! - 작업한 내용을 저장한 뒤 강제로 종료
  • 추가기능
  1. 커서 이동하기 : GUI 환경에서 마우스나 화살표키로 커서를 바꿀 수 있다면, vi에선 'k'(up), 'l'(right),'h'(left),'j'(down) 으로 변경 가능
  2. 명령 취소하기 : 삭제나 수정을 잘못할 경우 ctrl+z가 아닌 u를 눌러 명령을 취소할 수 있음
    (padn 과 pgup 을 통해 스크린을 위아래로 바꾸기 가능)
  3. 복사, 자르기, 붙여넣기 : 명령 모드에서 아래 명령 키를 입력하여 복사, 자르기, 붙여넣기를 할 수 있음
    • yy : 커서가 위치한 행(가로줄)을 복사, 명령 앞에 숫자를 입력시 입력 숫자만큼의 행을 복사
    • dd : 커서가 위치한 행(가로줄)을 잘라냄 , 명령 앞에 숫자를 입력시 입력 숫자만큼의 행을 잘라냄
    • p : 커서가 위치한 행의 아래쪽에 붙여넣음
  4. 문자열 검색하기
    • 기존 -> ctrl+F 로 검색
    • /문자열 : 아래방향으로 문자열 검색
    • ?문자열: 위 방향으로 문자열 검색
    • 기존 찾던 방향으로 계속 문자열을 찾을 경우 'n', 반대 방향으로 문자열을 찾을 경우 'N'
반응형
LIST