--
linux 的打包,壓縮,解壓
壓縮使檔案更小,有利於網路傳輸,在傳輸大量小檔案時,最好是打包壓縮,速度較快
windows 下 winrar .rar
winzip .zip
linux下的壓縮命令:
.Zcompress--淘汰了,現在極少見到
.gzgzip壓縮的
.bz2bzip2壓縮的
.tartar打包
.tar.gztar,gzip
.tar.bz2tar,bzip2
--compress老的壓縮公用程式
[root@li ~]# yum list|grep compress
This system is not registered with RHN.
RHN support will be disabled.
ncompress.i386 4.2.4-47 Server
[root@li ~]# yum install ncompress--裝這個包使用compress命令
compress grub.conf --直接壓縮檔,源檔案沒了
compress -d grub.conf.Z--解壓
compress -c grub.conf > grub.conf.Z--這樣壓縮並保留源檔案
--gzip使用廣泛,用來替代compress,它能解壓.Z .gz .zip 等格式的壓縮包
gzip grub.conf--壓縮
zcat grub.conf.gz --查看壓縮包的內容
gzip -d grub.conf.gz--解壓
gzip -c grub.conf > grub.conf.gz--壓縮並保留源檔案
gzip -d grub.conf.Z
unzip Discuz_6.1.0_SC_GBK.zip -d /root/Desktop/--.zip結尾的包用unzip來解壓,-d參數指定解壓的位置
--bzip2它用來替代gzip,擁有更好的壓縮比率
bzip2 grub.conf--壓縮
bzcat grub.conf.bz2 --查看壓縮包的內容
bzip2 -d grub.conf.bz2 --解壓
bzip2 -c grub.conf > grub.conf.bz2--壓縮並保留源檔案
[root@li test]# ll
-rw------- 1 root root 810 Apr 24 09:53 grub.conf
-rw-r--r-- 1 root root 560 Apr 24 10:04 grub.conf.bz2
-rw-r--r-- 1 root root 493 Apr 24 09:59 grub.conf.gz
-rw-r--r-- 1 root root 614 Apr 24 09:55 grub.conf.Z
--rar
/share/soft/soft/rarlinux-3.7.1.tar.zip--這個包是經過三層處理的,先tar,再gz,再zip過,所以解壓也要先unzip,再tar xvf
unzip /share/soft/soft/rarlinux-3.7.1.tar.zip -d /usr/src/
cd /usr/src/
tar xvf rarlinux-3.7.1.tar.gz
cd /usr/src/rar
make--此包直接make就可以了,有makefile檔案,表示是已經./configure好的
有rar命令就表示安裝完畢
此命令是沒有man page,因為沒有安裝man的協助檔案,可以用rar -h 或者rar --help來看
rar a etc.tar.rar etc.tar--壓縮
rar e etc.tar.rar --解壓
--tar
-c 打包
-v顯示過程
-f 接檔案
-j調用bzip2進行壓縮或者解壓
-z調用gzip進行壓縮或者解壓
-C解壓時指定解壓的路徑
-t查看包內容
-x解壓
tar cvf etc.tar etc/--打包,注意源和目地的位置
tar xvf etc.tar --解壓,預設解到當前路徑下
tar xvf etc.tar -C /usr/src/--用-C參數指定解壓的路徑,注意是大寫字母C
tar cjvf etc.tar.bz2 etc/--打包,並用bzip2壓縮
tar xjvf etc.tar.bz2--對應的解壓
tar czvf etc.tar.gz etc/--打包,並用gzip壓縮
tar xzvf etc.tar.gz--對應的解壓
W能解壓參數
tar xvf etc.tar.gz --自動會調用壓縮公用程式解壓
[root@li test]# ll
total 116320
drwxr-xr-x 106 root root 12288 Apr 24 09:52 etc
-rw-r--r-- 1 root root 100280320 Apr 24 10:11 etc.tar
-rw-r--r-- 1 root root 7427569 Apr 24 10:17 etc.tar.bz2
-rw-r--r-- 1 root root 11238367 Apr 24 10:18 etc.tar.gz
-rw------- 1 root root 810 Apr 24 09:53 grub.conf
-rw-r--r-- 1 root root 560 Apr 24 10:04 grub.conf.bz2
-rw-r--r-- 1 root root 493 Apr 24 09:59 grub.conf.gz
-rw-r--r-- 1 root root 614 Apr 24 09:55 grub.conf.Z
注意:
--這裡可以看出來bzip2比gzip有更好的壓縮比率,但在壓縮一個小檔案時,反而沒有gzip壓得小
--壓縮目錄是把目錄裡的每個檔案都壓縮,所有一般沒有這種做法,正確的做法是把目錄用tar打包,再用gzip或者bzip2壓縮
tar的特殊應用:
tar tvf etc.tar |grep fstab--查看壓縮包的內容 用-t參數
tar xvf etc.tar etc/fstab--指定解壓單一檔案
tar cvf etc.3.tar etc/ --exclude=etc/fstab 排除某些檔案不打包
tar cvf etc.5.tar etc/ --exclude=etc/fstab --exclude=etc/inittab排除多個檔案
tar cvf etc.6.tar etc/ --exclude=etc/*.conf支援萬用字元,排除有相似性的一批檔案
tar cvf - etc/ |tar xvf - -C /root/Desktop/--使用管道來執行一些特殊操作
--######################################################################################
job管理
linux下有前台和背景概念,每個bash終端都可以運行自己的job,注意不能跨bash終端管理
&--後台運行符號,啟動並執行程式不會佔用你的終端
[root@li test]# firefox &
[1] 6003--1代表job號,6003代表的就是pid(process identification)
[root@li test]# vim /etc/passwd--在這裡按下ctrl+z鍵,作用是把job暫停到後台
[2]+ Stopped vim /etc/passwd
[root@li test]# vim /etc/shadow--再按ctrl+z放到後台,與ctrl+c(中斷)不同
[3]+ Stopped vim /etc/shadow
[root@li test]# jobs--列出後台job列表,別的終端看不到的
[1] Running firefox &
[2]- Stopped vim /etc/passwd
[3]+ Stopped vim /etc/shadow
jobs -l--還要列出pid號
jobs -s--只列出暫停jobs
jobs -r--只列出啟動並執行jobs
[root@li test]# fg %1--把一號job的firefox 調到前台
firefox
[root@li test]# jobs -l
[1]+ 6003 Stopped firefox
[2] 6036 Stopped vim /etc/passwd
[3]- 6074 Stopped vim /etc/shadow
[root@li test]# bg %1--把-號job的firefox由stop狀態放到後台執行,就是變為running狀態
[1]+ firefox &
[root@li test]# jobs -l
[1] 6003 Running firefox &
[2]- 6036 Stopped vim /etc/passwd
[3]+ 6074 Stopped vim /etc/shadow
[root@li ~]# tar cvf root.tar / &--注意不要在這裡加v參數,它是standard out,就算是加了後台符號,也會一直佔用前台終端輸出打包的資訊
[root@li ~]# tar cf root.tar / &--可以不加v參數來放到後台執行
[root@li ~]# tar cvf root.tar / > /root/tarroot.log 2>&1 &--可以達到放到後台運行,並把打包的日誌給儲存下來
watch -n3 tail /root/tarroot.log --邊後台打包,可以這樣去查看日誌的寫入狀態
[root@li /]# kill -9 %1--殺掉一號job,或者用pid殺也可以
---------------------------
退出繼續掛起
在啟動並執行指令碼或者命令前加nohup ,退出使用者後繼續掛起
--#####################################################################################
檔案尋找
whichwhereis locate find
--which
[root@li ~]# which ifconfig--尋找二進位可執行檔,通過環境變數來尋找
/sbin/ifconfig
[a@li ~]$ which ifconifg--普通使用者環境變數沒有/sbin/這個路徑,所以which找不到
/usr/bin/which: no ifconifg in (/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/a/bin)
--whereis
[root@li ~]# whereis ifconfig
ifconfig: /sbin/ifconfig /usr/share/man/man8/ifconfig.8.gz
[a@li ~]$ whereis ifconfig
ifconfig: /sbin/ifconfig /usr/share/man/man8/ifconfig.8.gz
--locate
速度快,通過系統帶的一個資料庫去尋找
[root@li ~]# ls /var/lib/mlocate/
mlocate.db
[root@li ~]# touch abcd777--建立一個檔案
[root@li ~]# locate abcd777--locate尋找不出來
[root@li ~]# updatedb--手動更新locate資料庫,時間比較長,但是系統的時間任務服務會在晚上4點幫你去更新
[root@li ~]# locate abcd777--更新locate資料庫後,再尋找就有了
/root/abcd777
--find
速度慢,因為要掃你的磁碟,功能強大
find 路徑 [選項]
-name --通過名字找
-type --通過檔案類型找
-uid --通過uid尋找
-gid --通過gid尋找
-user --通過username尋找
-group --通過groupname尋找
-perm --通過許可權尋找
+n--n包含的許可權也尋找出來
-n--包含n的許可權也尋找出來
-size --通過大小尋找
+n--查出大於n的檔案
-n--查出小於n的檔案
1,按名稱尋找
find /etc/ -name grub.conf--尋找/etc目錄下的grub.conf檔案
find /etc/ -name "*.conf"--使用萬用字元,尋找/etc/目錄下的以.conf結尾的檔案
find /test/ -iname Aaa--忽略大小寫加上-i
/test/aaa
/test/Aaa
/test/AAa
--定義尋找的目錄層次
[root@li a]# find /test/ -maxdepth 1 -name aaa
/test/aaa
[root@li a]# find /test/ -maxdepth 2 -name aaa
/test/aaa
/test/a/aaa
2,按類型尋找
find /etc -type l |grep grub.conf
find /etc -type l -name grub.conf--與-name參數一起寫
find / -type b
find / -type s
find / -type c
find / -type p
3,按使用者名稱,組名,uid,gid尋找
find / -user a
find / -group a
find / -uid 533
find / -gid 533
find / -nouser --查出系統的無標頭檔,就是指沒有屬主的檔案
find / -nogroup--查出系統的沒有屬組的檔案
沒有屬主和屬組的檔案,系統管理一般是要去注意的
4,按許可權尋找
find / -perm 777 --查出所有許可權為777的檔案,一般也是管理員要注意的
find . -perm +111
find . -perm -777
5,按大小尋找
find / -size +500M--單位有k,m,g等
find / -size +1G
find /etc -size +50k
find /etc -size +50b
find / -size -1M
6,按時間尋找
[root@li a]# stat 1
File: `1'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 808h/2056d Inode: 12177882 Links: 1
Access: (0777/-rwxrwxrwx) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2010-04-24 14:44:00.000000000 +0800--atime閱讀過,用cat,tail,head命令等或者vi訪問過,但沒有修改;執行過也會改變
Modify: 2010-04-24 14:44:00.000000000 +0800--mtime 修改過內容,用vi修改過或者echo一個值重新導向
Change: 2010-04-24 14:44:14.000000000 +0800--ctime 改變過內容,屬主,屬組,許可權,建立軟連結,永久連結等
-mtime n--代表n天前的24小時內
+n--代表n天前(不包含n天本身的24小時)
-n--代表n天內
1234567
|-- 2 --|
<------- -2 | | +2--------------->
find / -mtime 0--0代表目前當天的24小時
find / -mite +1--修改時間1天之前
find . -mtime -1--修改時間在一天之內
ctime atime 用法與mtime一樣
find . -newer 1--尋找比1檔案新的
-----------------------------
find後接-exec動作
-exec
find /etc/ -name "*.conf" -exec cp {} /test/a /;
find /etc/ -name grub -exec cat {} /;
---exec後面接動作, {}代表前面的結果集 /; 代表結束
--####################################################################################
Xwindows圖形案頭 -->X協議 --> tcp/ip
mit (麻省理工) X windows
X11
xfree86計劃
xorg組織接手,並發展成現在的x11 V7
gnome kde twm (最簡單的案頭)--都屬於xwindows client
xwindows 也是一種C/S架構 (server/client)
x server --驅動硬體,滑鼠,鍵盤,顯示器等
x client --接收server來的訊號,進行程式處理,回傳給server端進行像素的移動,繪圖等
[root@li a]# w
15:54:47 up 6:35, 4 users, load average: 0.04, 0.06, 0.06
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root :0 - 09:21 ?xdm? 10:59 0.12s /usr/bin/gnome-session
例子一:
開機自動啟動圖形
/etc/X11/xinit/xinitrc.d/--寫上開機啟動圖形後自動啟動的圖形程式
vim /etc/X11/xinit/xinitrc.d/firefox.sh
#!/bin/bash
/usr/bin/firefox &--開機後會自動運行firefox
例子二:
遠程調圖形
ssh 10.1.1.104 -X firefox
ssh 10.1.1.104 -Y
[root@li a]# su - a
[a@li ~]$ firefox--普通使用者不能運行圖形
Xlib: connection to ":0.0" refused by server
Xlib: No protocol specified
Error: cannot open display: :0.0
xhost +--讓所有普通使用者可以調用圖形
xhost + IP
x clinet:xhost + server_ip
x server:DISPLAY=client_ip:0 xeyes &
--跟圖形有關的錯誤
開機時啟動圖形時間極慢, 一般是主機對應不好
檢查一下
[root@li a]# hostname
li.cluster.com
[root@li a]# vim /etc/hosts
[root@li a]# cat /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=li.cluster.com
或者再嘗試一下 rm /root/.gnome/ -rf
rm /root/.gnome2/ -rf
ls /tmp/ |grep root--把找到的全rm掉
全刪除掉後,再重起X windows,會按預設配置重建立立
圖形啟不來還要注意的是 /tmp目錄的許可權
stat /tmp
(1777/drwxrwxrwt)
system-config-display 圖形配置 案頭
---------------------------------------------------
VNC (虛擬網路計算)virtual network computing
AT&T實驗室最早開發的
屬於一種遠端控制軟體
主要分vncserver vncviewer
[root@li a]# yum list |grep vnc
This system is not registered with RHN.
RHN support will be disabled.
vnc.i386 4.1.2-14.el5_3.1 installed --用戶端
vnc-server.i386 4.1.2-14.el5_3.1 installed --服務端
[root@li a]# vncserver
New 'li.cluster.com:1 (root)' desktop is li.cluster.com:1
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/li.cluster.com:1.log
[root@li a]# vncpasswd --建立vnc密碼
Password:
Password must be at least 6 characters - try again
Password:
Verify:
/root/.vnc/--配置目錄
vim /root/.vnc/xstartup --要顯示gnome-session 就把下面兩句開啟,再把別的都給注釋掉
unset SESSION_MANAGER
exec /etc/X11/xinit/xinitrc
#[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
#[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
#xsetroot -solid grey
#vncconfig -iconic &
#xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#twm &
存取方法
vncviewer 10.1.1.35:1
vncviewer -Viewonly -Shared 10.1.1.35:3
[root@li a]# ls /root/.vnc/
li.cluster.com:1.log li.cluster.com:2.log li.cluster.com:3.log passwd
li.cluster.com:1.pid li.cluster.com:2.pid li.cluster.com:3.pid xstartup
[root@li a]# vncserver -kill :1
Killing Xvnc process ID 11889
[root@li a]# ls /root/.vnc/
li.cluster.com:1.log li.cluster.com:2.pid li.cluster.com:3.pid xstartup
li.cluster.com:2.log li.cluster.com:3.log passwd
[root@li a]# netstat -ntl |grep 58
tcp 0 0 0.0.0.0:5802 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:5803 0.0.0.0:* LISTEN
vnc的連接埠是5801開始和5901開始
5800+n 是給瀏覽器用的 5900+n 是給vncviewer用的
http://10.1.1.35:5802/--用瀏覽器訪問
但linux下的firefox瀏覽器是要裝一個java外掛程式