ubuntu 学习笔记(不断更新)

转一篇文章,挺不错的,我的pdf中文包安装参考的这篇解决了

熟练 vim 操作是在 Linux 下生存的先决条件!


1. 切换 root 身份

$ sudo passwd root  # 修改 root 密码
$ su  # 切换到 root 身份
# exit  # 回到用户身份


2. 挂载分区

Linux 将硬盘各分区看作 /dev 下的设备文件,形如 sda1, sda7, sdb1 等。
$ sudo mount /dev/sda1 /mnt  # 将硬盘第一个分区挂载到 /mnt 目录下
$ sudo mount -t smbfs -o user=edelweiss //x.x.x.x/backup /mnt  # 将另一台ip为 x.x.x.x 的电脑中的共享文件夹 backup 挂载到 /mnt 目录下


3. 命令行配置网络

$ sudo vi /etc/network/interfaces  # 编辑网络接口配置文件
添加如下内容:
auto eth0
iface eth0 inet static
address x.x.x.x  # ip地址
netmask x.x.x.x  # 子网掩码
gateway x.x.x.x  # 网关

$ sudo vi /etc/resolv.conf  # 如果该文件不存在就创建一个
添加如下内容:
nameserver x.x.x.x  # DNS

$ sudo /etc/init.d/networking restart  # 重启网络

这样做的好处是摆脱了 NetworkManager 的控制,登录后系统自动连网。


4. apt 包管理器

$ sudo vi /etc/apt/sources.list  # 编辑源
$ sudo apt-get update  # 更新包信息
$ sudo apt-get upgrade  # 升级包
$ sudo apt-get install PACKAGE  # 安装PACKAGE包
$ sudo apt-get remove PACKAGE  # 卸载PACKAGE包

常用的包有:build-essential, stardict, kchmviewer, vim, vim-gnome & vim-gtk (gvim), pidgin, ...


5. 磁盘备份

$ dd if=/dev/sdb of=backup_usb  # 将整个U盘备份成backup_usb文件


6. 查看磁盘空间

$ df -ah


7. 设置输入法

$ im-switch -s ibus  # 将ibus设置为默认输入法


8. 在U盘中安装Ubuntu(以8.10为例)

首先从 Ubuntu 官网下载镜像文件 ubuntu-8.10-desktop-i386.iso,刻录到光盘上并用它将 Ubuntu 装到U盘中(可用 Windows 下的 Nero 或者 Ubuntu 下自带的刻录工具)。接下来就要解决面临的两个问题:
(1) 拔下U盘后本地系统无法启动
插上U盘启动本地系统,下载“一键GHOST v2010.01.02”,安装后重启进入GHOST的DOS命令行界面,输入“fdisk /mbr”,本地 Windows 即可正常启动。
(2) 本地 Ubuntu 无法启动
重装GRUB:进入 Windows,下载“grub4dos 0.4.4”,解压后将这三个文件“grldr、grub.exe、menu.lst”拷贝到 C 盘根目录下。右键单击“我的电脑”,选择“属性”->“高级”->“设置(启动和故障恢复)”->“编辑”,在最后添加 “C:\GRLDR=grub4dos”,保存后重启电脑,进入grub4dos,输入“find /boot/grub/stage1”,记住返回的结果(形如(hdx,y)),这时会出现死机,重启再进入grub4dos,输入“root (hdx,y)”,x、y为刚才记住的结果,最后“setup (hd0)”,重启后GRUB恢复正常。

至于 wubi 方式的安装,它只是把整个 Ubuntu 当成一个 root.disk 文件,是 Windows 的一个附属品,仍然不算彻底摆脱 Windows,只推荐新手试用 Ubuntu 时使用。


9. 安装 Adobe Reader 8.1.7

从adobe官网上下载AdobeReader_enu-8.1.7-1.i386.deb
$ sudo dpkg -i AdobeReader_enu-8.1.7-1.i386.deb  # 安装 Adobe Reader 8,默认装到 /opt 目录下

下载中文语言包支持:http://www.adobe.com/go/acroasianfontpack
得到FontPack81_chs_i486-linux.tar.gz
$ tar xzf FontPack81_chs_i486-linux.tar.gz  # 解压
$ cd CHSKIT  # 进入解压后的目录
# ./INSTALL  # 开始安装,默认装到 /opt 目录下


10. 安装星际译王词典

$ sudo apt-get install stardict  # 安装 stardict 包
从 http://debian.ustc.edu.cn/debian-uo/dists/sid/ustc/pool/stardict/ 下载所需词典文件(.deb),我常用的三个词典是:
1. 朗道英汉字典 (stardict-langdao-ec-gb_2.4.2-2_all.deb)
2. 朗道汉英字典 (stardict-langdao-ce-gb_2.4.2-2_all.deb)
3. 牛津现代英汉双解词典 (stardict-oxford-gb_2.4.2-2_all.deb)
$ sudo dpkg -i stardict-langdao-ec-gb_2.4.2-2_all.deb  # 安装朗道英汉字典
$ sudo dpkg -i stardict-langdao-ce-gb_2.4.2-2_all.deb  # 安装朗道汉英字典
$ sudo dpkg -i stardict-oxford-gb_2.4.2-2_all.deb  # 安装牛津现代英汉双解词典


11. 格式化成 ntfs 格式

$ sudo apt-get install ntfsprogs  # 安装ntfs程序包
# mkfs.ntfs DEVICE  # 格式化DEVICE设备,要快速格式化就加 -f


12. 修改 initrd 文件

$ mv initrd.img initrd.img.gz  # 将 initrd.img 更名为 initrd.img.gz
$ gunzip initrd.img.gz  # 将其解压为 cpio 文档
$ cpio -i < initrd.img  # 解包,将产生许多文件,可根据需要进行修改
$ rm initrd.img  # 删掉旧的 initrd.img 文件
$ find . | cpio -o -H newc | gzip -9 > /boot/initrd.img  # 重新打包


13. 用 wubi 安装的系统更新后没有原来的GRUB启动栏了,出现的是:

GNU GRUB version 1.97~beta4
[ Minimal Bash-like line editing is suppored. For the first word, TAB lists possible command completions. Anywhere else TAB lists the possible completions of a device/filename. ]

sh:grub>_

依次输入下列命令:
> ls  # 列出若干形如 (hd0,x) 的信息
> ls (hd0,x)  # 依次尝试每个列出的 x 值,找到自己 ubuntu 的所在分区,假设为 (hd0,7)
> insmod ntfs  # 加载 ntfs 模块,因为 wubi 将 ubuntu 装到了 ntfs 盘上
> set root=(hd0,7)  # 这里 (hd0,7) 就是刚才找到的 ubuntu 所在的分区
> ls $Boot  # 找到 boot 分区的 uuid,下一步要用到
> search --no-floppy --fs-uuid --set UUID  # 这里 UUID 就是上一步找到的值
> loopback loop0 /ubuntu/disks/root.disk  # 设 loop0,wubi 将 ubuntu 安装成一个 root.disk 文件
> set root=(loop0)  # 重设 root
> linux /boot/vmlinuz-2.6.xxxxxx (tab补全) root=/dev/sda7 loop=/ubuntu/disks/root.disk ro quiet splash  # 加载内核
> initrd /boot/initrd.img-2.6.xxxxxx (tab补全)
> boot

这样就可以成功进入系统了,打开终端输入:
$ sudo update-grub2

这样下次启动就恢复正常的GRUB启动栏了


14. 开启SSH服务并远程登录或拷贝文件

服务器端:
$ sudo apt-get install ssh  # 安装ssh及openssh-server
$ sudo /etc/init.d/ssh restart  # 启动SSH服务

客户端:
$ ssh edelweiss@x.x.x.x  # 远程登录到 ip 为x.x.x.x的edelweiss用户
$ exit  # 退出登录
$ scp /home/edelweiss/a.cpp edelweiss@x.x.x.x:/home/edelweiss  # 将本地的a.cpp拷贝到远端服务器
$ scp edelweiss@x.x.x.x:/etc/ssh/sshd_config /home/edelweiss/tmp  # 将远端服务器中的sshd_config文件拷贝到本地
# 有时会出现登不进去的情况,只需删掉下面这个文件就可以了:
$ rm ~/.ssh/known_hosts


15. NBD(Network Block Device) 使用方法

服务器端:
$ sudo apt-get install nbd-server  # 安装nbd服务器端
$ nbd-server 2000 /home/edelweiss/img.dom

客户端:
$ sudo apt-get install nbd-client  # 安装nbd客户端
# modprobe nbd  # 加载nbd模块
# nbd-client x.x.x.x 2000 /dev/nbd0  # x.x.x.x 为服务器端ip,2000为相应的端口,挂载到 /dev/nbd0 设备上
# mkfs.ext3 /dev/nbd0  # 用之前要先格式化
# mkdir /mnt/nbd0  # 创建一个用于挂载nbd设备的目录
# mount /dev/nbd0 /mnt/nbd0  # 挂载这个设备
# 现在就可以对这个设备进行操作了
# umount /mnt/nbd0  # 卸载这个设备
# nbd-client -d /dev/nbd0  # 断开连接


16. 修改主机名

$ hostname  # 显示当前主机名
$ sudo hostname HOSTNAME  # 临时修改主机名为 HOSTNAME 而不写入配置文件,下次启动仍然是修改前的主机名
$ sudo vi /etc/hostname  # 永久修改主机名,将文件中原来的主机名更改为自己想要的,保存退出
$ sudo vi /etc/hosts  # 还要将这个文件中 127.0.1.1 后的名字也改为自己想要的主机名,否则 sudo 操作会一直提示:unable to resolve host xxx


17. 在终端中听音乐

$ sudo apt-get install moc  # 安装 MOC 播放器,默认只能播放 mp3 格式
$ sudo apt-get install moc-ffmpeg-plugin  # 添加 wma 格式支持
$ mocp  # 打开播放器

解决中文歌名乱码:
$ vi ~/.moc/config
添加:
ReadTags=no
保存退出


18. 安装 NVIDIA 显卡驱动后开关机花屏且分辨率过低

$ sudo apt-get install v86d hwinfo  # 安装所需包
$ sudo hwinfo --framebuffer  # 查看 framebuffer
$ sudo vi /etc/default/grub  # 修改 grub 文件中的如下两行:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset video=uvesafb:mode_option=1280x800-24,mtrr=3,scroll=ywrap"
GRUB_GFXMODE=1280x800

$ sudo vi /etc/initramfs-tools/modules  # 修改 initramfs,在最后添加如下内容:

uvesafb mode_option=1280x800-24 mtrr=3 scroll=ywrap

$ echo FRAMBUFFER=y | sudo tee /etc/initramfs-tools/conf.d/splash  # 强制使用 framebuffer
$ sudo update-grub2  # 更新 grub
$ sudo update-initramfs -u  # 更新 initramfs
$ sudo reboot  # 重启后生效


19. 解压缩文件

$ tar zxf xxx.tar.gz  # 解压缩 gzip 文件
$ tar jxf xxx.tar.bz2  # 解压缩 bzip2 文件


20. 下载 glib 库

ftp://ftp.gtk.org/pub/glib/
http://download.chinaunix.net/download/0004000/3822.shtml
源码编译安装 nbd-2.9.15 时需要 glib 库
glib-2.24.1 版本是目前最佳选择,但安装它还需要装 zlib 库:
$ sudo apt-get install zlib1g-dev


21. 修改 ext2/ext3/ext4/FAT32/NTFS 磁盘分区卷标

1. FAT32

$ sudo apt-get install mtools  # 安装 mtools 软件包
$ cp /etc/mtools.conf ~/.mtoolsrc
$ vi ~/.mtoolsrc
添加如下一行:
drive i: file="/dev/sdb1"  # sdb1 可以是任何想要修改的分区对应的设备名
$ mcd i:  # 更改命令提示符路径到 i: 盘
$ sudo mlabel -s i:  # 查看 i: 当前的卷标
$ sudo mlabel i:NEW_LABEL  # NEW_LABEL 即为新的卷标名
$ sudo mlabel -s i:  # 检查是否修改成功

2. NTFS

$ sudo apt-get install ntfsprogs  # 安装 ntfsprogs 软件包
$ sudo ntfslabel /dev/sda1 NEW_LABEL  # NEW_LABEL 即为新的卷标名
重新挂载这个分区或设备以检查是否修改成功

3. ext2/ext3/ext4

$ sudo e2label /dev/sda7 NEW_LABEL  # NEW_LABEL 即为新的卷标名
重新挂载这个分区或设备以检查是否修改成功


22. 系统完整备份与恢复

将 / 目录下除 /proc、/mnt、/media 和 /tmp 以外的其他内容备份到 Data 盘中,命名为 linux.tgz:
# tar --exclude /proc --exclude /mnt --exclude /media --exclude /tmp -zcvpf /media/Data/linux.tgz /
用 linux.tgz 备份文件恢复系统,将它拷贝到 / 目录下,并在 / 目录下执行:
# tar -zxvf linux.tgz
# mkdir proc
# mkdir mnt
# mkdir media
# mkdir tmp


23. 源码安装/卸载软件

如果安装包中有 configure 文件,则进入到安装目录,然后输入:
# ./configure  # 检查安装环境,生成 Makefile
# make  # 编译
# make install  # 安装
# make uninstall  # 卸载

如果安装包中有 INSTALL 文件,则进入到安装目录,然后输入:
# ./INSTALL  # 安装
进入软件安装的总目录下含有 UNINSTALL 文件的目录,然后输入:
# ./UNINSTALL  # 卸载


24. 编译内核模块之 Makefile 简单写法

obj-m := nbd.o
KERNELBUILD := /lib/modules/`uname -r`/build
default:
make -C $(KERNELBUILD) M=$(shell pwd) modules
clean:
rm -rf *.o *.ko *.mod.c .*.cmd .tmp_versions
(注意 Makefile 里面要求的 tab)


25. 磁盘分区

cfdisk 是个不错的磁盘分区工具,用法很简单,只需要输入:
$ cfdisk /dev/sdb
就可以给 sdb 这个设备进行分区了
确定要保存就输入大写的W将当前分区表写入到硬盘


26. 关闭蜂鸣器

$ sudo rmmod pcspkr  # 立即生效,但重启后恢复蜂鸣器
$ sudo echo "blacklist pcspkr" >> /etc/modprobe.d/blacklist  # 资料上说该方法永久有效,但尚未成功


27. root 权限下 tab 补全不好用

总觉得在 root 权限下,tab 补全不如普通帐户的好用,比如输入下列这个命令时:
# apt-get install xxx
输入“apt-g“后,按 tab 可以补全“apt-get“;但之后输入”i“,按 tab 无法补全“install“,而普通帐户下就可以。
在网上搜到解决方案,通过对比 /root/.bashrc 和 /home/edelweiss/.bashrc 这两个文件,发现以下几行二者是不同的:

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
. /etc/bash_completion
fi

在 /root/.bashrc 文件中,后三行被注释掉了,难怪 tab 补全会出问题…… -_-#

作者: bailiangcn   发布时间: 2010-09-13