tar 打包
     -c 打包
    -x 解包
    -v 显示过程
    -f 指定文件(通常要与c x连用)
    -j 调用bzip2压缩解压
    -z 调用gzip压缩解压
    -C 指定解压路径
eg : tar -cvf acc   将acl打包
     tar -jcvf uu.vmdk.tar.bz2 uu.vmdk  将uu.vmdk打包压缩

我们在日常中,可能会碰到有些人恶意的把本身是.bz2的改成gz的模式,造成
我们解压的时候出现错误,这个时候,我们有个万能的工具,就是在解压的过程
中,不加j或者z参数来进行解压,因为它会自动的进行匹配
tar -xvf uu.vmdk.tar.gz  即可

当然,也可以通过file来判断文件的类型
[root@localhost tmp]# touch a
[root@localhost tmp]# ls
a
[root@localhost tmp]# tar jcvf a.tar.bz2 a
a
[root@localhost tmp]# ll
total 4
-rw-r--r-- 1 root root   0 May 25 19:20 a
-rw-r--r-- 1 root root 106 May 25 19:20 a.tar.bz2
[root@localhost tmp]# file a.tar.bz2
a.tar.bz2: bzip2 compressed data, block size = 900k
[root@localhost tmp]#


我们也可以查看压缩包内的内容,加上-tf即可
[root@localhost tmp]# tar -tf a.tar.bz2
a


wc 统计命令
 命令的分类
    外部命令: 保存在磁盘杀姑娘的程序,可以通过which来查询
    内部命令: 常驻内存,shell知道的,能执行,但不能用which来查看
wc -l 统计行
   -w 仅列出多少字(英文单词)
   -c 字符
   -m 多少字符
[root@localhost tmp]# cat /etc/passwd|wc
     44行      69字数     1965字符数
[root@localhost tmp]# cat /etc/passwd|wc -l
44
[root@localhost tmp]# cat /etc/passwd|wc -m
1965
[root@localhost tmp]# cat /etc/passwd|wc -w
69


sort -n 按数字排序
     -r 反向
sort -t:   -k3   -n    file_name
     分隔符 第几段  纯数字
比如对

[root@localhost tmp]# tail -n 10 /etc/passwd >passwd
[root@localhost tmp]# ls
passwd
[root@localhost tmp]# cat passwd
squid:x:23:23::/var/spool/squid:/sbin/nologin
xfs:x:43:43:X Font Server:/etc/X11/fs:/sbin/nologin
gdm:x:42:42::/var/gdm:/sbin/nologin
sabayon:x:86:86:Sabayon user:/home/sabayon:/sbin/nologin
jackicy:x:500:500::/home/jackicy:/bin/bash
a:x:501:501::/home/a:/bin/bash
b:x:502:502::/home/b:/bin/bash
c:x:503:503::/home/c:/bin/bash
d:x:504:504::/home/d:/bin/bash

这个时候对数字进行排序
[root@localhost tmp]# sort -t: -k3 -n passwd

squid:x:23:23::/var/spool/squid:/sbin/nologin
gdm:x:42:42::/var/gdm:/sbin/nologin
xfs:x:43:43:X Font Server:/etc/X11/fs:/sbin/nologin
sabayon:x:86:86:Sabayon user:/home/sabayon:/sbin/nologin
jackicy:x:500:500::/home/jackicy:/bin/bash
a:x:501:501::/home/a:/bin/bash
b:x:502:502::/home/b:/bin/bash
c:x:503:503::/home/c:/bin/bash
d:x:504:504::/home/d:/bin/bash

排序是如此了,那么,我如果想截取其中的字段呢,也可以,不过就要使用cut来进行
cut  -d 指定字段分隔符
     -b 取字节
     -c 取字符
     -f 取字段
我要截取上述文件的第一字段和第三字段并且排序,该
[root@localhost tmp]# cut -d: -f1,3 passwd |sort -t: -k2 -n

squid:23
gdm:42
xfs:43
sabayon:86
jackicy:500
a:501
b:502
c:503
d:504


grep文本搜索,
grep [选项] 特征字 文件名
      -i:  不区分大小写
      -r:查看子目录
      -w: 全字符匹配

whereis 与 which类似,但与目录相关的文档也能显示
locate 在系统的数据库中搜索文件,如果知道文件,但不知道文件的存放位置,就可以用此方法
eg:locate qq 查找速度极快,因为是从系统数据库中查找(/var/lib/mlocate/mlocate.db),但是,有一个缺点,也就是新增的文件,有时候来不及更新的时候,就会提示找不到,这个时候,需要我们手动更新数据库,可以用updatedb来进行

find 文件搜索
格式  find  搜索路径[选项]
         -name 按名字查找
     -type 按类型查找
     -uid  按用户ID查找
     -gid  按组ID查找
     -user 按用户查找
     -group 按组查找
     -perm  按权限查找
     find / -perm 777
     find / -perm 4777  注意s位,危险
     -size  按文件大小查找  +n  大于n
                 -n  小于n
     
          -exec 对匹配的文件执行操作
      -exec command {} \;
         {} 表示找到的文件
        \  禁止转义
        ;命令结束
[root@localhost homework]# find . -type f -exec ls {} \;
./ULE/Lesson7/ule0524
./ULE/Lesson5/ule0520
./ULE/Lesson5/ule0520_homework
./ULE/Lesson5/ule0520_homework~
./ULE/Lesson5/ule0520~
./ULE/Lesson6/ule0523
./ULE/Lesson4/ule0519笔记
./ULE/Lesson4/ule0519
./ULE/Lesson4/ule0519笔记~
./ULE/pdf/系统监视 GRUB初级知识.pdf
./ULE/pdf/文件挂载 磁盘配额和yum源的制作.pdf
./ULE/pdf/系统  开机流程 访问控制ACL 服务启动设置.pdf
[root@localhost homework]#


使用exec有个很大的毛病就是不会提示你任何东西,这样,就会造成一定的危险,那么,我们可以
用-ok也就是-exec的加强版来进行使用即可
[root@localhost tmp]# top >top.log
[root@localhost tmp]# ls
top.log
[root@localhost tmp]# find . -name *.log -exec rm {} \;
[root@localhost tmp]# ls
[root@localhost tmp]# top >top.log
[root@localhost tmp]# find . -name *.log -ok rm {} \;
< rm ... ./top.log > ? y
[root@localhost tmp]#
曾经的一道试题,要求更改某个目录下所有的文件的后缀
[root@localhost tmp]# touch {a,b,c,d}{1,2,3}.doc
[root@localhost tmp]# ls
a1.doc  a3.doc  b2.doc  c1.doc  c3.doc  d2.doc
a2.doc  b1.doc  b3.doc  c2.doc  d1.doc  d3.doc
[root@localhost tmp]# cd ..
[root@localhost /]# find /tmp/* -exec mv {} {}.old \;
[root@localhost /]# cd /tmp/
[root@localhost tmp]# ls
a1.doc.old  a3.doc.old  b2.doc.old  c1.doc.old  c3.doc.old  d2.doc.old
a2.doc.old  b1.doc.old  b3.doc.old  c2.doc.old  d1.doc.old  d3.doc.old
[root@localhost tmp]#

当然,也可以用其他方法,比如xargs 来进行
 xargs -t 显示过程
       -I 显示表示符

[root@localhost tmp]# touch {a,b,c,d}{1,2,3,4}.doc
[root@localhost tmp]# ls
a1.doc  a3.doc  b1.doc  b3.doc  c1.doc  c3.doc  d1.doc  d3.doc
a2.doc  a4.doc  b2.doc  b4.doc  c2.doc  c4.doc  d2.doc  d4.doc
[root@localhost tmp]# ls |xargs -t -I {} mv {} {}.bak
mv a1.doc a1.doc.bak
mv a2.doc a2.doc.bak
mv a3.doc a3.doc.bak
mv a4.doc a4.doc.bak
mv b1.doc b1.doc.bak
mv b2.doc b2.doc.bak
mv b3.doc b3.doc.bak
mv b4.doc b4.doc.bak
mv c1.doc c1.doc.bak
mv c2.doc c2.doc.bak
mv c3.doc c3.doc.bak
mv c4.doc c4.doc.bak
mv d1.doc d1.doc.bak
mv d2.doc d2.doc.bak
mv d3.doc d3.doc.bak
mv d4.doc d4.doc.bak
[root@localhost tmp]# ls
a1.doc.bak  a4.doc.bak  b3.doc.bak  c2.doc.bak  d1.doc.bak  d4.doc.bak
a2.doc.bak  b1.doc.bak  b4.doc.bak  c3.doc.bak  d2.doc.bak
a3.doc.bak  b2.doc.bak  c1.doc.bak  c4.doc.bak  d3.doc.bak
[root@localhost tmp]#



xwindow的介绍
1984年麻省理工开始
到目前位置,X11R6分成两个版本   XFree86 和xorg{比前者高}
查看本机的版本号可以
[root@localhost tmp]# X -version

X Window System Version 7.1.1
Release Date: 12 May 2006
X Protocol Version 11, Revision 0, Release 7.1.1
Build Operating System: Linux 2.6.18-194.8.1.el5 i686 Red Hat, Inc.
Current Operating System: Linux localhost.localdomain 2.6.18-238.el5 #1 SMP Sun Dec 19 14:24:47 EST 2010 i686
Build Date: 01 September 2010
Build ID: xorg-x11-server 1.1.1-48.76.el5_5.2
        Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.
Module Loader present

x系统的组成
     xserver 带有显示器等输出设备的机器
     client  客户端,使用系统视窗系统的程序
     通信通道
 
配置文件
    XFree86->/etc/X11/XF86.conf
    xorg   ->/etc/X11/xorg.conf
图形配置
    system-config-display
    system-config-keyboard(引申)

启动到多个xwindow的方法
在文本模式下使用 startx -- :1(数字:0,1,2,3,4。。)

桌面环境的切换,kde和gnome的切换,需要
1 配置yum源,方便安装kde
2 安装kde
3 安装switchdesk*包
4 输入 switchdesk kde 切换到kde  
5 输入 switchdesk gnome 切换回gnome

远程桌面的调用
ssh ip -X
[root@localhost ~]# ssh root@172.16.9.129 -X
root@172.16.9.129's password:
Last login: Tue May 24 15:40:03 2011 from 172.16.9.1
[root@centos ~]# w
 15:40:18 up 18 min,  2 users,  load average: 0.00, 0.00, 0.03
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1     -                15:23   16:57   0.12s  0.12s -bash
root     pts/0    172.16.9.1       15:40    0.00s  0.08s  0.03s w
[root@centos ~]# nautilus 远程调用本地显示
Initializing nautilus-open-terminal extension

另一种方式
x服务器    xhost + 10.1.1.183  允许183的图形在本机显示
客户机     export DISPLAY=10.1.1.20:0.0 将图形输出至20的显示器中,属永久性的配置

[root@localhost ~]# xhost + 172.16.9.129    客户机(相当于服务器)
172.16.9.129 being added to access control list

[root@centos ~]# export DISPLAY=192.168.1.105:0.0   服务器(相当于客户机)

在客户机[root@localhost ~]# lsof -i:6000,发现,无结果,因为我们gdmsetup中,需要把
security中Deny TCP connections  to xserver 的勾去掉
然后gdm-restart后
[root@localhost ~]# lsof -i:6000
COMMAND   PID USER   FD   TYPE DEVICE SIZE NODE NAME
Xorg    21883 root    1u  IPv4  85206       TCP *:x11 (LISTEN)
[root@localhost ~]#


VNC的应用
是一款优秀的远程控制工具
[root@localhost ~]# rpm -qa |grep vnc
vnc-server-4.1.2-14.el5_5.4
gtk-vnc-0.3.8-3.el5
gtk-vnc-python-0.3.8-3.el5
[root@localhost ~]#

这里,我们需要安装vnc客户端,用yum install vnc*进行安装{前面配置过yum源}
设置过程

设置vnc密码,对应给每个登录的linux用户使用
vncpasswd
[root@localhost Server]# vncpasswd
Password:
Verify:

启动vnc
[root@localhost Server]# vncserver :1

New 'localhost.localdomain:1 (root)' desktop is localhost.localdomain:1

Creating default startup script /root/.vnc/xstartup
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/localhost.localdomain:1.log

用虚拟机登录上我的这台服务器,看看效果如何
[root@localhost ~]# vncviewer 172.16.9.129:2

VNC Viewer Free Edition 4.1.2 for X - built Jun 24 2010 12:28:43
Copyright (C) 2002-2005 RealVNC Ltd.
See http://www.realvnc.com for information on VNC.

Thu May 26 01:07:52 2011
 CConn:       connected to host 172.16.9.129 port 5902
 CConnection: Server supports RFB protocol version 3.8
 CConnection: Using RFB protocol version 3.8

Thu May 26 01:07:55 2011
 TXImage:     Using default colormap and visual, TrueColor, depth 24.
 CConn:       Using pixel format depth 6 (8bpp) rgb222
 CConn:       Using ZRLE encoding


这个时候让你输入相应的密码即可,但是,弹出来的界面是文本模式,我们需要更改
~/.vnc/xstartup中,将unsee 和exec前的#去掉,然后杀掉,重启
[root@localhost ~]# vim ~/.vnc/xstartup
[root@localhost ~]# vncserver -kill :2
Killing Xvnc process ID 22552
[root@localhost ~]# vncserver :2

New 'localhost.localdomain:1 (root)' desktop is localhost.localdomain:1

Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/localhost.localdomain:1.log

[root@localhost ~]#

这个时候,在登录上去,就是图形界面了
那么有些时候,我们为了防止被人恶意使用,仅仅允许对方能看到我的屏幕,而不允许操作,应该如何使用呢
我们需要先在客户机上安装一个vino的包,默认安装好的
这个时候,输入[root@localhost ~]# vino-preferences弹出对话框,里面很简单的英文提示,自行设置

查看可以启动多少个窗口
[root@localhost ~]# netstat -tunlp |grep vnc
tcp        0      0 0.0.0.0:5801                0.0.0.0:*                   LISTEN      22735/Xvnc         
tcp        0      0 0.0.0.0:5901                0.0.0.0:*                   LISTEN      22735/Xvnc         
tcp        0      0 0.0.0.0:6001                0.0.0.0:*                   LISTEN      22735/Xvnc         
[root@localhost ~]#




[root@localhost ~]# /etc/rc.d/init.d/vncserver status
Xvnc (pid 22735) is running...


vn[root@localhost ~]# netstat -tunlp |grep vnc
tcp        0      0 0.0.0.0:5801                0.0.0.0:*                   LISTEN      22735/Xvnc         
tcp        0      0 0.0.0.0:5901                0.0.0.0:*                   LISTEN      22735/Xvnc         
tcp        0      0 0.0.0.0:6001                0.0.0.0:*                   LISTEN      22735/Xvnc         
[root@localhost ~]#




VNC日志
~/.vnc/hostname.1.log(hostname:主机名)
[root@localhost ~]# vim ~/.vnc/localhost.localdomain\:1.log
可以查看有什么IP登录成功或者失败的记录