어쩌다 IT
article thumbnail
반응형

리뷰 (Review)

더보기
  • 절대 경로 지정
    • / 로부터 경로 지정하는 방법
  • 상대 경로 지정
    • . : 현재 디렉토리
    • .. : 이전 디렉토리
    • ~ : 현재 사용자 홈 디렉토리
    • ~<사용자명> : 특정 사용자 홈 디렉토리
  • 사용자
    • id : 현재 사용자 정보 출력
    • id <사용자명> : 지정 사용자 정보 출력
    • whoami : 현재 사용자 ID 출력
    • UID 0번은 root
  • 그룹
    • 사용자는 최소 하나의 그룹에 속한다.
    • GUI 0번은 root 그룹
  • 권한
    • 읽기(Read) / 쓰기(Write) / 실행(eXecute) 권한 결정 필요
    • 실행 권한이 없으면 바이너리 파일이라도 실행 할 수 없고, 권한이 있다면 텍스트 파일도 실행 할 수 있다.
  • shell 기본 명령 형식
    • 명령어 [옵션] [인수]
    • 옵션
      • - 옵션 : 약자 형식의 옵션, 옵션 중첩해서 사용 가능
      • -- 옵션 : 옵션 Full Name 사용, 옵션 중첩 사용 불가능
      • 일부 - 없이 부여되는 옵션도 존재한다.
  • shell 기본 명령어
    • man - 명령어에 대한 매뉴얼 표시
      • man <명령어>
      • man [매뉴얼 페이지 번호] <명령어>
    • ls - list, 특정 디렉토리의 파일 목록 출력
      • ls [옵션] [파일명 또는 디렉토리명]
      • -l : long, 파일 또는 디렉토리 상세 정보 출력
      • -i : inode 번호 출력
      • -a : hidden 파일 포함한 모든 파일 출력
      • -R : 하위 디렉토리 내용 모두 출력
      • -F : 파일 형식에 따라 문자 표시
        • / : 디렉토리 파일
        • @ : Symbolic (Soft) link 파일
        • * : 실행 파일
    • cd - 디렉토리 이동 명령어
      • cd <디렉토리명>
      • cd - : 바로 전 경로로 이동
      • cd, cd ~, cd ~<사용자명> : 사용자 홈 디렉토리로 이동
    • mkdir - 디렉토리 생성 명령어
      • mkdir <디렉토리명>
      • -p : 다중 경로상의 중간 경로 디렉토리 생성 ex) mkdir -p work/first
    • rmdir - 디렉토리 삭제 명령어
      • rmdir <디렉토리명>
    • cp - 파일 복사 명령어
      • cp <원본 파일명> <복사 파일명 or 디렉토리명>
      • cp <원본 파일명> <원본 파일명>... <복사 파일명 or 디렉토리명>
    • mv - 파일 이동 / 이름 변경 명령어
      • mv <이동 파일명> <디렉토리명> - 파일 이동
      • mv <원본 파일명> <새로운 이름의 파일명> - 파일명 변경
    • rm - 파일 삭제 명령어
      • rm <삭제 파일명>
    • cp, mv, rm는 -i 옵션을 통해서 확인할 필요가 있다.

Linux 개요

 

파일 읽기 및 생성

파일 읽기

  • 텍스트 파일에 대하여 파일 내용 확인하는 명령어
  • cat - 텍스트 파일 전체 내용 출력
    • cat [옵션] <텍스트 파일>
      • -n : 입력된 줄 번호 출력
      • -A : 제어 문자 출력
        • 제어 문자 (control character) - 실제 출력되지 않고 특정 기능을 갖는 문자
          • \n : 줄 바꿈, line feed + carriage return, Enter키 입력 시 포함
          • \t : tap 기능
          • \b : backspace 기능
    • more - 텍스트 파일 내용을 페이지 단위로 출력
      • more <텍스트 파일>
        • spacebar : 페이지 단위 출력
        • Enter 키 : 라인 단위 출력
        • q 키 : Quit, 종료
        • /검색어 : 해당 검색어로 검색
        • 파일 내용을 처음부터 마지막으로 내용 출력 (단축키 사용해서 역순으로 돌아가지 못함)
    • less - 텍스트 파일 내용을 페이지 단위로 출력하고 이전 / 이후로 이동이 가능
      • less <텍스트 파일>
        • spacebar, Enter 키, q 키, /검색어 more와 동일
        • j 키, 아래 방향키 : 다음 라인으로 이동
        • k 키, 위 방향키 : 이전 라인으로 이동
        • ctrl + b 키 : 이전 페이지로 이동
    • head - 파일 첫 부분에서부터 일정 개수 내용 출력
      • head [옵션] <텍스트 파일>
        • 기본 출력 10 줄
        • -<라인수> : 지정한 라인수만큼 출력
    • tail - 파일 마지막 부분에서부터 일정 개수 내용 출력
      • tail [옵션] <텍스트 파일>
        • 기본 출력 10줄, -<라인수> head와 동일
        • -f : 파일 내용 출력을 종료하지 않고, 주기적으로 파일 내용 출력 (log 파일 내용 확인시 유용)

텍스트 파일 생성

  • touch
    • touch <텍스트 파일>
    • 기존에 없는 파일인 경우 0 byte 크기의 텍스트 파일 생성
    • 기존 파일의 최종 수정 시간 변경, 파일 내용 변경은 없음
  • ln
    • 하드 링크 (Hard link) 파일 심볼릭 링크 (Symbolic link, Soft link) 파일 생성
    • 하드 링크 파일
      • ln <원본 파일명> <하드 링크 파일명>
      • 원본 파일에 대한 복사본
      • 원본과 동일한 내용을 갖는 파일
      • 원본 파일과 inode 번호 동일
      • 하드 링크 파일이 생성되면 inode block의 하드 링크 수 증가
      • 원본 파일에 변화가 생기면 하드 링크 파일에도 변화된 내용 반영
        → 원본 파일 내용과 하드 링크 파일 내용은 항상 동일 (우리가 아는 복사본 개념이 아님)
      • 원본 파일이 삭제되어도 하드 링크 파일은 그대로 존재
      • 원본 파일에 대한 여러 개의 하드 링크 파일 생성도 가능 (Back-up)
    • 심볼릭 링크 (소프트 링크) 파일
      • ln -s <원본 파일명> <심볼릭 링크 파일명>
      • 원본 파일에 대한 링크 정보만 저장한 파일 (파일 크기가 작다.)
      • 원본 파일과 inode 번호 상이
      • 원본 파일 내용 변해도 반영되지 않는다.
      • 원본 파일이 삭제되면 심볼릭 링크 파일은 원본 파일에 대한 링크만 가지고 있으므로
        원본 파일을 찾을 수 없다.
      • 파일 종류 문자로 l 을 사용한다.
      • Windows O/S의 바로가기와 유사한 기능으로 사용한다.
  • 문서 편집기(텍스트 파일) 또는 컴파일러(compiler, 바이너리 파일) 사용하여 생성

문서 편집기

  • 문서 편집기 (텍스트 편집기)
  • Linux 텍스트 편집기
    • 행 단위 편집기 - line 단위로 문서 내용 입력 및 편집 수행
      • ed / ex - 현재는 잘 사용하지 않음
      • sed - 스트림 편집기
    • 화면 단위 편집기 - 문서를 화면에 표시하고 커서 이동을 통해 문서 내용 입력 및 편집 수행
      • vi / vim - Linux 기본 편집기, 기본 설치
      • nano - 배포판에 따라 설치 필요
      • emacs - GNU 편집기, 설치 필요
      • TeX - 수식 편집기, 설치 필요
    • GUI 편집기 - CLI 환경 위주에서는 사용 불가능
      • gedit - Linux GUI 기본 편집기

  • vi 편집기
    • Linux 기본 편집기
    • 실행 파일 크기가 작다.
    • 화면 단위 편집 기능 제공
    • 단축키를 이용하여 편집 및 에디터 기능 수행
    • 명령 모드와 편집 모드로 구분
      • 명령 모드 - 문서 편집이나 파일 관련 명령 입력 모드, esc 키 입력 후 : 입력하여 명령 모드 진입
      • 편집 모드 - 실제 내용 입력 및 편집 모드
    • 단축키를 사용하여 편집함으로써 편집 속도가 빠른 장점이 있으나
      처음에 사용 방법을 익히는데 다소 어려움이 있다.
    • vi 실행
      • vi(vim) - vi 실행, 편집할 파일은 별도로 지정하지 않음
      • vi(vim) <파일명> - 지정한 파일을 vi로 읽어서 실행
      • 초기 화면은 명령 모드로 실행 됨
    • vi 종료
      • :q - vi 종료 명령어, 현재 편집 내용에 대한 저장이 필요한 경우에는 저장을 해야만 종료된다.
      • :q! - vi 강제 종료 명령어, 저장 유무 상관없이 강제 종료
    • 명령 모드와 편집 모드 전환
      • 명령 모드에서 편집 모드 전환
        • 편집 모드에서 사용하는 단축키 입력
      • 편집 모드에서 명령 모드 전환
        • esc 키 입력 후 : 또는 / 로 명령 입력
    • 커서 이동
      • 방향키 사용
      • h 키(←), j 키(↓), k 키(↑), l 키(→)

  • vi 편집 모드 단축키 (자주 쓰이므로 익숙해질 필요 있음 )
    • 편집 모드에서 명령 모드 전환 시 esc 키
    • 내용 입력
      • i 키 - 현재 커서 위치에 입력
      • a 키 - 현재 커서 위치 다음에 입력
      • 키 - 현재 커서가 위치한 줄 다음 줄에 입력
      • 키 -  현재 줄 Home 위치에 입력
      • 키 - 현재 줄 End 위치에 입력
      • 키 - 현재 커서가 위치한 줄 이전 줄에 입력
    • 내용 수정
      • 키 - 현재 커서 위치 내용 수정, 한 번만 수정
      • R 키 - 수정 상태 진입 (윈도우에서 insert 키 같은 기능), esc 입력 전까지 유효
    • 내용 삭제
      • x 키 - 한 글자 삭제
        • <숫자> x - 입력한 숫자만큼 글자 삭제
      • dd 키, D 키 - 줄 단위 삭제
        • <숫자> dd - 입력한 숫자만큼 줄 삭제
    • 내용 복사
      • yy 키, Y 키 - 줄 단위 복사
        • <숫자> yy - 숫자만큼의 줄 복사
      • v 키 - 범위 지정
        • y 키 - 범위 지정 내용 복사
        • d 키 - 범위 지정 내용 삭제
      • p 키 - 붙여넣기
      • 내용 이동
        • dd, D 키로 잘라내기 후 원하는 위치에서 p 키로 이동
    • 검색 및 바꾸기
      • /<검색 문자열> - 현재 커서 위치 이후로 검색
        • n 키 - 현재 위치에서 파일 끝 방향으로 다음 검색 결과로 이동
        • N 키 - 현재 위치에서 파을 처음 방향으로 이전 검색 결과로 이동
      • :s/<문자열1><문자열2> - 현재 커서 위치에서 첫 번째 찾은 문자열1을 문자열2로 변경
      • :%s/<문자열1><문자열2> - 파일 전체에서 문자열1을 문자열2로 변경
    • 기타 편집 단축키
      • u 키 - Undo (실행 취소)
      • ctrl + r 키 - Redo

  • vi 명령 모드 단축키
    • 편집 내용 저장
      • :w - 처음 vi 실행 시 입력한 파일에 현재 편집 내용 저장
      • :w <파일명> - 지정한 파일명에 현재 편집 내용 저장
      • :wq - 처음 vi 실행시 입력한 파일에 내용 저장 후 vi 종료
    • 새로운 파일 로드
      • :e <파일명> - 파일명에 해당하는 파일 로드, 파일이 없으면 생성
    • 외부 명령 실행
      • :!<외부명령> - vi 실행 상태에서 외부 명령 실행 결과 확인
        • :!sh - 표준 shell 실행, 표준 shell에서 exit 입력하면 다시 vi로 전환
        • :!bash - bash shell 실행, bash에서 exit 입력하면 다시 vi로 전환

  • vi 환경 설정
    • vi 실행 환경과 관련된 여러 내용을 환경 변수에 등록하여 vi 실행시마다 환경 변수 내용을 기반으로 작동
      • 변수 (variable) - 메모리 공간 의미, 원하는 값 저장 및 변경 가능
      • 환경 변수 (environment variable)
        • 명령 또는 응용 프로그램 동작을 원활하게 수행하기 위해 미리 메모리에 저장되어 있는 값
    • set 명령을 통한 환경 변수 확인 및 변경
      • :set all - 전체 환경 변수 내용 출력
      • :set <환경변수>=값 - 환경 변수 내용 변경
      • 현재 vi 상태에서 set 명령으로 환경 변수를 변경하거나 적용하면 실행 중인 vi에서만 적용된다.
      • vi 실행 환경을 사용자가 원하는 형태로 구성하기 위해 별도의 환경 설정 파일을 만들어
        사용자 홈 디렉토리에 저장해 두면vi 실행 시 해당 환경 변수 기반으로 동작한다.
        • .vimrc - vi 환경 설정 파일
        • .exrc - vi 환경 설정 파일
    • 주요 환경 변수 (현재 실습에 적용된 변수)
      • set number - line 변호 표시
      • set tapstop=4 - tap 간격 4칸
      • set ai - auto indent (들여쓰기)
      • set si - smart indent
      • set hlsearch - 검색 시 하이라이트
      • set nocompatible - 방향키 이동 가능하게
      • set ruler - 상태 표시줄에 커서 위치 표시
      • set title - 제목 표시
      • set mouse=a - 커서 이동을 마우스로도 가능하게 설정
      • set bs=indent,eol,start - backspace 사용 가능
      • set showmatch - 매치되는 괄호 표시

TIF

파일 읽기와 쓰기, 어떤 O/S를 쓰든 가장 많이 쓰는 기능이 아닐까 생각한다.

오늘은 vi / vim에 대해서 비중을 많이 두고 배웠다.

편집 모드 단축키는 많이 연습해봐야 할 것 같다.

같이 실습할 때는 큰 어려움 없이 진행했으나 따로 해보지 않으면 시간이 조금만 지나도 헷갈려할 것이 뻔하다.

 

이코테 책이 도착했다.

대충 앞부분만 훑어봤는데 역시 무슨 말인지 전혀 모르겠다.

 

하기로 했던 것들, 해야 할 것들 적당히 페이스 조절하면서 꾸준히 해봐야겠다.

 

 

2022. 08. 10 에 작성된 글입니다.

반응형
profile

어쩌다 IT

@jwlish

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!