ubuntu常用的命令

Table of Contents

  • 1 ubuntu
    • 1.1 写在前面
    • 1.2 系统配置
      • 1.2.1 察看ubuntu内部版本
      • 1.2.2 重启机器
      • 1.2.3 关闭机器
      • 1.2.4 重启unity
      • 1.2.5 设置字符界面启动
      • 1.2.6 绑定静态IP
      • 1.2.7 修改主机名称
      • 1.2.8 root密码
      • 1.2.9 deb使用
    • 1.3 桌面应用
      • 1.3.1 amarok循环播放
      • 1.3.2 设置输入法切换
      • 1.3.3 自动启动输入法
      • 1.3.4 google docs不能输入中文
      • 1.3.5 设置默认浏览器
      • 1.3.6 thunderbird配置gmail
      • 1.3.7 thunderbird的Inbox文件过大
      • 1.3.8 窗口常用快捷键
      • 1.3.9 调整字体大小
      • 1.3.10 调整边栏大小
    • 1.4 编程环境
      • 1.4.1 bash的tab自动补全
      • 1.4.2 加快ssh登陆
      • 1.4.3 建立ssh信任关系
      • 1.4.4 简化ssh登陆
    • 1.5 虚拟机
      • 1.5.1 vmware虚拟机增加磁盘空间
      • 1.5.2 virtualbox安装windows虚拟机
      • 1.5.3 virtualbox设置共享文件夹
      • 1.5.4 virtualbox下使用U盾

1 ubuntu

1.1 写在前面

千万不要抱有一朝一兮就可以搞定的想法。最好的话身边有一个群体,大家都使用Ubuntu这个东西。 这样如果有什么问题的话,大家就比较容易找到解决办法,直到自己完全适应为止。推荐安装下面这些软件:

  • #sudo apt-get install vlc # 视频
  • #sudo apt-get install pidgin # 聊天
  • #sudo apt-get install stardict # 词典
  • #sudo apt-get install amarok # 音乐
  • sudo apt-get install okular # pdf阅读
  • sudo apt-get install git
  • #sudo apt-get install subversion
  • sudo apt-get install htop
  • sudo apt-get install dstat
  • sudo apt-get install sysstat
  • sudo apt-get install httperf
  • sudo apt-get install rsync
  • sudp apt-get install tree
  • sudo apt-get install tcpdump
  • sudo apt-get install clusterssh
  • #sudo apt-get install libjs-extjs
  • #sudo apt-get install libjs-extjs-doc
  • sudo apt-get install openssh-server
  • sudo apt-get install sqlite3
  • #sudo apt-get install eclipse
  • sudo apt-get install python-dev
  • #sudo apt-get install libevent-dev
  • #sudo apt-get install python-gevent
  • #sudo apt-get install python-gevent-doc
  • #sudo apt-get install gunicorn
  • #sudo apt-get install recordmydesktop # 录制桌面
  • sudo apt-get install maven2
  • sudo apt-get install ttyload
  • sudo apt-get install autoconf
  • sudo apt-get install libtool
  • sudo apt-get install automake
  • sudo apt-get install alien
  • sudo apt-get install dos2unix
  • sudo apt-get install astyle
  • sudo apt-get install valgrind
  • #sudo apt-get install mongodb
  • #sudo apt-get install python-imaging
  • #sudo apt-get install python-imaging-doc
  • sudo apt-get install screen
  • sudo apt-get install tmux
  • #sudo apt-get install python-pychart
  • #sudo apt-get install python-pychart-doc
  • sudo apt-get install python-doc
  • sudo apt-get install python-setuptools
  • sudo apt-get install linux-tools-common
  • sudo apt-get install linux-base
  • #sudo apt-get install mercurial
  • sudo apt-get install golang-go
  • sudo apt-get install kchmviewer # chm阅读
  • sudo apt-get install flex
  • sudo apt-get install bison
  • sudo apt-get install iotop
  • sudo apt-get install curl
  • sudo apt-get install ibus
  • sudo apt-get install ibus-sunpinyin
  • sudo apt-get install xsunpinyin
  • sudo apt-get install python-xlib # 需要在emacs下面调用ibus
  • #sudo apt-get install chromium-browser # 实验性质版本
  • sudo apt-get install google-chrome-stable # 稳定版本
  • #sudo apt-get install firefox
  • #sudo apt-get install thunderbird
  • sudo apt-get install dkms
  • sudo apt-get install virtualbox
  • sudo apt-get install virtualbox-guest-additions # 设置windows虚拟机共享文件夹
  • sudo apt-get install ntp
  • sudo apt-get install systemtap
  • sudo apt-get install clojure
  • sudo apt-get install zsh
  • sudo apt-get install collectl
  • sudo apt-get install vim
  • #sudo apt-get install xbmc
  • sudo apt-get install latex-cjk-all
  • sudo apt-get install texlive-fonts-recommended
  • sudo apt-get install texinfo
  • #sudo apt-get install sun-java6-jdk
  • sudo apt-get install openjdk-6-jdk
  • sudo apt-get install open
  • sudo apt-get install lzop

1.2 系统配置

1.2.1 察看ubuntu内部版本

lsb_release -a

➜  note git:(master) ✗ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 12.04 LTS
Release:        12.04
Codename:       precise

1.2.2 重启机器

似乎Ubuntu下面限制用户进行重启,可以使用sudo reboot重启机器。

1.2.3 关闭机器

关闭机器同样需要超级权限,可以使用sudo shutdown 0立即关闭机器。

1.2.4 重启unity

unity restart &

NOTE(dirlt):这种方式可以work但是似乎问题比较多,如果unity出现问题还是重启比较方便

1.2.5 设置字符界面启动

  • 编辑文件/etc/default/grub
  • GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"修改成GRUB_CMDLINE_LINUX_DEFAULT="quiet splash text"
  • 运行sudo update-grub

1.2.6 绑定静态IP

修改/etc/network/interfaces

auto eth0
iface eth0 inet static
address 10.18.102.200
netmask 255.255.255.0
gateway 10.18.102.254

修改/etc/resolve.conf

nameserver 208.67.222.222
nameserver 202.106.0.20
nameserver 219.232.48.62
nameserver 210.52.149.2

修改/etc/nsswitch.conf

hosts:          files dns
networks:       files

然后重启网络

sudo /etc/init.d/networking restart

NOTE(dirlt):可能需要重启多次

1.2.7 修改主机名称

sudo hostname

NOTE(dirlt):mac works too=D

1.2.8 root密码

初次启动的时候需要使用sudo passwd root来修改root密码

NOTE(dirlt):it works for mac too=D

1.2.9 deb使用

安装deb使用命令 sudo dpkg -i test.deb

通常我们不太清楚一个deb安装了哪些文件,尤其是doc的话可能不知道放置在什么位置上面。我们可以通过搜索引擎查找这个包,然后在 http://packages.ubuntu.com 下面找到这个包以及对应的文件列表信息。

doc存放位置通常在/usr/share/doc//下面。

使用alien在deb和rpm之间转换

  • 安装alien
  • rpm转deb sudo alien -d test.rpm
  • deb转rpm sudo alien -r test.deb

看了一下alien的help还可和下面几个包格式互转

  • slp
  • lsb
  • tgz
  • pkg

甚至可以直接调用alien -i test.rpm直接安装而不需要转换。

1.3 桌面应用

1.3.1 amarok循环播放

在amarok的右下角有task progression的图标,选择repeat track即可。

1.3.2 设置输入法切换

在Preferences里面:

  • Input Method 里面添加 SubPinyin
  • 然后在General里面的Keyboard Shortcuts里面设置Enable or disable设置切换按键
    • Release+Shift_L 左边的Shift键
    • Constrol+space control和空格键
    • 这些都和windows输入法的默认配置很像。

TODO(dirlt):在Emacs里面需要安装ibus.el以及ibus-agent。但是现在不知道为什么左边的Shift键在Emacs里面一直不能使用。

1.3.3 自动启动输入法

另外系统默认是不会自动启动ibus的,可以在System Settings里面的Language Support里面设置Input method为ibus, 这样ibus就可以自动启动了。如果emacs需要使用ibus的话,那么ibus-daemon必须先于emacs启动。可能这样agent才能够工作。

1.3.4 google docs不能输入中文

似乎sunpinyin在google docs下面工作不是很好。使用原来的pinyin就没有问题。what a shame!

1.3.5 设置默认浏览器

System Settings =》 Details 里面可以设置默认浏览器。至于emacs里面的话可以使用如下配置。

(setq browse-url-generic-program (executable-find "chromium-browser")
      browse-url-browser-function 'browse-url-generic)

1.3.6 thunderbird配置gmail

  • pop3 pop.gmail.com/pop.googlmail.com SSL/TLS 995 normal password
  • smtp smtp.gmail.com/pop.googlmail.com SSL/TLS 465 normal password
  • 不过似乎现在thunderbird已经非常智能了,只要输入username以及email的话就可以自动进行配置了。nice!!!(现在看起来选择iamp模式也没有什么问题)
  • server settings =>
    • 1) leave mesages on server until I delete them. (对于imap模式来说的话,就使用默认移动到Trash下面即可)
    • 2) empty trash on exit.
    • 3) check for new messages at startup.
    • 4) check for new messages every 10 minutes.
  • copies and folders => 1) cc these email addresses: [email protected](如果使用imap模式可以不使用)
  • composition and addressing => 1) start my reply above the quote and place my signature below the quote.
  • 设置签名

1.3.7 thunderbird的Inbox文件过大

  • http://blog.tianya.cn/blogger/post_read.asp?BlogID=3802303&PostID=35373429

在安装新的操作系统时候,可能需要将原来的邮件全部迁移过去。thunderbird迁移邮件非常方便。在C:\Documents and Settings\\Application Data\Thunderbird\Profiles\wkq5wydz.default\Mail\ 下面会有你这个pop-server对应的文件,比如Inbox(对应thunderbird的收件箱),Drafts(对应thunderbird的草稿箱)等。将这些文件直接copy过去就OK了。不得不说这点非常方便:)

但是我们会遇到一个问题就是Inbox文件太大了。而且如果我们在thunderbird下面删除收件箱里面内容的话,会发现这个Inbox文件其实没有发生变化。原因是因为thunderbird采用标记删除,所以原来的邮件内容依然是保存的(也就是说如果我们通过修改Inbox里面的标记位是可以恢复的,而且这个工作不难,因为阅读Inbox的内容就会发现里面保存的文本格式。不过谨慎选用编辑器,不要将Inbox内容全部载入不然内存会爆掉的)。 解决这个问题非常简单,就是在thunderbird下面针对这个文件夹右键点击压缩。对于草稿箱和其他的文件夹是一样的操作。而且在thunderbird下面有工具->选项->高级->网络&磁盘空间里面,可以选择如果超过过大的话就会进行压缩。

作为后端开发者,觉得thunderbird这样做是很正常的。有几种方式:

  1. 一种是用小碎片文件来解决,每个小碎片文件对应一个邮件,但是这样邮件太多的话性能和碎片会成为问题,但是增加和删除都非常方便
  2. 另外就是使用大文件来追加写,然后针对每封邮件进行索引。索引可以保存在内存里面并且定期dump出去,启动时候检查索引是否和文件对应,不对应的话那么可能需要增量做一部分索引。但是这样删除会成为问题,标记删除可能就是最好的办法了。所以需要用户手动或者是通过程序判断磁盘文件大小来触发压缩。
  3. 使用数据库本质上和2是一样的,只不过可以在一定程度上简化代码。在删除方便可能还是使用压缩删除。如果是我自己做的话那么可能考虑使用sqlite来做。单机可以embed,并且通过SQL来进行检索或者是其他操作。

NOTE(dirlt):其实thunderbird超过一定大小就会自动提醒是否需要压缩

1.3.8 窗口常用快捷键

  • Ctrl+Alt+T // 打开一个terminal。
  • Ctrl+Alt+上下左右 // 在不同的workspace之间切换。

1.3.9 调整字体大小

System Settings =》 Universal Access里面的Seeing部分可以用来调整字体大小。但是只有等级没有具体的数字可以进行调整。 可以通过安装gnome-tweak-tool并且运行之来进行微调。

参考链接 http://ltek.dyndns.org/wordpress/?p=282

1.3.10 调整边栏大小

System Settings => Appearance => Launcher icon size.

1.4 编程环境

1.4.1 bash的tab自动补全

  • sudo apt-get install bash-completion

但是我觉得这个自动补全有点不太好的就是,比如我cd ~/.ssh/想自动补全的话,我不仅仅是希望能够补全目录(虽然cd参数只能够是目录),我还希望可以显示文件(比如我想知道这个目录下面是否有Makefile或者是pom.xml),这样就可以快速判断某个文件是否在目录下面。不然我只能调回命令行开头,切换成为cat,然后跳回去使用两次tab进行自动补全(cat能够显示文件).

这个自动补全配置文件在/etc/bash_completion下面。阅读代码发现可能是和file_dir这个函数相关。调用时候使用file_dir -d的话只会显示目录,而file_dir的话就会显示所有。所以最简单的做法就是将file_dir -d全部替换成为file_dir. done!!!

1.4.2 加快ssh登陆

对于服务器的话可以修改/etc/ssh/sshd_config

UseDNS no 

对于客户端的话可以修改/etc/ssh/ssh_config

GSSAPIAuthentication no
GSSAPIDelegateCredentials no 

TODO(dirlt):具体为什么? sorry I have no idea!!!

1.4.3 建立ssh信任关系

关于sshd机器之间的信任关系,很多文章都有介绍。大致方法就是:

  1. 在自己机器上面ssh-keygen生成~/.ssh/id_rsa{.pub}.其中.pub文件是公钥
  2. 然后将id_rsa.pub内容copy到另外机器下面的~/.ssh/authorized_keys里面(注意chmod 600)
  3. 接着本地的.pub文件就可以删除

NOTE(dirlt):这个密钥是可以在不同机器上面使用的,也就是说你只需要生成一次即可

我猜想大致工作过程应该是这样的:

  1. 在ssh建立连接的时候,本地ssh-client会读取~/.ssh/id_rsa内容
  2. 建立好连接之后会将rsa内容发给对端机器,对端机器针对authorized_keys进行验证
  3. 如果验证OK的话那么就认为是信任对方的。

但是具体这些文件都是可以配置的,关于这个配置可以man ssh_config(client) / man sshd_config(server). 今天遇到一个问题就出在/etc/sshd_config里面对于认证文件修改了,不是放在authorized_keys里面而是放在cloud_keys里面!!!

对于这种东西我觉得还是使用默认的比较好,convention over configuration!!!


如果登陆过程中出现 "Agent admitted failure to sign using the key" 的话,可以尝试下面的命令

ssh-add   ~/.ssh/id_rsa

1.4.4 简化ssh登陆

简化ssh登陆第一个方式就是去除密码输出,这个可以通过配置信任关系完成。

简化ssh登陆第二个方式就是可以针对hostname,user以及port做别名,这个可以在~/.ssh/config里面配置

dirlt@dirlt-virtual-machine:~/.ssh$ cat config
Host git
Port 16024
HostName git.fm
User dirtysalt

这样之后通过ssh git的话就相当于ssh -l dirtysalt -p 16021 git.fm.非常方便。

NOTE(dirlt):实际上第二点这个对于scp也是很必要的,因为scp没有办法指定工作端口只能使用默认的22

1.5 虚拟机

1.5.1 vmware虚拟机增加磁盘空间

今天感觉自己的磁盘空间好像有点不够了,大部分数据都是在$HOME下面的,需要增加磁盘空间。

使用vmware disk expand似乎不太好用,虽然磁盘空间增大了,但是df -h发现识别的硬盘大小还是一样(可能需要重新格式化才行):(。

另外一个办法,就是在vmware下面再增加一个disk. 128G,识别为/dev/sdb。然后在linux下面

  1. fdisk为/dev/sdb创建分区,partition number=1.
  2. partprobe /dev/sdb1 (?具体什么用途我也不太清楚,inform OS partition table changed)
  3. mkfs.ext4 /dev/sdb1 格式化文件系统

产生这个硬盘之后,可以首先将自己的$HOME重命名,然后mount /dev/sdb1 $HOME.

接着将原来数据copy过去,最好使用cp -r .*这样可以copy隐藏文件。然后需要chown owner:owner .* -R来修改权限(因为这个步骤通常是root操作的)。然后将原来的数据删除即可。

之后为了自动挂载,修改/etc/fstab

/dev/sdb1 $HOME ext4 defaults 0 0

NOTE(dirlt):这里对于0 0不太清楚是什么意思,只是知道分别是dumps以及fsck check order. :(

1.5.2 virtualbox安装windows虚拟机

安装windows虚拟机主要是为了方便一些需要在windows下面完成的操作,比如U盾。 另外windows下面也有一些第三方的软件在Linux下面比较匮乏比如EverBox, 虽然DropBox也非常不错但是相对来说还是国内服务器会比较好一些。

使用virtualbox,通过加载windows xp的镜像安装,这个非常简单。 或者是直接使用别人生成好的.vdi文件。vdi全称应该是virtual disk image。

NOTE(dirlt):升级内核或者是重装系统的话,可能会造成内核版本与默认源的virtualbox不匹配,可以从官网下载最新版本。 参考链接 https://www.virtualbox.org/wiki/Linux_Downloads

1.5.3 virtualbox设置共享文件夹

设置共享文件夹主要是为了数据可以进行同步。通过windows虚拟机,安装同步软件比如GDrive。 然后通过共享文件夹,将GDrive的同步目录隐射到Linux文件系统上面,完成数据同步。

  • 首先挂载VBoxAdditions.iso,这个文件在/usr/share/virtualbox下面
  • 之后就会在虚拟机里面提示安装相关的驱动程序。
  • 完成之后在设置virtualbox的settings/share folder,创建本地share folder
  • 然后进入虚拟机“我的电脑”右键选择映射网络驱动器,通过浏览可以找到对应的网络驱动器。

我是参考这篇图文并茂的文章的 http://hi.baidu.com/hifinan/item/79f22545a8400ed3c1a592f3

1.5.4 virtualbox下使用U盾

首先需要在 https://www.virtualbox.org/wiki/Downloads VirtualBox Extension Pack,双击执行。 在Settings =》 USB选项里面勾选 Enable USB Controller 和 Enable USB2.0(EHCI) Controller。

然后我们需要添加vboxusers这个群组,同时将自己加入到这个群组内:

  • sudo groupadd vboxusers
  • sudo gpasswd -a dirlt vboxusers

接着重新启动ubuntu。

接着Settings =》 USB里面添加那些已经识别的设备,接着启动windows虚拟机就可以使用U盾了。

Date: 2013-10-16T00:16+0800

你可能感兴趣的:(#,Linux运维)