LinuxFAQ
时间:2006-08-03 来源:thinkwzb
|
split -b1440k a_whopping_big_file chunk
cat chunk* > a_whopping_big_file
#####################################
2.wget下载整个网站
wget -t0 -c -nH -np -b -m -P /localdir http://freesoft.online.sh.cn/mirrors/ftp.redhat.com -o wget.log
#####################################
3.cp时显示进度
cp -r -v dir1 dir2
cp -a -d -v dir1 dir2
#####################################
4.ls重定向到多个文件
ls | tee 1.txt 2.txt 3.txt .....
#####################################
5.mail#Linux中命令行下发送带附件的邮件
方法1. uuencode <in_file> <remote_file> | mail -s "title" mail@address
<in_file> 本地需要作为附件的文件名。
<remote_file> 邮件中的附件文件名,可以和<in_file>不同,其实内容一样。
方法2. cat <mailcontent.txt> | mutt -s "title" -a <attachfile> mail@address
<mailcontent.txt>邮件正文内容。
<attachfile>本地需要作为附件的文件名。
####################################################
6.移动光标
echo -e '\033[20;10f' 把光标移动到20行10列
###################################################
7.杀掉一类进程
ps -efww|grep LOCAL=NO|grep -v grep|cut -c 9-15|xargs kill -9
###################################################
8.查看部分文件
如果你只想看文件的前5行,可以使用head命令,
如:head-5/etc/passwd
如果你想查看文件的后10行,可以使用tail命令,
如:tail-10/etc/passwd
你知道怎么查看文件中间一段吗?你可以使用sed命令
如:sed-n'5,10p'/etc/passwd这样你就可以只查看文件的第5行到第10行。
###################################################
9.xmms字体设置
xmms -adobe-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-1,-misc-simsun-medium-r-normal--12-*-*-*-*-*-gbk-0,*-r-*
###################################################
10.mount应用
mount -t ntfs /dev/hda1 /mnt/c -o codepage=936,iocharset=gb2312
mount -t iso9660 -o iocharset=cp936,ro /dev/cdrom /mnt/cdrom
#######################################################
11. nslookup 域名 查看域名所指IP
12.setterm控制台下的屏幕截图
setterm -dump 1 用setterm程序来获得控制台下的屏幕截图,1 tty1
######################################################
13.mencoder图片做成电影
mencoder *.jpg -mf on:fps=15 -o output.avi -ovc xvid 图片做成电影
######################################################
14.ldconfig加入指定的联接库
echo "/usr/local/lib" >> /etc/ld.so.conf
/sbin/ldconfig
######################################################
15.reset解决控制台乱码
终端乱码解决 reset setterm -reset cat /bin/bash
######################################################
16.合并多个pdf文件
gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=out.pdf f1.pdf f2.pdf f3.pdf 合并多个pdf文件
######################################################
gconftool-2 -s /desktop/gnome/url-handlers/http/command --type string 'opera "%s"'
17.find应用
find . -ctime +1 -ctime -7 -print 找到当前目录下1~7天以前的文件,
find ./ -type f -name "*.mp3" > playlist.lst
######################################################
18.wc应用
ls |wc -l 统计当前目录下的非隐藏目录和非隐藏文件的个数
ls -a |wc -l 统计当前目录下的所有文件和目录的个数实际数目
find ./ |wc -l 统计当前目录下的所有文件包括隐藏文件和文件夹
######################################################
19.制作grub图
convert -geometry 640x480 -colors 14 XXX.png XXX.xpm && gzip XXX.xpm #grub
###################################################
20.应用tee
tee tee:从标准输入中读取,向标准输出和其他文件中写入。
tee (2)部分参数说明
tee tee [-ai] [--append] [--ignore-interrupts] [--help]
tee [--version] [文件名列表]
tee -a, --append:将标准输入追加到输出文件的后面而不是缺省的覆盖它。
tee -i, --ignore-interrupt:忽略中断信号。
tee --help:在标准输出上输出帮助信息并退出。
tee --version:在标准输出上输出版本信息并退出。
21. hdparm应用
hdparm -Tt /dev/hda <==测试 hda 硬盘的 cache 与实际效能.
hdparm -d0 /dev/hda <==关闭 DMA 模式.
hdparm -d1 -c3 -X66 /dev/hda <==开启 DMA 模式在 DMA 66.,并开启 32 位元存取模式.
route add -net 140.128.0.0 netmask 255.248.0.0 gw 140.128.166.254 //指定140.128.0.0的网段由140.128.166.254的gateway出去
xwd 参数 -out 文件名; //抓屏用convert转一下 参数为-root全屏-frame指定窗口-screen窗口没标题栏
chmod 4711 /usr/local/sbin/pure-ftpwho
gcc -I/usr/X11R6/include -o hellowld hellowld.c -L/usr/X11R6/lib -lXm -lX11
PS1='\t \w' \! 显示该命令的历史记录编号。
\# 显示当前命令的命令编号。
\$ 显示$符作为提示符,如果用户是root的话,则显示#号。\\ 显示反斜杠。\d 显示当前日期。\h 显示主机名。 \n 打印新行。 \nnn 显示nnn的八进制值。\s 显示当前运行的shell的名字。\t 显示当前时间。 \u 显示当前用户的用户名。 \W 显示当前工作目录的名字。\w 显示当前工作目录的路径。
display -window root `xwininfo -root -stats | grep -e -geometry` pic/cat_11.jpg 更改桌面墙纸
[ 本帖最后由 bugkill 于 2005-11-6 12:00 编辑 ]
bugkill 回复于:2005-11-05 17:00:49
22.aa=`grep _GQAdd $1` 把命令结果传给一个变量
23. echo应用
echo "abcdefg" | perl -lne '{$a = reverse($_); print $a;}' 把一个字符串翻转
echo bottle|rev 把一个字符串翻转
24. dd命令
dd 命令常常用来制作Linux启动盘。先找一个可引导内核,令它的根设备指向正确的根分区,然后使用dd命令将其写入软盘:
dd $ rdev vmlinuz /dev/hda
dd $dd if=vmlinuz of=/dev/fd0
dd 上面代码说明,使用rdev命令将可引导内核vmlinuz中的根设备指向/dev/hda,请把“hda”换成自己的根分区,接下来用dd命令将该内核写入软盘。
25.
sudo shan ALL=/usr/local/pureftpd/sbin/pure-ftpwho,/usr/local/bin/mymount cdrom,/usr/local/bin/mymount -u cdrom ALL /etc/sudoer
26.iso
cp /dev/cdrom xxxx.iso 将光盘做成iso文件
27.memory应用
memory grep MemTotal /proc/meminfo 看内存大小
mlterm /etc/mlterm/termcap文件中xterm那一行(因为我的$TERM是xterm):
mlterm [root@/etc/mlterm]# cat termcap
mlterm mlterm:\
mlterm kD=\E[3~:kb=^?
mlterm xterm|rxvt:\
mlterm kD=\E[3~:kb=^H:ut
mlterm *:\
mlterm kD=\e[3~
rm \.[^\.]* -r
xmms -*-*-*-*-*-iso8859-1,-misc-simsun-medium-r-normal--12-*-*-*-*-*-gbk-0,*-r-
28.rpm -q 软件名 显示软件包的版本信息 rpm --prefix=路径 -ivh 包名
29.rpm -qlp *.rpm 看看包里面有什么文件 which softwarename 查找应用程序路径
30. tar命令
tar -xjvf *.tar.bz2 tar xvfz *.tar.gz 解压
tar xvfzC *.tar.gz path/ 解压到指定的目录(目录存在)
tar czvf *.tar.gz dirname tar cvf *.tar dirname 压缩
31.rar 命令
rar a *.rar file-dir 压缩/加入压缩包 rar d *.rar file 从包中删除文件
rar x *.rar 解压到当前目录保持目录结构,e不保持目录结构
32.du命令
du -s 显示当前目录所用空间
du -sh 只显示目录大小
33.mount -t iso9660 xxxxx.iso /any/path/if/u/like -o loop
34.grep string file 列出string所在行的内容?
35.alias newname='command'命令的别名
36.mount -t vfat /dev/sda1 /mnt/usb -o codepage=936,iocharset=gb2312
37.fstab /dev/hda1 /mnt/c vfat defaults,codepage=936,iocharset=gb2312 0 0
39.怎样编译mplayer
./configure --prefix=/usr/local/mplayer --enable-gui --libdir=/usr/local/mplayer/lib --language=zh --with-reallibdir=/usr/local/mplayer/lib/rp9codecs --with-win32libdir=/usr/local/mplayer/lib/win32codecs --enable-freetype
40.fcitx输入法
fcitx export XMODIFIERS=@im=fcitx
fcitx export XIM=fcitx
fcitx export XIM_PROGRAM=fcitx
fcitx export GTK_IM_MODULE=xim
opera cn u-JhyKr-e8c7j-pQt7k-BrwaN-kMTmh
41.unzip
unzip unzip "*" 一次解压多个zip文件
42.
ifconfig dhclient 动态IP
ifconfig ifconfig eth0 down
ifconfig ifconfig eth0 要抢的IP
ifconfig ifconfig eth0 up
ifconfig arping 网关
43.
perl perl -p -i -e "s/\\\/\\\\\\\/g" aa 把aa中\换为\\
perl perl -p -i -e "s/abcde/edbca/g" * 比如把目录中所有文件中都出现的“abcde”替
换成“edbca”
rpm kernel2.65rpm不能运行
rpm 运行rpm之前先export LD_ASSUME_KERNEL=2.2.5
44.
chmod 改变文件或目录之读、写、执行之允许权
chmod ====================================
chmod 执行格式:chmod [-R] mode name ( name 可为文件名或目录名;mode可为 3 个 8 位元之数字,或利用ls -l 命令,列出文件或目录之读、写、执行允许权之文字缩写。)
chmod mode : rwx rwx rwx r:read w:write x:execute(user group other 缩写为: u g o)
chmod Example :
chmod % chmod 755 dir1 将目录dir1,设定成任何使用者,皆有读取及执行之权利,但只有拥有者可做修改。
chmod % chmod 700 file1 将文件file1,设定只有拥有者可以读、写和执行。
chmod % chmod o+x file2 将文件file2,增加拥有者可以执行之权利。
chmod % chmod g+x file3 将文件file3,增加群组使用者可执行之权利。
chmod % chmod o-r file4 将文件file4,除去其它使用者可读取之权利。
45.
chown 改变文件或目录之拥有权
chown ======================
chown 执行格式:chown [-R] username name ( name 可为文件名或目录名。)
chown Example :
chown % chown user file1 将文件 file1 之拥有权,改为使用者 user 所有。
chown % chown -R user dir1 将目录 dir1,及其下所有文件和子目录之拥有权,改为使用者 user 所有。
46.
groups 检查自己所属之群组名称
groups ======================
groups 执行格式:groups
groups Example :
groups % groups
47.
chgrp 改变文件或目录之群组拥有权
chgrp ==========================
chgrp 执行格式:chgrp [-R] groupname name ( name 可为文件名或目录名 )
chgrp Example :
chgrp % chgrp vlsi file1 将文件 file1 之群组拥有权,改为 vlsi 群组。
chgrp % chgrp -R image dir1 将目录dir1,及其下所有文件和子目录,改为 image 群组。
48.
touch 改变文件或目录之最后修改时间(变为当前时间)
touch =========================================
touch 执行格式:touch name ( name 可为文件或目录名称。)
touch Example :
touch % touch file1
touch % touch dir1
49.
ln 文件之连结
ln ==========
ln 同一文件,可拥有一个以上之名称,可将文件做数个连结。
ln 执行格式:ln oldname newname ( Hard link )
ln Example :
ln % ln file1 file2 将名称 file2,连结至文件 file1。
ln 执行格式:ln -s oldname newname ( Symblick link )
ln Example :
ln % ln -s file3 file4 将名称 file4,连结至文件file3。
50.
grep 文件之字串找寻
grep ==============
grep 执行格式:grep string file
grep Example :
grep % grep abc file1 寻找文件file1中,列出字串 abc 所在之整行文字内容。
51.
find 找寻文件或命令之路径
find ====================
find 执行格式:whereis command ( 显示命令之路径。)
find 执行格式:which command ( 显示命令之路径,及使用者所定义之别 )
find 执行格式:whatis command ( 显示命令功能之摘要。)
find 执行格式:find search-path -name filename -print ( 搜寻指定路径下,某文件之路径 )
find Example :
find % find / -name file1 -print ( 自根目录下,寻找文件名为 file1 之路径)
53.
比较文件或目录之内容
====================
执行格式:diff [-r] name1 name2 ( name1 name2 可同时为文件名,或目录名称 )
Example :
% diff file1 file2 比较文件 file1 与 file2 内,各行之不同处。
% diff -r dir1 dir2 比较目录 dir1 与 dir2 内,各文件之不同处。
54.
IP 如何实现为一个网卡绑定多个IP地址?
IP ====================================
IP Linux的网络设备配置文件存放在/etc/sysconfig/network-scripts里面,对于以太网的第一个网络设备,配置文件名一般为 ifcfg-eth0 如果需IP 要为第一个网络设备绑定多一个IP地址,只需要在/etc/sysconfig/network-scripts目录里面创建一个名为ifcfg-eth0:0的文件,内容样例为:
IP DEVICE="eth0:0"
IP IPADDR="211.100.10.119"
IP NETMASK="255.255.255.0"
IP ONBOOT="yes"
IP 其中的DEVICE为设备的名称,IPADDR为此设备的IP地址,NETMASK为子网掩码,ONBOOT表示在系统启动时自动启动。
IP 如果需要再绑定多一个IP地址,只需要把文件名和文件内的DEVICE中的eth0:x加一即可。LINUX最多可以支持255个IP别名。
55.
login 如何设置login后欢迎信息
login ====================================
login 修改/etc/motd,往里面写入文本,就能使用户通过telnet正确登录后执行shell之前得到相应的提示信息。
login motd就是“messages of the day”,也就是当日信息的意思。管理员可以往里面写一些需要注意的事项或者通知等来提醒正式用户。
[ 本帖最后由 bugkill 于 2005-11-6 12:11 编辑 ]
bugkill 回复于:2005-11-05 17:01:23
login 如何设置login前欢迎界面
login ====================================
login 修改/etc/issue或者issue.net,往里面写入文本,就能使得用户在login前得到相应的提示,这将有助于用户分辨自己正在连接哪里的主机。
login issue的内容是出现在本机登录的用户界面上,而issue.net则是在用户通过网络telnet的时候出现。
bash 如何在bash下快速执行某个特定历史命令
bash ====================================
bash 在bash下面按ctrl+r可以查找历史命令中匹配的命令并执行
如何查看进程继承关系
====================================
直接在命令行中输入
pstree
即可,程序会以树状结构方式列出系统中正在运行的各进程之间的继承关系。
ps 如何找出内存占用最大的进程
ps ====================================
ps 除了可以使用top命令查看内存使用情况之外,还可以使用更快的命令行命令,相关的命令如下:
ps ps aux | sort +4n
ps 或者
ps ps aux | sort +5n
如何在Linux下面编辑二进制文件
====================================
到http://freshmeat.net/redir/hexedit/4088/url_tgz/hexedit-1.2.3.src.tgz下载hexedit安装到系统上,就能用hexedit filename来编辑二进制文件。
如何设置用户密码过期时间
====================================
设置某个用户的密码过期时间可以用usermod -e来设置,如果要统一设置用户的密码过期时间,那么就要修改/etc/login.defs里面的PASS_MAX_DAYS,比如修改所有用户的密码过期时间是30天:
PASS_MAX_DAYS 30
如果这个值是99999,那么表示密码永不过期。
MAC 如何修改网卡MAC地址
MAC ====================================
MAC 首先必须关闭网卡设备,否则会报告系统忙,无法更改。
MAC 命令是: /sbin/ifconfig eth0 down
MAC 修改 MAC 地址,这一步较 Windows 中的修改要简单。
MAC 命令是:/sbin/ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE
MAC 重新启用网卡 /sbin/ifconfig eth0 up
MAC 网卡的 MAC 地址更改就完成了
bash 如何用Bash纠正错误命令
bash ====================================
bash 当你输入一个命令不知道是否正确的时候,可以使用ctrl+t来纠正到正确的命令。
bash 比如输入mkdri,然后按ctrl+t,bash会帮你纠正到最接近的命令mkdir。
login 如何使非root用户都不能远程登录
login ====================================
login 建立/etc/nologin文件,这样所有的非root用户都不能远程登录。
mesg 如何不显示其他用户的消息
mesg ====================================
mesg 用户可以使用mesg n来禁止别人给他发送信息,其实就是禁止别人往自己的终端上面的写权限。当别人试图再使用write给他发送信息时,发送者将会看见提示:
mesg write: user has messages disabled on pts/n
如何知道某个命令使用了什么库文件
====================================
例如要知道ls使用了什么库文件,可以使用:
$ ldd /bin/ls
swap 如何临时增加交换空间
swap ====================================
swap 产生一个64M的空文件
swap #dd if=/dev/zero of=/swapfile bs=1024 count=65536
swap 初始化该文件为交换文件:
swap mkswap /swapfile 65536
swap sync
swap 激活这个交换文件:
swap swapon /swapfile
nohup 如何使一个用户进程在用户退出系统后仍然运行
nohup ====================================
nohup 使用nohup command &,比如:
nohup nohup wget -c ftp://test.com/test.iso
nohup 这样即使用户退出系统,wget进程仍然继续运行直到test.iso下载完成为止
login 如何限制用户的最小密码长度
login ====================================
login 修改/etc/login.defs里面的PASS_MIN_LEN的值。比如限制用户最小密码长度是8:
login PASS_MIN_LEN 8
login 这样用户设置密码的时候如果输入的密码长度小于8将不能设置
login 如何限制只有0组(gid=0)的用户可以su成root
login ====================================
login 修改/etc/login.defs里面的SU_WHEEL_ONLY的值为:
login SU_WHEEL_ONLY yes
login 那么就只有gid为0的用户可以su成root。
ctrlaltdel 如何禁用Ctrl+Alt+Del键重启系统
ctrlaltdel ====================================
ctrlaltdel 有时候为了防止误操作导致系统重新启动(如机房里面新来了个习惯用Window$系统的管理员:-D),或者出于安全的原因,需要禁用Ctrl+Alt+Del组合键。
ctrlaltdel 只需要注释掉/etc/inittab文件内的
ctrlaltdel ca::ctrlaltdel:/sbin/shutdown -t3 -r now
ctrlaltdel 这一行即可。如何注释?在这一行的行首放一个“#”号即可。
format 怎么样格式化磁盘
format ====================================
format Linux下有一条mkfs命令,相当于format,可以对磁盘进行文件系统制作操作(或者说格式化)。命令的语法为:
format mkfs -t 文件系统类型 /dev/设备名
format 如要把/dev/sda1格式为reiserfs格式,使用以下命令:
format mkfs -t reiserfs /dev/sda1
format 当然,也可以使用mkfs.fstype命令来格式化磁盘,其中的fstype为文件系统名,如reiserfs文件系统的格式化命令为mkfs.reiserfs。上面那条命令的相应版本为:
format mkfs.reiserfs /dev/sda1
如何取消root命令历史记录以增加安全性
====================================
为了设置系统不记录每个人执行过的命令,就在/etc/profile里设置:
HISTFILESIZE=0
HISTSIZE=0
或者:
ln -s /dev/null ~/.bash_history
这样就可以了。
ftp 如何使用netrc文件进行自动ftp
ftp ====================================
ftp 在自己的home目录下建立一个权限600,名为.netrc的文件,内容是:
ftp machine 192.168.0.1 login test password test
ftp 这样以后你每次ftp 192.168.0.1的时候,系统都会帮你以用户名test,密码test登录。
ftp 利用这个特征可以实现自动ftp。
ftp 例如你想要每天5:00到192.168.0.1机器上面获得/test目录下的文件test.txt,可以这么做:
ftp 建立一个文件ftp_cmd,内容为:
ftp cd test
ftp get test.txt
ftp bye
ftp 然后使用crontab -e设置定时任务:
ftp 0 5 * * * ftp 192.168.0.1 < ftp_cmd
如何测试硬盘性能
====================================
使用hdparm -t -T /dev/hdX就可以测试硬盘的buffer-cache reads和buffered disk reads两个数据,可以用来当作硬盘性能的参考。
同时使用hdparm -c3 /dev/hdaX还能设置硬盘以32bit传输,以加快数据传输的速度。
tar 压缩和打包文件
tar ====================================
tar .bz2 文件如何解压缩 用tar -I 或者bunzip2 命令都可以。
tar .bz2 ????使用bzip2命令压缩的文件,可以使用bzip2 -d filename 解包
tar .gz ????使用gzip命令压缩的文件,可以使用gunzip -d filename 解包
tar .tar ????使用tar打包的文件,即tarball文件,可以使用tar xf filename 解包 ,tar cf path/name name 打包
tar .tbz ????使用tar打完包后再以bzip2命令压缩的文件,可以使用tar jxf filename 解包
tar .tgz ????使用tar打完包后再以gzip命令压缩的文件,可以使用tar zxf filename 解包
tar 个人总结:
tar [.tar] 解开:tar xvf *.tar 把文件打包不压缩:tar cvf *.tar DirName
tar [.tar.gz]解开:tar xzvf *.tar.gz 把文件打包并压缩:tar czvf *.tar.gz DirName
tar [.bz2] 解开:bzip2 -d *.bz2
tar [.bz] 解开:bzip -d *.bz
tar [.gz] 解开:gzip -d *.gz
请参见:【Linux下常用压缩格式的压缩与解压方法 】
mount 如何对光驱、软驱实现AutoMount
mount ====================================
mount 安装完Redhat Linux之后,运行ntsysv,选中服务后台程序autofs.autofs的两个配置文件在/etc/auto.misc和 /etc/auto.master。
mount /etc/auto.master定义了mount目录和mount所需的配置文件名及其空闲时自动umount的时间。下面是默认配置:
mount [jephe@sh3 /etc]$ more auto.master
mount /misc /etc/auto.misc --timeout 60
mount 下面是我的/etc/auto.misc配置文件:
mount [jephe@sh3 /etc]$ more auto.misc
mount cdrom -fstype=iso9660,ro :/dev/cdrom
bugkill 回复于:2005-11-05 17:02:03
mount floppy -fstype=vfat :/dev/fd0
mount e2floppy -fstype=ext2 :/dev/fd0
mount 注:
mount a.确保/dev/cdrom作为符号链接指向你的光驱所在的分区,作为我的情况:
mount [jephe@sh3 /dev]$ ls cdrom -l
mount lrwxrwxrwx 1 root root 3 Aug 26 08:44 cdrom -> hdd
mount b.当软盘为windows 95格化化的vfat分区类型时,设定了安装目录/misc/floppy
mount c.当软盘为Linux格式化过的ext2分区类型时,设定了安装目录/misc/e2floppy
mount 至此,若还未启动autofs,则运行/etc/rc.d/init.d/autofs start, 若对上述两个文件中做过任何更改,运行/etc/rc.d/init.d/autofs restart即可。
mount 放入一片光盘进入光驱后,不需任何动作,直接进入目录/misc/cdrom,autofs 将自动先为你mount光驱同样,若放入一张vfat格式的软盘,你可以cd /misc/floppy,若是ext2格式的软盘,则cd /misc/e2floppy。
mount 在超过一分钟未使用它们,且当前目录不是自动mount目录/misc/cdrom,/misc/floppy,/misc/e2floppy,系统将自动umount它们。
rename 批量重命名
rename =================================
rename for i in /root/mud/*.C; do mv $i ${i%.C}.c; done
cron 计划任务
====================================
简介
crontab-操作每个用户的守护程序和该执行的时间表。
部分参数说明
crontab file [-u user]-用指定的文件替代目前的crontab。
crontab-[-u user]-用标准输入替代目前的crontab.
crontab-1[user]-列出用户目前的crontab.
crontab-e[user]-编辑用户目前的crontab.
crontab-d[user]-删除用户目前的crontab.
crontab-c dir- 指定crontab的目录。
crontab文件的格式:M H D m d cmd.
M: 分钟(0-59)。
H:小时(0-23)。
D:天(1-31)。
m: 月(1-12)。
d: 一星期内的天(0~6,0为星期天)。
cmd要运行的程序,程序被送入sh执行,这个shell只有USER,HOME,SHELL这三个环境变量。
下面是一个例子文件:
#MIN HOUR DAY MONTH DAYOFWEEK COMMAND
#每天早上6点10分
10 6 * * * date
#每两个小时
0 */2 * * * date
#晚上11点到早上8点之间每两个小时,早上8点
0 23-7/2,8 * * * date
#每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点
0 11 4 * mon-wed date
#1月份日早上4点
0 4 1 jan * date
范例
$crontab -l 列出用户目前的crontab.
#MIN HOUR DAY MONTH DAYOFWEEK COMMAND
10 6 * * * date
0 */2 * * * date
0 23-7/2,8 * * * date
如何在Linux里面恢复mbr?
====================================
可以使用下面的命令来恢复:
dd if=/boot/boot.NNNN of=/dev/hda bs=446 count=1
其中bs(buffer size)是指重写的字节数。为什么不是512呢?主引导扇区是一个扇区(512字节)呀?答案是因为我们用上面的命令是为了修复可能被病毒修改了的主引导记录MBR,或者想把LILO卸载掉,而不是恢复整个主引导扇区。所以我们只把主引导扇区的备份文件boot.NNNN的前446个字节重写入主引导扇区。boot.NNNN是我们在安装Linux之前整个主引导分区的备份。如果我们把512个字节全部写入主引导扇区就可能会把安装了Linux后改变了的硬盘DPT表也破坏掉。那就坏事了。 :-)
如何列出一个目录占用的空间
====================================
du或du -s或du -k
du -S | sort -n 可以迅速发现那个目录是最大的。
用df可以看到已安装的文件系统的空间大小及剩余空间大小。
quota -v查看用户的磁盘空间信息,如果你用quota限制了用户空间大小的话。
在使用less 或 more时,如何直接启动编辑器
====================================
在less或者more中打入v键,会立即启动vi编辑器,可以对文件进行编辑
如何察看你当前使用的Linux内核的版本
====================================
可以使用uname -r来查看当前内核版本。如果使用uname -a可以查看包括内核版本,机器硬件信息、网络节点名、操作系统名字等信息
如何显示文件的类型
====================================
用命令 file 可以使你知道某个文件究竟是ELF格式的可执行文件, 还是shell script文件或是其他的什么格式 例如:
#file startx
如何将man page转成HTML格式
====================================
使用 man2html 这个指令,就可以将 man page 转成 HTML 格式了。用法是:
man2html filename > htmlfile.html
例子:
man2html /usr/man/man1/man2html.1 > ~/man2html.html
查看文件内容的特殊方法
====================================
相信最基本的cat和less你已经很熟悉了,如果有特殊的要求呢:
如果你只想看文件的前5行,可以使用head命令,如:
head -5 /etc/passwd
如果你想查看文件的后10行,可以使用tail命令,如:
tail -10 /etc/passwd
tail -f /var/log/messages
参数-f使tail不停地去读最新的内容,这样有实时监视的效果,当你在ppp拨号的过程中用它岂不是很方便!
查看文件中间一段,你可以使用sed命令,如:
sed -n '5,10p' /etc/passwd
这样你就可以只查看文件的第5行到第10行。
linux下文件分割与合并
====================================
$dd if=source of=target.1 bs=1M count=10
$dd if=source of=target.2 bs=1M skip=10
source被分为target.1和target.2两个文件,其中target.1为source的前10M部分;target.2为source的减去10M后的部分。
$cat target.1 target.2 > othersource
source与othersource是同一个文件。
color RedHat下如何显示彩色目录列表
color ====================================
color 打开/etc/bashrc, 加入如下一行:
color alias ls="ls --color"
color 下次启动bash时就可以像在Slackware里那样显示彩色的目录列表了, 其中颜色的color含义如下:
color 蓝色-->目录
color 绿色-->可执行文件
color 红色-->压缩文件
color 浅蓝色-->链接文件
color 灰色-->其他文件
什么是Linux 运行级?
====================================
什么是运行级呢?简单的说,运行级就是操作系统当前正在运行的功能级别。这个级别从1到6,具有不同的功能。这些级别在/etc/inittab文件里指定。这个文件是init程序寻找的主要文件,最先运行的服务是那些放在/etc/rc.d 目录下的文件。
不同的运行级定义如下:(可以参考Red Hat Linux 里面的/etc/inittab)
# 缺省的运行级,RHS 用到的级别如下:
# 0 - 停机(千万不要把initdefault 设置为0 )
# 1 - 单用户模式
# 2 - 多用户,但是没有 NFS
# 3 - 完全多用户模式
# 4 - 没有用到
# 5 - X11
# 6 - 重新启动 (千万不要把initdefault 设置为6 )
对各个运行级的详细解释:
0 为停机,机器关闭。
1 为单用户模式,就像Win9x 下的安全模式类似。
2 为多用户模式,但是没有NFS 支持。
3 为完整的多用户模式,是标准的运行级。
4 一般不用,在一些特殊情况下可以用它来做一些事情。例如在笔记本电脑的电池用尽时,可以切换到这个模式来做一些设置。
5 就是X11,进到Xwindow系统了。
6 为重启,运行init 6机器就会重启。
不同的运行级有不同的用处,也应该根据自己的不同情形来设置。例如,如果丢失了root 口令,那么可以让机器启动进入单用户状态来设置。在启动后的 lilo 提示符下输入:
init=/bin/sh rw
就可以使机器进入运行级1 ,并把root文件系统挂为读写。他会跳过所有系统认证,让你使用passwd 程序来改变root口令,然后启动到一个新的运行级。
系统平均负载(Load average)释疑 ==================================== 在Linux系统中,uptime、w、top等命令都会有系统平均负载load average的输出,那么什么是系统平均负载呢? bugkill 回复于:2005-11-05 17:02:36 系统平均负载被定义为在特定时间间隔内运行队列中的平均进程树。如果一个进程满足以下条件则其就会位于运行队列中: - 它没有在等待I/O操作的结果 - 它没有主动进入等待状态(也就是没有调用'wait') - 没有被停止(例如:等待终止) 例如: [root@www2 init.d]# uptime 7:51pm up 2 days, 5:43, 2 users, load average: 8.13, 5.90, 4.94 命令输出的最后内容表示在过去的1、5、15分钟内运行队列中的平均进程数量。 一般来说只要每个CPU的当前活动进程数不大于3那么系统的性能就是良好的,如果每个CPU的任务数大于5,那么就表示这台机器的性能有严重问题。对于上面的例子来说,假设系统有两个CPU,那么其每个CPU的当前任务数为:8.13/2=4.065。这表示该系统的性能是可以接受的。 ps 如何以树状结构显示系统当前的任务 ps ==================================== ps 运行ps时指定-forest选项,当前运行的进程将会以树状格式显示出来。比如:所有由xserver运行的程序,将会以xserver做为它们的“根”显示出ps 来。 ps 命令格式: ps ps afx ps 其中’a’表示列出所有运行的进程;’x’列出所有的后台进程;’f’是’-forest’的缩写。输出的格式如下: ps 329 ? SW 0:00 [wdm] ps 342 ? R 9:57 \_ /usr/X11R6/bin/X :0 vt7 -fbbpp 16 -auth /usr/etc/ ps 343 ? SW 0:00 \_ [wdm] ps 364 ? S 0:45 \_ /usr/bin/enlightenment ps 399 ? S 0:00 \_ /usr/bin/ssh-agent sh /home/tuneup/.xse ps 404 ? S 2:28 \_ gkrellm -wm ps 787 ? S 0:05 \_ aterm -fg white -tr ps 788 ttyp0 SW 0:00 \_ [bash] ps 792 ttyp0 S 0:00 \_ vim todo ps 注:另外一种得到格式化输出结果的方法是:pstree -pu 列目录时如何显示中文文件名 ==================================== 我们可以使用--show-control-chars命令选项来显示。 例如: $ls --show-control-chars 以通过修改fstab来实现,在fstab中加入类似内容: fstab /dev/hda1 /mnt/c vfat defaults,codepage=936,iocharset=cp936 0 0 查询你的CPU等级 ==================================== cat /proc/cpuinfo 如何使用户没有telnet和ftp权限 ==================================== 若只希望用户没telnet权限,则需要修改/etc/passwd中对应该用户的shell为/bin/true。 若只希望用户没有telnet和ftp权限,则需要修改/etc/passwd中对应该用户的shell为/bin/false。 如何连续执行一个命令 ==================================== 使用watch命令,可以反复执行命令,如果和ls配合,可以达到观察某文件大小变化的效果。例如: $watch ls -l file.name 如何防止某个关键文件被修改 ==================================== 在linux下,有些配置文件是不允许任何人包括root修改的,为了防止被误删除或修改,可以设定该文件的"不可修改位(immutable)"。 例如: chattr +i /etc/fstab 如果需要修改文件则: chattr -i /etc/fstab 以后再修改文件。 linux环境下如何undelete ==================================== 先在自己的主目录下创建一个名为.trash的子目录,然后在bashrc加入以下指令: alias rm 'mv -f !* ~/.trash' alias undel 'mv ~/.trash/!* ./!*' alias cleantrash '/bin/rm -rf ~/.trash; mkdir ~/.trash;sync' alias lrm 'ls ~/.trash' 若文档是直接用rm命令删除的,理论上 ext2 内 rm 掉的档案还是可以用 debugfs , ext2ed 救回来的.当然... 被 overwrite 掉就没救了。 find 如何找出磁盘中某个大小范围内的文件 find ==================================== find 比如要查找磁盘中大于3M的文件: find find . -size +3000k -exec ls -ld {} ; 如何快速重新执行已经执行过的命令 ==================================== 使用!可以实现该功能,例如你前面执行了很多命令,现在突然想执行上一次执行的./configure命令,则只需要输入“!./con”即可而无需使用上下键来滚动查找。 而!!则能代替前面一个命令。比如刚执行过一次ifconfig,输入“!!”则等于再执行一次ifconfig。 而且这两个用法可以和其他命令组合,比如你刚执行过ifconfig,然后执行man !!,就等于执行man ifconfig。 当终端出现混乱时,如何让它恢复正常 ==================================== 当使用stty命令而出现一些混乱或者更糟的是,使用一个程序而使终端设置完全混乱了时怎么办?要回到“现实”,试试下面的命令: stty sane 如果击键变得混乱时,试着用<CTRL+j>来把命令括起来,输入<CTRL+j>的顺序是先按下CTRL再键入j键。 <ctrl+j>ctty sane <ctrl+j> 这个命令不会回到先前的设置,但却可以去除一些稀奇古怪的设置。而真正会出现什么设置要依赖于所使用的系统,但它至少会让你能输入字符,并见到结果。从这里开始,你可以把一些组合键设置为你所喜欢的方式。 tar 如何将.gz文件分割为数个1.44mb tar ==================================== tar 把一个文件分割到软盘: tar tar cfvm /dev/fd0 file.tar.gz tar 把软盘上的文件合并到硬盘: tar tar xvfm /dev/fd0 如何一次处理一整个目录 ==================================== Linux/UNIX 的很多常用命令如 rm , cp 等都有一个参数---- -r , 是递归的意思, 命令里加了参数 -r 就可以对目标目录及其下所有子目录进行操作,如: rm -rf /test (f 是 force 意为强行) 该命令完全删除根目录下的子目录 test ,作用类似于 dos 下的 deltree ,当然使用这个命令时要特别小心。再如: cp -r /test /test1 有类似 dos 下 xcopy /s 的作用。 redhat下如何允许root通过telnet登录? ==================================== 方法1:/etc/securetty ( 加入 pts/0 、pts/1、...) # echo "pts/0" >> /etc/securetty 方法2:为了在redhat linux系统中激活远程登陆,从文件/etc/pam.d/login中移去下面这一行: auth required /lib/security/pam_security.so 将/etc/securetty这个文件改名就行啦,该文件是定义root只能在tty1~tty6的终端上登录的,详细的信息可以"man login"。 reboot Linux正常重新启动的方法有很多种,下面介绍几种常用的重新启动方法: reboot ==================================== reboot Ctrl+Alt+Del reboot #init 6 reboot #shutdown -r now reboot #reboot 为什么我的linux不允许普通用户登录? ==================================== 以root的身份登录系统,检查是不是有/etc/nologin这个文件,删除这个文件,然后再以普通用户的身份登录。相信问题已经解决。 出现这种问题一般是因为系统在关闭的过程中意外中断了操作,如断线或者是插头被拔了之类的意外。而系统在关闭的过程中会自动的产生这个文件,以便通知用户系统正在关闭这就造成普通用户无法登录了。 另外一种原因是系统管理员在对系统进行维护,为了维护的过程中不受其他用户的影响,需要生成这个文件来禁止其他用户登录。但很不幸系统管理维护完以后忘记删除这个文件了。 chown 如何改变当前路径下所有目录和文件的所有权 chown ==================================== chown 改变所有子目录及文件的所有权 chown #chown -R owner[.group] * chown 也可以用find命令来实现: chown #find . -exec chown owner[.group] {} ; 改变所有子目录及文件的属性 在你要改变属性的目录下,输入命令: #chmod -R 777 * 就可以改变下面所有子目录及文件的属性,不过使用这个命令的时候要特别小心,要是在根目录下打入这个命令,你所有文件的属性都将改变,这就会引起很大的安全性问题。 如何快速查找文件 ==================================== 查找文件可以用find,但最好是用locate,速度快,参数少。 $locate filename 它是在一个数据库里面查找,所以,要记得经常用updatedb命令更新数据库。一般地,在crontab中的cron.daily脚本会执行/usr/sbin/logrotate /etc/logrotate.conf命令,让机子在每天深夜更新数据库。 如何将Linux或FreeBSD复制到另一颗硬盘 ? ==================================== Linux上的系统复制很简单,使用cp -ax将partition资料复制过去,重开机後设定lilo就可以了。 FreeBSD也可以用cp来复制文档,但是对于复制整个文档系统并不是好方法。 这里介绍使用dump和restore来做: 创建新的文档系统 假如你的新硬盘为ad1, 而将来的根分区将是ad1s1a, 你可以先创建文档系统: newfs /dev/ad1s1a mount /dev/ad1s1a /mnt cd /mnt 复制: dump -f- / | restore -f- -r 这是把老的根文档系统复制输出到管道,restore从管道里读数据,写入当前目录所在的文档系统。 按部就班复制其他文档系统 复制完後,也许 要修改新硬盘下的/etc/fstab,安装上新的分区,摘下老硬盘就可以了。 再补充一点,如果你要复制的是另外一台机器,可以用rsh,这样就可以通过网络把一个分区数据传送到另外一台机器,不需要NFS,不需SAMBA等就可以解决问题,而cp就很难作到了。 newfs /dev/ad1s1a mount /dev/ad1s1a /mnt cd /mnt rsh -l yourname thathost 'dump -f- /' | restore -f- -r linux怎么给一个普通用户reboot权限? ==================================== 分四种情况讨论: 1.让任何人(包括根本不拥有系统帐号的人)都可以通过控制台reboot 在/etc/inittab文件中保留ca::ctrlaltdel:/sbin/shutdown -t3 -r now 这一行。这样全国人民都可以reboot你的机器,只要你把控制台交出来。 2.让所有系统用户都可以reboot 执行# > /etc/security/console.apps/reboot即可。这就在console.apps目录下生成了一个空文件,文件名就是授权的application。以上路径是针对Mandrake系统而言的,其他系统我不清楚。不过,真正高雅的Mandraker或许根本就不会去靠“>”来生成这个文件??????他们会使用msec来进行控制的。 3.让指定的用户才可以reboot 假设我们要让用户zhizunbao拥有reboot的权限,我们靠uid/gid来完成控制: # groupadd reboot # cd /usr/local # mkdir reboot # chown root:reboot reboot/ # chmod 750 reboot/ # cd reboot # cp /sbin/reboot . # chmod 4755 reboot # usermod -G reboot zhizunbao bugkill 回复于:2005-11-05 17:04:26 现在,zhizunbao就可以运行/usr/local/reboot/reboot来重启动机器。 4.在一台不设普通用户的机器上启用口令验证reboot 这实际上是靠添加一个关机帐号来实现的,该帐号的shell就是加了s位的/sbin/halt,并且口令只有少数维护人员知道。我们这里采用的就是第4套方案。 怎样知道自己的机器上有哪些服务在运行 ==================================== 若一台机器运行有很多不需要的服务,那么被攻击者入侵的可能性就会大大加大,因此作为管理员就应该经常查看系统运行有哪些服务。 首先查看系统运行的进程 若需要查看系统当前运行的所有进程,就需要用如下命令: # ps auxw 其中参数a表示显示系统中所有用户的的进程;u表示输出进程用户所属信息;x表示也显示没有控制台的进程;若显示行太长而被截断则可以使用f参数; 查看系统监听的服务 # netstat -ln l表示显示当前系统监听的端口信息;n表示端口按照端口号来显示,而不转换为service文件中定义的端口名;若希望了解各个端口都是由哪些进程监听则可以使用p参数。 若发现不需要的服务,可以使用linuxconf或ntsysv命令来关闭这些服务在系统启动时自启动,然后重新启动系统则这些服务将在运行。 有些服务是由inetd超级服务器来监控的,则需要标记/etc/inetd.conf来关闭这些服务。 查询端口对应的服务 ==================================== # lsof -i :端口号 查询此端口对应的服务。 vi 中设置自动缩进 ==================================== :set autoindent :set ai 取消 :set noautoindent :set noai 如何使linux系统对ping不反应 ==================================== 在linux里,如果要想使ping 没反应也就是用来忽略icmp包。可以用: echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all 若想恢复就用: echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all 如何实现多网卡bondin ==================================== 使用多块网卡虚拟成为一块网卡,具有相同的IP地址。这项技术其实在sun和cisco中已经存在,分别称为Trunking和etherchannel技术,在Linux中,这种技术称为bonding。 因为bonding在内核2.4.x中已经包含了,只需要在编译的时候把网络设备选项中的Bonding driver support选中就可以了。 然后,重新编译核心,重新起动计算机,执行如下命令: ismod bonding ifconfig eth0 down ifconfig eth1 down ifconfig bond0 ipaddress ifenslave bond0 eth0 ifenslave bond0 eth1 现在两块网卡已经象一块一样工作了.这样可以提高集群节点间的数据传输. 你最好把这几句写成一个脚本,再由/etc/rc.d/rc.local调用,以便一开机就生效. bonding对于服务器来是个比较好的选择,在没有千兆网卡时,用两三块100兆网卡作bonding,可大大提高服务器到交换机之间的带宽.但是需要在交换机上设置连接bonding网卡的两个口子映射为同一个虚拟接口。 Removing ^M from file ====================================================== if you have transferred a file from MS Windows to UNIX, you might find that the file looks like this: bleh bleh ^M leh leh ^M tey tey tey^M This is because Windows uses carridge return and newline to indicate a new line. Here are a number of ways to get rid of the ^M characters: 1- cat filename1 | tr -d "^V^M" > newfile 2- sed -e "s/^V^M//" filename > outputfilename where ^V is actually control-V and ^M is actually control-M (you must type these yourself, don't just copy and paste this command from this web page) 3-vi solution : open file with vi 1. hit the ESC key 2. :%s/^V^M// 3 - some distributions contain a command called dos2unix which removes these carridge return characters 4- use the texteditor vim (www.vim.org) and edit the file. If all the lines (not only some) contain consistently the carridge return characters then vim will show [textmode] and when you change the mode with the command :set notextmode it will remove them. Create /dev/null ==================================== I have moved a file to /dev/null and now my system doesn't work If you move a file with the mv command to "/dev/null" then it will be overwritten with an ordinary file. How to fix it: Boot your system. If it doesn't boot take a one disk distribution like Toms rtbt and mount your /dev/hdXX partition. Now type in a shell "mknod /dev/null c 1 3" to create a nod file. /dev/null is the path where the nod file will be saved. The c stands for a character device and the two numbers are the major and the minor numbers for the null device. After that you must change with "chmod 666 /dev/null" the read, write and execute permissions. With "ls -alF /dev/" you will see all nod files with it's own three parameters like "crw-rw-rw- 1 root root 1, 3 Oct 4 11:34 null ". You will see a "c" in the near of the rwx flags an a " 1, 3" left of the date. Howto log in to your server passwordless via ssh ( rsa version ) ==================================== Create your private and public keys via ssh-keygen program $ ssh-keygen Computing keys Testing the keys.. Key generation complete.. Enter the file in which to save the key (/usr/home/murat/.ssh/identity) Press enter for the default value... Your identification has been saved in /usr/home/murat/.ssh/identity Your public ket is: blah....blah...blah.... Your public key has been saved in /usr/home/murat/.ssh/identity.pub Now that we have created our `public` key, take your public key which is ~/.ssh/identity.pub to your server, in the ~/.ssh/ directory, create a file named authorized_keys and append the content of identity.pub file to your authorized_keys file now, in your machine, type $ ssh -l username your_remote_machine.domain.com Boom, no password, no headache, you're in the other side...;) Blocking anyone to su to root ==================================== The su (Substitute User) command allows you to become other existing users on the system. For example you can temporarily become "root" and execute commands as the super-user "root". If you don't want anyone to su to root or restrict "su" command to certain users then add the following two lines to the top of your "su" configuration file in the "/etc/pam.d/" directory. 1- Edit the su file (vi /etc/pam.d/su) and add the following two lines to the top of the file: auth sufficient /lib/security/pam_rootok.so debug auth required /lib/security/pam_wheel.so group=wheel After adding the two lines above, the "/etc/pam.d/su" file should look like this: #%PAM-1.0 auth sufficient /lib/security/pam_rootok.so debug auth required /lib/security/pam_wheel.so group=wheel auth required /lib/security/pam_pwdb.so shadow nullok account required /lib/security/pam_pwdb.so password required /lib/security/pam_cracklib.so password required /lib/security/pam_pwdb.so shadow use_authtok nullok session required /lib/security/pam_pwdb.so session optional /lib/security/pam_xauth.so Which means only those who are a member of the "wheel" group can su to root; and to add a user to wheel group use: root# usermod -G10 username Ok, now everybody can not be root using su. When an user that is not in wheel group runs su command ,he/she can not be root even if he/she writes correct root password. Disable reboot,halt ,shutdown for users ==================================== On Redhat [root@apache /]# rm -f /etc/security/console.apps/halt [root@apache /]# rm -f /etc/security/console.apps/poweroff [root@apache /]# rm -f /etc/security/console.apps/reboot [root@apache /]# rm -f /etc/security/console.apps/shutdown [root@apache /]# rm -f /etc/security/console.apps/xserver (if removed, root will be the only user able to start x). mkdir -p rep1/rep2/rep3 一次建多个目录 rm -rf /tmp/.??* /tmp/* 删除所有文件,包括隐藏文件 You can put this into /etc/rc.d/init.d/syslog into the "stop)" section. This will clean up /tmp at every shutdown and keep your disk tidy. Do not run the above command while running X11 or before you run startx. X11 needs the /tmp/.font-unix which is created by xfont server and X11 it self creates the directory /tmp/.X11-unix which is needed to talk to the X11 windows. 1、BIOS的安全设置 这是最基本的了,也是最简单的了。一定要给你的BIOS设置密码,以防止通过在BIOS中改变启动顺序,而可以从软盘启动。这样可以阻止别有用心的试图用特殊的启动盘启动你的系统,还可以阻止别人进入BIOS改动其中的设置,使机器的硬件设置不能被别人随意改动。 2、LILO的安全设置 LILO是LInux LOader的缩写,它是LINUX的启动模块。可以通过修改“/etc/lilo.conf”文件中的内容来进行配置。在/etc/lilo.conf文件中加如下面两个参数:restricted,password。这三个参数可以使你的系统在启动lilo时就要求密码验证。 第一步:编辑lilo.conf文件(vi /etc/lilo.comf),假如或改变这三个参数: boot=/dev/hda map=/boot/map install=/boot/boot.b prompt timeout=00 #把这行该为00,这样系统启动时将不在等待,而直接启动LINUX message=/boot/message linear default=linux restricted #加入这行 password= #加入这行并设置自己的密码 image=/boot/vmlinuz-2.4.2-2 label=linux root=/dev/hda6 read-only 第二步:因为"/etc/lilo.conf"文件中包含明文密码,所以要把它设置为root权限读取。 # chmod 0600 /etc/lilo.conf 第三步:更新系统,以便对“/etc/lilo.conf”文件做的修改起作用。 # /sbin/lilo -v 第四步:使用“chattr”命令使"/etc/lilo.conf"文件变为不可改变。 # chattr +i /etc/lilo.conf 这样可以在一定程度上防止对“/etc/lilo.conf”任何改变(意外或其他原因) 3、让口令更加安全 口令可以说是系统的第一道防线,目前网上的大部分对系统的攻击都是从截获口令或者猜测口令开始的,所以我们应该选择更加安全的口令。 bugkill 回复于:2005-11-05 17:04:58 首先要杜绝不设口令的帐号存在。这可以通过查看/etc/passwd文件发现。例如,存在的用户名为test的帐号,没有设置口令,则在/etc/passwd文件中就有如下一行: test::100:9::/home/test:/bin/bash 其第二项为空,说明test这个帐号没有设置口令,这是非常危险的!应将该类帐号删除或者设置口令。 其次,在旧版本的linux中,在/etc/passwd文件中是包含有加密的密码的,这就给系统的安全性带来了很大的隐患,最简单的方法就是可以用暴力破解的方法来获得口令。可以使用命令/usr/sbin/pwconv或者/usr/sbin/grpconv来建立/etc/shadow或者/etc/gshadow文件,这样在/etc/passwd文件中不再包含加密的密码,而是放在/etc/shadow文件中,该文件只有超级用户root可读! 第三点是修改一些系统帐号的Shell变量,例如uucp,ftp和news等,还有一些仅仅需要FTP功能的帐号,一定不要给他们设置/bin/bash或者/bin/sh等Shell变量。可以在/etc/passwd中将它们的Shell变量置空,例如设为/bin/false或者/dev/null等,也可以使用usermod -s /dev/null username命令来更改username的Shell为/dev/null。这样使用这些帐号将无法Telnet远程登录到系统中来! 第四点是修改缺省的密码长度:在你安装linux时默认的密码长度是5个字节。但这并不够,要把它设为8。修改最短密码长度需要编辑login.defs文件(vi/etc/login.defs),把下面这行 PASS_MIN_LEN 5 改为 PASS_MIN_LEN 8 login.defs文件是login程序的配置文件。 4、自动注销帐号的登录 在unix系统中root账户是具有最高特权的。如果系统管理员在离开系统之前忘记注销root账户,那将会带来很大的安全隐患,应该让系统会自动注销。通过修改账户中“TMOUT”参数,可以实现此功能。TMOUT按秒计算。编辑你的profile文件(vi /etc/profile),在"HISTFILESIZE="后面加入下面这行: TMOUT=300 300,表示300秒,也就是表示5分钟。这样,如果系统中登陆的用户在5分钟内都没有动作,那么系统会自动注销这个账户。你可以在个别用户的“.bashrc”文件中添加该值,以便系统对该用户实行特殊的自动注销时间。 改变这项设置后,必须先注销用户,再用该用户登陆才能激活这个功能。 5、取消普通用户的控制台访问权限 你应该取消普通用户的控制台访问权限,比如shutdown、reboot、halt等命令。 # rm -f /etc/security/console.apps/ 是你要注销的程序名。 6、取消并反安装所有不用的服务 取消并反安装所有不用的服务,这样你的担心就会少很多。察看“/etc/inetd.conf”文件,通过注释取消所有你不需要的服务(在该服务项目之前加一个“#”)。然后用“sighup”命令升级“inetd.conf”文件。 第一步: 更改“/etc/inetd.conf”权限为600,只允许root来读写该文件。 # chmod 600 /etc/inetd.conf 第二步: 确定“/etc/inetd.conf”文件所有者为root。 第三步: 编辑 /etc/inetd.conf文件(vi /etc/inetd.conf),取消下列服务(你不需要的):ftp, telnet, shell, login, exec, talk, ntalk, imap, pop-2, pop-3, finger, auth等等。把不需要的服务关闭可以使系统的危险性降低很多。 第四步: 给inetd进程发送一个HUP信号: # killall -HUP inetd 第五步: 用chattr命令把/ec/inetd.conf文件设为不可修改,这样就没人可以修改它: # chattr +i /etc/inetd.conf 这样可以防止对inetd.conf的任何修改(以外或其他原因)。唯一可以取消这个属性的人只有root。如果要修改inetd.conf文件,首先要是取消不可修改性质: # chattr -i /etc/inetd.conf 别忘了该后再把它的性质改为不可修改的。 7、TCP_WRAPPERS 使用TCP_WRAPPERS可以使你的系统安全面对外部入侵。最好的策略就是阻止所有的主机("/etc/hosts.deny"文件中加入"ALL: ALL@ALL, PARANOID" ),然后再在"/etc/hosts.allow" 文件中加入所有允许访问的主机列表。 第一步: 编辑hosts.deny文件(vi /etc/hosts.deny),加入下面这行 # Deny access to everyone. ALL: ALL@ALL, PARANOID 这表明除非该地址包在允许访问的主机列表中,否则阻塞所有的服务和地址。 第二步: 编辑hosts.allow文件(vi /etc/hosts.allow),加入允许访问的主机列表,比如: ftp: 202.54.15.99 foo.com 202.54.15.99和 foo.com是允许访问ftp服务的ip地址和主机名称。 第三步: tcpdchk程序是tepd wrapper设置检查程序。它用来检查你的tcp wrapper设置,并报告发现的潜在的和真实的问题。设置完后,运行下面这个命令: # tcpdchk 8、修改“/etc/host.conf”文件 “/etc/host.conf”说明了如何解析地址。编辑“/etc/host.conf”文件(vi /etc/host.conf),加入下面这行: # Lookup names via DNS first then fall back to /etc/hosts. order bind,hosts # We have machines with multiple IP addresses. multi on # Check for IP address spoofing. nospoof on 第一项设置首先通过DNS解析IP地址,然后通过hosts文件解析。第二项设置检测是否“/etc/hosts”文件中的主机是否拥有多个IP地址(比如有多个以太口网卡)。第三项设置说明要注意对本机未经许可的电子欺骗。 9、使“/etc/services”文件免疫 使“/etc/services”文件免疫,防止未经许可的删除或添加服务: # chattr +i /etc/services 10、不允许从不同的控制台进行root登陆 "/etc/securetty"文件允许你定义root用户可以从那个TTY设备登陆。你可以编辑"/etc/securetty"文件,再不需要登陆的TTY设备前添加“#”标志,来禁止从该TTY设备进行root登陆。 在/etc/inittab文件中有如下一段话: # Run gettys in standard runlevels 1:2345:respawn:/sbin/mingetty tty1 2:2345:respawn:/sbin/mingetty tty2 #3:2345:respawn:/sbin/mingetty tty3 #4:2345:respawn:/sbin/mingetty tty4 #5:2345:respawn:/sbin/mingetty tty5 #6:2345:respawn:/sbin/mingetty tty6 系统默认的可以使用6个控制台,即Alt+F1,Alt+F2...,这里在3,4,5,6前面加上“#”,注释该句话,这样现在只有两个控制台可供使用,最好保留两个。然后重新启动init进程,改动即可生效! 11、使用PAM(可插拔认证模块)禁止任何人通过su命令改变为root用户su(Substitute User替代用户)命令允许你成为系统中其他已存在的用户。如果你不希望任何人通过su命令改变为root用户或对某些用户限制使用su命令,你可以在su配置文件(在"/etc/pam.d/"目录下)的开头添加下面两行: 编辑su文件(vi /etc/pam.d/su),在开头添加下面两行: auth sufficient /lib/security/pam_rootok.so auth required /lib/security/Pam_wheel.so group=wheel 这表明只有"wheel"组的成员可以使用su命令成为root用户。你可以把用户添加到“wheel”组,以使它可以使用su命令成为root用户。添加方法可以用这个命令:chmod -G10 username 。 12、Shell logging Bash shell在“~/.bash_history”(“~/”表示用户目录)文件中保存了500条使用过的命令,这样可以使你输入使用过的长命令变得容易。每个在系统中拥有账号的用户在他的目录下都有一个“.bash_history”文件。bash shell应该保存少量的命令,并且在每次用户注销时都把这些历史命令删除。 第一步: “/etc/profile”文件中的“HISTFILESIZE”和“HISTSIZE”行确定所有用户的“.bash_history”文件中可以保存的旧命令条数。强烈建议把把“/etc/profile”文件中的“HISTFILESIZE”和“HISTSIZE”行的值设为一个较小的数,比如30。编辑profile文件(vi/etc/profile),把下面这行改为: HISTFILESIZE=30 HISTSIZE=30 这表示每个用户的“.bash_history”文件只可以保存30条旧命令。 第二步: 网管还应该在"/etc/skel/.bash_logout" 文件中添加下面这行"rm -f $HOME/.bash_history" 。这样,当用户每次注销时,“.bash_history”文件都会被删除。 编辑.bash_logout文件(vi /etc/skel/.bash_logout) ,添加下面这行: rm -f $HOME/.bash_history 13、禁止Control-Alt-Delete键盘关闭命令 在"/etc/inittab" 文件中注释掉下面这行(使用#): ca::ctrlaltdel:/sbin/shutdown -t3 -r now 改为: #ca::ctrlaltdel:/sbin/shutdown -t3 -r now 为了使这项改动起作用,输入下面这个命令: # /sbin/init q 14、给"/etc/rc.d/init.d" 下script文件设置权限 给执行或关闭启动时执行的程序的script文件设置权限。 # chmod -R 700 /etc/rc.d/init.d/* 这表示只有root才允许读、写、执行该目录下的script文件。 15、隐藏系统信息 在缺省情况下,当你登陆到linux系统,它会告诉你该linux发行版的名称、版本、内核版本、服务器的名称。对于黑客来说这些信息足够它入侵你的系统了。你应该只给它显示一个“login:”提示符。 首先编辑"/etc/rc.d/rc.local" 文件,在下面显示的这些行前加一个“#”,把输出信息的命令注释掉。 # This will overwrite /etc/issue at every boot. So, make any changes you # want to make to /etc/issue here or you will lose them when you reboot. #echo "" > /etc/issue #echo "$R" >> /etc/issue bugkill 回复于:2005-11-05 17:07:12 #echo "Kernel $(uname -r) on $a $(uname -m)" >> /etc/issue # #cp -f /etc/issue /etc/issue.net #echo >> /etc/issue 其次删除"/etc"目录下的“isue.net”和"issue"文件: # rm -f /etc/issue # rm -f /etc/issue.net 16、禁止不使用的SUID/SGID程序 如果一个程序被设置成了SUID root,那么普通用户就可以以root身份来运行这个程序。网管应尽可能的少使用SUID/SGID 程序,禁止所有不必要的SUID/SGID程序。 查找root-owned程序中使用's'位的程序: # find / -type f ( -perm -04000 -o -perm -02000 ) -exec ls -lg {} \; 用下面命令禁止选中的带有's'位的程序: # chmod a-s [program] 风流涕淌 回复于:2005-11-05 17:13:16 精华 南极星 回复于:2005-11-05 17:13:37 把这些加到一句话里不吧~ bugkill 回复于:2005-11-05 17:16:33 我加不进去呀 这里限制10000个字节 风流涕淌 回复于:2005-11-05 17:16:37 建议整理成pdf的 这样可以随时拿来看 maxsailor 回复于:2005-11-05 17:19:44 强烈的顶一下 bugkill 回复于:2005-11-06 10:10:21 风流涕淌 问题解决了吗 bugkill 回复于:2005-11-06 10:28:35 在加几个 1.怎样找回windows启动菜单 删除Linux之后,Linux的LILO却仍旧留在系统之中,使得机器启动的第一个界面不能回到选择Windows的菜单。本文告诉你解决之道: 随着Linux的影响越来越广泛,许多电脑爱好者也开始在自己的爱机上安装Linux。于是,硬盘上除了原来的几个Windows系统之外,还要加上一个Linux,开机时看到的第一个操作系统选择菜单也变成了Linux的LILO或GRUB。但是,一段时间之后,由于实在不习惯使用Linux,或者硬盘空间紧张等原因,一些人又决定删除Linux。虽然删除Linux的过程很顺利,但LILO却留了下来。那么,如何才能删除LILO,恢复Windows的启动界面呢? LILO(或GRUB)是Linux的启动管理器。当前的大多数Linux发行版默认把LILO装入到主硬盘的主引导记录(MBR)。这就是安装Linux之后,机器启动的第一个画面变成Linux LILO的原因。 安装Linux的时候,我们可以要求安装程序把Linux启动管理器安装到另一个硬盘驱动器或启动软盘,避免Linux启动器改写MBR。但是,对于第一次安装Linux的用户,或者采用自动安装模式的用户,很可能不会想到Linux启动管理器改写MBR的问题。MBR被改写之后,Windows本身的启动模块仍没有丢失,只是现在需要通过Linux的启动管理器LILO或GRUB才能访问它了。 那么,如何才能清除LILO或GRUB,返回Windows本身的启动界面?对于只有一个Windows的系统,很简单:制作一张包含FDISK程序的启动软盘,用软盘启动机器,然后在命令行执行FDISK /MBR。这个命令重置MBR,使得系统直接启动Windows。但是,如果系统在安装Linux之前有多个Windows,按照这种方式运行FDISK /MBR命令将覆盖Windows多重启动菜单,使得机器只能从默认的主操作系统启动。 要清除LILO或GRUB返回以前的Windows启动界面,最快速、可靠的办法是使用Windows的故障恢复控制台。故障恢复控制台可以从Windows CD访问,也可以安装到系统上。如果要从CD运行故障恢复控制台,假设机器的主操作系统是Windows XP,先用WinXP CD启动机器,出现提示时,选择手工恢复(按R键)。 直接把故障恢复控制台安装到系统上可以加快处理速度。首先,打开Win XP的命令行窗口(选择菜单“开始”→“运行”,执行cmd);然后,在CD-ROM中插入WinXP光盘,在命令行上运行D:\i386\winnt32.exe/cmdcons命令,其中D:是CD-ROM驱动器的盘符。安装结束后,下一次启动时就可以从Windows启动屏幕选择故障恢复控制台了。 如果机器上安装了一个以上的Win XP系统,故障恢复控制台会提示要修复的是哪一个Win XP。这时,应当选择最后安装的系统,然后输入管理员的密码登录该WinXP。在命令行上,输入fixmbr并按Enter。系统提示说已经有一个不合法的启动记录存在,不必理会,只需确认继续操作即可。重新启动,Windows启动菜单又回来了。 2.解决fstab 用光盘启动. 在安装界面的分区前. 按Alt+F1 进入字符界面 mkdir /rt mount /rt /dev/hda0 vi /rt/etc/fstab 3.linux安全检查 1、安全检查 作为一个系统管理员来说,定期对系统作一次全面的安全检查很重要的,最近遇到一些朋友来信说出现了一些莫名其妙的问题,例如最大的一个问题就是明显感觉网络服务缓慢,这极有可能是被攻击的现象。实践证明,无论是那种系统,默认安装都是不安全的,实际不管你用windows也好,linux,bsd或其他什么系统,默认安装的都有很多漏洞,那怎么才能成为安全的系统呢,这正是我们系统管理人员需要做的事情。配置配置再配置。任何系统,只要细心的配置,堵住已知的漏洞,可以说这个系统是安全的,其实并非很多朋友说的那样,安装了系统,配置了防火墙,安装了杀毒软件,那么就安全了,其实如果对系统不作任何安全设置,那就等于向黑客敞开一扇纸做的大门,数十分钟就能完全控制! 这并非骇人听闻。 作为linux系统,同样存在很多漏洞,黑可能利用这些漏洞控制你的整个系统,要防止这些问题,我们需要做以下步骤: 1、 升级系统中所有软件包的最新版本; 2、 设置较为强壮的防火墙; 3、 定期检查关键记录文件,配置杀毒软件 4、 多关心一下发布安全信息警告的网站,掌握一些最新的病毒和黑客程序的特点,这些都利于系统的正常运作。 这篇文章主要以优化为主,为了配合这一主题,安全部分我们只讨论一下日常的一些维护工作。 除了上面列出的4条是管理员必修之课外,对一些linux系统细节的维护也很重要。 包括: 1、 配置日志轮训工具,定期下载备份日志,是个非常好的习惯,这样不但能减少日志的消耗的磁盘空间,提高系统效率,更能及时发现问题,linux下有些很好的系统日志分析器,能直接提取日志中的特殊项目,省去了阅读日志的烦恼; 2、 使用命令lsof –i ,netstat –a ,ps –e等命令,定期检查系统服务端口监听等情况,也可制作一个定期执行的脚本,将这些命令定期执行后发到邮箱中; 3、 定期检查root用户的history列表,last列表,vipw用户列表是否正常; 4、 定期备份文件,用tar命令就能很好的备份了,当然需要下载这些备份并转移介质; 如一点发现有任何特别的没见过的情况或端口,那么要引起足够的重视 bugkill 回复于:2005-11-07 11:22:32 ----------------------------经典图书篇-------------------------- 0001 GNU/Linux高级网络应用服务指南 linuxaid网站 机械工业出版社 优点:又全又精,全都是实战之作 缺点:针对版本较低:redhat 6.2 0002 Linux Apache Web Server管理指南 Charles Aulds 机械工业出版社 优点:目前我还没有发现哪个关于apache的问题这本书没有讲过 缺点:针对1.3.x,最新的针对2.0.*的中文版待出 0003 Linux内核情景分析 浙江大学出版社 优点:太透彻了,没法不懂 缺点:还是版本问题,呵呵,内核更新太快了,不过还是必读 0004 Unix环境高级编程 Richard Stevens 机械工业出版社 优点:博大精深 缺点:初学者是很难理解的,否则怎么叫《高级编程》呢? 0005 编程精粹--Microsoft编写优质无错c程序秘诀 Steve Maguire 电子工业出版社 优点:不说了,作者是VC开发组的组长 缺点:很难找了,1994年出的 0006 understanding the linux kernel第二版 0007 UNIX操作系统教程(英文版)(弱智) by Syed Mansoor Sarwar ... 机械工业出版社 特点:浅显易懂,着重unix基础概念和整体理解,顺便复习英语。 缺点:目前没有中文版 0008 UNIX编程环境(弱智) by Brian W.Kernighan, Rob Pike 陈向群 等译 机械工业出版社 特点:浅显,深入浅出讲解如何使用UNIX及各种工具,简单介绍Unix的编程环境;对比“UNIX环境高级编程”, 此书适合新手入门。 缺点:目前没有英文版 0009 The Art of UNIX Programming(hutuworm) 作者: Eric Steven Raymond 网址: http://catb.org/esr/writings/taoup/html/ 优点: E.S. Raymond经典著作的优点就不用说了 缺点: 一直更新,目前版本0.73,看完了又给你出一新版,感觉很不爽 0010 unix网络编程--卷一《套接口API和X/Open传输接口API》(slg1972) 清华 W.Richard Stevens著(已故) 详细地讲解了unix网络的编程 非入门级的东西 0011 unix网络编程--卷二《进程间通讯》(slg1972) 清华 W.Richard Stevens著(已故) 详细讲解了unix之间的进程,线程之间的关系,以及各种不同标准的进程编程的异同。 非入门级的东西 0012 unix网络编程--卷三《应用程序》(slg1972) 我至今也没有买到,应该也不错。 0013 《基于C++ CORBA高级编程》(slg1972) 清大 Michi Henning,Steve Vinoski著 中间界的好书,通向corba应用的必备资料 [ 本帖最后由 bugkill 于 2005-11-7 11:41 编辑 ] bugkill 回复于:2005-11-07 11:28:31 ---------------------------------------非入门篇---------------------------------- 1.安装Linux时,Swap区要设置为多大才合适? 一般来说(非大负荷服务器),如果内存在256MB以下,Swap区以设为内存的两倍为宜; 内存在256MB及其以上,Swap区设为128MB即可。 2.Linux下如何访问Windows分区(FAT32格式)内容? 答:在Linux下访问硬盘分区的内容,必须先用mount命令将分区加载到Linux的某个目录下才能访问。 先用“fdisk -l”命令(某些版本可能需要用“fdisk -l 硬盘设备名”)查看硬盘分区情况,操作如下: $ fdisk -l Disk /dev/hda: 255 heads, 63 sectors, 4865 cylinders Units = cylinders of 16065 * 512 bytes Device Boot Start End Blocks Id System /dev/hda1 1 386 3100513+ b Win95 FAT32 /dev/hda2 * 387 388 16065 83 Linux /dev/hda3 389 4865 35961502+ f Win95 Extd (LBA) /dev/hda5 389 399 88326 82 Linux swap /dev/hda6 400 1445 8401963+ b Win95 FAT32 /dev/hda7 1446 1963 4160803+ b Win95 FAT32 /dev/hda8 1964 2491 4241128+ 83 Linux /dev/hda9 2492 3537 8401963+ b Win95 FAT32 /dev/hda10 3538 4347 6506293+ b Win95 FAT32 /dev/hda11 4348 4865 4160803+ 83 Linux 可以看到,硬盘上有5个Windows分区,分别是/dev/hda1、/dev/hda6、/dev/hda7、/dev/hda9、/dev/hda10。 mount命令的一般使用方法如下: mount -t 分区格式 分区位置 加载位置 要访问/dev/hda1的内容,可以用以下代码进行加载: $ mount -t vfat /dev/hda1 /mnt/c -t vfat表示类型是vfat(Windows 95 FAT32)分区格式;/dev/hda1是被加载的分区位置;/mnt/c代 表Linux里/mnt目录下的名字为c的目录,如果不存在,则先用mkdir命令建立这个目录。如果要求对分区 进行写操作,则用以下命令: $ mount -rw -t vfat /dev/hda1 /mnt/c 其中的-rw参数表示Read和Write。 3.如何使Windows分区里面的中文文件名(目录名)正确显示? 用mount命令加载Windows分区后,中文常显示为“?”号。 这是因为发行版自带的内核默认用ISO-8859编码来处理加载上的Windows分区 文件(目录)名,只能处理单字节的英文字体而无法显示双字节的中文字体。要正 确显示,可以用下面的代码加载Windows分区: $ mount -t vfat -o iocharset=cp936 /dev/hda1 /mnt/c 这个命令能让内核以cp936编码处理Windows分区的文件(目录)名,从而正确显示中文文件(目录)名。 还有一个“一劳永逸”的方法,即重新配置内核, 在“File systems”-“Native Language Support”-“Default NLS Option”里填入cp936。重新 编译内核后,无需加上-o iocharset=cp936参数也能正确显示。 4.为何使用-rw参数加载Windows分区后,只有root用户能够读写,普通用户还是只能读、不能写? 直接用mount -rw加载的Windows分区,所有文件对普通用户都只有读权限而没有写权限 (但root用户有写权限)。要想让普通用户也能读写,可在mount命令中加上umask=000参数,代码如下: $ mount -rw -t vfat -o umask=000,iocharset=cp936 /dev/hda1 /mnt/c 5.如何让Linux启动时自动进入图形化界面? 编辑/etc/inittab文件,找到下面这行代码: id:3:initdefault: 它定义Linux进入系统后执行的init动作级别,共有以下6个级别: 级别0,挂起、关机模式; 级别1,单用户模式; 级别2,多用户模式,但没有网络功能; 级别3,全功能的单用户模式; 级别4,没用到; 级别5,X11模式,也就是图形化界面模式; 级别6,重起模式。 很明显,要自动进入图形化界面,将3改成5即可。注意千万不要设成0或6,否则Linux开机后进入系统 就会自动关机或自动重起。 5..如何让普通用户也能使用声卡? 应用程序默认通过访问/dev/dsp这个设备文件来使用声卡。在某些版本中,/dev/dsp设备的权 限设置成只有root用户可以访问(读)。要想让普通用户也使用/dev/dsp,执行以下命令: $ chmod 666 /dev/dsp 6.如何使xmms播放MP3时正确显示中文歌曲列表? xmms默认使用的字体是ISO-8859编码,不能处理双字节字体。以xmms 1.2.7为例,要正确显示中文, 可以进行以下操作:运行xmms,在主窗口点击右键;在弹出的选单里选择“选项”-“功能设定”-“Fonts”; 选中“Use fontssets”和“Use X font”选项;然后点击“浏览”按钮,在弹出的“字形选择”窗口中选择 一种中文字体(如fangsong ti);点击“应用”即可见到效果。 7.如何用vi编辑和保存文件? vi是Linux终端下或控制台下常用的编辑器,基本的操作方式为: vi /路径/文件名 例如,vi /etc/fstab表示显示/etc/fstab文件的内容。使用键盘上的Page Up和Page Down键可以上下 翻页;按下Insert键,可以见到窗口左下角有“Insert”字样,表示当前为插入编辑状态,这时从键盘输入的 内容将插入到光标位置;再按下Insert键,左下角将有“Replace”字样,表示当前为替换编辑状态,这时从键 盘输入的内容将替换光标位置的内容。编辑完内容后,按下Esc键,并输入“:wq”,然后回车就可以保存退出。 如果不想保存而直接退出,则按下Esc键后,输入“:q!”,然后回车即可。“wq”表示Write和Quit,即保存 退出;“q!”表示忽略修改强行退出。 8.重装Windows后,LILO启动选单不见了,启动时无法进入Linux系统,如何恢复? 如果安装Linux过程中制作了启动软盘,可用它启动进入Linux系统,再执行lilo命令恢复即可。如果 没有启动盘,那么可以用Linux安装光盘按以下步骤恢复。 1.根分区和/boot分区是同一分区,用Linux发行版光盘启动计算机,看到安装欢迎画面后,按下ALT+2,将 转到控制台(出现“bash#”字样);然后执行以下命令: $ mkdir /mnt/root #建立目录 $ mount /dev/hda* /mnt/root   #hda*是原来Linux的根分区,有时要用-t参数指定分区类型 $ chroot /mnt/root   #将/mnt/temp目录转成根目录。 这步如果成功,将显示“bash-2.0.5#”字样,然后执行以下命令: $ cd /sbin   $ ./lilo   #如果要重新设置LILO的安装位置,需要先自行修改/etc/lilo.conf $ exit $ umount /mnt/root #一定要执行umount,否则磁盘容易出错。 最后重起计算机即可。 2.如果/boot为一个单独分区,由于重写引导管理器时也将重写/boot下的一些文件,所以需要将/boot挂 到正确的位置。用Linux发行版光盘启动计算机,看到安装画面后,按下Alt+2,转到控制台,执行以下命令: $ mkdir /mnt/root $ mount /dev/hda* /mnt/root $ mount /dev/hdaX /mnt/root/boot  #hdaX是原来的/boot所在分区,比如/dev/hda2 $ chroot /mnt/root  #将/mnt/temp目录转成根目录. 这步如果成功,将显示“bash-2.0.5#”字样,然后执行以下命令: $ cd /sbin $ ./lilo #如果要重新设置LILO的安装位置,也要先自行修改/etc/lilo.conf $ exit   $ umount /mnt/root/boot $ umount /mnt/root 最后重起计算机即可。 2003.07.03 1.我的系统是kde,root用户,以前锁定屏幕的时候总是有时候可以有时候失灵。锁定失灵的时候总有 一个kdesktop_lock进程僵死,把它杀掉就可以锁定。究其原因是我全屏运行vmware一断时间后,screensaver被 激活,但是无法运行,把自动运行屏保选项去掉。 [ 本帖最后由 bugkill 于 2005-11-7 11:44 编辑 ] bugkill 回复于:2005-11-07 11:32:31 --------------------------linux网上资源 ----------------------------------------------- 国外 http://lwn.net/ http://www.tldp.org/ http://www.yolinux.com/ http://www.justlinux.com/ http://www.linuxtoday.com/ http://www.linuxquestions.org/ http://www.fokus.gmd.de/linux/ http://www.linux-tutorial.info/ http://public.www.planetmirror.com/ http://www.freebsdforums.org/forums/ http://www.netfilter.org/documentation/ http://www-106.ibm.com/developerworks/linux/ 国内 http://www.fanqiang.com/ http://www.linuxsir.com/ http://www.chinaunix.net/ http://www.linuxfans.org/(deadcat) http://www.linuxeden.com/ http://www.linuxforum.net/ http://www.linuxaid.com.cn/ http://freesoft.online.sh.cn/ http://www-900.ibm.com/developerWor...nux/index.shtml http://www.neweasier.com/software.html ytlxx 回复于:2005-11-07 12:18:42 好,收藏 xy-coordinate 回复于:2005-11-07 12:34:29 这下有事干了!! 谢谢楼主! 有整篇的文档可以下载吗? 牙齿晒太阳 回复于:2005-11-07 12:39:15 不错,有些命令技巧没用过,支持 bugkill 回复于:2005-11-07 16:50:35 引用:原帖由 xy-coordinate 于 2005-11-7 12:34 发表 这下有事干了!! 谢谢楼主! 有整篇的文档可以下载吗? 整篇文档我得整理,关键CU有限制哈哈咱们得遵守宪法(1000字节) 我慢慢整理下你在下好了 e_david 回复于:2005-11-14 11:12:06 强烈支持 bugkill 回复于:2005-11-30 09:06:44 Linux学习之桌面FAQ 问:现在许多Linux发行版本都有一个自定义的统一图形登录界面,但我还是想换回以前KDE自己的登录界面,请问应该如何修改? 答:如果不喜欢这些发行商提供的统一图形登录界面,可以试试看这些发行版本中是否自带有调整图形登录界面的工具(例如SuSE就提供有该工具)。如果没有,也可以按照下面介绍的一个比较通用的方法进行手工修改。 首先修改/etc/inittab文件。找到以下一行: x:5:respawn:/urs/bin/X11/xdm -nodaemon 在Fodera Core 2中可能是这样的: x:5:respawn:/etc/X11/kdm -nodaemon 将这一行改为以下内容: x:5:respawn:/usr/bin/kdm –nodaemon 其中,“/urs/bin/kdm”要根据系统kdm的所在路径来修改,并保存退出。 然后重启机器,或是执行以下命令使修改生效: # init 5 问:如何在KDE启动时自动运行一个应用程序? 答:最常用的方法是利用KDE提供的Autostart功能,具体操作方法如下: 1. 开启Konqueror; 2. 从选单“Go”中选择“Autostart”; 3. 单击鼠标右键,选择“New”-“File”-“Link”,以建立一个新的应用程序链接; 4. 在打开的窗口中单击“Application”标签,输入要自运动行的应用程序的启动命令,确认即可。 问:在Linux的图形界面中可以用键盘控制鼠标动作吗? 答:xFree86提供了利用键盘来控制鼠标指针的特性。要使用此功能,可同时按下Ctrl+Shift+NumLook键,看是否可以通过键盘上的小数字键盘来控制鼠标。具体操作方法如下: 1. 小数字键盘上的四个方向键可以控制鼠标光标移动的四个方向; 2. 小数字键盘上的“+”表示双击; 3. 小数字键盘上的“5”表示单击; 4. 小数字键盘上的“0”表示按住选择按钮不放; 5. 小数字键盘上的“.”表示放开按钮。 问:为什么在Linux下用Xpdf看中中文文档时,有时可以正常显示,有时却是乱码,而在Windows下看又都是正常的? 答:这是一个常见的问题,之所以出现这种现象是因为有一些PDF文件内嵌了中文字体,这种PDF文件一般在Xpdf下能显示。但还是有一些文件内嵌中文字体需要本机上有对应字体才能显示,而有些字体由于版权的原因在Linux中是不存在的,所以Xpdf没有办法显示出来。对于这个问题,目前还没有很好的办法解决。 问:如何使用Linux的dd命令? 答:通过dd命令可以把指定的输入文件拷贝到指定的输出文件中,并且在拷贝过程中可以进行格式转换。dd命令的使用举例如下: # dd if = /dev/had of=had.bak bs=512 count=1 dd命令的各参数解释如下: if = file 输入文件名; of = file 输入文件名; bs = n 设置输入、输出块的大小为n字节; count = blocks 只拷贝输入的blocks块。 问:如何设置同一帐号同一时间段内只能做一次登录?即当一个帐号登录系统后,在不退出的情况下,同一帐号不能再次登录系统。 答:要控制同一帐号同一时间段内登录的个数,首先需在/etc/pam.d/loginwj文件中加入如下一行: session required /lib/security/pam-limits.so 然后,在“/etc/security/limits.conf”文件中加上要做限制的帐号,比如“edward hard maxlogins1”,这表示edward帐号最多只能做一次登录。 问:为什么使用Ctrl+Alt+Delete失效? 答:编译/etc/inittab文件,将“ca::ctrlaltedl:/sbin/shutdown –t3 –r now这一行注释掉。 问:怎么把光盘做成镜像文件? 答:使用下面命令可以把光盘做成镜像文件: # cp /mnt/cdrom mirror.iso 也可以使用命令: # dd if=/dev/cdrom of=/mirror.iso 问:如何让几个命令在一行命令行中一次执行? 答:用“;”或者“&&”分隔。比如,编译内核时可以这样用: # make dep;make modules;make modules-install 也可以这样用: # make bzImage&&make install 问:如何使用crontab命令实现每天定时关机? 答:首先建立一个文件,文件名称caoproject(名称自己设定): # crontab –e 文件内容如下: 05 06 * * * halt – p 用vi编辑后存盘退出。使用crontab命令添加到任务列表中: #crontab caoproject 这样系统在每天的6点05分会自动关闭计算机。 bugkill 回复于:2005-11-30 09:07:18 Linux学习之系统FAQ 问:Linux系统中,有哪些主要的日志子系统? 答:连接时间日志由多个程序执行,把记录写到/var/log/wtmp和/var/run/utmp,并由login等程序更新wtmp和utmp文件,使系统管理员能够跟踪谁在何时登录到系统。 进程统计由系统内核执行。当一个进程终止时,为每个进程向进程统计文件(Pacct或acct)中写一个记录。进程统计的目的是为系统中的基本服务提供命令使用统计。 错误日志由syslogd(8)执行。各种系统守护进程、用户程序和内核通过syslogd(3)向文件/var/log/messages报告值得注意的事件。另外,有许多Unix程序创建日志。像HTTP和FTP这样提供网络服务的服务器也保持详细的日志。 问:Linux下tar和rsync区别? 答:tar命令用来建立最初的副本,rsync命令则是用来获取最后一个副本建立以来所发生的变更。在不存在任何目标文件时,tar比rsync要快。如果两个文件系统差异很小,则rsync比tar快许多。 问:Linux有哪些常用的系统维护文件? 答:(1)/etc/hosts:主机名字解析文件,提供主机名和IP地址的对应。 (2)/etc/passwd:包含有口令文件、登录用户名、加密口令、用户ID、组ID、初始工作目录和Shell路径等信息。 (3)/etc/grofup:包含有组名、加密密码、组ID及所有属于该组的用户的信息等。 (4)/etc/profile:可以设置通用环境变量。 (5)/etc/inittab:内部初始化之后,系统将启动/etc/init这个Deamon进程,使 /etc/init进程取得引导序列是控制权。 问:如果/var目录空间不够用,可以移到新的硬盘空间中吗? 答:当然可以,但是要注意两点: 1.不是简单的从/ var目录下拷贝资料,而是要用tarzcvf 和zxvf命令打包和解包到新的挂载点,这样才能保证/var的链接文件不会受破坏。 2.从紧急启动软盘引导启动,如果没有准备就用Linux 安装光盘用 rescue模式进入系统,把/etc/fstab这个文件中的/var分区修改成现在的挂载点。最后退出重新启动,使挂载生效。 问:我的Linux每次启动直接进入图形界面,有什么方法可以直接进入终端吗? 答:修改/ e t c / i n i t t a b 文件,找到“i b:X :initdefault”,其中X表示启动方式,改为3表示终端,改为5表示图形。 问:Linux下怎么实现分卷压缩? 答:用tar命令每卷50M分卷压缩,命令如下: # tar zcvfp – mytarfilr.tar.gz | split –d –b 50m 问:如何用USB盘启动Linux系统? 答:首先查看主版是否支持从USB盘启动,启动时,需要到BIOS下设置从USB设备启动。进入BIOS的“AdvancedBIOS Features”下的“first boot device”选项,就有usb-fdd、 usb-hdd、usb-zip和usb-cdrom等USB设备的启动选项了,然后制作一张Linux启动盘。将 boot.img保存在根分区下,运行命令:“dmesg”,查看USB盘设备号。一般是sda。 运行如下命令: # dd if=/boot.img of = /dev/sda 如果显示如下,则表示制作成功。 2880 +0 records in 2880 +0 records out 问:我在应用一些特别消耗虚拟内存的程序(如g++)时,发现swap空间已经用完,如何临时增加swap空间呢? 答:如果是临时增加swap空间,可以使用swap文件来实现。如果增加128MB的swap空间,可以使用以下命令来实现: # lsof –i :22 COMMAND PID USER FD TYPE DEVICE SIZENODE NAME sshd 1826 root 3u IPv6 2770 TCP *:ssh(LISTEN) # dd if=/dev/zero of=/swap bs=1024 count=131070 # mkswap /swap Setting up swapspace version 1,size = 134209 kB # swapo swapoff swapon 其中,count参数是swap文件的大小,of参数是swap文件的名称。请注意,在存放swap文件的分区上要有相应的空间,如上例中“/”分区至少要有128MB的可见才行。使用完毕后,可以用以下命令解释这128MB的swap分区: # swapoff /swap # rm /swap 问:如何防止以外或别人故意修改文件? 答:对系统中的一些关键文件和个人重要资料,可以通过文件权限来保护,例如将文件属性设为600。另外,如果Linux使用的是ext2或ext3文件系统,还可以使用“chattr”命令,给文件加上i属性,即使root用户也不能直接修改或删除这类文件,以有效防止意外修改情况的发生。具体命令如下: # chattr +i passwd 去除i属性使用如下命令: # chattr –i passwd 问:我在Windows下不小心把swap分区格式化了,请问有什么命令可以恢复? 答:使用mkswap命令建立swap分区,再使用swapon命令启用swap分区即可。关于命令的使用,举例如下: #mkswap /dev/sda7 # swapon /dev/sda7 bugkill 回复于:2005-11-30 09:12:28 Linux学习之网络FAQ 问:如何变更Sendmail邮件的默认存储位置? 答:如果Sendmail使用Procmail作为MDA(邮件投递代理)的话,可以使用Procmail来指定接收邮件的默认存储位置。方法如下: 1.建立/etc/procmailrc文件; 2.编辑/etc/procmailrc文件,指定环境变量“MAIL”的路径,比如设为“$HOME/mbox”等。 问:如何修改网卡MAC地址? 答:在/etc/sysconfig/nework-scripts/ifcfg-ethx文件中加入如下代码: MACADDR=00:11:33:44:55#(your modified macaddress) 然后键入以下命令: Service network restart 问:如何关闭Sendmail的Relay功能? 答:Relay就是指别人能用这台SMTP邮件服务器给任何人发信,这样别有用心的垃圾邮件发送者可以使用他人的邮件服务器大量发送垃圾邮件,而最后别人投诉的不是垃圾邮件发送者,而是他人的服务器,所以必须关闭Open Relay。办法是到Linux服务器的/etc/mail目录,编辑access文件,去掉“*relay”之类的设置,一般只留“localhost relay”和“127.0.0.1 relay”两条即可。注意,修改access文件后还要执行命令“makemap hash access.db<access”使修改生效。 问:Postfix如何设置发送邮件延迟通知? 答:因为考虑到信件流量的问题,所以Postfix缺省不发送通知。可以在main.cf中这样设置: delay-warning-time = 4 此设置表示,如果有信件因故延迟发送,每4个小时就会给发送者发信提示信件延迟发送。 问:Linux下如何管理SSH监听端口? 答:从安全角度考虑,SSH应当取代Telnet。目前在Linux上使用广泛的SSH服务器软件sshd-config(默认路径是/etc/ssh/sshd-config)文件中,Port 22是sshd监听的端口,即为连接到主机时需要使用的端口。使用以下代码可以指定sshd监听的接口地址: ListenAddress 192.168.0.254 这样,就可以避免向未知的用户提供登录服务。 问:Linux下如何高效率使用1000兆网卡? 答:系统加载模块时,可以根据实际情况调节参数,使网卡工作在最佳状态。驱动重新提供的可选择参数有速率、工作模式、自适应和流控等。 在Linux下,可以定义合法速率参数为0、10、100和1000。却省为0,表示网卡工作在自适应状态下,其他值分别为10Mb、100Mb和1000Mb。 工作模式有全、半双工方式。0表示适应;1表示半双工;2表示全双工。 自适应方式的有效期值范围0~3。0表示不设置流控;1表示仅对Rx流控;2表示仅对Tz流控;3表示对Rx/Tx双向流控。缺省为3。 问:如何使Linux系统对ping不良反应? 答:要使Linux对ping没反应,也就是使Linux系统忽略I CMP包。用如下命令可以达到此目的: #echo 1 > /proc/sys/net/ipv4/icmp-echo-ignore-all 若想恢复,可用如下命令: # echo 0 > /proc/sys/net/ipv4/icmp-echo-ignore-all 问:基于Apache的HTTPD或Sendmail服务在启动时被挂起了,如何解决此问题? 答:遇到此类问题,请确认/etc/hosts文件中是否包含如下一行: 127.0.0.1 localhost.localdomainlocalhoat 127.0.0.1 是网络的回路地址。 问:已知网络中一个机器的硬件地址,如何知道它所对应的IP地址? 答:在Linux下,假定要查“00:0A:EB:27:17:B9”这样一个硬件地址所对应的IP地址,可以使用以下命令: # cat /proc/net/arp |grep 00:0A:EB:27:17:B9 192.168.2.54 0x1 0x6 00:0A:EB:27:17:B9 *eth2 另外,还可以用“arp -a”命令查询: # arp –a|grep 00:0A:EB:27:17:B9 ?(192.168.2.54)at 00:0A:EB:27:17:B9[ether] oneth2 问:在Linux下如何绑定IP地址和硬件地址? 答:可以编辑一个地址对应文件,里面记录了IP地址和硬件地址的对应关系,然后执行“arp –f 地址对应文件”。如果没有指定地址对应文件,则通常情况下一默认文件/etc/ethers为准。地址对应文件的格式如下: 192.168.2.11 00:0D:61:27:58:93 192.168.2.13 00:40:F4:2A:2E:5C 192.168.2.18 00:0A:EB:5E:BA:8E bjchenxu 回复于:2005-11-30 09:50:50 准备分批加入一句话问答:) coderror 回复于:2005-11-30 11:13:10 SO GOOD !!!! bugkill 回复于:2005-12-21 09:53:23 1.如何安装rpm软件包 rmp软件包的安装可以使用程序rpm来完成。执行下面的命令 rpm -i your-package.rpm 其中your-package.rpm是你要安装的rpm包的文件名,一般置于当前目录下。 安装过程中可能出现下面的警告或者提示: ... conflict with ... 可能是要安装的包里有一些文件可能会覆盖现有 的文件,缺省时这样的情况下是无法正确安装的可以用 rpm --force -i 强制安装即可 ... is needed by ... ... is not installed ... 此包需要的一些软件你没有安装可以用 rpm --nodeps -i 来忽略此信息 也就是说,rpm -i --force --nodeps 可以忽略所有依赖关系和文件问题,什么包 都能安装上,但这种强制安装的软件包不能保证完全发挥功能 2.如何安装.src.rpm软件包 有些软件包是以.src.rpm结尾的,这类软件包是包含了源代码的rpm包,在安装时 需要进行编译。这类软件包有两种安装方法, 方法一: 1.执行rpm -i your-package.src.rpm 2. cd /usr/src/redhat/SPECS 3. rpmbuild -bp your-package.specs 一个和你的软件包同名的specs文件 4. cd /usr/src/redhat/BUILD/your-package/ 一个和你的软件包同名的目录 5. ./configure 这一步和编译普通的源码软件一样,可以加上参数 6. make 7. make install 方法二: 1.执行rpm -i you-package.src.rpm 2. cd /usr/src/redhat/SPECS 前两步和方法一相同 3. rpmbuild -bb your-package.specs 一个和你的软件包同名的specs文件 这时,在/usr/src/redhat/RPM/i386/ (根据具体包的不同,也可能是i686,noarch等等) 在这个目录下,有一个新的rpm包,这个是编译好的二进制文件。 执行rpm -i new-package.rpm即可安装完成。 3.如何卸载rpm软件包 使用命令 rpm -e 包名,包名可以包含版本号等信息,但是不可以有后缀.rpm 比如卸载软件包proftpd-1.2.8-1,可以使用下列格式: rpm -e proftpd-1.2.8-1 rpm -e proftpd-1.2.8 rpm -e proftpd- rpm -e proftpd 不可以是下列格式: rpm -e proftpd-1.2.8-1.i386.rpm rpm -e proftpd-1.2.8-1.i386 rpm -e proftpd-1.2 rpm -e proftpd-1 有时会出现一些错误或者警告: ... is needed by ... 这说明这个软件被其他软件需要,不能随便卸载 可以用rpm -e --nodeps强制卸载 4.如何不安装但是获取rpm包中的文件 使用工具rpm2cpio和cpio rpm2cpio xxx.rpm | cpio -vi rpm2cpio xxx.rpm | cpio -idmv rpm2cpio xxx.rpm | cpio --extract --make-directories 参数i和extract相同,表示提取文件。v表示指示执行进程 d和make-directory相同,表示根据包中文件原来的路径建立目录 m表示保持文件的更新时间。 5.如何查看与rpm包相关的文件和其他信息 下面所有的例子都假设使用软件包mysql-3.23.54a-11 1.我的系统中安装了那些rpm软件包 rpm -qa 讲列出所有安装过的包 如果要查找所有安装过的包含某个字符串sql的软件包 rpm -qa |grep sql 2.如何获得某个软件包的文件全名 rpm -q mysql 可以获得系统中安装的mysql软件包全名,从中可以获得 当前软件包的版本等信息。这个例子中可以得到信息mysql-3.23.54a-11 3.一个rpm包中的文件安装到那里去了? rpm -ql 包名 注意这里的是不包括.rpm后缀的软件包的名称 也就是说只能用mysql或者mysql-3.23.54a-11而不是mysql-3.23.54a-11.rpm。 如果只是想知道可执行程序放到那里去了,也可以用which,比如 which mysql 4.一个rpm包中包含那些文件 一个没有安装过的软件包,使用rpm -qlp ****.rpm 一个已经安装过的软件包,还可以使用rpm -ql ****.rpm 5.如何获取关于一个软件包的版本,用途等相关信息? 一个没有安装过的软件包,使用rpm -qip ****.rpm 一个已经安装过的软件包,还可以使用rpm -qi ****.rpm 6.某个程序是哪个软件包安装的,或者哪个软件包包含这个程序 rpm -qf `which 程序名` 返回软件包的全名 rpm -qif `which 程序名` 返回软件包的有关信息 rpm -qlf `which 程序名` 返回软件包的文件列表 注意,这里不是引号,而是`,就是键盘左上角的那个键。 也可以使用rpm -qilf,同时输出软件包信息和文件列表 7.某个文件是哪个软件包安装的,或者哪个软件包包含这个文件 注意,前一个问题中的方法,只适用与可执行的程序,而下面的方法,不仅可以 用于可执行程序,也可以用于普通的任何文件。前提是知道这个文件名。 首先获得这个程序的完整路径,可以用whereis或者which,然后使用rpm -qf例如: # whereis ftptop ftptop: /usr/bin/ftptop /usr/share/man/man1/ftptop.1.gz # rpm -qf /usr/bin/ftptop proftpd-1.2.8-1 # rpm -qf /usr/share/doc/proftpd-1.2.8/rfc/rfc0959.txt proftpd-1.2.8-1 总结: 获得软件包相关的信息用rpm -q,q表示查询query,后面可以跟其他选项,比如 i 表示info,获得软件包的信息; l 表示list,获得文件列表; a 表示all,在所有包中执行查询; f 表示file,根据文件进行相关的查询; p 表示package,根据软件包进行查询 需要的查询条件可以使用grep产生,或者从"` `"中的命令行产生 6.关于rpm软件包的一些相关知识 1.什么是rpm rpm 即RedHat Package Management,是RedHat的发明之一 2.为什么需要rpm 在一个操作系统下,需要安装实现各种功能的软件包。这些软件包一般都有各自的 程序,但是同时也有错综复杂的依赖关系。同时还需要解决软件包的版本,以及安装, 配置,卸载的自动化问题。为了解决这些问题,RedHat针对自己的系统提出了一个 较好的办法来管理成千上百的软件。这就是RPM管理系统。在系统中安装了rpm管理系统 以后,只要是符合rpm文件标准的打包的程序都可以方便的安装,升级,卸载 3.是不是所有的linux都使用rpm 任何系统都需要包管理系统,因此很多linux都使用rpm系统。但rpm系统是为RH专门 但是TL,Mandrake等系统也都使用rpm。由于rpm的源程序可以在别的系统上进行编译, 所以有可能在别的系统上也使用rpm 除了rpm,其他一些系统也有自己的软件包管理程序,例如debian的deb包, slakware也都有自己的包管理系统 4.rpm包的文件名为什么那么长 rpm包的文件名中包含了这个软件包的版本信息,操作系统信息,硬件要求等等。 比如mypackage-1.1-2TL.i386.rpm,其中mypackage是在系统中登记的软件包的名字 1.1是软件的版本号,2是发行号,TL表示用于TL操作系统,还可能是RH等。i386表示 用于intel x86平台,还可能是sparc等。 5.软件包文件名中的i386,i686是什么意思 rpm软件包的文件名中,不仅包含了软件名称,版本信息,还包括了适用的硬件架构 的信息。 i386指这个软件包适用于intel 80386以上的x86架构的计算机(AI32) i686指这个软件包适用于intel 80686以上(奔腾pro以上)的x86架构的计算机(IA32) noarch指这个软件包于硬件架构无关,可以通用。 i686软件包的程序通常针对CPU进行了优化,所以,向后兼容比较用以,i386的包在 x86机器上都可以用。向前一般不兼容。不过现在的计算机,奔腾pro以下的CPU已经很少 用,通常配置的机器都可以使用i686软件包 6.不同操作系统发行的rpm包可否混用? 对于已经编译成二进制的rpm包,由于操作系统环境不同,一般不能混用。 对于以src.rpm发行的软件包,由于需要安装时进行本地编译,所以通常可以在不同 系统下安装。 7.使用rpm时遇到的一些特殊问题 Q 我用rpm -e **.rpm无法删除rpm包 A 包名不要包括rpm, rpm -e 包名,可以包含版本号等信息,但是不可以有后缀.rpm 8. 在MS的系统下有没有读RPM文件的工具? A wincmd with rpm plugins..... 9. 是否可以通过ftp安装安装升级rpm包? A 可以。rpm -ivh ftp://xxxxxxxx/PATH2SomeRPM 10. rpm安装时已有的包版本过高怎么办? A 有时由于安装的软件包太老,而系统中相关的软件包版本比较新,所以可能需要 安装的包依赖的一些文件会找不到。这时有两种解决办法, 第一是在系统文件中找到和需要的文件功能相同或相似的文件,做一个符号链接到 需要的目录下。 第二是下载安装新版本的软件包。 |
![]() |
原文链接:http://bbs.chinaunix.net/viewthread.php?tid=641596 |
相关阅读 更多 +
排行榜 更多 +