【Linux驱动】Ubuntu基础 下篇

一,find和grep命令

1. find命令
在 Windows 中搜索文件,一般查找文件需要传入两个条件:
在哪些目录中查找; 查找的内容;
在 Linux 中,查找文件的也需要这两个条件,不同于 Windows 使用搜索框
查找,Linux 中使用 find 命令查找文件。
find 命令格式为:
find 目录名 选项 查找条件
示例1

复制代码
book@100ask:~$ find -name 1.txt
find: './.cache/dconf': Permission denied
./100ask_imx6ull-sdk/Buildroot_2020.02.x/output/build/host-meson-0.53.1/test cases/failing/41 custom target plainname many inputs/1.txt
./Desktop/01_all_series_quickstart (copy)/04_嵌入式Linux应用开发基础知识/source/01_hello/1.txt
./Desktop/01_all_series_quickstart (copy)/09_u-boot完全分析与移植/source/03.2_u-boot的Makefile/01_make技巧/1.txt
./Desktop/01_all_series_quickstart (copy)/09_u-boot完全分析与移植/source/03.2_u-boot的Makefile/02_默认配置/1.txt
./Desktop/01_all_series_quickstart/09_u-boot完全分析与移植/source/03.2_u-boot的Makefile/01_make技巧/1.txt
./Desktop/01_all_series_quickstart/09_u-boot完全分析与移植/source/03.2_u-boot的Makefile/02_默认配置/1.txt
./1.txt
find: './.dbus': Permission denied
./.local/share/Trash/files/LED_and_TempHumi_bak/1.txt

这里的警告不用去管

复制代码
find: './.cache/dconf': Permission denied

这里警告的意思是说find 命令遍历到了当前目录下的隐藏目录 .cache 里的 dconf 子目录, 由于没有切换成root用户,所以权限不够,不可以去里面进行查找

然后之后就可以进行查找你具体的1.txt内容了

示例2

复制代码
book@100ask:~$ find /home/book/ -name "*1.txt*"
/home/book/.pki/nssdb/pkcs11.txt
/home/book/.vscode/extensions/shd101wyy.markdown-preview-enhanced-0.6.3/node_modules/less/test/less/errors/custom-property-unmatched-block-1.txt

2.grep
grep 命令的作用是查找文件中符合条件的字符串,其格式如下:
**grep [选项] [查找模式] [文件名]
**。

假设 dira 目录的 test1.txt 和 dirb 目录的 test1.txt 都含有如下内容:aaa
AAAAAA abc abcabcabc cbacbacba match_pattern nand->erase**。**
通过查找字符串,希望显示如下内容:
所在的文件名----grep 查找时默认已经显示目标文件名
所在的行号------使用-n 选项。
grep -rn "字符串"文件名r(recursive):递归查找n(number)****:
显示目标位置的行号
字符串:要查找的字符串36/ 566
文件名:要查找的目标文件,如果是*则表示查找当前目录下的所有文件和目
录。

示例:

复制代码
book@100ask:~/abc$ grep "abc" *
111.txt:abc
112.txt:abc
book@100ask:~/abc$ grep "abc" * -n
111.txt:1:abc
112.txt:2:abc
book@100ask:~/abc$ grep "abc" * -nw
111.txt:1:abc
112.txt:2:abc

第一个表示的是查找含有abc字符内容的

第二个表示的是除了查找选项,还要显示这个字符串对应的第几行

第三个表示的是不止止显示具体的行号,还显示具体的内容,w表示的是前后都没有任何东西,只有这个字符串的

二,压缩和解压缩命令

先创建一个1MB大小的东西

复制代码
book@100ask:~$ dd if=/dev/zero of=test bs=1024 count=1024
1024+0 records in
1024+0 records out
1048576 bytes (1.0 MB, 1.0 MiB) copied, 0.00342032 s, 307 MB/s

1. gzip
gzip 的常用选项:
-l(list) 列出压缩文件的内容。
-k(keep) 在压缩或解压时,保留输入文件。
-d(decompress) 将压缩文件进行解压缩。
举例:
查看压缩文件
gzip -l pwd.1.gz 解压文件 gzip -kd pwd.1.gz //该压缩文件是以.gz 结尾的单个文件
压缩文件
$ gzip -k mypwd.1得到了
一个**.gz****结尾的压缩文件**

复制代码
book@100ask:~$ gzip -k test
book@100ask:~$ ls -l test*
-rw-r--r-- 1 book book 1048576 Jan 28 02:45 test
-rw-r--r-- 1 book book    1056 Jan 28 02:45 test.gz

观察压缩后的大小明显变小了
2. bzip2
bzip2 的常用选项:
-k(keep) 在压缩或解压时,保留输入文件;
-d(decompress) 将压缩文件进行解压缩;
压缩文件
bzip2 -k mypwd.1 得到一个.bz2 后缀的压缩文。 解压文件 bzip2 -kd mypwd.1.bz2
注意:
如果 bzip2 不加任何选项,此时为压缩37/ 566
压缩完该文件会生成后缀为.bz2 的压缩文件, 并删除原来的文件。所以说,推荐使用
bzip2 -k 来压缩文件,这样可以保留原来的文件。
bzip2 只能压缩单个文件,不能压缩目录。
单个文件的压缩使用 gzip 或 bzip2,压缩有两个参数:
a) 压缩时间
b) 压缩比。
一般情况下,小文件使用 gzip 来压缩,大文件使用 bzip2 来压缩bzip2 的的
压缩率更高

复制代码
book@100ask:~$ bzip2 -k test
book@100ask:~$ ls -l test*
-rw-r--r-- 1 book book 1048576 Jan 28 02:45 test
-rw-r--r-- 1 book book      45 Jan 28 02:45 test.bz2
-rw-r--r-- 1 book book    1056 Jan 28 02:45 test.gz

3. tar
tar 常用选项:
⚫ -c(create):表示创建用来生成文件包 。
⚫ -x:表示提取,从文件包中提取文件。
⚫ -t:可以查看压缩的文件。
⚫ -z:使用 gzip 方式进行处理,它与"c"结合就表示压缩,与"x"结合就表示解压缩。
⚫ -j:使用 bzip2 方式进行处理,它与"c"结合就表示压缩,与"x"结合就表示解压缩。
⚫ -v(verbose):详细报告 tar 处理的信息。
⚫ -f(file):表示文件,后面接着一个文件名。 -C <指定目录> 解压到指定目录。
例 1:tar 打包、gzip 压缩
把目录 dira 压缩、打包为 dira.tar.gz 文件:
tar czvf dira.tar.gz dira****。** **注意:**"tar --czvf"与"tar czvf"是一样的效果,所以说,后面统一取消"-"。 查看压缩文件: ** tar tvf dira.tar.gz
解压文件,可以用-C 指定解压到哪个目录:
tar xzvf dira.tar.gz //解压到当前目录** ** tar xzvf dira.tar.gz -C /home/book //解压到/home/book。

复制代码
例 2:tar 打包、bzip2 压缩
把目录 dira 压缩、打包为 dira.tar.bz2 文件
$ tar cjvf dira.tar.bz2 dira
查看压缩文件
$ tar tvf dira.tar.bz2
解压文件,可以用-C 指定解压到哪个目录
$ tar xjvf dira.tar.bz2 //解压到当前目录:
$ tar xjvf dira.tar.bz2 -C /home/book //解压到/home/book

三,VI编辑器_新建保存与游览

这是VI编辑器的三个模式和终端命令行的不断切换

这些命令列表如下:

|----|------------------|
| 命令 | 描述 |
| x | 保存当前文档并且退出。 |
| q | 退出。 |
| w | 保存文档 。 |
| q! | 退出 vi/vim,不保存文档。 |

四,VI编辑器_编辑

五,VI编辑器_复制黏贴查找替换

相关推荐
gsgbgxp2 小时前
WSL迁移至非系统盘
深度学习·ubuntu
玉树临风江流儿2 小时前
WSL2通过主机转发流量,实现与开发板互相ping通
linux·服务器·网络
感觉不怎么会2 小时前
Android 13 - 对讲app后台休眠后无法录音
android·linux
淬炼之火2 小时前
基于Docker Desktop 和 Ubuntu 在 Windows上部署轻量化大模型(Qwen-LLM)
笔记·ubuntu·docker·语言模型·容器
程序 代码狂人2 小时前
CentOS7中有趣的yum源(彩蛋)-----第二期
linux·运维·服务器
Y‍waiX‍‍‮‪‎⁠‌‫‎‌‫‬2 小时前
CentOS7(Linux)从系统安装到环境搭建
linux·运维·服务器
若风的雨3 小时前
【 ARMv8多核处理器启动方案设计】
linux·arm开发
迷路爸爸1803 小时前
无sudo权限远程连接Ubuntu服务器安装TeX Live实操记录(适配VS Code+LaTeX Workshop,含路径选择与卸载方案)
java·服务器·ubuntu·latex
皓月盈江3 小时前
MoonBit国产编程语言创建新包和使用新包
linux·moonbit·国产编程语言·moonbit教程·moonbit创建包·moonbit使用包