《Linux命令行与shell脚本编程大全》第三章
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行的文本。
《Linux命令行与shell脚本编程大全》第三章相关推荐
- 第三章 UT单元测试——CPU与内存使用率限制
系列文章目录 第一章 UT单元测试--GoogleTest通用构建说明 第二章 UT单元测试--GTest框架实例 第三章 UT单元测试--CPU与内存使用率限制 文章目录 系列文章目录 前言 一.环 ...
- 慕课软件质量保证与测试(第三章.单元测试)
慕课金陵科技学院.软件质量保证与测试.第三章.黑盒测试.单元测试 0 目录 3 黑盒测试 3.9 单元测试 3.9.1课堂重点 3.9.2测试与作业 4 下一章 0 目录 3 黑盒测试 3.9 单元测 ...
- 《构建之法》前三章读后感
通过第一章讲述的概论,理解到软件工程到底是什么,又为何要叫软件工程,他对我们的生活又有什么影响. 通过一些实例我也认识到客户需求分析的重要,就阿超那样的四则运算一样,渐渐的功能和需求就多了. 在第二章 ...
- 走向.NET架构设计—第三章—分层设计,初涉架构(后篇)
走向.NET架构设计-第三章-分层设计,初涉架构(后篇) 前言:本篇主要是接着前两篇文章继续讲述! 本篇的议题如下: 4. 数据访问层设计 5. 显示层设计 6. UI层设计 4. 数据访问层设 ...
- 软考中项第三章 信息系统集成专业知识
第三章 信息系统集成专业知识 信息系统的生命周期可以分为立项.开发.运维及消亡四个阶段 立项阶段:概念阶段或需求阶段,这一阶段根据用户业务发展和经营管理的需要,提出建设信息系统的初步构想,然后对企业信 ...
- 构建之法前三章读后感—软件工程
本教材不同于其他教材一贯的理知识直接灌溉,而是以对话形式向我们传授知识的,以使我们更好地理解知识点,更加清晰明确. 第一章 第一章的概述中,书本以多种方式,形象生动地向我们阐述了软件工程的内容,也让我 ...
- 关于对《Spring Security3》翻译 (第一章 - 第三章)
原文:http://lengyun3566.iteye.com/category/153689?page=2 翻译说明 最近阅读了<Spring Security3>一书,颇有收获(封面见 ...
- C++ API 设计 08 第三章 模式
第三章 模式 前一章所讨论的品质是用来区分设计良好和糟糕的API.在接下来的几个章节将重点关注构建高品质的API的技术和原则.这个特殊的章节将涵盖一些有用的设计模式和C++ API设计的相关习惯用法. ...
- 敏捷整洁之道 -- 第三章 业务实践
敏捷整洁之道 -- 第三章 业务实践 0. 引子 1. 计划游戏 1.1 三元分析 1.2 故事和点数 1.3 故事 1.4 故事估算 1.5 对迭代进行管理 1.6 速率 2. 小步发布 3. 验收 ...
- 第三章 信息系统集成专业技术知识
第三章 信息系统集成专业技术知识 知识点 1.信息系统的生命周期有哪几个过程 2.信息系统开发的方法有几种:各种用于什么情况的项目. 3.软件需求的定义及分类: 4.软件设计的基本原则是什么: 5.软 ...
最新文章
- c语言实践 1/1+1/2+1/3+1/4+...+1/n
- windows 邮槽mailslot 在服务程序内建立后客户端无权限访问(GetLastError() == 5)的问题...
- c++模板类静态成员变量_一文讲透父子类中静态变量,成员变量初始化顺序原理...
- [每天一个知识点]14-Java语言-字符串拼接
- VB讲课笔记01:VB6.0安装与启动
- ZetCode Spring 教程
- 计算机组成原理中移码怎么算,计算机组成原理中移码是怎么回事?
- Win10设置防火墙,使局域网能访问此电脑的Tomcat服务
- ArcGIS 10.5 及 ArcGIS Server下载安装破解环境配置
- C语言程序设计(第三版)何钦铭著 习题5-7
- android xutils3 注解,xUtils3使用简介
- Servlet容器和IOC容器
- 什么是游戏引擎,什么是虚幻引擎(Unreal Engin 4)?
- IOS 控制器切换的动画样式
- bluetoothctl 工具的使用
- 计算机设备显示感叹号,设备管理器有感叹号和问号未知设备的解决方法
- Golang lua交互——gopher-lua中call函数使用
- 保姆级教程!将 Vim 打造一个 IDE (Python 篇)
- Express WEB 应用开发框架-姜威-专题视频课程
- 基于DNN的鼻咽癌鼻咽淋巴瘤数据处理
热门文章
- 最优化算法的简单基础介绍(主要侧重于二次规划(QP)的问题优化)
- 词云制作与词性统计——采用爬取的歌曲评论数据
- Object-C中的Category
- npm install 报错没有匹配版本:No matching version found for
- 《docker基础篇:8.Docker常规安装简介》包括:docker常规安装总体步骤、安装tomcat、安装mysql、安装redis
- linux ifcfg-eth0文件丢失,Linux备份ifcfg-eth0文件致使的网络故障问题
- Flutter第一部分(UI)第五篇:为Widget添加交互
- php psl标准,API 5L PSL1与PSL2标准的区别
- 回归生活:清理微信公众号
- ZQOJ 1123: 最佳校友