1、进入Linux命令环境
2、使用vim文本编辑器:vim <脚本文件名称>
3、进入vim
文本编辑器后(关于vim编辑器的使用下文有注2),按照如下编辑:
#!/bin/bash
cd /data/limiao/develop_data/AISHELL-2/iOS/data/wav
# 首先把要解压的文件(tar.gz格式)放入一个文件中
ls *.tar.gz>ls.log
# 这样就会把所有的文件名保存到ls.log文件中
for i in $(cat ls.log) # 这里可以使用Linux命令cat
do
tar -zxf $i & > /dev/null # & > /dev/null语句的意思是让输出的东西不要显示出来
done
4、编辑好了之后切换到底线命令模式保存并退出编辑器
5、但是按照这样编写的脚本是不可执行的,查看文件权限(关于Linux文件的权限下文有注3),如下所示,还需要修改其权限使其可执行,
(base) [LiMiao@gpu08 wav]$ ls -l for_unzip.sh
-rw-rw-r-- 1 LiMiao LiMiao 309 May 9 15:16 for_unzip.sh
6、使用chmod命令修改文件权限:
(base) [LiMiao@gpu08 wav]$ chmod 755 for_unzip.sh
权限为755
的脚本,则每个人都能执行,权限为700
的 脚本,只有文件所有者能够执行。注意为了能够执行脚本,脚本必须是可读的。
执行chmod命令后,再查看文件权限如下所示,已经是可执行的了:
(base) [LiMiao@gpu08 wav]$ ls -l for_unzip.sh
-rwxr-xr-x 1 LiMiao LiMiao 309 May 9 15:16 for_unzip.sh
接下来就可以输入以下命令执行脚本文件:
(base) [LiMiao@gpu08 wav]$ ./for_unzip.sh
这样解压缩*.tar.gz文件就完成了:
注1:& > /dev/null
语句的意思是让输出的东西不要显示出来
注2:vim相关命令:
- 命令模式
-
i
切换到输入模式,以输入字符 -
x
删除当前光标所在处的字符 -
:
切换到底线命令模式,以在最底一行输入命令
编辑文本:启动vim
,进入了命令模式,按下i
,切换到输入模式。
- 输入模式
在命令模式下按下i
就进入了输入模式。
在输入模式中,可以使用以下按键:
-
字符按键
以及Shift
组合,输入字符 -
ENTER
,回车键,换行 -
BACK SPACE
,退格键,删除光标前一个字符 -
DEL
,删除键,删除光标后一个字符 -
方向键
,在文本中移动光标 -
HOME/END
,移动光标到行首/行尾 -
Page Up/Page Down
,上/下翻页 -
Insert
,切换光标为输入/替换模式,光标将变成竖线/下划线 -
ESC
,退出输入模式,切换到命令模式
- 底线命令模式
在命令模式下按下:(英文冒号)就进入了底线命令模式。
底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
在底线命令模式中,基本的命令有(已经省略了冒号):
-
q
退出程序 -
w
保存文件 -
q!
不保存强制退出程序 -
wq
保存并退出程序
注3:Linux文件中的一些权限相关,以下图为例:
第一个-
代表文件的类型:
- 如果是一个普通文件为
-
- 如果是一个目录为
d
- 如果是一个软连接为
l
- 如果是一个字符设备为
c
- 如果是一个块文件为
b
然后以三个符号为一组看,第一组rw-
(因为没有执行权限,用x
表示,故此处为-
)表示文件所有者拥有的的权限:
- 其中
r
表示该文件拥有读取的权限 -
w
表示该文件拥有修改的权限 -
-
表示暂时还没有其他权限
第二组rw-
表示该文件所在组的用户拥有的权限:
- 同样
r
表示拥有阅读的权限 -
w
表示该文件拥有修改的权限 -
-
表示暂时没有其他权限
第三组r--
表示其他组的用户所拥有的权限:
- 同样
r
表示拥有阅读的权限 -
-
表示暂时没有其他权限
接着看旁边的数字 1:
- 如果这个文件类型是一个普通文件,则表示这个文件的硬链接
- 如果这个文件类型是一个目录,则表示这个目录下的子目录个数
然后第一个LiMiao
,表示这个文件的所有者为LiMiao
用户
第二个LiMiao
,表示这个文件的所在组为LiMiao
组
接着一串数字309
- 表示这个文件的大小为
309字节
,如果是使用ls -hl
指令查看的文件信息,会将大小换算为更高的单位 - 如果此时的文件类型是一个目录,会显示"4096" ,linux中一切皆文件,所以目录其实也是一个特殊的文件,所以4096也代表这个目录的大小)
接着的日期,表示这个文件的最后修改日期为May 9 15:16
最后,表示这个文件的名称for_unzip.sh
rwx权限的详解
在前的文件信息中,可以看到r
,w
的权限,实际上还有一个x
权限,表示可执行权限,但是rwx
这三个权限在不同的文件类型上,有着不一样的意义。
- 如果是描述一个普通文件
1、r
表示这个文件是可以读取,查看的
2、w
表示这个文件是可以进行修改,但是不一定表示这个文件可以删除,因为还需要考虑这个文件所在的目录权限是否有能够删除的权限
3、x
表示这个文件是可以执行的 - 如果描述的是一个目录
1、r
表示这个目录可以进行查看
2、w
表示这个文件可以进行增加,删除或重命名
3、x
表示可以进入这个目录
rwx
权限还可以使用数字来表示为:r=4,w=2,x=1
,所以rwx=4+2+1=7