五、 做好Linux的管理员:21问
70.如何检查Linux硬盘使用情况?
在Linux环境下,你可以使用df命令来查看硬盘的使用情况。下面就是一个df -T -h(-T参数:显示文件系统类型,-h参数用可读性较高的方式来显示信息)命令的输入实例:
Filesystem Type Size Used Avail Use% Mountedon
/dev/hda1 ext2 7.5G 4.7G 2.5G 65% /
/dev/hda2 ext2 653M 6.6M 613M 1% /root
/dev/hdb1 ext2 7.5G 3.5G 3.7G 49% /usr
71.Linux下有哪些压缩工具?
在Linux下有很多种压缩工具,常用的有:
1) gzip/gunzip:这是GNU开发的自由软件,使用相当广泛。压缩文件扩展名为".gz"。使用方法很简单,例如:
gunzip eos.gz gzip /home/test/*.txt;
2) compress/uncompress:这是一对历史悠久的压缩程序,文件经过它压缩后,压缩文件扩展名为 ".Z"。
3)除此之外还有:zip/unzip、bzip2/bunzip2等。
72.如何管理进程?
进程是程序的一次执行。可以使用"ps -auxw"列出在当前正在执行的进程的详细信息,包括每个进程都有的进程ID号。你可以通过"kill 进程ID号"来终止这个进程。
73.文件或目录的权限是什么意思?
文件或目录的权限位由10位构成,如-rwxr-xr-x。
1) 第一位代表文件/目录类型:d代表目录、-代表文件、l代表链接;
2) 剩下的9位分成3组,每组3位;2-4位描述文件主人的权限,5-7位描述与文件主人同一用户组的权限,8-10位则是其它用户的权限。
3) rwx:每组的3位分别是:读权限、写权限、执行权限;如果是-就代表没有这个权限。
也就是说-rwxr-xr-x表示,这是个普通文件,文件主人可以读、写、执行这个文件,与文件主人同组的用户以及其它用户都可以读、执行这个文件。
74.什么是用户帐号?
在Linux系统中,是通过用户帐号来标识每一个用户的,通过登录时输入不同的用户帐号和密码确定你的身份。也就是说,Linux系统通过用户帐号和管理系统的所有用户。
然后你可以创建一些用户组,将用户加入到组中去,让其获得用户组的权限。
75. 在Linux下,如何管理用户?
如果你想要新增一个用户:
1) 以root登录,然后执行"adduser 用户帐号名"
2) 执行"passwd 用户帐号名"来为这个用户帐号设置密码。
执行"userdel 用户帐号"删除一个用户;
执行"groupadd 用户组名"新增一个用户组;
执行"groupdel 用户组名"删除一个用户组;
76. 如何为用户作磁盘限额?
1)将要设置磁盘限额的分区,按以下格式修改/etc/fstab 文件:
/dev/hda2 /home ext2 defaults,usrquota 1 2
2)在要设置磁盘限额的分区目录下创建空文件 quota.user
#touch /home/quota.user
#chmod 600 /home/quota.user
3)重启系统后,就可以使用edquota -u 用户名来设置。
77.如何备份系统?
在Linux中,你可以使用dump/restore命令组来实现系统的备份与恢复。假设你需要将/usr目录下的所有文件完整地备份到磁带机上(假定设备是rmt8,不同的磁带机不相同),你可以使用命令:
dump -O -f /dev/rmt8 /usr
其中-O参数代表备份全部文件,"-f 设备文件名"参数指定备份到什么地方,最后的目录名指定要备份的内容。
然后,你可以使用以下命令恢复:
restore -r -f /dev/rmt8
78.如何安装.tar的软件包?
Linux软件有两种发布方式:一种是源代码方式,另一种是可执行文件包。而发布包大多是先用tar归档,再用gzip压缩,生成是以.tar.gz结束的文件。
你可以直接使用"tar xvfz 文件名"完成解压缩,解tar包工作。
如果你取得是可执行文件包,安装工作结束。
如果你取得是源代码包,则还需编译一下:
1) 在解压目录下运行"./configure"进行配置;
2) 在解压目录下运行"make"进行编译;
3) 运行"make install"安装。
79.如何使用RPM安装Linux软件?
RedHat公司提供的RPM工具,使得Linux软件安装更为方便。
1) 安装:rpm -ivh somesoft.rpm
2) 反安装:rpm -e somesoft.rpm
3) 查询:rpm -q somesoft
80.如果忘了root的密码,怎么办?
如果你忘了root的密码,可以通过以下方法恢复:
1) 重新启动Linux,出现lilo:时,输入linuxsingle进入单用户模式;
2) 这时无需密码就取得了root权限;
3) 再运行passwd重新设置root的密码。
81.重装Windows而破坏了Lilo时,怎么办?
这种情况可以使用两种方法恢复:
1)用Linux启动软盘启动,然后执行/sbin/lilo,重新在引导区建立lilo;
2)使用Linux安装光盘启动,选择升级系统,将会重建lilo。
82.如何制作Linux启动盘?
在Linux下,有一个工具mkbootdisk能很方便地制作系统启动盘:
1) 查看系统的版本,可以通过ls /usr/src来看;
2) 插入一张空软盘;
3) 执行"mkbootdisk --verbose 2.2.5"。
83.如何远程使用Linux?
我们可以使用telnet、rlogin、rsh、rcp等命令来实现远程使用Linux,但这这些方法在传输过程中是明文传输的,所以有可能带来许多不安全因素。因此,应尽量避免远程使用root帐户登录系统。
如何构建安全的远程登录?
使用SSH来实现安全的远程登录,因为SSH实现了数据传输的加密。
1) 获取ssh-1.26.tar.gz文件;
2) 用tar xvpf ssh-1.26.tar.gz解开这个包;
3) 到解开的目录/usr/local/src/ssh-1.26目录下执行./configure;
4) 执行make和make install来完成编译和安装。
5) 你就可以使用ssh来与安装了SSH的服务器建立安全的远程连接。
85.如何运行计划任务?
大大可能对Windows中的计划任务都比较熟悉了,它可以通过一些简单的设置,定时完成一些任务。在Linux系统的维护中,我们可以也会需要定期执行一些任务,这种情况可以使用:
1) at命令:它可以键盘或文件中读取指令,然后在指定时间完执行;
2) crontab守候进程:通过设置它的配置文件来定时执行某些任务。
86.Linux的开机过程都做了什么?
1) 一开机,CPU将控制权交给BIOS,BIOS完成开机自检;
2) 然后BIOS读取磁盘上的第一个扇区,并装入主引导扇区的lilo;
3) lilo根据输入选择不同的内核映象,如果你选择了linux就读取/boot下的核心映象;
4) 核心开始硬件检测和设备驱动程序的初始化,然后运行init
5) init进程根据/etc/inittab的配置运行一系列初始化脚本;
6) 完成后,启动getty进程接受用户的登录。
87.如何设置开机自动运行程序?
你可以在以下几个脚本文件中加入你想一启动系统就执行的命令:
/etc/rc.local、/etc/rc.sysinit以及/etc/rc.d/init.d。
88.为什么需要重新编译内核?
以下情况你需要重新编译内核,或加入动态内核模块:
1) 更新驱动程序;
2) 根据自己的需求定制最可靠的内核;
3) 升级Linux内核。
89.如何重新编译内核?
1) 进入Linux源代码目录:cd /usr/src/linux
2) 执行"make config"或"make menuconfig"、"make xconfig"配置内核选项,选中你想要的模块,去掉不想要的模块;
3) 执行"make zImage"命令,大概30到90分钟后,会生成一个zImage的新内核映像文件,存放在/usr/src/linux/arch/i386/boot目录下;
4) 然后将其拷贝到/boot目录下;
5) 修改lilo.conf文件,加入:
image=/boot/zImage
label=newlinux
root=/dev/hda1 (根据原来的文件)
运行/sbin/lilo使修改生效。
6)重新启动,在Lilo时,输入newlinux就可以新内核启动。
90.什么是动态内核模块?
动态内核模块是Linux一个成功的设计,它使得Linux更加灵活,易于定制。其实动态内核模块就是一个内核模块,它可以在不重新编译内核的情况,动态地将一些功能用"insmod 模块名"命令加入内核、用"rmmod 模块名"命令将其移出内核。
六、 廉价的网络解决方案---Linux:9问
91.如何使用Linux架设WEB服务器?
Apache服务器是在Linux架设WEB服务器的首选。你可以在安装Linux时就选择安装它。若在安装时没有安装Apache的话,你可以从光盘或者到apache网站上找到文件:apache-1.3.12.i386.rpm,然后执行以下命令完成安装:
1)rpm -ivh apache-1.3.12.i386.rpm
2)修改/etc/httpd/conf目录下的配置文件httpd.conf、access.conf等;
3)将主页文件放到/home/httpd/html目录下;
4)执行"/etc/rc.d/init.d/httpd start"启动Apache服务器
如果需要关闭的话,可以执行/etc/rc.d/init.d/httpd stop命令。
92.如何使用Linux架设FTP服务器?
在Linux中,最常用的FTP服务软件当数wu-ftpd,如果在安装linux时没安装上它。你可从光盘或者网站rpmfind.net/linux/RPM/WbyName.html获取它的RPM包:wu-ftpd-2.6.0-9.i386.rpm。然后执行以下命令完成安装:
rpm -ivh wu-ftpd-2.6.0-9.i386.rpm
编辑 "/etc/inetd.conf" 文件,指向新的ftpd守护进程,如下所示:
ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -a
到此为止,你的Linux就可以接受FTP服务了。
93.如何使用Linux架设E-MAIL服务器?
Linux中,最常用的E-MAIL服务器是Sendmail,你可以在安装Linux时将其选中。
1) 在DNS服务器上为E-Mail服务器做一条MX记录;
2) 编辑/etc/inetd.conf文件,将关于pop和smtp的行的注释符去掉;
3) 执行kill -HUP inetd,使修改生效;
这样E-mail服务器的用户就可通过Outlook等客户端程序进行收发邮件了。
94.如何使用Linux架设News服务器?
在安装Linux时,选择INN软件包,并允许开机时启动innd。在完成系统的安装时,大部分配置工作已经完成,无需编译[url=http://www.pccode.net].net" class="wordstyle"源码。
1)配置/etc/news/inn.conf:
domain: foo.com
organization: foo company news site
server: localhost
根据实际情况填写;
2)配置/etc/news/nnrp.access
nnrp.access是用来完成News Readers服务的守候进程nnrpd的配置文件,用于控制对站点的访问,修改此文件无须启动INND。
3)添加新闻组:
可以手工编辑/var/lib/news/active文件添加新闻组,也可以使用ctlinnd命令来增加。若是手工方式修改新闻组,须执行以下命令使其生效:
ctlinnd reload active "modify active"
95.如何使用Linux架设BBS?
1) 下载PowerBBS的源代码发行包文件pbbs.tar.gz;
2) 执行tar zxvf pbbs.tar.gz解开文件;
3) 进入pbbs目录,运行Install;
4) 根据具体需求改变默认的设置。
96.如何让Linux成为文件服务器?
在Linux中,你可以用Samba来做文件服务器,你可以在安装Linux时选中Samba就可以完成安装。
1) 编辑/etc/smb.conf,修改配置:
netbios name=linux
workgroup=SambaServer
server string=Samba Server
hosts allow=192.168.9. 127.
securoty=share
interfaces=192.168.9.1/24
name resolve order=host dns bcast
wins support=no
2)重新启动SMB服务器:/etc/rc.d/init.d/smb restart
3)编辑客户机的hosts文件,加入对Samba Server的解析;
4)最后你就可以在网上邻居上看到它了。
97.如何使用Linux架设代理服务器?
1) 下载Squid代理服务器软件squid-2.2.STABLE3-src.tar.gz;
2) 执行tar xzxf squid-2.2.STABLE3-src.tar.gz
3) 执行./configure
4) 执行make,make install安装到/usr/local/squid目录下;
5) 编辑/usr/local/squid/squid.conf文件,加入:
acl allowed_hosts src 192.168.9.0/255.255.255.0
注:假设你的内网IP地址是192.168.9.0;
6) 执行/usr/local/squid/bin/squid -z进行初始化
7) 执行/usr/local/squid/bin/squid开启服务
8) 在客户端设置代理服务器IP和端口3128,就可以访问Internet了。
98.如何使用Linux架设透明网关?
确认Linux内核已经支持ipchain,然后编写一个脚本ipchains.rule,内容为:
注:假设透明网关服务器的外网地址是:1.2.3.4,已经与Internet相连;内网地址是192.168.9.1,连在内网上。
#!/bin/sh
/sbin/ipchains -F forward
/sbin/ipchains -F input
/sbin/ipchains -F output
/sbin/ipchains -P forward DENY
/sbin/ipchains -P input ACCEPT
/sbin/ipchains -P output ACCEPT
external_interface=1.2.3.4
/sbin/ipchains -A input -j ACCEPT -i lo
/sbin/ipchains -A output -j ACCEPT -i lo
/sbin/ipchains -A input -j DENY -i eth1 -s 192.168.9.0/24
/sbin/ipchains -A input -j DENY -i eth1 -d 192.168.9.0/24
/sbin/ipchains -A output -j DENY -i eth1 -s 192.168.9.0/24
/sbin/ipchains -A output -j DENY -i eth1 -d 192.168.9.0/24
/sbin/ipchains -A input -j DENY -i eth1 -s $external_interface/32
/sbin/ipchains -A input -j DENY -i eth1 -s $external_interface/32
/sbin