We currently migrate to MediaWiki from our old installation, but not all content has been migrated yet. Take a look at the Wiki Team page for instructions how to help or browse through our new wiki at wiki.linux-vserver.org to find the information already migrated.

For test it, push the source in your .bashrc or put it in the file /etc/bash_completion.d/vserver (Debian).

This release support only the command vserver.

# Completion for the vserver command. Source this file (or on some systems
# add it to ~/.bash_completion and start a new shell) and bash's completion
# mechanism will know all about vserver's options!

# If bash completion is not enabled on your system at all, please do a
#  . /etc/bash_completion
# you can put this line in your .bashrc of course.

# Known to work with bash 2.05a with programmable completion and extended
# pattern matching enabled (use 'shopt -s extglob progcomp' to enable
# these if they are not already enabled).

: ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars}
test -e "$UTIL_VSERVER_VARS" && {

. "$UTIL_VSERVER_VARS"
. "$_LIB_FUNCTIONS"

_vserver()
{
        local cur cmds cmdOpts helpCmds names names_pipe func

        COMPREPLY=()
        cur=${COMP_WORDS[COMP_CWORD]}

        # find available v-servers:
        # call function getAllVservers in vserver library
        getAllVservers names
        names_pipe=`echo ${names[@]} | sed 's/ /|/g'`

        # available commands
        cmds='start stop restart condrestart suexec exec enter chkconfig\
                running status build unify pkg apt-get apt-config apt-cache\
                rpm pkgmgmt'

        # options (long and short name)
        cmdOpts='--help --version --debug --defaulttty -s --sync -v \
                   --verbose --silent --'

        # if the previous option is a single option
        helpCmds='--help|--version'
        if [[ "${COMP_WORDS[1]}" == "@($helpCmds)" ]] ; then
                return 0
        fi

        # search a verser's name
        for (( i=0; i <  ${#COMP_WORDS[@]}-1; i++ )); do
                if [[ "${COMP_WORDS[i]}" == "@($names_pipe)" ]];  then
                        # it's found
                        break
                fi
        done

        if (( $i < ${#COMP_WORDS[@]}-1 )) ; then
                case ${COMP_WORDS[i+1]} in
                start)
                        COMPREPLY=( $( compgen -W "--rescue --rescue-cmd" -- $cu                                          r ) )
                        ;;
                # No completion for apt-config
                stop|restart|condrestart|enter|running|status|apt-config)
                        ;;
                suexec)
                        # I don't know how to do
                        COMPREPLY=( $( compgen -W  -- $cur ) )
                        ;;
                exec)
                        # I don't know how to do
                        COMPREPLY=( $( compgen -W "" -- $cur ) )
                        ;;
                build)

                        COMPREPLY=( $( compgen -W "" -- $cur ) )
                        ;;
                unify)
                        COMPREPLY=( $( compgen -W "-R" -- $cur ) )
                        ;;
                apt-get|apt-cache)
                        func=${COMP_WORDS[i+1]//-/_}
                        COMP_WORDS=( ${COMP_WORDS[@]:$((i+1))} )
                        COMP_CWORD=$((COMP_CWORD-i-1))
                        _${func}
                        ;;
                *)
                        COMPREPLY=( $( compgen -W "$cmds" -- $cur ) )
                        ;;
                esac
                return 0
        else
                COMPREPLY=( $( compgen -W "${names[@]} $cmdOpts" -- $cur ) )
                return 0
        fi

        return 0
}
complete -F _vserver -o default vserver
}

Hint: to the upsream author: I changed lines 38 and 44 !