개인공부

리눅스 - lrzsz 패키지 설치 본문

리눅스

리눅스 - lrzsz 패키지 설치

풀스택개발 2018. 7. 12. 11:30

#yum -y install lrzsz             // lrzsz 패키지 설치


lrzsz 패키지 => 파일을 xshell에 옮길 수 있음



#rz              // HostOS  ->  GuestOS

#sz  [파일명]    // GuestOS  -> HostOS




1. sort -  파일내의 내용을 알파벳 순서대로 정렬


  #sort [option] [file]

     -n 숫자를 기준으로 정렬

     -r 역순으로 정렬

     -u 중복행 제거 (#uniq)

     -o 출력 결과를 파일로 저장

     

 #mkdir /practice/sort_test

 #cd /practice/sort_test/


 - 해당 경로에 공유 폴더에 업로드된 sort_test1, sort_test2 파일 다운로드


   #cat sort_test1      //원본 파일 확인

   

   #sort sort_test1_txt

   #sort -nr sort_test1.txt  //숫자를 기준 역순으로 정렬하여 출력

   #sort --n sort_test1 -o test  // 출력 결과를 test파일로 저장







2. watch - 주기적으로 지정된 명령 재실행, 결과 출력   ->실무에 유용하다


 #watch [option] '[command(명령어)]'

  -n [N] N초 주기로 명령을 실행

  -d     변경된 부분에 음영(하이라이트) 처리

  


 1번 세션                                                   2번세션


#watch -d -n 1 'ls /practice'                              #cd /pratice

                                                           #touch filetest1

                                                           #mkdir dirtest1

                                                           #touch file1234



컨트롤 + c 로 나감





3. 텍스트 편집기의 종류   -> 필수임


    - 모드(mode) 형

       입력 모드와 명령모드가 구분

        입력 모드는 텍스트를 입력 할 수 있는 모드

        명령 모드는 텍스트를 수정(삭제/복사/붙여넣기)등 편집 하는 모드

       vi는 모드형 편집기 -> 배워야 할 것임



    - 비모드(mode)형

      입력 모드와 명령모드가 구분되어 있지 않음

       한글, 워드, 메모장(우리가 평소에 쓰는것) 



  vi(VIsual editor) & vim (VI iMproved)

    vim - vi 기능을 향상 시킨 모드형 편집기




  #vi [파일명]         -> 기존에 파일이 있을 때  -> 파일을 열거나 수정

                       -> 기존에 파일이 없을 때  -> 파일을 생성하여 수정



 파일 열기  #vi [파일명]



명령모드 -> 입력모드

i, a, o


입력모드 -> 명령모드

ESC


명령모드 -> 실행모드

:, /, ?



자주 쓰이는 명령어


명령모드에서

u : (undo)        : 작업 했던 내용 취소

Ctrl + r (redo)   : 작업했던 내용 되돌리기



yy : 커서가 위치한 라인 복사

 p : 붙여넣기

dd : 한 라인 삭제



[숫자]yy : 입력 숫자만큼 라인 복사

[숫자]dd : 입력 숫자만큼 라인 삭제


shift + 4($) : 라인의 처음으로 커서 이동

shift : 6(^) : 라인의 마지막으로 커서 이동


저장(w)/종료(q)/강제(!)

 :w   //저장하기            :w!   //문서저장 (강제)      :w[파일이름]  // 새로운 파일이름으로 문서 저장

 :q   //종료                :q!   //강제 종료  

 :wq  // 저장하고 나가기    :wq!  //강제 저장 후 종료

 :e!  //편집한 내용을 저장하지 않고 파일 다시 열기


cp /etc/services /practice

vi /practice/services   


 :set nu     //행번호 출력

 :set number


[숫자] (shift + g) G : [숫자]행으로 이동

ex) 100G -> 100번째 라인으로 이동

    200G -> 200번째 라인으로 이동



 gg : 파일의 처음으로 이동

 G  : 파일의 마지막으로 이동

 :[숫자]       :[숫자]행으로 이동


 

/[문자열]  : 문자열 검색

?[문자열]  : 문자열 검색(위로)


ex) /filenet

    /ftp

    /domain

  n: 다음으로 일치하는 단어 검색

  N: 이전으로 일치하는 단어 검색



치환


:%s/[OLD]/[NEW]/g         파일 전체에서 [OLD]를 [NEW]로 치환


ex) 해당 문서에 udp를 tcp로 변경

:%s/udp/tcp/g



vim 설치


#yum -y install vim   //vim 설치

#alias vi='vim'       //알리아스 설정

vi /etc/passwd        // vim으로 파일 확인 시 필드를 색으로 

                         구분해주어 가독성이 높아져 vi보다 쉽게 작업할 수 있다.


로그인 시 자동으로 alias 설정되도록 xshell에 설정

ex) alias grep='grep --color=auto' ; alias vi='vim'



SERVER-B(.120), CLIENT-Linux(.130) ip설정 해





파이프 (pipe) - 프로세스(프로그램)간에 실행되는 입출력을 다음 프로세스에게 전달하는 방식



       출력           입력

 #cat /etc/passwd |(쉬프트 역슬래쉬) grep root

 #cat /etc/services | more




정규식에서 사용하는 메타 문자


 ^       - 행의 시작

 $       - 행의 끝

 .       - 하나의 문자와 대응

[]       - []사이의 문자 하나와 대응

[^]      - []사이의 문자를 제외한 문자와 대응

\<       - 단어의 시작

\>       - 단어의 끝

A\{N\}    - 문자 A를 N번 반복

A\{N,\}   - 문자 A가 적어도 N번 반복

A\{N,n\}  - 문자 A가 N번이상 n번 이하 반복




grep_test.txt 파일의 내용을 복사하여 vi를 이용 grep_test 새로운 파일 생성 후, 복사/붙여넣기




grep '문자열' 파일  -> 내가 찾고싶은 문자열 찾기

grep 'root' /etc/passwd


#grep -i 'the' grep_test        // -i는 대소문자 안 가림

#grep '^#' grep_test // '#'으로 시작하는 라인

#grep 't$' grep_test            // 't'로 끝나는 라인

#grpe 's.n' grep_test // s와 n 사이 임의의 문자하나를 포함한 라인

#grep -i 'c...y' grep_test      // c와 y 사이의 임의의 문자 세개를 포함한 라인

#grep '[tT]' grep_test // t혹은 T가 포함된 라인

#grep '[AB]' grep_test // A혹은 B가 포함된 라인

#grep '[AB]r' grep_test // A혹은 B이후에 r이 포함된 라인

#grep '[a-z]' grep_test  // a부터 z를 포함한 라인, 즉 소문자 영어와 모두 매칭

#grep '[a-zA-Z]' grep_test    // 영어를 포함한 라인

#grep '[^0-9]' grep_test      // 숫자를 제외하고 매칭

#grep '\<F.....' grep_test    // F로 시작하고 총글자인 단어

#grep 'd\{2\}' grep_test      // d가 2번이상 반복되는 라인

#grep 'e\{1,2\}' grep_test     // e가 한번 또는 두번 반복되는 라인




파이프와 연계


ex) 현재 위치한 곳에 디렉토리 개수 확인 하기

#cd / 

#ls -l

#ls -l | grep '^d'   -> 디렉토리

#ls -l | grep '^d' | wc -l


ex) /bin 에 파일 개수 확인

#ls -l | grep '^-' \ wc -l


ex) 현재 디렉토리에서 파일 크기가 가장 큰 파일만 출력


# ls -S | head -1

(ls -S //파일 큰 순서로 출력)






리다이레션(Redirection) - 방향을 재지정한다


 파일 디스크립터 (File Discriptor, fd)

  - 리눅스의 일반 파일과 장치파일을 포함한 모든 파일을 관리하는 방식


  - 파일을 열거나 실행할때 혹은 명령어를 입력하면은 커널이 프로세스를 실행시켜 기본적으로

    사용하는 장치들과 추가로 실행한 프로세스가 있다면 이정보를 파일 디스크립터 테이블이라는 곳에

    저장하는데 이때 파일디스크립터 테이블에 비어있는 0번 부터 순차적으로 지정하고, 가장 기본적으로

    사용되는 장치에 대해서는 디스크립터 테이블에 미리 예약되어 있다.


  - 표준 입력 장치 (키보드) fd/0 stdin

  - 표준 출력 장치 (모니터) fd/1 stdout

  - 표준 에러 장치 (모니터) fd/2 stderr

  


리다이렉션

  - 표준입력과 출력의 방향을 재정하는 방법


  명령어 입력 (키보드/표준입력) -> 명령어 결과 (모니터/표준출력)

 

출력 리다이렉션

 - 화면에(표준출력)나오는 결과를 파일 내용으로 전달


#echo 'show me the money' 1> echo_test     // 숫자 1은 표준출력장치(fd번호)를 뜻함

#pwd > pwd_test          // pwd명령어 값을 pwd_test에 넣음



fd번호 1은 생략 가능


#cat > [파일명]

내용입력 후, 엔터 한번 치고  //엔터 

Ctrl + D (저장)



#mkdir /practice/day4

#cd /practice/day4

#cp /etc/resolv.conf ./

#cat resolv.conf                         //표준 입력 후 표준출력

# cat resolv.conf 1> redirection_test    //표준 입력 후 결과를 출력아닌 파일로 재지정

# cat > cat_test1                        //표준입력 1은 생략 가능

                //기존에 파일이 없다면 생성

cat_test!!! [Enter]                      //개행 후

[Ctrl + d ] // 저장

# cat cat_test1 // cat_test1 내용 확인


#cat > cat_test1 // 파일 내용 입력 후 생성

cat_test????                             // 내용 입력 후 저장


#cat cat_test1                           // 기존에 있던 cat_test!!!! 없어 지고

                                            새롭게 썻던 cat_test????? 만 존재 즉,

                                            파일의 내용을 덮어쓴다



Bash 쉘에서 파일 덮어쓰기 방지하기 위한 설정


# set -o noclobber         // 덮어쓰기 방지 설정 Enable

# cat > cat_test1          // 기존에 있는 파일을 수정 -> 오류뜸

# cat > cat_test2          // 기존에 없는 파일이니 오류 안 나오고 파일 생성




# set +o noclobber         // 덮어쓰기 방지 설정 disable

# cat > cat_test1          // 기존에 있는 파일 덮어쓰기 가능



추가 리다이렉션

[명령어] >> [파일] - 기존 파일에 내용 추가



#ls    > ls_test

#date  > ls_test

#date >> ls_test      //ls_test 파일에 date 출력 결과를 추가하여 저장

#pwd  >> ls_test      //ls_test 파일에 pwd 출력 결과를 추가하여 저장

#cal  >> ls_test      //cal 달력 출력

#cat ls_test       




오류 리다이렉션


#ls error_test        // 오류메세지 발생

#ls error_test 1> err1      // 아무 내용 없음

#ls error_test 2> err2      // 오류메세지 출력 결과 파일 생성


오류 메세지 출력하지 않기

/dev/null - 리눅스 특수 파일로 파일의 내용을 지우거나, 오류메세지를 해당 파일로

            리다이렉션하여 출력하지 않을 수 있다. (윈도우 쓰레기통 과 비슷) 



# cat ls_test 1> /dev/null          // 출력결과를 null 파일로 재지정

# cat ls_test 2> /dev/null          // 출력에러결과를 null파일로 재지정


#ls / 1> /dev/null          //정상 결과 출력하지 않음

#ls / 2> /dev/null          //에러 결과 출력하지 않음





입력 리다이렉션 


[명령어] < [파일]


#sort < /etc/passwd               == sort /etc/passwd

#cat < /etc/passwd                == cat /etc/passwd

#head -1 < /etc/passwd            == head -1 /etc/passwd

#tail -2 < /etc/passwd            == tail -2 /etc/passwd




tail < a.txt > b.txt


(1) a.txt 내용을 tail 명령어 입력 값으로 리다이렉션 (# tail a.txt)

(2) tail 명령어는 입력은 a.txt의 내용에서 마지막 10줄 출력

(3) tail 명령어의 출력결과를 b.txt 파일에 리다이렉션

(4) 화면에 출력이 아닌 b.txt에 결과가 저장



cat < a.txt > b.txt 와 동일한 명령어는 ??  답 : # cp a.txt b.txt
















'리눅스' 카테고리의 다른 글

리눅스 - 지역 환경변수  (0) 2018.07.15
리눅스 - 다중명령어  (0) 2018.07.12
리눅스 정리 - 기본명령어 3  (0) 2018.07.11
리눅스 정리 - 기본명령어 2  (0) 2018.06.23
리눅스 정리 - 기본 명령어  (0) 2018.06.23
Comments