DAY4Linux基础
内容提要:通配符;压缩、打包、解压缩;VIM编辑器基础
通配符
-
*
:匹配=一个或者多个字符举例
-
?
:匹配单个字符举例
-
[..]
:匹配 [ ] 范围中举例:
权限说明
权限类型 | 权限的数字 | 普通文件 | 目录 |
---|---|---|---|
r:读 | 4 | cat,less,more,head,tail,grep等 | ls |
w:写 | 2 | >(覆盖写入),>>(追加写入),touch,rm | mkdir,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
总结:
-
*.tar
:用 tar -xvf 解包 -
*.gz
: 用 gzip -d 解压缩 -
*.tar.gz
:和 *.tgz 用 tar -zxvf 解压 -
*.bz2
:用 bzip2 -d 解压 -
*.tar.bz2
:用 tar -jxvf 解包 -
*.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模版
-
首先通过QQ群文件→01-开发工具,获取
.vimrc
模板 -
在windows电脑使用记事本打开
.vimrc
,使用ctrl+f找到作者FPF | YQ
,将其替换成自己 的名字后,保存 -
将
.vimrc
文件拷贝到windows端的Linux共享目录下(共享目录是在VMWare中设置的,如:G:/YQ/Code/linux
) -
在Linux终端通过指令,将共享目录下的
.vimrc
拷贝至家目录: -
重启终端
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终端解锁