개발자 팁: 콘솔 출력을 클립보드에 자동으로 복사¶
범주: Linux/셸 생산성XSPACEbreakX 플랫폼: Linux(zsh + Konsole/KDE)
문제¶
AI 도우미와 작업할 때 터미널 출력을 복사하여 채팅에 붙여넣어야 하는 경우가 많습니다. 이는 일반적으로 다음을 의미합니다.
명령 실행
마우스로 출력 선택
복사
브라우저로 전환
붙여넣기
너무 많은 단계입니다.
해결책: preexec / precmd를 통한 자동 캡처¶
이것을 ~/.zshrc에 추가하세요:
# === AUTO-OUTPUT LOGGER ===
# Automatically saves console output to ~/t.txt and copies to clipboard.
# Toggle: set AUTO_CLIPBOARD=true/false
AUTO_CLIPBOARD=true
# Redirect stdout+stderr to ~/t.txt before each command
preexec() {
case "$1" in
sudo*|su*) return ;;
*) exec > >(tee ~/t.txt) 2>&1 ;;
esac
}
precmd() {
exec >/dev/tty 2>&1
if [ "$AUTO_CLIPBOARD" = "true" ] && [ -s ~/t.txt ]; then
cleaned=$(cat ~/t.txt \
| sed 's/\][0-9]*;[^]]*\][0-9]*;//g; s/^[0-9]*;//g' \
| sed "s|$HOME|~|g" \
| sed 's/[^[:print:]]//g' \
| grep -v '^$')
if [ -n "$cleaned" ]; then
echo "$cleaned" | xclip -selection clipboard
echo "[📋 In Zwischenablage kopiert]"
fi
fi
}
그런 다음 다시 로드하십시오.
source ~/.zshrc
결과¶
모든 명령 후 출력이 자동으로 클립보드에 저장되므로 Ctrl+V를 사용하여 AI 채팅에 붙여넣을 수 있습니다.
출력은 참조용으로 항상 ~/t.txt에 저장됩니다.
작동 방식¶
부품 |
그것이 하는 일 |
|---|---|
|
각 명령 전에 실행되고 출력을 |
|
각 명령 후에 실행되고, stdout을 복원하고 클립보드에 복사합니다. |
|
터미널에 계속 표시하면서 출력을 파일에 저장 |
|
KDE Konsole 제목 이스케이프 시퀀스( |
|
정리된 출력을 클립보드에 복사 |
요구사항¶
# Install xclip if not present
sudo pacman -S xclip # Manjaro/Arch
sudo apt install xclip # Ubuntu/Debian
⚠️ 하지 말아야 할 일¶
fc -ln -1 |을 사용하지 **마세요** bash를 사용하여 마지막 명령을 다시 실행하세요.
# ❌ DANGEROUS - do not use!
precmd() {
output=$(fc -ln -1 | bash 2>&1) # Re-executes last command!
echo "$output" | xclip -selection clipboard
}
이렇게 하면 모든 명령이 완료된 후 다시 실행되어 파괴적인 부작용이 발생할 수 있습니다. 예를 들어 파일 덮어쓰기, git commit 다시 실행, sed -i 다시 실행 등이 있습니다.
위의 preexec/precmd 접근 방식은 실행 중 출력을 캡처하여 안전하고 안정적입니다.