리눅스에서 lrzsz는 꽤 많이 쓰인다고 어디선가 들었습니다. 사실, 전 FileZilia에서 파일 업로드하고, 다운로드를 많이 했는데요. 그건 생각보다 귀찮은 일이더라고요.

 


 타겟에 lrzsz를 설치해 보겠습니다. 타겟에는 sshd (ssh 서버)가 깔린 상태입니다.

 

 우분투는 sudo apt install lrzsz 이렇게 명령어를 입력하시면 됩니다.

 

 그러면 설치가 좌르륵 하고 될 겁니다. 이제 rz를 입력해 보겠습니다.

 

 그러면 waiting to receive라는 문구가 뜹니다. send가 보내는 것이고 receive가 받는 것이니, 여기에서는 cho@ubuntu가 받는 것을 의미합니다. cho@ubuntu는 rz가 실행되는 타겟을 의미하기도 합니다.

 

 

 server가 받아야 한다면 client는 보내야 합니다. send file using Z-modem을 클릭해 보겠습니다.

 

 

 그러면 어느 파일을 보낼 것인지 파일 selector가 뜨는데요. 이 중에서, 저는 어제 finalizer에 대해 실습한 자바 파일을 보내도록 하겠습니다. Main.java를 선택해서 보내보겠습니다.

 

 

 그러면, 서버에 보내지고, Transfer complete가 뜹니다.

 

 

 이제 Main.java를 열어보겠습니다.

 

 

 제가 실습한 파일 그대로 들어갔음을 알 수 있습니다.

 


 이제, sz 명령어를 써 보겠습니다. sz가 수행되는 타겟에서 로컬로 보내는 것이니 send일 겁니다. 서버 입장에서는요.

 

 

 저는 서버에 있는 것 중에서 expipe3.c를 로컬로 보내보도록 하겠습니다.

 

 

 서버에서 보내면, 로컬에서는 recive 해야 할 겁니다. 그러니, Receive file을 클릭합니다.

 

 

 

 이제 파일을 받을 위치를 지정하면 되는데요. 저는 적당히 바탕화면에 지정해 보도록 하겠습니다. 받은 후에, 정말 제대로 받아졌는지, 내용이 같은지를 확인해 보도록 하겠습니다. 바탕화면에서 git base here를 누른 다음에, vi expipe.c를 입력해 보겠습니다.

 

 

 뭔가 엄청난 일을 하는 듯 싶군요. 사실, 이 프로그램은 race condition 상태의 예제로 많이 나오는 코드입니다만, 여기에서는 중요한 것이 아닙니다. 이제 서버에서 vi expipe.c 명령어를 입력해서, 내용을 확인해 보겠습니다.

 

 

 똑같음을 알 수 있습니다.