linux命令备忘

linux命令备忘

分类: linux-命令 1234人阅读 评论(0) 收藏 举报

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


开/关防火墙

iptables 

1)      重启后生效: 
开启: 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 [email protected]:.

把文件拷贝回来用这个命令:

scp [email protected]:dumb .

"scp"调用SSH进行登录,然后拷贝文件,最后调用SSH关闭这个连接。

如果在你的"~/.ssh/config"文件中已经为www.35.com做了这样的配置:

Host *fbc
HostName www.35.com
User jichl
ForwardAgent yes

那么你就可以用"fbc"来代替"[email protected]",命令就简化为"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/p_w_picpaths.tar /home/www/p_w_picpaths 仅打包,不压缩
tar -zcvf /home/www/p_w_picpaths.tar.gz /home/www/p_w_picpaths 打包后,以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 [email protected]:/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/


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章