《Linux命令行与shell脚本编程大全》第三章
原创- 2023-12-21 15:20:00
- 1598
本篇目录
3.1 启动 shell
GNU bash shell能提供对Linux系统的交互式访问。它是作为普通程序运行的,通常是在用户登录终端时启动。登录时系统启动的shell依赖于用户账户的配置。
/etc/passwd文件包含了所有系统用户账户列表以及每个用户的基本配置信息
3.2 shell 提示符
默认bash shell提示符是美元符号($),这个符号表明shell在等待用户输入。
3.3 bash 手册
1.man命令用来访问存储在Linux系统上的手册页面。在想要查找的工具的名称前面输入man命令,就可以找到那个工具相应的手册条目
1.当使用man命令查看命令手册页的时候,这些手册页是由分页程序(pager)来显示的。可以通过点击空格键进行翻页,或是使用回车键逐行查看。读完了手册页,可以点击q键退出。
2.Linux手册页惯用的节名
Name:显示命令名和一段简短的描述
Synopsis:命令的语法
Confi guration:命令配置信息
Description:命令的一般性描述
Options :命令选项描述
Exit Status:命令的退出状态指示
Return Value:命令的返回值
Errors:命令的错误消息
Environment:描述所使用的环境变量
Files:命令用到的文件
Versions:命令的版本信息
Conforming To:命名所遵从的标准
Notes:其他有帮助的资料
Bugs:提供提交bug的途径
Example:展示命令的用法
Authors:命令开发人员的信息
Copyright:命令源代码的版权状况
See Also:与该命令类型的其他命令
如果不记得命令名怎么办?可以使用关键字搜索手册页。语法是:man -k 关键字。例如,要查找与终端相关的命令,可以输入man -k terminal。
3.Linux手册页的内容区域
区域号 |
所涵盖的内容 |
1 |
可执行程序或shell命令 |
2 |
系统调用 |
3 |
库调用 |
4 |
特殊文件 |
5 |
文件格式与约定 |
6 |
游戏 |
7 |
概览、约定及杂项 |
8 |
超级用户和系统和管理员命令 |
9 |
内核例程 |
3.4 浏览文件系统
当登录系统并获得shell命令提示符后,你通常位于自己的主目录中。一般情况下,你会想去
逛逛主目录之外的其他地方。本节将告诉你如何使用shell命令来实现这个目标。在开始前,先了
解一下Linux文件系统,为下一步作铺垫。
3.4.1 Linux 文件系统
1.Linux系统和Microsoft Windows操作系统的不同
Linux在路径名中不使用驱动器盘符。在Windows中,PC上安装的物理驱动器决定了文件的路径名。Windows会为每个物理磁盘驱动器分配一个盘符,每个驱动器都会有自己的目录结构,以便访问存储其中的文件。Linux将文件存储在单个目录结构中,这个目录被称为虚拟目录(virtual directory)。虚拟目录将安装在PC上的所有存储设备的文件路径纳入单个目录结构中。
2.常见Linux目录名称
目录 |
用途 |
/ |
虚拟目录的根目录。通常不会在这里存储文件 |
/bin |
二进制目录,存放许多用户级的GNU工具 |
/boot |
启动目录,存放启动文件 |
/dev |
设备目录,Linux在这里创建设备节点 |
/etc |
系统配置文件目录 |
/home |
主目录,Linux在这里创建用户目录 |
/lib |
库目录,存放系统和应用程序的库文件 |
/media |
媒体目录,可移动媒体设备的常用挂载点 |
/mnt |
挂载目录,另一个可移动媒体设备的常用挂载点 |
/opt |
可选目录,常用于存放第三方软件包和数据文件 |
/proc |
进程目录,存放现有硬件及当前进程的相关信息 |
/root |
root用户的主目录 |
/sbin |
系统二进制目录,存放许多GNU管理员级工具 |
/run |
运行目录,存放系统运作时的运行时数据 |
/srv |
服务目录,存放本地服务的相关文件 |
/sys |
系统目录,存放系统硬件信息的相关文件 |
/tmp |
临时目录,可以在该目录中创建和删除临时工作文件 |
/usr |
用户二进制目录,大量用户级的GNU工具和数据文件都存储在这里 |
var |
可变目录,用以存放经常变化的文件,比如日志文件 |
3.4.2 遍历目录
1.可以使用切换目录命令cd将shell会话切换到另一个目录。
2.绝对文件路径
绝对文件路径总是以正斜线(/)作为起始,指明虚拟文件系统的根目录。
如果要指向usr目录所包含的bin目录下的用户二进制文件,可以使用如下绝对文件路径:/usr/bin
使用绝对文件路径可以清晰表明用户想切换到的确切位置。要用绝对文件路径来切换到文件系统中的某个特定位置,只需在cd命令后指定全路径名:
pwd命令可以显示出shell会话的当前目录,这个目录被称为当前工作目录
3.相对文件路径
相对文件路径允许用户指定一个基于当前位置的目标文件路径。相对文件路径不以代表根目录的正斜线(/)开头,而是以目录名(如果用户准备切换到当前工作目录下的一个目录)或是 一个特殊字符开始。
有两个特殊字符可用于相对文件路径中:
1. 单点符(.),表示当前目录;
2. 双点符(..),表示当前目录的父目录
3.5 文件和目录列表
3.5.1 基本功能列表
1.ls命令最基本的形式会显示当前目录下的文件和目录:
注意,ls命令输出的列表是按字母排序的(按列排序而不是按行排序)。
2.可用带-F参数的ls命令轻松区分文件和目录。使用-F参数可以得到如下输出:
-F参数在目录名后加了正斜线(/),以方便用户在输出中分辨它们
3.要把隐藏文件和普通文件及目录一起显示出来,就得用到-a参数
4.-R参数是ls命令可用的另一个参数,叫作递归选项。它列出了当前目录下包含的子目录中的文件。如果目录很多,这个输出就会很长。可以合并为:ls –FR
3.5.2显示长列表
常用的参数是-l。-l参数会产生长列表格式的输出,包含了目录中每个文件的更多相关信息。
这种长列表格式的输出在每一行中列出了单个文件或目录。
1.文件类型,比如目录(d)、文件(-)、字符型文件(c)或块设备(b);
2.文件的权限(参见第6章);
3.文件的硬链接总数;
4.文件属主的用户名;
5.文件属组的组名;
6.文件的大小(以字节为单位);
7.文件的上次修改时间;
8.文件名或目录名。
3.5.3 过滤输出列表
进行简单文本匹配的字符串
当用户指定特定文件的名称作为过滤器时,ls命令只会显示该文件的信息。ls命令能够识别标准通配符,并在过滤器中用它们进行模式匹配:
1.问号(?)代表一个字符;
2.星号(*)代表零个或多个字符。
3.6 处理文件
3.6.1 创建文件
可用touch命令轻松创建空文件, 并将你的用户名作为文件的属主, 文件的大小是零。
3.6.2 复制文件
1.cp命令需要两个参数--源对象和目标对象。
2.cp命令将源文件复制成一个新文件。
3.cp命令的-R参数威力强大。可以用它在一条命令中递归的复制整个目录的内容。
3.6.3 制表键自动补全
在使用命令行时,很容易输错命令、目录名或文件名。实际上,对长目录名或文件名来说, 输错的几率还是蛮高的。 这正是制表键自动补全挺身而出的时候。制表键自动补全允许你在输入文件名或目录名时按 一下制表键,让shell帮忙将内容补充完整
3.6.4 制表键自动补全
链接文件是Linux文件系统的一个优势。如需要在系统上维护同一文件的两份或多份副本, 除了保存多份单独的物理文件副本之外,还可以采用保存一份物理文件副本和多个虚拟副本的方 法。这种虚拟的副本就称为链接。链接是目录中指向文件真实位置的占位符。
在Linux中有两种 不同类型的文件链接:
1. 符号链接: 就是一个实实在在的文件,它指向存放在虚拟目录结构中某个地方的另一个文件。
2. 硬链接: 接会创建独立的虚拟文件,其中包含了原始文件的信息及位置。但是它们从根本上而言 是同一个文件。
说明: 接会创建独立的虚拟文件,其中包含了原始文件的信息及位置。但是它们从根本上而言 是同一个文件。
3.6.5 重命名文件
mv命令可以将文件和目录移动到另一个位置 或重新命名。
可以在mv命令中使用-i参数。这样在命令试图覆盖已有的文件时,你 就会得到提示。
3.6.6 删除文件
删除文件的命令是rm。
-i命令参数提示你是不是要真的删除该文件 。
如果要删除很多文件且不受提示符的打扰,可以用-f参数强制删除。
3.7 处理目录
3.7.1 创建目录
用mkdir命令创建目录。
mkdir命令的-p参数可以根据需要创建缺失的父目录。
3.7.2 删除目录
删除目录的基本命令是rmdir。
对rm命令而言,-r参数和-R参数的效果是一样的。-R参数同样可以递归地删除目录中的文件。
一口气删除目录及其所有内容的终极大法就是使用带有-r参数和-f参数的rm命令。
3.8 查看文件内容
3.8.1 查看文件类型
file命令是一个随手可得的便捷工具。它能够探测文件的内部,并决定文件是什么类型的。
3.8.2 查看整个文件
1.cat命令
cat命令是显示文本文件中所有数据的得力工具。
-n参数会给所有的行加上行号。
-T参数会用^I字符组合去替换文中的所有制表符。
2.more命令
cat命令的主要缺陷是:一旦运行,你就无法控制后面的操作。
more命令会显示文本文件的内容,但会在显示每页数据之后停下来。
3.less命令
less命令的操作和more命令基本一样,一次显示一屏的文件文本。
其中一组特性就是less命令能够识别上下键以及上下翻页键(假设你的终端配置正确)。在 查看文件内容时,这给了你全面的控制权。
3.8.3 查看部分文件
1. tail命令
tail命令会显示文件最后几行的内容(文件的“尾部”)。默认情况下,它会显示文件的末 尾10行。
2. head命令
会显示文件开头那些行的内容。默认情况下,它会显示文件前10行的文本。