History 및 fc와 유사하지만 유용한 명령의 개인화된 목록입니다.

History 및 fc와 유사하지만 유용한 명령의 개인화된 목록입니다.

나는 특정 환경에서 사용해야 하는 가장 유용한 명령에 쉽게 액세스하려고 몇 시간을 보냈고 이 목적으로 히스토리를 사용한다는 "믿을 수 없는" 아이디어를 얻었습니다. 어쨌든 bash_history_template이라는 파일이 있습니다. 자주 사용하는 명령에 다음을 추가했습니다.

~/.bash_history_template>>~/.bash_history

~/.bashrc에서는 자주 사용하는 명령 목록에 쉽게 액세스할 수 있습니다(더 복잡하지만 이해하실 수 있습니다).

내 질문은: 기록이나 fc를 사용하는 대신 다른 명령을 사용하여 .bash_history_template 파일에 있는 기존 명령을 가져오고 멋진 바로 가기를 사용하여 실행하고 편집하는 다른 방법이 있습니까(예: !number 또는 fc number) 입니다.

답변1

정확히 귀하가 요청한 내용은 아니지만 다른 옵션입니다.

~/.bash_history자주 실행되는 명령을 파일에서 검색합니다 . 동일한 명령의 여러 인스턴스를 분석하여 변수로 변환될 수 있는 항목을 찾습니다.

또한 이러한 명령에 대한 매뉴얼 페이지를 확인하여 나중에 사용할 수 있는 옵션을 확인할 수도 있습니다. 하지만 이에 대해 너무 많은 시간이나 노력을 들이지 말고 이미 사용하고 있는 기능/옵션/인수에 집중하세요. 실제로 필요할 때 언제든지 스크립트를 업데이트하여 새로운 기능을 추가할 수 있습니다.

이러한 명령을 실행하는 래퍼 스크립트를 작성하여 명령줄에서 변수에 대한 매개변수를 가져옵니다. 필요한 경우 getopts옵션을 사용하여 스크립트를 처리합니다. 이러한 스크립트는 bash, awk, Perl 또는 사용하기에 적합하고 현재 작업에 적합하다고 생각하는 모든 것이 될 수 있습니다.

를 사용하는 경우 getopts유용한 니모닉 역할을 하는 옵션 문자를 사용해 보세요. 또는 다른 프로그램(특히 유사하거나 개념적으로 관련된 프로그램)에 공통적인 옵션 문자입니다. 예를 들어 스크립트에서 대소문자를 구분하지 않는 정규식 -i일치를 수행해야 하는 경우 -v일치를 반대로 수행하세요. stdin에서 일련의 항목(예: 파일 이름)을 가져오거나 stdout에서 항목 목록을 생성하는 경우 -zNUL로 구분된 입력/출력을 사용하십시오. 이렇게 하면 스크립트를 다른 프로그램(예: 대부분의 GNU 도구)과 함께 파이프할 수 있습니다. NUL로 구분된 입력과 함께 작동합니다.

라는 디렉토리를 생성 하고 이를 $PATH에 추가합니다( 또는 ~/bin/편집 ). ~/bin/에 스크립트를 저장합니다.~/.bashrc~/.bash_profile

이들 중 일부를 여러 사용자(예: 루트 및 귀하의 사용자)가 실행해야 하는 경우 해당 스크립트를 거기에 넣는 것을 고려하십시오 /usr/local/bin/.

스크립트 이름은 이전 줄 번호보다 기억하기 쉽습니다(그리고 쉘을 사용할 때 변경되지 않습니다). 각 스크립트에 수행 작업과 필요한 매개변수를 설명하는 설명을 추가할 수 있습니다. 또는 -h또는 옵션을 추가할 수도 있습니다 --help.

저는 수십 년 동안 이 작업을 해왔습니다. 제가 여러 번 수행한 거의 모든 작업은 아마도 종종 스크립트로 바뀌었을 것입니다. 가장 어려운 부분은 스크립트에 대한 유용하고 설명적인 이름을 찾는 것입니다 :)

그런데 스크립트에 대한 모든 변경 사항의 개정 내역을 저장하는 git init데 사용할 수 있도록 ~/bin/ 디렉터리에서 실행하는 것이 좋습니다 .git

답변2

@cas의 답변과 이 답변의 조합으로 내 문제가 해결되었습니다.

phew() {
    c="echo 'This is not really my super long winded command'"
    read -p "Hit enter to run: $c"
    $c
}

출처:https://stackoverflow.com/questions/62667273/can-bash-write-a-command-to-the-terminal-input

관련 정보