分类目录归档:LINUX

关于linux使用的知识

习题(2)

把当前目录中的所有文件按inode的编号顺序排列,对显示出对应的文件名,把输出结果保存在文件中

ll -i | awk '{print $1,$9}' |sort > 123.txt

习题 (1)多种方法实现找相同字段 awk grep sort uniq

先建立两个文件
A.table

wangwei:30:100:79
yuanyi:27:829:298
ssj:26:2938:298
zhangjianzhou:27:298:293
zhangsan:34:298:102

B.table

wangba:30:100:79
yiyuan:27:829:298
ssj:26:2938:298
zhangjian:27:298:293
zhangsi:34:298:102
yuanyi:99:99:99

要求:找到这两个文件第一个字段相同的行,并显示B中同名行

方法1:
awk -F ':' ' {print $1}' A.table > name.list
grep -f name.list B.table

方法2:
awk -F : '{print $1}' A.table B.table|sort|uniq -ud >name.list
grep -f name.list B.table

/etc/fstab 详解

/etc/fatab文件的一个示例行:

fs_spec fs_file fs_type fs_options fs_dump fs_pass
/dev/hda1 / ext2 defaults 1 1

1. fs_spec – 该字段定义希望加载的文件系统所在的设备或远程文件系统
例如: redhat.kumouse.com:/home/test1
2. fs_file – 该字段描述希望的文件系统加载的目录点,对于swap设备,该字段为swap;
对于加载目录名包含空格的情况,用40来表示空格。
3. fs_type – 定义了该设备上的文件系统,一般常见的文件类型为ext3,vfat,NTFS,iso9600等。
4. fs_options – 指定加载该设备的文件系统是需要使用的特定参数选项,多个参数是由逗号分隔开来。
对于大多数系统使用defaults就可以满足需要。其他常见的选项包括:
选项 含义
ro 以只读模式加载该文件系统

sync 不对该设备的写操作进行缓冲处理,这可以防止在非正常关机时情况下破
坏文件系统,但是却降低了计算机速度

user 允许普通用户加载该文件系统

quota 强制在该文件系统上进行磁盘定额限制

noauto 不再使用mount -a命令(例如系统启动时)加载该文件系统

fs_dump – 该选项被dump命令使用来检查一个文件系统应该以多快频率进行转储
若不需要转储就设置该字段为0
fs_pass – 该字段被fsck命令用来决定在启动时需要被扫描的文件系统的顺序
根文件系统/对应该字段的值应该为1,其他文件系统应该为2
若该文件系统无需在启动时扫描则设置该字段为0

我现在的/etc/fstab

LABEL=/ / ext3 defaults 1 1
LABEL=/boot /boot ext3 defaults 1 2
/dev/sdc1 /test ext3 defaults 1 2
none /dev/pts devpts gid=5,mode=620 0 0
none /proc proc defaults 0 0
none /dev/shm tmpfs defaults 0 0
/dev/sda3 swap swap defaults 0 0
/dev/cdrom /mnt/cdrom udf,iso9660 noauto,owner,kudzu,ro 0 0
/dev/fd0 /mnt/floppy auto noauto,owner,kudzu 0 0

Ubuntu8.04 系统优化

32位CPU用户安装32位版的Ubuntu,64位CPU的就安装64位版本。有人说64版本安装软件有兼容性问题。我从Ubntuu7.04开始到现在的8.04一直使用64位系统,一直都很稳定没遇到太大的问题。64位系统同样能使用32位的软件,只要在终端输入以下命令,安装相应的32位包:
sudo apt-get install ia32-libs ia32-libs-gtk linux32 lib32asound2
,64位系统在一般的应用中不但不会比32位系统慢,甚至还能有5~10%的性能提升,这是我对32位系统与64位系统对比后的体会。
如果有朋友在64位系统中遇到任何问题,可到
http://forum.ubuntu.org.cn/viewforum.php?f=85。
发帖求助 2。选择合适的文件系统
我的根分区与/home都是使用xfs文件系统,当然也有人会推荐使用ReiseFS文件系统。 3。选择适合自己的Linux内核
Ubuntu8.04默认的内核是2.6.24.X-generic,大家可以通过在终端中输入
uname -r查看内核版本,而这个内核更适合笔记本用户使用。
对于台式机用户,我推荐使用realtime内核,这个内核在系统--系统管理--新立得新立得软件包管理器里搜索“linux-image”就能看到,安装时要安装“linux-imgage-2.6.22.14-rt”跟 “linux-restricted-modules-rt”两个包,原来默认的内核镜像不用删除,安装后重启,grub画面就会多了两个rt的选项,选择第一个就能使用rt内核了,rt就是realtime的缩写。更完全的安装是把所有后面都是rt包都装上。 小贴士:默认的内核不用删除,安装完rt内核后重启系统,在启动选择画面会出现新的内核选项,选择rt选项,就能进入新的内核了
具体的文章可以见此帖:
http://forum.ubuntu.org.cn/viewtopic.php?t=101888 4。关闭IPV6
因为目前IPV6网络还没普及,所以建议把这项关闭
代码:
sudo gedit /etc/modprobe.d/aliases 然后修改这一行:
alias net-pf-10 ipv6
为:
alias net-pf-10 off #ipv6
然后注释掉hosts文件中所有与IPV6有关的行
代码:
sudo gedit /etc/hosts 这将会禁止所有使用IPV6的网络接口。 再新建一个/etc/modprobe.d/bad_list文件,内容为:
alias net-pf-10 off
然后重启。 5。并行启动程序
这将会使启动程序并行,加速启动过程
代码:
sudo kate /etc/init.d/rc (注意:这里用gedit打开可能是乱码,换个编辑器,如nano,vi什么的就ok了)
找到并修改该行:
CONCURRENCY=none
为:
CONCURRENCY=shell
确保你的拼写正确,写错一个字母你将无法启动!!!
如果你使用的是SATA 或SCSI,这个方法会发挥最大的作用,然而即使像我使用ATA这样的机器上,这个方法也使得的GDM登录界面出现的更快了一些。
如果你使用很老的硬件,这个方法也可能会使你的机器启动变慢。 6。将localhost化名为主机名
对不对,你自己决定,我以前在ubuntu论坛看到的这个技巧,确实改善了一些应用程序的启动。
代码:
sudo kate /etc/hosts 把你的主机名添加到第一行的localhost之后,像这样:
127.0.0.1 localhost yourhost
127.0.1.1 yourhost 7。preload
顾名思义,它能智能的根据你日常的软件使用习惯预加载大多数一版用到的lib文件和应用程序,相当于加快了应用程序的启动(这并不会象有些人认为的会加快系统的启动速度)
代码:
sudo apt-get install preload 8。swappiness
Ubuntu 默认的vm.swappiness值是60,这一默认值已经很合适了。但你可以改小一些降低swap的加载,系统性能会有一点点的提升
输入:
代码:
sysctl -q vm.swappiness 你会看到值是60,更改:
代码:
sudo sysctl vm.swappiness=10 这样你就将值由60改为10,这可以大大降低系统对于swap的写入,建议内存为512m或更多的朋友采用此方法。如你你发现你对于swap的使用极少,可以将值设为0。这并不会禁止你对swap的使用,而是使你的系统对于swap的写入尽可能的少,同时尽可能多的使用你的实际内存。这对于你在切换应用程序时有着巨大的作用,因为这样的话它们是在物理内存而非swap分区中。
如果你想永久得改变这一值,你需要更改 sysctl.conf 文件:
代码:
sudo kate /etc/sysctl.conf 添加:
vm.swappiness=10
到末行,需要重启生效。
小贴士:
1G内存推荐值为5
2G内存推荐值为3
不推荐把值设为0 9。grub选项–profile
grub有个叫做profile的选项,它是一种系统启动时所要读取的所有的文件的索引,这样使得随后系统查找并且读取这些文件的速度就会加快。
系统启动到grub启动菜单的时候,按esc键
选择你默认的启动内核,按e键
移动到第二行,再按e键
添加profile到这行末尾,回车
按b键启动系统
第一次启动时间会稍长一些,那是因为要创建索引(或许和随便怎么称呼它),但这之后每次启动就会更加平稳。
你需要在每次更新内核之后,或者是那些会影响到你的系统启动所需的文件的重大系统改动之后,重新作这一步。 10。sysv-rc-conf
安装sysv-rc-conf,禁止掉那些你不需要启动的服务。
举个例子,我的电脑没有蓝牙和 PCMCIA,所以我就不需要启动它。
因此禁止掉那些你没有和不需要的服务。
代码:
sudo apt-get install sysv-rc-conf 然后:
代码:
sudo sysv-rc-conf
以下是一些服务选项参考,可参考进行服务关闭
1. acpi-support – 你最好使其在S运行等级处于“X”状态。
2. acpid – acpi守护程序.这两个用于电源管理,对于笔记本和台式电脑很重要,所以让它们开启。
3. alsa – 如果你使用alsa声音子系统,是的,开启它。
4. alsa-utils -在我系统里,此服务取代了alsa,所以我关闭了alsa并在S运行等级将此服务开启。**注意**,我所说的“关闭”是指在所有运行等级里面去除所有 “X”。如果在你系统里没有它,没问题。让我们继续。
5. anacron – 一个cron子系统,当时间到达时用于执行任何没有被执行的cron作业。当某种cron 作业时间准备好时,很可能你或许已经关闭了你的计算机。打个比方,updatedb被计划在每天2点执行,但是在那个时候,你的计算机是关闭的,然后如果 ananron服务如果是开启的话,它将设法抓起那个updatedb cron… 我将它关闭是因为我不经常关闭我的笔记本,但是否开启此服务完全取决于你。
6. apmd – 这是十分困惑我的一个服务。我已经开启了acpid服务,那同时开启apmd有啥好处呢?如果你的计算机不是那么老,甚至不能支持acpi,然后你可以设法关闭它。无论如何,我是关闭它的。
7. atd – 就像cron,一个作业调度程序。我把它关了
8. binfmt-support – 核心支持其他二进制的文件格式。我让它开着
9. bluez-utiles – 我把它关了因为我没有任何蓝牙设备
10. bootlogd – 开启它
11. cron – 开启它
12. cupsys – 管理打印机的子系统。我没有打印机所以我关闭它了,如果你有打印机,开启他。
13. dbus – 消息总线系统(message bus system)。非常重要,开启它。
14. dns-clean – 当使用拨号连接,主要用于清除dns信息。我不用拨] ]>

UBUNTU8.10 RAID测试

两个希捷IDE硬盘的软RAID0做的测试成绩(EXT3)
/dev/mapper/lvm01-system:
Timing cached reads: 1524 MB in 2.00 seconds = 762.06 MB/sec
Timing buffered disk reads: 180 MB in 3.03 seconds = 59.31 MB/sec
ssj@ubuntu:~$ sudo hdparm -t -T /dev/mapper/lvm01-swap

/dev/mapper/lvm01-swap:
Timing cached reads: 1508 MB in 2.00 seconds = 754.01 MB/sec
Timing buffered disk reads: 182 MB in 3.03 seconds = 60.16 MB/sec
ssj@ubuntu:~$ sudo hdparm -t -T /dev/mapper/lvm01-home01

/dev/mapper/lvm01-home01:
Timing cached reads: 1508 MB in 2.00 seconds = 753.71 MB/sec
Timing buffered disk reads: 168 MB in 3.03 seconds = 55.40 MB/sec
ssj@ubuntu:~$ sudo hdparm -t -T /dev/mapper/lvm01-home02

/dev/mapper/lvm01-home02:
Timing cached reads: 1510 MB in 2.00 seconds = 754.51 MB/sec
Timing buffered disk reads: 184 MB in 3.02 seconds = 60.90 MB/sec
ssj@ubuntu:~$ sudo hdparm -t -T /dev/sda

/dev/sda:
Timing cached reads: 1526 MB in 2.00 seconds = 763.02 MB/sec
Timing buffered disk reads: 160 MB in 3.03 seconds = 52.81 MB/sec
ssj@ubuntu:~$ sudo hdparm -t -T /dev/sdb

/dev/sdb:
Timing cached reads: 1316 MB in 2.00 seconds = 657.72 MB/sec
Timing buffered disk reads: 168 MB in 3.01 seconds = 55.78 MB/sec
ssj@ubuntu:~$

以上可以看出软raid0给我们代来巨大风险的同时,并不能给我们代来巨大的速度提升

下面用IDE的raid卡来做个测试(我使用的是LSI Logic Megaraid i4阵列卡,两个希捷IDE硬盘RAID0)(EXT3)
/dev/sda1:
Timing cached reads: 1278 MB in 2.00 seconds = 638.79 MB/sec
Timing buffered disk reads: 172 MB in 3.00 seconds = 57.24 MB/sec
ssj@ubuntu:~$ sudo hdparm -tT /dev/sda3
/dev/sda3: No such file or directory
ssj@ubuntu:~$ sudo hdparm -tT /dev/sda1

/dev/sda1:
Timing cached reads: 1234 MB in 2.00 seconds = 616.93 MB/sec
Timing buffered disk reads: 168 MB in 3.01 seconds = 55.80 MB/sec
ssj@ubuntu:~$ sudo hdparm -tT /dev/sda1

/dev/sda1:
Timing cached reads: 1246 MB in 2.01 seconds = 621.26 MB/sec
Timing buffered disk reads: 170 MB in 3.02 seconds = 56.37 MB/sec
ssj@ubuntu:~$ sudo hdparm -tT /dev/sda5

/dev/sda5:
Timing cached reads: 1256 MB in 2.00 seconds = 628.10 MB/sec
Timing buffered disk reads: 168 MB in 3.01 seconds = 55.74 MB/sec
ssj@ubuntu:~$ sudo hdparm -tT /dev/sda6

/dev/sda6:
Timing cached reads: 1242 MB in 2.00 seconds = 620.45 MB/sec
Timing buffered disk reads: 174 MB in 3.02 seconds = 57.64 MB/sec
ssj@ubuntu:~$ sudo hdparm -tT /dev/sda7

/dev/sda7:
Timing cached reads: 1258 MB in 2.00 seconds = 628.69 MB/sec
Timing buffered disk reads: 172 MB in 3.01 seconds = 57.10 MB/sec
ssj@ubuntu:~$ sudo hdparm -tT /dev/sda8

/dev/sda8:
Timing cached reads: 1256 MB in 2.00 seconds = 627.67 MB/sec
Timing buffered disk reads: 170 MB in 3.02 seconds = 56.29 MB/sec
ssj@ubuntu:~$ sudo hdparm -tT /dev/sda

/dev/sda:
Timing cached reads: 1238 MB in 2.00 seconds = 618.92 MB/sec
Timing buffered disk reads: 158 MB in 3.00 seconds = 52.64 MB/sec
ssj@ubuntu:~$

单硬盘测试(EXT3)
/dev/sdb:
Timing cached reads: 1244 MB in 2.00 seconds = 622.10 MB/sec
Timing buffered disk reads: 168 MB in 3.02 seconds = 55.55 MB/sec
ssj@ubuntu:~$ sudo hdparm -tT /dev/sdb1

/dev/sdb1:
Timing cached reads: 1248 MB in 2.00 seconds = 623.70 MB/sec
Timing buffered disk reads: 168 MB in 3.01 seconds = 55.90 MB/sec
ssj@ubuntu:~$ sudo hdparm -tT /dev/sdb3

/dev/sdb5:
Timing cached reads: 1248 MB in 2.00 seconds = 623.80 MB/sec
Timing buffered disk reads: 160 MB in 3.02 seconds = 53.01 MB/sec
ssj@ubuntu:~$

CentOS5.0 增加第三方软件库(rmpforge)

I、添加rmpforge软件库
1.到http://dag.wieers.com/rpm/packages/rpmforge-release/查找适用于RHEL5/CentOS5的软件包。

2.下载适用于RHEL5/CentOS5的软件包。

[root@home ~]$ sudo wget http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm

[root@home ~]$ sudo rpm -ivh rpmforge-release-0.3.6-1.el5.rf.i386.rpm

[root@home ~]$ sudo rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-*

安装rpmforge-release软件包之后,就可以看到/etc/yum.repos.d/rpmforge.repo文件,以后yum就可以使用这个更新源了。

__________________________________________________

II、添加DAG更新仓库 。

1.在/etc/yum.repos.d/下建立dag.repo

2.编辑dag.repo

[root@home ~]$ sudo vi /etc/yum.repos.d/dag.repo

[dag]
name=Dag RPM Repository for Red Hat Enterprise Linux
baseurl=http://apt.sw.be/redhat/el5/en/i386/dag/
gpgcheck=1
enabled=1
gpgkey=http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt

保存退出。

然后导入Key,

[root@home ~]$ wget http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt

[root@home ~]$ sudo rpm –import RPM-GPG-KEY.dag.txt

[root@home ~]$ sudo rm -f RPM-GPG-KEY.dag.txt //这个可以先移除也可以不移除

______________________________________________________

在定义 yum 非官方库 dag.repo 后,使用 yum 安装非官方库里定义的软件是,如果出现错误:

Reading repository metadata in from local files
primary.xml.gz 100% |=========================| 883 kB 00:59
http://apt.sw.be/redhat/el5/en/i386/dag/repodata/primary.xml.gz: [Errno -1] Metadata file does not match checksum
Trying other mirror.
Error: failure: repodata/primary.xml.gz from dag: [Errno 256] No more mirrors to try.

这个错误应该是因为"/var/cache/yum/dag/”里的 primary.xml.gz 不能通过校验导致的。(暂时找不到原因,用多线程软件下载就没问题,如'myget')

这个错误我自己的解决方法是:是用软件'myget'下载 primary.xml.gz 到 "/var/cache/yum/dag/” ;然后再重新用yum安装软件。

三、使用如下命令更新到最新系统

# yum upgrade

四、安装必要的软件工具

# yum install wget bzip2 unzip zip nmap tree lynx fileutils ncftp lftp

若您需要在本机编译源代码的软件,请安装开发工具组的软件包

# yum groupinstall "Development Tools"

CentOS5 更新源 只要是centos就行,脚本是通用的

vi /etc/yum.repos.d/CentOS-Base.repo

 
# CentOS-Base.repo
#
# This file uses a new mirrorlist system developed by Lance Davis for CentOS.
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client. You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
#
[base]
name=CentOS-$releasever – Base
baseurl=http://ftp.sjtu.edu.cn/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://ftp.sjtu.edu.cn/centos/$releasever/os/$basearch/RPM-GPG-KEY-CentOS-5
#released updates
[update]
name=CentOS-$releasever – Updates
baseurl=http://ftp.sjtu.edu.cn/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://ftp.sjtu.edu.cn/centos/$releasever/os/$basearch/RPM-GPG-KEY-CentOS-5
#packages used/produced in the build but not released
[addons]
name=CentOS-$releasever – Addons
baseurl=http://ftp.sjtu.edu.cn/centos/$releasever/addons/$basearch/
gpgcheck=1
gpgkey=http://ftp.sjtu.edu.cn/centos/$releasever/os/$basearch/RPM-GPG-KEY-CentOS-5
#additional packages that may be useful
[extras]
name=CentOS-$releasever – Extras
baseurl=http://ftp.sjtu.edu.cn/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://ftp.sjtu.edu.cn/centos/$releasever/os/$basearch/RPM-GPG-KEY-CentOS-5
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever – Plus
baseurl=http://ftp.sjtu.edu.cn/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
#contrib – packages by Centos Users
[contrib]
name=CentOS-$releasever – Contrib
baseurl=http://ftp.sjtu.edu.cn/centos/$releasever/contrib/$basearch/
gpgcheck=1
gpgkey=http://ftp.sjtu.edu.cn/centos/$releasever/os/$basearch/RPM-GPG-KEY-CentOS-5
enabled=0
#packages in testing
[testing]
name=CentOS-$releasever – Testing
baseurl=http://ftp.sjtu.edu.cn/centos/$releasever/testing/$basearch/
gpgcheck=1
gpgkey=http://ftp.sjtu.edu.cn/centos/$releasever/os/$basearch/RPM-GPG-KEY-CentOS-5
enabled=0

(可以省略了,以加入配置文件中)导入key

rpm –import http://ftp.sjtu.edu.cn/centos/5/os/i386/RPM-GPG-KEY-CentOS-5

运行,测试
yum update

或者用这个源
{}
____________________________________________________________

注:当第一次使用yum或yum资源库有更新时,yum会自动下载所有所需的headers放置于/var/cache/yum目录下,所需时间可能较长.
*rpm包的更新
//检查可更新的rpm包
#yum check-update
//更新所有的rpm包
#yum update
//更新指定的rpm包,如更新kernel和kernel source
#yum update kernel kernel-source
//大规模的版本升级,与yum update不同的是,连旧的淘汰的包也升级
#yum upgrade
*rpm包的安装和删除
//安装rpm包,如xmms-mp3
#yum install xmms-mp3
//删除rpm包,包括与该包有倚赖性的包
#yum remove licq
注:同时会提示删除licq-gnome,licq-qt,licq-text
*yum暂存(/var/cache/yum/)的相关参数
//清除暂存中rpm包文件
#yum clean packages
//清除暂存中rpm头文件
#yum clearn headers
//清除暂存中旧的rpm头文件
#yum clean oldheaders
//清除暂存中旧的rpm头文件和包文件
#yum clearn或#yum clearn all
注:相当于yum clean packages + yum clean oldheaders
*rpm包列表
//列出资源库中所有可以安装或更新的rpm包
#yum list
//列出资源库中特定的可以安装或更新以及已经安装的rpm包
#yum list mozilla
#yum list mozilla*
注:可以在rpm包名中使用匹配符,如列出所有以mozilla开头的rpm包
//列出资源库中所有可以更新的rpm包
#yum list updates
//列出已经安装的所有的rpm包
#yum list installed
//列出已经安装的但是不包含在资源库中的rpm包
#yum list extras
注:通过其它网站下载安装的rpm包
*rpm包信息显示(info参数同list)
//列出资源库中所有可以安装或更新的rpm包的信息
#yum info
//列出资源库中特定的可以安装或更新以及已经安装的rpm包的信息
#yum info mozilla
#yum info mozilla*
注:可以在rpm包名中使用匹配符,如列出所有以mozilla开头的rpm包的信息
//列出资源库中所有可以更新的rpm包的信息
#yum info updates
//列出已经安装的所有的rpm包的信息
#yum info installed
//列出已经安装的但是不包含在资源库中的rpm包的信息
#yum info extras
注:通过其它网站下载安装的rpm包的信息
*搜索rpm包
//搜索匹配特定字符的rpm包
#yum search mozilla
注:在rpm包名,包描述等中搜索
//搜索有包含特定文件名的rpm包
#yum provides realplay

时区问题 +8区

安装完系统发现时间与现实时间相差+8小时,centos5把bios时间认为是utc时间,所以+8小时给我们。这个时候的bios的时间和软件的时间是不一致的。一个代表 utc 一个代表我们设置的cst(+8时区)
解决办法:

1、vi /etc/sysconfig/clock
ZONE="Asia/Shanghai"
UTC=false (主要是这个选项,设置硬件时钟不是跟utc一致)
ARC=false

2、linux的时区设置为 上海
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

3、对准时间
ntpdate 192.43.244.18

4、设置硬件时间和软件时间的一致并校准
/sbin/hwclock –systohc
这样我们的linux软件和计算机硬件都是cst时间了--并且是我们设置的上海时区