macOS 터미널 명령어를 통한 설정 정리
12 Apr 2023 | macOS terminal command
목차
- macOS ssh 재시작
- 사전찾기 (ctrl+cmd+d) 단축키 비활성화
- 충전 없이 클램쉘 활성화
- Finder 숨긴 디렉토리를 항상 보이게 하기
- dock 애니메이션 대기시간 제거
- plist vi로 보기
- 프로그램 실행 시 argument 추가하여 실행시키기
- ssh ppk 개인키 파일을 .pem 파일로 교체 (ppk 개인키 변환)
- 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 -> greadlink
맥에서 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