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 [email protected] -X
[email protected]'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登录成功或者失败的记录