LinuxFAQ
1.split分割合并文件
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
方法2. cat
####################################################
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
如果击键变得混乱时,试着用
这个命令不会回到先前的设置,但却可以去除一些稀奇古怪的设置。而真正会出现什么设置要依赖于所使用的系统,但它至少会让你能输入字符,并见到结果。从这里开始,你可以把一些组合键设置为你所喜欢的方式。
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
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!