#!/bin/bash #################################################################### # # Создан: Ср 14 авг 2013 12:07:22 # Изменён: Ср 28 авг 2013 15:08:21 # ################################################################################ # Дополнение команд ------------------------------------------------------------ complete -W "accounts computer config continue file \ group help helpmsg localgroup name pause print \ send session share start statistics stop time use user view" \ net #Компоненты Панели управления Windows complete -W 'access appwiz desk directx hdwwiz intl \ inetcpl joy mmsys ncpa netsetup odbccp32 \ powercfg sysdm timedate teltphon wuaucpl wscui' \ cpl #Оснастки Windows complete -W 'compmgmt gpedit dsa ciadv certmgr devmgmt \ dfrg diskmgmt eventvwr fsmgmt ntmsmgr ntmsoprq \ perfmon lusrmgr rsop services secpol wmimgmt' \ msc complete -W "boot config continue control create delete description \ enumdepend failure failureflag getdisplayname getkeyname \ interrogate lock pause qc qdescription qfailure query \ queryex querylock sdset sdshow start stop" \ sc #Запуск сервисов _sc_start() { if [[ $2 == "" ]]; then COMPREPLY=($(sc query type= service state= inactive | grep SERVICE_NAME | cut -d ':' -f 2- )) else COMPREPLY=($(sc query type= service state= inactive | grep SERVICE_NAME | cut -d ':' -f 2- | grep $2 )) fi } complete -F _sc_start sc_start #Приостановление и остановка работы сервисов _sc_set_status() { if [[ $2 == "" ]]; then COMPREPLY=($(sc query type= service state= all | grep SERVICE_NAME | cut -d ':' -f 2- )) else COMPREPLY=($(sc query type= service state= all | grep SERVICE_NAME | cut -d ':' -f 2- | grep $2 )) fi } complete -F _sc_set_status sc_stop sc_pause sc_continue #Дополнение имён хостов -------------------------------------------------------- #Подключение по rdp _rdp () { if [[ $2 == "" ]]; then COMPREPLY=($(echo "cb\nts\nms\n$(qappsrv | tail -n +3 | tr ' ' ' ')")) else COMPREPLY=($(echo "cb\nts\nms\n$(qappsrv | tail -n +3 | tr ' ' ' ')" | grep -i $2)) fi } complete -F _rdp rdp #Подключение по vnc _vnc() { if [[ $2 == "" ]]; then COMPREPLY=($(net view | grep -o '^\\\\[^[:space:]]*' | sed 's/^\\\\//')) else COMPREPLY=($(net view | grep -o '^\\\\[^[:space:]]*' | sed 's/^\\\\//' | grep "$2")) fi } complete -F _vnc vnc #Прочее ------------------------------------------------------------------------ #Дополнение wiki-страниц. #Рабочая wiki небольшая, все файлы расположены в корне директории _wiki() { wikidir="//file-srv/homedir$/$(whoami)/wiki/" if [[ $2 == "" ]]; then COMPREPLY=($(\ls -1 ${wikidir}/*.html | sed 's/^.*\/\(.*\)\.html$/\1/; s/ /_/g')) else COMPREPLY=($(\ls -1 ${wikidir}/*.html | sed 's/^.*\/\(.*\)\.html$/\1/; s/ /_/g' | grep "^$2")) fi } complete -F _wiki wiki