cat显示文件内容
例子:
ty@ty-virtual:/mnt/hgfs/02_linux//code$ cat my.txt
bin
boot
cdrom
dev
etc
home
initrd.img
ty@ty-virtual:/mnt/hgfs/02_linux/test/code$ cat -n my.txt
1 bin
2 boot
3 cdrom
4 dev
5 etc
od--可以指定格式查看文件内容
格式:
od [选项] 文件
选项: -A 指定输出地址格式
-An 不显示地址
-Ax 地址以十六进制输出
-Ao 地址以八进制输出(默认也是八进制)
-t 指定输出数据格式 (数据格式有x,o, d, f, c)
-tx 以十六进制输出,默认是4字节
-tx1 以十六进制输出,一次1字节
-t格式[SIZE], 一对应的格式输出,并且一次输出SIZE字节
比如: -tx2 ,以十六进制输出,一次2字节
-wN 指定一行输出N字节
ty@ty-virtual:/mnt/hgfs/02_linux/test/code$ od -Ax -tc -w8 file
000000 a b c d e f g h
000008 j k l m \n
00000d
-Nn 只取文件中的前n个字节
ty@ty-virtual:/mnt/hgfs/02_linux/test/code$ od -Ax -tc -N2 file
000000 a b
000002
-j start -N size 从start位置开始取, 总共取size字节
ty@ty-virtual:/mnt/hgfs/02_linux/test/code$ od -Ax -tc -j2 -N2 file
000002 c d
000004
find查找文件
按照文件名称查询
grepty@ty-virtual:/mnt/hgfs/02_linux/test/code$ find /usr/bin/ -name "ctags"
/usr/bin/ctags
ty@ty-virtual:/mnt/hgfs/02_linux/test/code$ find /usr/bin/ -name "stdio.h"
ty@ty-virtual:/mnt/hgfs/02_linux/test/code$ find /usr/include -name "stdio.h"
/usr/include/c++/5/tr1/stdio.h
/usr/include/stdio.h
/usr/include/x86_64-linux-gnu/bits/stdio.h
按照文件类型查找
ty@ty-virtual:/mnt/hgfs/02_linux/test/code$ find /dev/ -type b 查找/dev目录下的块设备文件
/dev/sr0
/dev/sda6
/dev/sda5
/dev/sda2
/dev/sda1
/dev/sda
/dev/loop7
/dev/loop6
/dev/loop5
/dev/loop4
/dev/loop3
/dev/loop2
/dev/loop1
/dev/loop0
grep在指定文件或目录中,按指定条件寻找字符串
ty@ty-virtual:/mnt/hgfs/02_linux/test/code$ find /usr/ -name "stdio.h" | grep "c++"
/usr/include/c++/5/tr1/stdio.h
/usr/local/arm/5.4.0/usr/arm-none-linux-gnueabi/include/c++/5.4.0/tr1/stdio.h
先用find查找/usr目录下所有的stdio.h文件,把过滤出路径中包含c++的路径
grep 'time_t' /usr/ -rn #在/usr目录下所有的文件中查找包含time_t文件
diff--比较两个文件或目录的差异(生成补丁文件)
输出两个的差异
ty@ty-virtual:/mnt/hgfs/02_linux/test/code$ ls
first.c second.c
ty@ty-virtual:/mnt/hgfs/02_linux/test/code$ diff first.c second.c
1a2,5
> int add(int a, int b)
> {
> return a+b;
> }
6c10
< int c=a+b;
---
> int c=add(a,b);
用diff生成first.c second.c的补丁文件
ty@ty-virtual:/mnt/hgfs/02_linux/test/code$ diff first.c second.c -uN
--- first.c 2022-07-30 11:26:57.000000000 +0800
+++ second.c 2022-07-30 11:28:03.000000000 +0800
@@ -1,9 +1,13 @@
#include <stdio.h>
+int add(int a, int b)
+{
+ return a+b;
+}
int main(void)
{
int a=1;
int b=2;
- int c=a+b;
+ int c=add(a,b);
printf("%d\n", c);
return 0;
}
diff first.c second.c -uN > second.patch (second.patch就是补丁文件)
patch打补丁
ty@ty-virtual:/mnt/hgfs/02_linux/test/code$ ls
first.c second.c second.patch
ty@ty-virtual:/mnt/hgfs/02_linux/test/code$ patch -p0 < second.patch #打补丁
patching file first.c
ty@ty-virtual:/mnt/hgfs/02_linux/test/code$ vim first.c
ty@ty-virtual:/mnt/hgfs/02_linux/test/code$ patch -R -p0 <second.patch #去掉补丁
patching file first.c
ty@ty-virtual:/mnt/hgfs/02_linux/test/code$ vim first.c
ty@ty-virtual:/mnt/hgfs/02_linux/test/code$