JHH9232 Blog

macOS 터미널 명령어를 통한 설정 정리


|

목차


macOS ssh 재시작

/etc/services에서 ssh 포트를 변경할 수도 있다.
재시작 명령어는 아래 두 줄을 통해 가능하다.

sudo launchctl unload /System/Library/LaunchDaemons/ssh.plist
sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist

외부 ssh 접속을 허용하려면 시스템 설정 > 일반 > 공유 에서 원격 로그인 항목을 체크해야 한다.

사전찾기 (ctrl+cmd+d) 단축키 비활성화

설정 이후 재부팅 필요.

sudo defaults write com.apple.symbolichotkeys AppleSymbolicHotKeys -dict-add 70 '<dict><key>enabled</key><false/></dict>'

충전 없이 클램쉘 활성화

설정 이후 재부팅 필요.
덮개를 덮을 시 잠자기 모드를 완전히 비활성화 하는 것이기 때문에
해당 설정을 진행하면 맥북을 잠자기 모드로 둘 수 없다.

sudo pmset -b sleep 0; sudo pmset -b disablesleep 1

잠자기 모드를 다시 활성화 하려면 아래 명령어 적용 후 재부팅.

sudo pmset -b sleep 0; sudo pmset -b disablesleep 0

해당 쉘 스크립트를
automator > 새로운 문서 > 응용 프로그램 > 보관함 > 유틸리티 > 셸 스크립트 실행
여기에 넣고 저장하면 앱으로 만들 수 있다.

echo 'password' | sudo -S pmset -b disablesleep 1; pmset -a disablesleep 1; pmset -c disablesleep 1;

Finder 숨긴 디렉토리를 항상 보이게 하기

단축키는 cmd + shift + . 이다.

항상 보이게 하려면 터미널을 열고 다음 명령어를 입력한다.

defaults write com.apple.Finder AppleShowAllFiles -bool true

dock 애니메이션 대기시간 제거

defaults write com.apple.dock autohide -bool true && defaults write com.apple.dock autohide-delay -float 0 && defaults write com.apple.dock autohide-time-modifier -float 0
killall Dock

dock 대기시간 복원

defaults delete com.apple.dock autohide && defaults delete com.apple.dock autohide-delay && defaults delete com.apple.dock autohide-time-modifier && killall Dock

plist vi로 보기

  • plist 바이너리를 xml로 변환
plutil -convert xml1 "<plist file>"
  • plist xml을 바이너리로 변환
plutil -convert binary1 "<plist file>"

프로그램 실행 시 argument 추가하여 실행시키기

링크로 대체

ssh ppk 개인키 파일을 .pem 파일로 교체 (ppk 개인키 변환)

.ppk 확장자의 개인키 파일 형식은 macOS 터미널에서 ssh 접속 시 개인키 파일로 사용할 수 없다.
따라서 이러한 파일을 변환해줘야 하는데 해당 방법을 알아보자.

우선 puTTY가 설치되어 있지 않다면 설치해야 한다.

brew install putty

이후 puttygen 을 통해 .ppk 파일을 변환할 수 있다.

puttygen key.ppk -O private-openssh -o output.pem

키가 생성되었다면 기본적으로 권한이 600 (rw——-) 으로 설정되어 있을텐데, 만약 권한이 다르다면 chmod 600 <file> 명령어를 통해 600으로 권한을 재설정해야 한다.

이후 이 키를 가지고 접속이 가능하다.

ssh -i output.pem user@test.com

또는 ~/.ssh/config 에 정보를 기입하고 접속할 수 있다.

# Host 별칭
    HostName #ssh 접속주소
    User #ssh 접속 유저명
    Port # ssh 접속 포트
    IdentityFile # 개인키 경로
Host sshtest
    HostName test.com
    User ubuntu
    Port 22
	  IdentityFile ~/.ssh/output.pem
# ssh 별칭
ssh sshtest

해당 내용을 시스템 설정 > 일반 > 로그인 항목 에 넣을 경우 완전히 제거할 수 있지만 sudo 비밀번호가 노출된다는 단점이 있다.

따라서 /private/etc/sudoers.d/ 디렉토리에 pmsets 라는 이름의 파일을 생성하고

cd /private/etc/sudoers.d/
touch pmsets

sudo vi /private/etc/sudoers.d/pmsets 명령어를 통해 파일을 열 수 있다.
다음과 같이 내용을 추가한다.

<계정명> ALL = NOPASSWD: /usr/bin/pmset

:w! 명령을 통해 저장하고 나와 쉘을 하나 더 열어서 sudo pmset -b disablesleep 1; 명령을 실행하였을 때
비밀번호를 입력하지 않고 실행되는 것을 확인할 수 있다.

sudoers로 진행할 경우 automator에 비밀번호를 평문으로 입력하지 않아도 실행이 된다.

macOS 안되는 명령어

which

이건 맥 뿐만 아니라 zsh 쉘을 사용하는 모든 사용자의 문제이지만
which 명령이 해당 프로그램의 실제 경로를 가리키는 것이 아닌, alias나 함수 등을 출력한다.

아래 alias를 통해 which 명령어를 bash의 which 명령어로 대체할 수 있다.

alias which="$(/bin/bash -c 'which which')"

맥에서 readlink 명령어를 사용하려고 하니 오류가 난다.

$ readlink -e sslkeylog.log
readlink: illegal option -- e

이 경우 readlink 대신 greadlink 를 사용하면 된다.

$ greadlink -f /opt/homebrew/bin/fzf
/opt/homebrew/Cellar/fzf/0.38.0/bin/fzf

greadlink 옵션은 readlink와 다른 게 없는 것 같았다.

fallocate -> mkfile

fallocate -l 1M 1Mtest.txt 명령어를 통해 1MB의 파일을 생성하려고 했는데
맥은 fallocate 명령어를 지원하지 않는다.

이 경우 mkfile 명령어를 사용하면 된다.

mkfile -n 1m 1Mtest.txt

Comments