嵌入式开发学习 (第一阶段 Linux基础)

DAY4Linux基础

内容提要:通配符;压缩、打包、解压缩;VIM编辑器基础

通配符

  • *:匹配=一个或者多个字符

    举例

  • ?:匹配单个字符

    举例

  •  [..] :匹配  [ ] 范围中

    举例:

权限说明

权限类型权限的数字普通文件目录
r:读4cat,less,more,head,tail,grep等ls
w:写2>(覆盖写入),>>(追加写入),touch,rmmkdir,rm,rmdir,mv(重命名)
x:执行1./文件名(次文件时可执行程序)cd,cp,mv(移动)
-:无权限0无操作无操作

压缩与解压缩

指令

压缩指令:gzip

说明:Linux压缩文件为.gz格式,只能压缩文件,不能压缩目录;只能压缩,不能打包

执行者:所有用户

语法:

 gizp [选项] 文件路径

选项:

 -r :可以将目录下的文件递归压缩(绕过文件目录找文件进行压缩)

 -l :显示已经压缩文件的压缩信息

 -d :解压缩

范例: 

gzip demo01.c
解释:压缩当前路径下的demo01.c文件,压缩后名称默认:demo.c.gz,压缩后源文件(demo01.c)会被删除

giz -d demo01.c.gz
解释:解压当前路径下的demo01.c.gz,解压后源文件(demo01.c.gz)会被删除
------------------------------------------------

gizp -r chapter01
解释:压缩chapter01目录的文件,此时会递归压缩,在目录中文件同级别的位置显示压缩后的文件
举例:原始文件:chapter01/demo01.c   压缩后:chapter01/demo01.gz

gizp -d chater01/demo01.c.gz
解释:解压chapter01/demo.c.gz
-------------------------------------------------

gzip demo01.c demo02.c
解释:批量压缩demo01.c,demo02.c,压缩后删除源文件

gzip -d demo01.c.gz demo02.c.gz
批量解压demo01.c.gz demo02.c.gz ,压缩后删除.gz 文件

注意:如果已经是.gz文件,就不支持再次压缩

另一种解压:

语法 

gunzip [选项] 文件/目录
  • 选项:
  •  -r :可以将目录下的文件递归解压缩

  • 范例:

 gunzip demo01.c.gz              
 解释:解压demo01.c.gz
 gunzip -r chapter01
 ​
 解释:绕过指定目录递归解压demo01.c.gz,等价于 gzip -rd chapter01
更高级的压缩效率指令:bzip2

说明:压缩文件为 .bz2格式,同样这种压缩可不提供打包功能。

执行者:所有用户

语法:

选项:

 -k :保留源文件,支持保留源文件

 -d :解压缩

 -f :覆盖式压缩、解压缩(目录中存在同名文件,用压缩或者解压缩后的同名文件直接覆盖)

范例:

bizp2 demo01.c
解释:压缩当前路径下的demo01.c,压缩后默认的名称为demo.c.bz2,源文件会被删除
biz2 -d demo02.c.bz2
解释:解压缩当前路径下的demo01.c.bz2,解压缩后源文件会被删除
------------------------------------------------
bzip2 -k demo02.c
解释:压缩当前路径下的demo02.c,压缩后默认的名称为demo02.c.bz2,源文件(.c)会保留
bzip2 -kdf demo02.c.bz2
解释:解压缩当前路径下的demo02.c.bz2,解压缩后,源文件(.bz2)会保留,解压后的同名文件会覆盖原有文件

----------------------------------------
bzip2 -kf demo01.c demo01.c
解释:批量压缩多个文件,压缩后的名称分别为:demo01.c.bz2,demo02.c.bz2(针对每个文件单独压缩),压缩后
的文件会覆盖同名文件
bzip2 -df demo01.c.bz2 demo02.bz2
解释:批量解压多个文件,解压后分别为demo01.c,demo02.c,解压后的文件会覆盖源文件,不保留源文件(.bz2)
 

另一种解压:

  • 语法:

 bunzip2 [选项] 文件名
  • 选项:

    • -f :如果压缩时保留了源文件,覆盖解压

范例:

  bunzip2 -f demo02.c.bz2               
  解释:解压demo02.c.bz2,解压出demo02.c
  
  bunzip2 -f demo01.c.bz2 demo02.c.bz2  
  解释:批量解压,解压出demo01.c,demo02.c
总结
  • gzip和bzip的区别:

    • gzip 可以绕过目录递归压缩目录中的文件以及其子目录文件,bzip1不可以

    • 与gizp 相比,bzip2有更高的压缩效率

  • gzip 和bzip2压缩指令不能混合使用,主要通过压缩文件的扩展名区分

压缩文件或目录:zip

说明:文件的后缀名是.zip

执行者:所有用户

补充:这个指令不是Linux自带的,如果需要使用,需要进行额外安装

安装命令:

sodo apt-get update
解释:更新软件源

sodu adt-get install
解释:安装zip工具

压缩语法:

zip [选项] 压缩后文件名 文件/目录路径

解压语法:

unzip [选项] 压缩文件的文件名

选项:

 -r :递归压缩,用于对目录的操作(体现在压缩算法上,并不是真的生成多个压缩包)

注意:不带选项会保留源文件(默认保留源文件)

范例:

zip demo01.zip demo01.c
解释:压缩路径下的demo01.c文件,压缩后的文件为demo01.zip,压缩后,保留源文件(.c)
unzip demo01.zip
解释:解压当前路径下的demo01.zip文件,如果出现同名文件,会提示用户选择性处理

--------------------------------------------------------------
zip chater.zip chater01
解释:压缩当前路径下的chater01目录,压缩的文件名为chapter01.zip,压缩后,保留原文件(charter01),仅仅从外部整体压缩
unzip demo01.zip
解释:压缩当前路径下的chapter01.zip文件,如果出现同名文件,会提示用户选择性处理

---------------------------------------------------------------
zip -r chater.zip chater01
解释:压缩当前路径下的chater01目录,压缩的文件名为chapter01.zip,压缩后,保留原文件(charter01),逐层递归压缩
unzip demo01.zip
解释:压缩当前路径下的chapter01.zip文件,如果出现同名文件,会提示用户选择性处理

---------------------------------------------------------------
zip -r all.zip chapter01/demo01.c chapter01.zip demo02.c
解释:批量压缩chapter01/demo01.c chapter01.zip demo02.c,压缩后的名字是all.zip,逐层递归压缩
unzip all.zip
解释:解压缩当前路径下的all.zip文件,如果出现同名文件,会提示用户选择性处理
解压时出现同名文件

解释:

当解压缩时,如果有同名的文件或者目录就会提示让用户进行选择处理:

[y]es:输入y,表示覆盖文件,进行替换(单文件一个个交互处理)

[n]o:输入n,表示不覆盖文件(单文件一个个交互处理)

[A]ll:输入A,表示覆盖文件夹(多文件,统一处理)

[N]one:输入N,表示不覆盖文件夹(多文件,统一处理)

[r]ename :输入r,重命名解压后的文件

打包指令:tar

说明:打包一般结合压缩使用

执行者:所有用户

语法:

tar [选项] 产生文件的名称 被打包的文件或目录路径 (有多个,用空格隔开)

选项:

-c:打包

-v:显示命令执行的过程

-f:用于自带打包文件的名称

-z:打包时压缩、解包时压缩,操作的文件扩展名为.g,使用的是gizp的算法

-x:解包,需要注意的时候,-c和-x不能同时出现

-j:打包时压缩、解包时解压缩,操作的文件扩展名为.bz2,使用的是bzip2的算法,主要:-z和-j只能二选一

范例:

-- 打包(打包不会影响文件的大小,只会将多个文件整合到一块)
tae -cvf all.tae chapter01 chapter01.zip demo01.c
解释:打包chapter01 chapter01.zip demo01.c文件到all.tar,此时是未经过压缩,保留源文件
tar --xvf alltar
解释:解包all.tar中的chapter01 chapter01.zip demo01.c

---------------------------------------------------

--打包+压缩
tar -zcvf all.tar.gz chapter01 chapter01.zip demo01.c
解释:打包并压缩chapter01 chapter01.zip demo01.c文件到all.tar.gz,此时经过压缩,保留源文件,建议后缀名:.tar.gz
tar -zxvf all.tar.gz
解释:解包并解压缩all.tar.gz中的chapter01 chapter01.zip demo01.c

----------------------------------------------------

--打包+压缩
tar -jcvf all.tar.gz chapter01 chapter01.zip demo01.c
解释:打包并压缩chapter01 chapter01.zip demo01.c文件到all.tar.bz2,此时经过压缩,保留源文件,建议后缀名:.tar.bz2
tar -jxvf all.tar.gz
解释:解包并解压缩all.tar.bz2中的chapter01 chapter01.zip demo01.c

总结:

  1.  *.tar :用  tar -xvf  解包

  2.  *.gz : 用 gzip -d  解压缩

  3.  *.tar.gz :和  *.tgz  用 tar -zxvf  解压

  4.  *.bz2 :用  bzip2 -d  解压

  5.  *.tar.bz2  :用  tar -jxvf  解包

  6.  *.zip :用  unzip  解压

总结:

实现打包压缩目前我们接触了三种用法:

①  zip :打包并压缩

② tar + gzip :先打包,再压缩

③  tar + bzip2 :先打包,再压缩

关于 tar 和 gzip 、bzip2 实现混合使用的时候,一定是先打包,再压缩。

tar结合gzip、bzip2

自动调用gzip/bzip2程序完成相关操作

  • 打包时,tar自动在最后调用gzip/bzip2对包进行压缩。

  • 解包时,tar首先调用gzip/bzip2解压缩,然后再解开被gzip/bzip2处理过的.tar文件

Vim编辑器

Vim定义

本质上我们Linux自大的编辑器叫做Vi编辑器(类似于window的记事本,我们一般用来进行文件的编辑),名字取自Visual,它是一个全屏幕文本编辑器(程序)。在Linux系统中Vi是最常用的编辑程序,它的文本编辑功能十分强大,但是使用起来比较复杂。Vim是Vi的功能Vim都有,而且Vim新增Vi没有功能,它比Vi更容易使用。这个工具不是Linux内置,需要额外的安装。

Vim安装于卸载

本地安装

前提:系统中要存在下载好的安装包,并且可能还需要安装包的依赖包。

在线安装

语法:

sudo apt-get update
解释:更新软件源

sudo apt-get install vim
解释:安装vim,vim也可以换成其他软件的名字
卸载程序

语法

sudo apt-get remove vim
解释:卸载vim,同理替换程序名,可卸载其他程序

Vim的使用

启动(打开文件)

启动Vim后,此时Vim处于命令模式:

1.系统命令输入Vim就可以启动Vim(建议不要使用)。

st@st-virtual-machin:$ vim

在Vim中导入待编辑的文件:-r 待编辑的文件名称

2.系统命令行输入Vim待编辑文件,启动Vim同时打开待编辑文件(推荐)

说明:默认打开后,光标处于文件开头 (第1行第1列)

st@st-virtual-machine:~$ vim demo01.c

注意:如果待编辑文件不存在,就会创建,是否打开

3.系统命令行输入Vim待编辑文件,启动Vim同时打开待编辑文件(推荐)

说明:默认打开后,光标处于文件结尾 (末行第1列)

st@st-virtual-machine:~$ vim /etc/profile +

注意:如果待编辑文件不存在,就会创建,是否打开

4.系统命令行输入Vim待编辑文件,启动Vim同时打开待编辑文件(推荐)

说明:默认打开后,光标处于文件的第n行(第n行第1列)

st@st-virtual-machine:~$ vim /etc/profile +4
退出(关闭文件)

1.在编辑器模式下:EST键,然后英文输入法下使用shift+':'组合键输入':'

2.根据需求选择退出模式:

 :q :文件不做任何修改直接退出(不保存)

 :wq 保存并退出

 :q! :强制退出,保存

 :wq! :强制退出,保存

3.输入完毕,按下回车键(Enter)处理

设置Vim模版
  1. 首先通过QQ群文件→01-开发工具,获取 .vimrc 模板

  2. 在windows电脑使用记事本打开 .vimrc,使用ctrl+f找到作者FPF | YQ,将其替换成自己 的名字后,保存

  3. .vimrc文件拷贝到windows端的Linux共享目录下(共享目录是在VMWare中设置的,如:G:/YQ/Code/linux

  4. 在Linux终端通过指令,将共享目录下的.vimrc 拷贝至家目录:

  5. 重启终端

Vim的工作模式

1.命令模式:用户输入vim是当做指令处理,一般通过vim打开文件进入的时候,就处于这个模式

2.输入模式:编辑模式,用户输入vim时字符vim时字符要写到文件中

3.末行模式:文件保存和退出vim

撤回U

模式切换

命令模式下输入的快捷键解释:

  •  i :在光标前(光标左边)插入所要输入的内容。
插入的内容 + 光标
  •  a :在当前光标后(光标所在行下新增一空行,并从首行开始输入文字)
光标 + 插入的内容
  •  o :在当前光标所在行的行首开始输入文字。

光标
插入内容
  •  I :插入行首,跳转到光标所在的行首(光标所在第1行)位置

...
插入的内容 + 光标 + 行尾
...
  • A:插入行位,跳转到光标所在的行首(光标所在第1行)位置
...
行首 + 光标 + 插入的内容
...
  • o:在当前光标所在行上新增一空行,并从行首开始输入文字。
插入的内容
光标

关于清理屏幕

快捷键: Ctrl + L :向下翻页,保留前面页,前面页中的内容不会被删除 指令:

  • clear:向下翻页,保留前面页,但是前面页中的内容被删除

  • reset:重置,不会保留前面的信息

常用快捷键

Ctrl + Alt + T:打开Linux终端(命令行工具)

Ctrl + Shift ++:对终端显示文本进行放大

Ctrl +- :对终端显示文本进行缩小

Ctrl +L :对终端当前屏幕进行清空,其实就是翻了一页,保留之前的记录

方向上/下 :在终端中,可以通过方向键切换历史指令。

Tab :对命令行中的命令进行补全,这里要注意,如果前缀在同级中有多个文件或者文件夹,会失 效。

Ctrl+ c :强制退出正在运行的进程,一般用于可执行程序的强制退出

Ctrl +S:对Linux终端进行锁定

Ctrl+ Q:对锁定的Linux终端解锁

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值