IT공부

[리눅스] FTP(File Transfer Protocal), VI 에디터, shell 명령어

shine94 2020. 12. 24. 19:20

1. FTP(File Transfer Protocal)

 : 파일 전송 프로토콜, 서로 다른 시스템끼리 파일을 공유(다운로드, 업로드)

 

1) 알FTP 프로그램으로 이용

 

2) cmd 창으로 FTP 접속

① 업로드(클라이언트에 있는 파일을 서버로 전달) : cmd 경로 맞추기 > ftp [CentOS IP 주소] > put [업로드할 파일명]

    업로드할 파일 만들기(인코딩 UTF-8로 해야 한글 사용 가능)

    > 강사님이 제공한 압축파일의 samadal 비밀번호는 기존에 설정한 1이 아님, 비밀번호 1로 변경하기

    > ftp는 관리자로 접근 불가, 에러 발생, 따라서 일반 사용자인 samadal로 로그인하여 파일 전송 시도, 실패

    > 왜? C:User\every 폴더에 우리가 올려야할 파일이 존재하지 않기 때문에...!

    > 전송할 파일(index.txt)가 있는 폴더에서 ftp 연결하여 파일 전송하면 성공한다...!

    > 실제로 파일이 전송되었는지 확인해본다...!

 

② 다운로드(서버에 있는 파일을 클라이언트로 전달) : cmd 경로 맞추기 > ftp [CentOS IP 주소] > get [업로드할 파일명]

 

 

2. VI Editor

 : 문서 편집기

   ① Emacs와 함께 유닉스 환경에서 많이 쓰이는 문서 편집기
   ② 1976년 빌 조이가 초기 BSD 릴리즈에 포함될 편집기로 제작
   ③ 줄 단위 편집기가 아닌 한 화면을 편집하는 visual ediotr 이라는 뜻에서 유래
   ④ 명령모드, 입력모드, 실행모드

 

 

3. VI 에디터 - 명령모드(ESC)

 : VI의 기본모드
   VI가 처음 실행되거나, 입력모드에서 ESC키를 누른 경우
   엔터키를 누를 필요 없이 각각의 명령에 따른 버튼을 누르면 바로 실행

   └ 형식 : vi [파일이름]

 

1) 커서 이동

   h : 커서를 왼쪽으로 이동
   j : 커서를 아래로 이동
   k : 커서를 위로 이동
   l : 커서를 오른쪽으로 이동

 

2) 단어 단위 커서 이동

   W, w : 다음 단어의 처음으로 이동
   E, e : 단어의 끝 혹은 다음 단어의 끝으로 이동
   B, b : 단어의 처음 혹은 이전 단어의 처음으로 이동

 

3) 소문자와 대문자의 차이

   소문자는 단어, 공백, 특수문자를 기준으로 단어 이동하고,
   대문자는 공백을 기준으로 단어 이동한다.
   이 때, 기준이란 말은 단어로 인식한다는 뜻으로 받아들이면 되고
           대문자로 작업시 절대로 Caps Lock키를 누르지 않고 Shift키를 이용한다는 것을 주의하자!

 

4) 행 단위 커서 이동

   0(zero) : 현재 커서가 있는 행의 맨 처음으로 이동
   $ : 현재 커서가 있는 행의 맨 마지막으로 이동

 

5) 문서 단위 커서 이동

   gg : 전체 내용에서 맨 처음으로 이동(첫번째줄)
   G : 전체 내용에서 맨 마지막으로 이동(마지막줄)

 

6) 화면(창) 크기 단위 커서 이동

   H : 현재 화면(창) 크기에서 처음
   M : 현재 화면(창) 크기에서 중간
   L : 현재 화면(창) 크기에서 마지막

 

7) 기타 유용한 키

   x : 현재 커서에 있는 문자 삭제(Windows에서 Delete키와 비슷)
   X : 현재 커서 이전에 있는 문자 삭제(Windows에서 BackSpace키와 비슷)
   dd : 현재 커서의 행 삭제
   총줄수 + dd : 현재 커서부터 총줄수만큼 행 삭제
   yy : 현재 커서의 행 복사
   총줄수 + yy : 현재 커서부터 총줄수만큼 행 복사
   p : 복사한 내용을 현재 커서 아래에 붙여넣기
   P : 복사한 내용을 현재 커서 위에 붙여넣기
   r : 한 문자 치환
   u : 되돌리기(undo)
   Ctrl + r : 되살리기(redo)

 

8) 의미있는 키를 조합하여 사용할 수 있다.

   dw : 단어, 공백, 특수문자를 기준으로 단어 구분, 현재 커서에 있는 단어 삭제
   dW : 공백 기준으로 단어 구분, 현재 커서에 있는 단어 삭제 
   yw : 단어, 공백, 특수문자를 기준으로 단어 구분, 현재 커서에 있는 단어 복사
   yW : 공백 기준으로 단어 구분, 현재 커서에 있는 단어 복사

 

 

4. VI 에디터 - 입력모드(명령모드에서 입력모드로 전환 : a, i, o, O)

 : 버퍼에 내용을 입력할 수 있는 모드
   명령모드에서 a, i, o, O 등의 키를 누르면 전환
   하단에 --INSERT--라고 표시

   └ 입력모드? 내용을 입력(타이핑)

 

1) i : 현재 위치에서 왼쪽으로 이동 후 입력모드로 전환

 

2) a : 현재 위치에서 오른쪽으로 이동 후 입력모드로 전환

 

3) o : 커서 아래에 새로운 행을 추가하고 입력모드로 전환

 

4) O : 커서 위에 새로운 행을 추가하고 입력모드로 전환

 

 

5. VI 에디터 - 실행모드(명령모드에서 실행모드로 전환 : /, ?, :)

1) 검색(/과 ?는 서로 같은 기능, n과 N을 눌렀을때의 역순의 차이)

   /Pattern : Pattern을 검색
   ?Pattern : Pattern을 검색

 

2) /

   패턴이 검색된 후 n키를 통해 커서의 기준으로 아래 방향으로 계속 찾기
   패턴이 검색된 후 N키를 통해 커서의 기준으로 위 방향으로 계속 찾기

 

3) ?

   패턴이 검색된 후 N키를 통해 커서의 기준으로 아래 방향으로 계속 찾기
   패턴이 검색된 후 n키를 통해 커서의 기준으로 위 방향으로 계속 찾기

 

4) 치환(: 콜론)

** :[범위]s/[Old]/[New]/[옵션] - Old를 New로 치환
    범위는 n 혹은 n, m 혹은 %를 넣을 수 있다.
    g 옵션을 주면 적용되는 라인의 모든 부분을 치환
    g 옵션을 주지 않으면 처음 찾는 부분만 치환

 

   ① :s/기존내용/바꿀내용
       현재 커서가 있는 행, 왼쪽에서 오른쪽 기준으로 가장 가까운 것 하나만 기존내용을 바꿀내용으로 치환

   ② :줄번호s/기존내용/바꿀내용/g
       지정한 줄번호의 행에서 기존내용을 모두 찾아 바꿀내용으로 모두 치환

   ③ :줄번호,줄번호s/기존내용/바꿀내용
       지정한 줄번호부터 줄번호까지의 각각 행, 왼쪽에서 오른쪽 기준으로 가장 가까운 것 하나만
       기존내용을 바꿀내용으로 치환

   ④ :%s/기존내용/바꿀내용
       편집하고 있는 전체 내용, 각각의 행, 왼쪽에서 오른쪽 기준으로 가장 가까운 것 하나만
       기존내용을 바꿀내용으로 치환

 

 

6. shell이란? 명령어 해석기

 

 

7. shell 명령어

   :! [명령어] ☞ VI를 잠시 중단, 프롬프트에서 명령어의 결과를 확인, Enter 누르면 다시 vi으로 돌아감
   :.! [명령어] ☞ 명령어 실행 결과를 현재 편집하고 있는 파일 내용 안에 삽입

 

1) 파일 관련

   :e [파일명] ☞ 현재 작업 중인 파일을 닫고 "파일명" 파일 열기
   :enew ☞ 현재 창을 닫고 빈 문서를 열기
   :q ☞ 저장하지 않고 종료
   :q! ☞ 저장하지 않고 강제종료
   :w ☞ 파일 저장
   :w [파일명] ☞ 다른 이름으로 파일 저장
   :wq ☞ 파일 저장 후 종료

 

2) 파일 및 실행 관련

   :w >> [파일명] ☞ 현재 편집하고 있는 파일의 모든 내용을 지정한 파일의 바로 밑에 추가 저장
   :f ☞ 현재 작업중인 파일의 이름과 라인 수
   :[줄번호]r [파일명] ☞ 지정한 파일의 내용을 현재 편집하고 있는 파일의 줄번호 + 1 행부터 내용 삽입
   :[줄번호]r! [명령어] ☞ 지정한 명령어의 실행 결과를 현재 편집하고 있는 파일의 줄번호 + 1 행부터 내용 삽입
   :set nu ☞ 현재 편집하고 있는 파일의 각 행(줄) 맨 앞에 줄 번호를 생김