카테고리 보관물: Tools & Tips

Emacs로 AWS EC2 원격지 파일 편집

Emacs의 TRAMP mode를 사용하면 원격서버에 있는 불러와서 바로 편집할 수 있다. 다음은 ssh가 돌고있는 AWS EC2 서버의 파일을 TRAMP mode로 편집하기 위한 설정을 설명한다.

Emacs: version 25.1 (macOS)

init.el에 TRAMP mode 설정을 추가.

;TRAMP
(require 'tramp)
(setq tramp-default-method "ssh")

편집할 원격지 파일을 불러 올 때는 계정@호스트:파일경로 형식으로 하면되는데, EC2의 pem 키를 지정할 수 있는 ‘-i’ option을 지원하지 않는다. 매번 비밀번호를 입력하는게 귀찮다면 ssh-add로 키를 추가한다.

$ ssh-add ~/.ssh/ec2_key.pem 
Identity added: /Users/USER/.ssh/ec2_key.pem (/Users/USER/.ssh/ec2_key.pem)

이제 Emacs에서 다음의 명령어로 원격 파일에 접속하거나 파일 목록을 불러 올 수 있다.

Find file: /USERID@REMOTE_SERVER:~/

Windows 10 USB 마우스/키보드로 깨워지지 않는문제

사양 : Dell XPS 13

주로 HDMI로 연결한 외부 모니터를 사용하느라 노트북 lid를 덮어 두는데, 새롭게 Windows 10을 복구하고 나서 부터는 절전 모드 진입 후 USB 마우스/키보드로 컴퓨터가 깨워지지 않았다. 장치 관리자에서 “이 장치를 사용하여 컴퓨터의 대기 모드를 종료할 수 있음”이 표시되어 있는지 확인하라는 내용은 인터넷에 많지만, 기본적으로 설정이 되어 있는데도 문제가 생기고 있었다.

BIOS menu를 보니 관련 있어 보이는 USB Wake Support가 [Disabled]되어 있다. 일단 이 설정을 [Enabled]로 변경해 준다.

그리고 나서 Windows의 powercfg command의 option중에 deviceenablewake로 마우스와 키보드를 설정해 주었더니 절전 모드에서 잘 깨어난다.

명령표시줄을 관리자 권한으로 실행하고 장치의 목록을 확인한다.

C:\Windows\system32>powercfg /DEVICEQUERY wake_programmable
HID 규격 공급업체 정의 장치
HID 규격 공급업체 정의 장치 (001)
HID 규격 시스템 컨트롤러
HID 규격 공급업체 정의 장치 (002)
HID 규격 공급업체 정의 장치 (003)
Intel(R) Centrino(R) Advanced-N 6235
HID 규격 마우스 (001)
ASIX AX88772A USB2.0 to Fast Ethernet Adapter
HID 키보드 장치 (001)
HID 규격 사용자 컨트롤 장치

표시된 목록 중 “HID 규격 마우스 (001)”과 “HID 키보드 장치 (001)”을 설정하고 하이버네이션을 끈다.

C:\Windows\system32>powercfg /deviceenablewake "HID 규격 마우스 (001)"
C:\Windows\system32>powercfg /deviceenablewake "HID 키보드 장치 (001)"
C:\Windows\system32>powercfg /H off

[Tip] Git:삭제한 file들 한번에 정리하기

Git repository에서 많은 파일들을 삭제하고 적용하는 경우, git rm 명령어로 파일이름들을 하나하나 입력해 주는것은 무척 귀찮다. 예전에는 세로 편집이 되는 Ultra-edit 같은 utility로 삭제된 목록을 복사한 다음 git rm 명령어 line으로 편집해서 다시 terminal에 붙여 넣는 삽질을 했었다.

Git-ls-files command를 쓰면 더 이상 그럴 필요가 없다. 이 command는 repository의 file들을 지정한 상태별로 알려준다. 예를들어, 삭제된 file의 목록을 보려면 다음과 같이 하면 된다.

git ls-files --deleted

이렇게 얻어진 목록을 git rm command에 넘겨도 대부분의 경우 동작하겠지만, 파일 이름에 공백문자를 포함하는 경우에는 제대로 동작하지 않는다. 공백문자에 대해서도 제대로 동작하도록 sed로 공백문자 앞에 ‘\’를 삽입하려면 다음과 같이 한다.

git ls-files --delete|sed 's/ /\\ /g'|xargs git rm