用了一段linux,總結一下平時經常用到的命令
壓縮解壓命令tar
格式: tar [選項] [文件或目錄,多個時用空格隔開]
獨立選項
追加和更新命令只適用于未壓縮過的tar打包文件,否則會提示‘tar: Cannot append to compressed archive.’
可選選項
- z:gzip壓縮
- j:bz2壓縮
- v:顯示信息
- p:保留文件屬性
- f:文件名(必須,且要放到最后)
- N:比后面接的日期(yyyy/mm/dd)還要新的才會被打包進新建的文件中
- exclude :打包時排除某些文件或文件夾
示例:
BASH
1
2
3
4
5
6
7
8
| #將文件夾file壓縮到file.tar
tar -cvf file.tar file/
#解壓file.tar包到當前目錄
tar –xvf file.tar ./
#在 /home 當中,比 2005/06/01 新的文件才備份
tar -N '2005/06/01' -zcvf home.tar.gz /home
#備份 /home, /etc ,但不要 /home/dmtsai
tar -exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc |
拷貝文件cp、scp
cp — 主要是用于在同一臺電腦上,在不同的目錄之間來回copy文件
scp — 主要是在不同的Linux系統(tǒng)之間來回copy文件
格式:cp [OPTIONS] 源 目錄— 多個源文件用空格分隔
OPTIONS:
-a same as -dpR 盡可能將源文件狀態(tài)、權限等資料都照原裝予以復制,并且是遞歸copy;
-r 表示遞歸copy,若source中含有目錄名,則將目錄下之檔案亦皆依序拷貝至目的地;
-f 表示force,若目的地已經有相同檔名的檔案存在,則在復制前先予以刪除再行復制;
示例:
BASH
1
2
3
4
| #將文件夾img和images的文件和文件夾都拷貝到/tmp/images/
cp -arf img/* images/* /tmp/images/
#將本地home目錄拷貝至遠程主機
scp -r /home/ root@192.168.1.2:/home/root |
數據同步rsync
發(fā)版用,一次同步多臺主機,比scp強大很多
格式:rsync [option] 源路徑 目標路徑
常用option參數
- a, –archive 歸檔模式,表示以遞歸方式傳輸文件,并保持所有文件屬性
- b, –backup 創(chuàng)建備份,也就是對于目的已經存在有同樣的文件名時,將老的文件重新命名為~filename??梢允褂猫Csuffix選項來指定不同的備份文件前綴。
- –backup-dir 將備份文件(如~filename)存放在在目錄下。
- -suffix=SUFFIX 定義備份文件前綴
- –delete 刪除那些DST中SRC沒有的文件
- –bwlimit=KBPS 限制I/O帶寬
示例
BASH
1
2
3
4
| #將本機/tmp/a文件夾 同步至/tmp/b
rsync -avzP --delete /tmp/a /tmp/b
#將遠程主機x中/tmp/a下的文件下載至本機 /tmp/b
rsync -avz -e ssh root@192.168.0.1:/tmp/a /tmp/b |
改變文件屬性chmod
格式chmod [-cfvR] mode file
- -c : 若該檔案權限確實已經更改,才顯示其更改動作
- -f : 若該檔案權限無法被更改也不要顯示錯誤訊息
- -R : 對目前目錄下的所有檔案與子目錄進行相同的權限變更(即以遞回的方式逐個變更)
重點說下mode
+ 表示增加權限、- 表示取消權限、= 表示唯一設定權限。
r 表示可讀取,w 表示可寫入,x 表示可執(zhí)行,X 表示只有當該檔案是個子目錄或者該檔案已經被設定過為可執(zhí)行。
另外權限可以用數字表示:r=4,w=2,x=1(將rwx看成二進制數,如果有則有1表示,沒有則有0表示)。組合后共三位,第一位表示uesr的權限,第二位表示user所在group的權限,第三位表示其他用戶other
若要rwx屬性則4+2+1=7;
若要rw-屬性則4+2=6;
若要r-x屬性則4+1=5;
若要r–屬性則4;
若要-wx屬性則2+1=3;
若要-w-屬性則2;
若要–x屬性則1;
取消所有屬性則0。
示例
BASH
1
2
3
4
| #給所有用戶讀寫執(zhí)行的權限。
chmod -R 777 dir/
#給用戶rwx權限,給用戶組rx權限,其他用戶不給權限
chmod -R 750 dir/ |
這里要再提到一個命令chown,root用戶可以使用此指令改變文件所屬的用戶和用戶組:chown user:group file
例如要把文件的屬主改為運行apache的用戶和組,好讓web用戶可以訪問到文件可以執(zhí)行 chown _www:_www file。這里的_www可以在http.conf配置。
采集神器wget、curl
先說wget,格式:wget [options] [URL]
常用參數
- -o:記錄log信息,用法-ofilename
- -a:追加log信息
- -O:將文件保存到文件 -Ofilename
- -c:斷點續(xù)傳
- –referer,referer值,采集必用
- –load-cookies=FILE 在開始會話前從文件 FILE中加載cookie
- –save-cookies=FILE 在會話結束后將 cookies保存到 FILE文件中
- -nc, –no-clobber 不要覆蓋已經存在的文件
- -T,–timeout=SECONDS 設置超時時間
- -x,強制建立目錄(保持目標網站的目錄結構)
- -r,遞歸下載整個網站
全部參數見手冊http://www./software/wget/manual/wget.html
curl沒有遞歸下載,但是支持的協(xié)議要比wget多很多,用法也更靈活
格式:curl [option] url
常用參數
- -c:斷點續(xù)傳
- -o:文件名,要自己寫
- -O:文件名,自動(和服務器上的名字一樣)
- -D:保存cookie,curl -D cookie.txt URL
- -b:使用cookie,curl -b cookie.txt URL
- -A:發(fā)送瀏覽器信息,偽裝成瀏覽器。curl -A “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1626.0″ URL,這樣對方服務器會認為我們是一個在macos上跑的chrom瀏覽器。
- -e:填寫referer值。
- -d:post模式,以application/x-www-url-encoded發(fā)送請求。d后面填寫要提交的參數即可 curl -d”a=xx&b=xx&c=xx”。
- -F模擬 multipart/form-data 形式的 form 上傳文件。curl -F “action=upload” -F”filename=@file.gz;type=application/octet-stream” URL
|