내가 정기적으로 사용하는 파일이 여러 개 있습니다. 예를 들어 일부 구성 파일이나 로그 파일이 있습니다. Apache 로그 파일을 가정해 보겠습니다. 나는 종종 tail
그것을 원합니다 grep
. 다음을 작성하는 대신:
tail -50 /var/log/apache2/error_log
나는 글쓰기를 선호한다
tail -50 apachelog
따라서 apachelog
해당 파일 이름의 별칭 역할을 합니다. 그러나 my 에 별칭을 정의하려면 bashrc
나중에 참조할 수 있도록 파일 이름에 대한 별칭이 될 수 없는 완전한 명령이어야 합니다. 이것을 달성할 수 있는 방법이 있나요?
참고: 실행하고 싶은 다양한 파일과 다양한 명령이 있으므로 이러한 다양한 옵션에 대한 함수나 별칭을 만드는 것은 제가 선호하는 솔루션이 아닙니다.
답변1
다음을 사용하여 변수를 정의하고 $
해당 값을 호출할 수 있습니다.
apachelog=/var/log/apache2/error_log
tail -50 $apachelog
Bash에서는 더 잘할 수 없습니다. zsh에서는 명령줄의 어느 곳에서나 확장되는 전역 별칭을 정의할 수 있습니다.
alias -g apachelog=/var/log/apache2/error_log
tail -50 apachelog
apachelog
하지만 이제는 문자열을 명령에 인수로 전달하려는 경우 인용해야 한다는 점을 기억해야 하기 때문에 권장하지 않습니다 .
답변2
함수를 생성하고 "backwards" 명령을 작성할 수 있습니다.
apachelog() {
"$@" /var/log/apache2/error_log
}
apachelog tail -50
답변3
디렉토리의 별칭은 link입니다. 그렇기 때문에 한 가지 가능성은 디렉토리에 관심 있는 파일에 대한 링크를 여러 개 만드는 것입니다. 그런 다음 tail에 rtail의 별칭을 지정하여 해당 디렉터리에서 파일을 찾습니다.
답변4
이것을 네 안에 넣어라~/.bashrc
alias tailapache='tail -50 /var/log/apache2/error_log'
source ~/.bashrc
새로운 bash 세션을 실행 하거나 시작하세요...
그럼 그냥 들어가시면 됩니다tailapache