linux问题精华

---------------------------- 网络无关篇 --------------------------
0001
修改主机名
vi /etc/sysconfig/network
,修改 HOSTNAME 一行为 "HOSTNAME= 主机名 "( 没有这行?那就添加这一行吧 ) ,然后运行命令 " hostname 主机名 " 。一般还要修改 /etc/hosts 文件中的主机名。这样,无论你是否重启,主机名都修改成功。

0002
Red Hat Linux 启动到文字界面 ( 不启动 xwindow)
vi /etc/inittab
id:x:initdefault:
x=3:
文本方式 x=5: 图形方式

0003
linux 的自动升级更新问题
对于 redhat ,在 [url]www.redhat.com/corp/support/errata/[/url] 找到补丁, 6.1 以后的版本带有一个工具 up2date ,它能够测定哪些 rpm 包需要升级,然后自动从 redhat 的站点下载并完成安装。
升级除 kernel 外的 rpm: up2date -u
升级包括 kernel 在内的 rpm: up2date -u -f

由于 Red Hat Network SSL 证书过期,所以应在 rhn_register || up2date 之前先执行一行 script 以更新证书:
wget -q -O - [url]https://rhn.redhat.com/help/new-cert.sh[/url] | /bin/bash

Debian
跟别的发行版还是有很大的差别的,用 Debian 做服务器维护更加方便;红帽的升级其实挺麻烦的,当然,如果你交钱给红帽的话,服务是会不一样的。
Debian
下升级软件:
apt-get update
apt-get upgrade
前提:配置好网络和 /etc/apt/sources.list ,也可以用 apt-setup 设置。

0004
windows 下看 linux 分区的软件
Paragon.Ext2FS.Anywhere.2.5.rar
explore2fs-1.00-pre4.zip

0005
mount 用法
fat32
的分区 mount -o codepage=936,iocharset=cp936 /dev/hda7 /mnt/cdrom
ntfs
的分区 mount -o iocharset=cp936 /dev/hda7 /mnt/cdrom
iso
文件 mount -o loop /abc.iso /mnt/cdrom
软盘 mount /dev/fd0 /mnt/floppy
USB
闪存 mount /dev/sda1 /mnt/cdrom
在有 scsi 硬盘的计算机上,如果用上面的命令挂载 usb 闪存,则会 mount /boot 分区。这种情况,应该先用 fdisk -l /dev/sd? 来看看到底 usb 闪存盘是在哪个设备下 ( 通常会是 sdb 或者 sdc) 。比如某台机器上,就是在 sdc1 上面。
所有 /etc/fstab 内容 mount -a
可以指定文件格式 "-t 格式 ", 格式可以为 vfat, ext2, ext3 .
访问 DVD mount -t iso9660 /dev/dvd /mnt/cdrom mount -t udf /dev/dvd /mnt/cdrom
注意: dvd 的格式一般为 iso9660 udf 之一

0006
vmware LINUX 中使用本地硬盘的 FAT 分区
将本地的 FAT 分区共享,然后在 VMWARE 中使用 SMBFS 挂上。可以将如下的行放到 /etc/fstab 中:
//win_ip/D$ /mnt/d smbfs defaults,auto,username=win_name,password=win_pass,codepage=936,iocharest=gb2312 0 0
其中 win_ip 是你的 windows IP 地址;
D$
是你的 windows 里面共享的 D 盘的共享名;
/mnt/d
是要将该分区 mount linux 的目录;
win_name
win_pass 是你的 WINDOWS 里面可以读取该分区的用户,比如你的管理员名和密码。
如果你运行了 /etc/rc.d/init.d/netfs ,那么在启动的时候就会自动挂载这个分区。

0007.a
删除名为 -a 的文件
rm ./-a
rm -- -a  
告诉 rm 这是最后一个选项,参见 getopt
ls -i
列出 inum ,然后用 find . -inum inum_of_thisfile -exec rm '{}' \;

0007.b
删除名为 \a 的文件
rm \\a

0007.c
删除名字带的 / 和‘ \0' 文件
这些字符是正常文件系统所不允许的字符,但可能在文件名中产生,如 unix 下的 NFS 文件系统在 Mac 系统上使用
1.
解决的方法,把 NFS 文件系统在挂到不过滤 '/' 字符的系统下删除含特殊文件名的文件。
2.
也可将错误文件名的目录其它文件移走, ls -id 显示含该文件目录的 inum umount 文件系统,
clri
清除该目录的 inum fsck mount check your lost+found rename the file in it.
最好是通过 WINDOWS FTP 过去就可以删除任何文件名的文件了 !

0007.d
删除名字带不可见字符的文件
列出文件名并转储到文件: ls -l  >aaa
然后编辑文件的内容加入 rm 命令使其内容成为删除上述文件的格式:
vi aaa
[rm -r *******
]
把文件加上执行权限 chmod +x aaa
执行 $aaa

0007.e
删除文件大小为零的文件
rm -i `find ./ -size 0`
find ./ -size 0 -exec rm {} \;

find ./  -size 0 | xargs rm -f &

for file in *   #
自己定义需要删除的文件类型
do
    if [ ! -s ${file} ]
    then
        rm ${file}

        echo "rm $file Success!"
    fi
done

0008
redhat 设置滚轮鼠标
进入 X 后,选择鼠标的配置,选择 wheel mouse(ps/2) 就可以了,
如果鼠标表现异常,重启计算机即可。
(
或者 su, vi /etc/X11/XF86Config, PS/2 改成 ImPS/2)

0009
加装 xwindow
linux 光盘启动,选择升级,然后单独选择包,安装即可

0010
删除 linux 分区
做一张 partition magic 的启动软盘 , 启动后删除 . 或者用 win2000 的启动光盘启动 , 然后删除 .

0011
如何退出 man
q

0012
不编译内核, mount ntfs 分区
原装 rh8 ,未升级或编译内核
1.
google.com 搜索并下载 kernel-ntfs-2.4.18-14.i686.rpm
2. rpm -ivh kernel-ntfs-2.4.18-14.i686.rpm
3. mkdir /mnt/c
4. mount -t ntfs /dev/hda1 /mnt/c

Read only: [url]http://www.linux-ntfs.org/[/url]
Read/Write: [url]http://www.jankratochvil.net/project/captive/[/url]

0013
tar 分卷压缩和合并
以每卷 500M 为例
tar
分卷压缩: tar cvzpf - somedir | split -d -b 500m
tar
多卷合并: cat x* > mytarfile.tar.gz

0014
使用 lilo/grub 时找回忘记了的 root 口令
三种办法:
1.
在系统进入单用户状态,直接用 passwd root 去更改
2.
用安装光盘引导系统,进行 linux rescue 状态,将原来 / 分区挂接上来 , 作法如下:
cd /mnt
mkdir hd
mount -t auto /dev/hdaX(
原来 / 分区所在的分区号) hd
cd hd
chroot ./

passwd root
这样可以搞定
3.
将本机的硬盘拿下来,挂到其他的 linux 系统上,采用的办法与第二种相同
rh8

. lilo
   1.
在出现 lilo: 提示时键入 linux single
      
画面显示 lilo:  linux single
   2.
回车可直接进入 linux 命令行
   3. #vi /etc/shadow
      
将第一行,即以 root 开头的一行中 root: 后和下一个 : 前的内容删除,
      
第一行将类似于
      root::......
      
保存
   4. #reboot
重启, root 密码为空
. grub
   1.
在出现 grub 画面时,用上下键选中你平时启动 linux 的那一项 ( 别选 dos ) ,然后按 e
   2.
再次用上下键选中你平时启动 linux 的那一项 ( 类似于 kernel /boot/vmlinuz-2.4.18-14 ro root=LABEL=/) ,然后按 e
   3.
修改你现在见到的命令行,加入 single ,结果如下:
      kernel /boot/vmlinuz-2.4.18-14 single ro root=LABEL=/
   4.
回车返回,然后按 b 键启动,即可直接进入 linux 命令行
   5. #vi /etc/shadow
      
将第一行,即以 root 开头的一行中 root: 后和下一个 : 前的内容删除,
      
第一行将类似于
      root::......
      
保存
   6. #reboot
重启, root 密码为空

0015
使 ctrl + alt + del 失效
vi /etc/inittab
ca::ctrlaltdel:/sbin/shutdown -t3 -r now 这行注释掉,就可以了

0016
如何看出 redhat 的版本是 7 还是 8

cat /proc/version
或者 cat /etc/redhat-release 或者 cat /etc/issue

0017
文件在哪个 rpm
[url]www.rpmfind.net[/url] 上搜,或者 rpm -qf 文件名得到

0018
man info 的信息存为文本文件
tcsh 为例:
man tcsh | col -b > tcsh.txt
info tcsh -o tcsh.txt -s

0019
利用现存两个文件,生成一个新的文件
1.
取出两个文件的并集 ( 重复的行只保留一份 )
2.
取出两个文件的交集 ( 只留下同时存在于两个文件中的文件 )
3.
删除交集,留下其他的行
1. cat file1 file2 | sort | uniq
2. cat file1 file2 | sort | uniq -d
3. cat file1 file2 | sort | uniq -u

0020
设置 com1 口,让超级终端通过 com1 口进行登录
确认有 /sbin/agetty ,编辑 /etc/inittab ,添加
7:2345:respawn:/sbin/agetty /dev/ttyS0 9600
9600bps
是因为联路由器缺省一般都是这种速率,也可以设成
19200
38400 57600 115200
修改 /etc/securetty ,添加一行: ttyS0 ,确保 root 用户能登录
重启机器,就可以拔掉鼠标键盘显示器(启动时最好还是要看看输出信息)了

0021
删除目录下所有文件包括子目录
rm -rf
目录名

0022
查看系统信息
cat /proc/cpuinfo - CPU (i.e. vendor, Mhz, flags like mmx)
cat /proc/interrupts -
中断
cat /proc/ioports -
设备 IO 端口
cat /proc/meminfo -
内存信息 (i.e. mem used, free, swap size)
cat /proc/partitions -
所有设备的所有分区
cat /proc/pci - PCI
设备的信息
cat /proc/swaps -
所有 Swap 分区的信息
cat /proc/version - Linux
的版本号 相当于 uname -r
uname -a -
看系统内核等信息

0023
去掉多余的回车符
sed 's/^M//' test.sh > back.sh
注意 ^M 是敲 ctrl_v ctrl-m 得到的
或者 dos2unix filename

0024
切换 X 桌面
如果你是以图形登录方式登录 linux ,那么点击登录界面上的 session (任务)即可以选择 gnome kde 。如果你是以文本方式登录,那执行 switchdesk gnome switchdesk kde ,然后再 startx 就可以进入 gnome kde
(
或者 vi ~/.xinitrc ,添加或修改成 exec gnome-session exec startkde
然后用 startx 启动 X)

0025
通用的声卡驱动程序
OSS [url]www.opensound.com/[/url]   ALSA [url]www.alsa-project.org/[/url]

0026
改变 redhat 的系统语言 / 字符集
修改 /etc/sysconfig/i18n 文件,如
LANG="en_US"
xwindow 会显示英文界面,
LANG="zh_CN.GB18030"
xwindow 会显示中文界面。
还有一种方法
cp /etc/sysconfig/i18n $HOME/.i18n
修改 $HOME/.i18n 文件,如
LANG="en_US"
xwindow 会显示英文界面,
LANG="zh_CN.GB18030"
xwindow 会显示中文界面。
这样就可以改变个人的界面语言,而不影响别的用户
(Debian
不支持 GB18030(RH zysong 字库是有版权的 )
现在好像没有 Free GBK GB18030 字库
vi .bashrc
export LANG=zh_CN.GB2312
export LC_ALL=zh_CN.GB2312)

0027
把屏幕设置为 90
stty cols 90

0028
使用 md5sum 文件
md5sum isofile > hashfile,
md5sum 档案与 hashfile 档案内容比对 , 验证杂凑值
是否一致 md5sum �C c hashfile

0029
一次解压多个 zip 文件
unzip "*"
,注意引号不能少

0030
pdf 文件
使用 xpdf 或者安装 acrobat reader for linux

0031
查找权限位为 S 的文件
find . -type f \( -perm -04000 -o -perm -02000 \) -exec ls -lg {} \;

0032
装中文输入法
redhat8 为例, xwindow 及其终端下的不用说了,缺省就安装了,用 ctrl-space 呼出。
现在讨论纯 console ,请到 [url]http://zhcon.sourceforge.net/[/url] 下载 zhcon-0.2.1.tar.gz ,放在任一目录中, tar xvfz zhcon-0.2.1.tar.gz cd zhcon-0.2.1 ./configure make make install 。安装结束,要想使用,请运行 zhcon ,想退出,运行 exit

0033
把弹出的光盘收回来
#eject
t

0034
cd 光盘做成 iso 文件
cp /dev/cdrom xxxx.iso

0035
快速观看开机的硬件检测
dmesg | more

0036
查看硬盘的使用情况
df -k
K 为单位显示
df -h
以人性化单位显示,可以是 b,k,m,g,t..

0037
查看目录的大小
du -sh dirname
-s
仅显示总计
-h
K M G 为单位,提高信息的可读性。 KB MB GB 是以 1024 为换算单 位, -H 1000 为换算单位。

0038
查找或删除正在使用某文件的进程
fuser filename
fuser -k filename

0039
安装软件
rpm -ivh aaa.rpm
tar xvfz aaa.tar.gz; cd aaa; ./configure; make; make install

0040
字符模式下设置 / 删除环境变量
bash

设置: export 变量名 = 变量值
删除: unset 变量名
csh

设置: setenv 变量名 变量值
删除: unsetenv 变量名

0041
ls 如何看到隐藏文件 ( 即以 . 开头的文件 )
ls -a
l. (
适用于 redhat)

0042
rpm 中的文件安装到哪里去了
rpm -qpl aaa.rpm

0043
使用 src.rpm
rpmbuild --rebuild *.src.rpm

0044
vim 中显示颜色或不显示颜色
首先确保安装了 vim-enhanced 包,然后, vi ~/.vimrc;   如果有 syntax on ,则显示颜色, syntax off ,则不显示颜色。
另外,关于 vi syntax color ,还有一点是终端类型(环境变量 TERM )的设置。比如通常要设置成 xterm xterm-color 才能使用 syntax color 。尤其是从 Linux 远程登陆到其他的 Unix 上。

0045
linux 是实时还是分时操作系统
分时

0046
make bzImage -j j 是什么意思
-j
主要是用在当你的系统硬件资源比较大的时候,比较富裕的时候,用这个可以来加快编译的速度,如 -j 3      

0047
源码包怎么没有
你没有安装源代码,你把你光盘上 rpm -i *kernel*source*.rpm 装上,就可以看到你的源代码了。

0048
修改系统时间
date -s “2003-04-14 cst
”, cst 指时区,时间设定用 date -s 18:10
修改后执行 clock -w 写到 CMOS
hwclock --systohc
set the hardware clock to the current system time

0049
开机就 mount windows 下的分区
自动将 windows d 盘挂到 /mnt/d 上,用 vi 打开 /etc/fstab ,加入以下一行
/dev/hda5 /mnt/d vfat defaults,codepage=936,iocharset=cp936 0 0
注意,先得手工建立一个 /mnt/d 目录

0050
linux 怎么用这么多内存
为了提高系统性能和不浪费内存, linux 把多的内存做了 cache ,以提高 io 速度

0051
FSTAB 最后的配置项里边最后两个数字是什么意思
第一个叫 fs_freq, 用来决定哪一个文件系统需要执行 dump 操作, 0 就是不需要;
第二个叫 fs_passno, 是系统重启时 fsck 程序检测磁盘的顺序号
1
root 文件系统, 2 是别的文件系统。 fsck 按序号检测磁盘, 0 表示该文件系统不被检测
dump
执行 ext2 的文件系统的备份操作
fsck
检测和修复文件系统

0052
linux 中让用户的密码必须有一定的长度 , 并且符合复杂度
vi /etc/login.defs
,改 PASS_MIN_LEN

0053
linux 中的翻译软件
星际译王 xdict
console
下还有个 dict 工具,通过 DICT 协议到 dict.org 上查 11 本字典,例如: dict RTFM

0054
不让显示器休眠
setterm -blank 0
setterm -blank n (n
为等待时间 )

0055
dat 查询昨天的日期
date --date='yesterday'

0056
xwindow 下如何截屏
Ksnapshot
或者 gimp

0057
解压小全
tar -I
或者 bunzip2 命令都可以解压 .bz2 文件
tar xvfj example.tar.bz2
tar xvfz example.tar.gz
tar xvfz example.tgz
tar xvf example.tar
unzip example.zip
tar -jvxf some.bz
,就是把 tar zvxf 改成 jvxf
zip/tar rh8
下有一个图形界面的软件 file-roller 可以做这件事。另外可以用 unzip *.zip 解开 zip 文件, unrar *.rar 解开 rar 文件,不过 unrar 一般系统不自带,要到网上下载。
# rpm2cpio example.rpm
cpio -div
# ar p example.deb data.tar.gz | tar zxf -
Alien
提供了 .tgz, .rpm, .slp .deb 等压缩格式之间的相互转换:
[url]http://sourceforge.net/projects/alien[/url]
sEx
提供了几乎所有可见的压缩格式的解压接口:
[url]http://sourceforge.net/projects/sex[/url]

0057-2
tar 压缩、解压用法
解压: x
压缩: c
针对 gz z
针对 bz2 j
用于显示: v

解压实例
gz
文件: tar xzvf xxx.tar.gz
bz2
文件: tar xjvf xxx.tar.bz2

压缩实例
gz
文件: tar czvf xxx.tar.gz /path
bz2
文件: tar cjvf xxx.tar.bz2 /path

0058
在多级目录中查找某个文件的方法
find /dir -name filename.ext
du -a | grep filename.ext
locate filename.ext

0059
不让普通用户自己改密码
[root@xin_fc etc]# chmod 511 /usr/bin/passwd
又想让普通用户自己改密码
[root@xin_fc etc]# chmod 4511 /usr/bin/passwd

0060
显卡实在配不上怎么办
[url]http://www.redflag-linux.com/[/url] ,下了 xfree86 4.3 安装就可以了 .

0061
超强删除格式化工具
PQMagic 安全的、建立删除格式化的小工具: sfdisk.exe for msdos
[url]http://www.wushuang.net/soft/sfdisk.zip[/url]

0062
如何让 xmms 播放列表里显示正确的中文
-*-*-*-*-*-iso8859-1,-misc-simsun-medium-r-normal--12-*-*-*-*-*-gbk-0,*-r-
把这个东西完全拷贝到你的字体里面
操作方法 :
右键单击 xmms 播放工具的任何地方
会看到一个 " 选项 ", 然后选择 " 功能设定 " 选择 "fonts"
然后把上面的字体完整的拷贝到 " 播放清单 " "user x font

0063
redhat linux 中播放 mp3 文件
原带的 xmms 不能播放 MP3( 无声 ) ,要安装一个 RPM 包: rpm -ivh xmms-mp3-1.2.7-13.p.i386.rpm 。打开 xmms ctl-p ,在 font 栏中先在上半部的小框内打勾,再选择 fixed(misc) gbk-0 13 ”号字体即可显示中文歌曲名。在音频输出插件中选择 " 开放音频系统驱动程序 1.2.7 [lioOSS.so] ,即可正常播放 MP3 文件。

0064
安装中文字体
先下载 [url]http://freshair.netchina.com.cn/~George/sm.sh[/url]
(
参考文献 : [url]http://www.linuxeden.com/edu/doctext.php?docid=2679[/url])
SimSun18030.ttc
在微软网站可下载, [url]http://www.microsoft.com/china/windows2000/downloads/18[/url]
030.asp
 它是个 msi 文件,在 mswindows 中安装用的,装好后在 windows 目录下的 fonts
目录里面就可以找到它。把 simsun.ttc SimSun18030.ttc tahoma.ttf tahomabd.ttf
拷贝到 /usr/local/temp ,然后下载的 shell 文件也放到这个目录里,然后打开终端
cd /usr/local/temp
chmod 755 sm.sh
./sm.sh

0065
装载 windows 分区的 FAT32 FAT16 文件系统
root 身份进入 KDE ,点击桌面上的“起点”图标,在 /mnt 目录下建立如下文件夹: c,d,e,f,g,usb. 分别用作 windows 下各分区和 usb 闪盘。
用文本编辑器打开 /etc/fstab 文件 . 加入如下 :
/dev/hda1 /mnt/c vfat iocharset=gb2312,umask=0,codepage=936 0 0
/dev/hda5 /mnt/d vfat iocharset=gb2312,umask=0,codepage=936 0 0
/dev/hda6 /mnt/e vfat iocharset=gb2312,umask=0,codepage=936 0 0
/dev/hda7 /mnt/f vfat iocharset=gb2312,umask=0,codepage=936 0 0
/dev/hda8 /mnt/g vfat iocharset=gb2312,umask=0,codepage=936 0 0
/dev/cdrom /mnt/cdrom udf,iso9660 noauto,iocharset=gb2312,owner,kudzu,ro 0 0
/dev/sda1 /mnt/usb vfat iocharset=gb2312,umask=0,codepage=936 0 0
存盘退出 . 重新启动后即可正常访问 FAT32 FAT16 格式分区 , 解决显示 WINDOWS 分区下和光盘中文文件名乱码
问题。其中共六列,每列用 Tab 键分开。注意此方法只能 mount Fat 分区格式, sda1 是闪盘。
另外,如果还出现乱码,可以改为 iocharset=utf8

0066
X 下使用五笔和拼音 , 区位输入法
[url]http://www.fcitx.org/[/url] 上下载 fcitx rpm 包安装即可

0067
Linux 下如何解压 rar 文件
[url]http://www.linuxeden.com/download/softdetail.php?softid=883[/url]
下载 rar for Linux 3.2.0 ,解压开后 make
然后可以用 unrar e youfilename.rar 解压 rar 文件

0068
硬盘安装后怎么添加 / 删除 rpm
redhat-config-packages --isodir=<PATH>
可以指定 iso 文件所在的目录

0069
字符下控制音量
使用 aumix 。另外,要保存 oss 的音量大小,步骤为:
1
、用 aumix 将音量调整为你们满意的音量
2
、用 root 用户进入 /usr/lib/oss (oss 的默认安装目录 )
3
、执行 ./savemixer ./mixer.map
4
ok ,以后 oss 开启之后就是你在第一步调整的音量了。
ps:
阅读该目录下的 README 可以得到更多的有用信息。

0070
dd iso
dd if=/dev/cdrom of=/tmp/aaa.iso

0071
删除几天以前的所有东西 ( 包括目录名和目录中的文件 )
find . -ctime +3 -exec rm -rf {} \;

find ./ -mtime +3 -print|xargs rm -f -r

0072
用户的 crontab 在哪里
/var/spool/cron/
下以用户名命名的文件

0073
以不同的用户身份运行程序
su - username -c "/path/to/command"
有时候需要运行特殊身份的程序 , 就可以让 su 来做

0074
如何清空一个文件
> filename

0075
为什么 OpenOffice 下不能显示中文
更改字体设置
tools->options->font replacement
Andale Sans UI -> simsun

0076
如何备份 Linux 系统
Symantec Ghost 7.5
以后的版本支持 Ext3 native 复制

0077
linux 上的 partition magic
Linux
下一个有用的分区工具 : parted
可以实时修改分区大小 , 删除 / 建立分区 .     

0078
/proc/sys/sem 中每项代表什么意思 ?
/proc/sys/sem
内容如下
250 32000 32 128
4 个参数依次为 SEMMSL( 每个用户拥有信号量最大数量 ),SEMMNS( 系统信号量最大数量 ),SEMOPM( 每次 semop 系统调用操作数 ),SEMMNI( 系统信号量集最大数量 )

0079
Grub 引导菜单里 bigmem smp up 都是什么意思
smp:
symmetric multiple processor )对称多处理器模式
bigmem:
支持 1G 以上内存的优化内核
up:
Uni processor 单处理器的模式

0080
Oracle 的安装程序为什么显示乱码?
现在 Oracle 的安装程序对中文的支持有问题,只能使用英文界面来安装,在执行 runinstaller 之前,执行: export LANG=C;export LC_ALL=C     

0081
linux 下文件和目录的颜色代表什么
蓝色表示目录;绿色表示可执行文件;红色表示压缩文件;浅蓝
色表示链接文件;灰色表示其它文件;红色闪烁表示链接的文件有问题了;黄色是设备文件,包括 block, char, fifo
dircolors -p 看到缺省的颜色设置,包括各种颜色和“粗体”,下划线,闪烁等定义。      

0082
查看有多少活动 httpd 的脚本
#!/bin/sh
while (true)
do
pstree |grep "*\[httpd\]$"|sed 's/.*-\([0-9][0-9]*\)\*\[httpd\]$/\1/'
sleep 3
done

0083
如何新增一块硬盘
一、关机,物理连接硬盘
如果是 IDE 硬盘,注意主、从盘的设置;如果是 SCSI 硬盘,注意选择一个没有被使用的 ID 号。
二、开机,检查硬盘有没有被 linux 检测到
dmesg |grep hd*(ide
硬盘 )
dmesg |grep sd*(SCSI
硬盘 )
或者 less /var/log/dmesg
如果你没有检测到你的新硬盘,重启,检查连线,看看 bios 有没有认出它来。
三、分区
你可以使用 fdisk Sfdisk 或者 parted GNU 分区工具 ,linux 下的 partition magic)
四、格式化
mkfs
五、修改 fstab
vi /etc/fstab

0084
linux 下怎么看分区的卷标啊
e2label /dev/hdxn, where x=a,b,c,d....; n=1,2,3...     

0085
RH8,9 中安装后如何添加新的语言包
.8.0
1.
放入第一张光盘
2.cd /mnt/cdrom/Redhat/RPMS
3.rpm -ivh ttfonts-ZH_CN-2.11-29.noarch.rpm(
简体中文 , 你可以用 tab 键来补齐后面的部分 , 以免输入有误 )
4.rpm -ivh ttfonts-ZH_TW-2.11-15.noarch.rpm(
繁体中文 )
如果你还想装日文、韩文 , 试试第二张光盘上的 ttfonts*.rpm.
.9.0
9.0
不在第一张盘上 , 在第三张盘上 .rpm 包名分别为 :
ttfonts-zh_CN-2.12-1.noarch.rpm(
简体中文 )
ttfonts-zh_TW-2.11-19.noarch.rpm (
繁体中文 )

0086
终端下抓屏
cat /dev/vcsX >screenshot
其中, X 表示第 X 个终端
还可以运行 script screen.log ,记录屏幕信息到 screen.log 里。一会记录到你 exit 为此。这也是抓屏的好方法。
这是在 debian cookbook 上看到的。在 RH9 上能用。没有在其它的系统上测试过。

0087
让一个程序在退出登陆后继续运行
#nohup
程序名 &
或者使用 disown 命令也可以

0088
man 命令不在路径中,如何查看非标准的 man 文件
nroff -man /usr/man/man1/cscope.1 | more

0089
cp 时显示进度
cp -r -v dir1 dir2
cp -a -d -v dir1 dir2

0090
编辑 /etc/inittab 后直接生效
#init q

0091
linux 连续执行几个命令,出错停止
command1 && command2 && command3

0092
如何将 grub 安装到 mbr
grub> root (hd0, 0)
grub> setup (hd0)
也可以用 #grub-install /dev/hda 来安装 grub

0093
安装时把 grub(lilo) 写到 linux 分区的引导区还是主引导扇区 (MBR)
如果你想电脑一启动就直接进入操作系统启动菜单就把 grub(lilo) 写到 MBR 上,如果写到 linux 分区的引导区则要用引导盘引导。建议写到 MBR ,方便点,至于说写到 MBR 不安全,该怎么解释呢?每装一次 win98 MBR 都会被修改一次,大家觉得有什么不安全的吗?

0094
如何让多系统共存
98
系统的话用 lilo(grub) 引导, 2k/nt 则使用 osloader 引导多系统

0095
如何在图形界面和控制台(字符界面)之间来回切换
a.
图形界面到控制台: Ctr+Alt+Fn(n=1,2,3,4,5,6)
b.
各控制台之间切换: Alt+Fn(n=1,2,3,4,5,6)
c.
控制台到图形: Alt+F7

0096
Redhat linux 常用的命令
<1>ls
:列目录。
用法: ls ls dirName ,参数: -a 显示所有文件, -l 详细列出文件。
<2>mkdir
:建目录。
用法: mkdir dirName ,参数: -p 建多级目录,如: mkdir a/b/c/d/e/f -p
<3>mount
:挂载分区或镜像文件 (.iso,.img) 文件。
用法:
a.
磁盘分区: mount deviceName mountPoint -o options ,其中 deviceName 是磁盘分区的设备名,比如 /dev/hda1,/dev/cdrom,/dev/fd0 mountPoint 是挂载点,它是一个目录, options 是参数,如果分区是 linux 分区,一般不用 -o options ,如果是 windows 分区那 options 可以是 iocharset=cp936 ,这样 windows 分区里的中文文件名就能显示出来了。用例:比如 /dev/hda5 linux 分区,我要把它挂到目录 a 上(如没目录 a 那就先 mkdir a ), mount /dev/hda5 a ,这样目录 a 里的东西就是分区 hda5 里的东西了,比如 hda1 windows 分区,要把它挂到 b 上, mount /dev/hda1 b -o iocharset=cp936
b.
镜像文件: mount fileName mountPoint -o loop fileName 是镜像文件名 (*.iso,*.img) ,其它的不用说了,跟上面一样。用例:如我有一个 a.iso 光盘镜像文件, mount a.iso a -o loop ,这样进入目录 a 你就能浏览 a.iso 的内容了, *.img 文件的用法一样。
<4>find
:查找文件。
用法: find inDir -name filename inDir 是你要在哪个目录找, filename 是你要找的文件名 ( 可以用通配符 ) ,用通配符时 filename 最好用单引号引起来,否则有时会出错,用例: find . -name test* ,在当前目录查找以 test 开头的文件。
<5>grep
:在文件里查找指定的字符串。
用法: grep string filename ,在 filename( 可用通配符 ) 里查找 string( 最好用双引号引起来 ) 。参数: -r 在所有子目录里的 filename 里找。用例: grep hello *.c -r 在当前目录下(包括子目录)的所有 .c 文件里查找 hello
<5>vi
:编辑器。
用法: vi filename filename 就是你要编辑的文本文件。用了执行 vi filename 后,你可能会发现你无法编辑文本内容,不要着急,这是因为 vi 还没进入编辑状态,按 a i 就可以进入编辑状态了,进入编辑状态后你就可以编辑文本了。要退出编辑状态按 Esc 键就可以了。以下操作均要在非编辑状态下。查找文本:输入 / 和你要查找的文本并回车。退出:输入 : q 并回车,如果你修改了文本,那么你要用 :q! 回车才能退出。保存:输入 : w 回车,如果是只读文件要用 : w! 。保存退出:输入 : wq 回车,如果是只读就 : wq! 回车。取消:按 u 就可以了,按一次就取消一步,可按多次取消多步。复制粘贴一行文本:把光标移到要复制的行上的任何地方,按 yy (就是连按两次 y ),把光标移到要粘贴地方的上一行,按 p ,刚才那行文本就会被插入到光标所在行的下一行,原来光标所在行后面所有行会自动下移一行。复制粘贴多行文本:跟复制一行差不多,只是 yy 改成先输入要复制的行数紧接着按 yy ,后面的操作一样。把光标移到指定行:输入 : 和行号并回车,比如移到 123 :123 回车,移到结尾 :$ 回车。

0097
linux 文本界面下如何关闭 pc 喇叭
/etc/inputrc 中的 set bell-style none 前的#去掉,或 echo "set bell-style none" >> ~/.bashrc

0098
重装 windows 导致 linux 不能引导的解决办法
如果没有重新分区,拿 linux 启动盘 ( 或者第一张安装光盘 ) 引导,进入 rescue 模式。首先找到原来的 / 分区 mount 在什么地方。 redhat 通常是 /mnt/sysimage. 执行 "chroot /mnt/sysimage". 如果是 grub ,输入 grub-install /dev/hd*( 根据实际情况 ) ;如果是 lilo ,输入 lilo -v ,然后重新启动。如果分区有所改变,对应修改 /etc/lilo.conf /boot/grub/grub.conf 然后再执行上述命令。

0099
为什么装了 LINUX win2K 很慢
老问题了,你在 2000 是不是能看见 Linux 的逻辑盘,但不能访问?
在磁盘管理里,选中这个盘,右击 -> 更改 " 驱动器名和路径 "->" 删除 " 就可以了,注意不是删除这个盘 !

0100
linux 发布版的 iso 文件刻录到光盘的方法
借用 windows 中的 nero 软件,选择映象文件刻录,选择 iso 文件,刻录即可!
 
 
 
 
 
 
 
 
 
 
 
 
 
1101 linux 中刻录 iso 的方法
方法一:使用 xcdroast ,选择制作光碟,选择 ISO 文件,刻录 !
参见 [url]http://www.xcdroast.org/xcdr098/faq-a15.html#17[/url]
方法二:找刻录机的命令:
cdrecord --scanbus
输出结果为:
0,0,0 0) 'ATAPI ' 'CD-R/RW 8X4X32 ' '5.EZ' Removable CD-ROM
刻录的命令:
cdrecord -v speed=8 dev=0,0,0 hutuworm.iso
方法三:使用 k3b 可以刻录 CD/DVD
k3b
主页: [url]http://www.k3b.org/[/url]
(
实际上 k3b 是个图形界面,刻录 CD 利用了 cdrecord ,刻录 DVD 利用了 dvd+rw-tools [url]http://fy.chalmers.se/~appro/linux/DVD+RW/[/url] )

1102
屏幕变花时怎么办 ( 双眼皮的猪 )
当您一不小心 cat 了一个并不是文本的文件的时候,这时屏幕会变花,那么您可以按两下 "Enter" 键,再敲 "reset" ,那么屏幕就恢复正常了 ....

1103
卸载软件包时如何得知具体包名 (diablocom)
大家知道删除软件包的命令是 rpm -e XXX ,但是当我们不知道这个 XXX 的确切拼写时,可以用 rpm -q -a 查询所有安装的软件包或者用 rpm -qa |grep xxxx 查询出名字

1104
使用内存作 linux 下的 /tmp 文件夹 (yulc)
/etc/fstab 中加入一行:
none /tmp tmpfs default 0 0
或者在 /etc/rc.local 中加入
mount tmpfs /tmp -t tmpfs -o size=128m
注: size=128m 表示 /tmp 最大能用 128m
不管哪种方式,只要 linux 重启, /tmp 下的文件全部消失

1105
ls 只列出目录 (yulc)
ls -lF | grep ^d
ls -lF | grep /$
ls -F | grep /$

1106
在命令行下列出本机 IP 地址,而不是得到网卡信息 (yulc)
ifconfig |grep "inet" |cut -c 0-36|sed -e 's/[a-zA-Z: ]//g'
hostname -i

1107
修改 /etc/profile 或者 $HOME/.profile 文件后如何立即生效 (peter333)
#source /etc/profile (
或者 source .profile)

1108
bg fg 的使用
输入 ctrl+z ,当前一个任务会被挂起并暂停, 同时屏幕上返回进程号,此时用 "bg % 进程号 " ,会把这个进程放到后台执行,而用 " fg % 进程号 " 就能让这个进程放到前台来执行。另外, job 命令用来查看当前的被 bg 的进程

1109
ctrl+s ctrl+q
ctrl-s
用来暂停向终端发送数据的,屏幕就象死了一样,可以用 ctrl-q 来恢复

1110
目录统计脚本
保存成 total.sh ,然后用 total.sh 绝对路径,就能统计路径下目录的大小了
代码 :
#!/bin/sh
du $1 --max-depth=1 | sort -n|awk '{printf "%7.2fM ----> %s\n",$1/1024,$2}'|sed 's:/.*/\([^/]\{1,\}\)$:\1:g'

1111
grep 不显示本身进程
#ps -aux|grep httpd|grep -v grep
grep -v grep
可以取消显示你所执行的 grep 本身这个进程, -v 参数是不显示所列出的进程名

1112
删除目录中含输入关键字的文件 (WongMokin)
find /mnt/ebook/ -type f -exec grep "
在此输入关键字 " {} \; -print -exec rm {} \;

1113
cron 中的任务不回馈信息 , 本例 5 分钟检查一次邮件 (WongMokin)
0-59/5 * * * * /usr/local/bin/fetchmail > /dev/null 2>&1

1114
在当前目录下解压 rpm 文件
cat kernel-ntfs-2.4.20-8.i686.rpm | rpm2cpio | pax -r

1115
合并两个 Postscript PDF 文件 (noclouds)
$ gs -q -dNOPAUSE -dBATCH -sDEVICE=pswrite \
-sOutputFile=bar.ps -f foo1.ps foo2.ps
$ gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite \
-sOutputFile=bar.pdf -f foo1.pdf foo2.pdf

1116
去掉 apache manual 目录中的所有 .en 的后缀名
进入到 manual 目录
代码 :find ./ -regex .*\.en|awk -F. '{ printf "mv %s.%s.%s.%s %s.%s.%s\n",$1,$2,$3,$4,$1,$2,$3}'|sh

1117
如何起多个 X (noclouds)
startx
默认以 display :0.0 起第一个 X ,通过传递参数给 Xserver 可以起多个 X
# startx -- :1.0
# startx -- :2.0
...
然后用 Ctrl-Alt-F7/F8... 切换。

1118
让一个程序在退出登陆后继续运行 (noclouds, 陈绪 )
# <cmd>
# disown
或者是
nohup command &

1119
Linux 启动时屏幕的显示信息
在启动完后用命令 dmesg 查看

1120
vi 不响铃 (sakulagi)
echo "set vb t_vb=" >> ~/.vimrc

1121
fedora 开机后自动 login(dzho002)
1) rpm -ihv autologin-1.0.0-7mdk.i586 rpm
2)
建立文件 /etc/sysconfig/autologin
在里面加上一行 .
USER = root

1122
如何配置让哪些服务启动 ( 天外闲云, q1208c)
方法 1 运行 ntsysv 或者 setup 命令,进入菜单进行配置
方法 2 chkconfig --list 显示服务
chkconfig name on/off
打开 / 关闭“ name ”服务

1123
安全删除 linux( 天外闲云 )
步骤 1 Dos 下使用 fdisk /mbr 或者用 win2000/xp 的光盘启动进入故障恢复控制台,使用命令 fixmbr
步骤 2 格式化 linux 分区为 windows 分区即可。

1124
grub 引导进文本界面 ( 天外闲云 )
进入 grub 之后,按 a ,输入 空格 3 就可以引导进入文本界面,但是不修改系统的运行级,只在当次有效。

1125
先测试 patch 是否运行正常,暂不将更改应用到 kernel
patch --dry-run

1126
redhat debian 上的文件安装删除用法
删除一个软件包:
rpm -e <package-name>
dpkg -r <package-name>
显示一个软件包的内容:
rpm -qvl <package-name.rpm>
dpkg -c <package-name.deb>
显示所有已经安装的软件包:
rpm -qvia
dpkg -l
打印一个包的信息:
rpm -qpi <package-name.rpm>
dpkg -I <package-name.deb>
检验包 characteristics
rpm -Va
debsums -a
检验一个文件属于哪个包:
rpm -qf </path/to/file>
dpkg -S </path/to/file>
安装新软件包:
rpm -Uvh <package-name.rpm>
dpkg -i <package-name.deb>

1127
如何使新用户首次登陆后强制修改密码
#useradd -p '' testuser; chage -d 0 testuser

1128
日志维护工具 logrotate
/etc/logrotate.conf 中配置,作用:定义 log 文件达到预定的大小或时间时,自动压缩 log 文件

1129
Linux 中默认的管理员叫什么
root

1130
如何产生一个长度固定(例如文件长度为 1M )字节的空文件,即每个字节的值全为 0x00
dd if=/dev/zero of=/tmp/zero_file bs=1024 count=1024

1131
RedHat Linux 里修改时间的步骤
1.
设置你的时区: timeconfig 里选择 Asia/Shanghai (如果你位于 GMT+8 中国区域)
2.
与标准时间服务器校准: ntpdate time.nist.gov
2.5
当然,如果你是李嘉诚,也可以跟自己的手表校准: date -s STRING STRING 格式见 man date
3.
写回硬件时钟: hwclock --systohc

1132
查找当前目录下文件并更改扩展名
更改所有 .ss 文件为 .aa
# find ./ -name "*.ss" -exec rename .ss .aa '{}' \;

1133
patch 的使用
语法是 patch [options] [originalfile] [patchfile]
例如:
patch -p[num] <patchfile
-p
参数决定了是否使用读出的源文件名的前缀目录信息,不提供 -p 参数,则忽略所有目录信息, -p0 (或者 -p 0 )表示使用全部的路径信息, -p1 将忽略第一个 "/" 以前的目录,依此类推。如 /usr/src/linux-2.4.16/Makefile 这样的文件名,在提供 -p3 参数时将使用 linux-2.4.16/Makefile 作为所要 patch 的文件。
对于刚才举的 Linux 内核源码 2.4.16 升级包的例子,假定源码目录位于 /usr/src/linux 中,则在当前目录为 /usr/src 时使用 "patch -p0 <patch-2.4.16" 可以工作,在当前目录为 /usr/src/linux 时, "patch -p1<patch-2.4.16" 也可以正常工作。

1134
file.txt 里的 123 改为 456
方法 1
sed 's/123/456/g' file.txt > file.txt.new
mv -f file.txt.new file.txt
方法 2
vi file.txt
输入命令:
:%s/123/456/g


1135
将一个分区格式化为 ext3 日志文件系统
mkfs -j /dev/xxxx

1136
开启硬盘 ATA66
/sbin/hdparm -d1 -X68 -c3 -m16 /dev/hda

1137
查看当前运行级别
runlevel

1138
查看当前登陆身份
(1)who am i
(2)whoami
(3)id
注意 (1) (2) 的小区别

1139
删除 rpm -e 删除不了的包
1
、如果在删除包之前删除了包的目录
rpm -e --noscripts
2
、如果系统里一个包被装两次(由于某些异常引起的)
rpm -e multi-installed-pkgs --allmatches

1140
如何定制用户登录时显示的信息
/etc 目录下放一个名字叫 motd 的文本文件实现的,例如,建立自己的 /etc/motd:
$cat /etc/motd
welcome to my server !
那么,当用户登录系统的时候会出现这样的信息:
Last login: Thu Mar 23 15:45:43 from *.*.*.*
welcome to my server !

1141
用命令清空 Root 回收站中的文件
cd /var/.Trash-root
rm -rf *

1142
Red Hat 上加 Simsun.ttc 字体
Red Hat 7.3 为例,安装时选取简体中文安装,先复制一个 simsun.ttc /usr/X11R6/lib/X11/font/TrueType ,改名为 simsun.ttf ;然后进入 /usr/X11R6/lib/X11/font/TrueType 目录下,运行 ttmkfdir > fonts.dir 命令;接着用 vi 编辑 fonts.dir 文件,把有 simsun.ttf 行修改如下 :
simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-c-0-ascii-0
simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-c-0-iso10646-1
simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-p-0-iso8859-15
simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-p-0-iso8859-1
simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-c-0-gb2312.1980-0
simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-p-0-gb2312.1980-0
simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-m-0-gb2312.1980-0
simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-p-0-gbk-0
接着运行 cat fonts.dir > fonts.scale 命令,修改 /etc/X11/XF86config-4, Section Files ”加上下面这一行:
FontPath “/usr/X11R6/lib/X11/fonts/TrueType”
最后回到 KDE 桌面里 , 在“开始”→“选项”→“观感”→“字体”,将所有字体改为 Simsun

1143
Unicon Zhcon 的区别和作用
Unicon
是内核态的中文平台,基于修改 Linux FrameBuffer Virtual Console fbcon )实现的。由于是在系统底层实现的,所以兼容性极好,可以直接支持 gpm 鼠标。但是相对比较危险,稍有漏洞就可能会危及系统安全。 Zhcon 是用户态的中文平台,有点像 UCDOS

1144
如何卸载 tar 格式安装的软件
进入安装该软件的原代码目录,运行 make uninstall 。如果不行,也可以查看一下 Makefile 文件,主要是看 install 部分,从其中找出 tar 格式的文件被复制到了什么路径,然后进入相应的目录进行删除即可。

1145
定制 linux 提示符  
bash 中提示符是通过一个环境变量 $PS1 指定的。用 export $PS1 查看现在的值,比较直观常用的提示符可以设定为 export PS1= [\u@\h \W]\$ ”。其中 \u 代表用户名, \h 代表主机名, \W 代表当前工作目录的最后一层,如果是普通用户 \$ 则显示 $ root 用户显示 #

1146
vi 中搜索了一个单词,该单词以高亮显示,看起来很不舒服,怎么能将它去掉
vi 的命令模式下输入 :nohlsearch 就可以了。另外可以在 ~/.vimrc 中写上下面的语句就会有高亮显示:
set hlsearch
加上下面的语句就不会有高亮显示:
set nohlsearch

1147
如何找出系统中所有的 *.cpp *.h 文件
find 命令就可以了。不过如果从根目录查找消耗资源较高,使用下面的命令就可以:
find / -name "*.cpp" -o -name "*.h"

1148
如安装 Debian 需要几张盘就够了? 7 张盘全部都要下载吗?
如果经常有网络环境的话,下载第一张就可以了。要是没有网络环境的话不推荐使用 Debian ,因为 Debian 主要依赖网络来更新软件。实在要安装的话,要下载全部 7 张盘,否则可能会出现需要的软件包找不到的问题。

1149
Debian 第一张光盘为什么有两个版本? debian-30r1-i386-binary-1.iso debian-30r1-i386-binary-1_NONUS.iso 该下载哪一个呢?它们有什么区别?
因为含有“ non-US ”(不属美国)的软件不能合法地存放在架设于美国境内的服务器中。以前,其原因通常是因为软件含有严密的密码编码,而今天,则是因为程序使用了美国专利保护的演算法。每个人应该取用“ non-US ”来供私人用途所用;而没有这个标识的 iso 则只对架设在美国的镜像及供应商才有用处。其它二进制的光盘则不会含有任何“ US-sensitive ”(与美国相关的)软件,它们和其它种 binary-1 光盘一样运作得很好。因此,个人使用还是下载 debian-30r1-i386-binary-1_NONUS.iso 版本。

1150
为何我使用 umount /mnt/cdrom 命令的时候出现 device is busy 这样的语句,不能 umount
在使用 umount 的时候一定要确保已退出 /mnt/cdrom 这个目录,退出这个目录就可以使用 umount /mnt/cdrom 了。

1151
我使用的是笔记本电脑,怎么才能在控制台下显示现在还剩多少电量呢?  
使用 apm -m 就可以看到还有多少分钟了,具体参数可以用 man apm 查看。

1152
为什么我进入 Linux 的终端窗口时, man 一条命令出来的都是乱码呢?  
这是因为你的字符集设置有问题。临时解决办法可以使用 export LANG= en_US ”。要想不必每次都修改的话,在 /etc/sysconfig/i18n 文件里面修改 LANG= en_US ”就可以了。也可以针对某个用户来做,这样就可以改变个人的界面语言,而不影响别的用户。命令如下: # cp /etc/sysconfig/i18n $HOME/.i18n

1153
编译内核的时候出错,提示“ Too many open files ”,请问怎么处理  
这是因为 file-max 默认值( 8096 )太小。要解决这个问题,可以 root 身份执行下列命令(或将它们加入 /etc/rcS.d/* 下的 init 脚本):
# echo "65536"  > /proc/sys/
最后进入解压后的目录,运行安装命令。
# cd vmware-linux-tools
# ./install.pl

1154
本来装有 Linux Windows XP ,一次将 Windows XP 重装后,发现找不到 Linux Windows XP 的启动选单,请问如何解决
首先光盘启动,进入 rescue 模式,运行 GRUB ,进入 grub 提示符 grub> ,然后敲入下面的语句,重启就好了。
root (hd0,2)
setup (hd0)

1155
安装了一台 Linux 服务器,想自己编译内核,一步一步做下来, GRUB 也添加进去了,但出现“ kernel Panic:VFS:Unable to mount root fs on 0:00 ”的错误,请问是怎么回事?
一般情况下 initrd 这个文件在台式机上不是必须的,但是在有 SCSI 设备的服务器上却是必须的。有可能因为编译内核的时候没有产生 initrd 那个文件,所以会有上面的错误提示。用户可以使用 mkinitrd 命令来生成一个 initrd.img 文件,然后加入 GRUB ,重启试一试。

1156
如何设置用户登录后的欢迎信息?
修改 /etc/motd 文件,往里面写入文本,就能使用户通过 Telnet 正确登录后,执行 Shell 之前得到相应的提示信息。
motd
就是“ messages of the day ”,也就是当日信息的意思。管理员可以往里面写一些需要注意的事项或通知等来提醒正式用户。

1157
我下载了 rcs5.7 ,用 ./configure && make && make install 时报错如下: ./conf.sh: testing permissions ... ./conf.sh: This command should not be run with superuser permissions. 我是以 root 用户身份登录编译安装的,为什么会这样?
有些软件确实因为考虑到安全等其它原因不能用 root 用户编译。这时只要用其它用户编译,到 make install 这步时,如果该软件安装在不属于编译时的用户的主目录下时,需要使用 su 命令转换为 root 用户再执行 make install

1158
我在安装 USBView 时失败,具体情况如下: #rpm -ivh usbview-1.0-9.src.rpm warning:usbview-1.0-9.src.rpm:V3 DSAsignature:NOKEY,key IDab42a60e  
这行代码说明安装失败是因为你的系统上没有安装合适的钥匙来校验签名。要使该软件包通过校验,可以通过导入 Red Hat 的公匙来解决,具体的方式是在 Shell 下运行如下命令:
#rpm -import /usr/share/rhn/RPM-GPG-KEY
(注意大小写)

1159
如何防止某个关键文件被修改?
Linux 下,有些配置文件是不允许任何人(包括 root )修改的。为了防止被误删除或修改,可以设定该文件的“不可修改位 (immutable) ”。命令如下:
# chattr +i /etc/fstab
如果需要修改文件则采用下面的命令:
# chattr -i /etc/fstab

1160
怎样限制一个用户可以启动的进程数?
先确定一下 /etc/pam.d/login 文件中下面一行的存在:
session required /lib/security/pam_limits.so
然后编辑 /etc/security/limits.conf ,在里面可以设置限制用户的进程数、 CPU 占用率和内存使用率等,如 hard nproc 20 就是指限制 20 个进程,具体可以看 man

1161
如何限制 Shell 命令记录大小
默认情况下, bash 会在文件 $HOME/.bash_history 中存放多达 500 条命令记录。有时根据具体的系统不同,默认记录条数不同。系统中每个用户的主目录下都有一个这样的文件。为了系统的安全,在此强烈建议用户限制该文件的大小。用户可以编辑 /etc/profile 文件,修改其中的选项如下:
HISTFILESIZE=30
HISTSIZE=30
这样就将记录的命令条数减少到 30 条。

1162
我想将开机时显示的信息保留下来,以检查电脑出了问题的地方,请问怎么办?
可输入下面的命令 :
#dmesg > bootmessage
该命令将把开机时显示的信息重定向输出到一个文件 bootmessage 中。

1163
我想在注销时删除命令记录,请问怎么做?
编辑 /etc/skel/.bash_logout 文件,增加如下行 :
rm -f $HOME/.bash_history
这样,系统中的所有用户在注销时都会删除其命令记录。
如果只需要针对某个特定用户,如 root 用户进行设置,则可只在该用户的主目录下修改 /$HOME/.bash_history 文件,增加相同的一行即可。

1164
编译内核,支持 ntfs 的步骤 (platinum ,陈绪 )
1. # cd /usr/src/linux-2.4
2. # make menuconfig
3.
选中 File System 下的 NTFS file system support (read only) M
4. # uname -a
2.4.21-27.0.2.EL
5. # vi Makefile
确保前几行为
VERSION = 2
PATCHLEVEL = 4
SUBLEVEL = 21
EXTRAVERSION = -27.0.2.EL
6. # make dep
7. # make modules SUBDIRS=fs/ntfs
8. # mkdir /lib/moduels/2.4.21-27.0.2.EL/kernel/fs/ntfs
9. # cp -f fs/ntfs/*.o /lib/moduels/2.4.21-27.0.2.EL/kernel/fs/ntfs/
10. # depmod -a
11. # modprobe ntfs
12. # lsmod
确保有 ntfs 在里面

1165
如何使用 ssh 通道技术
本文讨论所有机器均为 Linux 操作系统。
比如说我的机器是 A ,中间服务器为 B ,目标服务器是 C
A 可以 ssh B ,从 B 可以 ssh C ,但是 A 不能直接 ssh C
现在展示利用 ssh 通道技术从 A 直接传输文件到 C
1. ssh -L1234:C:22 root@B
input B's password
2. scp -P1234 filename root@localhost:
input C's password

1166
使用 rpm 命令时没有任何响应,如何解决
rm -rf /var/lib/rpm/__db.*

1167
向登陆到同一台服务器上的所有用户发一条信息
1)
输入 wall 并回车
2)
输入要发送的消息
3)
结束时按“ Control-d ”键 , 消息即在用户的控制窗口中显示

1168
输入短消息到单个用户
1)
输入 write username ,当用户名出现在多个终端时,在用户名后可加 tty, 以表示在哪个 tty 下的用户。
2)
输入要发送的消息。
3)
结束时按“ Control-d ”键 , 消息即在用户的控制窗口中显示。
4
)对于接收消息方,可以设定是否允许别人送消息给你。
指令格式为: mesg n[y]
%write liuxhello! Everybody, I’llcome.
%
用户控制窗口中显示的消息 :Message from liux on ttyp1 at 10:00…hello! Everybody, I’llcome.EOF
当使用 CDE OpenWindows 等窗口系统时,每个窗口被看成是一次单独的登录;如果用户登录次数超过一次则消息直接发送到控制窗口。

1169
发送文件中的消息到单个用户
如果有一个较长的消息要发送给几个用户,用文件方式:
1)
创建要发送的消息文本的文件 filename.
2)
输入 write username<filename 回车,用 cat 命令创建包含短消息的文件:
% cat >messagehello! Everybody, I’llcome.
% write liux<messagewrite:liux logged in more than once…write to console
%
用户在一个以上窗口登录,消息显示在控制窗口中 Message from liux on ttyp1 at 10:00 hello! Everybody, I’llcome.EOF

1170
向远程机器上的所有用户发送消息
使用 rwall( 向所有人远程写 ) 命令同时发送消息到网络中的所有用户。
rwall hostname file
当使用 CDE OpenWindows 等窗口系统时 , 每个窗口被看成是一次单个的登录 ;
如果用户登录次数超过一次则消息直接发送到控制窗口。

1171
向网络中的所有用户发送消息
发送消息到网络中的所有用户
1)
输入 rwall -n netgroup 并回车
2)
输入要发送的消息
3)
结束时按“ Control-d ”键,消息即在系统每个用户的控制窗口中显示,下面是系统管理员发消息到网络组 Eng 每个用户的例子:
% rwall -n EngSystem will be rebooted at 11:00.(Control-d)
%
用户控制窗口中的消息 :Broadcast message from root on console…System will be rebooted at 11:00.EOF
注意:也可以通过 rwall hostname (主机名)命令到系统的所有用户。

1172
我需要编译内核,内核源码在哪里?
1
、一般在发行版的盘里都有,比如 RedHat ,一般在第二、第三张上
   2.4 内核的叫 kernel-source-2.4.xx-xx.rpm
   2.6 内核的叫 kernel-devel-2.6.xx-xx.rpm
2
、去 [url]www.kernel.org[/url] 下载一份你喜欢的

1173
top 的结果输出到文件中
top -d 2 -n 3 -b >test.txt
可以把 top 的结果每隔 2 秒,打印 3 次,这样后面页的进程也能够看见了

1174
vim 中改变全文大小写的方法
光标放在全文开头
gUG
所有字母变大写
guG
所有字母变小写
g~G
所有字母,大写变小写,小写变大写
 
 
 
 
 
 
---------------------------- 网络相关篇 --------------------------
2001
apache 的默认字符集变为中文
vi httpd.conf
,找到 AddDefaultCharset ISO-8859-1 一行
apache
版本如果是 1.* ,改为 AddDefaultCharset GB2312
如果是 2.0.1-2.0.52 ,改为 AddDefaultCharset off
然后运行 /etc/init.d/httpd restart 重启 apache 即可生效。
注意:对于 2.0.53 以上版本,不需要修改任何配置,即可支持中文。

2002
永久更改 ip
ifconfig eth0
ip
然后编辑 /etc/sysconfig/network-scripts/ifcfg-eth0 ,修改 ip

2003
Linux 上远程显示 Windows 桌面
安装 rdesktop

2004
手动添加默认网关
root 用户,执行 : route add default gw 网关的 IP
想更改网关
1 vi /etc/sysconfig/network-scripts/ifcfg-eth0
更改 GATEWAY
2 /etc/init.d/network restart

2005
redhat 8.0 msn qq
下载 Gaim 0.58 版:
gaim-0.58-2.i386.rpm
下载 QQ 插件 for gcc2.9 版:
libqq-0.0.3-ft-0.58-gcc296.so.gz
将下载的文件放入 /temp 目录,然后将系统中已有的 Gaim 删除,即在终端仿真器中键入命令: rpm -e gaim
开始安装
打开终端仿真器,继续执行下列命令安装 Gaim 0.58 版,即:
cd /temp
          ( 进入 temp 目录 )
rpm -ivh gaim-0.58-2.i386.rpm
  ( 安装软件 )
当安装成功后,你就可以在 GNOME KDE 桌面建立 Gaim 图标了。
继续安装 QQ 插件,即键入命令:
gunzip libqq-0.0.3-ft-0.58-gcc296.so.gz (
解压缩文件)
cp libqq-0.0.3-ft-0.58-gcc296.so /usr/lib/gaim (
复制插件到 gaim 库目录中 )
软件设置
首次启动 Gaim 0.85 版时,会出现的登录界面。先选择“插件”,在插件对话框中点击“加载”,分别将 libmsn.so libqq-0.0.3-ft-0.58-gcc296.so 文件装入,确认后关闭。然后再选择“所有帐号”,在出现的帐号编辑器中继续点击“增加”,当出现的修改帐号页面时,我们就可以输入自己的 QQ MSN 号了,登录名填写 QQ 号码或 MSN 邮箱,密码填写对应的 QQ MSN 密码, Alias 填写自己的昵称,协议选择相应的 QQ MSN ,其他的设置按默认的即可。当全部设置完成后就可以登录使用了。
由于 MS msn 的协议经常升级,导致 linux 上的 gaim msn 插件必须升级,目前尚无万无一失的解决方案,请见谅

2006
查出 22 端口现在运行什么程序
lsof -i

2007
查看本机的 IP gateway, dns
IP

root 用户登录,执行 ifconfig 。其中 eth0 是第一块网卡, lo 是默认的设备
Gateway:
root 用户登录,执行 netstat -rn ,以 0.0.0.0 开头的一行的 Gateway 即为默认网关
也可以查看 /etc/sysconfig/network 文件,里面有指定的地址!
DNS

more /etc/resolv.conf
,内容指定如下:
nameserver 202.96.69.38
nameserver 202.96.64.38

2008
RH8.0 命令行下改变 ping TTL
方法 1( 重启后有效 )
#sysctl -w net.ipv4.ip_default_ttl=N
(N=0~255),
N>255, ttl=0
方法 2( 重启后无效 )
#echo N(N
0 255) > /proc/sys/net/ipv4/ip_default_ttl

2009
开启 LINUX IP 转发 (houaq)
编辑 /etc/sysctl.conf, 例如,将
net.ipv4.ip_forward = 0
变为
net.ipv4.ip_forward = 1
重启后生效,用 sysctl -a 查看可知

2010
mount 局域网上其他 windows 机器共享出的目录
mount -t smbfs -o username=guest,password=guest //machine/path /mnt/cdrom

2011
允许|禁止 root 通过 SSH 登陆
修改 sshd_config:PermitRootLogin no|yes

2012
root 直接 telnet 登陆
方法 1
编辑 /etc/pam.d/login ,去掉
auth required /lib/security/pam_securetty.so
这句话
方法 2
vi /etc/securetty
添加
pts/0
pts/1
...

2013
linux adsl 设备
需要一个运转正常的 Linux + 至少一块网卡 + 宽带设备已经申请完毕,同时已经开通。目前市场上大概有几种 ADSL 设备,他们工作的方式有一些细微的差别。
就是通过虚拟拨号来完成上网的这一过程,也就是利用 pppoe 设备来进行虚拟拨号的叫作全向猫,就是一种加电后自动的进行拨号的工作,然后留给我们的接口是 RJ45 ,大连地区一般留给我们的网关都是 10.0.0.2, 这种设备最容易对付,最后是直接分配给用户一个固定的 IP ,相对大家来说也比较容易对付
1.
第一种需要进行拨号:
这几种设备都是通过 eth 接口与计算机进行通讯的,所以先将硬件设备的连接作好,尤其是宽带猫的,一定要确认无误(否则一会儿要不去可不算我的事情)
然后启动系统,确认系统上是否安装 rp-pppoe 这个软件(通过 rpm -qa|grep pppoe 来查找),如没有安装的用户,在光盘里或是到网上去 down 一个来,安装上后,以 root 用户执行 adsl-setup ,这样就进入了 adsl 的资料的设定状态,要求输入申请宽带的用户名以及其他一些信息,确认没有问题,接受直至最后(里面都是 E 文,但是一看即能懂,比较简单,有关一个防火墙的设置,我一般都不用,选 0 ,大家可以具体考虑)。
配置完成后,以 root 用户执行 adsl-start ,这样将进行 adsl 的拨号工作,正常就会一下上线,如有什么具体问题,去看一下日志( /var/log/messages )里面告诉你什么了。
停掉 adsl ,执行 adsl-stop 就可以了(很简单的)
2.
另外两种比较容易对付:
  
全向猫:只要将你的网卡的 IP 设置成一个 10 网段的 IP ,然后网关指到全向猫的 IP ,上( 10.0.0.2) ,基本上不有太大的问题
 固定 IP :就像配置本地儿的网卡一样,将 IP ,网关, DNS 都按申请来的填写上就可以搞定了

2014
linux 自动同步时间
vi /etc/crontab
加上一句:
00 0 1 * * root rdate -s time.nist.gov

2015
linux 的网上资源有哪些
国外
[url]http://lwn.net/[/url]
[url]http://www.tldp.org/[/url]
[url]http://www.yolinux.com/[/url](flying-dance big big pig)
[url]http://www.justlinux.com/[/url]
[url]http://www.linuxtoday.com/[/url]
[url]http://www.linuxquestions.org/[/url]
[url]http://www.fokus.gmd.de/linux/[/url]
[url]http://www.linux-tutorial.info/[/url]
[url]http://public.[url]www.planetmirror.com/[/url][/url]
[url]http://www.freebsdforums.org/forums/[/url]
[url]http://www.netfilter.org/documentation/[/url]
[url]http://www-106.ibm.com/developerworks/linux/[/url]

国内
[url]http://www.linuxmine.com/[/url]
[url]http://www.fanqiang.com/[/url]
[url]http://www.linuxsir.com/[/url]
[url]http://www.chinaunix.net/[/url]
[url]http://www.linuxfans.org/[/url](deadcat)
[url]http://www.linuxeden.com/[/url]
[url]http://www.linuxforum.net/[/url]
[url]http://www.linuxaid.com.cn/[/url]
[url]http://freesoft.online.sh.cn/[/url]
[url]http://www-900.ibm.com/developerWorks/cn/linux/index.shtml[/url]
[url]http://www.neweasier.com/software.html[/url]
[url]http://www.blueidea.com/bbs/archivecontent.asp?id=635906[/url](sqh)
[url]http://westlinux.ywzc.net/[/url](onesun)

2016
改变 sshd 的端口
/etc/ssh/sshd_config 中加入一行: Port 2222 /etc/init.d/sshd restart 重启守护进程

2017
改变 telnet 的端口
/etc/services 文件中 telnet 对应的端口号 21 改为你想要的值, /etc/init.d/xinetd restart 重启守护进程

2018
终端模式有问题
export TERM=vt100

2019
模仿超级终端, LINUX 里什么程序连接路由器和交换机
minicom

2020
ssh 上来能不能不自动断线
修改自己 HOME 目录下的 .bash_profile 文件,加上
export TMOUT=1000000  (
以秒为单位 )
然后运行 source .bash_profile

2021
用什么工具做入侵检测
snort

2022
Linux 下检测程序内存泄漏的工具
cchecker
或是 efence 库都可以

2023
linux 下如何监视所有通过本机网卡的数据
tcpdump
或者 iptraf

2024
为什么 root 执行好多命令都说 command not found
你是 telnet 上来,然后 su root 的吧,改改你的 su 命令格式,应该是 su - root

2025
关闭用户的 POP3 权限
POP3 的端口关了就可以了。 在文件 /etc/services 中找到这一行 pop-3 110/tcp 把这一行前加个 '#', 把它注释掉就可以了。

2026
linux 下播放 flash 动画
linux
下播放 flash 动画用这个东西,不会造成浏览器的关闭 ( 其他的插件不好用)
首先下载 flash 播放动画在 linux 的插件
[url]http://www.collaborium.org/onsit[/url] ... /flash_linux.tar.gz
tar zxvf flash_linux.tar.gz
打开包之后 , 会看到 Linux 文件夹
linux 文件颊里有两个文件 libflashplayer.so shockwaveflash.class, 把这两个文件拷贝到你的浏览器里的插件里 ( 浏览器不一样 , 插件的位置可能也不一样 )
/usr/lib/mozilla-1.0.1/plugins,
就可以了

2027
锁定 wu-ftp 用户目录
编辑 ftpaccess 文件
restricted-uid *
这一句很重要,限制了 ftp 用户在自己的目录里。

2028
服务器怎么不让 telnet
服务器上必须启动 telnet 服务 && 服务器的防火墙优先级应该设为低

2029
防止任何人使用 su 命令成为 root
1.vi /etc/pam.d/su
auth sufficient /lib/security/pam_rootok.so debug
auth required /lib/security/pam_wheel.so group=wheel
2.
/etc/pam. d/su 配置文件中定义了 wheel .

2030
如何使 lynx 浏览器能够浏览中文网页
浏览简体中文网页就的修改如下设置
Save options to disk: [X]
Display and Character Set
Display character set : [Chinese________________________]
Assumed document character set(!): [iso-8859-1______]
CJK mode (!) : [ON_]
然后移到最下面的 Accept Changes 按下 Enter 保存就可以了
当然你的系统要支持简体中文才可以

2031
网卡激活了,却上不了网,怎么办?
traceroute
,看看到底是在那一块被阻住的。
1.ping
自己
2.ping
网关
3.ping DNS
4.traceroute DNS
如果一切正常
nslookup [url]www.sina.com.cn[/url]
ping sina
address
traceroute sina
address
基本上就可以知道结果了

2032
redhat9 下配 samba,win2000 能访问, win98 不能访问?
如果是 wind98 必需修改注册表: HKEY_LOCAL_MACHINE/system/correntcontrolset/services/Vxd/VNETSUP 下建个 D 值: EnablePlainTextpasswd ,键值 1

2033
如何得到网卡的 MAC 地址
arp -a | awk '{print $4}'
ifconfig eth0 | head -1 | awk '{print $5}'

2034
如何得到网卡的 IP 地址
ifconfig eth0 |awk '/inet addr/ {split($2,x,":");print x[2]}'

2035
如何修改 Linux 机器所在的工作组
vi /etc/samba/smb.conf
,修改 workgroup = 一行,将组名写在后面。

2036
一块网卡如何绑定两个 ip
#cd /etc/sysconfig/network-scripts
#cp ifcfg-eth0 ifcfg-eth0:1
#vi ifcfg-eth0:1
修改 IP 和设备名
Debian 下一个网卡绑定多个 ip 的方法
修改 /etc/network/interfaces
auto eth0
iface eth0 inet static
address 172.16.3.123
netmask 255.255.255.0
network 172.16.3.0
broadcast 172.16.3.255
gateway 172.16.3.1

auto eth0:1
iface eth0:1 inet static
address 10.16.3.123
netmask 255.255.0.0
network 10.16.0.0
broadcast 10.16.255.255
修改 /etc/network/ifstate
lo=lo
eth0=eth0
eth0:1=eth0:1
然后 /etc/init.d/networking restart 就可以了。
一个网卡绑定多 ip 另一法
/etc/sysconfig/network-scripts/ 下创建一个文件: ifcfg-ethX-rangeX "X" 为网卡号)
文件内容:
IPADDR_START=<start ip>
IPADDR_END=<end ip>
CLONENUM=0
可以有 256 ip

2037
一个 ip 如何绑定两块网卡
假设 192.168.0.88 ip,192.168.0.1 是网关 :
/sbin/modprobe bonding miimon=100 mode=1
/sbin/ifdown eth0
/sbin/ifdown eth1
/sbin/ifconfig bond0 192.168.0.88
/sbin/ifenslave bond0 eth0 eth1
/sbin/route add default gw 192.168.0.1

2038
192.168.1.0/24
它与 192.168.1.0/255.255.255.0 是等价的,只是表示方式不同 ....

2039
linux 下清空 arp 表的命令
#arp -d -a(
适用于 bsd)
for HOST in `arp | sed '/Address/d' | awk '{ print $1}'` ; do arp -d $HOST; done

2040
使用 ntp 协议从服务器同步时间
ntpdate NTP-SERVER
例: ntpdate 172.16.2.1

2041
host 命令的用法
host
能够用来查询域名,它还能得到更多的信息
host -t mx example.com
可以查询出 example.com MX 记录,以及处理 mail host 的名字
host -l example.com
会返回所有注册在 example.com 下的域名
host -a example.com
则会显示这个主机的所有域名信息 .

2042
立刻让 LINUX 支持 NAT
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -I POSTROUTING -j MASQUERADE

2043
rh8.0 rcp 的用法设置
只对 root 用户生效
1
、在双方 root 用户根目录下建立 .rhosts 文件 , 并将双方的 hostname 加进去 . 在此之前应在双方的 /etc/hosts 文件中加入对方的 IP hostname
2
、把 rsh 服务启动起来, redhat 默认是不启动的。方法:用执行 ntsysv 命令,在 rsh 选项前用空格键选中,确定退出。 然后执行: service xinetd restart 即可。
3
、到 /etc/pam.d/ 目录下,把 rsh 文件中的 auth required /lib/security/pam_securetty.so 一行用“ # ”封掉即可。

2044
ethX 设备上,使 LINUX 支持网络广播功能(默认是不支持的)
ip route add 255.255.255.255 dev ethX

2045
路由设置手册
查看路由信息:
netstat -rn
route -n
手工增加一条路由:
route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1
手工删除一条路由:
route del -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1
好了,下面到了重要的了,让系统启动的时候自动启用路由设置。
redhat 中添加一条路由,修改文件 /etc/sysconfig/static-routes
any net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1
debian 中添加一条路由,

方法一:修改 /etc/network/interfaces
代码 :
auto eth0
iface eth0 inet static
        address 172.16.3.222
        netmask 255.255.0.0
        network 172.16.0.0
        broadcast 172.16.255.255
        gateway 172.16.2.1
   up route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1
   down route del -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1
方法二:在 /etc/network/if-up.d 目录下建立一个简单的脚本文件,如 static-route$ (记得以 $ 符号结尾,要不有个 run-parts 会跑出来告诉你一些东西)脚本最简单的就好啦,如:
代码 :
#!/bin/bash
route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1
嘿嘿,你也可以猜到 /etc/network/ 目录下的其他目录的作用了吧。
发觉在 debian 中这个 route 的设置其实只是它的那些配置文件的一个比较简单的应用而已,你完全可以做更复杂的应用。

2046
利用 ssh 复制文件 (platinum)
假如 A B 都有 SSH 服务,现在在 A SSH
1
、从 A 复制 B (推过去)
scp -rp /path/filename username@remoteIP:/path
2
、从 B 复制到 A (拉过来)
scp -rp username@remoteIP:/path/filename /path
如果其中一个不是 LINUX 系统,可以在 WINDOWS 上用 SecureFX 软件

2047
samba3.0 中文显示问题的解决办法 (linuxzfp, jiadingjun)
samba 3.0 的配置文件中 (/etc/samba/smb.conf) [global] 中加入下面两句:
unix charset=cp936
重启服务
service smb restart

2048
临时修改网卡 MAC 地址的方法
关闭网卡: /sbin/ifconfig eth0 down
然后改地址: /sbin/ifconfig eth0 hw ether 00:AA:BB:CCD:EE
然后启动网卡 :/sbin/ifconfig eth0 up

2049
conntrack 表满的处理方法 (cgweb)
前段时间配置的 iptables+squid 做的 proxy server , 一直工作正常。今天我上控制台上发现
Jun 18 12:43:36 red-hat kernel: ip_conntrack: table full, dropping packet.
Jun 18 12:49:51 red-hat kernel: ip_conntrack: table full, dropping packet.
Jun 18 12:50:57 red-hat kernel: ip_conntrack: table full, dropping packet.
Jun 18 12:57:38 red-hat kernel: ip_conntrack: table full, dropping packet.

IP_conntrack
表示连接跟踪数据库 (conntrack database) ,代表 NAT 机器跟踪连接的数目,连接跟踪表能容纳多少记录是被一个变量控制的,它可由内核中的 ip- sysctl 函数设置。每一个跟踪连接表会占用 350 字节的内核存储空间,时间一长就会把默认的空间填满,那么默认空间时多少?我以 redhat 为例在内存为 64MB 的机器上时 4096, 内存为 128MB 8192, 内存为 256MB 16376 ,那末就能在 /proc/sys/net/ipv4/ip_conntrack_max 里查看、设置。
例如:增加到 81920 ,可以用以下命令 :
echo "81920" > /proc/sys/net/ipv4/ip_conntrack_max

那样设置是不会保存的,要重启后保存可以在 /etc/sysctl.conf 中加:
net.ipv4.ip_conntract_max =81920
按照此方法改变后一切正常,要是在满了可以加大其值 .

2050
Linux 下怎么使用 BT(atz0001)
azureus
[url]http://azureus.sourceforge.net/[/url]

2051
Linux 下查看光纤网卡的工作模式 (sakulagi)
主板上 PCI X 插槽中插入一块 64 位的光纤网卡,在 LINUX9.0 的环境下,要知道它是否工作在 64 位模式下,可使用 getconf WORD_BIT

2052
在线更新 RHEL 的另类途径
1.
安装相应的 APT 包:
Red Hat EL 2.1 - i386
rpm -ihv [url]http://dag.wieers.com/packages/a[/url] ... .0.el2.dag.i386.rpm
Red Hat EL 3 - i386
rpm -ihv [url]http://dag.wieers.com/packages/a[/url] ... .1.el3.dag.i386.rpm
Red Hat EL 3 - x86_64
rpm -ihv [url]http://dag.wieers.com/packages/a[/url] ... .el3.dag.x86_64.rpm
2.
在线更新
apt-get update
apt-get upgrade

2053
SOCKS5 启动后一段时间停止工作。用命令 ps auxw | grep socks5 查看,发现有很多 SOCKS defunct 进程,为什么
主要是打补丁的问题。如果 socks5-tar.gz 是没打过补丁的版本,必须下一个带补丁的 v1.0-r11 版本,重新安装、运行问题就可以解决了。

2054
VMware WorkStation 4.0.5 中安装 Debian 3.0 时,提示找不到硬盘,需要 SCSI 的驱动。但是我用的是 IDE 硬盘,请问该怎么办?  
由于 VMware 将用户划分的硬盘空间虚拟成 SCSI 硬盘,而 Debian 安装盘中没有对应的驱动,而安装其它 Linux 版本时,有的在一开始会加载 SCSI 驱动,所以没有这个问题。用户可以修改 VMware 的配置,将其改为模拟 IDE 硬盘就可以了。

2055
如何让 Linux 网关后面的 WIN32 下的用户直接点击 FTP 连接下载? (platinum)
modprobe ip_nat_ftp

2056
请问用户的 IP 是动态的,如何在 Squid 中限定在同一时间内同一账户在线的数量?
例如限制单个用户只能打开 12 HTTP 连接,采用下面的方法:
acl all src 0.0.0.0/0.0.0.0
acl limit maxconn 12
acl localnet src 192.168.0.0/24
http_access deny localnet maxconn
http_access allow localnet
http_access deny all

2057
如果我用 Squid 代理的代理服务器在 192.168.1.0 这个网段里,例如它的 IP 192.168.1.1 ,我有一些客户端在 192.168.2.0 这个网段内,怎样设置才能通过这个代理服务器出去?
如果不用透明代理,直接在浏览器的代理选项里设置就可以了。否则首先是在代理服务器的网卡上再挂一个 IP 192.168.2.1 ,添加相应的路由,再修改 Squid squid.conf 文件里的监听地址和端口等,最后在 192.168.2.0 网段的客户端设置其网关为 192.168.2.1 ,再直接在浏览器的代理选项里设置一下就可以了。

2058
如何使用 netrc 文件进行自动 FTP
在自己的 home 目录下建立一个权限为 600 ,后缀名为 .netrc 的文件,内容如下:
machine 172.168.15.1 login admin password admin
这样用户以后每次登录 FTP 服务器 172.168.15.1 的时候,系统都会帮用户以用户名 admin 、密码 admin 登录。用户利用这个特征可以实现自动 FTP 。例如用户想要每天 6:00 172.168.15.1 机器上面获得 /admin 目录下的文件 admin.txt ,可以按如下方法做。
建立一个文件 ftp_cmd ,内容如下:
cd admin
get amin.txt
bye
然后使用 crontab -e 设置定时任务:
0 6 * * * ftp 172.168.15.1 < ftp_cmd

2059
怎样得到 ipchains 的日志?
用户设置规则的时候必须加入 -l 参数才会在 /etc/messages 里面做记录。不过建议还是不加的好,不然用户的 /etc/messages 会变得非常大。

2060
如何不显示其它用户的消息?
用户可以使用 mesg n 来禁止别人给自己发送信息,其实就是禁止别人往自己的终端上面的写的权限。当别人试图再使用 write 给自己发送信息时,发送者将会看见提示如下:
write: user has messages disabled on pts/n

2061
minicom 彩色显示 ( 双眼皮的猪 )
minicom -s
进行 serial port 配置 , 然后配置好以后 ,
minicom -o -c on
-o
表示不初始化
-c on
表示 color on

2062
启用 SELinux Apache 的配置文件 httpd.conf 里面修改 DocumentRoot 无用或者出现 403 Forbidden 错误 (arbor)
# chcon -u system_u -t httpd_sys_content_t -R website
目录

2063
apache2 log 文件位置如何自定义目录 (tomi)
编辑 httpd.conf 里的
ErrorLog /var/log/http/error_log          <==
这是管 errorlog
CustomLog /var/log/http/access_log common        <==
这是管 accesslog

2064
更改 eth0 是否混杂模式 (wwy)
网卡 eth0 改成混杂模式:
ifconfig eth0 promisc
关闭混杂模式:
ifconfig eth0 -promisc

2065
字符界面下的 ftp 中,下载整个文件夹
1. lftp IP
2. > user username
password
3. > mirror -c --parallel=number remotedir localdir
3a. > help mirror

2066
如何让 ssh 只允许指定的用户登录
方法 1 :在 /etc/pam.d/sshd 文件中加入
auth   required   pam_listfile.so  item=user  sense=allow  file=/etc/sshusers  onerr=fail
然后在 /etc 下建立 sshusers 文件 , 编辑这个文件 , 加入你允许使用 ssh 服务的用户名 , 重新起动 sshd 服务即可。
方法 2 pam 规则也可以写成 deny
auth   required   pam_listfile.so  item=user  sense=deny  file=/etc/sshusers  onerr=succeed
方法 3 :在 sshd_config 中设置 AllowUsers ,格式如
AllowUsers a b c
重启 sshd 服务,则只有 a/b/c3 个用户可以登陆。

2067
Linux 下如何绑定 IP 地址和硬件地址
可以编辑一个地址对应文件,里面记录了 IP 地址和硬件地址的对应关系,然后执行“ arp �C f 地址对应文件”。如果没有指定地址对应文件,则通常情况下一默认文件 /etc/ethers 为准。地址对应文件的格式如下:
192.168.0.1 00:0D:61:27:58:93
192.168.0.2 00:40:F4:2A:2E:5C
192.168.0.3 00:0A:EB:5E:BA:8E

2068
已知网络中一个机器的硬件地址,如何知道它所对应的 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 �Ca|grep 00:0A:EB:27:17:B9
192.168.2.54 at 00:0A:EB:27:17:B9[ether] on eth2

2069
基于 Apache HTTPD Sendmail 服务在启动时被挂起了,如何解决此问题
遇到此类问题,请确认 /etc/hosts 文件中是否包含如下一行:
127.0.0.1 localhost.localdomain localhost
127.0.0.1
是网络的回路地址。

2070
如何使 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

2071
压缩传输文件或目录 (FunBSD)
传输到远程: tar czf - www | ssh server "tar zxf -"
压缩到远程: tar czf - www | ssh server "cat > [url]www.tar.gz[/url]"
解压到远程: ssh server "tar zxf -" < [url]www.tar.gz[/url]
解压到本地: ssh server "cat [url]www.tar.gz[/url]" | tar zxf -

2072
rsync 同步压缩传输文件或目录 (FunBSD)
rsync -aze ssh --delete sample_dir/ remote_host:remote_dir/sample_dir/
目录最后的 / 不能少

2073
无需输入密码使用 ssh 密钥登录 (FunBSD)
ssh-keygen -b 1024 -t rsa
ssh server "mkdir .ssh; chmod 0700 .ssh"
scp ~/.ssh/id_rsa.pub server:~/.ssh/authorized_keys
这样就不在提示密码,直接可以登录 server
对文件复制、同步等操作都比较方便
ssh_config 里加入这两句就更方便了
ForwardAgent yes
StrictHostKeyChecking no

2074
wget 下载整个网站
wget -t0 -c -nH -np -b -m -P /localdir [url]http://freesoft.online.sh.cn/mirrors/ftp.redhat.com[/url] -o wget.log

2075
命令行下发送带附件的邮件
方法 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>
本地需要作为附件的文件名。

2076
高效率使用 1000 兆网卡
系统加载模块时,可以根据实际情况调节参数,使网卡工作在最佳状态。驱动重新提供的可选择参数有速率、工作模式、自适应和流控等
Linux 下,可以定义合法速率参数为 0 10 100 1000 。却省为 0 ,表示网卡工作在自适应状态下,其他值分别为 10Mb 100Mb 1000Mb
工作模式有全、半双工方式。 0 表示适应; 1 表示半双工; 2 表示全双工。
自适应方式的有效期值范围 0~3 0 表示不设置流控; 1 表示仅对 Rx 流控; 2 表示仅对 Tz 流控; 3 表示对 Rx/Tx 双向流控。缺省为 3

2077
管理 SSH 监听端口
从安全角度考虑, SSH 应当取代 Telnet 。目前在 Linux 上使用广泛的 SSH 服务器软件 sshd-config (默认路径是 /etc/ssh/sshd-config )文件中, Port 22 sshd 监听的端口,即为连接到主机时需要使用的端口。使用以下代码可以指定 sshd 监听的接口地址:
ListenAddress 192.168.0.254
这样,就可以避免向未知的用户提供登录服务

----------------------------
程序开发篇 --------------------------
3001
linux 下调试 core 文件
gdb <progname> <core>
<progname>:
出错产生 core dump 的可执行程序。
<core>: core dump
的文件名,缺省是“ core

3002
gcc abc.c 得到的 a.out 不能运行
./a.out

3003
c++ 编译时为什么出错信息说 cout 没定义
include
头文件完后加入 using namespace std;

3004
新编译生成的 gcc ,使用的标准连接库都在 /usr/local/lib 下了,但使用的缺省的连接路径是 /usr/lib 怎样添加?(除了在每次编译时 增加 -L /usr/local/lib 以外 )(sakulagi, hutuworm)
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
写到 ~/.bash_profile 里面。
增加一种简便办法:
/usr/local/lib 加入 /etc/ld.so.conf ,然后运行一次 ldconfig

3005
RH9 GCC 的安装 ( 一起走过的日子, hutuworm)
三种方法选一:
(1)
利用 CD rpm 安装
CD-1:compat-gcc-7.3-2.96.118.i386.rpm
CD-1:compat-gcc-c++-7.3-2.96.118.i386.rpm
CD-1:libgcc-3.2.2-5.i386.rpm
CD-2:compat-gcc-g77-7.3-2.96.118.i386.rpm
CD-2:compat-gcc-java-7.3-2.96.118.i386.rpm
CD-2:compat-gcc-objc-7.3-2.96.118.i386.rpm
CD-2:gcc-3.2.2-5.i386.rpm
CD-2:gcc-c++-3.2.2-5.i386.rpm
CD-2:gcc-g77-3.2.2-5.i386.rpm
CD-2:gcc-gnat-3.2.2-5.i386.rpm
CD-2:gcc-java-3.2.2-5.i386.rpm
CD-2:gcc-objc-3.2.2-5.i386.rpm
比如碰到系统提示:
warning : gcc-3.2.2-5.i386.rpm : V3 DSA signature :MOKEY key ID db42a60e
error : Failed dependencies :
binutils >=2.13.90.0.18-9 is needed by gcc-3.2.2-5
glibc-devel >=2.3.2-11.9 is needed by gcc-3.2.2-5...
就先安�b glibc-devel 包,依此类推
(2)
更好的方法就是在 X-window 下选“主菜单”── > “系统设置”── > “添加 / 删除应用程序”── > “开发工具”中的 gcc 并安装它
(3) up2date gcc
便可自动解决 dependency 问题

3006
shell 脚本为何无法运行 (GOD_Father)
第一,脚本权限要为可执行 #chmod +x test.sh
第二,脚本所在的目录在环境变量 PATH 中,或者直接执行 #./test.sh

3007
查看某个文件被哪些进程在读写 (bjweiqiong)
lsof
文件名

3008  
查看某个进程打开了哪些文件 (bjweiqiong)
lsof
�C c 进程名
lsof �Cp
进程号

3009  
lsof 是什么意思 (bjweiqiong)
list open files

3010
lsof 用法小全 (bjweiqiong)
lsof abc.txt
显示开启文件 abc.txt 的进程
lsof -i :22
知道 22 端口现在运行什么程序
lsof -c nsd
显示 nsd 进程现在打开的文件
lsof -g gid
显示归属 gid 的进程情况
lsof +d /usr/local/
显示目录下被进程开启的文件
lsof +D /usr/local/
同上,但是会搜索目录下的目录,时间较长
lsof -d 4  
显示使用 fd 4 的进程
lsof -i
用以显示符合条件的进程情况
语法 : lsof -i[46] [protocol][@hostname|hostaddr][:service|port]
46 --> IPv4 or IPv6
protocol --> TCP or UDP
hostname --> Internet host name
hostaddr --> IPv4
位置
service --> /etc/service
中的 service name ( 可以不只一�� )
port -->
埠� ( 可以不只一�� )
例子 : TCP:25 - TCP and port 25
@1.2.3.4 - Internet IPv4 host address 1.2.3.4
tcp@ohaha.ks.edu.tw:ftp - TCP protocol host:ohaha.ks.edu.tw service name:ftp
lsof -n
不将 IP 转换为 hostname ,预设是不加上 -n 参数
例子 : lsof -i tcp@ohaha.ks.edu.tw:ftp -n
lsof -p 12  
看进程号为 12 的进程打开了哪些文件    
lsof +|-r [t]
控制 lsof 不断重复执行,缺省是 15s 刷新
-r
lsof 会永远不断的执行,直到收到中断讯号
+r
lsof 会一直执行,直到没有档案被显示
例子:不断查看目前 ftp 连接的情况: lsof -i tcp@ohaha.ks.edu.tw:ftp -r
lsof -s
列出打开文件的大小,如果没有大小,则留下空白
lsof -u username  
UID ,列出打开的文件

3011
让某用户只能 ftp ,不能 ssh/telnet(bjweiqiong)
vi /etc/passwd
将用户行中的 /bin/bash 改为 /bin/false 即可


 
----------------------------mysql 相关篇 --------------------------
5001
mysql 的数据库存放在什么地方  
1.
如果使用 rpm 包安装,应该在 /var/lib/mysql 目录下,以数据库名为目录名
2.
如果源码安装在 /usr/local/mysql 中,应该在 /usr/local/mysql/var 中,以数据库名为目录名

5002
mysql 中导出和导入数据  
导出数据库
mysqldump
数据库名 > 文件名
导入数据库
mysqladmin create
数据库名
mysql
数据库名 < 文件名

5003
忘了 mysql root 口令怎么办  
# service mysql stop
# mysqld_safe --skip-grant-tables &
# mysqladmin -u user password 'newpassword''
# mysqladmin flush-privileges

5004
快速安装 php/mysql
确保使用系统自带的 apache ,从安装光盘中找出所有以 mysql php-mysql 开头的 rpm 包,然后运行 #rpm -ivh mysql*.rpm php-mysql*.rpm; mysql_install_db; service mysql start

5005
修改 mysql root 口令  
大致有 2 种方法:
1
mysql>mysql -uroot -pxxx mysql
mysql>update user set password=password('new_password') where user='user';
mysql>flush privileges;
2
、格式: mysqladmin -u 用户名 -p 旧密码 password 新密码
#mysqladmin -uroot -password ab12
注:因为开始时 root 没有密码,所以 -p 旧密码一项就可以省略了

5006
如何使用 rpm 方式安装 mysql   
首先下载合适的 rpm 包,例如下载了文件 MySQL-5.0.19-0.i386.rpm
用一下方法安装:
#rpm -ivhU MySQL-5.0.19-0.i386.rpm
通常情况下,安装完这个 rpm 包后,只具备有 mysqld 服务功能,其它相关的 client 程序和开发包还需要另外安装
#rpm -ivhU MySQL-devel-5.0.19-0.i386.rpm
#rpm -ivhU MySQL-client-5.0.19-0.i386.rpm

5007
如何安装已经编译好了的 mysql 二进制包    
首先下载合适的二进制包,例如下载了文件 mysql-standard-4.1.13-pc-linux-gnu-i686.tar.gz
#groupadd mysql
#useradd -g mysql mysql
#cd /usr/local
#tar zxf mysql-standard-4.1.13-pc-linux-gnu-i686.tar.gz
#ln -s mysql-standard-4.1.13-pc-linux-gnu-i686 mysql
#cd mysql
#scripts/mysql_install_db --user=mysql
#chgrp -R mysql *
#bin/mysqld_safe --user=mysql &
有什么个性化的配置,可以通过创建 /etc/my.cnf 或者 /usr/local/mysql/data/my.cnf ,增加相关的参数来实现

5008
如何自己编译 mysql   
redhat linux 9.0 为例:
下载文件 mysql-4.1.13.tar.gz
#tar zxf mysql-4.1.13.tar.gz
#cd mysql-4.1.13
#./configure --prefix=/usr/local/mysql --enable-assembler \
--with-mysqld-ldflags=-all-static --localstatedir=/usr/local/mysql/data \
--with-unix-socket-path=/tmp/mysql.sock --enable-assembler \
--with-charset=complex --with-low-memory --with-mit-threads
#make
#make install
#groupadd mysql
#useradd -g mysql mysql
#chgrp -R mysql /usr/local/mysql/
#/usr/local/mysql/bin/mysqld_safe --user=mysql &
有什么个性化的配置,可以通过创建 /etc/my.cnf 或者 /usr/local/mysql/data/my.cnf ,增加相关的参数来实现

5009
如何登录 mysql 
使用 mysql 提供的客户端工具登录
#PATH_TO_MYSQL/bin/mysql -uuser -ppassword dateabase

5010
mysqld 起来了,却无法登录,提示 "/var/lib/mysql/mysql.sock" 不存在  
这种情况大多数是因为你的 mysql 是使用 rpm 方式安装的,它会自动寻找 /var/lib/mysql/mysql.sock 这个文件,
通过 unix socket 登录 mysql
常见解决办法如下:
1
、创建 / 修改文件 /etc/my.cnf ,至少增加 / 修改一行
[mysql]
[client]
socket = /tmp/mysql.sock
#
在这里写上你的 mysql.sock 的正确位置,通常不是在 /tmp/ 下就是在 /var/lib/mysql/
2
、指定 IP 地址,使用 tcp 方式连接 mysql ,而不使用本地 sock 方式
#mysql -h127.0.0.1 -uuser -ppassword
3
、为 mysql.sock 加个连接,比如说实际的 mysql.sock /tmp/ 下,则
# ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock
即可

5011
如何新增一个 mysql 用户  
格式: grant select on 数据库 .* to 用户名 @ 登录主机 identified by " 密码 "
1 、增加一个用户 test1 密码为 abc ,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以 root 用户连入 MYSQL ,然后键入以下命令:
mysql>grant select,insert,update,delete on *.* to test1@"%" Identified by "abc";
但例 1 增加的用户是十分危险的,你想如某个人知道 test1 的密码,那么他就可以在 internet 上的任何一台电脑上登录你的 mysql 数据库并对你的数据可以为所欲为了,解决办法见例 2
2 、增加一个用户 test2 密码为 abc, 让他只可以在 localhost 上登录,并可以对数据库 mydb 进行查询、插入、修改、删除的操作( localhost 指本地主机,即 MYSQL 数据库所在的那台主机),这样用户即使用知道 test2 的密码,他也无法从 internet 上直接访问数据库,只能通过 MYSQL 主机上的 web 页来访问了。
mysql>grant select,insert,update,delete on mydb.* to test2@localhost identified by "abc";
如果你不想 test2 有密码,可以再打一个命令将密码消掉。
mysql>grant select,insert,update,delete on mydb.* to test2@localhost identified by "";
另外,也可以通过直接往 user 表中插入新纪录的方式来实现

5012
如何查看 mysql 有什么数据库  
mysql>show databases;

5013
如何查看数据库下有什么表  
mysql>show tables;

5014
导出数据的几种常用方法    
1
、使用 mysqldump
#mysqldump -uuser -ppassword -B database --tables table1 --tables table2 > dump_data_20051206.sql
详细的参数
2
backup to 语法
mysql>BACKUP TABLE tbl_name[,tbl_name...] TO '/path/to/backup/directory';
详细请查看 mysql 手册
3
mysqlhotcopy
#mysqlhotcopy db_name [/path/to/new_directory]

#mysqlhotcopy db_name_1 ... db_name_n /path/to/new_directory

#mysqlhotcopy db_name./regex/
详细请查看 mysql 手册
4
select into outfile
详细请查看 mysql 手册
5
、客户端命令行
#mysql -uuser -ppassword -e "sql statements" database > result.txt
以上各种方法中,以 mysqldump 最常用

5015
如何在命令行上执行 sql 语句  
#mysql -uuser -ppassword -e "sql statements" database

5016
导入备份出来文件的常见方法  
1
、由 mysqldump 出来的文件
#mysql -uuser -ppassword [database] < dump.sql
2
、文件类型同上,使用 source 语法
mysql>source /path_to_file/dump.sql;
3
、按照一定格式存储的文本文件或 csv 等文件
#mysqlimport [options] database file1 [file2....]
详细请查看 mysql 手册
4
、文件类型同上,也可以使用 load data 语法导入
详细请查看 mysql 手册

5017
mysql 以大内存方式启动
/usr/share/mysql 下的某个 mysql-*.cnf( 1G 内存时为 mysql-huge.cnf) 拷贝为 /etc/mysql.cnf 文件,并重启 mysql

你可能感兴趣的:(linux,问题,职场,休闲)