经常要使用rdesktop来管理远程的Windows系统,这个工具小巧、高效、功能全面,不仅可以传输画面进行操作,还可以挂载文件夹、指定声音传输、共享剪贴板,但一想起在终端里敲的那一长串的命令便颇是心酸。本着利己达人的理念,花了点时间,编写了一个可视的rdesktop的配置脚本,既可以直观设置,还可以保存配置信息,方便再次读取。脚本附上,欢迎使用。
Github项目地址
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133
| #!/bin/bash
checkfile(){
if [ -f ~/.rdesktop.conf ];then dialog --title "提示" --backtitle "远程桌面设置" --clear --yesno "发现配置文件,是否读取" 16 51 x=$?
if [ "$x" -ne 1 ]; then CHOICE2='YES' fi
if [ -n "$CHOICE2" ]; then cat ~/.rdesktop.conf | while read line do command="${line}" ${command} & done else ip fi else ip fi }
ip(){ TMP="/tmp/tmp.$$" dialog --title "设置远程主机IP" --backtitle "远程桌面设置" --clear --inputbox "请输入远程主机IP" 16 51 2>$TMP IP=$(cat $TMP) rm -f "$TMP" username }
username(){ TMP="/tmp/tmp.$$" dialog --title "设置登录用户名" --backtitle "远程桌面设置" --clear --inputbox "请输入登录的用户名" 16 51 2>$TMP USERNAME=$(cat $TMP) [ -z "$USERNAME" ] && USERNAME="administrator" rm -f "$TMP" depth }
depth(){ TMP="/tmp/tmp.$$" dialog --title "设置桌面颜色深度" --backtitle "远程桌面设置" --clear --menu "请选择颜色深度" 16 51 4 \ "8" "位" \ "16" "位"\ "32" "位" 2>$TMP DEPTH=$(cat $TMP) [ -z "$DEPTH" ] && DEPTH="32" rm -f "$TMP" geometry }
geometry(){ TMP="/tmp/tmp.$$" dialog --title "设置桌面分辨率" --backtitle "远程桌面设置" --clear --inputbox "请输入桌面分辨率(eg:1200x600)" 16 51 2>$TMP GEOMETRY=$(cat $TMP) [ -z "$GEOMETRY" ] && GEOMETRY="1200x680" rm -f "$TMP" other1 }
other1(){ TMP="/tmp/tmp.$$" dialog --title "选择其他选项" --backtitle "远程桌面设置" --clear --menu "请选择附加功能" 16 51 4 "-r sound:remote" "在远程主机上播放声音" "-r sound:local" "在本机上播放声音" 2>$TMP OTHER1=$(cat $TMP) [ -z "$OTHER1" ] && OTHER1="-r sound:remote" rm -f "$TMP" other2 }
other2(){ dialog --title "选择其他选项" --backtitle "远程桌面设置" --clear --yesno "是否共享剪贴板" 16 51 x=$? if [ "$x" -ne 0 ]; then CHOICE='NO' fi
if [ -n "$CHOICE" ]; then OTHER2="" else OTHER2="-r clipboard:PRIMARYCLIPBOARD" fi disk }
save(){ command="/usr/bin/rdesktop "${IP}" -u "${USERNAME}" -a "${DEPTH}" -g "${GEOMETRY}" "${OTHER1}" "${OTHER2}" "${DOCUMENT} dialog --title "保存配置" --backtitle "远程桌面设置" --clear --yesno "是否保存配置?" 16 51 x=$? if [ "$x" -ne 0 ]; then CHOICE1='NO' fi
if [ -n "$CHOICE1" ]; then OTHER2="" else echo "${command}">~/.rdesktop.conf fi }
disk(){ dialog --title "挂载文件夹" --backtitle "远程桌面设置" --clear --yesno "是否挂载本地文件夹到远程机?" 16 51 x=$? if [ "$x" -ne 1 ]; then CHOICE5='YES' fi
if [ -n "$CHOICE5" ]; then TMP="/tmp/tmp.$$" dialog --title "挂载文件夹" --backtitle "远程桌面设置" --clear --inputbox "请输入准备挂载的文件夹路径" 16 51 2>$TMP docpath=$(cat $TMP) DOCUMENT="-r disk:z="${docpath} rm -f "$TMP" else DOCUMENT="" fi
save }
checkfile ${command} &
|