文档库 最新最全的文档下载
当前位置:文档库 › Ubuntu中文手册_第八章:Ubuntu 小技巧

Ubuntu中文手册_第八章:Ubuntu 小技巧

Ubuntu中文手册_第八章:Ubuntu 小技巧
Ubuntu中文手册_第八章:Ubuntu 小技巧

UbuntuManual:Ubuntu 小技巧

出自Ubuntu中文

?UbuntuManual导航

发行版升级Ubuntu 软件包管理Ubuntu下的 Linux 内核Ubuntu 小技巧

编程GnuPG Ubuntu 技术支持附录

目录

[隐藏]

? 1 第 8 章 - Ubuntu 小技巧

o 1.1 启动系统

? 1.1.1 “我忘记了 root 密码!”(一)

? 1.1.2 “我忘记了 root 密码!”(二)

? 1.1.3 无法启动系统

? 1.1.4 “我不想直接启动到 X!”

? 1.1.5 其它用于启动提示符的技巧

? 1.1.6 设置 GRUB 启动参数

o 1.2 活动记录

? 1.2.1 记录shell活动

? 1.2.2 记录X活动

o 1.3 拷贝及创建子目录

? 1.3.1 拷贝整个子目录的基本命令

? 1.3.2 cp

? 1.3.3 tar

? 1.3.4 pax

? 1.3.5 cpio

? 1.3.6 afio

o 1.4 差异备份与数据同步

? 1.4.1 使用rdiff进行差异备份

? 1.4.2 使用pdumpfs进行每日备份

? 1.4.3 使用RCS进行定期差异备份

o 1.5 系统冻结恢复

? 1.5.1 中止一个进程

? 1.5.2 Alt-SysRq

o 1.6 记住这些可爱的小命令

? 1.6.1 Pager

? 1.6.2 释放内存

? 1.6.3 设定时间(BIOS)

? 1.6.4 设定时间(NTP)

? 1.6.4.1 拥有永久Internet连接的系统设置时间

? 1.6.4.2 偶尔进行Internet连接的系统设置时间? 1.6.5 如何禁用屏幕保护程序

? 1.6.6 搜索系统管理数据库

? 1.6.7 禁用声音(响铃)

? 1.6.8 控制台上的错误信息

? 1.6.9 正确设置控制台类型

? 1.6.10 恢复控制台的健壮性

? 1.6.11 将DOS下的文本文件转换为Unix类型

? 1.6.12 使用 recode 转化文本文件

? 1.6.13 正规表达式的置换

? 1.6.14 使用脚本来编辑文件

? 1.6.15 提取源文件修改部分合并到更新包

? 1.6.16 分割大文件

? 1.6.17 从文本格式的表格中抽取数据

? 1.6.18 精巧的管道命令辅助脚本

? 1.6.19 循环每一个文件的脚本片段

? 1.6.20 短小的Perl脚本

? 1.6.21 从网页上获取文本或邮件列表文档

? 1.6.22 打印网页

? 1.6.23 打印帮助页面

? 1.6.24 合并两个 PostScript 或 PDF 文件

? 1.6.25 命令耗时

? 1.6.26 nice命令

? 1.6.27 日程安排(cron,at)

? 1.6.28 用screen来定制控制台

? 1.6.28.1 远程访问方案

? 1.6.28.2 典型的screen命令

? 1.6.28.3 screen会话中的退格键和Ctrl-H

? 1.6.28.4 X下与screen等价的程序

? 1.6.29 网络测试基础

? 1.6.30 从本地缓冲池中清空(flush)邮件

? 1.6.31 删除本地缓冲池中的冻结邮件

? 1.6.32 再分发 mbox 中的信件

? 1.6.33 清空文件内容

? 1.6.34 空文件

? 1.6.35 chroot

? 1.6.35.1 用 chroot 来运行不同版本的 Ubuntu

? 1.6.35.2 设置chroot登录

? 1.6.35.3 配置chroot下的X

? 1.6.35.4 使用chroot来运行其它发行版

? 1.6.35.5 使用chroot来编译软件包

? 1.6.36 怎样检查硬链接

? 1.6.37 mount硬盘上的镜像文件

? 1.6.38 Samba

? 1.6.39 外来文件系统的操作工具

o 1.7 需要注意的典型错误

? 1.7.1 rm -rf .*

? 1.7.2 rm /etc/passwd

[编辑]第 8 章 - Ubuntu 小技巧

[编辑]启动系统

关于系统启动提示的详细信息请参见 LDP BootPrompt-HOWTO。

[编辑]“我忘记了 root 密码!”(一)

只要能访问控制台键盘,不需要 root 密码也可以启动系统并以 root 帐号登录。 (这里假设没有 BIOS 密码或 lilo 之类的启动引导器密码用于控制系统启动。)

下面是一个不需要额外的启动盘或对 BIOS 启动设置进行修改的过程。这里的“Linux”是代表在 Ubuntu 默认安装系统中启动 Linux 内核的标签。

在 lilo 的启动屏幕中,当 boot: 一出现时 (在某些系统中,您必须按 shift 键以阻止自动启动;如果 lilo 使用 framebuffer,您需要按 TAB 键才能看到自己输入的选项),就输入:

boot: Linux init=/bin/sh

这会让系统启动内核并运行 /bin/sh 而非其标准的 init。现在你已获得 root 权限和一个 root shell。由于当前 / 是以只读方式挂载,而其它的硬盘分区均未挂载,故你必须完成下列步骤才能获得一个有适当功能的系统。

init-2.03# mount -n -o remount,rw /

init-2.03# mount -avt nonfs,noproc,nosmbfs

init-2.03# cd /etc

init-2.03# vi passwd

init-2.03# vi shadow

(如果 /etc/passwd 文件中所有用户的第二个域的数据都为“x”,就表明系统使用了影子(shadow)密码,必须编辑 /etc/shadow。)要删除 root 密码,请编辑密码文件中第二个数据域,将它设置为空白。这样重启系统不用密码就能登录到 root。当系统启动进入 runlevel 1 时,Ubuntu 需要密码。

在 /bin 下装一个小编辑器是个好习惯,因为有时 /usr 是无法访问的(参阅应急的编辑器, 第 11.2 节)。

另外可以安装 sash 软件包,当系统无法启动时,还可执行:

boot: Linux init=/bin/sash

当 /bin/sh 不可用时,sash 可作为 sh 的交互式替代品,它是静态链接,内建了许多标准工具(在系统提示符下输入“help”可获得参考列表)。

[编辑]“我忘记了 root 密码!”(二)

从急救盘启动系统。假设 /dev/hda3 是原始 root 分区,可用下面的方法编辑密码文件,与上述方法一样容易。

# mkdir fixit

# mount /dev/hda3 fixit

# cd fixit/etc

# vi shadow

# vi passwd

与上面的方法相比,该方法的好处在于不需要知道 lilo 密码(如果有的话)。但如果系统没有预先设置为从软盘或 CD 启动,就需要访问 BIOS 的权限。

[编辑]无法启动系统

没在安装过程中制作启动盘?没关系。如果 lilo 损坏了,从 Debian 安装套件中拿出启动盘,用它来启动系统。假设你的 root 分区在 /dev/hda12,你想进入 runlevel 3,在启动提示符后输入:

boot: rescue root=/dev/hda12 3

接下来,系统使用软盘上的内核启动,你可登录到一个几乎拥有全部功能的系统了。(可能有少量特性或模块不可用。)

如果系统崩溃,亦可参阅为无法启动的系统安装软件包, 第 6.3.6 节。

如果想做张自定义启动盘,参阅急救盘中的 readme.txt 文档。

[编辑]“我不想直接启动到 X!”

玩 edgy/dapper 很有趣,但在启动进程中执行不稳定的 xdm、gdm、kdm 和 wdm 会让你焦头烂额。

首先,在启动提示符后输入如下指令获得 root shell:

boot: Linux vga=normal s

这里的 Linux 是你要启动的内核的标记,“vga=normal”告诉 lilo 在普通VGA 屏幕下运行,“s”(或“S”)是传给 init 的参数,告诉它进入单用户模式。在提示符后输入 root 密码。

有多种方法禁用 X 启动 daemons:

?运行 update-rc.d -f ?dm remove ; update-rc.d ?dm stop 99 1 2 3 4

5 6 .

?在所有 /etc/init.d/?dm 文件的最前面加上“exit 0”。

?把所有的 /etc/rc2.d/S99?dm 文件改名为 /etc/rc2.d/K99?dm。

?删除所有的 /etc/rc2.d/S99?dm 文件。

?运行 :>/etc/X11/default-display-manager

其中,rc2.d 中的数字必须与 /etc/inittab 中指定的 runlevel 一致。而 ?dm 的意思是你要将同一个命令运行多次,每次将其替换成 xdm、gdm、kdm 和 wdm 中的一个。

在 Ubuntu 下只有第一种方法是“唯一正确的方法”。最后一种方法比较简单但只适用于 Ubuntu,而且还需要使用 dpkg-reconfigure 重新设置一次。其它方法都是通用的中 daemons 的方法。

你仍可在任何控制台 shell 中用 startx 命令启动 X。

[编辑]其它用于启动提示符的技巧

使用lilo启动提示符,可指定系统启动到特定的runlevel和配置。详情参阅BootPrompt-HOWTO (LDP)。

如果希望系统启动到runlevel 4,可以lilo启动提示符后输入:

boot: Linux 4

如果希望系统启动到正常功能的单用户模式,而且你知道root密码,可在lilo 启动提示符后输入下列任一参数。

boot: Linux S

boot: Linux 1

boot: Linux -s

如果希望系统以少于实际内存数的内存启动(也就是说机器有64MB内存,只分配48MB给系统使用),在lilo启动提示符后输入:

boot: Linux mem=48M

注意,不要指定大于实际内存数的内存,否则内核会崩溃。如果你有多于64MB 的内存,如128MB,应在系统启动时执行mem=128M或在/etc/lilo.conf中添加类似的命令行,否则旧内核或使用旧BIOS的主板将无法使用大于64MB的内存。

[编辑]设置 GRUB 启动参数

GRUB是Hurd项目开发的新型启动管理器,比Lilo更灵活,不过启动参数也与之稍有不同。

grub> find /vmlinuz

grub> root (hd0,0)

grub> kernel /vmlinuz root=/dev/hda1

grub> initrd /initrd

grub> boot

请注意Hurd中的设备名:

HURD/GRUB Linux MSDOS/Windows

(fd0) /dev/fd0 A:

(hd0,0) /dev/hda1 C: (usually)

(hd0,3) /dev/hda4 F: (usually)

(hd1,3) /dev/hdb4 ?

详情参阅/usr/share/doc/grub/README.Debian和

/usr/share/doc/grub-doc/html/。

[编辑]活动记录

[编辑]记录shell活动

比起普通的个人电脑环境,Unix环境的系统管理包含了更多细致的任务。必须掌握所有基本的配置方法以便进行系统故障恢复。基于 X11 的GUI配置工具看上去又好又方便,但不适用于紧急状况。

记录shell活动是个好习惯,特别是root用户。

Emacs:使用M-x shell在缓冲区中开始记录,使用 C-x C-w 将缓冲区中的记录写入文件。

Shell:使用screen命令和用screen来定制控制台, 第 8.6.28 节中描述的“^A H”;或者使用 script 命令。

$ script

Script started, file is typescript

... do whatever ...

Ctrl-D

$ col -bx savefile

$ vi savefile

还可使用下面的方法:

$ bash -i 2>&1 | tee typescript

[编辑]记录X活动

如果需要X应用程序的活动记录图,包括 xterm 屏显,可使用gimp(GUI)。它可以对每个窗口或整个屏幕进行拍照。还可以使用xwd(xbase-clients)、import(imagemagick)和 scrot(scrot)。

[编辑]拷贝及创建子目录

这些拷贝和归档命令提供系统和数据备份的基本功能。在 the example scripts 中提供了一个名为 backup 的简单备份脚本例子。

[编辑]拷贝整个子目录的基本命令

如果想重新整理文件组织结构,可使用下面的方法移动文件及文件链接:

标准方法:

# cp -a /source/directory /dest/directory # 要求 GNU cp

# (cd /source/directory && tar cf - . ) | \

(cd /dest/directory && tar xvfp - )

如果包含硬链接,则需要更严谨的方法:

# cd /path/to/old/directory

# find . -depth -print0 | afio -p -xv -0a /mount/point/of/new/directory 如果是远程操作:

# (cd /source/directory && tar cf - . ) | \

ssh user@host.dom (cd /dest/directory && tar xvfp - )

如果没有链接文件:

# scp -pr user1@host1.dom:/source/directory \

user2@host2.dom:/dest/directory

其中,scp <==> rcp,ssh <==> rsh。

下面的有关拷贝整个子目录的信息由 Manoj Srivastava srivasta@https://www.wendangku.net/doc/1d10001356.html, 发表于 debian-user@https://www.wendangku.net/doc/1d10001356.html,。

[编辑] cp

传统上,cp并不能真正完成这个任务,因为它既没对符号链接进行区别对待,又不能保存硬链接。另一件需要注意的事就是稀疏文件(有洞的文件)。

GNU cp克服了这缺陷,然而对于非GNU系统,cp仍存在问题。而且使用cp无法生成小巧轻便的文档包。

% cp -a . newdir

[编辑] tar

Tar克服了cp在处理符号链接时出现的问题,然而,cpio可以处理特殊文件,传统的tar却不行。

对于某个有多重硬链接的文件,tar的处理方法是只将其中一个链接拷贝到磁带上,所以日后你只能找回拷贝中所保留那个的链接所指的文件;cpio会为每个链接做一个拷贝,日后你可以找回任意一个链接所指的文件。

[编辑] pax

全新的,符合POSIX(IEEE Std 1003.2-1992, pages 380–388 (section 4.48) and pages 936–940 (section E.4.48))标准的,众望所归的,轻便的文档包交互工具。pax可以读、写以及列出文档包的成员,并能拷贝文件目录层次。pax 的操作独立于特定的文档包格式,支持各种各样不同的文档包格式。

pax工具刚刚成形,还很新。

# apt-get install pax

$ pax -rw -p e . newdir

or

$ find . -depth | pax -rw -p e newdir

[编辑] cpio

cpio从cpio或tar文档包提取/放入文件。该文档包可以是硬盘上的另一个文件,也可以是磁带或管道。

$ find . -depth -print0 | cpio --null --sparse -pvd new-dir

[编辑] afio

afio更善于处理cpio格式的文档包。通常它比 cpio 要快,且提供了更多磁带选项,并且能更友好的处理有讹误的输入数据。它支持交互式处理多卷文档包。用afio制作压缩文档包比压缩tar或cpio文档包更安全。在备份处理脚本中afio是更佳的“文档处理引擎”。

$ find . -depth -print0 | afio -px -0a new-dir

对所有的磁带备份我都使用afio。

[编辑]差异备份与数据同步

要进行差异备份和数据同步可使用下列几种方法:

?rcs:备份并进行历史记录,只支持文本。

?rdiff-backup:备份并进行历史记录。支持链接。

?pdumpfs:对文件系统进行备份和历史记录。支持链接。

?rsync:单路同步。

?unison:双路同步。

?cvs:多路同步服务器备份并进行历史记录,只支持文本,技术成熟。参阅并行版本系统 (CVS), 第 12.1 节。

?arch:多路同步服务器备份并进行历史记录,但包括“处于工作中的目录”。

?subversion:多路同步服务器备份并进行历史记录,专用于Apache。

有关将这些方法与文档包操作结合应用的讨论参阅拷贝及创建子目录, 第 8.3 节,有关自动进行备份的讨论参阅日程安排(cron,at), 第 8.6.27 节。

我只讲解三个较容易使用的工具。

[编辑]使用rdiff进行差异备份

rdiff-backup提供了简单好用的方法对任何文件包括链接进行历史差异备份。例如要对~/目录下的所有文件备份到/mnt/backup:

$ rdiff-backup --include ~/tmp/keep --exclude ~/tmp ~/ /mnt/backup

从该文档包中取出3天前的旧数据恢复到~/old目录:

$ rdiff-backup -r 3D /mnt/backup ~/old

参阅rdiff-backup(1)。

[编辑]使用pdumpfs进行每日备份

pdumpfs是一种简单的每日备份系统,与Plan9的dumpfs一样,它每天都保存系统快照。任何时候都可以用它来恢复到某天的系统状态。请使用pdumpfs和cron来备份你的home目录。

在目标目录中,pdumpfs以YYYY/MM/DD的方式来组织系统快照。当 pdumpfs 第一次运行时,它将所有源文件拷贝到快照目录。从每二次运行起,pdumpfs仅拷贝更新的或新建的文件,对于没有改变的文件用硬链接方式指向前一天的系统快照,以此来节省硬盘空间。

$ pdumpfs src-dir dest-dir [dest-basename]

参阅 pdumpfs(8)。

[编辑]使用RCS进行定期差异备份

Changetrack会定期对RCS文档包中基于文本格式的配置文件的变化进行记录。参阅changetrack(1)。

# apt-get install changetrack

# vi changetrack.conf

[编辑]系统冻结恢复

[编辑]中止一个进程

运行top看看什么进程的活动有异常。按“P”以 CPU 使用率排序,“M”以内存使用率排序,“k”可以中止一个进程。还有一种方法,使用BSD风格的ps aux | less或System V风格的ps -efH | less。System V风格的排列会显示父进程ID (PPID),这对中止出错的(死掉的)子进程十分有用。

知道了进程的ID,就可使用kill中止(或发信号给)某个进程,killall的作用正如其名一样。经常使用的信号有:

1: HUP,重启daemon

15: TERM,普通中止

9: KILL,强令中止

[编辑] Alt-SysRq

内核编译选项“Magic SysRq key”提供系统强心针。在i386机器上按下

ALT-SysRq 组合键后,试试按下列各键r 0 k e i s u b,奇迹产生了:

Un'r'aw让键盘从X崩溃中重生。将控制台loglevel改为'0'以减少错误信息。sa'k'(system attention key)中止当前虚拟控制台的所有进程。t'e'rminate 中止当前终端除 init 外的所有进程。k'i'll中止除 init 外的所有进程。

'S'ync,'u'mount和re'b'oot帮你逃离真正的险境。

本文写作之时,Ubuntu默认安装的内核并未将该选项编译进去,需要重新编译内核激活该功能。详情参阅

/usr/share/doc/kernel-doc-version/Documentation/sysrq.txt.gz或

/usr/src/kernel-version/Documentation/sysrq.txt.gz。

[编辑]记住这些可爱的小命令

[编辑] Pager

less就是默认的 pager(文件内容浏览器)。按“h”可获得帮助。它比more

更有用。在shell启动脚本中运行eval $(lesspipe)或eval $(lessfile)可以让less活力四射。详情参阅/usr/share/doc/lessf/LESSOPEN。使用-R选项可输出生癖字符and enables ANSI color escape sequences.参阅less(1)。

对于某些编码系统(EUC)w3m可能是更好的选择。

[编辑]释放内存

free和top能让你了解内存资源的许多有用信息。别担心“Mem:”行中“used”的大小,看看它下面的数字(本例的数字是38792)。

$ free -k # 用 256MB 内存的机器

total used free shared buffers cached

Mem: 257136 230456 26680 45736 116136 75528 -/+ buffers/cache: 38792 218344

Swap: 264996 0 264996

物理内存的准确大小可通过grep '^Memory' /var/log/dmesg得到,本例将显示“Memory: 256984k/262144k available (1652k kernel code, 412k reserved, 2944k data, 152k init)”。

Total ==== 262144k ==== 256M (1k=1024, 1M=1024k)

Free to dmesg ==== 256984k ==== Total - kernel - reserved - data - init Free to shell ==== 257136k ==== Total - kernel - reserved - data

约有5MB内存系统不能使用,因为内核需要它。

[编辑]设定时间(BIOS)

# date MMDDhhmmCCYY

# hwclock --utc --systohc

# hwclock --show

设定系统时间和硬件时间为MM/DD hh:mm, CCYY。显示时间为本地时间而硬件时间使用UTC。

如果硬件(BIOS)时间设置为 GMT,在文件 /etc/default/rcS 中改变设置UTC=yes。

[编辑]设定时间(NTP)

参考:Managing Accurate Date and Time HOWTO。

[编辑]拥有永久Internet连接的系统设置时间

设置系统时钟通过远程服务器自动对时:

# ntpdate server

如果你的系统拥有永久的Internet连接,应该将该命令加入/etc/cron.daily/。[编辑]偶尔进行Internet连接的系统设置时间

使用chrony软件包。

[编辑]如何禁用屏幕保护程序

禁用屏幕保护程序,使用下面的命令。

对于Linux控制台:

# setterm -powersave off

启动 kon2 (kanji)控制台可执行:

# kon -SaveTime 0

运行X可执行:

# xset s off

# xset -dpms

# xscreensaver-command -prefs

控制其它的控制台特征,请参阅相关 man 页面。改变和显示终端行设置,请参阅 stty(1)。

[编辑]搜索系统管理数据库

Glibc提供了getent(1)搜索管理数据库的各类项目。例如passwd、group、hosts、services、protocols、networks。

getent database [key ...]

[编辑]禁用声音(响铃)

最直接的方法是拔掉PC喇叭。;-) 对于Bash shell可执行:

echo "set bell-style none">> ~/.inputrc

[编辑]控制台上的错误信息

不想看屏幕显示的错误信息,首选的方法是检查/etc/init.d/klogd,在该脚本中设置KLOGD="-c 3"然后运行/etc/init.d/klogd restart。另一种方法是执行dmesg -n3。

这儿是各种错误级别的含义:

?0: KERN_EMERG, 系统不可用

?1: KERN_ALERT, 必须立即执行

?2: KERN_CRIT, 紧急状态

?3: KERN_ERR, 错误状态

?4: KERN_WARNING, 警告状态

?5: KERN_NOTICE, 正常状态且十分重要

?6: KERN_INFO, 报告

?7: KERN_DEBUG, debug-level信息

如果你很厌恶详细而无用的错误信息,可以试试这个小补丁shutup-abit-bp6(位于样例脚本子目录)。

另一个该看看的地方是/etc/syslog.conf;,检查一下是否有信息记录被发送到了控制台设备。

[编辑]正确设置控制台类型

在类Unix系统中,访问控制台屏幕通常要调用库例程,这就为用户提供了一种独立于终端的方式来优化字符的屏幕更新过程。参阅ncurses(3X)和

terminfo(5)。

在Ubuntu系统中,有大量预定义项目:

$ toe | less # 所有项目

$ toe /etc/terminfo/ | less # 用户可再配置的项目

你的选择可导出到环境变量TERM。

当登录到远程Debian系统时,如果 xterm 的terminfo项目在非Debian的xterm 中失效,请将终端类型改为支持较少特性的版本如“xterm-r6”。参阅/usr/share/doc/libncurses5/FAQ。“dumb”是terminfo的最小公分母。

[编辑]恢复控制台的健壮性

如果执行 cat some-binary-file后屏幕一片混乱(命令的返回值与你的输入大相径庭):

$ reset

[编辑]将DOS下的文本文件转换为Unix类型

将DOS文本文件(行尾=M^J)转换成Unix文本文件(行尾=J)。

# apt-get install sysutils

$ dos2unix dosfile

[编辑]使用 recode 转化文本文件

下面将在 DOS、 Mac 和 Unix 的文本文件中转换行结尾格式:

$ recode /cl../cr mac.txt

$ recode /cr.. unix.txt

$ recode ../cl dos.txt

自由的 recode 在各种各样的字符集和界面中转换:

$ recode charset1/surface1..charset2/surface2 \

output.txt

使用的通用字符集设置是(参阅 Locales 简介, 第 9.7.3 节) : ?us — ASCII (7 bits)

?l1 — ISO Latin-1 (ISO-8859-1, Western Europe, 8 bits)

?EUCJP — EUC-JP for Japanese (Unix)

?SJIS — Shift-JIS for Japanese (Microsoft)

?ISO2022JP — Mail encoding for Japanese (7 bits)

?u2 — UCS-2 (Universal Character Set, 2 bytes)

?u8 — UTF-8 (Universal Transformation Format, 8 bits)

使用的通用界面 [38] :

?/cr — Carriage return as end of line (Mac text)

?/cl — Carriage return line feed as end of line (DOS text) ?/ — Line feed as end of line (Unix text)

?/d1 — Human readable bytewise decimal dump

?/x1 — Human readable bytewise hexidecimal dump

?/64 — Base64 编码文本

?/QP — Quoted-Printable 编码文本

更多信息,请参阅 info recode 中的相关描述。

有更多的专业转换工具:

?字符集转换:

o iconv —本地编码转换

o konwert —特殊编码转换

?二进制文件转换:

o uuencode and uudecode —用于 Unix

o mimencode —用于邮件

[编辑]正规表达式的置换

将所有文件FILES ...中的所有FROM_REGEX字段替换成 TO_TEXT字段。

$ perl -i -p -e 's/FROM_REGEX/TO_TEXT/g;' FILES ...

-i表示“就地编辑”,-p表示“在FILES...各文件中循环”。如果置换很复杂,应使用参数-i.bak而非-i,这有助于出错恢复;它会将每个原始文件保存为以.bak为后缀的备份文件。

[编辑]使用脚本来编辑文件

下面的脚本将删除5–10行以及16–20行。

#!/bin/bash

ed $1 <

16,20d

5,10d

w

q

EOF

在此,ed命令与vi命令模式下的是一样的,从外部编辑文件的方式使它更适于脚本化。

[编辑]提取源文件修改部分合并到更新包

下面的操作将根据文件位置,提取源文件的修改部分并创建统一的diff文件file.patch0或file.patch1:

$ diff -u file.old file.new1 > file.patch0

$ diff -u old/file new1/file > file.patch1

diff文件(也称补丁文件)通常用于发送程序更新。收到的补丁文件可使用下面的方法更新另一个文件:

$ patch -p0 file < file.patch0

$ patch -p1 file < file.patch1

如果有3个版本的源代码,使用diff3来合并效率更高:

$ diff3 -m file.mine file.old file.yours > file

[编辑]分割大文件

$ split -b 650m file # 将大文件分块成多个650MB的小文件

$ cat x* >largefile # 将所有小文件合并成一个大文件

[编辑]从文本格式的表格中抽取数据

假设有一个文本文件名为DPL,其中存放着所有前Debian项目领导人的名字和他们的上台日期,表格格式是以空格做为分隔的。

Ian Murdock August 1993

Bruce Perens April 1996

Ian Jackson January 1998

Wichert Akkerman January 1999

Ben Collins April 2001

Bdale Garbee April 2002

Martin Michlmayr March 2003

Awk经常用于从这类文件中提取数据。

$ awk '{ print $3 }'

August

April

January

January

April

April

March

$ awk '($1=="Ian") { print }'

Ian Murdock August 1993

Ian Jackson January 1998

$ awk '($2=="Perens") { print $3,$4 }'

象 Bash 这种 Shell 也能够用来分析这种文件:

$ while read first last month year; do

echo $month

done

... 跟第一个 Awk 例子有相同的输出

在这里,read 内建命令使用字符 $IFS (internal field separators 内部列分隔符)来将行分开为单词。

如果你改变 IFS 为 ":",你能够用 shell 漂亮的分析 /etc/passwd:

$ oldIFS="$IFS" # 保存旧值

$ IFS=":"

$ while read user password uid gid rest_of_line; do

if [ "$user" === "osamu" ]; then

echo "$user's ID is $uid"

fi

done < /etc/passwd

osamu's ID is 1001

$ IFS="$oldIFS" # 恢复旧值

(如果使用 Awk 作同样的事情,使用 FS=":" 来设置列分隔符。)

shell 也使用 IFS 来分开参数扩展、命令替换和算术扩展的结果集。但在被单引号或双引号引用的单词内,不会发生这种情况。默认的 IFS 值是:

请小心使用这个 shell IFS 技巧。当 shell 解释部分脚本作为它的输入时,奇怪的事情将会发生。

$ IFS=":," # 使用 ":" 和 "," 作为 IFS

$ echo IFS=$IFS, IFS="$IFS" # echo 是 Bash 内建的

IFS== , IFS=:,

$ date -R # 只是一个命令输出

Sat, 23 Aug 2003 08:30:15 +0200

$ echo $(date -R) # 子 shell --> 输入到主 shell

Sat 23 Aug 2003 08 30 36 +0200

$ unset IFS # 重设 IFS 为默认的

$ echo $(date -R)

Sat, 23 Aug 2003 08:30:50 +0200

[编辑]精巧的管道命令辅助脚本

下列脚本做为管道的一部分十分有用。

find /usr | egrep -v "/usr/var|/usr/tmp|/usr/local"

# 查找 /usr 下的所有文件,排除某些文件

xargs -n 1 command # 将所有项作为标准输入来执行命令

xargs -n 1 echo | # 将空格隔离的项分开为行

xargs echo | # 合并所有的行到一行里面

grep -e pattern| # 提取含有 pattern 的行

cut -d: -f3 -|

# 提取用 : 分开的第 3 列(比如说 passwd 文件)

awk '{ print $3 }' | # 提取用空格分开的第 3 列

awk -F'\t' '{ print $3 }' |

# 提取用 tab 分开的第 3 列

col -bx | # 删除退格键,扩展 tab 为空格

expand -| # 扩展 tab

sort -u| # 排序并删除重复行

tr '\n' ' '| # 将多行连接为一行

tr '\r' ''| # 删除 CR

tr 'A-Z' 'a-z'| # 转化大写字母为小写

sed 's/^/# /'| # 将每行变为注释

sed 's/\.ext//g'| # 删除 .ext

sed -n -e 2p| # 显示第 2 行

head -n 2 -| # 显示头两行

tail -n 2 -| # 显示最后两行

[编辑]循环每一个文件的脚本片段

下面的方法将循环处理匹配 *.ext 的每一个文件,确保适当处理文件名包含空格的奇怪文件,并且执行相同的操作。

Shell 循环(在 PS2=" " 时使用多行格式的例子。如果在一行内输入这些命令,需要在每一个换行处加一个分号。):

for x in *.ext; do

if test -f "$x"; then

command "$x"

fi

done

?find 和 xargs 结合:

find . -type f -maxdepth 1 -name '*.ext' -print0 | \

xargs -0 -n 1 command

?加 -exec 选项的 find 和一个命令结合:

find . -type f -maxdepth 1 -name '*.ext' \

-exec command '{}' \;

?加 -exec 选项的 find 和一个短的 shell 脚本结合:

find . -type f -maxdepth 1 -name '*.ext' \

-exec sh -c "command '{}' && echo 'successful'" \;

[编辑]短小的Perl脚本

虽然任何 Awk 脚本均可使用 a2p(1) 自动重写成 Perl,但最好用手工的方法将一行 Awk 脚本转化为一行 perl 脚本。例如:

awk '($2=="1957") { print $3 }' |

与下列任意一行相当:

perl -ne '@f=split; if ($f[1] eq "1957") { print "$f[2]\n"}' |

perl -ne 'if ((@f=split)[1] eq "1957") { print "$f[2]\n"}' |

perl -ne '@f=split; print $f[2] if ( $f[1]==1957 )' |

perl -lane 'print $F[2] if $F[1] eq "1957"' |

其实上面各行中所有 perl 参数中的空格均可去掉,这得益于Perl的数字字符串自动转换功能。

perl -lane 'print$F[2]if$F[1]eq+1957' |

有关命令行参数的信息可参阅perlrun(1),在

https://www.wendangku.net/doc/1d10001356.html,有更多令人着魔的Perl脚本,你会感兴趣的。

[编辑]从网页上获取文本或邮件列表文档

下面的操作将网页转化为文本文件。从网上拷贝配置文件时十分有用。

$ lynx -dump https://www.wendangku.net/doc/1d10001356.html,/help-info.html >textfile

links和w3m也可以这么用,只是生成的文本样式可能略有不同。

如果是邮件列表文档,可使用munpack从文本获得mime内容。

[编辑]打印网页

下面的操作将网页内容打印成PostScript文件或发送到打印机。

$ apt-get install html2ps

$ html2ps URL | lpr

参阅 lpr/lpd, 第 3.6.1 节。还可使用a2ps和mpage软件包生成PostScript 文件。

[编辑]打印帮助页面

下面的操作将帮助页面打印成PostScript文件或发送到打印机。

$ man -Tps some-manpage | lpr

$ man -Tps some-manpage | mpage -2 | lpr

[编辑]合并两个 PostScript 或 PDF 文件

可以将两个 PostScript 文件或 PDF 文件合并。

$ gs -q -dNOPAUSE -dBATCH -sDEVICE=pswrite \

-sOutputFile=bla.ps -f foo1.ps foo2.ps

$ gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite \

-sOutputFile=bla.pdf -f foo1.pdf foo2.pdf

[编辑]命令耗时

显示某进程的耗时

# time some-command >/dev/null

real 0m0.035s # 挂钟时间(过去的真实时间)

user 0m0.000s # 用户模式时间

sys 0m0.020s # 核心模式时间

[编辑] nice命令

ubuntu linux操作系统快捷键说明

ubuntu linux操作系统快捷键说明 娇滴滴假发 通用快捷键: F1+Alt 类似windows下面的Win键在GNOME中就是打开“应用程序”菜单(Applications Menu) F2+Alt 类似windows下面Win+R 是运行程序的快捷键 Ctrl+Alt+D 类似windows下面的Win+D 是显示桌面的快捷键 Ctrl+Alt+L 启动屏幕保护程序? Alt+Tab 切换程序,同windows下的定义一样 Print Screen 屏幕抓图(整个屏幕) Alt+Print Screen 当前窗口抓图 窗口操作快捷键: Alt+F4 关闭窗口 Alt+F5 取消最大化 Alt+F7 移动窗口的 Alt+F8 改变大小 Alt+F9 最小化当前窗口 Alt+F10 最大化当前窗口 Alt+空格切换输入法

程序中常用的快捷键: Ctrl+N 新建 Ctrl+X 剪切 Ctrl+C 复制 Ctrl+V 粘贴 Ctrl+Z 撤销 Ctrl+S 保存 Ubuntu操作基本快捷键: 打开主菜单= Alt + F1 运行= Alt + F2 显示桌面= Ctrl + Alt + d 最小化当前窗口= Alt + F9 最大化当前窗口= Alt + F10 关闭当前窗口= Alt + F4 截取全屏= Print Screen 截取窗口= Alt + Print Screen 默认特殊快捷键: 展示所有窗口程序= F10 展示当前窗口最上层程序= F11 展示当前窗口所有程序= F12

切换窗口= Alt + Tab 旋转3D桌面= Ctrl + Alt + 左/右箭头(也可以把鼠标放在标题栏或桌面使用滚轮切换)旋转3D桌面(活动窗口跟随)= Ctrl + Shift + Alt + 左/右箭头 手动旋转3D桌面= Ctrl + Alt + 左键单击并拖拽桌面空白处 窗口透明/不透明= possible with the “transset” utility or Alt + 滚轮 放大一次= 超级键+ 右击 手动放大= 超级键+ 滚轮向上 手动缩小= 超级键+ 滚轮向下 移动窗口= Alt + 左键单击 移动窗口时贴住边框= 左键开始拖动后再Ctrl + Alt 调整窗口大小= Alt + 中击 Bring up the window below the top window = Alt + middle-click * 动态效果减速= Shift + F10 * 水纹= 按住Ctrl+超级键 * 雨点= Shift-F9 * 桌面展开=Ctrl + Alt + 下箭头,然后按住Ctrl + Alt 和左/右箭头选择桌面 Ubuntu Gnome的桌面技巧: ===键盘类=== 1.先同时按住Alt + Ctrl 键,再按键盘上的左右光标键可以切换工作区 2.web时按"/" 键等于查找功能,桌面或者目录时按" /" 等于"打开.." 3.当前目录下快速文件(夹)定位, 直接输入文件(夹)名字

WIN7下硬盘安装Ubuntu双系统

Win7下硬盘安装Ubuntu11.04双系统 欢迎大家访问我们的网站:Linux起点:https://www.wendangku.net/doc/1d10001356.html, 起点论坛:https://www.wendangku.net/doc/1d10001356.html,/bbss 起点超级Q群:㈠10218442 ㈡92186523 ㈢90282859 ㈣106637392 一、准备工作(在win7下操作完成) 1.从官网https://www.wendangku.net/doc/1d10001356.html,上下载镜像文件,大小接近700M。 2.下载并安装easybcd。easybcd是一款很优秀的系统引导软件,功能强大,最关键的是傻瓜式一站式简易操作,极其适合新手使用!网上很多说用grubdos安装,但对于菜鸟的我来说,操作太麻烦而且容易引导失败! 3.腾出一个空盘,点击右键格式化之后把它删除(这个盘最好是在硬盘的后面,因为Windows系统不能识别Linux系统分区,如果将ubuntu装在D盘,将D盘删除并建立Linux系统分区后,原来的E盘就会变成D 盘,安装在E盘的软件会出现系统注册表路径不对称,要重新安装一遍软件)。网上很多说使用磁盘压缩功能以整理出空白分区,这个方法也可行,但这个盘要保证有10G空间以上比较稳妥。 4.安装好easybcd2.0后,启动软件: 按照上图的序号依次点击“Add New Entry”——“Neo Grub”——“Install”,点到“Install”后出面下面的界面,再点“Configure”。

点击“Configure”按钮后,会出现一个记事本文件,将下面的代码粘贴到文件尾部: title Install Ubuntu root (hd0,0) kernel (hd0,0)/vmlinuz boot=casper iso-scan/filename=/ubuntu-11.04-desktop-i386.iso ro quiet splash locale=zh_CN.UTF-8 initrd (hd0,0)/initrd.lz 如下图:

ubuntu各版本的区别

ubuntu、kubuntu以及xubuntu的区别Ubuntu默认是Gnome; KUbuntu用的是KDE,效果比较炫目,但是系统要求也较高 XUbuntu用的是Xface,比较轻量,系统要求较低,推荐! 另外可以尝试一下国人专为中国大陆使用者配置的Hiweed,非常人性化,软件也是国人常用的(如QQ) Hiweed GNU/Linux和dUbuntu,现在这两个发行版都是基于ubuntu的,特别是Hiweed 是基于xubuntu的,用Xfce做桌面并且集成了Icewm,硬件要求超低128M以上内存就可运行得不错了当然大于128的更好了,装好后占硬盘2.2G左右,运行速度快,是我用过的LINUX 中是最爽的了,可以刻盘也可以硬盘启动 live cd,边用边安装,爽极了,中文支持好,中文文档多,社区活跃。装好后还可以在线选装gnome或KDE,安装软件也超方便,有点像超市购物。呵呵 适合配置低的机器使用EdUbuntu用的也是Gnome,只不过界面改的稍微卡通一点,适合小孩子使用然后Edubuntu还加入了很多给小孩子用的有趣的软件。 来自:网络 ubuntu 发布的linux里面有一个非常具有迷惑性的版本-desktop。因为有一套server,所以desktop很容易从字面上被理解成桌面版。而这样理解的人通常会弄不明白剩下那个alternate是什么东西。 其实desktop是Live CD的名字,也就是刻录在光盘上运行的Linux。是一套已经装好的系统。把它烧录到光盘上放进光驱就可以直接运行这套完整的linux。当然你也可以在运行之后把它“安装”到硬盘上,而这样的安装更像是一种拷贝或者还原,类似ghost。 真正意义上正统的安装版本则是alternate,它是由许多deb包组成的。可以详细的制定安装内容。是正宗的硬盘安装般。 这两个版本还有一些速度上的区别。 因为类似系统还原,desktop的安装速度较快。而alternate正式的安装相比之下会慢一些。而运行的时候恰好相反:desktop因为是既成的,可能会缺少对应软件环境的适应性,所以和灵活指定及安装的alternate相比会慢一些。 desktopCD安装前可以看到基本界面和试用(liveCD功能), alternate面向安装个性化需求更大的更专业一点点的用户. desktop和alternate都有基本的软件包,要更多的软件包只要修改合适的源下载也是很快的. desktop是一个live cd ,只用于桌面系统,也可以在LiveCD状态下安装。 alternate是标准的安装CD。包含了一些桌面程序,可以用高级安装模式安装,在安装时可以划分分区。也可以当作Server来用,不过一些Server 程序要自己通过网络来安装Alternate安装过程会有高级分区以及grub安装选项,Desktop没有. alternate既能安装desktop也能安装server desktop是一个live cd

win7下安装ubuntu双系统

Win7下安装ubuntu双系统的经验分享author: Jeans 生物信息的,心血来潮想感受一下linux 系统挑来选去选择了ubuntu 10.10。呵呵,惭愧啊,其实只是看了china unix 的下载排名而已。 废话不多说了,进入正题。哦,交代一下,本人的是宏基4741g gt320 本本。 如果没记错的话我光安装就搞了大约一整天。我是按照网上的教程做的。 1 准备工作 1.1下载 easy bcd 2·0 和你选择好的ubuntu 的iso镜像文件。 1.2将你的电脑的磁盘最后腾出一块区域,我是这么做的:右击计算机,管理,磁盘管理然后将F盘压缩卷腾出一块30G左右的区域,新区要用FAT32格式,并且不要新加卷。 1.3将你的镜像文件放在某个盘的根目录下(我的是F盘),网上说这个盘也一定要是FAT32格式,这个我没注意,反正我的不是。打开镜像文件,也就是双击一下不是解压。找到casper文件夹下的vmlinuz和innitrd·lz文件解压并复制到C盘根目录下:这个说明一下解压复制我的理解是在C盘根目录要有casper文件夹里面有那两个文件,根目录下还要另外有那两个文件。我就是这么做的。 1.4安装打开 easy bcd,按照下图做

两张图直接从网上拿来的应该没什么问题。点击configure 命令后出现一个文本编辑窗口,将下面的命令敲入并保存: title Install Ubuntu root (hd0,0) kerne (hd0,0)/vmlinuz boot=casper iso-scan/filename=/ubuntu.iso ro quiet splash locale=zh_CNUTF-8 initrd (hd0,0)/initrd.lz 结果如图 图片也是网上的。命令中加黑的部分是你镜像的名字。这个过程中一定要注意的是在结束时要保证install/remove那个键写的是remove。 好了,准备工作完成,以上工作都是在WIN7下完成的。点击easy bcd上的tool按钮的重启计算机选项。 2 开始安装 2.1重启进入neogrub bootloader 选项,进入ubuntu的演示桌面,点击应用程序—附件--终端,命令行输入sudo umount -l /isodevice 回车(注意空格)。这个网上说是防止出现“无法卸载挂载点”的错误,我在后来的安装过程中确实是出现了这个错误,所以这个一定要输入。 2.2点击桌面上的安装系统,按照向导一步一步操作,当到了问你怎么对硬盘分区时(具体的对话框我忘了)选择手动分区,在分区界面

ubuntu下如何安装软件

ubuntu下安装软件 上一篇/下一篇2008-08-1212:37:31/个人分类:LINUX 查看(3)/评论(0)/评分(0/0) 1。deb包的安装方式 deb是debian系Linux的包管理方式,ubuntu是属于debian系的Linux发行版,所以默认支持这种软件安装方式,当下载到一个deb格式的软件后,在终端输入这个命令就能安装: sudo dpkg-i*.deb 2。编译安装方式 (小贴士:使用编译安装前,需要先建立编译环境,使用以下命令建立基本的编译环境: sudo apt-get install build-essential) 在linux的世界,有很多软件只提供了源代码给你,需要你自己进行编译安装,一般开源的软件都会使用tar.gz压缩档来进行发布,当然也有其他的形式。拿到源代码的压缩文档,把它解到/tmp目录下,进入/tmp/软件目录,然后执行以下三个命令: 1./configure 2make 3sudo make install 在第一步./configure时可能会提示说有某某软件找不到,例如提示“libgnome”这个开发包找不到,那就把libgnome这个关键词copy,然后打开新立得软件管理器,在里面搜索libgnome这个关键词,就会找到libgnome相关的项目,把前面有个ubuntu符号的libgnome包(注意:同样需要安装dev包,但可以不装doc包)全部安装,通过这个方法把./configure过程中缺失的开发包都全部装上就OK了,第一步能顺利通过,第二,三步基本问题不大。 以上就是一般初学ubuntu的朋友必须掌握的编译安装的基本方法! 3。apt-get安装方法 ubuntu世界有许多软件源,在系统安装篇已经介绍过如何添加源,apt-get的基本软件安装命令是: sudo apt-get install软件名 4。新立得软件包管理 打开:系统--系统管理--新立得软件包管理,这个工具其实跟apt一样,可以搜索,下

ubuntu上配置VNC

Ubuntu下设置VNCServer Virtual Network Computing(VNC)是进行远程桌面控制的一个软件。客户端的键盘输入和鼠标操作通过网络传输到远程服务器,控制服务器的操作。服务器的图形界面通过网络传输会客户端显示给用户。给你的感觉就像直接在操作本地计算机一样,只是所有的程序和命令都是在服务器端执行。 1、打开一个Terminal window 2、下载vnc4server : sudo apt-get install vnc4server 3、启动vnc4server: vnc4server 此时系统会提示你输入密码,在通过客户端链接时将会用到这个密码。 输入完密码后你将看到类似下边的提示: New '****3 (****)' desktop is ****:3 (****代表主机名) Take notice of the number after the colon (, in this case it is "3." 启动完vnc4server后在你的主目录下将会产生一个.vnc的目录。 此时就可以通过vnc客户端链接到服务器了。 4、停止一个vnc4server vnc4server -kill :3 根据你启动时获得的数字替换此处的3。 5、打开 .vnc/xstartup 文件并编辑: gedit /.vnc/xstartup 文件看起来将是这样的: #!/bin/sh # Uncomment the following two lines for normal desktop: # unset SESSION_MANAGER # exec /etc/X11/xinit/xinitrc [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources xsetroot -solid grey vnccon** -iconic & x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" & x-window-manager & 6、修改 .vnc/xstartup文件并保存 取消unset和exec开始的行的注释,注释以xsetroot,vnccon**,xterm和twm开始的行。执行后看起来像这样: #!/bin/sh # Uncomment the following two lines for normal desktop: unset SESSION_MANAGER

ubuntu下使用vi命令修改文件并保存实例

ubuntu下使用vi命令修改文件并保存实例! 关于vi命令的使用,以前百度了半天也没找到详细的操作实例,都是抄来超区一些没有的东西。 这里我提供一个使用vi命令修改文件并保存的详细实例教程,分享了! 就以修改/opt/lampp/etc/extra/httpd-xampp.conf这个文件为例,我们 找到这段代码: # since XAMPP 1.4.3 AllowOverride AuthConfig Limit Order allow,deny Allow from all 为其增加一行Require all granted。 首先,我们使用快捷键ctrl+alt+t打开终端。 使用su命令切换至root 然后使用命令: vi /opt/lampp/etc/extra/httpd-xampp.conf 即可打开httpd-xampp.conf这个文件。

我们使用方向键,将光标移动到要插入内容的上一行“Allow from all”的末尾,然后输入命令“o”。是字母o,作用是在当前光标末尾插入一新行。 如果输入错误,我们可以使用“dd”命令,删除当前整行内容。 插入新行之后,我们局可以复制要插入的内容然后粘贴。 之后按esc键,退出插入模式即可进入命令模式。 在末尾输入":wq" 即可写入保存并离开vi。 最后,我们来看看是否修改成功,还是使用vi /opt/lampp/etc/extra/httpd-xampp.conf 命令打开文件,看见下面内容: Ok,我们已经修改成功了! 最后,附带上vi的详细命令介绍: 进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于最后一行首 vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename vi filename….filename :打开多个文件,依次进行编辑

windows7下安装ubuntu双系统

一、安装win7 坛子里太多了,随便找一篇就可以了。 二、分区 重新分一块用来安装ubuntu10.04的硬盘空间,我当时是直接删了50G的空间来安装。是直接删掉的,没有格。 三、安装Ubuntu (1)修改启动项,添加grub引导,很重要 ①下载最新版本的 Grub4DOS 下载地址:https://www.wendangku.net/doc/1d10001356.html,/Linux/2009-01/18027.htm 下载并解压缩后,将目录中的grldr , grldr.mbr, grub.exe三个文件复制到C盘根目录下。注意是根目录哦 ②在下载好的Ubuntu 10.04系统iso文件中,casper 文件夹目录下,找到vmlinuz、initrd.lz解压,并复制到C盘根目录下(无需解压整个casper文件夹,整个casper文件夹很大,只解压需要的两个就可以了)。 Ubuntu10.04的iso文件直接去官网下吧,开源的,免费~~记得这个iso也放到c盘根目录。 ③C 盘根目录下建立menu.lst文件,内容为: color black/cyan yellow/cyan timeout 30 #等待时间 default /default title Microsoft Windows 7 #这里是进入win7的引导 root (hd0,0) #指向c盘 savedefault makeactive chainloader +1 title Install Ubuntu 10.04 root (hd0,0) kernel (hd0,0)/vmlinuz boot=casper iso-scan/filename=/Ubuntu10.04-desktop- i386.iso ro quiet splash locale=zh_CN.UTF-8 #红色部分是下载下来的Ubuntu镜像文件的名称,请根据自己的情况修改 initrd (hd0,0)/initrd.lz

ubuntu下常用命令

[转]ubuntu下常用命令 2009-11-30 09:40 安装 查看软件xxx安装内容 dpkg -L xxx 查找软件 apt-cache search 正则表达式 查找文件属于哪个包 dpkg -S filename apt-file search filename 查询软件xxx依赖哪些包 apt-cache depends xxx 查询软件xxx被哪些包依赖 apt-cache rdepends xxx 增加一个光盘源 sudo apt-cdrom add 系统升级 sudo apt-get update sudo apt-get upgrade sudo apt-get dist-upgrade 清除所以删除包的残余配置文件 dpkg -l |grep ^rc|awk '{print $2}' |tr ["\n"] [" "]|sudo xargs dpkg -P - 编译时缺少h文件的自动处理 sudo auto-apt run ./configure 查看安装软件时下载包的临时存放目录 ls /var/cache/apt/archives 备份当前系统安装的所有包的列表 dpkg --get-selections | grep -v deinstall > ~/somefile 从上面备份的安装包的列表文件恢复所有包 dpkg --set-selections < ~/somefile sudo dselect 清理旧版本的软件缓存 sudo apt-get autoclean 清理所有软件缓存 sudo apt-get clean 删除系统不再使用的孤立软件 sudo apt-get autoremove 系统 查看内核

实验报告一Linux下的C语言编程

计算机系统基础实验报告 学院信电学院专业计算机班级1401 学号140210110 姓名段登赢实验时间: 一、实验名称:Linux下的C语言编程 二、实验目的和要求: 实验目的: (1)掌握VMware虚拟机的使用及Linux操作系统的安装; (2)熟练Linux操作系统的基本使用; (3)掌握GCC编译环境的使用; 实验要求: 描述你的分析过程;说明你做实验的过程(重要步骤用屏幕截图表示);提交源程序和可执行文件。 三、实验环境(软、硬件): 硬件:个人电脑一台 软件:在虚拟机Vmware上的Ubuntu GCC编辑器:vi编辑器 四、实验内容: 要求:在GCC编译环境下用C语言编程完成下列题目。 (1)人口普查 (2)旧键盘 (3)集体照 1、常用的Linux命令总结 Tab 快捷键,自动补全 切换用户:格式su [用户名];su - root 查看目录和文件:格式ls [-a -l ] [目录和文件],其中-a是显示目录下所有的文件和目录(含隐藏文件)-l是显示目录下的文件和目录的详细信息 改变工作目录:格式cd /目录名;cd .. 返回上一目录 复制文件:格式cp [ -r ] 源文件或目录目标文件和目录,其中-r是复制目录 移动或更名:格式mv 源文件目标文件 删除文件或目录:格式rm [ -r ] 文件名或目录名,其中-r是删除目录 创建目录:格式mkdir 目录名 查看目录大小:格式du 目录名 压缩文件:格式gzip [-d] 文件名,其中-d是解压缩 打包文件:格式tar 目录或文件

解包文件:格式xvf 目录或文件 终止程序:Ctrl+c 后台运行:Ctrl+z Gcc编译:格式gcc [-o -O -c -g -w] 文件名,其中-o是确定输出自定义文件的名字,-O对程序的编译和链接进行优化,-c是不进行链接,生成.o后缀的文件,-g是产生调试工具,-w 不生成警告信息。 2. 在Linux系统中对所给的题目进行编程和分析 (1)打开虚拟机运行ubuntu (2)打开虚拟机终端(ctrl+Alt+T) (3)键入命令cd /home/duan/桌面进入到桌面 (4)键入命令mkdir shiyan,创建名字为shiyan的文件夹,更改用户权限 (5)然后cd /shiyan进入的shiyan文件夹里面 (6)键入命令touch renkou.c创建.c文件。如下图所示 (7)键入命令gcc renkou.c进行编译c程序,生成可执行文件。 (8)键入命令./a.out运行可执行文件,如下图所示。 五、实验结果及分析: 1、人口普查

win7+ubuntu双系统安装方法

win7+ubuntu双系统安装方法 前段时间又安装一下win7+ubuntu双系统,过段时间就会忘记,这次自己写下来,以便以后查看。 1.先准备一个分区来安装ubuntu。在win7中打开磁盘管理。如下图所示: 2.假如要将F盘所在分区用来安装ubuntu,则把该分区从win7中移除。如下图所示: 3.将ubuntu系统镜像拷贝到C盘根下。把ubuntu系统镜像文件中casper目录下 initrd.lzvmlinuz(13.10中64位:vmlinuz.efi)拷贝出来放到C盘根下(13.10中64位的vmlinuz.efi改名为vmlinuz)。

如下图: 4.运行EasyBCD,“添加新条目”->“NeoGrub”->“安装”。如下图:

5.配置,安装完成后点击“配置”,输入如下内容: title Install Ubuntu root (hd0,0) kernel (hd0,0)/vmlinuz boot=casperiso-scan/filename=/ ubuntu-13.10-desktop-i386.iso ro quiet splash locale=zh_CN.UTF-8 initrd (hd0,0)/initrd.lz 如图: 注:上图中1为待安装的ubuntu系统镜像文件名;2为指定C盘所在分区的位置,注意调节括号中后面一个数值。 6.重启系统选择NeoGrub。 7.在安装之前打开终端(Ctrl+Alt+T),输入sudoumount–l /isodevice,注意空格,可多执行 一次,以确保将挂载的镜像移除,否则将无法进行安装。

Ubuntu_Kylin _选择安装类型并处理硬盘分区

Ubuntu Kylin 14.04 LTS 系统安装——选择安装类 型并处理硬盘分区 一、选择安装类型 这一步的界面会随着硬盘状况的不同而不同。 (一)若电脑硬盘是全新的,或者之前处理过,没有任何数据,界面如下(图1): (图1) (二)若硬盘有数据,通常是别的操作系统,其界面可能如下(图2、图3):

(图2)

(图3) 上面的3 张图中,“清除整个磁盘并安装Ubuntu Kylin”、“将Windows … 替换为Ubunut Kylin”和“卸载Ubuntu ……并重新安装”选项是最简单的操作,几乎不用做任何事,一切交给系统去做;注意图中红色的“注意”的提示。 我们这里不管其界面如何,都选择“其他选项”,自己来处理硬盘分区。点击“继续”,进入下一步,处理硬盘分区。 二、关于硬盘分区的基本知识 硬盘分区是硬盘使用之前必须处理的工作。若将硬盘比作书房里的书架,那么,分区就是给这个“书架”分“格子”,其目的是便于分门别类地存放资料。而格子的多少是由实际需要和个人习惯来决定的,你甚至可以将整个书架只分一个格子,当然,最少也必须有一个格子。 (一)硬盘分区模式 1. MBR(主引导记录)模式 这种模式是传统的硬盘分区模式,也是现在用得最多的模式。最大支持2TB 的硬盘容量。 2. GPT(GUID 分区表)模式 这种模式是新型的硬盘分区模式,主要是为了突破硬盘的2TB 容量限制而出现的。 最大支持1024×1024TB 的硬盘容量。

(二)MBR 分区类型 现在个人电脑的硬盘容量超过2TB 还不是太多,所以这里我们重点介绍MBR 分区模式。 这种分区模式有三种分区类型:主分区、扩展分区和逻辑分区,另外还有个活动分区的概念。一块硬盘最多只能有 4 个主分区,扩展分区算是一个主分区,但其不是真正的分区,它是逻辑分区的容器,即扩展分区里可以划分出若干个逻辑分区;活动分区指的是用来启动系统的分区。 因此,若硬盘要划分的分区在4 个或4 个以下,则可以全部是主分区,也可以是n (n<4)个主分区加4-n 个逻辑分区(放在扩展分区中);若分区超过4 个,则最多只能有3 个主分区,剩下的分区再在扩展分区中去划分逻辑分区。 GPT分区没有这种限制。 (三)Windows 分区表示方法 在Windows 的文件系统中,用26 个拉丁字母表示不同的分区,称之为“盘符”。其中“A、B”被分配给现在已经淘汰的软驱,所以其他存储设备的盘符从“C”开始。 需要注意的是,尽管大多数情况下,分区的顺序及它们所分配到盘符总是和字母的顺序相同,但这却不是必然的结果;第一个分区大多数情况下是“C”盘,但也可以是其他字母。所以,要确认一个分区的位置,最好还是看看它是第几个分区,而不是看它的盘符。 (四)Linux 分区表示方法 在Linux 的文件系统中,没有盘符的概念,所有的分区都被“挂载”为一个“目录”,这个目录看起来跟一般的目录没有什么区别,因此也无法据此来确认分区的位置。 要区分分区,需要搞清楚存储设备在系统中的信息。老式的IDE 存储设备用“hd”表示,老式的SCSI 存储设备和现在主流的SATA 存储设备用“sd”表示,系统中的多个存储设备则按顺序用拉丁字母表示,如第一块SATA 硬盘就表示为“sda”,第二块SATA 硬盘就表示为“sdb”,而分区则按一定的顺序(注意:不一定是物理上的先后顺序)用数字表示,如sda 的第一个分区就是“sda1”,第二个分区就是“sda2”。不过,对于MBR 模式的分区来说,若有逻辑分区,其数字总是从“5”开始。 (五)分区的文件系统 “文件系统”指的是操作系统在存储设备上存储文件的格式,由“高级格式化”(一般就说是“格式化”)操作来完成。不同的操作系统所采用的文件系统是不同的,比如Windows 操作系统采用的是FAT16、FAT32、NTFS 等格式,Linux 操作系统采用的是Ext2、Ext3、Ext4 等格式。一般说来,不同的文件系统在不同的操作系统中支持是不一样的,比如较老的Windows 98 就不能识别NTFS 格式,所有的Windows 操作系统都不能识别Ext4 格式;不过现在的Linux 已经能够全部或部分支持FAT、NTFS 格式了。 三、处理硬盘分区 处理硬盘分区有很多种方法,无论是Windows 还是Linux,都有许多工具软件可以使用。但一般系统安装盘都带有硬盘分区工具,都可以在安装系统的过程中对硬盘的分区进行处理。 (一)全新分区 若硬盘为全新硬盘,或硬盘上所有的数据都不需保留,可以用这种方法来处理。全新安装UB14 就可以用这种方法。 见下面的两张图: 全新硬盘的(图4):

ubuntu下Kdevelop的使用

注意:我用的是Ubuntu,它的apt太好用了,用其他版本的就要注意了! 1. KDevelop只是一个IDE,要想编译c/c++程序,要安装make和GCC,以及头文件,那就从这里开始: sudo apt-get build-dep gcc sudo apt-get install build-essential 2.安装KDevelop sudo apt-get install kdevelop3 3.安装好后,可以在应用程序->编程中看到 KDevelop了。下面这个使用KDevelop开发程序是转的,偷下懒:-) 基本步骤 一般而言,用KDevelop编程大体要经历如下几个步骤。编程是比较复杂的,很难一次成功,这些步骤 可能要反复进行多次。 第一步,新建工程 可以通过菜单操作启动相应的向导程序,借助它完成工程的初建工作。 【Project】→【New Project】 在新建工程过程中,主要需要指定工程文件保存位置、工程名称、工程类型,并且可以填写编程作者 的信息。根据所选工程类型(比如,是文本界面的程序还是图形界面的程序,是C程序还是C++程序),向导程序会自动生成一批模板文件。 第二步,编辑程序文件 向导程序一般会创建一些程序文件,应该对这些文件进行编辑以满足特定的编程需要。 还可以执行菜单操作来增加新的文件。 【File】→【New】 上述操作后,会出现一个对话框,用于指定文件名和文件类型。根据文件类型的不同,会自动设定合 适的扩展名。注意,“Add to project”复选框应该勾选上以确保新文件被加入到当前的工程中。 第三步,生成源码结构 在编辑好程序文件后,要先借助GNU Build System生成系统生成源码结构。在增加了新文件(或目 录)、修改了文件(或目录)名、改变文件的保存位置之后,都应该重新生成源码结构。具体而言,生成源码结构包括autoconf、 automake等操作,把每个子目录的Makefile.am变成了Makefile.in。具有源码结构的程序文件包可以在任何UNIX、LINUX 的系统上使用简单的命令(即 configure/make/make install等)进行配置、编译、连接和安装。 可以执行菜单操作来生成源码结构: 【Build】→【Run automake&conf】

vmware虚拟机与宿主机传输文件

VMware中虚拟机和宿主机通信的解决方案 一、安装VMware-tools VMware-tools是比较新的VMware中会自带的增强工具,相当于VirtualBox中的增强功能(Sun VirtualBox Guest Additions),是VMware提供的增强虚拟显卡和硬盘性能、以及同步虚拟机与主机时钟的驱动程序。只是针对用户新建的虚拟机需要用户自行安装。 在VMware虚拟机中安装好了VMware Tools,才能实现主机与虚拟机之间的文件共享,同时可支持自由拖拽的功能,鼠标也可在虚拟机与主机之前自由移动(不用再按ctrl+alt),且虚拟机屏幕也可实现全屏化。 [1]启动虚拟机ubuntu [2]启动后再虚拟机菜单栏中选择VM -> Install VMware-tools(如果已经安装了vmware-tools,则是reinstall vmware-tools),这时在ubuntu桌面上会看到多出一个光盘图标,名字大概是vmware tools。这是VMware自动根据当前虚拟机操作系统挂载的虚拟光驱,里面就是VMware-tools的安装文件(注:有些版本的VMware,比如被精简后的,可能需要用户提供VMware-tools安装文件),这个文件在linux下是以tar.gz结尾的压缩文件。

[3]将压缩文件中以vmware-tools-distrib文件夹拖至某个文件夹下(比如/home/username/桌面)。 [4]打开终端,使用cd命令定位到该文件夹下(比如cd /home/username/桌面/vmware-tools-distrib),执行chmod 777 vmware-install.pl命令赋予当前用户执行权限,执行./vmware-install.pl命令运行安装文件。

Windows 7 下安装Ubuntu9.04 图文详解教程

在Windows7下安装Ubuntu,和在其它的Windows下安装Linux系统没有区别。安装后的结果都是开机以后Linux形成双操作系统的界面。以下是详细的图文教程。 1、在装有Windows7的系统中空闲出一个盘符,然后将其删除,这样做的目地是因为Linux系统和Windows使用的分区表是不相同的,用Windows系统的分区如FAT、NTFS等Linux会识别不出来,这样,稍后我们安装Ubuntu的时候就会出现问题。 在桌面上右键“我的电脑”–“管理”- 在打开的窗口中,选择左边的“磁盘管理”然后再磁盘中选择一个没有数据,或不重要的分区并“删除”它。使其处于“未分配”的状态。(建议最少此分区要10G以上,因为此分区将要用来安装Ubuntu系统) 2、上面的在Windows7中的操作即结束,现重新启动计算机,并把Ubuntu的安排盘放进光驱。进入计算机后选择从光驱启动计算机,最先弹出的是Ubuntu的语言(Language)选项,选择“简体中文”之后就会看到如下的Ubuntu安装图形界面: 第一项是测试、第二项是安装,选择第二项进行安装。经过长时间的加载之后,进入“欢迎”界面,在左侧选择相应的选项“中文简体”后选择右下边的Forward进入下一界面选择好时区“Asia-Shanghai”:

下一个界面后,“键盘布局”同意建议的选项“China”并确定到下一页“预备硬盘空间”。这是安装Linux比较重要的一个步骤。 在上面的界面中,在安装完Ubuntu后,启动计算机会让我们选择进入Windows7和Ubuntu 系统其中的一个。如上图,选择“分别安装它们,在启动时从中选择”(同时也可以选择手动指定分区,但因之前我们已在Windows7中将原有的磁盘分区删除,这里我们不用手动配置了)。然后“Forward”会弹出“修改写入磁盘并继续的警告”,选择“继续”后进入下一个界面。

ubuntu硬盘安装详细方法

移动硬盘安装 鉴于网上的资料很多也很乱,每次重装系统都要找上半天的资料,所以,今天就把安装过程给整理一下。一来方便自己以后查阅,二来也可以为刚刚接触 Linux ( Ubuntu )的人指引一下道路,所以就有了这篇文章。 一、 Ubuntu 系统的两个版本: Desktop , Alternate Desktop 是 Live CD 的名字,也就是刻录在光盘上运行的 Linux ,是一套已经装好的系统,把它烧录到光盘上,放进光驱就可以直接运行这套完整的 linux 。当然你也可以在运行之后把它“安装”到硬盘上,而这样的安装更像是一种拷贝或者还原,类似 ghost 。 Alternate 才是真正意义上正统的安装版本,它是由许多 deb 包组成。可以详细的定制安装内容。 这两个版本还有一些速度上的区别: 因为类似系统还原, desktop 的安装速度较快,而 alternate 正式的安装相比之下会慢一些。 而运行的时候恰好相反: Desktop 因为是既成的,可能会缺少对应软件环境的适应性,所以和灵活指定及安装的alternate 相比会慢一些。 Desktop CD 安装前可以看到基本界面和试用 (live CD 功能 ) , Alternate 面向安装个性化需求更大更专业一点的用户。 二、两种系统安装时的不同 1 、两者安装时用的虚拟内核文件 vmlinuz 和压缩文件系统文件不同: Desktop 版本的文件可以直接冲 ISO 中的 casper 文件夹中解压; Alternate 版本的文件需要从网上下载,注意:直接从 ISO 中解压出来的内核文件和文件系统文件不可用(安装时会提示找不到光盘还是硬盘),下载地址是:

Ubuntu下各种结束进程的方法

结束进程办法 -------------------------------------------------------------------------------------------------------------- 1、打开终端(什么是终端?自己看Ubuntu的帮助吧,就是Firefox图标右边那个问号,里面有) 2、敲ps -ef 查出进程的编号(就是PID那列) 3、敲kill PID(如果PID是123456,则kill 123456) 4、OK了 -------------------------------------------------------------------------------------------------------------- 下面是进阶教程~~~~· 在本地Ubuntu Linux系统运行大软件的时候,或者服务器长时间运行后,由于有些设计有缺陷的软件,容易出现假死的情况!那程序假死了以后,我们该怎么办呢?其实这个问题其实说简单也简单,直接结束进程不就OK了嘛!就像我们在Windows下面做的一样!下面来介绍几种Ubuntu Linux下面结束进程的几咱方法! 最安全杀死进程的方法 杀死进程最安全的方法是单纯使用kill命令,不加修饰符,不带标志。 首先使用ps -ef命令确定要杀死进程的PID,然后输入以下命令: #kill -pid 注释:标准的kill命令通常都能达到目的。终止有问题的进程,并把进程的资源释放给系统。然而,如果进程启动了子进程,只杀死父进程,子进程仍在运行,因此仍消耗资源。为了防止这些所谓的“僵尸进程”,应确保在杀死父进程之前,先杀死其所有的子进程。 还可以使用如下命令来确定要杀死进程的PID或PPID $ ps -ef | grep httpd 以最优雅的方式来结束进程 $ kill -l PID -l选项告诉kill命令用好像启动进程的用户已注销的方式结束进程。当使用该选项时,kill 命令也试图杀死所留下的子进程。但这个命令也不是总能成功--或许仍然需要先手工杀死子进程,然后再杀死父进程。 TERM信号

活着就是折腾~win7下硬盘安装Ubuntu kylin教程

活着就是折腾——win7下硬盘安装Ubuntu kylin教程 ________________________________________2014年12月19日________________ 这几天闲着没事,看到Ubuntu kylin被官方吹得火热,说什么为中国量身打造的操作系统(详见https://www.wendangku.net/doc/1d10001356.html,/),又是什么中外共同研发的,虽然之前装过Ubuntu 的系统,不过也想瞧瞧这个中国特色的操作系统是什么样儿的,就开始操作起来。 由于我折腾了几天摸索三系统,后来还是成功安装了win7、Ubuntu kylin、opensuse三系统,这里我先讲一下win7下安装Ubuntu kylin组成双系统的过程。 0、前言 虽然网上安装的教程比较多,但是对于我这样的小白,觉得还是写一个详细的安装过程比较好,由于手机是以前的华为蓉儿,像素不是很好拍的不是很清楚,就将就一下了。 我这里设置的是win7作为启动引导,后面会讲到。 一、准备工作:镜像文件、EasyBCD、老毛桃PE(可选) 1、首先,去官网下载系统镜像文件(https://www.wendangku.net/doc/1d10001356.html,/downloads/),然后下载一个系统引导修复工具,这里我用的是EasyBCD这个软件(去度娘一搜,最新的是2.2的版本),当然,为了避免安装环节出错导致不能正常开机,最好用U盘做一个PE,这里我用的是老毛桃的(https://www.wendangku.net/doc/1d10001356.html,/),傻瓜式操作,一键OK。 图片(镜像文件ubuntukylin-13.04-desktop-amd64、EasyBCD2.2)

移动硬盘安装Ubuntu

真正把Ubuntu装到移动硬盘里 用移动硬盘安装Ubuntu的好处: 救急:当电脑里的系统不能启动,而又急需里面的资料时,用移动硬盘启动,可以直接进行工作,也可以把资料拷到移动硬盘或另一台电脑上。 便携:随身带个移动硬盘,不管走到哪里,随便找台电脑插上就能使用自己的系统和应用程序。 隐私:所有数据都保存在移动硬盘里,电脑硬盘里不会留下任何痕迹。 用UNetbootin安装到U盘或移动硬盘里的Ubuntu只是相当于一个Live CD,关机后,所有保存在U盘或移动硬盘里的个人文件和系统设置都将消失。 用本文介绍的方法安装的系统,可以象正常安装的系统一样使用,可以保存个人文件及系统设置。安装过程也很简单,步骤和正常安装基本一样,只是分区时把分区创建在移动硬盘上,然后在“准备安装”那一步点“高级”,在高级选项里把“启动加载器(启动引导器)”安装在移动硬盘即可。 这样安装对硬盘里的系统毫无影响,拔掉移动硬盘后,依然可以从硬盘启动原来的系统。 详细步骤如下: 预备工作: 1、备份移动硬盘和电脑硬盘的文件。虽然正确操作的话,不会破坏硬盘里的数据,但为了避免误操作,还是按照操作规程来做为好。 2、删除移动硬盘的一个分区,空出一块未分区的空间。建议尽量使用靠前的分区,第一个分区最佳。 开始安装: 1、把移动硬盘接到电脑上,用Live CD或Live USB启动电脑,选择“试用Ubuntu 而不改变计算机中的任何内容”。进入Live桌面。双击桌面上的“安装”图标。 2、语言选择“中文(简体)”。

3、区域选择“Asia”,城市选择“Shanghai”。

4、键盘布局选择“USA”。 5、预备硬盘空间选择“手动指定分区(高级) ”。

相关文档
相关文档 最新文档