Data Scientist

리눅스

[Lecture Review] 한줄정리

1. vi 에디터

에디터는 입력모드 ⇄ 일반모드 ⇄ 명령모드를 이동하며 원하는 파일을 작성/수정/저장/삭제하는 것이다. 각 모드는 ESC키를 이용하여 이동한다. 기본적으로 입력모드에서 마지막 입력한 글자에 커서가 위치하게 된다.

  • 일반모드

    명령어 의미 명령어 의미
    I 현재 행 처음에 입력 i 왼쪽에 입력
    a 오른쪽에 입력 A 현재 행 마지막에 입력
    o 다음 행에 빈줄 생성하여 입력 O 이전 행에 빈줄 생성하여 입력
    s 한 문자 삭제 후 입력 S 한 행 삭제 후 입력
    R 입력모드로 변경    
    u 되돌리기(실행취소) U 행에서 했던 모든 명령 취소
    h,j,k,l ⇦ ⇩ ⇧ ⇨    
    w 다음 단어 첫 글자로 이동 [n]w n단어 다음 단어 첫 글자로 이동
    b 이전 단어 첫 글자로 이동 [n]b n단어 이전 단어 첫 글자로 이동
    e 현재 단어 마지막 글자로 이동    
    H 처음 행 첫 글자로 이동 L 마지막 행 첫 글자로 이동
    M 중간 행 첫 글자로 이동    
    - 윗 행 첫 글자로 이동 + 아래 행 첫 글자로 이동
    0,^ 현재 행의 첫 글자로 이동 $ 현재 행의 마지막 글자으로 이동
    G 문서의 마지막 행으로 이동 [n]G n번째 행으로 이동
    g 문서의 처음 행으로 이동    
    ~ 한 문자 대소문자 변환    
    y 한 문자 복사 [n]y n개 문자 복사
    yy 한 행 복사 [n]yy n개 행 복사
    x 한 문자 삭제 [n]x 다음 n개 문자 삭제
    dw 현재 단어 삭제 [n]dw 다음 n개 단어 삭제
    d⇦ 왼쪽 문자 삭제 d⇨ 오른쪽 문자 삭제
    d⇩ 현재 행과 다음 행 삭제 d⇧ 현재 행과 이전 행 삭제
    dd 현재 행 잘라내기 [n]dd 아래 n개 행 잘라내기
    D 현재 위치부터 끝까지 삭제    
    p 위쪽으로 행 붙여넣기 P 아래쪽으로 행 붙여넣기
    r [s] 현재 문자를 s로 수정    
    cw [word] 현재 단어를 word로 수정 [n]cw [word] n개의 다음 단어를 지우고 word로 수정
    s [word] 현재 글자를 word로 수정 [n]s [word] n개의 다음 글자를 지우고 word로 수정
    cc 현재 행 모두 지우고 새로 입력 C 현재 위치부터 끝까지 지우고 새로 입력
  • 명령모드

    명령어 의미 명령어 의미
    :sec ic 검색에서 대소문자 구분 안함 :set noic 검색에서 대소문자 구분함
    / 아래로 검색 ? 위로 검색
    n 다음 문자열 검색 N 이전 문자열 검색
    :s/str1/str2/ 첫 str1을 str2로 치환 :%s/str1/str2/g 모든 str1을 str2로 치환
    :set nu 행 번호 표시 :set nonu 행 번호 숨기기
    :set list Tab 문자나 개행 문자 표시 :set nolist Tab 문자나 개행 문자 숨기기
    :w 문서 저장 :w! 강제 문서 저장
    :q 저장하지 않고 종료 :q! 저장하지 않고 강제 종료
    :wq 저장 후 종료 :wq! 저장 후 강제 종료
    :wq str 다른 이름(str)으로 저장    
    :e! 저장하지 않고 최종 저장 상태로 열기    
    :r [file] file의 내용이 현재 커서 다음 행에 삽입    
    :! [shell] vi 작업을 잠시 중단하고 shell 명령 실행 :sh vi를 잠시 빠져나가 다수의 shell 명령 실행

2. 정규식

grep 명령어와 정규식을 함께 사용하면 정규식에 표현된 문자열을 문서 내에서 찾을 수 있다.

정규식 의미 예시
str 글자 그대로 str
[] 또는 in[du] : ind 또는 inu
- 범위 [0-9A-Z] : 0부터 9까지 또는 A부터 Z까지
^ 제외 [^A-M] : N부터 Z까지
$ 문장끝 str$ : str으로 끝나야 함
. 한 글자 .in : in앞에 한 글자 아무거나
? 0또는1  
* 0이상 W*in : Win, in, WWin, …
+ 1이상  
{n} n개  
{n,m} n이상 m미만  
^() 문장시작  
| 또는  
grep '[xX][0-9a-z]{2}' *       # X11

3. 기본 명령어

프롬프트는 #(root 사용자)와 $(일반 사용자)로 명령을 수행할 수 있다. Tab키는 자동 완성 기능이 있으며, 도스키 기능은 상하 화살표 키를 이용해서 이전 명령어를 다시 실행하는 것이다.

  • history : 이전에 사용했던 명령어 확인
  • ![n] : n번째 명령어를 다시 실행
  • ls : 해당 디렉토리에 있는 파일 목록 나열
  • cd : 디렉토리 이동
  • pwd : 현재 디렉토리 전체 경로 출력
  • rm : 파일이나 디렉토리 삭제 (폴더 내에 파일이 있을 경우 -rf 옵션 추가)
  • cp : 파일이나 디렉토리 복사
  • mv : 파일이나 디렉티로 이름 변경 또는 위치 이동
  • mkdir : 새로운 디렉토리 생성
  • cat : 텍스트 파일 화면 출력
  • head/tail : 텍스트 파일 앞/뒤 10행 출력
  • more : 텍스트 파일 페이지 단위로 출력

4. 사용자 정보 관리

  • sudo : root 권한이 있어야만 가능한 특정 작업들이 있다. 이는 su 명령을 사용하여 root 계정으로 전환하고, sudo 명령으로 작업을 수행한다.
  • passwd : 사용자 계정의 암호를 수정하는 것으로 -l은 암호 잠그기, -u는 잠금 해제, -d는 암호 삭제 옵션이다.
    passwd [옵션] [사용자계정]
    
  • chown : 파일 및 디렉토리의 소유자와 소유 그룹을 변경한다. 소유자:소유그룹으로 계정을 나타내고 -R은 서브 디렉토리까지 모두 변경하는 옵션이다.
    chown [옵션] [사용자 계정] [파일명]
    
  • chgrp : 파일 및 디렉토리의 소유 그룹을 변경한다.
    chgrp [옵션] [그룹명] [파일명]
    
  • chmod : 파일 및 디렉토리의 소유와 허가권을 변경한다.
    chmod [접근 권한 설정] [파일명]
    
    • 접근 권한 표기

    • 기호모드 : 사용자,연산자,접근권한 순서로 표현한다.

      사용자 연산자 접근권한
      u(소유자) +(부여) r(읽기)
      g(그룹) -(제거) w(쓰기)
      o(기타사용자) =(설정) x(실행)
      a(전체)    
    • 숫자 모드 : 세자리의 수로 표현하며, 각 자리의 숫자는 4(읽기), 2(쓰기), 1(실행)의 합으로 나타낸다.

5. 파일 압축 및 묶기

  • xz/bzip2/gzip : 압축하는 기능이고, -d는 푸는 옵션이다.
    xz [옵션] [파일명]
    
  • tar : 묶는 기능이고, c는 묶기, x는 풀기, t는 경로확인, f는 파일, v는 과정 보이기, J는 tar+xz, z는 tar+gzip, j는 tar+bzip2 옵션을 나타낸다. (vf는 기본으로 쓰고 c/x선택, J/z/j 선택)
    tar [옵션] [파일명] [경로]
    

6. 파일 위치 검색

  • find : 조건에 해당하는 옵션을 경로에서 찾고, action을 취해준다. 옵션에는 -name, -user(소유자), -newer(전,후), -perm(허가권), -size(크기)이 있고, action에는 -print(출력), -exec(명령 실행)이 있다.
    find [경로] [옵션] [조건] [action]