links -dump your.html html2txt
lynx --dump your.html html2txt
ldconfig是一个动态链接库管理命令
为了让动态链接库为系统所共享,还需运行动态链接库的管理命令--ldconfig
ldconfig 命令的用途,主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态链接库(格式如前介绍,lib*.so*),进而创建出动态装入程序(ld.so)所需的连接和缓存文件.缓存文件默认为 /etc/ld.so.cache,此文件保存已排好序的动态链接库名字列表.
ldconfig通常在系统启动时运行,而当用户安装了一个新的动态链接库时,就需要手工运行这个命令.
ldconfig命令行用法如下:
ldconfig [-v|--verbose] [-n] [-N] [-X] [-f CONF] [-C CACHE] [-r ROOT] [-l] [-p|--print-cache] [-c FORMAT] [--format=FORMAT] [-V] [-?|--help|--usage] path...
ldconfig可用的选项说明如下:
(1) -v或--verbose : 用此选项时,ldconfig将显示正在扫描的目录及搜索到的动态链接库,还有它所创建的连接的名字.
(2) -n : 用此选项时,ldconfig仅扫描命令行指定的目录,不扫描默认目录(/lib,/usr/lib),也不扫描配置文件/etc/ld.so.conf所列的目录.
(3) -N : 此选项指示ldconfig不重建缓存文件(/etc/ld.so.cache).若未用-X选项,ldconfig照常更新文件的连接.
(4) -X : 此选项指示ldconfig不更新文件的连接.若未用-N选项,则缓存文件正常更新.
(5) -f CONF : 此选项指定动态链接库的配置文件为CONF,系统默认为/etc/ld.so.conf.
(6) -C CACHE : 此选项指定生成的缓存文件为CACHE,系统默认的是/etc/ld.so.cache,此文件存放已排好序的可共享的动态链接库的列表.
(7) -r ROOT : 此选项改变应用程序的根目录为ROOT(是调用chroot函数实现的).选择此项时,系统默认的配置文件 /etc/ld.so.conf,实际对应的为 ROOT/etc/ld.so.conf.如用-r /usr/zzz时,打开配置文件 /etc/ld.so.conf时,实际打开的是/usr/zzz/etc/ld.so.conf文件.用此选项,可以大大增加动态链接库管理的灵活性.
(8) -l : 通常情况下,ldconfig搜索动态链接库时将自动建立动态链接库的连接.选择此项时,将进入专家模式,需要手工设置连接.一般用户不用此项.
(9) -p或--print-cache : 此选项指示ldconfig打印出当前缓存文件所保存的所有共享库的名字.
(10) -c FORMAT 或 --format=FORMAT : 此选项用于指定缓存文件所使用的格式,共有三种: ld(老格式),new(新格式)和compat(兼容格式,此为默认格式).
(11) -V : 此选项打印出ldconfig的版本信息,而后退出.
(12) -? 或 --help 或 --usage : 这三个选项作用相同,都是让ldconfig打印出其帮助信息,而后退出.
解压缩命令
bzip2 -d xxx.tar.bz2
tar -xvf xxx.tar
tar -jxcf xxx.tar.bz2
开/关防火墙
iptables1) 重启后生效:
开启: chkconfig iptables on
关闭: chkconfig iptables off
2) 即时生效,重启后失效:
开启: service iptables start
关闭: service iptables stop
//
在开启了防火墙时,做如下设置,开启相关端口,
修改/etc/sysconfig/iptables 文件,添加以下内容:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
修改文件/目录所有者
chown user:group xxx [-R]
查看CPU信息
cat /proc/cpuinfo
时间戳转换格式化时间
date -d '1970-01-01 UTC 1 seconds'
查看磁盘信息
df -lh
fdisk -l
du * -sh
Dmesg
dmesg 是一个显示内核缓冲区系统控制信息的工具;比如系统在启动时的信息会写到/var/log/
注:dmesg 工具并不是专门用来查看硬件芯片组标识的工具,但通过这个工具能让我们知道机器中的硬件的一些参数;因为系统在启动的时候,会写一些硬件相关的日志到 /var/log/message* 或
/var/log/boot* 文件中;
如果我们用这个工具来查看一些硬件的信息;这个工具信息量太大,的确需要耐心;
[root@panda ~]# dmesg
[root@panda ~]# dmesg -c 注:清理掉缓冲区,下次开机的时候还会自动生成;
Linux命令:dmesg
功能说明:显示开机信息。
语 法:dmesg [-cn][-s <缓冲区大小>]
补充说明:kernel会将开机信息存储在ring buffer中。您若是开机时来不及查看信息,可利用dmesg来查看。开机信息亦保存在/var/log目录中,名称为dmesg的文件里。
参 数:
-c 显示信息后,清除ring buffer中的内容。
-s<缓冲区大小> 预设置为8196,刚好等于ring buffer的大小。
-n 设置记录信息的层级。
实用工具dmesg显示内核环缓冲区(kernel-ring buffer),内核将各种消息存放在这里。在系统引导时,内核将与硬件和模块初始化相关的信息填到这个缓冲区中。内核环缓冲区中的消息对于诊断系统问题通常非常有用。在运行dmesg时,它显示大量信息。通常通过less或grep使用管道查看dmesg的输出,这样可以更容易找到待查信息。
例如,如果发现硬盘性能低下,可以使用dmesg来检查它们是否运行在DMA模式:
$ dmesg | grep DMA
...
ide0: BM-DMA at 0xf000-0xf007, BIOS settings: hda:DMA, hdb:DMA
ide1: BM-DMA at 0xf008-0xf00f, BIOS settings: hdc:DMA, hdd:DMA
...
上面几行可以说明每个IDE设备正在什么模式下运行。如果以太网连接出现问题,那么可以在dmesg日志中搜索eth:
$ dmesg | grep eth
forcedeth.c: Reverse Engineered nForce
ethernet driver. Version 0.49.
eth0: forcedeth.c: subsystem: 0147b:1c00
bound to 0000:00:04.0
eth0: no IPv6 routers present
如果一切正常,那么dmesg显示每个网卡的硬件配置信息。如果某项系统服务未能得到正确的配置,dmesg日志很快就填满错误消息,这是诊断故障的良好起点。
应用:
kernel中写日志
printk(KERN_INFO "kd_msg message.\n");
查看来自内核输出(最新5行)
$ dmesg | tail -5
修改程序so搜索路径
export LD_LIBRARY_PATH=/root/xxx/lib
rm `find . -name *.dat`
find . -name *.dat -print -exec rm {} \;
find / -name httpd.conf [-print]
//从文件内容查找匹配指定字符串的行:
$ grep "被查找的字符串" 文件名
从文件内容查找与正则表达式匹配的行:
$ grep –e “正则表达式” 文件名
查找时不区分大小写:
$ grep –i "被查找的字符串" 文件名
查找匹配的行数:
$ grep -c "被查找的字符串" 文件名
从文件内容查找不匹配指定字符串的行:
$ grep –v "被查找的字符串" 文件名
从根目录开始查找所有扩展名为.log的文本文件,并找出包含”ERROR”的行
find / -type f -name "*.log" | xargs grep "ERROR"
执行jar包
java -jar xxx.jar "arg1" "arg2"
ld命令
挂载内存
mount tmpfs /home/jichl/xxx -t tmpfs -o size=1024M
查看端口使用情况
netstat -ntlpa
修改用户xxx密码
passwd xxx
ps命令
ps axf
前面介绍的两个命令都是用于查看当前系统用户的情况,下面就来看看进程的情况,这也是本章的主题.要对进程进行监测和控制, 首先必须要了解当前进程的情况,也就是需要查看当前进程,而ps命令就是最基本同时也是非常强大的进程查看命令.使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵尸、哪些进程占用了过多的资源等等.总之大部分信息都是可以通过执行该命令得到的.
ps命令最常用的还是用于监控后台进程的工作情况,因为后台进程是不和屏幕键盘这些标准输入/输出设备进行通信的,所以如果需要检测其情况,便可以使用ps命令了.
ps [选项]
下面对命令选项进行说明∶
-e显示所有进程.
-f全格式.
-h不显示标题.
-l长格式.
-w宽输出.
a显示终端上的所有进程,包括其他用户的进程.
r只显示正在运行的进程.
x显示没有控制终端的进程.
O[+|-] k1 [,[+|-] k2 [,…]] 根据SHORT KEYS、k1、k2中快捷键指定的多级排序顺序显示进程列表.对于ps的不同格式都存在着默认的顺序指定.这些默认顺序可以被用户的指定所覆盖.其中“+”字符是可选的,“-”字符是倒转指 定键的方向.
最常用的三个参数是u、a、x.
查看线程
ps H -eo user,pid,ppid,tid,time,%cpu,cmd --sort=%cpu
rpm命令.
rpm -ivh xxxx.i386.rpm
//安装所有依赖文件包
rpm -ivh --aid xxx.i386.rpm
rpm -qa glibc
1、查询
#rpm -q bash (查询系统中bash是否安装)
#rpm -qa (查询系统中已安装的所有的rpm包,q,question,查询;a, all)
#rpm -qa | grep -i qq (以qq为关键字查询)
#rpm -qi bash (i,information,查询系统中bash的详细信息)
#rpm -ql bash (l,list 查看系统中已安装软件包中所包括的文件列表)
#rpm -qf bash (查看系统中文件所属的软件包)
#rpm -qpi bash-3.0-19.2.i386.rpm 或者
#rpm -qpl bash-3.0-19.2.i386.rpm (查询指定rpm包文件中的详细信息)
------------------------------------------------------------------------
#rpm -i linuxqq-1.0-preview2008.i386.rpm (安装过程无提示)
#rpm -ivh linuxqq-1.0-preview2008.i386.rpm (安装过程有提示)
#rpm -Uvh linuxqq-1.0-preview2008.i386.rpm (升级、覆盖安装,安装过 程有提示)
#rpm --force -ivh (强制安装)
------------------------------------------------------------------------
先查看将要卸载的软件在系统中的名字:
#rpm - qa | grep -i qq
linuxqq-1.0-Preview2008
根据系统提示的软件包名字卸载:
#rpm -e linuxqq-1.0-previw2008 (不能添加后缀.rpm)
scp命令.
在Linux下远程使用scp拷贝文件
SSH提供了一些明令和shell用来登录远程服务器。在默认情况下它不允许你拷贝文件,但是还是提供了一个"scp"命令。
假定你想把本地计算机当前目录下的一个名为"dumb"的文件拷贝到远程服务器www.35.com上你的家目录下。而且你在远程服务器上的帐号名为"jichl"。可以用这个命令:
scp dumb jichl@www.35.com:.
把文件拷贝回来用这个命令:
scp jichl@www.35.com:dumb .
"scp"调用SSH进行登录,然后拷贝文件,最后调用SSH关闭这个连接。
如果在你的"~/.ssh/config"文件中已经为www.35.com做了这样的配置:
Host *fbc
HostName www.35.com
User jichl
ForwardAgent yes
那么你就可以用"fbc"来代替"jichl@www.35.com",命令就简化为"scp dumb fbc:."。
"scp"假定你在远程主机上的家目录为你的工作目录。如果你使用相对目录就要相对于家目录。
用"scp"命令的"-r"参数允许递归地拷贝目录。"scp"也可以在两个不同的远程主机之间拷贝文件。
关于SSH的详细信息,可以参考http://www.linuxaid.com.cn/engineer/brimmer/html/ssh.htm
scp user@host:/path/to/files local_file_name
拷贝到远程
scp local_file_name user@host:/path/to/files
拷贝目录到远程
scp -r local_file_name user@host:/path/to/files
跟踪程序的系统调用
strace -p pid
tail -f /xxx/xxx.log
tail -n 100 /xxx/xxx.log
tar 命令.
1.将当前目录下所有.txt文件打包并压缩归档到文件this.tar.gz,我们可以使用
tar czvf this.tar.gz ./*.txt
2.将当前目录下的this.tar.gz中的文件解压到当前目录我们可以使用
tar xzvf this.tar.gz ./
tar -cvf /home/www/images.tar /home/www/images 仅打包,不压缩
tar -zcvf /home/www/images.tar.gz /home/www/images 打包后,以gzip压缩
tar xvf filename.tar -C /specific dir
查看linux版本.
几种查看linux版本信息的方法
1. uname -a
2. cat /proc/version
3. cat /etc/issue
4. lsb_release -a
vncserver.
[root@linux root]# vncserver
You will require a password to access your desktops.
Password: ---第一次输入密码
Verify: ---第二次输入
New ‘X’ desktop is linux:1 -- 注意Linux下是登录VNC还要加这个number(例,在viewer端输入 IP:1)
更改密码 vncpasswd
修改/root/.vnc/xstartup文件
#twm &
gnome-session &
关闭
killall Xvnc
vncserver -kill :x (X为编号)
vncserver -geometry 1400x840
vncconfig &
安装rz sz
yum install lrzsz
压缩文件使用较少磁盘空间,并且比未压缩的大文件下载速度要快。在 Red Hat Linux 中,你可以使用的文件压缩工具有:gzip、bzip2、和 zip。
推荐你使用 bzip2 压缩工具,因为它提供了最大限度的压缩,并且可在多数类似 UNIX 的操作系统上找到。gzip 压缩工具也可以在类似 UNIX 的操作系统上找到。如果你需要在 Linux 和其它操作系统如 MS Windows 间传输文件,你应该使用 zip,因为该命令与 Windows 上的压缩工具最兼容。
压缩工具 文件扩展名 解压工具
gzip .gz gunzip
bzip2 .bz2 bunzip2
zip .zip unzip
表 14-1. 压缩工具
按照约定俗成,用 gzip 来压缩的文件的扩展名是 .gz;用 bzip2 来压缩的文件的扩展名是 .bz2;用 zip 压缩的文件的扩展名是 .zip。
用 gzip 压缩的文件可以使用 gunzip 来解压;用 bzip2 压缩的文件可以使用 bunzip2 来解压;用 zip 压缩的文件可以使用 unzip 来解压。
bzip2 和 bunzip2
要使用 bzip2 来压缩文件,在 shell 提示下键入以下命令:
bzip2 filename
文件即会被压缩并被保存为 filename.bz2。
要扩展压缩的文件,键入以下命令:
bunzip2 filename.bz2
filename.bz2 文件会被删除,而继之以 filename。
你可以使用 bzip2 命令同时处理多个文件和目录,方法是将它们逐一列出,并用空格间隔:
bzip2 filename.bz2 file1 file2 file3 /usr/work/school
上面的命令把 file1、file2、 file3、以及 /usr/work/school 目录的内容(假设这个目录存在)压缩起来,然后放入 filename.bz2 文件中。
gzip 和 gunzip
要使用 gzip 来压缩文件,在 shell 提示下键入以下命令:
gzip filename
文件即会被压缩,并被保存为 filename.gz。
要扩展压缩的文件,键入以下命令:
gunzip filename.gz
filename.gz 会被删除,而继之以 filename。
你可以使用 gzip 命令同时处理多个文件和目录,方法是将它们逐一列出,并用空格间隔:
gzip -r filename.gz file1 file2 file3 /usr/work/school
上面的命令把 file1、file2、 file3、以及 /usr/work/school 目录的内容(假设这个目录存在)压缩起来,然后放入 filename.gz 文件中。
zip 和 unzip
要使用 zip 来压缩文件,在 shell 提示下键入下面的命令:
zip -r filename.zip filesdir
在这个例子里,filename.zip 代表你创建的文件,filesdir 代表你想放置新 zip 文件的目录。-r 选项指定你想递归地(recursively)包括所有包括在 filesdir 目录中的文件。
要抽取 zip 文件的内容,键入以下命令:
unzip filename.zip
你可以使用 zip 命令同时处理多个文件和目录,方法是将它们逐一列出,并用空格间隔:
zip -r filename.zip file1 file2 file3 /usr/work/school
上面的命令把 file1、file2、 file3、以及 /usr/work/school 目录的内容(假设这个目录存在)压缩起来,然后放入 filename.zip 文件中。
tar 文件是几个文件和(或)目录在一个文件中的集合。这是创建备份和归档的佳径。
tar 使用的选项有:
*
-c — 创建一个新归档。
*
-f — 当与 -c 选项一起使用时,创建的 tar 文件使用该选项指定的文件名;当与 -x 选项一起使用时,则解除该选项指定的归档。
*
-t — 显示包括在 tar 文件中的文件列表。
*
-v — 显示文件的归档进度。
*
-x — 从归档中抽取文件。
*
-z — 使用 gzip 来压缩 tar 文件。
*
-j — 使用 bzip2 来压缩 tar 文件。
要创建一个 tar 文件,键入:
tar -cvf filename.tar directory/file
在以上的例子中,filename.tar 代表你创建的文件,directory/file 代表你想放入归档文件内的文件和目录。
你可以使用 tar 命令同时处理多个文件和目录,方法是将它们逐一列出,并用空格间隔:
tar -cvf filename.tar /home/mine/work /home/mine/school
上面的命令把 /home/mine 目录下的 work 和 school 子目录内的所有文件都放入当前目录中一个叫做 filename.tar 的新文件里。
要列出 tar 文件的内容,键入:
tar -tvf filename.tar
要抽取 tar 文件的内容,键入:
tar -xvf filename.tar
这个命令不会删除 tar 文件,但是它会把被解除归档的内容复制到当前的工作目录下,并保留归档文件所使用的任何目录结构。譬如,如果这个 tar 文件中包含一个叫做 bar.txt 的文件,而这个文件包含在 foo/ 目录中,那么,抽取归档文件将会导致在你当前的工作目录中创建 foo/ 目录,该目录中包含 bar.txt 文件。
请记住,tar 默认不压缩文件。要创建一个使用 tar 和 bzip 来归档压缩的文件,使用 -j 选项:
tar -cjvf filename.tbz file
按照约定俗成,用 bzip2 压缩的 tar 文件具有 .tbz 扩展名。不过,有时用户使用 tar.bz2 扩展名来归档他们的文件。
以上命令创建了一个归档文件,然后将其压缩为 filename.tbz 文件。如果你使用 bunzip2 命令为 filename.tbz 文件解压,filename.tbz 文件会被删除,继之以 filename.tar 文件。
你还可以用一个命令来扩展并解除归档 bzip tar 文件:
tar -xjvf filename.tbz
要创建一个用 tar 和 gzip 归档并压缩的文件,使用 -z 选项:
tar -czvf filename.tgz file
按照约定俗成,使用 gzip 来压缩的 tar 文件具有 .tgz 扩展名。
这个命令创建归档文件 filename.tar,然后把它压缩为 filename.tgz 文件(文件 filename.tar 不被保留)。如果你使用 gunzip 命令来给 filename.tgz 文件解压,filename.tgz 文件会被删除,并被替换为 filename.tar。
你可以用单个命令来扩展 gzip tar 文件:
tar -xzvf filename.tgz
#linux find 时间段2011-08-01 00:00至2011-10-31-23-59的文件
# touch -t 201108010000 start
# touch -t 201110312359 end
# find . -newer start ! -newer end
shell打印随机数
for i in {1..300};
do
a=$RANDOM
b=10000000
printf "%.20f\n" `echo "$a/$b"|bc -l`
done;
#以下是在机器Client的root和机器Server的root之间建立安全信任关系
#1.在机器Client上root用户执行ssh-keygen命令,生成建立安全信任关系的证书。
[root@Client root]# ssh-keygen -b 1024 -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase): <-- 直接输入回车
Enter same passphrase again: <-- 直接输入回车
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
49:9c:8a:8f:bc:19:5e:8c:c0:10:d3:15:60:a3:32:1croot@Client
#注意:在程序提示输入passphrase时直接输入回车,表示无证书密码。上述命令将生成私钥证书id_rsa和公钥证书id_rsa.pub,存放在用户home目录的.ssh子目录中。
#2.将公钥证书id_rsa.pub复制到机器Server的root家目录的.ssh子目录中,同时将文件名更换为authorized_keys。
#注意:把两机器的id_rsa.pub中的数据都拷贝到A的/root/.ssh/authorized_keys文件中,一行表示一条;
#3.结果
[root@Client root]# scp -p text root@192.168.3.206:/root/
text 100% |**************************| 19 00:00
sort 和 uniq
shell多线程
sh 1.sh &
sh 2.sh &
wait
do xxx
shell四则运算
1:使用 expr 外部程式
#注意:符号(+、-、*、/)与数字之间要有空格
2:使用 $(( )),例如r=$(( 4 + 5 ))
#注意:=号前后要没有空格
3:使用 $[ ],例如r=$[ 4 + 5]
#注意:=号前后要没有空格
4:使用let命令,例如r=$[x + y]
#注意:符号(+、-、*、/)与数字之间要没有空格,=号前后要没有空格
加法
r=`expr 4 + 5`
r=$(( 4 + 5 ))
r=$[ 4 + 5 ]
let r=4+5
减法
r=`expr 40 - 5`
r=$(( 40 - 5 ))
r=$[ 40 - 5 ]
let r=40-5
乘法
r=`expr 4 \* 5`
r=$(( 4 * 5 ))
r=$[ 4 * 5 ]
let r=4*5
除法
r=`expr 40 / 5`
r=$(( 40 / 5 ))
r=$[ 40 / 5 ]
let r=40/5
求余数
r=$[ 100 % 43 ]
let r=100%43
乘幂
如2的3次方
r=$(( 2 ** 3 ))
r=$[ 2 ** 3 ]
let r=2**3
bc -l 20小数精度
a=0.2; b=0.2; printf "%.2f\n" `echo "$a+$b" | bc`
cat | openssl base64 -d |gunzip
cat | openssl base64 -d | iconv -f gbk -t utf-8
openssl base64 -in xxx
tmpwatch 1 /tmp/