Linux命令行与shell脚本编程大全(二)
2021/12/2 7:10:17
本文主要是介绍Linux命令行与shell脚本编程大全(二),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
第三章、基本的bash shell命令
3.1 启动shell
GNU bash shell能提供对Linux系统的交互式访问。它是作为普通程序运行的,通常是在用户登陆终端时启动。登录时系统启动的shell依赖于用户账户的配置。
/etc/passwd文件包含了所有系统用户账户列表以及每个用户的基本配置信息。
3.2 shell提示符
默认bash shell提示符是美元符号($)。
3.3 bash 手册
大多数Linux发行版自带用以查找shell命令及其他GNU工具信息的在线手册。
man命令用来访问存储在Linux系统上的手册页面。在想要查找的工具名称前面输入man命令,就可以找到那个工具相应的手册条目。
3.4 浏览文件系统
3.4.1 Linux文件系统
Linux在路径名中不使用驱动器盘符。在Windows中,PC上安装的物理驱动器决定了文件的路径名。Windows会为每个物理磁盘驱动器分配一个盘符,每个驱动器都会有自己的目录结构,以便访问存储中的文件。
Linux采用了一种不同的方式。Linux将文件存储在单个目录结构中,这个目录被称为虚拟目录。虚拟目录将安装在PC上的所有存储设备的文件路径纳入单个目录结构中。
Linux虚拟目录结构只包含一个称为根(root)目录的基础目录。
3.5 文件和目录列表
要想知道系统中有哪些文件,可以使用列命令(ls)。本节将描述ls命令和可用来格式化其他输出信息的选项。
3.5.1 基本列表功能
ls命令最基本的形式会显示当前目录下的文件和目录:
注意:ls命令输出的列表是按字母排序的。如果用户用的是支持彩色的终端仿真器,ls命令还可以用不同的颜色区分不同类型的文件。LS_COLORS环境变量控制着这个功能。
-F参数在目录后面加了正斜杠(/),以方便用户在输出中分辨它们。类似地它会在可执行文件的后面加个星号,以便用户找出可在系统上运行的文件。
要把隐藏的文件和普通文件及目录显示出来,就得用到-a参数。
-R参数是ls命令可用的另一个参数,叫做递归选项。它列出了当前目录下包含的子目录中的文件。
窍门:选项不一仅可以像例子中那样分开输入,它们可以进行如下合并:ls -FR。
3.5.2 显示行列表
在基本的输出例表中,要附加信息,常用的参数 -l。-l参数会产生长列表格式的输出,包含了目录中每个文件的更多相关信息。
每一行包含文件或目录的下述信息:
- 文件类型,比如目录(d)、文件(-)、字符型文件(c)、或块设备(b);
- 文件的权限;
- 文件的硬链接总数;
- 文件属主的用户名;
- 文件属组的组名;
- 文件的大小(以字节为单位);
- 文件的上次修改时间;
- 文件名或目录名。
3.5.3 过滤输出列表
ls命令支持在命令行中定义过滤器。过滤器就是通过一个简单文本匹配的字符串。可以在要用到的命令行参数之后添加这个过滤器:
当用户指定特定文件的名称作为过滤器时,ls命令只会显示文件信息。ls命令能够识别的标准通配符,并在过滤器中用到它们进行模式匹配:
- 问号(?)代表一个字符;
- 星号(*)代表零个或多个字符
在过滤器中使用星号和问号被称为文件扩展匹配(file globbing),指的是使用通配符进行模式匹配的过程。通配符正式的名称叫做元字符通配符(metacharacter wildcards)。除了星号和问号之外,还有更多的元字符通配符可用于文件扩展匹配。可以使用中括号。
3.6 处理文件
3.6.1 创建文件
使用touch命令,可创建空文件
ls -l命令,并不会显示访问时间。因为默认显示的是修改时间。要想查看文件的访问时间,需要加入另一个参数:--time=atime.
3.6.2 复制文件
cp命令。最基本的用法里,cp命令需要两个参数——源对象和目标对象:
cp source destination
当source和destination参数都是文件名时,cp命令将源文件复制成一个新文件,并且以destination命名。新文件就像全新的文件一样,有新的修改时间。
如果目标文件已存在,cp命令不会提醒。最好是加上-i选项,强制shell询问是否需要覆盖文件。
新文件出现在目录documents中,和源文件相同。
单点符(.)表示当前目录。单点符能够简化任务。
cp命令的-R参数威力强大。可以用它在一条命令中递归地复制整个目录的内容。
也可以在cp命令中使用通配符。
3.6.3 制表键自动补全
在使用命令行时,很容易输错命令、目录名称或文件名。实际上,对长目录名或文件名来说,出错率很高,制表键自动补全允许你在输入文件名或目录名时按一下制表键,让shell帮忙将内容补充完整。
3.6.4 链接文件
链接文件时Linux文件系统的一个优势。在系统上维护同一文件的备份,除了保存多份单独的物理文件副本之外,还可以采用保存一份物理文件和多个虚拟副本的方法。这种虚拟的副本就叫做链接。链接是目录中指向文件真实位置的占位符。在Linux中有两种不同类型的文件链接:
- 符号链接
- 硬链接
符号链接就是实实在在的文件,它指向放在虚拟目录结构中某个地方的另一个文件。两个通过符号链接在一起的文件,彼此的内容并不相同。
要为一个文件创建符号链接,原始文件就必须事先存在。然后可以使用ln命令以及-s选项来创建符号链接。
注意符号链接的名字sl_data_file位于ln命令中的第二个参数位置上。显示在长列表中符号文件名后的->符号表明该文件是链接到文件data_file上的一个符号链接。
另外还要注意的是,符号链接的文件大小与数据文件的文件大小不同。它们的内容并不相同,是两个完全不同的文件。
另一种方法,查看文件的inode编号。文件或目录中的inode编号是一个用于标识的唯一数字,这个数字由内核分配给文件系统中的每一个对象。
硬链接会创建独立的虚拟文件,其中包含了原始文件的信息信息和位置。但是它们从根本上是同一个文件。
3.6.5 重命名文件
在Linux中,重命名文件称为移动(moving)。mv命令可以将文件和目录移动到另一个位置或重新命名。
注意:移动文件将会将文件fall重命名,但inode编号和时间戳保持不变。这是因为mv只影响文件名。也可使mv来移动文件的位置。
3.6.6 删除文件
在Linux中,删除(deleting)叫作移除(removing)。bash shell中删除文件的命令是rm。rm命令的基本格式非常简单。
注意:-i命令参数提示你是不是要真的删除该文件。bash shell中没有回收站或垃圾箱,文件一旦删除,就无法找回。因此,在使用rm命令时,要养成加入-i参数的好习惯。
也可使用通配符删除成组的文件。
rm命令的另一个特性:如果删除文件时不受提示符的打扰,可以用-f参数强制删除。
3.7 处理目录
3.7.1 创建目录
在Linux中创建目录很简单,用mkdir命令即可:
可以根据需求批量地创建目录和子目录。想要同时创建多个目录和子目录,需要加入-p参数:
3.7.2 删除目录
删除目录的基本命令是rmdir
默认情况下,rmdir命令只删除空目录。因为我们在New_Dir目录下创建一个名为my_file,所以rmdir命令拒绝删除目录。
一般需要删除目录中的内容,在空目录上使用rmdir命令。
使用-r选项使得命令可以向下进入目录,删除其中的文件,然后删除目录本身。
rm -rf命令既没有警告信息,也没有声音提示。这肯定是一个危险的工具,尤其是在拥有超级用户权限的时候。务必谨慎使用,请检查你所要进行的操作是否符合预期。
3.8 查看文件内容
3.8.1 查看文件类型
在显示文件内容之前,应该先了解一下文件类型。file命令可以查看文件类型。
file命令可以作为区分目录、链接文件、脚本文件、二进制程序
3.8.2 查看整个文件
1.cat命令
参数:
-A, --show-all
equivalent to -vET
-b, --number-nonblank
number nonempty output lines
-e, equivalent to -vE
-E, --show-ends
display $ at end of each line
-n, --number
number all output lines
-s, --squeeze-blank
suppress repeated empty output lines
-t equivalent to -vT
-T , --show-tabs
display TAB characters as ^I
-u (ignore)
-v, --show-nonprinting
use ^ and M- notation,except for LFD and TAB
--help display this help an exit
--version
output version information and exit
2.more命令
more命令会显示文本文件内容,但会在显示每页数据之后停下来。
3.less命令
less 是 more 命令的升级版。
3.83 查看部分文件
1.tail命令
tail命令会显示文件最后几行的内容。默认情况下,它会显示文件的末尾10行。
-n 参数, 允许tail命令加入-n参数来修改所显示的行数
-f 参数, tail命令会保持活动状态,并不断显示添加到文件中的内容
2.head命令
会显示文件开头那些行的内容。默认情况下,它会显示文件前10行的文本
-n 参数, 允许head命令加入-n参数来修改所显示的行数
这篇关于Linux命令行与shell脚本编程大全(二)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-12如何创建可引导的 ESXi USB 安装介质 (macOS, Linux, Windows)
- 2024-11-08linux的 vi编辑器中搜索关键字有哪些常用的命令和技巧?-icode9专业技术文章分享
- 2024-11-08在 Linux 的 vi 或 vim 编辑器中什么命令可以直接跳到文件的结尾?-icode9专业技术文章分享
- 2024-10-22原生鸿蒙操作系统HarmonyOS NEXT(HarmonyOS 5)正式发布
- 2024-10-18操作系统入门教程:新手必看的基本操作指南
- 2024-10-18初学者必看:操作系统入门全攻略
- 2024-10-17操作系统入门教程:轻松掌握操作系统基础知识
- 2024-09-11Linux部署Scrapy学习:入门级指南
- 2024-09-11Linux部署Scrapy:入门级指南
- 2024-08-21【Linux】分区向左扩容的方法