매일 실행해야 하는 명령이 많으며 일반적으로 약간의 변형이 있습니다.
지금은 모두 저장 .bash_history
하고 액세스하는 데 CTRL-를 사용 R하지만 더 좋은 방법이 있는지 궁금합니다. 내가 찾고 있는 것:
- 새로운 명령을 쉽게 추가
- 원하는 명령을 쉽게 검색하고 재실행
- 제안에 불필요한 명령을 피하세요
cd
불행하게도 bash_history는 세 번째 요구 사항에 그다지 강력하지 않습니다. and 를 수행하면 ls
기록 파일이 매우 빨리 채워집니다. 나는 최근에 중복이나 특정 명령을 피하기 위해 기록을 구성할 수 있다는 것을 배웠지 HIST_SIZE
만, 모든 것을 구성하기 전에 이것이 최선의 방법인지 확인하고 싶습니다.
답변1
또 다른 팁: 저는 가끔 명령을 북마크/표시하기 위해 주석을 사용합니다.
my_command #bookmark
그 다음에:
[ctrl-r]#bookmark
답변2
다음 readline 명령이 매우 유용하다는 것을 알았습니다.
history-search-backward,
history-search-forward
reverse-search-history
(이것은 - , - forward-search-history
에 대한 일반적인 바인딩 과 다릅니다 .)CtrlRCtrlS
이 명령을 다음 줄 Ctrl과 결합 Up하여 Ctrl입력 했습니다 .Down~/.inputrc
"\e[1;5A": history-search-backward
"\e[1;5B": history-search-forward
작동 방식: 명령 시작 부분에 몇 개의 문자를 쓰고 Ctrl- 를 누르면 Up해당 접두어로 시작하는 다음 이전 명령이 표시되고, 다음 명령을 보려면 다시 누르는 식입니다. 만족스러우면 명령을 수정하고 Enter실행을 누를 수 있습니다.
답변3
"별칭"을 사용하세요
alias
훌륭한 도구입니다.
- 현재 셸 세션 중에 사용할 명령줄을 쉽게 선언할 수 있습니다.
- 나중에 사용하려면 셸 구성에 추가하면 됩니다.
별칭을 사용하면 마치 직접 입력한 것과 같기 때문에 매우 유연합니다. 예를 들어 파이프와 함께 사용할 수 있습니다.
alias findfoo="grep 'foo'"
echo 'foo1 \n foo2 \n bar1 \n bar2 \n foo3' | findfoo # Does your custom grep
아직 지정하지 않은 플래그를 전달하여 "약간의 변형"을 만들 수 있어야 합니다.
echo 'foo1 \n foo2 \n bar1 \n bar2 \n foo3' | findfoo -v # finds non-matches
답변4
나는 사본을 보관하고 있습니다Git의 .bash_history. 이를 단순화하기 위해 다음과 같이 설정했습니다.
# don't put duplicate lines in the history
# don't save commands which start with a space
HISTCONTROL=ignoredups:erasedups:ignorespace
# append to the history file, don't overwrite it
shopt -s histappend
존재하다.bashrc, 및 다음 명령(일반 용도로 수정됨)정리 스크립트
# Ensure a single space at the end of each line to easier add more parameters
sed -i -e 's/ *$/ /' "~/.bash_history"
sort --unique --output="~/.bash_history" "~/.bash_history"
행을 추가하기 전에 실행합니다 git gui
. 각 명령은 기록 파일을 수정하므로 특정 저장소를 업데이트하는 특수 명령도 있습니다.
git stash && git pull && git stash pop