【原创】Linux学习笔记

【原创】Linux学习笔记

+Linux相关
+Linux shell脚本全面学习
-http://www.linuxidc.com/Linux/2007-06/4767.htm
+linux反汇编
-先用gcc编译,然后使用disassemble a.out命令来反汇编
+vmware6 下为linux系统增加磁盘空间
-http://blog.csdn.net/w7849516230/article/details/6418178
+Fedora vmware tools安装
-linux VMware tools安装步骤:
(1) 在CD-ROM虚拟光驱中选择使用ISO镜像,找到VMWARE TOOLS 安装文件,如D:\VMware\VMware Workstation\Programs\linux.iso
(2) 以ROOT身份进入LINUX
(3) 进入linux新建一个终端,输入 /sbin/telinit 3 进入纯文本模式,然后在纯文本模式下再次用root身份登陆
(4)退出到windows,在虚拟机菜单栏中点击 虚拟机-> 安装 VMWARE TOOLS 子菜单,会弹出对话框,点击"确认" 安装
(5) 挂载光驱 mount /dev/cdrom /mnt/cdrom (注意命令中输入的空格)这时,你的linux.iso里面的文件就相当于windows光盘里面的文件了
(6) 使用 cd /mnt/cdrom 进入光驱,输入ls命令你会查看到有个*.tar.gz格式的文件(如vmware-linux-tools.tar.gz),然后输入命令CP vmware-linux-tools /tmp/将它复制到/tmp/目录下
(7)输入命令 cd /tmp 进入/tmp目录
(8)输入命令tar zxf vmware-linux-tools.tar.gz 将刚刚复制的vmware-linux-tools.tar.gz 解压,默认解压到vmware-linux-tools目录下(与文件名同名)此时就会多出一个命名为vmware-linux-tools文件夹,这里和windows 里面的解压结果一样。
[size=+0](9)输入命令 cd vmware-linux-tools 进入解压后的目录
(10) 输入命令 ./*.pl 运行安装VMware tools (*.pl文件在前面有提过)
(11)在运行安装过程中,它会一步一步的有问题提出要你回应,此过程中,你只要见到问题后面显示[yes]、[no]、[yes/no]的都输入yes,然后回车,其他的问题后面不管[ ]里面是什么直接回车就好,不要输入。
(12)最后它会输出1——15个分辨率让你输入数字选择,根据你的显示器来选择分辨率吧
(13)好了,安装完成,输入命令 startx 回到linux图像界面吧。

使用vmware tools设置共享文件夹:
不同的客户操作系统,设置共享文件夹的方式也不同,下面以windows xp和redhat9.0为例。
首先在虚拟机->设置->选项->共享文件夹中添加需要共享的主机文件夹,然后启动共享并设置客户机权限。
(1)windows xp下,可以通过网上邻居或者我的电脑中的映射网络驱动器来定位共享文件夹。
(2)redhat9.0中,共享文件夹在/mnt/hgfs目录中,通过点选文件夹并右击弹出菜单中,可以改变目录中的设置。不管是否用root登陆系统,任何用户都可以向这个文件夹里写东西。
-http://blog.csdn.net/liguisen/article/details/4063336
-使用过VMware的都知道有个VMware Tools可以增强虚拟机的性能,不少朋友都使用VMware来安装linux,但是在客户机是linux的情况下安装VMware Tools并不算一件很容易的事情,特别是……出现下面这些问题的时候。还是以我使用的Fedora9为例。
首先,我使用的是VMware6.0绿色精简版,就是那个只有20多M的版本,这个版本可能没有VMware Tools的那个iso文件,又或者只有一个windows版本的iso,因此,我们第一步就是要保证有VMware Tools for linux,如果你使用的VMware没有,你可以从这里下载:
http://www.xdowns.com/soft/6/99/2008/Soft_45322.html
说明:让VMware 支持linux系统,包括ubuntu、freebsd等等【104m的】,如果是9m【默认就是9m的】就单独支持linux
里面有多个下载地址,我下载的是
http://www.153.xdowns.com/uploadFile/2008-8/VMware_tools_linux.rar
9M的,不过解压后也有116M了,就是一个linux.iso文件
下面安装VMware Tools。
虚拟机VMware菜单里选安装VMware Tools,没有反应?没这么简单。首先用VMware连接linux.iso,然后挂载(为方便一些初次接触的朋友,我直接给出命令了):在终端里mount /dev/cdrom /mnt,然后进入iso的vmware-tools-distrib目录:cd /mnt/vmware-tools-distrib,在这里你应该看到一个文件vmware-install.pl,用ls命令即可看到,然后在终端里输入./vmware-install.pl,如果一切条件都具备了,那么一路回车就可以安装结束了,忽略下面的步骤。如果你使用的linux.iso是我下载的那个,而你的Fedora9的内核版本又是2.6.25-14.fc9.i686(用uname –r命令可以看到),那么你将会被提示:
None of the pre-built vmmemctl modules for VMware Tools is suitable for your running kernel. Do you want this program to try to build the vmmemctl module for your system (you need to have a C compiler installed on your system)? [yes]
我们先在需要一个c编译器,如果你已经安装了,直接回车就行,否则,去哪里找?在安装光盘就有gcc(如果你确实不了解,那么知道它是一个把源代码变成程序的工具就可以了),你可以按照 从安装光盘中安装Fedora 9的软件包 中的方法来安装gcc,当然,你也可以从网络安装。
安装gcc完成后重新执行./vmware-install.pl,这下你以为该成功了吧,结果又碰到了这个问题:
What is the location of the directory of C header files that match your running kernel? [/usr/src/linux/include]
这个时候你回车可不管用了,因为你也许会发现你的系统里面/usr/src文件夹根本就是空的。
此时我们需要安装与系统内核配套的开发包,你可以用如下命令来确保相关的开发包真的没有安装:
rpm -q kernel-devel
如果没有安装,将会提示:package kernel-devel is not installed
假如你用uname –r命令看到的是2.6.25-14.fc9.i686,而你的网络状况良好,那么你可以这样安装:
yum install kernel-devel-2.6.25-14.fc9.i686.rpm
如果你发现从安装源下载安装不了,或者速度太慢,你可以这样下载:假设我们用root用户登录,当前工作目录是/root/Download,那么
[root@localhost Download] wget ftp://rpmfind.net/linux/fedora/releases/9/Everything/i386/os/Packages/kernel-devel-2.6.25-14.fc9.i686.rpm
将把这个rpm包下载到/root/Download,如果你觉得wget下载仍然太慢,那么你可以使用相关工具来下载,反正地址都有了。什么?你只会用windows下的迅雷?没关系,你真的可以用迅雷下载,然后在windows搭建一个ftp服务,在linux访问windows的ftp再重新下载一次,你也可以把它发到自己的邮箱,然后在linux打开邮箱下载……只要你喜欢,怎样都行,总之最后把这个文件放到/root/Download就行,然后安装:
rpm -i kernel-devel-2.6.25-14.fc9.i686.rpm
安装完成可以用rpm -q kernel-devel再查询一下是否已经安装成功。
好了,一切重新开始,重新执行./vmware-install.pl,再到这里的话,应该是这样的:
What is the location of the directory of C header files that match your running
kernel? [/lib/modules/2.6.25-14.fc9.i686/build/include]

这下该没问题了吧,结果最后发现:
Unable to create the directory /mnt/hgfs.
Execution aborted.
噢泄特,要用到/mnt/目录,把iso放光驱里mount忘了umount呢,它现在是只读的,好,把linux.iso 里面的内容复制到/root/Download,然后umount,还是不行,快疯了吧:
In file included from include/linux/string.h:11,
From /tmp/vmware-config3/vmhgfs-only/cpName.h:18,
from /tmp/vmware-config3/vmhgfs-only/cpName.c:18: include/linux/types.h:40: 错误:与‘uintptr_t’类型冲突
/tmp/vmware-config3/vmhgfs-only/vm_basic_types.h:170: 错误:‘uintptr_t’的上一个声明在此
make[2]: *** [/tmp/vmware-config3/vmhgfs-only/cpName.o] 错误 1 make[1]: *** [_module_/tmp/vmware-config3/vmhgfs-only] 错误 2 make[1]: Leaving directory `/usr/src/kernels/2.6.25-14.fc9.i686'
make: *** [vmhgfs.ko] 错误 2
make: Leaving directory `/tmp/vmware-config3/vmhgfs-only' Unable to build the vmhgfs module.

解决办法是下载一个新的open-vm-tools就可以了,给一个链接:
http://jaist.dl.sourceforge.net/sourceforge/open-vm-tools/open-vm-tools-2008.06.03-96374.tar.gz
假设下载的这个文件放到了/root/Download
先看看是不是有我们的文件?
[root@localhost Download]# ls
kernel-devel-2.6.25-14.fc9.i686.rpm open-vm-tools-2008.06.03-96374.tar.gz
vmware-tools-distrib
然后解压继续进行:
[root@localhost Download]# tar xzvf open-vm-tools-2008.06.03-96374.tar.gz
[root@localhost Download]# cd open-vm-tools-2008.06.03-96374
[root@localhost open-vm-tools-2008.06.03-96374]#./configure && make
[root@localhost open-vm-tools-2008.06.03-96374]# cd modules/linux
[root@localhost linux]# for i in *; do mv ${i} ${i}-only; tar -cf ${i}.tar ${i}-only; done
[root@localhost linux]# cd http://www.cnblogs.com/..
[root@localhost Download]# mv -f open-vm-tools-2008.06.03-96374/modules/linux/*.tar vmware-tools-distrib/lib/modules/source/
[root@localhost Download]# cd vmware-tools-distrib/
[root@localhost vmware-tools-distrib]# ./vmware-install.pl
一直回车吧,最后你会看到让你选择屏幕分辨率,最后的最后:
To make use of the virtual printer, you will need to restart the CUPS service
+VMWare tools文件共享设置
-http://www.enet.com.cn/article/2007/1224/A20071224966525.shtml
-现在已经完成了所有的工作了,在/mnt/hgfs下你会看到添加的文件夹。在windows下向指定的share folders写文件,在Linux客户机里面就能够看到,同样在Linux上写文件在Windows下也能够看到,并且可以修改。
+各版本linux下载
-http://www.discuz.net/thread-83993-1-1.html
-各版本linux下载地址的一些补充(由cram提供):


MandrakeLinux9.2 for AMD64
http://www.pumcpc.com/cram/linux ... .2rc1-CD1.amd64.iso
http://www.pumcpc.com/cram/linux ... .2rc1-CD2.amd64.iso
http://www.pumcpc.com/cram/linux ... .2rc1-CD3.amd64.iso


Mandrakelinux10.0 for AMD64
http://www.pumcpc.com/cram/linux ... 0-rc1-CD1.amd64.iso
http://www.pumcpc.com/cram/linux ... 0-rc1-CD2.amd64.iso
http://www.pumcpc.com/cram/linux ... 0-rc1-CD3.amd64.iso


Fedora-Core2 for amd64
http://www.pumcpc.com/cram/linux/FC2-x86_64-disc1.iso
http://www.pumcpc.com/cram/linux/FC2-x86_64-disc2.iso
http://www.pumcpc.com/cram/linux/FC2-x86_64-disc3.iso
http://www.pumcpc.com/cram/linux/FC2-x86_64-disc4.iso


FreeBSD5.2.1RELEASE for AMD64
http://www.pumcpc.com/cram/FreeB ... -amd64-bootonly.iso
http://www.pumcpc.com/cram/FreeBSD/5.2.1-RELEASE-amd64-disc1.iso
http://www.pumcpc.com/cram/FreeBSD/5.2.1-RELEASE-amd64-disc2.iso
http://www.pumcpc.com/cram/FreeB ... -amd64-miniinst.iso


FreeBSD5.2.1RELEASE
http://www.pumcpc.com/cram/FreeB ... E-i386-bootonly.iso
http://www.pumcpc.com/cram/FreeBSD/5.2.1-RELEASE-i386-disc1.iso
http://www.pumcpc.com/cram/FreeBSD/5.2.1-RELEASE-i386-disc2.iso
http://www.pumcpc.com/cram/FreeB ... E-i386-miniinst.iso


FreeBSD4.10RELEASE
http://www.pumcpc.com/cram/FreeBSD/4.10-RELEASE-i386-disc1.iso
http://www.pumcpc.com/cram/FreeBSD/4.10-RELEASE-i386-disc2.iso
http://www.pumcpc.com/cram/FreeBSD/4.10-RELEASE-i386-miniinst.iso


OpenBSD 3.5
http://www.pumcpc.com/cram/FreeBSD/OpenBSD-3.5-i386.iso


NetBSD1.6.2
http://www.pumcpc.com/cram/FreeBSD/NetBSD-1.6.2-i386install.iso
http://www.pumcpc.com/cram/FreeB ... 386install+tool.iso



Trustix Secure Linux
http://www.pumcpc.com/cram/linux ... 0406161045.i586.iso
http://www.pumcpc.com/cram/linux ... 0406301101.i586.iso



Mandrakelinux10.0 Official
http://www.pumcpc.com/cram/linux ... wnload-CD1.i586.iso
http://www.pumcpc.com/cram/linux ... wnload-CD2.i586.iso
http://www.pumcpc.com/cram/linux ... wnload-CD3.i586.iso
http://www.pumcpc.com/cram/linux ... wnload-CD4.i586.iso


Mandrakelinux-10.1alpha1
http://www.pumcpc.com/cram/linux ... alpha1-CD1.i586.iso
http://www.pumcpc.com/cram/linux ... alpha1-CD2.i586.iso
http://www.pumcpc.com/cram/linux ... alpha1-CD3.i586.iso


SuSE9
http://www.pumcpc.com/cram/linux/susel90a.iso
http://www.pumcpc.com/cram/linux/susel90b.iso
http://www.pumcpc.com/cram/linux/susel90c.iso
http://www.pumcpc.com/cram/linux/susel90d.iso
http://www.pumcpc.com/cram/linux/susel90e.iso


SuSE9.1
http://www.pumcpc.com/cram/linux/suse9.1-i386-cd1.iso
http://www.pumcpc.com/cram/linux/suse9.1-i386-cd2.iso
http://www.pumcpc.com/cram/linux/suse9.1-i386-cd3.iso
http://www.pumcpc.com/cram/linux/suse9.1-i386-cd4.iso
http://www.pumcpc.com/cram/linux/suse9.1-i386-cd5.iso


SuSE Enterprise Server 8
http://www.pumcpc.com/cram/linux/SuSE-SLES-8-i386-RC5.iso
http://www.pumcpc.com/cram/linux/UnitedLinux-1.0-i386-RC5-CD1.iso
http://www.pumcpc.com/cram/linux/UnitedLinux-1.0-i386-RC5-CD2.iso
http://www.pumcpc.com/cram/linux/UnitedLinux-1.0-i386-RC5-CD3.iso


Slackware 10.0
http://www.pumcpc.com/cram/linux/slackware-10.0-install-d1.iso
http://www.pumcpc.com/cram/linux/slackware-10.0-install-d2.iso


RedHat Linux 7.3
http://www.pumcpc.com/cram/linux/valhalla-docs.iso
http://www.pumcpc.com/cram/linux/valhalla-i386-disc1.iso
http://www.pumcpc.com/cram/linux/valhalla-i386-disc2.iso
http://www.pumcpc.com/cram/linux/valhalla-i386-disc3.iso


RedHat Linux 8
http://www.pumcpc.com/cram/linux/psyche-i386-disc1.iso
http://www.pumcpc.com/cram/linux/psyche-i386-disc2.iso
http://www.pumcpc.com/cram/linux/psyche-i386-disc3.iso


RedHat Linux 9
http://www.pumcpc.com/cram/linux/shrike-i386-disc1.iso
http://www.pumcpc.com/cram/linux/shrike-i386-disc2.iso
http://www.pumcpc.com/cram/linux/shrike-i386-disc3.iso


Fedora Core1
http://www.pumcpc.com/cram/linux/yarrow-i386-disc1.iso
http://www.pumcpc.com/cram/linux/yarrow-i386-disc2.iso
http://www.pumcpc.com/cram/linux/yarrow-i386-disc3.iso


Fedora Core2 i386
http://www.pumcpc.com/cram/linux/FC2-i386-disc1.iso
http://www.pumcpc.com/cram/linux/FC2-i386-disc2.iso
http://www.pumcpc.com/cram/linux/FC2-i386-disc3.iso
http://www.pumcpc.com/cram/linux/FC2-i386-disc4.iso
http://www.pumcpc.com/cram/linux/FC2-i386-rescuecd.iso


Fedora-Core2 for amd64
http://www.pumcpc.com/cram/linux/FC2-x86_64-disc1.iso
http://www.pumcpc.com/cram/linux/FC2-x86_64-disc2.iso
http://www.pumcpc.com/cram/linux/FC2-x86_64-disc3.iso
http://www.pumcpc.com/cram/linux/FC2-x86_64-disc4.iso


Fedora Core3 test1 i386
http://www.pumcpc.com/cram/linux/FC3-test1-i386-disc1.iso
http://www.pumcpc.com/cram/linux/FC3-test1-i386-disc2.iso
http://www.pumcpc.com/cram/linux/FC3-test1-i386-disc3.iso
http://www.pumcpc.com/cram/linux/FC3-test1-i386-disc4.iso


RH7.3 SGI-XFS-1.1
http://www.pumcpc.com/cram/linux/RH7.3-SGI-XFS-1.1.iso
http://www.pumcpc.com/cram/linux/new-rh-7.3-patch.xdelta


Redhat Linux advance Server 2.1
http://www.pumcpc.com/cram/linux/rorhadv1.iso
http://www.pumcpc.com/cram/linux/rorhadv2.iso
http://www.pumcpc.com/cram/linux/rorhadv3.iso
http://www.pumcpc.com/cram/linux/rorhadv4.iso
http://www.pumcpc.com/cram/linux/rorhadv5.iso


Redhat Linux advance Server 3(i386)
http://www.pumcpc.com/cram/linux/rhel-3-docs-apac.iso
http://www.pumcpc.com/cram/linux/rhel-3-i386-as-disc1.iso
http://www.pumcpc.com/cram/linux/rhel-3-i386-as-disc2.iso
http://www.pumcpc.com/cram/linux/rhel-3-i386-as-disc3.iso
http://www.pumcpc.com/cram/linux/rhel-3-i386-as-disc4.iso


Redhat Linux advance Server 3 (Update2)
http://www.pumcpc.com/RHASu2/1.iso
http://www.pumcpc.com/RHASu2/2.iso
http://www.pumcpc.com/RHASu2/3.iso
http://www.pumcpc.com/RHASu2/4.iso


debian-30r2-i386
http://www.pumcpc.com//cram/linux/debian-30r2-i386-binary-1.iso
http://www.pumcpc.com//cram/linux/debian-30r2-i386-binary-2.iso
http://www.pumcpc.com//cram/linux/debian-30r2-i386-binary-3.iso
http://www.pumcpc.com//cram/linux/debian-30r2-i386-binary-4.iso
http://www.pumcpc.com//cram/linux/debian-30r2-i386-binary-5.iso
http://www.pumcpc.com//cram/linux/debian-30r2-i386-binary-6.iso
http://www.pumcpc.com//cram/linux/debian-30r2-i386-binary-7.iso
http://www.pumcpc.com//cram/linux/debian-update-3.0r2-i386.iso


LFS:
http://www.pumcpc.com/cram/linux/lfs-packages-5.0.tar


gentoo:
http://www.pumcpc.com/cram/linux/install-x86-universal-2004.1.iso
http://www.pumcpc.com/cram/linux ... niversal-2004.1.iso


Turbolinux-8-Workstation-full
http://www.pumcpc.com/cram/linux/TL8W.install1.iso
http://www.pumcpc.com/cram/linux/TL8W.install2.iso

Turbolinux-7-Server
http://www.pumcpc.com/cram/linux ... er-Esprit-disc1.iso
http://www.pumcpc.com/cram/linux ... er-Esprit-disc2.iso

Turbolinux-10-Desktop-rc6
http://www.pumcpc.com/cram/linux/suzuka-rc6-disk1.iso
http://www.pumcpc.com/cram/linux/suzuka-rc6-disk2.iso


MagicLinux-1.1final
http://www.pumcpc.com/cram/linux/MagicLinux-OS-1.1final.iso


Lycoris-update3-stable
http://www.pumcpc.com/cram/linux/Lycoris-update3-stable.iso


Arch Linux 0.6- Arch Linux i686(full install)
http://www.pumcpc.com/cram/linux/arch-0.6.iso



Hiweed-Debian Linux Desktop 0.3
http://www.pumcpc.com/cram/linux ... esktop_0.3-i386.iso


Hiweed-Debian Linux Server 0.1
http://www.pumcpc.com/cram/linux/hiweed-server-0.1.iso


SCO_OpenServer_Release_5.0.5
http://www.pumcpc.com/cram/FreeB ... r_Release_5.0.5.iso


各种linux:
www.distrowatch.com

REDHAT Linux 7.3下载
ftp://ftp.linuxforum.net/ISO/Redhat7.3/valhalla-i386-disc1.iso
ftp://ftp.linuxforum.net/ISO/Redhat7.3/valhalla-i386-disc2.iso
ftp://ftp.linuxforum.net/ISO/Redhat7.3/valhalla-i386-disc3.iso


REDHAT Linux 8.0下载
ftp://ftp.linuxforum.net/ISO/Redhat8.0/psyche-i386-disc1.iso
ftp://ftp.linuxforum.net/ISO/Redhat8.0/psyche-i386-disc2.iso
ftp://ftp.linuxforum.net/ISO/Redhat8.0/psyche-i386-disc3.iso
ftp://ftp.linuxforum.net/ISO/Redhat8.0/psyche-i386-disc4.iso
ftp://ftp.linuxforum.net/ISO/Redhat8.0/psyche-i386-disc5.iso



http://mirrors.kernel.org/redhat ... yche-i386-disc1.iso
http://mirrors.kernel.org/redhat ... yche-i386-disc2.iso
http://mirrors.kernel.org/redhat ... yche-i386-disc3.iso
http://mirrors.kernel.org/redhat ... yche-i386-disc4.iso
http://mirrors.kernel.org/redhat ... yche-i386-disc5.iso



ftp://ftp.neweasier.com/pub/linux/RedHat8.0/psyche-i386-disc1.iso
ftp://ftp.neweasier.com/pub/linux/RedHat8.0/psyche-i386-disc2.iso
ftp://ftp.neweasier.com/pub/linux/RedHat8.0/psyche-i386-disc3.iso



http://www.ne5532.com/ISO/linux80/psyche-i386-disc1.iso
http://www.ne5532.com/ISO/linux80/psyche-i386-disc2.iso
http://www.ne5532.com/ISO/linux80/psyche-i386-disc3.iso
http://www.ne5532.com/ISO/linux80/psyche-i386-disc4.iso
http://www.ne5532.com/ISO/linux80/psyche-i386-disc5.iso

只需前3张CD就可以了


REDHAT Linux 9.0下载
ftp://202.96.64.144/shrike-i386-disc1.iso
ftp://202.96.64.144/shrike-i386-disc2.iso
ftp://202.96.64.144/shrike-i386-disc3.iso



ftp://ftp1:[email protected]/shrike-i386-disc1.iso
ftp://ftp1:[email protected]/shrike-i386-disc2.iso
ftp://ftp1:[email protected]/shrike-i386-disc3.iso



ftp://ftp2.neweasier.com/pub/Redhat9.0/shrike-i386-disc1.iso
ftp://ftp2.neweasier.com/pub/Redhat9.0/shrike-i386-disc2.iso
ftp://ftp2.neweasier.com/pub/Redhat9.0/shrike-i386-disc3.iso


Redhat Linux advance Server 2.1下载
ftp://ftp2.neweasier.com/pub/RedhatAS2.1/rorhadv1.iso
ftp://ftp2.neweasier.com/pub/RedhatAS2.1/rorhadv2.iso
ftp://ftp2.neweasier.com/pub/RedhatAS2.1/rorhadv3.iso
ftp://ftp2.neweasier.com/pub/RedhatAS2.1/rorhadv4.iso
ftp://ftp2.neweasier.com/pub/RedhatAS2.1/rorhadv5.iso



ftp://166.111.121.3/Linux/RedHat/AdvSvr2.1/rorhadv1.iso
ftp://166.111.121.3/Linux/RedHat/AdvSvr2.1/rorhadv2.iso
ftp://166.111.121.3/Linux/RedHat/AdvSvr2.1/rorhadv3.iso
ftp://166.111.121.3/Linux/RedHat/AdvSvr2.1/rorhadv4.iso
ftp://166.111.121.3/Linux/RedHat/AdvSvr2.1/rorhadv5.iso



http://www.ne5532.com/ISO/Redhat%20Advanced%20Server/rorhadv1.iso
http://www.ne5532.com/ISO/Redhat%20Advanced%20Server/rorhadv2.iso
http://www.ne5532.com/ISO/Redhat%20Advanced%20Server/rorhadv3.iso
http://www.ne5532.com/ISO/Redhat%20Advanced%20Server/rorhadv4.iso
http://www.ne5532.com/ISO/Redhat%20Advanced%20Server/rorhadv5.iso


Redhat Linux advance Server 3 下载
http://www.rebecca.com.cn/downlo ... 3-i386-as-disc1.iso
http://www.rebecca.com.cn/downlo ... 3-i386-as-disc2.iso
http://www.rebecca.com.cn/downlo ... 3-i386-as-disc3.iso
http://www.rebecca.com.cn/downlo ... 3-i386-as-disc4.iso


Redhat Linux advance Server 3 (Update2)下载
ftp://202.96.64.144/RedHatAS3U2/1.iso
ftp://202.96.64.144/RedHatAS3U2/2.iso
ftp://202.96.64.144/RedHatAS3U2/3.iso
ftp://202.96.64.144/RedHatAS3U2/4.iso



ftp://202.38.67.64/incoming/RedhatAs3update2/1.iso
ftp://202.38.67.64/incoming/RedhatAs3update2/2.iso
ftp://202.38.67.64/incoming/RedhatAs3update2/3.iso
ftp://202.38.67.64/incoming/RedhatAs3update2/4.iso

额外的附加4CD(4 IN 1,BT下载)
(地址暂时有误)


Mandrake Linux 9.0下载
ftp://ftp.linuxforum.net/ISO/Man ... 0-cd1-inst.i586.iso
ftp://ftp.linuxforum.net/ISO/Man ... 90-cd2-ext.i586.iso
ftp://ftp.linuxforum.net/ISO/Man ... 0-cd3-i18n.i586.iso


Mandrake Linux 9.1下载
ftp://202.96.64.158/pub/Mandrake9.1/Mandrake91-cd1-inst.i586.iso
ftp://202.96.64.158/pub/Mandrake9.1/Mandrake91-cd2-ext.i586.iso
ftp://202.96.64.158/pub/Mandrake9.1/Mandrake91-cd3-i18n.i586.iso



ftp://mdk.linux.org.tw/pub/mandr ... 1-cd1-inst.i586.iso
ftp://mdk.linux.org.tw/pub/mandr ... 91-cd2-ext.i586.iso
ftp://mdk.linux.org.tw/pub/mandr ... 1-cd3-i18n.i586.iso



ftp://ftp2.neweasier.com/pub/Man ... 1-cd1-inst.i586.iso
ftp://ftp2.neweasier.com/pub/Man ... 91-cd2-ext.i586.iso
ftp://ftp2.neweasier.com/pub/Man ... 1-cd3-i18n.i586.iso


Turbo Linux Workstation 8.0下载(这个好慢,不知晚上下会不会好一些)
ftp://166.111.121.3/Linux/TurboL ... l/TL8W.install1.iso
ftp://166.111.121.3/Linux/TurboL ... l/TL8W.install2.iso


红旗Linux桌面3.2正式版下载
ftp://ftp1.mydown.com/home1/soft34/dt32.ISO



http://211.147.5.26/iso/3.2/desktop32.iso


红旗Linux桌面4.0BETA版下载
ftp://ftp1.mydown.com/home1/soft34/dt4.iso



http://211.147.5.26/iso/4.0/dt4.iso


中软Linux 3.0简体中文零售版下载
http://download.linuxbyte.net/Di ... -3.0-i386-disc1.iso
http://download.linuxbyte.net/Di ... -3.0-i386-disc2.iso


SuSE linux 8.0下载
ftp://166.111.121.3/Linux/SuSE/8.0/shksuse1.iso
ftp://166.111.121.3/Linux/SuSE/8.0/shksuse2.iso
ftp://166.111.121.3/Linux/SuSE/8.0/shksuse3.iso
ftp://166.111.121.3/Linux/SuSE/8.0/shksuse4.iso
ftp://166.111.121.3/Linux/SuSE/8.0/shksuse5.iso
ftp://166.111.121.3/Linux/SuSE/8.0/shksuse6.iso
ftp://166.111.121.3/Linux/SuSE/8.0/shksuse7.iso

只需前3张CD就可以了


SuSE linux 8.1下载
ftp://202.104.20.231/pub/freewar ... _Linux_V8.1_CD1.iso
ftp://202.104.20.231/pub/freewar ... _Linux_V8.1_CD2.iso
ftp://202.104.20.231/pub/freewar ... _Linux_V8.1_CD3.iso
ftp://202.104.20.231/pub/freewar ... _Linux_V8.1_CD4.iso
ftp://202.104.20.231/pub/freewar ... _Linux_V8.1_CD5.iso
ftp://202.104.20.231/pub/freewar ... _Linux_V8.1_CD6.iso
ftp://202.104.20.231/pub/freewar ... _Linux_V8.1_CD7.iso



ftp://166.111.121.3/Linux/SuSE/8.1/Cd1/SuSE_Linux_V8.1_CD1.iso
ftp://166.111.121.3/Linux/SuSE/8.1/Cd2/SuSE_Linux_V8.1_CD2.iso
ftp://166.111.121.3/Linux/SuSE/8.1/Cd3/SuSE_Linux_V8.1_CD3.iso

只需前3张CD就可以了


Xteam Linux 4.0下载
http://download.linuxbyte.net/Di ... Linux-4.0-disc1.iso
http://download.linuxbyte.net/Di ... Linux-4.0-disc2.iso


蓝点LINUX 2.0下载
http://download.linuxbyte.net/Di ... bluepoint20_rel.iso


Magic Linux 1.1 final下载
http://linuxcn.org/iso/MagicLinux-OS-1.1final.iso
http://linuxcn.org/iso/MagicLinux-Tools-1.1final.iso
http://linuxcn.org/iso/MagicLinux-SRC-1.1final.iso



ftp://linuxsir:[email protected] ... nux-OS-1.1final.iso
ftp://linuxsir:[email protected] ... -Tools-1.1final.iso
ftp://linuxsir:[email protected] ... ux-SRC-1.1final.iso
+Linux分区知识
+Linux分区方案、文件结构与挂载
-http://os.51cto.com/art/201001/175635.htm
-对大家分析叙述Linux分区建议之前,大家必须掌握下Linux的文件结构,然后对Linux分区建议全面讲述,Linux是由开发工具软件、编辑器软件、CPU图形用户界面、网络工具软件等组成的一个完整的软件包。Linux具备现代一切功能完整的UNIX系统所具备的全部特征,其中包括真正的多任务、虚拟内存、共享库、优秀的内存管理以及TCP/IP网络支持等。

Linux的文件结构、挂载与分区建议

Windows的文件结构是多个并列的树状结构,最顶部的是不同的磁盘(分区),如:C,D,E,F等。Linux的文件结构是单个的树状结构。最顶部的为根目录,即/。在根目录下,分为多个子目录,包括/bin、/boot、/dev、/etc、/home、/lib、/media、/mnt、/opt、/proc、/root、/sbin、/tmp、/usr和/var等。这些目录的具体作用在这里就不做详细介绍了。磁盘Linux分区都必须挂载到目录树中的某个具体的目录上才能进行读写操作。显然,根目录是所有Linux的文件和目录所在的地方,需要挂载上一个磁盘分区。上面还提到,Linux分区交换也需要独立使用一个分区,因此,安装一个Linux至少需要两个分区。(事实上,只使用一个分区安装Linux也是可能的,而且,如果电脑的物理内存足够大,交换分区并不是必须的)在不同的Linux安装教程中,不同的作者阐述了各种不同的分区建议,本文也不例外。以下的一些建议,有很多都是个人的喜好,因此读者并不一定要完全按照这些建议进行分区,选择最适合自己的方案才是最好的。

/boot:在很多老旧的教程中,都会让用户在/boot目录上挂载一个大小为100MB左右的独立分区,并推荐把该/boot放在硬盘的前面,即1024柱面之前。事实上,那是Lilo无法引导1024柱面后的操作系统内核的时代遗物了。当然,也有作者宣称,独立挂载/boot的好处是可以让多个Linux共享一个/boot。其实,无论是基于上述的哪种理由,都没有必要把/boot分区独立出来。首先,Grub可以引导1024柱面后的Linux内核;其次,即使是安装有多个Linux,也完全可以不共享/boot。因为/boot目录的大小通常都非常小,大约20MB,分一个100MB的分区无疑是一种浪费,而且还把硬盘分的支离破碎,不方便管理。另外,如果让两个Linux共享一个/boot,每次升级内核,都会导致Grub的配置文件冲突,带来不必要的麻烦。而且,不独立/boot分区仅仅占用了根目录下的大约20MB左右的空间,根本不会对根目录的使用造成任何影响。值得注意的是,随着硬盘容量的增大,无法引导Linux内核的现象再次出现,这也就是著名的137GB限制。很遗憾,Grub是无法引导137GB之后的分区中的Linux内核的。如果你不巧遇到了这样的情况(我就遇到过),你就要考虑把/boot独立挂载到位于137GB前方的独立分区中,或者索性就把 Linux分区都往前移动,让根目录所在分区位于137GB之前。

/usr/local:建议把/opt、/usr或/usr/local独立出来的教程,基本上也是非常老的了。使用Ubuntu时,我们一般都是使用系统的软件包管理器安装软件,很少自己编译安装任何软件。而建议独立/usr、/opt、/usr/local的理由无非是为了重装系统时不再重新编译软件而直接使用早先编译好的版本。因此对于大多数的普通用户来说,这个建议通常是没有意义的。

/var:建议把/var和/tmp独立出来的教程通常是面向服务器的。因为高负载的服务器通常会产生很多日志文件和临时文件,而这些文件又经常改变,因此把/var和/tmp独立出来,有利于提高服务器的性能。我们使用Ubuntu是做桌面的,甚至有些用户根本从来就没有关心过系统日志这玩意儿,所以根本没有必要独立的为/var和/tmp挂载分区。

/home:这可能是唯一一个值得独立挂载Linux分区的目录了。/home是用户文件夹所在的地方。一个用户可能在/home/user中存放了大量的文件资料,如果独立挂载/home,即使遇到Ubuntu系统无故身亡的尴尬局面,也可以立刻重装系统,取得自己的文件资料。因此,/home是唯一可以考虑独立挂载Linux分区的目录。

看了上面的一些介绍,你可能已经知道我的建议了:

- 双Linux分区方案

/:至少3GB,建议根据实际情况,尽可能多分一些,特别是喜欢玩各式软件的读者。
SWAP:物理内存小于等于512MB,建议分配实际物理内存容量2倍大小的SWAP;物理内存大于512MB,建议分配与物理内存等容量的SWAP。

- 三Linux分区方案

/:至少3GB,建议根据实际情况,尽可能多分一些,特别是喜欢玩各式软件的读者。
/home:根据实际需要分配1GB~100GB或更多,酌情处理。SWAP:物理内存小于等于512MB,建议分配实际物理内存容量2倍大小的SWAP;物理内存大于512MB,建议分配与物理内存等容量的SWAP。

另外需要说明的一点是,有些老旧的教程中建议把Linux安装在主分区中,或在/boot下挂载一个主分区。事实上,这也是不需要的。Linux的所有分区都可以位于逻辑分区中。所以,不要再被这些老旧的教程所误导了,不要再浪费有限的主分区了,放心地把Linux安装在逻辑分区中吧。
-
+linux下的拷贝(cp)、删除(rm)、剪切(mv)命令
-http://hi.baidu.com/bing2liuliu/blog/item/c77fe1b623699aff30add1b2.html
-cp命令

该命令的功能是将给出的文件或目录拷贝到另一文件或目录中,就如同DOS下的copy命令一样,功能非常强大。

语法: cp [选项] 源文件或目录 目标文件或目录

说明:该命令把指定的源文件复制到目标文件或把多个源文件复制到目标目录中。

该命令的各选项含义如下:

- a 该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录,其作用等于dpR选项的组合。

- d 拷贝时保留链接。

- f 删除已经存在的目标文件而不提示。

- i 和f选项相反,在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖,是交互式拷贝。

- p 此时cp除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中。

- r 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名。

- l 不作拷贝,只是链接文件。

需要说明的是,为防止用户在不经意的情况下用cp命令破坏另一个文件,如用户指定的目标文件名是一个已存在的文件名,用cp命令拷贝文件后,这个文件就会被新拷贝的源文件覆盖,因此,建议用户在使用cp命令拷贝文件时,最好使用i选项。

$ cp - i exam1.c /usr/wang/shiyan1.c

该命令将文件exam1.c拷贝到/usr/wang 这个目录下,并改名为 shiyan1.c。若不希望重新命名,可以使用下面的命令:

$ cp exam1.c /usr/ wang/

$ cp - r /usr/xu/ /usr/liu/

将/usr/xu目录中的所有文件及其子目录拷贝到目录/usr/liu中。


mv命令

用户可以使用mv命令来为文件或目录改名或将文件由一个目录移入另一个目录中。该命令如同DOS下的ren和move的组合。

语法:mv [选项] 源文件或目录 目标文件或目录

说 明:视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。当第二个参数类型是文件时,mv命令 完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。当第二个参数是已存在的目录名称时,源 文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。在跨文件系统移动文件时,mv先拷贝,再将原有文件删除,而链至该文件的链接 也将丢失。

命令中各选项的含义为:

- I 交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重写,要求用户回答y或n,这样可以避免误覆盖文件。

- f 禁止交互操作。在mv操作要覆盖某已有的目标文件时不给任何指示,指定此选项后,i选项将不再起作用。

如果所给目标文件(不是目录)已存在,此时该文件的内容将被新文件覆盖。为防止用户在不经意的情况下用mv命令破坏另一个文件,建议用户在使用mv命令移动文件时,最好使用i选项。

需要注意的是,mv与cp的结果不同。mv好象文件“搬家”,文件个数并末增加,而cp对文件进行复制,文件个数增加了。

例1:将/usr/xu中的所有文件移到当前目录(用“.”表示)中:

$ mv /usr/xu/ * .

例2:将文件wch.txt重命名为wjz.doc

$ mv wch.txt wjz.doc

rm命令

在linux中创建文件很容易,系统中随时会有文件变得过时且毫无用处。用户可以用rm命令将其删除。该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件均保持不变。

rm命令的一般形式为:

rm [选项] 文件…

如果没有使用- r选项,则rm不会删除目录。

该命令的各选项含义如下:

- f 忽略不存在的文件,从不给出提示。

- r 指示rm将参数中列出的全部目录和子目录均递归地删除。

- i 进行交互式删除。

使 用rm命令要格外小心。因为一旦一个文件被删除,它是不能被恢复的。例如,用户在输入cp,mv或其他命令时,不小心误输入了rm命令,当用户按了回车键 并认识到自己的错误时,已经太晚了,文件已经没有了。为了防止此种情况的发生,可以使用rm命令中的 i选项来确认要删除的每个文件。如果用户输入y,文件将被删除。如果输入任何其他东西,文件将被保留。在下一个例子中,用户要删除文件test和 example。然后会被要求对每个文件进行确认。用户最终决定删除example文件,保留test文件。

$ rm - ii test example

Remove test ?n

Remove example ?y
+使用yum安装xwindows和Gnome、KDE
-irst you can see all the yum groups available with the command:

yum grouplist

You can install X and Gnome or KDE like this:

yum groupinstall "X Window System" "GNOME Desktop Environment"

or

yum groupinstall "X Window System" "KDE (K Desktop Environment)"

You may also want to add some other groups from the list like "Graphical Internet" or "Office/Productivity"
-前为了省事,在安装CentOS的时候,没有安装X window。
今天要在CentOS里安装Oracle,得先把X window安装起来。

安装步骤:
1、安装X Window System
[root@CentOS ~]# yum groupinstall "X Window System"
2、安装KDE(或gnome)
[root@CentOS ~]# yum groupinstall "KDE (K Desktop Environment)"
3、安装完毕后,执行startx,即可进行X window(KDE)。

建议:
1、因为X window和KDE都比较大,所以强烈建议在安装这两个组件之前,确认硬盘有足够的剩余空间;
2、同样是因为这两个组件之前,强烈建议将CentOS换成比较快的更新源。
-
+vim的复制粘贴小结
-http://blog.csdn.net/Bluesky_Leon/article/details/4069194
-正在学习使用vim,前一阵想学linux,然后突然发现vim是个好东西,学习使用,今天发现,无法使用ctrl+c/ctrl+v来跟系统其它应用之间做复制粘贴,非常不爽,搜了一下,发现很多人有写这个问题,试了几个,觉得这个最好,转帖过来收藏。

原文地址:http://lsong17.spaces.live.com/blog/cns!556C21919D77FB59!603.entry

内容:

用vim这么久 了,始终也不知道怎么在vim中使用系统粘贴板,通常要在网上复制一段代码都是先gedit打开文件,中键粘贴后关闭,然后再用vim打开编辑,真的不 爽;上次论坛上有人问到了怎么在vim中使用系统粘贴板,印象里回复很多,有好几页的回复却没有解决问题,今天实在受不了了又在网上找办法,竟意外地找到 了,贴出来分享一下。

如果只是想使用系统粘贴板的话直接在输入模式按Shift+Inset就可以了,下面讲一下vim的粘贴板的基础知识,有兴趣的可以看看,应该会有所收获的。
vim帮助文档里与粘贴板有关的内容如下:

vim有12个粘贴板,分别是0、1、2、...、9、a、“、+;用:reg命令可以查看各个粘贴板里的内容。在vim中简单用y只是复制到“(双引号)粘贴板里,同样用p粘贴的也是这个粘贴板里的内容;


要将vim的内容复制到某个粘贴板,需要退出编辑模式,进入正常模式后,选择要复制的内容,然后按"Ny完成复制,其中N为粘贴板号(注意是按一下双引号然后按粘贴板号最后按y),例如要把内容复制到粘贴板a,选中内容后按"ay就可以了,有两点需要说明一下:
“号粘贴板(临时粘贴板)比较特殊,直接按y就复制到这个粘贴板中了,直接按p就粘贴这个粘贴板中的内容;
+号粘贴板是系统粘贴板,用"+y将内容复制到该粘贴板后可以使用Ctrl+V将其粘贴到其他文档(如firefox、gedit)中,同理,要把在其他地方用Ctrl+C或右键复制的内容复制到vim中,需要在正常模式下按"+p;


要将vim某个粘贴板里的内容粘贴进来,需要退出编辑模式,在正常模式按"Np,其中N为粘贴板号,如上所述,可以按"5p将5号粘贴板里的内容粘贴进来,也可以按"+p将系统全局粘贴板里的内容粘贴进来。
注意:在我这里,只有vim.gtk或vim.gnome才能使用系统全局粘贴板,默认的vim.basic看不到+号寄存器。
+RHEL如何使用centos的yum
-http://hi.baidu.com/jx_iben/blog/item/22e1f08b8fce066b9f2fb469.html
-===================================================================================
由于自己的 RHEL 没有注册,因此不能使用自带的 yum 来升级系统或者安装软件。
因为 CentOS 是 RHEL 的完整重新编译版本(当然要相互对应一样的版本号),所以 RHEL 是一定可以用 CentOS 的 yum 源的。
===================================================================================
【删除 RHEL 自带的 yum】
# rpm -aq|grep yum|xargs rpm -e --nodeps
===================================================================================
【下载】以下四个文件:
# wget http://mirrors.163.com/centos/5/os/i386/CentOS/yum-3.2.19-18.el5.centos.noarch.rpm
# wget http://mirrors.163.com/centos/5/os/i386/CentOS/yum-metadata-parser-1.1.2-2.el5.i386.rpm
# wget http://mirrors.163.com/centos/5/os/i386/CentOS/python-iniparse-0.2.3-4.el5.noarch.rpm
# wget http://mirrors.163.com/centos/5/os/i386/CentOS/yum-fastestmirror-1.1.16-13.el5.centos.noarch.rpm
===================================================================================
【安装】
# rpm -ivh python-iniparse-0.2.3-4.el5.noarch.rpm
# rpm -ivh yum-metadata-parser-1.1.2-2.el5.i386.rpm
# rpm -ivh yum-3.2.19-18.el5.centos.noarch.rpm
warning: yum-3.2.19-18.el5.centos.noarch.rpm: Header V3 DSA signature: NOKEY, key ID e8562897
error: Failed dependencies:
yum-fastestmirror is needed by yum-3.2.19-18.el5.centos.noarch
# wget ftp://ftp.muug.mb.ca/mirror/centos/5.3/os/x86_64/CentOS/yum-fastestmirror-1.1.16-13.el5.centos.noarch.rpm
# rpm -ivh yum-fastestmirror-1.1.16-13.el5.centos.noarch.rpm
warning: yum-fastestmirror-1.1.16-13.el5.centos.noarch.rpm: Header V3 DSA signature: NOKEY, key ID e8562897
error: Failed dependencies:
yum >= 3.0 is needed by yum-fastestmirror-1.1.16-13.el5.centos.noarch
注意:安装的时候最好几个同时安装,如果单个安装的话可能会出现依赖问题。
出现了相互依赖的问题。

混在一起
# rpm -ihv yum*

------------------------------------------------------------------------------------------------------------------------------------
最后,下载配置文件:
# wget http://sudone.com/download/CentOS-Base.repo -O /etc/yum.repos.d/CentOS-Base.repo
这样就可以用 CentOS 的 yum 源来更新系统和安装软件了。
------------------------------------------------------------------------------------------------------------------------------------
另外,附上 x86_64 系统使用 CentOS 的 yum 源需要下载的四个包:
wget http://mirrors.163.com/centos/5/os/x86_64/CentOS/yum-3.2.19-18.el5.centos.noarch.rpm
wget http://mirrors.163.com/centos/5/os/x86_64/CentOS/yum-metadata-parser-1.1.2-2.el5.x86_64.rpm
wget http://mirrors.163.com/centos/5/os/x86_64/CentOS/python-iniparse-0.2.3-4.el5.noarch.rpm
wget http://mirrors.163.com/centos/5/os/x86_64/CentOS/yum-fastestmirror-1.1.16-13.el5.centos.noarch.rpm
===================================================================================
【自动运行 yum】
# chkconfig --list yum
# chkconfig --level 3 yum on

控制脚本 /etc/rc.d/init.d/yum,这个控制脚本激活了 /etc/cron.daily/yum.cron,而它又会使 cron 服务来在每日凌晨四点时进行自动的系统更新。
===================================================================================
/etc/yum.repos.d/CentOS-Base.repo
CentOS-5 yum 国内镜像服务 配置文件:

[base]
name=Base
baseurl=http://mirrors.163.com/centos/5/os/i386/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

[updates]
name=Updates
baseurl=http://mirrors.163.com/centos/5/updates/i386/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

[addons]
name=Addons
baseurl=http://mirrors.163.com/centos/5/addons/i386/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

[extras]
name=Extras
baseurl=http://mirrors.163.com/centos/5/extras/i386/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

[centosplus]
name=Plus
baseurl=http://mirrors.163.com/centos/5/centosplus/i386/
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

强制4,则如下:

[base]
name=CentOS-4 Base
baseurl=http://mirrors.163.com/centos/4/os/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

[updates]
name=CentOS-4 Updates
baseurl=http://mirrors.163.com/centos/4/updates/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

[addons]
name=CentOS-4 Addons
baseurl=http://mirrors.163.com/centos/4/addons/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

[extras]
name=CentOS-4 Extras
baseurl=http://mirrors.163.com/centos/4/extras/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

[centosplus]
name=CentOS-4 Plus
baseurl=http://mirrors.163.com/centos/4/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

如果根据系统使用源,则如下:
[base]
name=CentOS-$releasever ¨C Base
baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

[updates]
name=CentOS-$releasever Updates
baseurl=http://mirrors.163.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

[addons]
name=CentOS-$releasever Addons
baseurl=http://mirrors.163.com/centos/$releasever/addons/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

[extras]
name=CentOS-$releasever Extras
baseurl=http://mirrors.163.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

[centosplus]
name=CentOS-$releasever Plus
baseurl=http://mirrors.163.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
+fstab文件只读的解决办法
-http://seo.wangxianjin.com/?p=169
-经常在修改fstab文件时,由于粗心大意修改错误导致系统无法正常启动。因些需要在开机进入修复模式后改正错误。可这时往往fstab文件是只读的,无法修改。这时,可以试试用#mount -n -o remount,rw /来更改一下文件属性,你就会发现,现在已经可以修改了。
+/etc/fstab 包含了你的磁盘分区以及存储设备如何挂载,以及挂载在什么地方的信息
-http://hi.baidu.com/chen3888015/blog/item/acd1498bcd67e5699f2fb4fd.html
-第一列包含着设备名,

第二列是它的挂载点,

第三列是它的文件系统格式,

第四是挂载参数,
第五列[一个数字]是转储选项

第六列[另一个数字]是文件系统检查选项。


该文件中最后两项
1. default 这个可以写的值(rw ro suid[一种安全机制] user[nouser]普通用户是否可以挂载 exec能否执行二进制文件 sync[async] sync为实时写入硬盘,async不是实时写入,可以先写到内存,FTP中那会用到 )

2. 0 0 前一个为0是说是否备份,1为备份 后一个是说是否检查分区错误
+Redhat安装序列号
-RHEL 5 安装 序列号


Server:

* Red Hat Enterprise Linux (Server including virtualization):
2515dd4e215225dd

+ Red Hat Enterprise Linux Virtualization Platform:
49af89414d147589

Client:

* Red Hat Enterprise Linux Desktop:
660266e267419c67

+ Red Hat Enterprise Linux Desktop + Workstation Option:
da3122afdb7edd23

+ Red Hat Enterprise Linux Desktop + Workstation + DualOS Option
(Virtualization):
7fcc43557e9bbc42

+ Red Hat Enterprise Linux Desktop + DualOS Option (Virtualization):
fed67649ff918c77

测试过,可行!
+一步一学Linux与Windows 共享文件Samba
-http://www.linuxsir.org/main/node/158?q=node/158#3.1
-
+Linux实现root身份登录Telnet登录
-http://itwork.blog.51cto.com/227050/131304
- RedHat Linux 安装完成以后默认提供使用SSH方式进行远程连接,如果想通过Telnet方式远程连接到Linux需要我们进行一些设置。
注:ssh使用非对称算法加密(公钥加密和私钥解密),其能提供安全的端到端连接,推荐使用SSH方式远程连接到Linux。
Telnet使用明文方式(不提供安全机制)进行信息交互,其无法保障密码等重要信息的安全,一般不使用Telnet远程连接到Linux。

Telnet配置方法如下:
1. 开启telnet服务
使用root身份登录Linux
执行命令chkconfig --list telnet,用以查看Telnet服务是否开启,返回结果为telnet off
执行命令chkconfig telnet on,开启Telnet服务
执行命令chkconfig --list telnet,用以查看Telnet服务是否开启,返回结果为
telnet on
至此Telnet服务已经开启
2. 对telnet服务进行连接测试
使用命令telnet 127.0.0.1,对本机的Telnet服务进行连接,应返回以下信息
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
Red Hat Enterprise Linux Server release 5 (Tikanga)
Kernel 2.6.18-8.el5 on an i686
login:
在login:处输入用户名root,然后输入相应密码,但是返回登录错误信息
Login incorrect
这是由于虽然开启了Telnet服务但是Linux默认不允许root身份通过Telnet登录,我们通过更改/etc/securetty文件让系统允许root身份登录
3. 更改/etc/securetty使root身份可以登录系统
先查看cat /etc/securetty,文件的内容大致为
console
vc/1
vc/2
vc/3
vc/4
vc/5
vc/6
vc/7
vc/8
vc/9
vc/10
vc/11
tty1
tty2
tty3
tty4
tty5
tty6
tty7
tty8
tty9
tty10
tty11
然后,我们使用以下指令对这个文件添加些内容
echo "pts/0" >> /etc/securetty
echo "pts/1" >> /etc/securetty
再次cat /etc/securetty这个文件,在后面会多出两行
......
pts/0
pts/1
至此我们可以使用root身份登录了
使用命令telnet 127.0.0.1进行测试并以root什么Login,返回如下信息表示配置已经成功
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
Red Hat Enterprise Linux Server release 5 (Tikanga)
Kernel 2.6.18-8.el5 on an i686
login: root
Password:
Last login: Tue Feb 17 11:04:34 from 192.168.10.58
[root@linux ~]#

另:如果开启了iptables防火墙功能则无法成功连接Telnet服务,可以使用以下指令允许23端口进入
iptables -t filter -A INPUT -p tcp --dport 23 -j ACCEPT
(防火墙具体配置在后续实验会讲到)

RHCE_LAB(1)实现root身份的Telnet登录--结束
+MS-Dos实现telnet登录linux(普通用户)
-上面有点不对,重新做了一下:
1.,先配置WINDOWS 和 LINUX 的IP 地址使俩机能够PING 通。
2,查询TELNET的软件包rpm -qa | grep telnet 默认只安装个客户端软件包,还要安装服务器软件包在第三张盘中,挂载#mount /dev/cdrom /mnt/cdrom
#cd RedHat
#cd RPMS
#ll | grep telnet
#rpm -ivh telnet-service-0.17.i386.rpm (有的版本不一样)
3,安装完后会出现一个文件/etc/xinetd.d/telnet, 查看一下端口netstat -tuln 23端口应该是LISTING
重启一下服务#service xinetd restart
4,要建一个普通帐户,在WINDOWS机上用DOS进行TELNET 就可以连上了。
+Linux 服务器500G分区方案
-http://blog.sina.com.cn/s/blog_4e967c8b0100sznz.html
-http://huagelinux.blog.163.com/blog/static/873370832010126409686/
-500G硬盘linux服务器分区的方案:

分区类型 分区的实际大小
/ 1G-2G (最少要150–250MB)
/boot 32M-100M (启动分区,最多只要100M左右,再多了无用。)
/opt 100M-1G (附加应用程序)
/tmp 40M-1000M (最大可以设为1G左右,如果加载ISO镜像文件就设为4G左右吧,一般不用那么多)
/home 2G-10G (每个用户100M左右,具体自定。用户目录。)
/usr 3G-10G (最耗用空间的部份。最少要500M左右,一般宽松的服务器要分到4-6G)
/usr/local 3G-15G (自已安装程序安装在此)
/var >2G–硬盘余下全部空间 ( 最少300M-500M,一般2-3G,做服务器的话把上面余下的空间都分给它)


各种服务器的架设,要自己来编译安装,要放在/opt分区中,这是极为重要的,目的很简单,是为了管理方便。不会危胁系统的正常高效率的运行。不可把软件安装到/usr目录中,因为这是系统的专用分区,太多的小文件,会把服务器的速度拖慢,我们可以把自己编译安装的apache放在这个分区中,也可以把mysql放在这个分区等等。所以说/opt分区也要大,除了/var分区以外,/opt分区应该是最大的分区。
+linux目录作用详解(超详细,树状排版)
-http://blog.csdn.net/cuibo1123/article/details/2606895
-自己在网上找了好久,没找到,干脆自己做一个。给大家分享下,希望能顺便指出我的错误。请复制到记事本,然后取消自动换行。看起来就会很清晰了。



/ 根目录

├boot/ 启动文件。Linux的内核及引导系统程序所需要的文件目录,比如 vmlinuz initrd.img 文件都位于这个目录中。在一般情况下,GRUB或LILO系统引导管理器也位于这个目录;
│ └grub/ Grub引导器相关的文件

├dev/ 设备文件。设备文件用特定的约定命名,这在设备列表中说明 (见[Anv])。设备文件在安装是产生,以后可以用 /dev/MAKEDEV 描述。 /dev/MAKEDEV.local 是系统管理员为本地设备文件(或连接)写的描述文稿 (即如一些非标准设备驱动不是标准MAKEDEV 的一部分)。
├opt/ 表示的是可选择的意思,有些软件包也会被安装在这里,也就是自定义软件包,比如在Fedora Core 5.0中,OpenOffice就是安装在这里。有些我们自己编译的软件包,就可以安装在这个目录中;通过源码包安装的软件,可以通过 ./configure --prefix=/opt/目录 。
├proc/ 是一个假的文件系统。它不存在在磁盘某个磁盘上。而是由核心在内存中产生。用于提供关于系统的信息(originally about processes, hence the name)。/proc 文件系统在proc man页中有更详细的说明。
│ ├1/ 关于进程1的信息目录。每个进程在/proc 下有一个名为其进程号的目录。
│ ├cpuinfo 处理器信息,如类型、制造商、型号和性能。
│ ├devices 当前运行的核心配置的设备驱动的列表。
│ ├dma 显示当前使用的DMA通道。
│ ├filesystems核心配置的文件系统。
│ ├interrupts 显示使用的中断,and how many of each there have been.
│ ├ioports 当前使用的I/O端口。
│ ├kcore 系统物理内存映象。与物理内存大小完全一样,但不实际占用这么多内存;it is generated on the fly as programs access it. (记住:除非你把它拷贝到什么地方,/proc 下没有任何东西占用任何磁盘空间。)
│ ├kmsg 核心输出的消息。也被送到syslog 。
│ ├ksyms 核心符号表。
│ ├loadavg 系统"平均负载";3个没有意义的指示器指出系统当前的工作量。
│ ├meminfo 存储器使用信息,包括物理内存和swap。
│ ├modules 当前加载了哪些核心模块。
│ ├net 网络协议状态信息。
│ ├self 到查看/proc 的程序的进程目录的符号连接。当2个进程查看/proc 时,是不同的连接。这主要便于程序得到它自己的进程目录。
│ ├stat 系统的不同状态,such as the number of page faults since the system was booted.
│ ├uptime 系统启动的时间长度。
│ └version 核心版本。

├mnt/ 临时挂载。这个目录一般是用于存放挂载储存设备的挂载目录的,比如有cdrom 等目录。可以参看/etc/fstab的定义。有时我们可以把让系统开机自动挂载文件系统,把挂载点放在这里也是可以的。
│ └cdrom 光驱。

├media/ 挂载媒体设备
├root/ root用户的$HOME目录
├home/ 普通用户的$HOME目录
│ ├user/ 用户
│ └.../

├bin/ 系统程序。系统所需要的那些命令位于此目录,比如ls、cp、mkdir等命令;功能和/usr/bin类似,这个目录中的文件都是可执行的、普通用户都可以使用的命令。作为基础系统所需要的最基础的命令就是放在这里。
├sbin/ 管理员系统程序。大多是涉及系统管理的命令的存放,是超级权限用户root的可执行命令存放地,普通用户无权限执行这个目录下的命令,这个目录和/usr/sbin; /usr/X11R6/sbin或/usr/local/sbin目录是相似的;我们记住就行了,凡是目录sbin中包含的都是root权限才能执行的。
├lib/ 程序所需的共享库。
│ └modules 核心可加载模块,特别是那些恢复损坏系统时引导所需的(例如网络和文件系统驱动)。

├etc/ 系统程序和大部分应用程序的全局配置文件
│ ├init.d/ SystemV风格的启动脚本
│ ├rcX.d/ 启动脚本的链接,定义运行级别
│ ├network/ 网络配置文件
│ ├X11/ 图形界面配置文件
│ ├rc or rc.d or rc?.d 启动、或改变运行级时运行的scripts或scripts的目录。
│ ├passwd 用户数据库,其中的域给出了用户名、真实姓名、家目录、加密的口令和用户的其他信息。格式见passwd 的man页。
│ ├fdprm 软盘参数表。说明不同的软盘格式。用setfdprm 设置。更多的信息见setfdprm 的man页。
│ ├fstab 启动时mount -a命令(在/etc/rc 或等效的启动文件中)自动mount的文件系统列表。 Linux下,也包括用swapon -a启用的swap区的信息。见4.8.5节和mount 的man页。
│ ├group 类似/etc/passwd ,但说明的不是用户而是组。见group 的man页。
│ ├inittab init 的配置文件。
│ ├issuegetty 在登录提示符前的输出信息。通常包括系统的一段短说明或欢迎信息。内容由系统管理员确定。
│ ├magicfile 的配置文件。包含不同文件格式的说明,file 基于它猜测文件类型。见magic 和file 的man页。
│ ├motd Message Of The Day,成功登录后自动输出。内容由系统管理员确定。经常用于通告信息,如计划关机时间的警告。
│ ├mtab 当前安装的文件系统列表。由scripts初始化,并由mount 命令自动更新。需要一个当前安装的文件系统的列表时使用,例如df 命令。
│ ├shadow 在安装了影子口令软件的系统上的影子口令文件。影子口令文件将/etc/passwd 文件中的加密口令移动到/etc/shadow 中,而后者只对root可读。这使破译口令更困难。
│ ├login defslogin 命令的配置文件。
│ ├printcap 类似/etc/termcap ,但针对打印机。语法不同。
│ ├profile,csh.login,csh.cshrc 登录或启动时Bourne或C shells执行的文件。这允许系统管理员为所有用户建立全局缺省环境。各shell见man页。
│ ├securetty 确认安全终端,即哪个终端允许root登录。一般只列出虚拟控制台,这样就不可能(至少很困难)通过modem或网络闯入系统并得到超级用户特权。
│ ├shells 列出可信任的shell。chsh 命令允许用户在本文件指定范围内改变登录shell。提供一台机器FTP服务的服务进程ftpd 检查用户shell是否列在 /etc/shells 文件中,如果不是将不允许该用户登录。
│ └termcap 终端性能数据库。说明不同的终端用什么"转义序列"控制。写程序时不直接输出转义序列(这样只能工作于特定品牌的终端),而是从 /etc/termcap 中查找要做的工作的正确序列。这样,多数的程序可以在多数终端上运行。见termcap 、 curs_termcap 和terminfo 的man页。

├usr/ 这个是系统存放程序的目录,比如命令、帮助文件等。这个目录下有很多的文件和目录。当我们安装一个Linux发行版官方提供的软件包时,大多安装在这里。如果有涉及服务器配置文件的,会把配置文件安装在/etc目录中。
│ ├bin/ 几乎所有用户命令。有些命令在/bin 或/usr/local/bin 中。
│ ├sbin/ 根文件系统不必要的系统管理命令,例如多数服务程序。
│ ├lib/ 应用程序库文件,程序或子系统的不变的数据文件
│ ├share/ 应用程序资源文件
│ │ ├fonts 字体目录
│ │ └man 或 doc 帮助目录
│ ├src/ 应用程序源代码
│ ├local/ 本地安装的软件和其他文件放在这里。
│ │ ├soft/ 用户程序
│ │ └.../ 通常使用单独文件夹
│ ├X11R6/ 图形界面系统
│ └include/ C编程语言的头文件。为了一致性这实际上应该在/usr/lib 下,但传统上支持这个名字。

├var/ 动态数据。这个目录的内容是经常变动的;
│ ├www/ 目录是定义Apache服务器站点存放目录;
│ ├catman/ 当要求格式化时的man页的cache。man页的源文件一般存在/usr/man/man* 中;有些man页可能有预格式化的版本,存在/usr/man/cat* 中。而其他的man页在第一次看时需要格式化,格式化完的版本存在/var/man 中,这样其他人再看相同的页时就无须等待格式化了。 (/var/catman 经常被清除,就象清除临时目录一样。)
│ ├lib/ 系统正常运行时要改变的一些库文件,比如MySQL的,以及MySQL数据库的的存放地
│ ├local/ 安装的程序的可变数据(即系统管理员安装的程序)。注意,如果必要,即使本地安装的程序也会使用其他/var 目录,例如/var/lock 。
│ ├lock/ 锁定文件。许多程序遵循在/var/lock 中产生一个锁定文件的约定,以支持他们正在使用某个特定的设备或文件。其他程序注意到这个锁定文件,将不试图使用这个设备或文件。
│ ├log/ 各种程序的Log文件,特别是login (/var/log/wtmp log所有到系统的登录和注销) 和syslog (/var/log/messages 里存储所有核心和系统程序信息。 /var/log 里的文件经常不确定地增长,应该定期清除。
│ ├run/ 保存到下次引导前有效的关于系统的信息文件。例如, /var/run/utmp 包含当前登录的用户的信息。
│ ├spool/ mail, news, 打印队列和其他队列工作的目录。每个不同的spool在/var/spool 下有自己的子目录,例如,用户的邮箱在/var/spool/mail 中。
│ └tmp/ 比/tmp 允许的大或需要存在较长时间的临时文件。 (虽然系统管理员可能不允许/var/tmp 有很旧的文件。)

├temp/ 临时文件目录,有时用户运行程序的时候,会产生临时文件。/tmp就用来存放临时文件的。/var/tmp目录和这个目录相似。
└lost+found/ 在ext2或ext3文件系统中,当系统意外崩溃或机器意外关机,而产生一些文件碎片放在这里。当系统启动的过程中fsck工具会检查这里,并修复已经损坏的文件系统。 有时系统发生问题,有很多的文件被移到这个目录中,可能会用手工的方式来修复,或移到文件到原来的位置上。


csdn blog居然不支持linux下的回车,来回转换累死人了!!
+linux命令创建和修改用户及密码
-linux下创建用户
1、添加ftp用户
useradd ftpname -d /home/ftp
passwd ftppwd
以下操作都以root权限进行:
service vsftpd start 启动Linux自带的FTP服务
2. 添加普通用户
useradd nagios –d /usr/local/nagios
chown nagios.nagios /usr/local/nagios
将用户切换到nagios 用户,添加nagios的访问用户:
su nagios
htpasswd –c /usr/local/nagios/etc/htpasswd.users nagiosadmin
系统会提示输入两次密码,例如两次输入nagios。
注: 这是第一次创建用户,需要“-c”选项,表示创建一个存放用户名和密码的文件,当再次添加用户或修改密码时不用“-c”选项。
添加新的用户账号使用useradd命令,其语法如下:
  useradd 选项 用户名
  其中各选项含义如下:
  -c comment 指定一段注释性描述。
  -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
  -g 用户组 指定用户所属的用户组。
  -G 用户组,用户组 指定用户所属的附加组。
  -s Shell文件 指定用户的登录Shell。
  -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
  用户名 指定新账号的登录名。
  例如:
  # useradd –d /usr/sam -m sam
  此命令创建了一个用户sam,其中-d和-m选项用来为登录名sam产生一个主目录/usr/sam(/usr为默认的用户主目录所在的父目录)。
  # useradd -s /bin/sh -g group –G adm,root gem
  此命令新建了一个用户gem,该用户的登录Shell是/bin/sh,它属于group用户组,同时又属于adm和root用户组,其中group用户组是其主组。
  增加用户账号就是在/etc/passwd文件中为新用户增加一条记录,同时更新其他系统文件如/etc/shadow, /etc/group等。这几个文件的内容在后面会做详细介绍。
  Linux提供了集成的系统管理工具userconf,它可以用来对用户账号进行统一管理。
  如果一个用户的账号不再使用,可以从系统中删除。删除用户账号就是要将/etc/passwd等系统文件中的该用户记录删除,必要时还删除用户的主目录。删除一个已有的用户账号使用userdel命令,其格式如下:
  userdel 选项 用户名
  常用的选项是-r,它的作用是把用户的主目录一起删除。
  例如:
  # userdel sam
  此命令删除用户sam在系统文件中(主要是/etc/passwd, /etc/shadow, /etc/group等)的记录,同时删除用户的主目录。
  修改用户账号就是根据实际情况更改用户的有关属性,如用户号、主目录、用户组、登录Shell等。
  修改已有用户的信息使用usermod命令,其格式如下:
  usermod 选项 用户名
  常用的选项包括-c, -d, -m, -g, -G, -s, -u以及-o等,这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值。另外,有些系统可以使用如下选项:
  -l 新用户名
  这个选项指定一个新的账号,即将原来的用户名改为新的用户名。
  例如:
  # usermod -s /bin/ksh -d /home/z –g developer sam
  此命令将用户sam的登录Shell修改为ksh,主目录改为/home/z,用户组改为developer。
  用户管理的一项重要内容是用户口令的管理。用户账号刚创建时没有口令,但是被系统锁定,无法使用,必须为其指定口令后才可以使用,即使是指定空口令。
  指定和修改用户口令的Shell命令是passwd。超级用户可以为自己和其他用户指定口令,普通用户只能用它修改自己的口令。命令的格式为:
  passwd 选项 用户名
  可使用的选项:
  -l 锁定口令,即禁用账号。
  -u 口令解锁。
  -d 使账号无口令。
  -f 强迫用户下次登录时修改口令。
  如果默认用户名,则修改当前用户的口令。
  例如,假设当前用户是sam,则下面的命令修改该用户自己的口令:
  $ passwd
  Old password:******
  New password:*******
  Re-enter new password:*******
  如果是超级用户,可以用下列形式指定任何用户的口令:
  # passwd sam
  New password:*******
  Re-enter new password:*******
  普通用户修改自己的口令时,passwd命令会先询问原口令,验证后再要求用户输入两遍新口令,如果两次输入的口令一致,则将这个口令指定给用户;而超级用户为用户指定口令时,就不需要知道原口令。
  为了系统安全起见,用户应该选择比较复杂的口令,例如最好使用8位长的口令,口令中包含有大写、小写字母和数字,并且应该与姓名、生日等不相同。
  为用户指定空口令时,执行下列形式的命令:
  # passwd -d sam
  此命令将用户sam的口令删除,这样用户sam下一次登录时,系统就不再询问口令。
  passwd命令还可以用-l(lock)选项锁定某一用户,使其不能登录,例如:
  # passwd -l sam
+[LINUX]查看系统版本信息的命令
-http://hi.baidu.com/pkugsis/blog/item/492435db3d92d462d1164e07.html
-几种查看linux版本信息的方法:
1. uname -a
2. cat /proc/version
3. cat /etc/issue
4. lsb_release -a

详解 lsb_release -a

1. 登录到服务器执行 lsb_release -a ,即可列出所有版本信息,例如:
1. [[email protected] ~]# lsb_release -a
2. LSB Version: 1.3
3. Distributor ID: RedHatEnterpriseAS
4. Description: Red Hat Enterprise Linux AS release 4 (Nahant Update 1)
5. Release: 4
6. Codename: NahantUpdate1
7. [[email protected] ~]#
这个命令适用于所有的linux,包括Redhat、SuSE、Debian等发行版。
+为redhat AS4安装yum
-http://blog.gsywx.com/read.php/70.htm
-http://hi.baidu.com/dubailon/blog/item/5bdccf186f713d71dbb4bd60.html/cmtid/2dd127396c30f0fdb311c775
- 大 | 中 | 小
前天接了个环境lnmp的配置,原让其安装centos5.5的,没想对方机房装了其他版本的linux,因平时接触的版本也不多,所以,通过查看 cat /proc/version 才得知系统为32位的redhat AS4。
登录后发现没法使用yum,于是网上搜索,找到方法,以下为转贴:


  在标准的Redhat Enterprise Linux上,默认没有安装yum,需要单独下载并安装。
  此外,Redhat Enterprise Linux的更新是由Redhat提供的收费服务,但由于Redhat Enterprise Linux和CentOS是基本通用的,所以可用CentOS源来升级redhat。
  1. 首先安装yum和相关的rpm包
  注意:本安装包只提供给as4系统之用
   http://www.swsoft.com.cn/downloads/Prima/Tools/yum_forAS4.tar.gz
或 http://www.haoxm.net/tools/yum_forAS4.tar.gz
  下载并解压缩yum包和升级文件
  rpm -ivh *.rpm

  2. 将解压缩后得到的CentOS-Base.repo复制到/etc/yum.repos.d/目录里边
  注意:本CentOS-Base.repo文件只提供给as4系统之用

  3. 执行如下命令导入GPG Key
  rpm --import http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-4
或 rpm --import http://www.haoxm.net/tools/RPM-GPG-KEY-CentOS-4

  现在可以开始使用yum了。yum的主要参数包括search/install/upgrade/remove。
  
  注意:
  1. 使用yum的过程中,有些程序包是不能升级的。
  2. 如果使用yum对全部系统都进行升级,则会发现升级后系统版本将从redhat变成centos
  这是因为升级使用的是免费centos的yum源,所以升级最好有选择的执行

yum update了一下,文件是下载了,但提示出错未安装,看来能否升为centos还有待再次试验,于是又搜来redhat 的源更换,源码如下:

[base]

name=Red Hat Enterprise AS release 4 Updates

baseurl= http://apt.sw.be/redhat/el4/en/i386/dag/

http://apt.sw.be/redhat/el4/en/i386/rpmforge/

http://mirror.cpsc.ucalgary.ca/mirror/dag/redhat/el4/en/i386/dag/

http://mirror.cpsc.ucalgary.ca/mirror/dag/redhat/el4/en/i386/rpmforge/
gpgcheck=0

yum后发现能更新,就是有用的包太少了。
+双Linux和多Linux操作系统的安装方法介绍
-http://www.linux-cn.com/html/linux/beginner/20071212/56314.shtml
-以下是双Linux和多Linux操作系统的安装方法介绍的正文内容,本文是网友投稿或本站会员创作,不代表本站观点:
这里提供两种安装方法,原理相同。

第一种:

1.将硬盘分为四个(或四个以下)主分区,分区工具为PartitionMagic (分区魔法师)v8.0,或者在安装过程中使用Linux 的分区工具;

2.第一个设为swap分区,用来做多个linux 公用的交换分区(共用交换分区可以节约空间);

3.依次安装第一个、第二个等linux ,且每个linux选一个主分区作为其“/”目录(根目录);将grub都设为默认(安装在MBR)即可;当然,这时只有最后安装的linux 是可以启动的;

4.启动系统(最后安装的那个linux ),将其他linux 系统所在的分区挂载(mount)好,将这些挂载分区的/boot/grub/grub.conf 打开,分别将文件中title 字段之后的内容copy 到当前系统的/boot/grub/grub.conf 文件末尾,保存重起;

5.ok,一个多linux 系统的启动菜单便展现在你的屏幕上。

第二种:

第一种方法最多只能安装3个linux ,要想装的更多,你可以:

1.建一个主分区作swap 用, 剩下的空间建为扩展分区, 在扩展分区上建n 个linux 分区用来安装系统, 分区工具为PartitionMagic (分区魔法师)v8.0;

2.依次安装第一个、第二个等linux,且每个linux选扩展分区中的一个分区作为其“/”目录(根目录);将grub都设为默认(安装在MBR)即可;当然,这时只有最后安装的linux 是可以启动的;

3.启动系统(最后安装的那个linux),将其他linux 系统所在的分区挂载(mount)好,将这些挂载分区的/boot/grub/grub.conf 打开,分别将文件中title 字段之后的内容copy 到当前系统的/boot/grub/grub.conf 文件末尾,保存重起;

4.ok,一个多linux 系统的启动菜单便展现在你的屏幕上。
+grub的说明与配置方法 menu.lst grub.conf
-http://hi.baidu.com/joe266/blog/item/9fe0a1ed19e91d4878f055d4.html
-
menu.lst位于/boot/grub/menu.lst,munu.lst相当于是/boot/grub/grub.conf在windows下 的快捷方式
(重装系统有时破坏GRUB后,menu.lst丢失而无法启动GRUB菜单时就需要在/boot/grub下建立menu.lst后再和 grub.conf建立链接来修复,建立链接是:ln -s menu.lst grub.conf (注意两文件的前后关系)),我们来学习如何编写GRUB的配置文件menu.lst.

首先来看一下/boot/grub/menu.lst中的内容:
==========================================================
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You do not have a /boot partition. This means that
# all kernel and initrd paths are relative to /, eg.
# root (hd0,0)
# kernel /boot/vmlinuz-version ro root=/dev/hda1
# initrd /boot/initrd-version.img
#boot=/dev/hda
default=0
timeout=5
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
hiddenmenu
title Fedora Core (2.6.18-1.2798.fc6)
root (hd0,0)
kernel /boot/vmlinuz-2.6.18-1.2798.fc6 ro root=LABEL=/ rhgb quiet selinux=0
initrd /boot/initrd-2.6.18-1.2798.fc6.img

title Windows XP
rootnoverify (hd0,3)
chainloader +1
===========================================================

其中:
1,default=0
表示默认启动的第0号的操作系统,在GRUB中,title定义了启动的操作系统,从第1个开始,GRUB中是0,而第2个是1,依次类推...
2,timeout=5
表示的是出现GRUB界面后,无操作情况下进入default设定的操作系统的时间,如果上下移动选择,则该选项无效
3,splashimage=(hd0,6)/boot/grub/splah.xpm.gz
表示的是允许出现的GRUB背景的path,显然(hd0,6)指定了分区(不知能否这么解释,呵呵),而后边的则是正常的path(在例子中,用#把它注释,为一可选项)
4,hiddenmenu
表示隐藏GRUB的启动菜单,直接进入由default庙宇的操作系统中去,为一可选项.

linux类
其格式一般为:
title (......)
root (hd[0-n],x)
kernel (......)
initrd (......)
其中:
title行,是定义一个启动操作系统,而后边可以自己随便写上喜欢的名字,呵,当然最起码你得写得要自己能认出来,没必要把linux写成windows吧?!

root行,指定相应的linux所有的/boot,如果在写分区和挂载时没有单独挂载,那么就和/在同一个分区中,hd[0-n]表示的是第几个硬盘,而x则表示的是[第几个分区-1],即x比分区号小1,特别要注意.

kernel行,在这里以kernel 起始,指定Linux的内核的文件所处的绝对路径(通过在终端输入命令:ls /boot/vmlinuz*来看内核的全名);因为内核是处在/boot目录中的,而如果/boot是独立的一个分区,则需要把boot省略,因为 /boot所在的分区在root (hd[0-n],x)中指定了,所以就无需要再指明内核处在哪个分区了;ro 表示只读;root=LABEL=/ 来表示Linux的根所处的分区。LABEL=/ 这是硬盘分区格式化为相应文件系统后所加的标签;如果您不了解什么是标签,也可以直接以/dev/hd[a-z]X 或者/dev/sd[a-z]X来表示;就看您的Linux是根分区是在哪个分区了。比如我的是在/dev/hda3, 那这里就可以写成root=/dev/hda3;

initrd行,如果是/boot独立一个分区,initrd 一行要把/boot中省略;如果/boot不是处于一个分区,而是和Linux的/分区处于同一分区,不应该省略;我们通过查看/boot中的 initrd的文件名到底是什么来写这一行代码,在终端输入:ls /boot/initrd*
很容易能得到initrd文件名,然后写入.

在了解了以上情况之后,我们就很容易地理解另一种写法了:
title (......)
kernel (hd[0-n],y)(/boot)...... ro root=......
initrd (hd[0-n],y)(/boot)......
其实只是省略的root很实在地写在了kernel和initrd行中去了而已

附:
其 实在GRUB启动菜单不能工作的时候,进入GRUB命令行(可按CTRL+C键)后,我们同样可以一步一步地把系统启动起来,其实在menu.lst中, 除title不是指令外,其余的都是GRUB指令,我们只要一步步地输入它们(错了要从新开始),中间输入关于kernel和 initrd要利用
TAB键补齐写好,最后只要boot一下就行了.

用GRUB指令引导windows:
GRUB> rootnoverify (hd0,0)
GRUB> chainloader +1
GRUB> boot
+配置samba服务器
-只有把配置文件和共享目录的权限结合起来,才能架好Samba服务器;
-cat 加参数-n 和nl工具差不多,文件内容输出的同时,都会在每行前面加上行号;
[root@localhost ~]# cat -n /etc/profile
[root@localhost ~]# nl /etc/profile
-新建文件:cat >linux.txt< >输入
>EOF //结束
追加内容:cat >>linux.txt< +通过cat 把sir01.txt、sir02.txt及sir03.txt 三个文件连接在一起(也就是说把这三个文件的内容都接在一起)并输出到一个新的文件sir04.txt 中。
-cat sir01.txt sir02.txt sir03.txt > sir04.txt
->是新建,>>是附加
-
+Linux 文件内容查看工具介绍
-http://www.linuxsir.org/main/?q=node/198#1
-1、cat 显示文件连接文件内容的工具;

cat 是一个文本文件查看和连接工具。查看一个文件的内容,用cat比较简单,就是cat 后面直接接文件名。

比如:
[root@localhost ~]# cat /etc/fstab
为了便于新手弟兄灵活掌握这个工具,我们多说一点常用的参数;


1.0 cat 语法结构;

cat [选项] [文件]...

选项
-A, --show-all 等价于 -vET
-b, --number-nonblank 对非空输出行编号
-e 等价于 -vE
-E, --show-ends 在每行结束处显示 $
-n, --number 对输出的所有行编号
-s, --squeeze-blank 不输出多行空行
-t 与 -vT 等价
-T, --show-tabs 将跳格字符显示为 ^I
-u (被忽略)
-v, --show-nonprinting 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
--help 显示此帮助信息并离开

1.1 cat 查看文件内容实例;

[root@localhost ~]# cat /etc/profile 注:查看/etc/目录下的profile文件内容;
[root@localhost ~]# cat -b /etc/fstab 注:查看/etc/目录下的profile内容,并且对非空白行进行编号,行号从1开始;
[root@localhost ~]# cat -n /etc/profile 注:对/etc目录中的profile的所有的行(包括空白行)进行编号输出显示;
[root@localhost ~]# cat -E /etc/profile 注:查看/etc/下的profile内容,并且在每行的结尾处附加$符号;
cat 加参数-n 和nl工具差不多,文件内容输出的同时,都会在每行前面加上行号;

[root@localhost ~]# cat -n /etc/profile
[root@localhost ~]# nl /etc/profile
cat 可以同时显示多个文件的内容,比如我们可以在一个cat命令上同时显示两个文件的内容;

[root@localhost ~]# cat /etc/fstab /etc/profile
cat 对于内容极大的文件来说,可以通过管道|传送到more 工具,然后一页一页的查看;

[root@localhost ~]# cat /etc/fstab /etc/profile | more

1.2 cat 的创建、连接文件功能实例;


cat 有创建文件的功能,创建文件后,要以EOF或STOP结束;

[root@localhost ~]# cat > linuxsir.org.txt << EOF 注:创建linuxsir.org.txt文件;
> 我来测试 cat 创建文件,并且为文件输入内容; 注:这是为linuxsir.org.txt文件输入内容;
> 北南南北 测试; 注:这是为linuxsir.org.txt文件输入内容;
> EOF 注:退出编辑状态;

[root@localhost ~]# cat linuxsir.org.txt 注:我们查看一下linuxsir.org.txt文件的内容;

我来测试 cat 创建文件,并且为文件输入内容;
北南南北 测试;
cat 还有向已存在的文件追加内容的功能;

[root@localhost ~]# cat linuxsir.txt 注:查看已存在的文件linuxsir.txt 内容;
I am BeiNanNanBei From LinuxSir.Org . 注:内容行
我正在为cat命令写文档


[root@localhost ~]# cat >> linuxsir.txt << EOF 注:我们向linuxsir.txt文件追加内容;
> 我来测试cat向文档追加内容的功能; 注:这是追回的内容
> OK?
> OK~
> 北南 呈上
> EOF 注:以EOF退出;


[root@localhost ~]# cat linuxsir.txt 注:查看文件内容,看是否追回成功。
I am BeiNanNanBei From LinuxSir.Org .
我正在为cat命令写文档

我来测试cat向文档追加内容的功能;
OK?
OK~
北南 呈上



cat 连接多个文件的内容并且输出到一个新文件中;
假设我们有sir01.txt、sir02.tx和sir03.txt ,并且内容如下;

[root@localhost ~]# cat sir01.txt
123456
i am testing

[root@localhost ~]# cat sir02.txt
56789
BeiNan Tested

[root@localhost ~]# cat sir03.txt
09876
linuxsir.org testing
我想通过cat 把sir01.txt、sir02.txt及sir03.txt 三个文件连接在一起(也就是说把这三个文件的内容都接在一起)并输出到一个新的文件sir04.txt 中。

注意:其原理是把三个文件的内容连接起来,然后创建sir04.txt文件,并且把几个文件的内容同时写入sir04.txt中。特别值得一提的是,如果您输入到一个已经存在的sir04.txt 文件,会把sir04.txt内容清空。

[root@localhost ~]# cat sir01.txt sir02.txt sir03.txt > sir04.txt

[root@localhost ~]# more sir04.txt
123456
i am testing
56789
BeiNan Tested
09876
linuxsir.org testing
cat 把一个或多个已存在的文件内容,追加到一个已存在的文件中

[root@localhost ~]# cat sir00.txt
linuxsir.org forever

[root@localhost ~]# cat sir01.txt sir02.txt sir03.txt >> sir00.txt

[root@localhost ~]# cat sir00.txt
linuxsir.org forever
123456
i am testing
56789
BeiNan Tested
09876
linuxsir.org testing
警告:我们要知道>意思是创建,>>是追加。千万不要弄混了。造成失误可不是闹着玩的;


2、more 文件内容或输出查看工具;


more 是我们最常用的工具之一,最常用的就是显示输出的内容,然后根据窗口的大小进行分页显示,然后还能提示文件的百分比;

[root@localhost ~]# more /etc/profile

2.1 more 的语法、参数和命令;

more [参数选项] [文件]
参数如下:
+num 从第num行开始显示;
-num 定义屏幕大小,为num行;
+/pattern 从pattern 前两行开始显示;
-c 从顶部清屏然后显示;
-d 提示Press space to continue, 'q' to quit.(按空格键继续,按q键退出),禁用响铃功能;
-l 忽略Ctrl+l (换页)字符;
-p 通过清除窗口而不是滚屏来对文件进行换页。和-c参数有点相似;
-s 把连续的多个空行显示为一行;
-u 把文件内容中的下划线去掉
退出more的动作指令是q


2.2 more 的参数应用举例;

[root@localhost ~]# more -dc /etc/profile 注:显示提示,并从终端或控制台顶部显示;
[root@localhost ~]# more +4 /etc/profile 注:从profile的第4行开始显示;
[root@localhost ~]# more -4 /etc/profile 注:每屏显示4行;
[root@localhost ~]# more +/MAIL /etc/profile 注:从profile中的第一个MAIL单词的前两行开始显示;

2.3 more 的动作指令;

我们查看一个内容较大的文件时,要用到more的动作指令,比如ctrl+f(或空格键) 是向下显示一屏,ctrl+b是返回上一屏; Enter键可以向下滚动显示n行,要通过定,默认为1行;

我们只说几个常用的; 自己尝试一下就知道了;

Enter 向下n行,需要定义,默认为1行;
Ctrl+f 向下滚动一屏;
空格键 向下滚动一屏;
Ctrl+b 返回上一屏;
= 输出当前行的行号;
:f 输出文件名和当前行的行号;
v 调用vi编辑器;
! 命令 调用Shell,并执行命令;
q 退出more
当我们查看某一文件时,想调用vi来编辑它,不要忘记了v动作指令,这是比较方便的;


2.4 其它命令通过管道和more结合的运用例子;

比如我们列一个目录下的文件,由于内容太多,我们应该学会用more来分页显示。这得和管道 | 结合起来,比如:

[root@localhost ~]# ls -l /etc |more

3、less 查看文件内容 工具;

less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大;您是初学者,我建议您用less。由于less的内容太多,我们把最常用的介绍一下;


3.1 less的语法格式;

less [参数] 文件
常用参数
-c 从顶部(从上到下)刷新屏幕,并显示文件内容。而不是通过底部滚动完成刷新;
-f 强制打开文件,二进制文件显示时,不提示警告;
-i 搜索时忽略大小写;除非搜索串中包含大写字母;
-I 搜索时忽略大小写,除非搜索串中包含小写字母;
-m 显示读取文件的百分比;
-M 显法读取文件的百分比、行号及总行数;
-N 在每行前输出行号;
-p pattern 搜索pattern;比如在/etc/profile搜索单词MAIL,就用 less -p MAIL /etc/profile
-s 把连续多个空白行作为一个空白行显示;
-Q 在终端下不响铃;
比如:我们在显示/etc/profile的内容时,让其显示行号;

[root@localhost ~]# less -N /etc/profile

3.2 less的动作命令;

进入less后,我们得学几个动作,这样更方便 我们查阅文件内容;最应该记住的命令就是q,这个能让less终止查看文件退出;

动作
回车键 向下移动一行;
y 向上移动一行;
空格键 向下滚动一屏;
b 向上滚动一屏;
d 向下滚动半屏;
h less的帮助;
u 向上洋动半屏;
w 可以指定显示哪行开始显示,是从指定数字的下一行显示;比如指定的是6,那就从第7行显示;
g 跳到第一行;
G 跳到最后一行;
p n% 跳到n%,比如 10%,也就是说比整个文件内容的10%处开始显示;
/pattern 搜索pattern ,比如 /MAIL表示在文件中搜索MAIL单词;
v 调用vi编辑器;
q 退出less
!command 调用SHELL,可以运行命令;比如!ls 显示当前列当前目录下的所有文件;
就less的动作来说,内容太多了,用的时候查一查man less是最好的。在这里就不举例子了;


4、head 工具,显示文件内容的前几行;

head 是显示一个文件的内容的前多少行;

用法比较简单;

head -n 行数值 文件名;
比如我们显示/etc/profile的前10行内容,应该是:

[root@localhost ~]# head -n 10 /etc/profile

5、tail 工具,显示文件内容的最后几行;

tail 是显示一个文件的内容的前多少行;

用法比较简单;

tail -n 行数值 文件名;
比如我们显示/etc/profile的最后5行内容,应该是:

[root@localhost ~]# tail -n 5 /etc/profile
+Linux 文件和目录的属性
-http://www.linuxsir.org/main/?q=node/196
-Linux 文件或目录的属性主要包括:文件或目录的节点、种类、权限模式、链接数量、所归属的用户和用户组、最近访问或修改的时间等内容;
-
+Linux下find命令详解
-http://www.phpq.net/linux/linux-find.html
-http://www.linuxsir.org/main/node/137
-Linux下find命令详解
Linux下find命令在目录结构中搜索文件,并执行指定的操作。Linux下find命令提供了相当多的查找条件,功能很强大。

Linux中find常见用法示例·
find path -option [ -print ] [ -exec -ok command ] {} \;
#-print 将查找到的文件输出到标准输出
#-exec command {} \; -----将查到的文件执行command操作,{} 和 \;之间有空格
#-ok 和-exec相同,只不过在操作前要询用户
-name filename #查找名为filename的文件
-perm #按执行权限来查找
-user username #按文件属主来查找
-group groupname #按组来查找
-mtime -n +n #按文件更改时间来查找文件,-n指n天以内,+n指n天以前
-atime -n +n #按文件访问时间来查GIN: 0px">-perm #按执行权限来查找
-user username #按文件属主来查找
-group groupname #按组来查找
-mtime -n +n #按文件更改时间来查找文件,-n指n天以内,+n指n天以前
-atime -n +n #按文件访问时间来查找文件,-n指n天以内,+n指n天以前
-ctime -n +n #按文件创建时间来查找文件,-n指n天以内,+n指n天以前
-nogroup #查无有效属组的文件,即文件的属组在/etc/groups中不存在
-nouser #查无有效属主的文件,即文件的属主在/etc/passwd中不存
-newer f1 !f2 找文件,-n指n天以内,+n指n天以前
-ctime -n +n #按文件创建时间来查找文件,-n指n天以内,+n指n天以前
-nogroup #查无有效属组的文件,即文件的属组在/etc/groups中不存在
-nouser #查无有效属主的文件,即文件的属主在/etc/passwd中不存
-newer f1 !f2 #查更改时间比f1新但比f2旧的文件
-type b/d/c/p/l/f #查是块设备、目录、字符设备、管道、符号链接、普通文件
-size n[c] #查长度为n块[或n字节]的文件
-depth #使查找在进入子目录前先行查找完本目录
-fstype #查更改时间比f1新但比f2旧的文件
-mount #查文件时不跨越文件系统mount点
-follow #如果遇到符号链接文件,就跟踪链接所指的文件
-cpio #对匹配的文件使用cpio命令,将他们备份到磁带设备中
-prune #忽略某个目录
更多信息可以查看:《Linux下find命令详解》http://www.phpq.net/linux/linux-find.html、《Linux下find命令实例》http://www.phpq.net/linux/linux-find-demo.html。

1)在/tmp中查找所有的*.h,并在这些文件中查找“SYSCALL_VECTOR",最后打印出所有包含"SYSCALL_VECTOR"的文件名
A) find /tmp -name "*.h" | xargs -n50 grep SYSCALL_VECTOR
B) grep SYSCALL_VECTOR /tmp/*.h | cut -d':' -f1| uniq > filename
C) find /tmp -name "*.h" -exec grep "SYSCALL_VECTOR" {} \; -print

2)find / -name filename -exec rm -rf {} \;
find / -name filename -ok rm -rf {} \;

3)比如要查找磁盘中大于3M的文件:
find . -size +3000k -exec ls -ld {} ;

4)将find出来的东西拷到另一个地方
find *.c -exec cp '{}' /tmp ';'
如果有特殊文件,可以用cpio,也可以用这样的语法:
find dir -name filename -print | cpio -pdv newdir

6)查找2004-11-30 16:36:37时更改过的文件
# A=`find ./ -name "*php"` | ls -l --full-time $A 2>/dev/null | grep "2004-11-30 16:36:37
二、linux下find命令的用法1. 基本用法:
find / -name 文件名
find ver1.d ver2.d -name '*.c' -print 查找ver1.d,ver2.d *.c文件并打印
find . -type d -print 从当前目录查找,仅查找目录,找到后,打印路径名。可用于打印目录结构。
2. 无错误查找:
find / -name access_log 2 >/dev/null
3. 按尺寸查找:
find / -size 1500c (查找1,500字节大小的文件,c表示字节)
find / -size +1500c (查找大于1,500字节大小的文件,+表示大于)
find / -size +1500c (查找小于1,500字节大小的文件,-表示小于)
4. 按时间:
find / -amin n 最后n分钟
find / -atime n 最后n天
find / -cmin n 最后n分钟改变状态
find / -ctime n 最后n天改变状态
5. 其它:
find / -empty 空白文件、空白文件夹、没有子目录的文件夹
find / -false 查找系统中总是错误的文件
find / -fstype type 找存在于指定文件系统的文件,如type为ext2
find / -gid n 组id为n的文件
find / -group gname 组名为gname的文件
find / -depth n 在某层指定目录中优先查找文件内容
find / -maxdepth levels 在某个层次目录中按递减方式查找
6. 逻辑
-and 条件与 -or 条件或
7. 查找字符串
find . -name '*.html' -exec grep 'mailto:'{}
-前言:关于find命令

由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权限。

在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统)。


一、find 命令格式


1、find命令的一般形式为;

find pathname -options [-print -exec -ok ...]

2、find命令的参数;

pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。
-print: find命令将匹配的文件输出到标准输出。
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } \;,注意{ }和\;之间的空格。
-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。

3、find命令选项

-name

按照文件名查找文件。

-perm
按照文件权限来查找文件。

-prune
使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被find命令忽略。

-user
按照文件属主来查找文件。

-group
按照文件所属的组来查找文件。

-mtime -n +n
按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前。find命令还有-atime和-ctime 选项,但它们都和-m time选项。

-nogroup
查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在。

-nouser
查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在。
-newer file1 ! file2

查找更改时间比文件file1新但比文件file2旧的文件。
-type

查找某一类型的文件,诸如:

b - 块设备文件。
d - 目录。
c - 字符设备文件。
p - 管道文件。
l - 符号链接文件。
f - 普通文件。

-size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。
-depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。
-fstype:查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab中找到,该配置文件中包含了本系统中有关文件系统的信息。

-mount:在查找文件时不跨越文件系统mount点。
-follow:如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。
-cpio:对匹配的文件使用cpio命令,将这些文件备份到磁带设备中。
另外,下面三个的区别:
-amin n
  查找系统中最后N分钟访问的文件

  -atime n
  查找系统中最后n*24小时访问的文件

  -cmin n
  查找系统中最后N分钟被改变文件状态的文件

  -ctime n
  查找系统中最后n*24小时被改变文件状态的文件

 -mmin n
  查找系统中最后N分钟被改变文件数据的文件

  -mtime n
  查找系统中最后n*24小时被改变文件数据的文件

4、使用exec或ok来执行shell命令

使用find时,只要把想要的操作写在一个文件里,就可以用exec来配合find查找,很方便的

在有些操作系统中只允许-exec选项执行诸如l s或ls -l这样的命令。大多数用户使用这一选项是为了查找旧文件并删除它们。建议在真正执行rm命令删除文件之前,最好先用ls命令看一下,确认它们是所要删除的文件。

exec选项后面跟随着所要执行的命令或脚本,然后是一对儿{ },一个空格和一个\,最后是一个分号。为了使用exec选项,必须要同时使用print选项。如果验证一下find命令,会发现该命令只输出从当前路径起的相对路径及文件名。

例如:为了用ls -l命令列出所匹配到的文件,可以把ls -l命令放在find命令的-exec选项中

# find . -type f -exec ls -l { } \;
-rw-r--r-- 1 root root 34928 2003-02-25 ./conf/httpd.conf
-rw-r--r-- 1 root root 12959 2003-02-25 ./conf/magic
-rw-r--r-- 1 root root 180 2003-02-25 ./conf.d/README
上面的例子中,find命令匹配到了当前目录下的所有普通文件,并在-exec选项中使用ls -l命令将它们列出。
在/logs目录中查找更改时间在5日以前的文件并删除它们:

$ find logs -type f -mtime +5 -exec rm { } \;
记住:在shell中用任何方式删除文件之前,应当先查看相应的文件,一定要小心!当使用诸如mv或rm命令时,可以使用-exec选项的安全模式。它将在对每个匹配到的文件进行操作之前提示你。

在下面的例子中, find命令在当前目录中查找所有文件名以.LOG结尾、更改时间在5日以上的文件,并删除它们,只不过在删除之前先给出提示。

$ find . -name "*.conf" -mtime +5 -ok rm { } \;
< rm ... ./conf/httpd.conf > ? n
按y键删除文件,按n键不删除。

任何形式的命令都可以在-exec选项中使用。

在下面的例子中我们使用grep命令。find命令首先匹配所有文件名为“ passwd*”的文件,例如passwd、passwd.old、passwd.bak,然后执行grep命令看看在这些文件中是否存在一个sam用户。

# find /etc -name "passwd*" -exec grep "sam" { } \;
sam:x:501:501::/usr/sam:/bin/bash

二、find命令的例子;


1、查找当前用户主目录下的所有文件:

下面两种方法都可以使用

$ find $HOME -print
$ find ~ -print


2、让当前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件;
$ find . -type f -perm 644 -exec ls -l { } \;

3、为了查找系统中所有文件长度为0的普通文件,并列出它们的完整路径;

$ find / -type f -size 0 -exec ls -l { } \;

4、查找/var/logs目录中更改时间在7日以前的普通文件,并在删除之前询问它们;

$ find /var/logs -type f -mtime +7 -ok rm { } \;

5、为了查找系统中所有属于root组的文件;

$find . -group root -exec ls -l { } \;
-rw-r--r-- 1 root root 595 10月 31 01:09 ./fie1

6、find命令将删除当目录中访问时间在7日以来、含有数字后缀的admin.log文件。

该命令只检查三位数字,所以相应文件的后缀不要超过999。先建几个admin.log*的文件 ,才能使用下面这个命令

$ find . -name "admin.log[0-9][0-9][0-9]" -atime -7 -ok
rm { } \;
< rm ... ./admin.log001 > ? n
< rm ... ./admin.log002 > ? n
< rm ... ./admin.log042 > ? n
< rm ... ./admin.log942 > ? n

7、为了查找当前文件系统中的所有目录并排序;

$ find . -type d | sort

8、为了查找系统中所有的rmt磁带设备;

$ find /dev/rmt -print

三、xargs

xargs - build and execute command lines from standard input

在使用find命令的-exec选项处理匹配到的文件时, find命令将所有匹配到的文件一起传递给exec执行。但有些系统对能够传递给exec的命令长度有限制,这样在find命令运行几分钟之后,就会出现溢出错误。错误信息通常是“参数列太长”或“参数列溢出”。这就是xargs命令的用处所在,特别是与find命令一起使用。

find命令把匹配到的文件传递给xargs命令,而xargs命令每次只获取一部分文件而不是全部,不像-exec选项那样。这样它可以先处理最先获取的一部分文件,然后是下一批,并如此继续下去。

在有些系统中,使用-exec选项会为处理每一个匹配到的文件而发起一个相应的进程,并非将匹配到的文件全部作为参数一次执行;这样在有些情况下就会出现进程过多,系统性能下降的问题,因而效率不高;

而使用xargs命令则只有一个进程。另外,在使用xargs命令时,究竟是一次获取所有的参数,还是分批取得参数,以及每一次获取参数的数目都会根据该命令的选项及系统内核中相应的可调参数来确定。

来看看xargs命令是如何同find命令一起使用的,并给出一些例子。

下面的例子查找系统中的每一个普通文件,然后使用xargs命令来测试它们分别属于哪类文件

#find . -type f -print | xargs file
./.kde/Autostart/Autorun.desktop: UTF-8 Unicode English text
./.kde/Autostart/.directory: ISO-8859 text\
......
在整个系统中查找内存信息转储文件(core dump) ,然后把结果保存到/tmp/core.log 文件中:

$ find / -name "core" -print | xargs echo "" >/tmp/core.log
上面这个执行太慢,我改成在当前目录下查找

#find . -name "file*" -print | xargs echo "" > /temp/core.log
# cat /temp/core.log
./file6
在当前目录下查找所有用户具有读、写和执行权限的文件,并收回相应的写权限:

# ls -l
drwxrwxrwx 2 sam adm 4096 10月 30 20:14 file6
-rwxrwxrwx 2 sam adm 0 10月 31 01:01 http3.conf
-rwxrwxrwx 2 sam adm 0 10月 31 01:01 httpd.conf

# find . -perm -7 -print | xargs chmod o-w
# ls -l
drwxrwxr-x 2 sam adm 4096 10月 30 20:14 file6
-rwxrwxr-x 2 sam adm 0 10月 31 01:01 http3.conf
-rwxrwxr-x 2 sam adm 0 10月 31 01:01 httpd.conf
用grep命令在所有的普通文件中搜索hostname这个词:

# find . -type f -print | xargs grep "hostname"
./httpd1.conf:# different IP addresses or hostnames and have them handled by the
./httpd1.conf:# VirtualHost: If you want to maintain multiple domains/hostnames
on your
用grep命令在当前目录下的所有普通文件中搜索hostnames这个词:

# find . -name \* -type f -print | xargs grep "hostnames"
./httpd1.conf:# different IP addresses or hostnames and have them handled by the
./httpd1.conf:# VirtualHost: If you want to maintain multiple domains/hostnames
on your
注意,在上面的例子中, \用来取消find命令中的*在shell中的特殊含义。

find命令配合使用exec和xargs可以使用户对所匹配到的文件执行几乎所有的命令。


四、find 命令的参数

下面是find一些常用参数的例子,有用到的时候查查就行了,像上面前几个贴子,都用到了其中的的一些参数,也可以用man或查看论坛里其它贴子有find的命令手册


1、使用name选项

文件名选项是find命令最常用的选项,要么单独使用该选项,要么和其他选项一起使用。

可以使用某种文件名模式来匹配文件,记住要用引号将文件名模式引起来。

不管当前路径是什么,如果想要在自己的根目录$HOME中查找文件名符合*.txt的文件,使用~作为 'pathname'参数,波浪号~代表了你的$HOME目录。

$ find ~ -name "*.txt" -print
想要在当前目录及子目录中查找所有的‘ *.txt’文件,可以用:

$ find . -name "*.txt" -print
想要的当前目录及子目录中查找文件名以一个大写字母开头的文件,可以用:

$ find . -name "[A-Z]*" -print
想要在/etc目录中查找文件名以host开头的文件,可以用:

$ find /etc -name "host*" -print
想要查找$HOME目录中的文件,可以用:

$ find ~ -name "*" -print 或find . -print
要想让系统高负荷运行,就从根目录开始查找所有的文件。

$ find / -name "*" -print
如果想在当前目录查找文件名以两个小写字母开头,跟着是两个数字,最后是.txt的文件,下面的命令就能够返回名为ax37.txt的文件:

$find . -name "[a-z][a-z][0--9][0--9].txt" -print

2、用perm选项

按照文件权限模式用-perm选项,按文件权限模式来查找文件的话。最好使用八进制的权限表示法。

如在当前目录下查找文件权限位为755的文件,即文件属主可以读、写、执行,其他用户可以读、执行的文件,可以用:

$ find . -perm 755 -print
还有一种表达方法:在八进制数字前面要加一个横杠-,表示都匹配,如-007就相当于777,-006相当于666

# ls -l
-rwxrwxr-x 2 sam adm 0 10月 31 01:01 http3.conf
-rw-rw-rw- 1 sam adm 34890 10月 31 00:57 httpd1.conf
-rwxrwxr-x 2 sam adm 0 10月 31 01:01 httpd.conf
drw-rw-rw- 2 gem group 4096 10月 26 19:48 sam
-rw-rw-rw- 1 root root 2792 10月 31 20:19 temp

# find . -perm 006
# find . -perm -006
./sam
./httpd1.conf
./temp
-perm mode:文件许可正好符合mode

-perm +mode:文件许可部分符合mode

-perm -mode: 文件许可完全符合mode


3、忽略某个目录

如果在查找文件时希望忽略某个目录,因为你知道那个目录中没有你所要查找的文件,那么可以使用-prune选项来指出需要忽略的目录。在使用-prune选项时要当心,因为如果你同时使用了-depth选项,那么-prune选项就会被find命令忽略。

如果希望在/apps目录下查找文件,但不希望在/apps/bin目录下查找,可以用:

$ find /apps -path "/apps/bin" -prune -o -print

4、使用find查找文件的时候怎么避开某个文件目录

比如要在/usr/sam目录下查找不在dir1子目录之内的所有文件

find /usr/sam -path "/usr/sam/dir1" -prune -o -print
find [-path ..] [expression] 在路径列表的后面的是表达式
-path "/usr/sam" -prune -o -print 是 -path "/usr/sam" -a -prune -o
-print 的简写表达式按顺序求值, -a 和 -o 都是短路求值,与 shell 的 && 和 || 类似如果 -path "/usr/sam" 为真,则求值 -prune , -prune 返回真,与逻辑表达式为真;否则不求值 -prune,与逻辑表达式为假。如果 -path "/usr/sam" -a -prune 为假,则求值 -print ,-print返回真,或逻辑表达式为真;否则不求值 -print,或逻辑表达式为真。

这个表达式组合特例可以用伪码写为

if -path "/usr/sam" then
-prune
else
-print
避开多个文件夹

find /usr/sam \( -path /usr/sam/dir1 -o -path /usr/sam/file1 \) -prune -o -print
圆括号表示表达式的结合。
\ 表示引用,即指示 shell 不对后面的字符作特殊解释,而留给 find 命令去解释其意义。
查找某一确定文件,-name等选项加在-o 之后

#find /usr/sam \(-path /usr/sam/dir1 -o -path /usr/sam/file1 \) -prune -o -name "temp" -print

5、使用user和nouser选项

按文件属主查找文件,如在$HOME目录中查找文件属主为sam的文件,可以用:

$ find ~ -user sam -print
在/etc目录下查找文件属主为uucp的文件:

$ find /etc -user uucp -print
为了查找属主帐户已经被删除的文件,可以使用-nouser选项。这样就能够找到那些属主在/etc/passwd文件中没有有效帐户的文件。在使用-nouser选项时,不必给出用户名; find命令能够为你完成相应的工作。

例如,希望在/home目录下查找所有的这类文件,可以用:
$ find /home -nouser -print

6、使用group和nogroup选项

就像user和nouser选项一样,针对文件所属于的用户组, find命令也具有同样的选项,为了在/apps目录下查找属于gem用户组的文件,可以用:

$ find /apps -group gem -print
要查找没有有效所属用户组的所有文件,可以使用nogroup选项。下面的find命令从文件系统的根目录处查找这样的文件

$ find / -nogroup-print

7、按照更改时间或访问时间等查找文件

如果希望按照更改时间来查找文件,可以使用mtime,atime或ctime选项。如果系统突然没有可用空间了,很有可能某一个文件的长度在此期间增长迅速,这时就可以用mtime选项来查找这样的文件。

用减号-来限定更改时间在距今n日以内的文件,而用加号+来限定更改时间在距今n日以前的文件。

希望在系统根目录下查找更改时间在5日以内的文件,可以用:

$ find / -mtime -5 -print
为了在/var/adm目录下查找更改时间在3日以前的文件,可以用:

$ find /var/adm -mtime +3 -print

8、查找比某个文件新或旧的文件

如果希望查找更改时间比某个文件新但比另一个文件旧的所有文件,可以使用-newer选项。它的一般形式为:

newest_file_name ! oldest_file_name
其中,!是逻辑非符号。

查找更改时间比文件sam新但比文件temp旧的文件:

例:有两个文件

-rw-r--r-- 1 sam adm 0 10月 31 01:07 fiel
-rw-rw-rw- 1 sam adm 34890 10月 31 00:57 httpd1.conf
-rwxrwxr-x 2 sam adm 0 10月 31 01:01 httpd.conf
drw-rw-rw- 2 gem group 4096 10月 26 19:48 sam
-rw-rw-rw- 1 root root 2792 10月 31 20:19 temp

# find -newer httpd1.conf ! -newer temp -ls
1077669 0 -rwxrwxr-x 2 sam adm 0 10月 31 01:01 ./httpd.conf
1077671 4 -rw-rw-rw- 1 root root 2792 10月 31 20:19 ./temp
1077673 0 -rw-r--r-- 1 sam adm 0 10月 31 01:07 ./fiel
查找更改时间在比temp文件新的文件:

$ find . -newer temp -print


9、使用type选项
在/etc目录下查找所有的目录,可以用:

$ find /etc -type d -print
在当前目录下查找除目录以外的所有类型的文件,可以用:
$ find . ! -type d -print
在/etc目录下查找所有的符号链接文件,可以用
$ find /etc -type l -print

10、使用size选项

可以按照文件长度来查找文件,这里所指的文件长度既可以用块(block)来计量,也可以用字节来计量。以字节计量文件长度的表达形式为N c;以块计量文件长度只用数字表示即可。

在按照文件长度查找文件时,一般使用这种以字节表示的文件长度,在查看文件系统的大小,因为这时使用块来计量更容易转换。
在当前目录下查找文件长度大于1 M字节的文件:
$ find . -size +1000000c -print
在/home/apache目录下查找文件长度恰好为100字节的文件:

$ find /home/apache -size 100c -print
在当前目录下查找长度超过10块的文件(一块等于512字节):

$ find . -size +10 -print

11、使用depth选项

在使用find命令时,可能希望先匹配所有的文件,再在子目录中查找。使用depth选项就可以使find命令这样做。这样做的一个原因就是,当在使用find命令向磁带上备份文件系统时,希望首先备份所有的文件,其次再备份子目录中的文件。

在下面的例子中, find命令从文件系统的根目录开始,查找一个名为CON.FILE的文件。

它将首先匹配所有的文件然后再进入子目录中查找。

$ find / -name "CON.FILE" -depth -print

12、使用mount选项

在当前的文件系统中查找文件(不进入其他文件系统),可以使用find命令的mount选项。

从当前目录开始查找位于本文件系统中文件名以XC结尾的文件:

$ find . -name "*.XC" -mount -print


五、关于本文

本文是find 命令的详细说明,可贵的是针对参数举了很多的实例,大量的例证,让初学者更为容易理解;本文是zhy2111314兄贴在论坛中;我对本文进行了再次整理,为方便大家阅读; ── 北南南北
+VI批量替换文本,多行删除,复制,移动
-http://fanzf24.blog.163.com/blog/static/33127648201032194411161/
-:n1,n2 m n3 移动n1-n2行(包括n1,n2)到n3行之下;

:n1,n2 co n3 复制n1-n2行(包括n1,n2)到n3行之下;

:n1,n2 d 删除n1-n2行(包括n1,n2)行;

vi替换使用规则:
:g/s1/s/s2/s3/g
第一个g表示对每一个包括s1的行都进行替换,第二个g表示对每一行包括s1的行所有的s2都用s3替换
s表示替换,s2是要被替换的字符串,他可以和s1相同(如果相同的话用//代替),s3是替换字符串
在vi界面下使用命令 :%s#/usr/bin#/bin#g 可以把文件中所有路径/usr/bin换成/bin。其中“#”是转义字符,表明其后的“/”字符是具有实际意义的字符,不是分隔符。

s/str1/str2/ 用字符串 str2 替换行中首次出现的字符串 str1
:s/str1/str2/g 用字符串 str2 替换行中所有出现的字符串 str1
:s/str1/str2/gi 用字符串 str2 替换行中所有出现的字符串 str1,在查找时不区分大小写


: .,$ s/str1/str2/g 用字符串 str2 替换正文当前行到末尾所有出现的字符串 str1
:1,$ s/str1/str2/g 用字符串 str2 替换正文中所有出现的字符串 str1
:g/str1/s//str2/g 功能同上
:%s/str1/str2/g 功能同上
:g/foobar/s/bar/baz/g 首先搜寻foobar,然后把它变成foobaz. 它没有改变 jailbars, 而其他的一些命令可能会改变jailbars.
:%s/str1/str2/gc 替换全文所有符合的单词并让用户确认
:g/str1/s//str2/gi 用字符串 str2 替换正文中所有出现的字符串 str1,在查找时不区分大小写,此命令没有下面的严格,经测试显示,不能完全做到在查找时忽略大小写
:%s/str1/str2/gi 用字符串 str2 替换正文中所有出现的字符串 str1,在查找时不区分大小写,在查找时可以完全做到忽略大小写
:10,20s/^/ / 将第10行至第20行资料的最前面插入5个空白
:%s/$/str/g 在整个文件每一行的行尾添加“str”
:3,7s/str1/str2/g仅替换文件中的第3行到第7行中的“str1”成“str2”
:%s/:.*//g 删除/etc/passwd中用户名后面的从冒号开始直到行尾的所有部分(前提是已经打开了/etc/passwd文件)从上述替换命令可以看到:g 放在命令末尾,表示对搜索字符串在光标所在行的每次出现进行替换;不加 g,表示只对搜索字符串的首次出现进行替换;g 放在命令开头,表示对正文中所有包含搜索字符串的行进行替换操作。上面的命令中的/只是起分隔作用,也可以用其他的字符代替。另外,可以在正规式里用\ (和\)来剥离一个序列。例如:

有些字符域使用得很频繁. Vim 为这些字符域提供了预定义域:
项 匹配 相当于
\d 数字 [0-9]
\D 非数字 [^0-9]
\x 十六进制数字 [0-9a-fA-F]
\X 非十六进制数字 [^0-9a-fA-F]
\s 空白字符 [ ] ( 和 )
\S 非空白字符 [^ ] (非 和 )
\l 小写字母 [a-z]
\L 非小写字母 [^a-z]
\u 大写字母 [A-Z]
\U 非大写字母 [^A-Z]
& 所有查找时匹配到的东西
\[Ee] 更改大小写的选择区域的终点

:%s/\s\+$// 删除行尾多余的空格
命令前面指明范围是“%”,所以这会作用于整个文件。“substitute”命令的样式是“\s\+$”。这表示行末($)一个或者多个(\+)空格(\s)。:g/\(foo\)\(bar\)/s/\2/\1baz/g 将foobar替换成foobaz

www.qdtianquan.com

:0,$d 删除所有内容
:%s/r//g 删除DOS方式的回车^M
:%s= *$== 删除行尾空白
:%s/^(.*)n1/1$/ 删除重复行
:%s/^.{-}pdf/new.pdf/ 只是删除第一个pdf
:%s/// 又是删除多行注释(咦?为什么要说「又」呢?)
:g/s*^$/d 删除所有空行 :这个好用有没有人用过还有其他的方法吗?
:g!/^dd/d 删除不含字符串'dd'的行
:v/^dd/d 同上 (译释:v == g!,就是不匹配!)
:g/str1/,/str2/d 删除所有第一个含str1到第一个含str2之间的行
:v/./.,/./-1join 压缩空行
:g/^$/,/./-j 压缩空行
ndw 或 ndW 删除光标处开始及其后的 n-1 个字符。
d0 删至行首。
d$ 删至行尾。
ndd 删除当前行及其后 n-1 行。
x 或 X 删除一个字符。
Ctrl+u 删除输入方式下所输入的文本。
^R 恢复u的操作
J 把下一行合并到当前行尾
V 选择一行
^V 按下^V后即可进行矩形的选择了
aw 选择单词
iw 内部单词(无空格)
as 选择句子
is 选择句子(无空格)
ap 选择段落
ip 选择段落(无空格)
D 删除到行尾
x,y 删除与复制包含高亮区
dl 删除当前字符(与x命令功能相同)
d0 删除到某一行的开始位置
d^ 删除到某一行的第一个字符位置(不包括空格或TAB字符)
dw 删除到某个单词的结尾位置
d3w 删除到第三个单词的结尾位置
db 删除到某个单词的开始位置
dW 删除到某个以空格作为分隔符的单词的结尾位置
dB 删除到某个以空格作为分隔符的单词的开始位置
d7B 删除到前面7个以空格作为分隔符的单词的开始位置
d) 删除到某个语句的结尾位置
d4) 删除到第四个语句的结尾位置
d( 删除到某个语句的开始位置
d) 删除到某个段落的结尾位置
d{ 删除到某个段落的开始位置
d7{ 删除到当前段落起始位置之前的第7个段落位置
dd 删除当前行
d/text 删除从文本中出现“text”中所指定字样的位置,
一直向前直到下一个该字样所出现的位置(但不包括该字样)之间的内容
dfc 删除从文本中出现字符“c”的位置,一直向前直到下一个该字符所出现的位置(包括该字符)之间的内容
dtc 删除当前行直到下一个字符“c”所出现位置之间的内容
D 删除到某一行的结尾
d$ 删除到某一行的结尾
5dd 删除从当前行所开始的5行内容
dL 删除直到屏幕上最后一行的内容
dH 删除直到屏幕上第一行的内容
dG 删除直到工作缓存区结尾的内容
d1G 删除直到工作缓存区开始的内容
+vim复制粘贴大全
-http://hi.baidu.com/dubailon/blog/item/5bdccf186f713d71dbb4bd60.html/cmtid/2dd127396c30f0fdb311c775
-
原文地址:http://lsong17.spaces.live.com/blog/cns!556C21919D77FB59!603.entry

内容:

用vim这么久 了,始终也不知道怎么在vim中使用系统粘贴板,通常要在网上复制一段代码都是先gedit打开文件,中键粘贴后关闭,然后再用vim打开编辑,真的不 爽;上次论坛上有人问到了怎么在vim中使用系统粘贴板,印象里回复很多,有好几页的回复却没有解决问题,今天实在受不了了又在网上找办法,竟意外地找到 了,贴出来分享一下。

如果只是想使用系统粘贴板的话直接在输入模式按Shift+Inset(粘贴)就可以了,下面讲一下vim的粘贴板的基础知识,有兴趣的可以看看,应该会有所收获的。
vim帮助文档里与粘贴板有关的内容如下:

vim有12个粘贴板,分别是0、1、2、...、9、a、“、+;用:reg命令可以查看各个粘贴板里的内容。在vim中简单用y只是复制到“(双引号)粘贴板里,同样用p粘贴的也是这个粘贴板里的内容;
要将vim的内容复制到某个粘贴板,需要退出编辑模式,进入正常模式后,选择要复制的内容,然后按"Ny(注意带引号)完成复制,其中N为粘贴板号(注意是按一下双引号然后按粘贴板号最后按y),例如要把内容复制到粘贴板a,选中内容后按"ay就可以了,有两点需要说明一下:
“号粘贴板(临时粘贴板)比较特殊,直接按y就复制到这个粘贴板中了,直接按p就粘贴这个粘贴板中的内容;
+号粘贴板是系统粘贴板,用"+y将内容复制到该粘贴板后可以使用Ctrl+V将其粘贴到其他文档(如firefox、gedit)中,同理,要把在其他地方用Ctrl+C或右键复制的内容复制到vim中,需要在正常模式下按"+p;
要将vim某个粘贴板里的内容粘贴进来,需要退出编辑模式,在正常模式按"Np,其中N为粘贴板号,如上所述,可以按"5p将5号粘贴板里的内容粘贴进来,也可以按"+p将系统全局粘贴板里的内容粘贴进来。
注意:在我这里,只有vim.gtk或vim.gnome才能使用系统全局粘贴板,默认的vim.basic看不到+号寄存器。安装vim.gnome使用apt-get install vim-gnome,然后vim自动会链接到vim.gnome。

下面是vim复制粘贴的基本命令:
yy复制游标所在行整行。或大写一个Y。
2yy或y2y复制两行。 ㄟ ,请举一反三好不好! :-)
y^复制至行首,或y0。不含游标所在处字元。
y$复制至行尾。含游标所在处字元。
yw复制一个word。
y2w复制两个字(单词)。
yG复制至档尾。
y1G复制至档首。
p小写p代表贴至游标后(下)。
P大写P代表贴至游标前(上)。

复制单个字符
首选进入正常模式(按ESC就行)
然后按v(指定粘贴板为"1v 引号不能少),进入visual方式,然后就可以移动方向键选中文本,然后按y,就拷贝完成,
如果你要从光标处开始复制 4 个字符,可以按 4yl (复制光标后的)("14yl)("110yl 后面10个字符),4yh(复制光标前的) ,就复制了4个字符到缓冲区中了,
按下来就可以用 p (指定粘贴板为"1v 引号不能少)命令随便粘贴了(1为指下粘贴板名)

posted on 2012-08-09 16:13 pojowsh 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/hust_wsh/archive/2012/08/09/2630446.html

你可能感兴趣的:(【原创】Linux学习笔记)