Ubuntu 11.04 또는 10.04에서 Fedora처럼 하나만 사용할 수 있도록 apt-get
올인원 apt-cache
을 어떻게 만들 수 있습니까 ?myapt
예를 들어:
myapt search yum # same as apt-cache search
myapt remove yum # same as apt-get remove
myapt install yum # same as apt-get install
이에 대한 별칭을 수행하는 방법을 아시나요?
답변1
다음 내용으로 스크립트를 만들 수 있습니다.
#!/bin/bash
command="$1"; shift
case $command in
add|depends|dotty|dump|dumpavail|gencaches|madison|pkgnames|policy|rdepends|search|show|showpkg|showsrc|stats|unmet|xvcg)
apt-cache "$command" "$@"
;;
autoclean|autoremove|build-dep|check|clean|dist-upgrade|dselect-upgrade|install|purge|remove|source|update|upgrade)
apt-get "$command" "$@"
;;
esac
당신이 그것을 호출한다고 가정하자 myapt
. 그런 다음 bash 완료의 이점을 계속 누리려면 다음 줄을 추가해야 합니다 ~/.bashrc
.
_myapt() {
_apt_get
tt=("${COMPREPLY[@]}")
_apt_cache
COMPREPLY+=("${tt[@]}")
return 0
} &&
complete -F _myapt $filenames myapt
불행하게도 $command
모든 옵션 앞에 와야 하지만 명령 뒤에 오는 옵션에서는 bash 완성이 작동하지 않는 것 같습니다.
답변2
별칭을 사용할 수 있는지 잘 모르겠지만 bash를 사용하여 스크립트를 만들 수 있습니다.
이제 저는 bash 스크립터가 아니므로 이를 수행하기 위한 정확한 코드를 알려줄 수는 없지만 다음과 같은 작업을 수행할 수 있습니다.(이것은 일종의 의사 코드이므로 작동할 것이라고 기대하지 마십시오!!!):
var action
var input
get action, input
if action == search
then do apt-cache search input
if action == remove
then do apt-get remove input
if action == install
then do apt-get install input
예를 들어 Python이나 Ruby와 같이 익숙한 언어로 스크립트(또는 컴파일된 애플리케이션)를 작성할 수 있다는 점을 명심하세요. bash일 필요는 없습니다.
다시 한 번 말씀드리지만, 제 예는 단지의사코드.