從業幾年,發現好多編程人員,嚴重依賴UI工具。對一些命令操作,十分的反感。尤其是從事Windows系統中的程序開發的人員。由於微軟對開發工具,編程套件的極限優化。開發出更多的
面向UI的開發工具。從VB6.0 到VC6.0的經典MFC編程。越來越多的Windows開發人員,包括后來的從業者,越發的不能理解那種古老的在命令行下進行代碼編程的方式和思維。
從.Net誕生后,微軟開發的新一代IDE工具,Visual Studio,越來越華麗,功能越來越強大。所有的操作都是面向UI。不需要進行命令的控制即可實現傻瓜式的編程,大大的簡化了開發人員的開發難度,
提高了工作的效率。但是,UI工具還是有一定的局限性。UI工具,必須進行特定的事件去觸發,比如點擊 Debug 按鈕或者 編譯打包按鈕等等。或者是設定開發環境參數等等。如果IDE不提供SDK接口,那么
只能手工觸發實現特定的操作。但是命令的方式就不一樣了。命令可以直接繞過IDE工具,進行控制特定的操作。比如:批量執行多個任務,編譯完畢后,需要進行打包等等。
好在VS提供了 基於事件的方式,為我們提供了命令的入口。我們可以把一些機械式的操作,通過特定的命令進行實現。
典型例子:1 MSbuild 命令
微軟IDE其實就是講這些工程,以XML的形式封裝在每個工程文件中。在運行 編譯 調試等操作的時候,將xml轉化為特定的msbuild命令。具體百度下吧,呵呵。
2 編譯后 運行第三方工具,進行打包
在以前,我們開發過的Silverlight項目。我們需要在生成 xap包后,(其實就是標准的zip包),用開源的 提供Windows下的命令工具的7zip工具,進行解包,並封入自己的一些dll或者資源文件等。
我們就直接通過命令,進行操作,而不是手工進行每次的打包。
...........
從業幾年以來,我再次接觸了Linux。為啥是再次呢?因為大學 的時候,老師第一堂課就是在黑乎乎的的命令下講解 打開根目錄,我感覺是裝B呵呵,就荒廢了。幾年后的今天,我越發的感覺。
Linux下的 Shell工具真心的強大!
Windows開發人員,你真的需要放棄固有的思維,體驗下Linux的操作!!!
從cd 命令, 從ls ,命令 ,從 rm 命令, 從mv 命令 ,從vi 命令熟悉這幾個基本的命令后,你會發現,真的不錯。(尤其是你敲了Tab鍵后,更加精細.........自動補全或者候補命令)
再然后呢 zip gzip tar pwd 命令。好了恭喜,你已經認識了Linux了。哈哈。我自己整理的一份Linux的手冊。希望對你們有幫助。
手冊:《Linux 命令手冊(特洛伊版2.0)》
鏈接: https://pan.baidu.com/s/1skrVSvV 密碼: tmf2
-----------------------------------------------割了-----------------------------------------------------------------
下面是轉載的關於7z工具在Windows下的命令行的整理,來自:http://www.cnblogs.com/qanholas/archive/2011/10/03/2198487.html
7z.exe在CMD窗口的使用說明如下:
7-Zip (A) 4.57 Copyright (c) 1999-2007 Igor Pavlov 2007-12-06
Usage: 7za <command> [<switches>...] <archive_name> [<file_names>...] [<@listfiles...>]
<Commands> a: Add files to archive b: Benchmark d: Delete files from archive e: Extract files from archive (without using directory names) l: List contents of archive t: Test integrity of archive u: Update files to archive x: eXtract files with full paths <Switches> -ai[r[-|0]]{@listfile|!wildcard}: Include archives -ax[r[-|0]]{@listfile|!wildcard}: eXclude archives -bd: Disable percentage indicator -i[r[-|0]]{@listfile|!wildcard}: Include filenames -m{Parameters}: set compression Method -o{Directory}: set Output directory -p{Password}: set Password -r[-|0]: Recurse subdirectories -scs{UTF-8 | WIN | DOS}: set charset for list files -sfx[{name}]: Create SFX archive -si[{name}]: read data from stdin -slt: show technical information for l (List) command -so: write data to stdout -ssc[-]: set sensitive case mode -ssw: compress shared files -t{Type}: Set type of archive -v{Size}[b|k|m|g]: Create volumes -u[-][p#][q#][r#][x#][y#][z#][!newArchiveName]: Update options -w[{path}]: assign Work directory. Empty path means a temporary directory -x[r[-|0]]]{@listfile|!wildcard}: eXclude filenames -y: assume Yes on all queries
中文使用說明如下:
語法
7z a -t7z archive.7z *.exe *.dll -m0=BCJ -m1=LZMA:d=21 -ms -mmt
添加 *.exe 及 *.dll 文件到固實壓縮檔案 archive.7z。使用 LZMA 壓縮算法、2 MB 字典大小及 BCJ 轉換器。壓縮將開啟多線程優化(如果可用)。
-t7z -- 壓縮文件的格式為7z -mx=9 -ms=200m -mf -mhc -mhcf -m0=LZMA:a=2:d=25:mf=bt4b:fb=64 -mmt -- 指定壓縮算法選項 -mx=9 -- 設置壓縮等級為極限壓縮(默認為:LZMA 最大算法、32 MB 字典大小、BT4b Match finder、單詞大小為 64、BCJ2 過濾器) -ms=200m -- 開啟固實模式,設置固實數據流大小為200MB。 -mf -- 開啟可執行文件壓縮過濾器。 -mhc -- 開啟檔案文件頭壓縮。 -mhcf -- 開啟檔案文件頭完全壓縮。我所使用的7z版本為4.42>2.30。 -m0=LZMA:a=2:d=25:mf=bt4b:fb=64 -- 第一個備選壓縮算法為LZMA,壓縮等級為最大壓縮,LZMA算法使用的字典大小為25(2MB的5次方)32MB,算法的匹配器為bt4b(所需要內存為d×9.5 + 34 MB),壓縮算法的緊湊字節為最大模式的64字節。 -mmt -- 開啟多線程模式。 -r -- 遞歸到所有的子目錄。
7z命令解壓文件的例子:解壓File.7z文件到目錄Mydir。
7z x "d:\File.7z" -y -aos -o"d:\Mydir"
參數說明:
x:完整路徑下解壓文件
-y:所有確認選項都默認為是(即不出現確認提示)
-aos:跳過已存在的文件
-o:設置輸出目錄
關於內存的使用:
一般來說,WindowsXP至少使用80~160MB的內存,為了保證系統的運行正常,還要留夠32MB的剩余物理內存。 所以如果是512MB的內存,那么7z壓縮所使用的內存為(512-32-160)320MB,使用bt4b(d*9.5+34MB),所以d=32MB。 如果是256MB的內存,那么7z壓縮所使用的內存為(256-32-120)104MB,使用bt4b(d*9.5+34MB),所以d=8MB。 由此可見,在WindowsXP的圖形界面下要想得到更大的壓縮比,或者擴大物理內存的容量,或者可以采用在DOS下運行32位程序的方法;否則無論你的虛擬內存或者系統的磁盤緩存設置得再大,只能看見硬盤燈狂閃得交換頁面文件。 通常情況下,較大的字典文件能提供較高的壓縮比。但是在壓縮和解壓縮的時候會比較慢而且需要較多的物理內存:壓縮時所使用的物理內存約為字典文件的10倍,解壓縮時所使用的物理內存約等於字典文件大小。
語法格式:(詳細情況見7-zip幫助文件,看得頭暈可以跳過,用到再學) 7z <command> [<switch>...] <base_archive_name> [<arguments>...]
7z.exe的每個命令都有不同的參數<switch>,請看幫助文件 <base_archive_name>為壓縮包名稱 <arguments>為文件名稱,支持通配符或文件列表 a: 添加文件的壓縮包,或者創建新的壓縮包。
d: 從壓縮包中刪除文件。
e: 從壓縮包中提取。
t: 測試壓縮包的是否出錯。
u: 更新壓縮包中的文件。 其中,7z是至命令行壓縮解壓程序7z.exe,<command>是7z.exe包含的命令,列舉如下:
a: Adds files to archive. 添加至壓縮包 a命令可用參數: -i (Include) -m (Method) -p (Set Password) -r (Recurse) -sfx (create SFX) -si (use StdIn) -so (use StdOut) -ssw (Compress shared files) -t (Type of archive) -u (Update) -v (Volumes) -w (Working Dir) -x (Exclude)
b: Benchmark
d: Deletes files from archive. 從壓縮包中刪除文件 d命令可用參數: -i (Include) -m (Method) -p (Set Password) -r (Recurse) -u (Update) -w (Working Dir) -x (Exclude)
e: Extract解壓文件至當前目錄或指定目錄 e命令可用參數: -ai (Include archives) -an (Disable parsing of archive_name) -ao (Overwrite mode) -ax (Exclude archives) -i (Include) -o (Set Output Directory) -p (Set Password) -r (Recurse) -so (use StdOut) -x (Exclude) -y (Assume Yes on all queries)
l: Lists contents of archive. t: Test u: Update
x: eXtract with full paths用文件的完整路徑解壓至當前目錄或指定目錄 x命令可用參數: -ai (Include archives) -an (Disable parsing of archive_name) -ao (Overwrite mode) -ax (Exclude archives) -i (Include) -o (Set Output Directory) -p (Set Password) -r (Recurse) -so (use StdOut) -x (Exclude) -y (Assume Yes on all queries) -m (Set compression Method) switch Specifies the compression method.
用7-ZIP實現批處理 命令行壓縮和解壓功能
編輯一個.bat文件;每行這樣寫,就可以連續壓制多個目錄了 7z a -mx9 -md64m -mfb=273 -slp -ssw -v1024m -mmt=2 -r {路徑及7z檔名} {路徑及要壓縮的文件名及路徑 可以空格填多個}
例子:建議以成對雙引號來包壓縮檔名和路徑名 7z a -mx9 -md64m -mfb=273 -slp -ssw -v1024m "game" "d:\game\*.*" 把d:\game\ 以ultra模式 64m字典fb273 每分卷1024m模式壓縮
-mxN N=0~9 ;壓縮模式選擇 Level Method Dictionary FastBytes MatchFinder Filter Description 0 Copy No compression. 1 LZMA 64 KB 32 HC4 BCJ Fastest compressing 3 LZMA 1 MB 32 HC4 BCJ Fast compressing 5 LZMA 16 MB 32 BT4 BCJ Normal compressing 7 LZMA 32 MB 64 BT4 BCJ Maximum compressing 9 LZMA 64 MB 64 BT4 BCJ2 Ultra compressing -mdNm 填字典大小 比如填26 和填64m一樣的;看說明更大內存也可以填,比如128m字典 最大1024m
The maximum value for dictionary size is 1 GB = 2^30 bytes. Default values for LZMA are 24 (16 MB) in normal mode, 25 (32 MB) in maximum mode (-mx=7) and 26 (64 MB) in ultra mode (-mx=9).
-mfb=N 填fastbytes大小,此數字增大會稍微加大壓縮但減慢速度
-slp (Set Large Pages mode);會加快壓縮,但開始會卡下,This feature works only on Windows 2003 / XP x64
-ssw 也壓縮共享文件
-v (Create Volumes) switch Specifies volume sizes. Syntax -v{Size}[b | k | m | g]
-mmt=N 多核選項,比如雙核填2
命令行壓縮解壓一 7z
1) 簡介 7z,全稱7-Zip, 是一款開源軟件。是目前公認的壓縮比例最大的壓縮解壓軟件。 主頁:http://www.7-zip.org/ 中文主頁:http://7z.sparanoid.com/ 命令行版本下載:http://7z.sparanoid.com/download.html 主要特征: # 全新的LZMA算法加大了7z格式的壓縮比 # 支持格式: * 壓縮 / 解壓縮:7z, XZ, BZIP2, GZIP, TAR, ZIP * 僅解壓縮:ARJ, CAB, CHM, CPIO, DEB, DMG, FAT, HFS, ISO, LZH, LZMA, MBR, MSI, NSIS, NTFS, RAR, RPM, UDF, VHD, WIM, XAR, Z
2)退出代碼 0 : 正常,沒有錯誤; 1 : 警告,沒有致命的錯誤,例如某些文件正在被使用,沒有被壓縮; 2 : 致命錯誤; 7 : 命令行錯誤; 8 : 沒有足夠的內存; 255 : 用戶停止了操作;
3)使用語法 7z <命令行> [<選項>...] <基本檔案名稱> [<參數變量>...]
在方括號內的表達式(“[” 和 “]”之間的字符)是可選的。 在書名號內的表達式(“<” 和 “>”之間的字符)是必須替換的表達式(而且要去掉括號)。
7-Zip 支持和 Windows 相類似的通配符: “*”可以使用星號代替零個或多個字符。 “?”可以用問號代替名稱中的單個字符。 如果只用*,7-Zip 會將其視為任何擴展名的全部文件。
4)命令及實例
a 添加文件到壓縮檔案。 7z a archive1.zip subdir\ :增加subdir文件夾下的所有的文件和子文件夾到archive1.zip中,archived1.zip中的文件名包含subdir\前綴。 7z a archive2.zip .\subdir\* :增加subdir文件夾下的所有的文件和子文件夾到archive1.zip中,archived2.zip中的文件名不包含subdir\前綴。 cd /D c:\dir1\ 7z a c:\archive3.zip dir2\dir3\ :archiive3.zip中的文件名將包含dir2\dir3\前綴,但是不包含c:\dir1前綴。 7z a Files.7z *.txt -r : 增加當前文件夾及其子文件夾下的所有的txt文件到Files.7z中。
b 測試 CPU 運行速度及檢查內存錯誤。
d 從壓縮檔案刪除文件。 7z d archive.zip *.bak -r :從archive.zip中刪除所有的bak文件。
e 從壓縮檔案中釋放文件到當前目錄中。或者到指定的輸出文件夾。輸出文件夾設置可以通過 -o (設置輸出文件夾) 選項來更改。此命令會將所有被釋放的文件放置到一個文件夾。如果您想使用完整路徑釋放文件,您必須使用 x (完整路徑釋放) 命令。 7z e archive.zip :從壓縮檔案 archive.zip 中釋放所有文件到當前文件夾。 7z e archive.zip -oc:\soft *.cpp :從壓縮檔案 archive.zip 中釋放 *.cpp 文件到 c:\soft 文件夾。
l 列出壓縮檔案內容。 7z l archive.zip :列出壓縮檔案 archive.zip 的內容。
t 測試壓縮檔案文件的完整性。 7z t archive.zip *.doc :在壓縮檔案 archive.zip 中測試 *.doc 文件的完整性。
u 在壓縮檔案文件中使用較新的文件替換掉較舊的文件。 7z u archive.zip *.doc :在壓縮檔案 archive.zip 中更新 *.doc 文件。
x 在當前目錄中,使用完整路徑從壓縮檔案中釋放文件.或者到指定的輸出文件夾。 7z x archive.zip :從壓縮檔案 archive.zip 中釋放所有文件到當前文件夾。 7z x archive.zip -oc:\soft *.cpp :從壓縮檔案 archive.zip 中釋放 *.cpp 文件到 c:\soft 文件夾。
5)更多的選項
-- 在命令行中使“--”后的選項開關“-”都失效。這樣就允許在命令行中使用文件名以“-”開頭的文件。 7z t -- -ArchiveName.7z :測試 -ArchiveName.7z 壓縮檔案.
-i指定壓縮時附加文件或一類文件。此選項可附件添加多個類型。 i[<recurse_type>]<file_ref> 其中<recurse_type>為可以為r[- | 0](具體的-r選項見后面-r),<file_ref>可以為@{listfile} | !{wildcard}。 7z a -tzip src.zip *.txt -ir!DIR1\*.cpp :從當前目錄中添加 *.txt 文件,和 DIR1 目錄及其子目錄中的 *.cpp 文件到 src.zip 壓縮檔案。
-x 指定某一文件或某一類文件從操作中排除。此選項可同時排除多個類型。 x[<recurse_type>]<file_ref> 其中<recurse_type>為可以為r[- | 0](具體的-r選項見后面-r),<file_ref>可以為@{listfile} | !{wildcard}。 7z a -tzip archive.zip *.txt -x!temp.* :添加除 temp.* 文件之外的所有 *.txt 文件到壓縮檔案 archive.zip。
-o 指定釋放文件的輸出文件夾。此選項只能和釋放命令配合使用。 7z x archive.zip -oc:\Doc :從 archive.zip 壓縮檔案釋放所有文件到 c:\Doc 文件夾。
-r 遞歸子目錄選項。 -r 開啟遞歸子目錄。對於 e (釋放)、l (列表)、t (測試)、x (完整路徑釋放) 這些在壓縮檔案中操作的命令, 會默認使用此選項。 -r- 關閉遞歸子目錄。對於 a (添加)、d (刪除)、u (更新) 等所有需掃描磁盤文件的命令,會默認使用此選項。 -r0 開啟遞歸子目錄。但只應用於通配符。 7z l archive.zip -r- *.doc :列出在 archive.zip 壓縮檔案中根目錄下的 *.doc 文件。 7z a -tzip archive.zip -r src\*.cpp src\*.h :將 src 目錄及其子目錄中的 *.cpp 及 *.h 文件添加到 archive.zip 壓縮檔案。
-t 指定壓縮檔案格式。指定壓縮檔案格式。它們可以是:zip、7z、rar、cab、gzip、bzip2、tar 或其它格式。而 默認值是 7z 格式。 7z a -tzip archive.zip *.txt :使用 zip 格式從當前目錄中添加所有 *.txt 文件到壓縮檔案 archive.zip。
-y 使 7-Zip 執行命令時的大多數提示失效。您可以使用此選項來阻止在 e (釋放) 和 x (完整路徑釋放) 命令中文件覆蓋時的提示。 7z x src.zip -y :從 src.zip 釋放所有文件。所有的覆蓋提示將被阻止且所有相同文件名的文件將被覆蓋。
-v指定分卷大小。 {Size}[b | k | m | g] 指定分卷大小,可以使用字節、KB(1 KB=1024 字節),MB(1 MB = 1024 KB)或 GB(1 GB = 1024 MB)。如果您只指定了 {Size},7-zip 將把它視為字。 7z a a.7z *.txt -v10k -v15k -v2m : 創建 a.7z 分卷壓縮檔案。第一個分卷為 10 KB,第二個為 15 KB,剩下全部為 2 MB。
-p 指定密碼。 7z x archive.zip -psecret :將設有密碼“secret”的壓縮檔案 archive.zip 中所有文件釋放。
-ao 指定在釋放期間如何覆蓋硬盤上現有的同名文件。 語法:-ao[a | s | u ] -aoa 直接覆蓋現有文件,而沒有任何提示。 -aos 跳過現有文件,其不會被覆蓋。 -aou 如果相同文件名的文件以存在,將自動重命名被釋放的文件。舉個例子,文件 file.txt 將被自動重命名為 file_1.txt。 -aot 如果相同文件名的文件以存在,將自動重命名現有的文件。舉個例子,文件 file.txt 將被自動重命名為 file_1.txt。 7z x test.zip -aoa :從壓縮檔案 test.zip 中釋放所有文件並卻不做提示直接覆蓋現有文件。
-an 不解析命令行中的 archive_name 區域。此選項必須和 -i (附加文件) 開關一起使用。比如您為壓縮檔案使用列表文件,您就需要指定 -ai 選項,所以您需要禁止解析命令行中的 archive_name 區域。 實例見后面的-ai和-ax中。
-ai 指定附加文件,包括壓縮檔案文件名及通配符。此選項可同時附加多個類型。 ai[<recurse_type>]<file_ref> 其中<recurse_type>為可以為r[- | 0](具體的-r選項見后面-r),<file_ref>可以為@{listfile} | !{wildcard}。 7z t -an -air!*.7z : 在當前目錄及子目錄下測試 *.7z 壓縮檔案。
-ax 指定必須從操作中排除的壓縮檔案。此選項可同時排除多個類型。 ax[<recurse_type>]<file_ref> 其中<recurse_type>為可以為r[- | 0](具體的-r選項見后面-r),<file_ref>可以為@{listfile} | !{wildcard}。 7z t -an -ai!*.7z -ax!a*.7z :測試除 a*.7z 之外的 *.7z 壓縮檔案。
更多的不常用的選項,可以查看幫助。例如:-m設置壓縮算法;-scs 設置要壓縮的文件的列表文件的字符集;-seml通過電子郵件發送壓縮檔;-sfx創建自釋放檔;-si從標准輸入讀入數據,-so從輸出到標准輸 出;-slp設置大內存模式;-slt顯示技術信息;-ssc設置區分大小寫;-ssw壓縮正在寫入的文件;-u更新選項。