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脚本编程大全》第三章相关推荐

  1. 第三章 UT单元测试——CPU与内存使用率限制

    系列文章目录 第一章 UT单元测试--GoogleTest通用构建说明 第二章 UT单元测试--GTest框架实例 第三章 UT单元测试--CPU与内存使用率限制 文章目录 系列文章目录 前言 一.环 ...

  2. 慕课软件质量保证与测试(第三章.单元测试)

    慕课金陵科技学院.软件质量保证与测试.第三章.黑盒测试.单元测试 0 目录 3 黑盒测试 3.9 单元测试 3.9.1课堂重点 3.9.2测试与作业 4 下一章 0 目录 3 黑盒测试 3.9 单元测 ...

  3. 《构建之法》前三章读后感

    通过第一章讲述的概论,理解到软件工程到底是什么,又为何要叫软件工程,他对我们的生活又有什么影响. 通过一些实例我也认识到客户需求分析的重要,就阿超那样的四则运算一样,渐渐的功能和需求就多了. 在第二章 ...

  4. 走向.NET架构设计—第三章—分层设计,初涉架构(后篇)

    走向.NET架构设计-第三章-分层设计,初涉架构(后篇) 前言:本篇主要是接着前两篇文章继续讲述! 本篇的议题如下: 4. 数据访问层设计 5. 显示层设计 6. UI层设计   4.  数据访问层设 ...

  5. 软考中项第三章 信息系统集成专业知识

    第三章 信息系统集成专业知识 信息系统的生命周期可以分为立项.开发.运维及消亡四个阶段 立项阶段:概念阶段或需求阶段,这一阶段根据用户业务发展和经营管理的需要,提出建设信息系统的初步构想,然后对企业信 ...

  6. 构建之法前三章读后感—软件工程

    本教材不同于其他教材一贯的理知识直接灌溉,而是以对话形式向我们传授知识的,以使我们更好地理解知识点,更加清晰明确. 第一章 第一章的概述中,书本以多种方式,形象生动地向我们阐述了软件工程的内容,也让我 ...

  7. 关于对《Spring Security3》翻译 (第一章 - 第三章)

    原文:http://lengyun3566.iteye.com/category/153689?page=2 翻译说明 最近阅读了<Spring Security3>一书,颇有收获(封面见 ...

  8. C++ API 设计 08 第三章 模式

    第三章 模式 前一章所讨论的品质是用来区分设计良好和糟糕的API.在接下来的几个章节将重点关注构建高品质的API的技术和原则.这个特殊的章节将涵盖一些有用的设计模式和C++ API设计的相关习惯用法. ...

  9. 敏捷整洁之道 -- 第三章 业务实践

    敏捷整洁之道 -- 第三章 业务实践 0. 引子 1. 计划游戏 1.1 三元分析 1.2 故事和点数 1.3 故事 1.4 故事估算 1.5 对迭代进行管理 1.6 速率 2. 小步发布 3. 验收 ...

  10. 第三章 信息系统集成专业技术知识

    第三章 信息系统集成专业技术知识 知识点 1.信息系统的生命周期有哪几个过程 2.信息系统开发的方法有几种:各种用于什么情况的项目. 3.软件需求的定义及分类: 4.软件设计的基本原则是什么: 5.软 ...

最新文章

  1. c语言实践 1/1+1/2+1/3+1/4+...+1/n
  2. windows 邮槽mailslot 在服务程序内建立后客户端无权限访问(GetLastError() == 5)的问题...
  3. c++模板类静态成员变量_一文讲透父子类中静态变量,成员变量初始化顺序原理...
  4. [每天一个知识点]14-Java语言-字符串拼接
  5. VB讲课笔记01:VB6.0安装与启动
  6. ZetCode Spring 教程
  7. 计算机组成原理中移码怎么算,计算机组成原理中移码是怎么回事?
  8. Win10设置防火墙,使局域网能访问此电脑的Tomcat服务
  9. ArcGIS 10.5 及 ArcGIS Server下载安装破解环境配置
  10. C语言程序设计(第三版)何钦铭著 习题5-7
  11. android xutils3 注解,xUtils3使用简介
  12. Servlet容器和IOC容器
  13. 什么是游戏引擎,什么是虚幻引擎(Unreal Engin 4)?
  14. IOS 控制器切换的动画样式
  15. bluetoothctl 工具的使用
  16. 计算机设备显示感叹号,设备管理器有感叹号和问号未知设备的解决方法
  17. Golang lua交互——gopher-lua中call函数使用
  18. 保姆级教程!将 Vim 打造一个 IDE (Python 篇)
  19. Express WEB 应用开发框架-姜威-专题视频课程
  20. 基于DNN的鼻咽癌鼻咽淋巴瘤数据处理

热门文章

  1. 最优化算法的简单基础介绍(主要侧重于二次规划(QP)的问题优化)
  2. 词云制作与词性统计——采用爬取的歌曲评论数据
  3. Object-C中的Category
  4. npm install 报错没有匹配版本:No matching version found for
  5. 《docker基础篇:8.Docker常规安装简介》包括:docker常规安装总体步骤、安装tomcat、安装mysql、安装redis
  6. linux ifcfg-eth0文件丢失,Linux备份ifcfg-eth0文件致使的网络故障问题
  7. Flutter第一部分(UI)第五篇:为Widget添加交互
  8. php psl标准,API 5L PSL1与PSL2标准的区别
  9. 回归生活:清理微信公众号
  10. ZQOJ 1123: 最佳校友