如何使终端建议自定义命令的选项?

时间:2015-01-26 18:18:30

标签: linux shell ubuntu terminal console

我是Kubuntu用户。

如果我输入

$ apt-get(tab)

在终端上,壳牌建议选择:
autoclean,build-dep,check,...,clean,download,install,remove,update

如果我想在路径中使用别名或shell脚本的选项使用自定义命令,我如何制作终端(或Shell)建议选项?


例如,命令是'myclock',其选项是'us'和'korea。'

如果我输入

$ myclock korea

- > (打印韩国时间)

如果我输入

$ myclock us

- > (美国时间打印)

当我输入

时,如何设置终端建议选项('我们'或'韩国') $ myclock(tab)

提前谢谢!

1 个答案:

答案 0 :(得分:0)

您需要通过.bash_profile或kubuntu .profile

添加自定义别名

sudo in root并使用您选择的文本编辑器。我更喜欢vi,但你可以使用nano!

 sudo -i
  root@server vi .profile

默认情况下,您的个人资料应如下所示

if [ "$BASH" ]; then
  if [ -f ~/.bashrc ]; then
    . ~/.bashrc
  fi
fi

mesg n

所以现在添加一个别名。你可以命名你的别名!下面是我使用的.profile的自定义别名。我在SF工作,住在奥克兰,所以天气可能略有不同,所以我创建了一个自定义别名来卷曲天气

alias weatherSF="curl -s 'http://rss.accuweather.com/rss/liveweather_rss.asp?metric=1&locCode=en|us|san-francisco-ca|94103' | sed -n '/Currently:/ s/.*: \(.*\): \([0-9]*\)\([CF]\).*/\2°\3, \1/p'"
alias weatherOak="curl -s 'http://rss.accuweather.com/rss/liveweather_rss.asp?metric=1&locCode=en|us|Oakland-ca|94612' | sed -n '/Currently:/ s/.*: \(.*\): \([0-9]*\)\([CF]\).*/\2°\3, \1/p'"

现在请注意,如果你尝试使用Tab键它将不起作用..所以你需要做的是

source ~/.profile

在源代码之后你应该能够选择你的新别名!

如果您对其他别名感兴趣,请参阅其他一些示例

alias myip='curl ip.appspot.com'                    # myip:         Public facing IP Address
alias netCons='lsof -i'                             # netCons:      Show all open TCP/IP sockets
alias flushDNS='dscacheutil -flushcache'            # flushDNS:     Flush out the DNS Cache
alias lsock='sudo /usr/sbin/lsof -i -P'             # lsock:        Display open sockets
alias lsockU='sudo /usr/sbin/lsof -nP | grep UDP'   # lsockU:       Display only open UDP sockets
alias lsockT='sudo /usr/sbin/lsof -nP | grep TCP'   # lsockT:       Display only open TCP sockets
alias ipInfo0='ipconfig getpacket en0'              # ipInfo0:      Get info on connections for en0
alias ipInfo1='ipconfig getpacket en1'              # ipInfo1:      Get info on connections for en1
alias openPorts='sudo lsof -i | grep LISTEN'        # openPorts:    All listening connections
alias showBlocked='sudo ipfw list'                  # showBlocked:  All ipfw rules inc/ blocked IPs

check this website for some tips