[vim] 알아둬야 할 명령어

 

[vim] 알아둬야 할 명령어

저장 esc 키를 눌러서 명령모드로 진입 후 :q 종료 :q! 강제종료 :w 편집 중인 파일 저장 :w [filename] 편집 중인 파일을 [filename] 로 저장 :wq 편집 중인 파일을 저장 후 종료 편집 i 현 위치에서 편집모

joey0203.tistory.com

 

행 이동

명령어 내용
gg 첫 행으로 이동
G 마지막 행으로 이동
<숫자>G <숫자> 행으로 이동

 

삭제

명령어 내용
d$ 현재 행의 위치에서 마지막까지 삭제
d0 현재 행의 위치에서 시작까지 삭제
x 문자 한개 삭제
dw 단어 한개 삭제
dgg 현재 위치에서 문서 시작까지 삭제
dG 현재 위치에서 문서 끝까지 삭제

 

붙여넣기

d 로 지운 텍스트는 p로 원하는 곳에 붙여 넣을 수 있음

복사

명령어 내용
yy 현재 커서가 있는 행을 복사
dd 현재 커서가 있는 행을 삭제

 

치환

:%s/<검색할 문자열>/<치환할 문자열>/g

:%s/small/large/g

 

--help, man

--help 옵션

<알고 싶은 명령어> --help
$ cat --help

 

한글로 도움말 출력 방법

$ LANG=ko_KR.UTF-8 cat --help

- 한글버전으로 설치했을 경우에만 가능

man 명렁어 :  매뉴얼 출력

man <알고 싶은 명령어>
$ man cat

 

키워드로 매뉴얼 찾기

man -k <키워드>
$ man -k copy

 

배우는 명령어 : [ find, locate ]

파일 찾기

find <검색할 디렉터리> <검색 조건> <액션>

// 현재 디렉토리에서 file.text 파일을 찾아서 경로를 출력
$ find . -name file.text -print

 

이름으로 찾기 (-name, -iname )

-name  : 대소문자 구별

-iname : 대소문자 구별 안함 

* 와 ? 사용 도 가능

 

데이터베이스에서 파일찾기

locate = 경로의 일부를 db에 저장하여 파일을 찾을 때 사용하는 명령어

설치가 필요

+ 디스크를 스캔해서 찾는 find 보다 빠르다

- 하루에 한번 db를 만들수 있다. -> 방금 설치된 것을 찾지 못함, 찾았지만 존재하지 않을수도 있음 

 

// 설치 확인
$ locate --version 

// locate 명령어 설치
sudo apt-get install mlocate

 

파일 경로 목록을 데이터베이스에 등록하기

$ sudo updatedb

 

파일찾기

locate [옵션] <검색패턴>

# bash 라는 문자열이 포함된 경로 검색
$ locate bash

# '.sed' 확장자를 가지는 파일 검색
$ locate '*.sed'

# 대소문자 구분없이 검색
$ locate -i notes

# 파일 이름만으로 검색
$ locate -b python

# OR 조건으로 검색
$ locate docs documents

# And 조건으로 검색
$ locate -A bash doc

 

 

 

내용: [ 디렉터리 생성/복사/삭제, touch, less, cat, 링크(ln) ]

디렉터리 만드는 명령어

$ mkdir [옵셥] <작성할 디렉터리 이름>
  • 옵션
    • -p : 중첩된 디렉터리 한번에 만들 수 있는 옵션
      • ex) mkdir -p report/2023/03  -> 2023과 03 이라는 디렉터리가 없으면 한번에 생성됨

파일 생성

$ touch <생성할 파일1> <생성할 파일2> ...

 

디렉터리 삭제하기

$ rm [옵션] <삭제할 파일1> <삭제할 파일2> ...

//example
$ rm file1 file2

$ rm *.html // .html 확장자를 가진 모든 파일 지우기

 

  • rm 명령어로 트리가 있는 디렉터리를 지우기
$ rm -r dir1

 

  • 빈 디렉터리 지우기
$ rmdir <디렉터리 이름>

 - 디렉터리 안에 숨겨진 파일때문에  에러가 발생할 수도 있음.

-  ls -a 를 이용하여 확인하고 해당 파일 삭제하고 다시 실행 

 

파일의 내용을 출력하는 방법

$ cat [옵션] <파일 이름>

 

  • 여러 파일 출력하기
$ cat /etc/hostanme /etc/crontab

//hostname 내용 출력시작
utuntu
//crontab 내용 출력시작
...

 - "-n" 옵션 : 행 번호 표시해서 내용 출력

 

스크롤 표시해서 내용 출력하기

$ less [옵션] <파일 이름>

- 첫 행부터 마지막 행 까지 내용 확인 가능

  • 스크롤 조작방법
ctrl  + v 한 화면 아래로 스크롤
v 한 화면 위로 스크롤
ctrl  n 한 행 아래로 스크롤
crtl  p 한 행 위로 스크롤
q  less 명령어 종료
  • 문자열 검색 방법
/문자열 문자열을 아래 방향으로 검색
?문자열 문자열을 위 방향으로 검색
n 다음 검색 결과로 이동
m 이전 검색 결과로 이동

 

파일 복사

$ cp [옵션] <복사할 파일> <복사할 위치 및 파일 이름>

// 예시
$ cp file1 file2 file3 dir1 //dir1 에 파일 세개를 복사
$ cp *.txt dir2 // 해당 파일 확장자를 가진 모든 파일을 dir2에 복사

- '-i' : 파일을 덮어쓰기 전에 확인을 위한 옵션

 

디렉터리 복사

$ cp -r dir1 dir2

- '-r' : 재귀적으로 복사하기 위한 옵션( dir1 안에 있는 모든 파일을 dir2에 복사)

 

파일 이동하기

$ mv [옵션] <이동할 파일> <이동할 파일> ... <이동할 위치>

 

- <이동할 위치>에 <다른 파일 이름>을 넣으면 파일 이름이 변경

 

링크 만들기

링크를 생성한다 → 파일에 별명을 붙인다.

종류 : 심볼릭 링크, 하드 링크  

 

하드링크 : 한 파일 원본에 이름을 여러개를 붙이는 기능

- 한계 : 디렉터리는 하드 링크 불가, 서로 다른 디스크에 걸쳐서 만드는 것 불가

$ ln file1 file2

- 원본 파일 2개 생성된다.

- 삭제시 둘다 지워야 원본이 삭제된다.

 

심볼릭 링크: 하드링크에 있는 제한이 없이 생성가능

$ ln -s file1 file3

- file3 이 원본 파일은 아니다.

- file1 이 삭제되면 링크는 깨진다.

  • 링크 확인 방법 :  " ls -l " 입력
    • file3-> file 1 로 표시
  • 사용하는 이유: 긴 경로명을 입력하지 않고 쉽게 이동 가능
    • ex) $ ls -s local/work/code/project/source source
    • source 만 입력해도 해당 경로로 이동 가능

윈도우와 다른 디렉터리 트리 구조  → 시스템 전체에 단 하나의 트리만 보유

   하드디스크가 2개여도 하나의 트리를 구성한다.

각디렉터리의 역할

/bin 명령어의 실행 파일이 배치, 시스템과 관련된 중요도가 높은 명어로를 포함
/etc 다양한 어플리케이션의 설정파일이 배치, 리눅스 자체의 설정 파일도 보유, 리눅스를 운영하고 관리할 때 무척 중요한 디렉토리
/sbin 관리자용 명령어 포함
/tmp 어플리케이션 실행 중 임시로 작업 결과를 파일로 보존할 때 사용, 정기적으로 이 디렉터리 안의 파일을 삭제 하도록 설정된 배포판도 있으므로 중요한 파일을 이곳에 보관하면 안됨
/var 애플리케이션 실행 중에 만들어진 데이터나 로그, 메일 등이 이곳에 저장

 

 

디렉토리 이동과 확인 명령어

pwd 현재 디렉터리 출력
cd 현재 디렉터리 변경
ls 디렉터리 안의 파일을 출력
  • cd 치면 처음에 보여준(홈) 디렉토리로 돌어간다.
  • 틸트(~) 확장도 가능
    • cd ~/report -> home/사용자/report

ls 명령어

기본 명령어

$ ls 해당 디렉토리에 있는 모든 파일 목록 출력
$ ls ba* ba로 시작하는 파일 목록 출력
$ ls *.html .html 로 시작하는 파일 목록 출력
$ ls ba?? 길이가 4이고 ba 로 시작하는 목록 출력

 

 

명령어의 옵션

  •  -l : 파일의 이름과 파일의 속성과 상세정보까지 출력 
$ ls -l
출력 예시
1) drwxrwxr-x 10 ubuntu ubuntu 4096 Mar 16 10:53 mini-projec
2) -rw-rw-r-- 1 ubuntu ubuntu 157319 Mar 16 00:01 ERD-2.png
  • 파일 타입 -> l : 심볼릭 링크
정보 예시1  예시2
파일 타입 d (디렉토리)  - (보통파일 )
파일 모드 rwxrwxr-x  rw-rw-r--
링크 수 10 1
소유자 ubuntu ubuntu
소유그룹 ubuntu ubuntu
크기 4096 157319
타임스탬프 Mar 16 10:53 Mar 16 00:01
파일 이름 / 디렉토리 이름    
  • -a : 숨겨진 파일 출력
  • -F : 파일의 종류 출력
    • 보통파일 : 기호 없음
    • 디렉터리 : /   -> images/
    • 실행 가능 파일 : *
    • 심볼릭 링크 : @ 

명령어의 옵션 조합

$ ls -aF
$ ls -al
$ ls -w30 // 지정된 숫자(30)에 맞게 문자 간격을 맞춰 출력
$ ls -w 30 // w30 과 같음

 

롱옵션

$ ls --quote-name // 파일이름을 "" 로 묵어서 출력
$ ls --width-30 // 문자간격을 30으로 해서 출력
$ ls --width=30 // 문자간격을 30으로 해서 출력

+ Recent posts