文件比較
cmp命令:兩文件逐字節比較
cmp file1 file2
-
功能:逐字節比較兩個文件是否相同
-
兩個文件相同時,不給出任何提示
不同時,打印第一個不同之處
-
侷限性:只能比較兩個位於同一機器上的文件
md5sum:散列編碼(不是比較)
md5sum src.tar proto.txt > myfile.log #將兩個16進制長度的編碼寫入log中,如果有其他人需要比較自己是否下載了正確的程序,只需比較這兩個文件的編碼即可
- 常用於比較兩個位於網絡中不同機器上的兩個文件是否相同
- 將文件轉換爲統一長度的16個字節長度的編碼
diff:比較文件差別(歷史修改)
diff file1 file2 # normal格式
diff -u file1 file2 #unified格式
-
功能:比較兩個文件之間的差別。大於號> 表示要加入的內容,小於號<表示要刪除的內容
-
normal格式:列出如何將file1轉化爲file2
file1行號 + 指令 + file2行號 含義 a(ADD) 增加 c(Change) 修改 d(Delete) 刪除 舉例:
diff test.c test1.c
//test.c 文件 1. #include<iostream> 2. #include<stdlib.h> 3. using namespace std; 4. 5. int main() 6. { 7. for(int i=0;i<5;i++) 8. { 9. cout<<"test"<<endl; 10. } 11. return 0; 12. } //test1.c文件 1. #include<iostream> 2. using namespace std; 3. 4. int main() 5. { 6. int test = 0; 7. for(int i=0;i<5;i++) 8. { 9. cout<<"123456"<<endl; 10. } 11. return 0; 12. }
指令 | 修改方式 | 含義 |
---|---|---|
2d1 | < #include<stdlib.h> |
file1的第2行刪除後,後面的內容與file2的第1行一致 |
6a6 | > int test = 0; |
在file1的第6行之後加入file2的第6行 |
9c9 | < cout<<"test"<<endl; |
在file1中刪除這一行 |
--- |
表示分割線,分割線以上爲file1的原有內容 | |
> cout<<"123456"<<endl; |
在file2中加入這一行 |
-
unified格式
~: test diff -u test.c test1.c --- test.c 2020-06-05 11:09:42.000000000 +0800 +++ test1.c 2020-06-05 11:02:17.000000000 +0800 @@ -1,12 +1,12 @@ #include<iostream> -#include<stdlib.h> # 刪除test.c中的這一行 using namespace std; int main() { + int test = 0; # 在test.c中加入這一行 for(int i=0;i<5;i++) { - cout<<"test"<<endl; # 在test.c中刪除這一行 + cout<<"123456"<<endl; # 在test.c中加入這一行 } return 0; }
Vi編輯
偏好設置
修改用戶HOME目錄下的.exrc文件
set number # 顯示行號
set tabstop=4 # 製表符爲4格
運行時檢查偏好設置:
:set
操作鍵
-
移動到指定行
:465
-
移動到文件尾
:$
-
移動到行尾
$
,移動到行首^
-
光標移動到配對括號上:
%
-
撤回
u
, 重複上次的操作:.
-
保存退出:
zz
或者:wq
流量控制
終端輸入Ctrl-C後斷流,使用Ctrl-Q恢復