Chinaunix首页 | 论坛 | 认证专区 | 博客

在技术的光环下熠熠生辉ninglianjie.blog.chinaunix.net

Linux MySQL Shell Python Golang

  • 博客访问: 1316713
  • 博文数量: 132
  • 博客积分: 2559
  • 博客等级: 少校
  • 技术积分: 4374
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-13 20:08
个人简介

作为初学者,要想取得进步,成为高手,首先应该了解自己的不足之处.

文章分类

全部博文(132)

文章存档

2014年(2)

2013年(34)

2012年(15)

2011年(80)

2010年(1)

微信关注

IT168企业级官微



微信号:IT168qiye



系统架构师大会



微信号:SACC2013

分类: LINUX

Ubuntu版本

12.04 LTS

下载与安装

官网,下载.iso镜像后,可以刻光盘,也可以刻U盘

中文输入-ibus

推荐 ibus-pinyin,并默认调整为"半角"输入

sudo apt-get install ibus-pinyin

gedit工具支持中文

在Open打开文件的时候,注意左下脚有个"Character Encoding",点击后, 可以在此添加GBK,GB2312等字符集支持.

vpn设置

公司内的wiki已经有很多文章介绍了.在此就不在赘述.注意两点:

  1. 配置文件
    vim /etc/vpnc/default.conf
    IPSec gateway xxxx.com IPSec ID             #ID
    IPSec secret         #组密码
    Xauth username xxxx
    
  2. 执行
    sudo vpnc
    输入token认证,完成后,执行route -n查看是否有很多路由信息,存在的话,就证明连接成功了.

keepass(保存密码)

设置软件源
keepass

修改文件: /etc/apt/sources.list
Display sources.list entries for:  Choose your Ubuntu version Precise (12.04)

deb http://ppa.launchpad.net/jtaylor/keepass/ubuntu precise main deb-src http://ppa.launchpad.net/jtaylor/keepass/ubuntu precise main 

Meld Diff Viewer(代码比对)

Thunderbird(邮件收发)

最常出问题的地方(供参考):

  • Server Type: IMAP Mail Server
  • Server Name: xxx
  • Port: 143
  • Security Settings
    • Connection security: STARTTLS
    • Authentication method: Normal password

SMTP Server

  • Description: 随意填写
  • Server Name: xxx
  • Port: 25
  • Security and Authentication
    • Connection security: STARTTLS
    • Authentication method: Normal password
    • User Name: xxxx

mkpasswd.pl(生成随机密码)

CentOS系统下的mkpasswd命令,在Ubuntu系统下,改为mkpasswd.pl

mkpasswd.pl -s 0 -l 16

Oracle VM Virtualbox(虚拟机)

  1. U盘
    使用lsusb命令把设备信息查出来
    # lsusb
    ...
    Bus 002 Device 007: ID 12d1:0001 Huawei Technologies Co., Ltd.
    
    

    依次选择Machine-Settings-USB

    Name:       Z
    Vendor  ID: 12d1
    Product ID: 0001
    ...
    剩下的不需要填写
    
  2. 调整虚拟文件大小
    vboxmanage modifyhd VirtualBoxVMs/win7_x64/win7_x64.qed --resize 3000
    0%...
    Progress state: VBOX_E_NOT_SUPPORTED
    

    只能扩大,不能减小,否则会报错.
    VBoxManage: error: Resize hard disk operation for this format is not implemented yet!

LibreOffice 4

参考

sudo add-apt-repository ppa:libreoffice/libreoffice-4-1
sudo apt-get update
sudo apt-get dist-upgrade

sudo apt-get install libreoffice

工具优化三部曲

想知道如何实现主机名自动补全吗?如何在本地就可以"直接"连线上服务器吗?如何在本地"直接"连线上MySQL吗?
请仔细查看该部分内容

自动补全主机名

bash-completion
在ubuntu中安装bash-completion工具,就可以实现一些基本命令的主机名自动补齐,比如ssh, rsync等.

  1. deb包安装
    sudo apt-get install bash-completion
    
  2. 编译安装
    • 官网下载最新的release版本,注意不要从git下载,有可能文件不全,导致安装失败.
    • 修改~/.profile文件,写入如下内容:
      [[ $PS1 && -f /usr/local/share/bash-completion/bash_completion ]] && \
          . /usr/local/share/bash-completion/bash_completion
      
    • 开始编译安装
      ./configure
      make
      make check # optional, requires dejagnu and tcllib
      make install # as root
      
    • 文件验证
      查看是否存在该文件:/usr/local/share/bash-completion/bash_completion

注意:

  • 补齐的主机名默认来源是~/.ssh/known_hosts文件
  • 需要将/etc/ssh/ssh_config或者~/.ssh/config中的HashKnownHosts设置为no

自动登录主机

说明

关于自动登录主机的问题,wiki已经有很多相关的文章了,我这里介绍的方法,优缺点如下(输入token是必须的):
优点: 不需要本机生成无passphrase的私钥/公钥对,也不需要通过跳板机把公钥传到每台服务器上
缺点:

  • 需要把跳板机上面的私钥复制到本地
  • 打开终端,设置为"a login shell"模式
  • 需要修改/创建的文件如下
    ~/master #用户放共享通道文件,例如
    ~/.profile #profile配置文件
    ~/.ssh/config #ssh配置文件
    ~/bin/ssh-add-pass # 判断ssh-agent,并自动输入passphrase
    ~/bin/passfile # 存放passphrase的密码文件
    ~/bin/ssh-attach # 判断ssh-agent,设置环境变量

注意:mac本的ssh-agent命令生成文件不在/tmp目录下,需要根据实际情况略做修改.

详细配置过程

  1. 配置本地的.profile文件(CentOS为.bash_profile),追加如下内容
    # Auto-passphrase
    ~/bin/ssh-add-pass ~/bin/passfile
    eval $(~/bin/ssh-attach)
    
  2. ssh配置文件:
    位置: ~/.ssh/config
    内容:
    Host *
      User xxxx
      Port 22
      PreferredAuthentications publickey,password,gssapi-with-mic,hostbased,keyboard-interactive
      StrictHostKeyChecking no
      HashKnownHosts no
    
    Host *.xxx.com
      ServerAliveCountMax 6
      ServerAliveInterval 300
      ControlMaster auto
      ControlPath ~/master/master-%h
      ControlPersist yes
    
    
    
    
  3. ssh-add-pass
    #!/bin/bash
    
    # reference:
    # http://stackoverflow.com/questions/13033799/how-to-make-ssh-add-read-passphrase-from-a-file if [ $# -ne 1 ] ; then
      echo "Usage: ssh-add-pass passfile" exit 1
    fi
    pass=$(cat $1) for SSH_AUTH_SOCK in /tmp/ssh-*/agent.*; do if [ -S $SSH_AUTH_SOCK ]; then
    #        ssh-add -l &>/dev/null && echo export SSH_AUTH_SOCK=$SSH_AUTH_SOCK
    #        $(export SSH_AUTH_SOCK=$SSH_AUTH_SOCK)
            exit 0 else eval $(ssh-agent)
        fi
    done
    
    # 这里的spawn后面接的私钥,只能使用绝对路径.否则会报找不到文件.
    #  spawn ssh-add xxx_rsa
    expect << EOF
      spawn ssh-add xxx_rsa
    
      expect "Enter passphrase" send "$pass\r" expect eof
    EOF
    
    
  4. passfile
    密码文件
  5. ssh-attach
    #!/bin/bash
    
    # reference:
    # https://github.com/jianingy/trash/blob/master/tools/ssh-attach  # find if ssh-add and ssh-agent exists for prog in ssh-add ssh-agent; do which $prog >/dev/null || exit
    done for SSH_AUTH_SOCK in /tmp/ssh-*/agent.*; do [ -S $SSH_AUTH_SOCK ] && ssh-add -l &>/dev/null && echo export SSH_AUTH_SOCK=$SSH_AUTH_SOCK && exit 0
    done
    
    # try again by prompting user to input passpharses.
    create_new_agent=1 for SSH_AUTH_SOCK in /tmp/ssh-*/agent.*; do if [ -S $SSH_AUTH_SOCK ]; then
            create_new_agent=0
            ssh-add xxx_rsa || continue ssh-add -l &>/dev/null && echo export SSH_AUTH_SOCK=$SSH_AUTH_SOCK && exit 0
        fi
    done
    
    # create new ssh-agent and run again
    # echo "no avaiable ssh-agent, starting a new one" >&2 if [ $create_new_agent -eq 1 ]
    then
        ssh-agent &>/dev/null exec $0 $@
    fi
    
    exit 1
    
    # vim: ts=4 sw=4 et ai
    
    

参考命令

  1. 显示所有的key
    ssh-add -l
  2. 删除所有的key
    ssh-add -D
  3. 删除所有的ssh-agent
    killall ssh-agent

自动登录MySQL

核心:qmysql.py脚本

  1. 获取方法
    git clone http://xxx 
  2. 使用方法
    • 把脚本放到~/bin目录下
    • 本地保存mysql密码
      首次执行生成~/bin/qmysql.py生成~/.qmysql.ini文件,分别填上连接线上数据库的用户名/密码/线上主机的密码
    • 修改~/.profile,增加自动主机名补全功能
      意思是qmysql.py脚本的自动补全由_ssh函数完成.
      # Auto-Comple
      complete -F _ssh qmysql.py
      
  3. 使用
    qmysql l-dbc 按tab自动补全 -P port, 默认3306

RTX

前言:
在Ubuntu下,用wine装的rtx真心不好用:

  1. 控制面板隐藏在最底层,如果设置为总是在最前,看其他窗口又不方便
  2. 聊天窗口,多个聊天窗口叠加在一起,也不知道哪个有新消息
  3. 查看历史的消息记录,直接报错退出

不同ubuntu版本安装rtx可能会遇到不同的问题,但是基本顺序都类似.我的安装过程如下:

  1. 设置软件源并安装wine
    sudo add-apt-repository ppa:ubuntu-wine/ppa
    sudo apt-get update
    sudo apt-get install wine winetricks
    
  2. 安装依赖工具和库
    winetricks msxml3 gdiplus riched20 riched30 vcrun6 vcrun2005sp1 vcrun6sp6 vb6run
    

    在这期间报了一个错,如下:
    p11-kit: couldn't load module: /usr/lib/i386-linux-gnu/pkcs11/gnome-keyring-pkcs11.so: /usr/lib/i386-linux-gnu/pkcs11/gnome-keyring-pkcs11.so: cannot open shared object file: No such file or directory
    至于gnome-keyring-pkcs11.so这是个啥玩意,我也没搞清楚,总之是缺少,那么就去安装一个

    # 下载(环境不同,版本可能不同)
    apt-get download gnome-keyring:i386
    # 解压
    dpkg -x gnome-keyring_3.2.2-2ubuntu4.1_i386.deb gnome-keyring
    # 复制文件
    cp -r gnome-keyring/usr/lib/i386-linux-gnu/pkcs11/ /usr/lib/i386-linux-gnu/
    
  3. 安装rtx
    wine rtxclient2012formal.exe
    
  4. 最后遇到一个报错,没记住...直接忽略了.
  5. 参考
    https://forums.eveonline.com/default.aspx?g=posts&m=3532013
    http://hi.baidu.com/wantonzone/item/5c3ac5679da8a8157cdecc7a
    http://littlexiang.me/linux/install-wine-rtx-on-linux-x86_84.html

Tips

设置win + D键显示桌面

  1. 打开Dash Home或者终端
  2. 输入
    gconf-editor
  3. 找到
    apps -> metacity -> global keybingdings -> show desktop
    把值改为d

FAQ

手贱把Desktop,Documents等目录删除了,如何恢复?

重新设置一下语言环境就可以恢复了.方法如下:
System-Settings -> Language-Support -> (Language for menus and windos) 把"汉语(中国)"拖到最上面
重新登录,系统会提示你是否更新文件夹命名.然后这些系统目录就"回来"了.
收尾工作:再把语言环境改回来.

阅读(5687) | 评论(1) | 转发(1) |
给主人留下些什么吧!~~

ArcLinux2014-08-30 14:02:45

32个赞!

评论热议
请登录后评论。

登录 注册