Linux 第四天
内容提要
- 通配符
- 压缩、打包、解压缩
- VIM编辑器基础
提问
1.如何创建新用户? 答:[sudo] useradd -g /home/用户文件夹 -mg 组名 用户名
2.如何给新用户设置密码? 答:管理员:sudo passwd 用户名,当前用户:passwd
通配符
*
:匹配任意单个或多个字符
举例:
?
:匹配任意单个字符
举例:
[..]
:匹配[]范围中的任意单个字符
举例:
权限说明
压缩与解压缩
指令
压缩指令:gzip
说明:Linux压缩文件为 .gz
格式,只能压缩文件,不能压缩目录;只能压缩,不能打包。
执行者:所有用户
语法:
gzip [] 文件路径
选项:
-r
:可以将目录下的文件地柜压缩(绕过文件目录找文件进行压缩)
-l
:显示已经压缩文件的压缩信息
-d
:解压缩
范例:
gzip demo01.c
解释:压缩当前路径下的demo01.c文件,压缩后的名称默认:demo01.c.gz,压缩后源文件(demo01.c)会被删除
gzip -d demo01.c.gz
解释:解压缩当前路径下的demo01.c.gz,解压后源文件(demo01.c.gz)会被删除
gzip -r chapter01
解释:压缩chapter01目录中的文件,此时会地柜压缩,在目录中文件同级别的位置显示压缩后的文件
举例:原始文件: chapter01/demo01.c 压缩后:chapter01/demo01.c.gz
gzip -d chapter01/demo01.c.gz
解释:解压缩chapter01/demo01.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
格式,同样这种压缩可不提供打包功能。
执行者:所有用户
语法:
bzip [] 文件路径
选项:
-k
:保留源文件,支持保留源文件
-d
:解压缩
-f
:覆盖式压缩/解压缩(目录中存在同名文件,用压缩或者解压缩后的同名文件直接覆盖)
范例:
bzip2 demo01.c
解释:压缩当前路径下的demo01.c,压缩后默认的名称为demo01.c.bz2,源文件会被删除
bzip2 -d demo01.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 demo02.c
解释:批量压缩多个文件,压缩后的名称分别为:demo01.c.bz2,demo02.c.bz2(针对每个文件单独压缩),压缩后
的文件会覆盖同名文件
bzip2 -df demo01.c.bz2 demo02.c.bz2
解释:批量解压多个文件,解压后分别为:demo01.c,demo02.c,解压后的文件会覆盖同名文件,不保留源文件
(.bz2)
另一种解压:
- 语法:
bunzip2 [] 文件名
-
选项:
-
bunzip2 -f demo02.c.bz2 解释:解压demo02.c.bz2,解压出demo02.c bunzip2 -f demo01.c.bz2 demo02.c.bz2 解释:批量解压,解压出demo01.c,demo02.c
总结:
- gzip和bzip2的区别:
- gzip可以绕过目录递归压缩目录中的文件以及其子目录文件,bzip2不可以
- 与gzip相比,bzip2有更高的压缩效率
- gzip和bzip2压缩指令不能混合使用,主要通过压缩文件的扩展名区分
压缩文件或目录:zip
说明:文件的后缀名是.zip
,同时支持打包和压缩
执行者:所有用户
补充:这个命令不是Linux自带的,如果需要使用,就需要额外的安装
安装命令:
[sudo] apt-get update
解释:更新软件源
[sudo] apt-get install zip
解释:安装zip工具
压缩语法:
zip [选项] 压缩后的文件名 文件/目录路径
解压语法:
unzip [选项] 压缩文件的文件名
选项:
-r
:地柜压缩,用于对目录的操作(体现在压缩算法上,并不是真的生成多个压缩包)
注意:不带选项会保留源文件(默认保留源文件)
范例:
zip demo01.zip demo01.c
解释:压缩当前路径下的demo01.c文件,压缩后的文件名为demo01.zip,压缩后,保留源文件(.c)
unzip demo01.zip
解释:解压缩当前路径下的demo01.zip文件,如果出现同名文件,会提示用户选择性处理
----------------------------------------------------------------------------
zip chapter01.zip chapter01
解释:压缩当前路径下的chapter01目录,压缩后的文件名为chapter01.zip,压缩后,保留源文件
(chapter01),从外部整体压缩
unzip chapter01.zip
解释:解压缩当前路径下的chapter01.zip文件,如果出现同名文件,会提示用户选择性处理
----------------------------------------------------------------------------
zip -r chapter02.zip chapter01
解释:压缩当前路径下的chapter01目录,压缩后的文件名为chapter01.zip,压缩后,保留源文件
(chapter01),逐层递归压缩
unzip chapter02.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
:打包时压缩/解包时解压缩,操作的文件拓展名为.gz
,使用的是gzip算法
-x
:解包,需要注意的是,-c和-x不能同时出现
-j
:打包时压缩/解包时解压缩,操作的文件扩展名为.bz2
,使用的是bzip2的算法,注意:-z和-j只能二选一
范例:
-- 打包(打包不会影响文件的大小,只会将多个文件整合到一块)
tar -cvf all.tar chapter01 chapter01.zip demo01.c
解释:打包chapter01 chapter01.zip demo01.c文件到all.tar,此时是未经过压缩,保留源文件
tar -xvf all.tar
解释:解包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.bz2 chapter01 chapter01.zip demo01.c
解释:打包并压缩chapter01 chapter01.zip demo01.c文件到all.tar.bz2,此时经过压缩,保留源文件,建议
后缀名:.tar.bz2
tar -jxvf all.tar.bz2
解释:解包并解压缩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的增强版 ,所以Vi的功能Vim都有,而且 Vim新增Vi没有的功能,它比Vi更容易使用。这个工具不是Linux内置,需要额外的安装 。
Vim安装与卸载
本地安装
前提:系统中要存在下载好的安装包,并且可能还需要安装包的依赖包。
在线安装
语法:
sudo apt-get update
解释:更新软件源
sudo apt-get install vim
解释:安装vim,同理替换程序名,可以安装其他程序
卸载程序
语法:
sudo apt-get remove vim
解释:卸载vim,同理替换程序名,可以卸载其他程序
Vim的使用
启动(打开文件)
启动Vim后,此时Vim处于命令模式:
1.系统命令输入vim,就可以启动vim(不推荐)
st@st-virtual-machine:~$ 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.在编辑器模式下:ESC键
,然后英文输入法下使用Shift
+:
组合键输入:
2.根据需求选择退出模式:
:q
:文件不做任何修改直接退出(不保存):wq
:保存并退出:q!
:强制退出,不保存:wq!
:强制退出,保存
3.输入完毕,按下回车键(Enter)处理
设置Vim模版
1.首先通过QQ群文件→01-开发工具,获取.vimic
模版
2.在windows电脑使用记事本打开 .vimrc
,使用ctrl+f找到作者 冯鹏飞 | 粤嵌
,将其替换成自己的名字后,保存
3.将 .vimrc
文件拷贝到windows端的Linux共享目录下(共享目录是在VMWare中设置的,如:G:/YQ/Code/linux
)
4.在Linux终端通过指令,将共享目录下的 .vimrc
拷贝至家目录:
5.重启终端
Vim的工作模式
1.命令模式:用户输入vim时当做指令处理,一般通过vim打开文件进入的时候,就处于这个模式
2.输入模式:编辑模式,用户输入vim时字符要写入到文件中
3.末行模式:文件保存和退出vim
命令模式下输入的快捷键解释:
-
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终端进行锁定
- 插入的内容
…
- `O`:在当前光标所在行上新增一空行,并从行首开始输入文字
```bash
插入的内容
光标
关于清理屏幕
快捷键:Ctrl
+L
:向下翻页,保留前面页,前面页中的内容不会被删除
指令:
clear
:向下翻页,保留前面页,但是前面页中的内容被删除reset
:充值,不会保留前面的信息
常用快捷键
Ctrl
+Alt
+T
:打开Linux终端(命令行工具)
Ctrl
+ Shift
+ +
:对终端显示文本进行放大
Ctrl
+ -
:对终端显示文本进行缩小
Ctrl
+ L
:对终端当前屏幕进行清空,其实就是翻了一页,保留之前的记录
方向上/下 :在终端中,可以通过方向键切换历史指令。
Tab
:对命令行中的命令进行补全,这里要注意,如果前缀在同级中有多个文件或者文件夹,会失效。
Ctrl + c :强制退出正在运行的进程,一般用于可执行程序的强制退出
Ctrl + S :对Linux终端进行锁定
Ctrl + Q :对锁定的Linux终端解锁