나는 머신러닝 개발을 하면서 학습을 돌릴 때 Remote server에 접속하는데, ssh 접속을 통해 들어간 환경은 ubuntu/linux이다.
따라서 vscode의 remote 연결을 이용해 서버에 접속하고 코드를 수정하긴 하지만 급하면 vi로 코드를 수정하기도 한다.
여기서 vi 편집기로 파일을 수정하자 들어갔을때, root 권한 파일을 일반유저 권한으로 열면 수정한 내용이 저장이 안된다. 그 상태로 많이 수정을 했다면 수정한 내용이 다 날아가는 것이다.
vi 편집기에서의 명령모드를 이용해 저장하는 순간에 root 권한으로 바꾸는 방법이 있다.
:w !sudo tee %
여기서 %는 현재 파일 명을 의미한다.
tee 명령을 통해 현재 수정된 내용을 stdin 으로 전달하여 파일로 기록할 수 있는 것이다. 위 명령을 수행하면 sudo를 통해 root 유저 권한을 얻기 위해 패스워드를 물어볼 것이고 패스워드를 입력하면 파일이 기록된다. 즉 수정내용이 저장된다.
출처: https://lunatine.net/2014/08/12/tip-vi-write-with-root-privilege/
'Coding > 기타' 카테고리의 다른 글
코드 작성 방식: snake, pascal, camel, hungarian (0) | 2020.01.13 |
---|---|
conda, pip list export하기, 파일로 저장하기 (0) | 2020.01.02 |
Stack Overflow란? (1) | 2019.12.26 |
Jupyter notebook - remote server 연결 (0) | 2019.11.11 |
Kill Nvidia GPU process in Ubuntu (0) | 2019.11.07 |