Linux系统的组成

  1. Linux内核
  2. shell
  3. 文件系统
  4. 第三方应用

    1.1shell的基本知识

    shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口

shell可以执行:

  • 内部命令
  • 应用程序
  • shell脚本

v2-4fcde8239ff2880bfb031a06d9fe1252_720w.jpg
使用type命令可以区分内部命令和外部命令
于是乎,我们利用shell就可以干下面这些事了

  • 命令行解释
  • 命令的多种执行顺序
  • 命令补全、别名机制、命令历史
  • I/O重定向
  • 管道
  • 命令替换
  • shell编程

Shell主要版本有以下这么多:

  • 我们常用(默认)的就是bash(bourne again shell)

v2-cd92e075aa7969547ea21350c884f1e6_720w.jpg
使用ps命令观察正在运行的shell


1.2文件系统

v2-1f6cdbc3e0765ae8484624eaa2a08ab9_720w.jpg
Linux文件系统是一个目录树的结构,文件系统结构从一个根目录开始,根目录下可以有任意多个文件和子目录,子目录中可以有多个文件和子目录。

  • bin存放二进制可执行文件(ls,cat,mkdir等)
  • boot存放用于系统引导时使用的各种文件
  • dev用于存放设备文件
  • etc用于存放系统配置文件
  • home用于存放所有用户文件的根目录
  • lib存放跟文件系统中的程序运行所需的共享库及内核模块
  • opt额外安装的可选应用程序包所放置的位置
  • proc虚拟文件系统,存放当前内存的映射
  • root超级用户目录
  • sbin存放二进制可执行文件,只有root才能访问
  • tmp用于存放各种临时文件
  • usr用于存放系统应用程序,比较重要的目录/usr/local本地管理员软件安装目录
  • var用于存放运行时需要改变数据的文件

    1.3命令的基本格式

    cmd [options] [arguments]
    选项和参数都作为Shell命令执行时的输入,它们之间用空格分隔开

  • Linux是区分大小写的

一般来说,后面跟的选项如果单字符选项前使用一个减号-。单词选项前使用两个减号—

  • 这是一般的情况,有些命令还是不归属这种规律的(相对较少)~~~
  • 例子:ls -a和ls -all,a 单个字符使用一个-,一个单词all 使用两个—

在Linux中,可执行的文件也进行了分类:

  • 内置命令:出于效率的考虑,将一些常用命令的解释程序构造在Shell内部
  • 外置命令:存放在/bin、/sbin目录下的命令
  • 实用程序:存放在/usr/bin、/usr/sbin、/usr/share、/usr/local/bin等目录下的实用程序
  • 用户程序:用户程序经过编译生成可执行文件后,可作为Shell命令运行
  • Shell脚本:由Shell语言编写的批处理文件,可作为Shell命令运行

    1.4通配符

    学过一些正则表达式的或者有点基础的同学对通配符应该就不陌生的了,在Linux也有通配符(在搜索的时候挺有用的)

  • *:匹配任何字符和任何数目的字符

  • ?:匹配单一数目的任何字符
  • :匹配[ ]之内的任意一个字符
  • [! ]:匹配除了[! ]之外的任意一个字符,!表示非的意思

    1.5文件的类型

    在Linux下文件的类型有这么多:

  • 普通文件-

  • 目录d
  • 符号链接l
    • 硬链接: 与普通文件没什么不同,inode 都指向同一个文件在硬盘中的区块
    • 软链接: 保存了其代表的文件的绝对路径,是另外一种文件,在硬盘上有独立的区块,访问时替换自身路径(简单地理解为 Windows 中常见的快捷方式)。
  • 字符设备文件 c
  • 块设备文件b
  • 套接字s
  • 命名管道p

我们常见的就是普通文件,目录和符号链接。其他的了解一下即可~

常用命令