个人使用LD偷懒的几个小脚本放在论坛备忘(上次硬盘废了)
Tofloor
poster avatar
Coollove
deepin
2012-04-21 22:26
Author
本地源备份:
  1. #! /bin/bash
  2. function pause(){
  3.         read -n 1 -p "$*" INP
  4.         if [[ $INP != '' ]] ; then
  5.                 echo -ne '\b \n'
  6.         fi
  7. }
  8. echo '开始设置本地源...'
  9. pause 'Press [Enter] to continue or Ctrl-C to cancel...'
  10. Mesh="/media/iData/Dropbox/Sky@Live Mesh"
  11. if [ -d "$Mesh" ]; then
  12. mkdir -p "/media/iData/Backup/Ubuntu/Packages"
  13. mkdir -p "/media/iData/Backup/Ubuntu/dists/Oneiric/main/binary-amd64"
  14. mkdir -p "/media/iData/Backup/Ubuntu/dists/Oneiric/main/binary-i386"
  15. ln -fsT "/media/iData/VirtualBox VMs" ~/"VirtualBox VMs"
  16. ln -fsT "/media/iData/VirtualBox VMs" ~/"vmware"
  17. else
  18. mkdir -p "$Mesh"
  19. mkdir -p "/media/iData/VirtualBox VMs"
  20. fi
  21. Backup="/media/iData/Backup/Ubuntu/Packages"
  22. if [ -d "$Backup" ]; then
  23.     sudo ln -fsT "/media/iData/Backup/Ubuntu/Packages" "/var/cache/apt/archives"
  24. else
  25. echo '请先行设置"/media/iData"为自动挂载...'
  26. pause 'Press [Enter] to continue or Ctrl-C to cancel...'
  27.     ntfs-config-root
  28.     mkdir -p "$Backup"
  29. fi
  30. pause '导出系统安装包列表,重新下载系统安装包...(Y/n)'
  31. if [[ "$INP" == [Yy] ]]; then
  32.     dpkg --get-selections | grep -v deinstall | sed 's/[\t ]\+install//g' > ~/packageslist
  33.     cat ~/packageslist | xargs sudo apt-get -d --reinstall -y install
  34. #重新下载系统安装包.用cat和xargs配合。apt那一段参数“-d”表示只下载不安装,“-reinstall”表示重新安装,如不用这个参数,那么系统已经有装的包就不下载了, “-y”表示有询问是自动回答是。
  35. fi
  36. pause '清理安装包生成新的Packages.gz...(Y/n)'
  37. if [[ "$INP" == [Yy] ]]; then
  38. sudo apt-get install -f
  39. sudo apt-get autoremove --purge
  40. sudo apt-get autoclean --purge
  41. SOURCE=/var/cache/apt/archives
  42. DEST=/media/iData/Backup/Ubuntu/dists/Oneiric/Packages
  43. if [ ! -d "$DEST" ]; then
  44. mkdir -p "$DEST"
  45. fi
  46. cd $SOURCE
  47. for name in $(ls *.deb);
  48. do
  49. cd $DEST
  50. rm $(dpkg --info $SOURCE/$name | grep Package: | sed 's/Package://')_*
  51. sudo mv $SOURCE/$name $DEST/
  52. cd $SOURCE
  53. done
  54. cd $DEST
  55. cd ..
  56. rm -fR ../../Packages
  57. mv Packages ../../Packages
  58. cd ../..
  59. sudo ln -fs "/media/iData/i-box@Live Mesh/Linux Deepin/Packages"/*deb "/media/iData/Backup/Ubuntu/Packages"
  60. sudo ln -fs "/media/iData/i-box@Live Mesh/WineApp"/*deb "/media/iData/Backup/Ubuntu/Packages"
  61. #sudo ln -fsT "/media/iData/i-box@Live Mesh/Linux Deepin/Packages/wps-office_8.1.0.3151+wps+wpp~a3_all.deb" "/media/iData/Backup/Ubuntu/Packages/wps-office_8.1.0.3151+wps+wpp~a3_all.deb"
  62. #dpkg-scanpackages Packages Oneiric | gzip > dists/Oneiric/main/binary-amd64/Packages.gz
  63. #dpkg-scanpackages Packages Oneiric | gzip > dists/Oneiric/main/binary-i386/Packages.gz
  64. dpkg-scanpackages Packages 2> dists/Oneiric/main/Packages.log
  65. dpkg-scanpackages Packages /dev/null | gzip -9c > dists/Oneiric/main/binary-amd64/Packages.gz
  66. dpkg-scanpackages Packages /dev/null | gzip -9c > dists/Oneiric/main/binary-i386/Packages.gz
  67. fi
  68. echo "终端弹窗/etc/apt/sources.list文本中添加:本地源路径
  69. ################################################################################
  70. 复制粘贴到弹窗文本
  71.                deb file:///media/iData/Backup/Ubuntu/ Oneiric main
  72. ################################################################################"
  73. pause '添加:本地源路径...(Y/n)'
  74. if [[ "$INP" == [Yy] ]]; then
  75. sudo gedit /etc/apt/sources.list
  76. fi
  77. pause '更新系统...(Y/n)'
  78. if [[ "$INP" == [Yy] ]]; then
  79. sudo apt-get update
  80. sudo apt-get dist-upgrade
  81. fi
  82. echo '任意键退出...'
  83. pause 'Press any key to continue...'
Copy the Code
Reply Favorite View the author
All Replies
Coollove
deepin
2012-04-22 22:32
#1
32Bit包转64Bit包:
  1. #!/bin/bash
  2. #
  3. #Make 32 bit deb package installable in 64 bit system.       
  4. #author Jarlyyn hsu http://jarln.net
  5. #usage: deb32toall 32bir_deb_filename
  6. #depandment:zenity see about http://library.gnome.org/users/zenity/stable/
  7. #depandment:mktemp to make temp unzip folder
  8. #depandment:sed
  9. #depandment:dpkg dpkg-deb
  10. main()
  11. {
  12.   init_string
  13.   check_depandment
  14.   check_infile "$@"
  15.   convert_file
  16. }
  17. #Output string list
  18. init_string()
  19. {
  20.   outfile="%s.all.deb"
  21.   err_nofile="No selected file."
  22.   err_notdeb="文件必须以.deb结尾。"
  23.   err_notexist="指定的文件 %s 不存在。"
  24.   err_outfileexist="输出文件%s 已存在。转换终止。"
  25.   err_unparkerr="无法展开deb包,请检查 ' %s '的文件格式。\r\n%s"
  26.   err_makeerr="无法制作deb包,请检查 ' %s '文件及所在目录的权限。\r\n%s"
  27.   err_ok="转换完成,输出文件为 %s 。"
  28.   title_ok="转换完毕"
  29.   title_inputfile="请输入您要处理的32位deb文件"
  30.   progress_title="转换deb文件"
  31.   progress_text="正在转换……"
  32.   progress_unpack="解压缩DEB文件。"
  33.   progress_unpackcontrol="解压缩控制文件"
  34.   progress_sed="替换控制文件"
  35.   progress_make="生成deb文件。可能会花费较长时间,请稍候……"
  36.   progress_ok="转换完成,输出文件为 %s 。"
  37.   progress_rm="删除临时文件"
  38.   addition_depand=", ia32-libs, ia32-libs-gtk"
  39. }
  40. check_depandment()
  41. {
  42.   for cmd in "/usr/bin/zenity" "/bin/sed" "/bin/mktemp" "/usr/bin/dpkg" "/usr/bin/dpkg-deb"  
  43.   do
  44.     if [ ! -e $cmd ] ;then
  45.       echo "$cmd not found"
  46.       exit
  47.     fi
  48.   done
  49. }
  50. err(){
  51.   zenity --error --text="`printf "$@"`"
  52.   exit
  53. }
  54. info(){
  55.   zenity --info --title="$3" --text="`printf "$1" $2`"
  56. }
  57. # check input file
  58. check_infile()
  59. {
  60.   infile="$@"
  61.   if [ -z "$infile" ] ;then
  62.     #show file dialog
  63.     infile=`zenity --file-selection  --file-filter="*.deb" --title "$title_inputfile"`
  64.     if [ $? != 0 ] ;then
  65.       echo $err_nofile
  66.       exit
  67.     fi
  68.   fi
  69.   #Validate Filename
  70.   filename=`expr match "$infile" "\(.*\)\.deb$"`
  71.   if [ -z "$filename" ] ;then
  72.     err "$err_notdeb"
  73.   fi
  74.   filename=`printf "$outfile" "$filename"`
  75.   #find file
  76.   if [ ! -e "$infile" ] ;then
  77.     err "$err_notexist" "$infile"
  78.   fi
  79.   if [ -e "$filename" ] ;then
  80.     err "$err_outfileexist" "$filename"
  81.   fi
  82. }
  83. convert_file()
  84. {
  85.   tmpdir=`mktemp -d /tmp/deb32toall.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX`
  86.   if [ ${tmpdir:0:5} != "/tmp/" -o  ! -d "$tmpdir" ] ;then
  87.     #make sure tmpdir
  88.     #make sure tmpdir is in /tmp/ for avoid wrong rm.
  89.     exit
  90.   fi
  91.   #########convert begin###########
  92.   (echo "10" ; echo "# $progress_unpack" ; dpgk_err=`dpkg-deb -x "$infile" "$tmpdir"`
  93.   if [ $? != 0 ] ;then
  94.     echo "100"
  95.     progress_err=-1
  96.     err "$err_unparkerr" "$infile" "$dpgk_err"
  97.   fi
  98.   echo "30" ; echo "# $progress_unpackcontrol" ; dpkg-deb --control "$infile" "$tmpdir/DEBIAN" > /dev/null
  99.   echo "35" ; echo "# $progress_sed" ; sed -i "s/^\s*Architecture:\s*i386\s*$/Architecture: all/" "$tmpdir/DEBIAN/control" > /dev/null
  100.   echo "40" ;sed -i -r "s/^\s*(Depends: .*)$/\1$addition_depand/" "$tmpdir/DEBIAN/control" > /dev/null
  101.   echo "50" ; echo "# $progress_make" ; dpgk_err=`dpkg -b "$tmpdir" "$filename"`
  102.   if [ $? != 0 ] ;then
  103.     progress_err=-1
  104.     err "$err_makeerr" "$filename" "$dpgk_err"
  105.   fi
  106.   echo "100";
  107.   )|zenity --progress \
  108.           --title="$progress_title" \
  109.           --text="$progress_text" \
  110.           --auto-close\
  111.           --percentage=0
  112.   rm "$tmpdir" -r -f
  113.   if [ "$?" == "-1" -o "$progress_err" == "-1" -o ! -e "$filename" ] ;then
  114.     exit
  115.   fi
  116.   info "$err_ok" "$filename" "$title_ok"
  117.   ###########convert end###########
  118.   ###########check for gdebi gui??
  119.   if [ -e "/usr/bin/gdebi-gtk" ] ;then
  120.     /usr/bin/gdebi-gtk "$filename"
  121.   elif [ -e "/usr/bin/gdebi-kde" ] ;then
  122.     /usr/bin/gdebi-kde "$filename"
  123.   fi
  124. }
  125. main "$@"
Copy the Code
Reply View the author
Coollove
deepin
2012-04-22 22:33
#2
双显卡切换:
  1. #! /bin/bash
  2. function pause(){
  3.         read -n 1 -p "$*" INP
  4.         if [[ $INP != '' ]] ; then
  5.                 echo -ne '\b \n'
  6.         fi
  7. }
  8. #Checking battery state...
  9. echo "
  10. ################################################################################
  11.                                      小知识:
  12. 首先,vgaswitcheroo 是内核提供的组件,但有这一组件(或者说有下文提到的文件)并不代表其在您的机器上能够正常使用。此外根据某些用户提供的信息,vgaswitcheroo 仅当在 KMS 开启状态下才用,所以请首先装好显卡的开源驱动并保持 KMS 开启。
  13. 查看当前显卡使用状态.读取 /sys/kernel/debug/vgaswitcheroo/switch 这一文件的信息。不出意外您可能会看到类似下面(但不完全相同)的内容:
  14.     0:DIS: :Pwr:0000:01:00.0
  15.     1:IGD:+:Pwr:0000:00:02.0
  16. 其中“DIS”表示独立显卡,“IGD”表示集成显卡;加号(“+”)表示当前用作输出(或称“连接上”(connected))的显卡;“Pwr”代表正在供电,“Off”代表已关闭。如果看到两个显卡都显示“Pwr”,则说明都在消耗着电能。
  17. ################################################################################"
  18. pause '查看当前显卡使用状态...(Y/n)'
  19. if [[ "$INP" == [Yy] ]]; then
  20. sudo cat /sys/kernel/debug/vgaswitcheroo/switch
  21. fi
  22. pause '打开所有的显卡,给所有显卡加电,使其运行,但不改变当前输出的状态...(Y/n)'
  23. if [[ "$INP" == [Yy] ]]; then
  24. sudo sh -c "echo ON > /sys/kernel/debug/vgaswitcheroo/switch"
  25. fi
  26. pause '切换显卡, 独立显卡0 or 集成显卡1...(Y/n)'
  27. if [[ "$INP" == [Yy] ]]; then
  28. echo '0切换到独立显卡,使用独立显卡作为输出(即“连接上”独立显卡)...'
  29. pause '1切换到集成显卡,使用集成显卡作为输出(即“连接上”集成显卡)...'
  30. if [[ "$INP" == 0 ]]; then
  31.     sudo sh -c "echo DIS > /sys/kernel/debug/vgaswitcheroo/switch"
  32. elif [[ "$INP" == 1 ]]; then
  33.     sudo sh -c "echo IGD > /sys/kernel/debug/vgaswitcheroo/switch"
  34. fi
  35. fi
  36. echo "
  37. ################################################################################
  38.                                      小知识:
  39. 暂时性的关闭某一显卡.注意:下面和内核的交互是通过操作 /sys/kernel/debug/vgaswitcheroo/switch 这个“虚拟文件”实现的,而这一文件每次开机会重新创建,所以您对其所做的修改都是暂时的,重启后会失效。
  40. ################################################################################"
  41. pause '关闭未使用的显卡,显示当前显卡状态...(Y/n)'
  42. if [[ "$INP" == [Yy] ]]; then
  43. sudo sh -c "echo OFF > /sys/kernel/debug/vgaswitcheroo/switch"
  44. sudo cat /sys/kernel/debug/vgaswitcheroo/switch
  45. fi
  46. echo "
  47. ################################################################################
  48.                                      小知识:
  49.   #/etc/rc.local可开机启动root权限项...
  50.   #行尾:
  51.   # By default this script does nothing.
  52.   '将要实现的启动加入...'
  53.   exit 0
  54. 例如:
  55.   #行尾:
  56.   # By default this script does nothing.
  57.   sudo sh -c 'echo OFF > /sys/kernel/debug/vgaswitcheroo/switch' #开机关闭未使用显卡
  58.   exit 0
  59. ################################################################################"
  60. pause '终端弹窗中编辑/etc/rc.local文本...(Y/n)'
  61. if [[ "$INP" == [Yy] ]]; then
  62. sudo gedit /etc/rc.local
  63. fi
  64. echo "
  65. ################################################################################
  66.                                      小知识:
  67. 要检查你的内核是否是正确的选项,您可以检查该文件在/boot目录配置2.6.nn毫米通用编译:
  68. grep -i switcheroo /boot/config-2.6.*
  69. vga_switcheroo机制只会是积极的,当内核使用的启动“modeset = 1”的内核选项,和/或缺席的的“nomodeset”选项。
  70. 为了测试如果vga_switcheroo启用,看交换机的文件:
  71. ls -l /sys/kernel/debug/vgaswitcheroo/switch
  72. 使用vga_switcheroo
  73. 一旦你保证,vga_switcheroo可用,您可以使用这些选项,GPU之间切换。准备为锁定(无论是立即,或在一分钟后),这个文件的存在并不意味着该机器支持。
  74. echo ON > /sys/kernel/debug/vgaswitcheroo/switch
  75. 在GPU上断开(不是当前驱动输出),但原来不切换输出。
  76. echo IGD > /sys/kernel/debug/vgaswitcheroo/switch
  77. 与输出连接集成显卡。
  78. echo DIS > /sys/kernel/debug/vgaswitcheroo/switch
  79. 与输出连接独立显卡。
  80. echo OFF > /sys/kernel/debug/vgaswitcheroo/switch
  81. 关闭目前正在断开的图形卡。
  82. echo DIGD > /sys/kernel/debug/vgaswitcheroo/switch
  83. 排队切换到集成显卡,下次重新启动X服务器时发生。
  84. echo DDIS > /sys/kernel/debug/vgaswitcheroo/switch
  85. 排队切换到独立显卡,下次重新启动X服务器时发生。
  86. /etc/init.d/rc.local
  87. chown USERNAME /sys/kernel/debug/vgaswitcheroo/switch
  88. ################################################################################"
  89. echo '#纵览整个进程树结构,终止僵死进程最上层的进程...'
  90.   pstree -up | less
  91. echo '任意键退出...'
  92. pause 'Press any key to continue...'
Copy the Code
Reply View the author
Coollove
deepin
2012-04-22 22:34
#3
代理安装Dropbox:
  1. #! /bin/bash
  2. function pause(){
  3.         read -n 1 -p "$*" INP
  4.         if [[ $INP != '' ]] ; then
  5.                 echo -ne '\b \n'
  6.         fi
  7. }
  8. echo 本文介绍Ubuntu 11.10 64bit下面安装Dropbox的详细过程。
  9. echo 准备工作,先下载Dropbox,或从Ubuntu软件中心安装Dropbox,然后右键下载目录打开终端执行:
  10. sudo dpkg -i ./nautilus-dropbox*
  11. sudo apt-get install proxychains
  12. echo "###################################
  13. 官方命令行安装方法:
  14. wget "https://linux.dropbox.com/packages/ubuntu/nautilus-dropbox_0.7.1_amd64.deb" | dpkg -i nautilus-dropbox*
  15. cd ~ && wget -O - "https://dl-web.dropbox.com/u/17/dropbox-lnx.x86_64-1.2.52.tar.gz" | tar xzf -
  16. sudo ln -fsT ~/.dropbox-dist /root/.dropbox-dist
  17.       ###################################"
  18. echo 接下来更改proxychains的代理设置,终端弹窗/etc/proxychains.conf文本中编辑:
  19. echo "###################################"
  20. echo  行尾:
  21. echo  "# defaults set to "tor""
  22. echo  socks5 127.0.0.1 9050
  23. echo  更改为:
  24. echo  "# set to "Free Ovi""
  25. echo  http   127.0.0.1 8580
  26. echo "###################################"
  27. pause 'Press [Enter] key to continue...'
  28. sudo gedit /etc/proxychains.conf
  29. echo 接下来就可以用代理打开Dropbox进行安装了,终端执行:
  30. pause 'Press [Enter] key to continue...'
  31. proxychains dropbox start -i
  32. echo 等待下载安装文件:
  33. echo 然后不断的点击Next
  34. echo 最后,享受Dropbox带来的完美云同步吧^ ^
  35. echo Dropbox出现错误消息提示运行命令:
  36. echo "echo 100000 | sudo tee /proc/sys/fs/inotify/max_user_watches"
  37. echo 不幸的是在/proc/sys目录中放置任何东西都不是永久性的,你在下次开机之后。问题重现,但它也有情侣。
  38. echo "方法1.终端弹窗/etc/sysctl.conf文本中添加:
  39. ################################################################################
  40. 复制粘贴到弹窗文本
  41.                #为Dropbox同步大量文件的修复
  42.                fs.inotify.max_user_watches=100000
  43. ################################################################################"
  44. pause 'Press [Enter] key to continue...'
  45. sudo gedit /etc/sysctl.conf
  46. echo 方法2.终端弹窗/etc/sysctl.conf文本中添加:
  47. echo “echo 100000 | tee /proc/sys/fs/inotify/max_user_watches”
  48. pause 'Press [Enter] key to continue...'
  49. sudo gedit /etc/sysctl.conf
  50. echo 方法1.将永久修复错误(据我所知),个人更喜欢方法1.
  51. echo 备份设置
  52. cp /etc/proxychains.conf ~/.config/
  53. cp /etc/sysctl.conf ~/.config/
  54. cp /etc/init.d/rc.local ~/.config/
  55. echo '任意键退出...'
  56. pause 'Press any key to continue...'
Copy the Code
Reply View the author
Coollove
deepin
2012-04-22 22:35
#4
清理ubuntu的老内核:
  1. #! /bin/bash
  2. function pause(){
  3.         read -n 1 -p "$*" INP
  4.         if [[ $INP != '' ]] ; then
  5.                 echo -ne '\b \n'
  6.         fi
  7. }
  8. # 清理ubuntu的老内核
  9. #dpkg -l linux*2.6* | grep ii | grep -E 'linux-headers|linux-image' | grep -v `uname -r | cut -d- -f1,2` | cut -d' ' -f3 | xargs sudo aptitude purge
  10. #sudo aptitude purge ~ilinux-image-.*\(\!`uname -r`\)
  11. CURRENT="`uname -r | awk -F"-" '{print $1"-"$2}'`"
  12. HEADERS=""
  13. IMAGES=""
  14. for HEADER in `dpkg --get-selections | grep ^linux-headers | \
  15. grep -vE "(generic|386|virtual)" | awk '{gsub(/linux-headers-/,"",$1);print $1}'`
  16. do
  17.     if [[ "$CURRENT" < "$HEADER" ]]
  18.     then
  19.         echo "正在运行的内核不是最新的。 $CURRENT < $HEADER"
  20.         echo "Running kernel is not the newest. $CURRENT < $HEADER"
  21.         exit 1
  22.     else
  23.         [[ "$CURRENT" != "$HEADER" ]] && {
  24.             HEADERS="${HEADERS} linux-headers-${HEADER}"
  25.             IMAGE="`dpkg --get-selections | grep ^linux-image | \
  26.                 grep "${HEADER}" | awk '{print $1}'`"
  27.             IMAGES="${IMAGES} $IMAGE"
  28.         }
  29.     fi
  30. done
  31. if [[ x"$HEADERS" == x"" ]]
  32. then
  33.     echo '没有要清理的老内核...'
  34.     echo 'No old kernel need to clean...'
  35.     sleep 3 && exit 0
  36. fi
  37. CMD="sudo aptitude purge$HEADERS$IMAGES"
  38. echo "$CMD"
  39. if [ "$1" == "-e" ]
  40. then
  41.     sh -c "$CMD"
  42. else
  43.     echo "请确保以上命令正确,[Enter] 自动键入 $0 -e 来执行以上命令。"
  44.     echo "Be sure this command is right, then [Enter] automatically type $0 -e to execute."
  45. pause 'Press [Enter] to continue or Ctrl-C to cancel...'
  46.     $0 -e
  47. fi
  48. #echo '任意键退出...'
  49. #pause 'Press any key to Quit...'
Copy the Code
Reply View the author
Coollove
deepin
2012-04-22 22:36
#5
添加应用源:
  1. #! /bin/bash
  2. function pause(){
  3.         read -n 1 -p "$*" INP
  4.         if [[ $INP != '' ]] ; then
  5.                 echo -ne '\b \n'
  6.         fi
  7. }
  8. echo "
  9. ################################################################################
  10.                                      小知识:
  11. #快捷gnome-terminal终端:
  12. 按[Ctrl]+[Alt]+[T]
  13. #重启 GNOME shell:
  14. 按 Alt + F2 输入 r 再 Enter
  15. #Linux图形界面僵死处理:
  16. #进入tty1或tty2~tty6
  17. Ctrl+Alt+F1~F6
  18. #关闭X-Windows:
  19. sudo service lightdm stop
  20. #重启图形界面:
  21. sudo service lightdm restart
  22. #重启系统:
  23. Alt+PrtSc+B
  24. #Ubuntu關機、重啟命令:
  25. sudo shutdown -h now #立即關機
  26. sudo shutdown -r now #立即重啟
  27. sudo shutdown -r +3 #3分鐘後重啟
  28. sudo shutdown -r 00:00 #將在00:00時重啟計算機
  29. sudo shutdown -r 00:00 & #將在00:00時重啟到後台,用戶可以繼續操作終端
  30. sudo shutdown -h +3 “The system is going down for halt in 3 minutes!”#提示用戶3分鐘後,系統會關機
  31. ################################################################################"
  32. pause '请设置root密码...(Y/n)'
  33. if [[ "$INP" == [Yy] ]]; then
  34.     sudo passwd root
  35. fi
  36. pause '添加PPA应用源...(Y/n)'
  37. if [[ "$INP" == [Yy] ]]; then
  38. #sources.list
  39. sudo apt-add-repository -y ppa:kernel-ppa/pre-proposed
  40. sudo apt-add-repository -y ppa:ubuntu-wine/ppa
  41. sudo apt-add-repository -y ppa:tualatrix/ppa
  42. sudo apt-add-repository -y ppa:ubun-tor/ppa
  43. sudo apt-add-repository -y ppa:i2p-maintainers/i2p
  44. sudo apt-add-repository -y ppa:deluge-team/ppa
  45. sudo apt-add-repository -y ppa:hydr0g3n/ppa
  46. sudo apt-add-repository -y ppa:thopiekar/oneiric-dev
  47. sudo apt-add-repository -y ppa:bill-zt/gtkqq
  48. sudo apt-add-repository -y ppa:otto-kesselgulasch/gimp
  49. sudo apt-add-repository -y ppa:yorba/ppa
  50. sudo apt-add-repository -y ppa:jason-scheunemann/ppa
  51. sudo apt-add-repository -y ppa:team-xbmc/unstable
  52. sudo apt-add-repository -y ppa:jonoomph/openshot-edge
  53. fi
  54. pause '恢复默认升级源...(Y/n)'
  55. if [[ "$INP" == [Yy] ]]; then
  56. echo '请输入用户密码...'
  57. sudo rm -fR "/etc/apt/sources.list.d/*"
  58. rm -f 11.12*
  59. wget http://packages.linuxdeepin.com/sources.list/11.12 | sudo cp -aT 11.12 /etc/apt/sources.list
  60. fi
  61. echo '任意键退出...'
  62. pause 'Press any key to continue...'
Copy the Code
Reply View the author
Coollove
deepin
2012-04-22 22:37
#6
安装常用应用程序:
  1. #! /bin/bash
  2. function pause(){
  3.         read -n 1 -p "$*" INP
  4.         if [[ $INP != '' ]] ; then
  5.                 echo -ne '\b \n'
  6.         fi
  7. }
  8. Backup="/media/iData/Backup/Ubuntu/Packages"
  9. deblist="/var/cache/apt/archives/deblist"
  10. if [ -d "$Backup" ]; then
  11.     ls "$Backup"/*.deb >> "$Backup"/"deblist"
  12. else
  13. echo '请先行设置"/media/iData"为自动挂载...'
  14. pause 'Press [Enter] to continue or Ctrl-C to cancel...'
  15.     ntfs-config-root
  16.     mkdir -p "$Backup"
  17.     sudo rm -fR /var/cache/apt/archives
  18.     sudo ln -fsT "/media/iData/Backup/Ubuntu/Packages" "/var/cache/apt/archives"
  19. fi
  20. if [ -f "$deblist" ]; then
  21.     mv "$deblist" "$Backup"/..
  22. pause '更新系统...(Y/n)'
  23. if [[ "$INP" == [Yy] ]]; then
  24. sudo aptitude forbid-version linux-image-3.0.0-16-generic=3.0.0-16.29
  25. sudo aptitude update
  26. sudo aptitude full-upgrade
  27. fi
  28. pause '清理安装包...(Y/n)'
  29. if [[ "$INP" == [Yy] ]]; then
  30. sudo rm /var/lib/dpkg/info/lvoddownloader.postinst
  31. sudo apt-get install -f
  32. sudo apt-get autoremove --purge && sudo apt-get autoclean --purge
  33. fi
  34. echo "
  35. ################################################################################
  36.                                      小知识:
  37. grub的启动界面丢失了!
  38. grub rescue > ls #列所有分区查找Ubuntu的分区,比如(hd0,7)
  39. grub rescue > set root=(hd0,7) #设置root分区路径
  40. grub rescue > set prefix=(hd0,7)/boot/grub #设置grub启动文件路径
  41. grub rescue > insmod normal
  42. grub rescue > normal #回到普通模式
  43. grub的启动界面回来了,进入Ubuntu后更新grub
  44. sudo update-grub #更新grub配置文件(因为分区的uuid已经改变)
  45. sudo grub-install /dev/sda #重新安装grub到硬盘MBR(非必须)
  46. ################################################################################"
  47. echo "将认证模式由su改为sudo"
  48. pause '增加右键管理员和系统工具...(Y/n)'
  49. if [[ "$INP" == [Yy] ]]; then
  50.     gksu-properties
  51.     sudo aptitude install nautilus-gksu gnome-system-tools subversion dconf-tools ubuntu-tweak openjdk-6-jre libjs-jquery menu python-central python-simplejson debbuilder
  52.     sudo ln -fsT /usr/lib/nautilus/extensions-2.0/libnautilus-gksu.so /usr/lib/nautilus/extensions-3.0/libnautilus-gksu.so
  53. BleachBit="/usr/share/bleachbit"
  54. if [ -d "$BleachBit" ]; then
  55.     su-to-root -X -c bleachbit
  56.     rm -f bleachbit*.deb.*
  57. else
  58.     rm -f bleachbit*.deb
  59.     wget "http://katana.oooninja.com/bleachbit/sf/bleachbit_0.9.2-1_all_ubuntu1110.deb" --ref="http://bleachbit.sourceforge.net/download/file?file=bleachbit_0.9.2-1_all_ubuntu1110.deb"
  60.     sudo dpkg -i bleachbit*
  61. fi
  62. Dropbox=~/.dropbox-dist
  63. if [ -d "$Dropbox" ]; then
  64.     mkdir -p ~/Dropbox
  65.     sudo ln -fsT ~/Dropbox /root/Dropbox
  66.     sudo ln -fsT ~/.dropbox-dist /root/.dropbox-dist
  67. echo "终端弹窗/etc/sysctl.conf文本中添加:
  68. ################################################################################
  69. 复制粘贴到弹窗文本
  70.                #为Dropbox同步大量文件的修复
  71.                fs.inotify.max_user_watches=100000
  72. ################################################################################"
  73. pause 'Press [Enter] key to continue...'
  74. sudo gedit /etc/sysctl.conf
  75. else
  76.     rm -f dropbox*.deb
  77.     cd ~/Dropbox && wget "https://linux.dropbox.com/packages/ubuntu/dropbox_1.4.0_amd64.deb" --ref="https://www.dropbox.com/download?dl=packages/ubuntu/dropbox_1.4.0_amd64.deb"
  78.     sudo dpkg -i dropbox*
  79.     cd ~ && wget -O - "https://dl-web.dropbox.com/u/17/dropbox-lnx.x86_64-1.4.0.tar.gz" --ref="https://www.dropbox.com/download?plat=lnx.x86_64" | tar xzf -
  80. fi
  81. fi
  82. # sudo ln -fsT /media/Windows7_OS/Windows/Fonts /usr/share/fonts/winfonts
  83. #mkfontscale #识别字体
  84. #mkfontdir #识别字体所在文件夹及字体索引信息
  85. #fc-cache -fv #装字体信息与系统关联
  86. #最后会有一个succeeded告诉你字体安装成功了。
  87. pause '安装Wine...(Y/n)'
  88. if [[ "$INP" == [Yy] ]]; then
  89. sudo aptitude install wine1.5 wine-thunder #deepinwine-qq2012
  90. winetricks -q mfc42
  91. fi
  92. pause '安装iOffice...(Y/n)'
  93. if [[ "$INP" == [Yy] ]]; then
  94. sudo aptitude install calibre gpdftext diffpdf stardict wps-office
  95. fi
  96. pause '安装iMedia...(Y/n)'
  97. if [[ "$INP" == [Yy] ]]; then
  98.   sudo aptitude install gimp imagination trimage postr arista smplayer #sopcast-player lastfm #minitube openshot #xbmc
  99.   #svn checkout http://gnome-mplayer.googlecode.com/svn/trunk/ gnome-mplayer-read-only
  100.   #cd gnome-mplayer-read-only
  101.         #./configure
  102.         #make && sudo make install
  103. fi
  104. echo "
  105. ################################################################################
  106.                                      小知识:
  107. $ sopcast-player #如出現錯誤:“Segmentation fault”
  108. $ sudo gedit /usr/share/sopcast-player/lib/VLCWidget.py #在第32行“import vlc_1_0_x”前加“#”注釋。保存文件並退出編輯器。
  109. ################################################################################"
  110. pause '终端弹窗中编辑/usr/share/sopcast-player/lib/VLCWidget.py文本...(Y/n)'
  111. if [[ "$INP" == [Yy] ]]; then
  112. sudo gedit /usr/share/sopcast-player/lib/VLCWidget.py
  113. fi
  114. pause '安装iGame...(Y/n)'
  115. if [[ "$INP" == [Yy] ]]; then
  116. sudo aptitude install chromium-bsu gmchess gweled supertuxkart tuxtype
  117. fi
  118. echo "
  119. ################################################################################
  120.                                      小知识:
  121. $ skype #如出現錯誤:“skype: error while loading shared libraries: libXss.so.1: cannot open shared object file: No such file or directory”
  122. # 请安装libxss1:i386等相关支持...
  123. #Ubuntu11.10系统更新后deluge无法增加magnet磁力链...
  124. #查看当前可用package版本...
  125. $ sudo apt-cache showpkg libtorrent-rasterbar6 python-libtorrent
  126. #强制更新指定package版本...
  127. $ sudo aptitude install libtorrent-rasterbar6=0.15.9-2~oneiric~ppa1 python-libtorrent=0.15.9-2~oneiric~ppa1
  128. #将libtorrent-rasterbar6 python-libtorrent置于保持状态...
  129. $ echo -e "libtorrent-rasterbar6 hold\npython-libtorrent hold" | sudo dpkg --set-selections
  130. ################################################################################"
  131. pause '为skype_*_amd64安装libxss1:i386等相关支持...(Y/n)'
  132. if [[ "$INP" == [Yy] ]]; then
  133. echo foreign-architecture i386 | sudo tee /etc/dpkg/dpkg.cfg.d/multiarch
  134. sudo apt-get install libxss1:i386 libqtcore4:i386 libqt4-gui:i386
  135. fi
  136. pause 'deluge无法增加magnet磁力链相关支持修复...(Y/n)'
  137. if [[ "$INP" == [Yy] ]]; then
  138. sudo aptitude install libtorrent-rasterbar6=0.15.9-2~oneiric~ppa1 python-libtorrent=0.15.9-2~oneiric~ppa1
  139. echo -e "libtorrent-rasterbar6 hold\npython-libtorrent hold" | sudo dpkg --set-selections
  140. fi
  141. pause '安装Internet...(Y/n)'
  142. if [[ "$INP" == [Yy] ]]; then
  143.     sudo aptitude install chromium-browser deluge amsn aliwangwang skype openfetion gtkqq
  144. fi
  145. pause '安装Proxy...(Y/n)'
  146. if [[ "$INP" == [Yy] ]]; then
  147.     sudo aptitude install vidalia i2p proxychains
  148.     sudo adduser point debian-tor #正在添加用户"point"到"debian-tor"组...
  149.     sudo service tor stop
  150. fi
  151. pause '安装WiFi-Hostapd-AP...(Y/n)'
  152. if [[ "$INP" == [Yy] ]]; then
  153.     sudo aptitude install bridge-utils dnsmasq hostapd iptables wireless-tools libqtgui4
  154.         cd ~/Dropbox && svn checkout http://wifi-hostapd-ap.googlecode.com/svn/trunk/ wifi-hostapd-ap-read-only
  155.     #cd wifi-hostapd-ap-read-only
  156. echo "
  157. ################################################################################
  158.                                      配置Hostapd:
  159. $ sudo gedit /etc/init.d/hostapd #更改第19行为“DAEMON_CONF=/etc/hostapd/hostapd.conf”,保存文件並退出編輯器。
  160. ################################################################################"
  161. pause '终端弹窗中编辑/etc/init.d/hostapd文本...(Y/n)'
  162. if [[ "$INP" == [Yy] ]]; then
  163. sudo gedit /etc/init.d/hostapd
  164. fi
  165. #sudo ./WiFi_Hostapd_AP
  166. fi
  167. pause '安装Virtual Tools...(Y/n)'
  168. if [[ "$INP" == [Yy] ]]; then
  169. pause '1virtualbox or 2VMware...(1/2)'
  170. if [[ "$INP" == 1 ]]; then
  171.     sudo aptitude install virtualbox
  172.     sudo adduser point vboxusers #正在添加用户"point"到"vboxusers"组...
  173.     #sudo chmod o-w /usr
  174. elif [[ "$INP" == 2 ]]; then
  175.     cd ~ && wget -t 0 -w 31 -c "http://dl-sh-ctc-2.pchome.net/08/b7/VMware-Workstation-Full-8.0.2-591240.x86_64.bundle" --ref="http://download.pchome.net/system/sysenhance/down-10771-1.html" | sudo sh VMware*bundle
  176. fi
  177. #chmod +x VMware*bundle
  178. #sudo sh VMware*bundle
  179. fi
  180. pause '安装Reaver...(Y/n)'
  181. if [[ "$INP" == [Yy] ]]; then
  182.     sudo aptitude install aircrack-ng libpcap0.8-dev libsqlite3-dev xterm
  183.     cd ~/Dropbox && svn checkout http://reaver-wps.googlecode.com/svn/trunk/ reaver-wps-read-only
  184.     cd reaver-wps-read-only/src
  185.     ./configure
  186.     make && sudo make install
  187. fi
  188. echo '任意键退出...'
  189. pause 'Press any key to Quit...'
  190. else
  191. echo '更新设置,请重新运行...'
  192. pause 'Press any key to continue...'
  193.     sudo rm -fR /var/cache/apt/archives
  194.     sudo ln -fsT "/media/iData/Backup/Ubuntu/Packages" "/var/cache/apt/archives"
  195. fi
Copy the Code
Reply View the author
tuhaihe
deepin
2012-04-22 23:22
#7
赞,感谢楼主。我最近在学习脚本,正好可以拿来学习啊。
Reply View the author
EvilBeast
deepin
2012-04-23 00:16
#8
厉害 !
Reply View the author
cxbii
deepin
2012-04-23 01:17
#9
添加至推荐脚本
Reply View the author
feishan
deepin
2012-07-02 03:11
#10
留贴备用`
Reply View the author
huarabbit
deepin
2012-07-02 05:33
#11
哇,这绝对是好东西,收藏
Reply View the author
wen0921
deepin
2012-07-03 04:54
#12
我觉得最常用的脚本应该是。。。
  1. #!/bin/sh
  2. sudo apt-get update && sudo apt-get upgrade
Copy the Code
Reply View the author
sprluckguo
deepin
2012-07-06 16:52
#13
不错不错嘿嘿
Reply View the author