ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [리눅스] 파일(cat, vi)
    서버/리눅스 2017. 3. 14. 21:32

    #>cat > : 파일 출력

    #>cat : 파일 편집 (나올때는 ctrl + c)

    #>vi : 파일 편집(실행모드, 입력모드, 명령모드)

    #>touch : 파일생성

    #>mkdir : 디렉터리 생성

    #>rmdir : 디렉터리 삭제(하위 디렉,파일 존재시 실행 X)

    #>rm -r : 디렉터리 삭제(하위 것까지 다삭제)

    #>rm -rf : 묻지않고 다 삭 제

    #>mv 파일 이동

    -



    #1 파일 내용 확인

    cat명령어는 단순히 출력만 한다



    [cat]

    해당 파일의 전체를 읽어온다

    #>cat <path>


    /root/file1 파일을 열어보겠습니다.

    #>cat file1



    아무것도 뜨지않은것은 file1을 만들고 아무것도 작성하지 않은 상태

    즉, 파일 내용이 없다는 뜻이겠네요


    그럼 파일 내용이 있는 /etc/passwd 으로 확인해보겠습니다


    /etc/passwd 는 사용자의 정보를 담고 있으므로 그냥 열어서 확인만 해봅니다.

    #>cat /etc/passwd


    너무 길이서 넘어 가네요


    #>tail <path>

    해당 파일의 아래에서부터 10줄(기본) 읽어온다


    사용자를 추가하면 passwd파일에 내용이 추가 되기 때문에 tail이 종종 사용됩니다.


    옵션을 사용해서 볼수 있습니다.

    옵션에 숫자를 입력하면 숫자만큼의 줄이 아래에서 만큼 출력됩니다.


    물론 위에서 부터 읽어서부터 읽어오실수 있습니다.

    #>head <path>

    헤드도 옵션을 사용해서 7줄만 가져와 보겠습니다.


    #>head -7 /etc/passwd


    #2 파일 수정

    #>vi

    new file을 이름없이 생성합니다

    들어가서 저장하려고 하면 (no file name)에러가 발생합니다.

    따라서 저장할 때

    :w <path>/fileName

    이렇게 생성해주면 됩니다

    ex) :wq /root/file2



    #>vi <path>


    vi명령어는 파일이 존재하지 않는다면 파일을 생성합니다.

    newfile은 저장하지 않는다면 파일을 생성되지 않습니다.


    file1에 접근합니다


    #>vi file1


    file1이 없어도 상관없습니다




    enter을 누르고 접근합니다.

     ~줄이 나온다면 명령모드로 왔습니다.


    여기서 [i]를 눌러주면


    아래에 --insert--가 생기면서 입력모드가 됩니다.


    입력모드에서 다시 명령모드로 가려면 [ESC}키를 눌러줍니다.


    입력모드에서 타자를 입력해줍니다.



    vi에서 커서를 움직일때는 방향키도 움직여지지만 올바른 방법은

    H J K L을 사용하는 겁니다

    [이동]

    H : ←

    J : ↓

    K : ↑

    L : →

    gg : 파일의 맨 위

    G : 파일의 맨 아래


    i말고도 다른 명령어가 있습니다.

    #입력 모드

    명령모드에서 접근


    a : 현재 커서의 오른쪽

    A : 현재 라인의 맨 끝부분

    i : 현재 커서의 왼쪽

    I : 현재 라인의 왼쪽

    o : 현재 라인의 아래 

    O : 현재 라인의 위


    [문장 컨트롤]

    → y는 "복사"의미를 가지고 있다

    yy : 현재 커서 라인 복사

    <number>yy를 이용해서 문장을 number의 라인을 복사할 수 있다

    ex) 3yy (현재 커서부터 아래로 3라인을 복사한다)


    [단어 복사]

    단어위에 커서를 올리고

    yw : 단어 복사


    [붙여넣기]

    p : 현재 커서 아래에 붙여넣기

    P : 현재 커서 위 에   붙여넣기


    → d는 "삭제"의미를 가지고 있다.

    dd : 라인 삭제

    ex) 3dd (햔재 커서부터 아래로 3줄 삭제한다)


    u : 실행취소(undo)

    ctrl+r : 다시실행(redo)


    #실행모드

    명령모드 → 실행모드


    [:을 붙여주는 명령어]

    :q : 종료

    (파일 변경시 저장하지 않고 나가면 에러메세지 출력)


    :q! : 저장하지 않고 종료


    :w : 저장

    :wq : 저장후 종료


    :set nu(:se nu) : 해당 줄에 인덱스들이 보임

    :se nonu는 인덱스는 보이지 않음

    -->> :<num> num번째 줄로 이동

    ex) :5 : 5번째 줄로 이동


    :<num1>,<num2>y : num1~num2 라인 복사

    :<num1>,<num2>d : num1~num2 라인 삭제


    [%는 전체]

    :%y : 전체복사

    :%d : 전체삭제


    [$마지막 라인]

    :$y

    :$d

    y자리에 d가 d자리에 y가 들어갈 수 있다.


    [찾기]

    /copy : 찾기(아래방향)

    ?copy : 찾기(위의방향)

    => 이때 단어를 하나찾고 기능을 멈춘다


    [중복된 단어 찾기]

    n 같은방향으로 탐색

    N 반대방형으로 탐색


    [바꾸기]

    :범위s/찾을내용/바꿀내용/옵션

    ex) 2~4번쨰 라인에서 abc를 찾고 ABC로 변경하겠다

    :2,4s/abc/ABC


    이때 중복된 값은 한개만 치환되기에

    커서를 그 문장에 두고

    :s/abc/ABC/g

    option g(global)옵션을 사용한다

    이렇게 되면 라인안에서 abc문자가 ABC로 모두 바뀌게 된다.


    모두 바꾸고 싶을때는

    :%s/abc/ABC/g

    전체를 나타내는 %와 option g를 같이 사용한다.


    [vi 실행 중 커멘드 실행하기]

    :!<command>

    :! ls /root

    하면 /root의 내용이 출력되고

    ENTER를 누르면 다시 vi편집기로 돌아갑니다.


    [vi안에서 다른 vi열기]

    :sp <path> : 다른 파일도 열겠다


    ex) file4 접속상태

    #명령모드 :sp file2


    이때 :q 를 사용해서 종료시

    "커서"가 있는 파일이 종료됩니다.


    [vi편집기 탭 이동]

    #명령모드 ctrl+w+w로 이동



    [파일 이동]

    #>mv <src_path> <dst_path>


    ex) #>mv testFile1 /test


    testFile1을 루트-> test폴더안으로 옮기겠다는 예기입니다.

    응용을 해보면

    #>mv testfile1 testfile2

    로 한다면

    내 위치에서 위치로 이동한다면 이름이 변경이 되겠네요


    #>mv -f test1 test2

    한다면 묻지않고 overwrite 해줍니다.


    overwrite는 디렉터리에 적용이 되지 않습니다.

    또한 dst_path의 경로가 없을경우 파일의 이름이 변경된다.


    [파일 복사]

    #>cp <src_path> <dst_path>


    디렉터리도 복사하고 싶을때는 -r옵션을 사용합니다

    #>cp -r /root/dir3 /root/dir4



    mv가 잘라내서 붙여넣기 같은 느낌이라면

    cp는 복사해서 붙여넣기 같은 느낌입니다.


    실행모드와 입력모드는 명령모드에서 접근합니다.




    명령모드 -> 입력모드 -> 명령모드


    -> 실행모드 

    -> exit


    []





    '서버 > 리눅스' 카테고리의 다른 글

    [리눅스] putty  (0) 2017.03.15
    [리눅스] 인터넷  (0) 2017.03.14
    [리눅스] 일반파일, 파일  (0) 2017.03.13
    [리눅스] ls 명령어 옵션  (0) 2017.03.13
    [리눅스] cli 환경,디렉터리  (0) 2017.03.10

    댓글

Designed by Tistory.