第一章:初始Linux shell

简介: 第一章:初始Linux shell

初始Linux shell

1.1什么是Linux

liunx可以分为以下四部分:

1.Liunx内核

2.GNU工具

3.图形化桌面环境

4.应用软件

1.1.1深入探究Linux内核

内核主要负责以下四种功能:

1.系统内存管理

2.软件程序管理

3.硬件设备管理

4.文件系统管理

1.系统内存管理

  操作系统内核的主要功能之一就是内存管理。内核不仅仅管理服务器上的可用的物理内存,还可以创建和管理虚拟内存。
  内核通过硬盘上的存储空间来实现虚拟内存,这块区域成为交换空间。内核不断地在交换空间和实际物理内存之间反复交换虚拟内存中的内容。。这使得系统认为它拥有比物理内存更多的可用内存。
  内存存储单元按组划分成很多块,这些块称之为页面。内核将每个内存页面放在物理内存或交换空间。然后内核会维护一个内存页面表,指明哪些页面位于物理内存内,哪些页面被换到磁盘上。
  内核会记录哪些内存页面正在使用,并自动把一段时间为访问的内存页面复制到交换空间区域,称为换出--即使还有可用的内存。当程序要访问一个已被换出的内存页面时,内核必须从物理内存换出另外一个内存页面给它让出空间,然后从交换空间换入请求的内存页面。

2.软件程序管理

  Linux操作系统将正在运行中的程序称为进程。内核创建了第一个进程(称为init进程)来启动系统上所有其他进程。当内核启动时,它会将init进程加载到虚拟内存中。内核在启动其他进程时,都会在虚拟内存中给新进程分配一块专有的区域来存储该进程用到的数据和代码。

3.硬件设备管理

  内核的另一个职责是管理硬件设备。任何Linux系统需要与之通信的设备,都需要在内核代码中加入其驱动程序代码。驱动程序代码相当于应用程序和硬件设备之间的中间人,允许内核与设备之间交换数据。在Liunx内核中有两种方法用于插入设备驱动代码。
  1.编译进内核代码的设备驱动代码
  2.可插入内核的设备驱动模块
  Linux系统将硬件设备当成特殊文件,称为设备文件。设备文件分为3类:
  1.字符型设备文件
  2.块设备文件
  3.网络设备文件
  字符型设备文件是指处理数据是每次只能处理一个字符设备。块设备是指处理数据时每次能处理大块数据的设备。网络设备文件是指采用数据包发送和接收数据的设备。
  Linux为系统上的每个设备都创建一个称为节点的特俗文件。与设备的所有通信都通过设备节点完成。每个节点都有唯一的数值对供Linux内核标识它。数值对包括一个主设备号和一个次设备号。类似的设备被划分到同样的主设备号下。次设备用于标识主设备组下的某个特定设备。

4文件管理系统

不同于其他一些操作系统,Linux内核支持通过不同类型的文件系统从硬盘中读写数据。

GNU工具

除了由内核控制硬件设备外,操作系统还需要执行一些标准功能,比如控制文件和程序


1.核心的GUN工具

  GNU项目的主旨在于为Unix系统管理员设计出一套类似于Unix的环境。供Linux系统使用的这组核心工具被称为coreutils软件包。
GNU coreutils软件包由三部分构成:
1.用以处理文件的工具
2.用于操作文本的工具
3.用以管理进程的工具

2.shell

GNU/Linux shell 是一种特殊的交互式工具。它为用户提供启动程序,管理文件系统中的文件以及运行在Linux系统上的进程的途径。shell的核心是命令行提示符。在命令行提示符是shell负责交互的部分。它允许你输入文本命令,然后解释命令,并在内核中执行。‘
shell包含了一组内部命令,用这些命令可以完成复制文件等操作。shell也允许你在命令行提示符中输入程序的名称,它会将程序名传递给内核以启动它。
也可以将多个shell命令放入文件中作为程序执行。这些文件被称为shell脚本。你在命令行上执行的任何命令都可以放进一个shell脚本里面作为一组命令执行。这为创建那种需要把几个命令放在一起来工作的工具提供了便利。

Linux桌面环境


目录
相关文章
|
3天前
|
人工智能 监控 Shell
常用的 55 个 Linux Shell 脚本(包括基础案例、文件操作、实用工具、图形化、sed、gawk)
这篇文章提供了55个常用的Linux Shell脚本实例,涵盖基础案例、文件操作、实用工具、图形化界面及sed、gawk的使用。
14 2
|
23天前
|
Shell Linux 开发工具
linux shell 脚本调试技巧
【9月更文挑战第3天】在Linux中调试shell脚本可采用多种技巧:使用`-x`选项显示每行命令及变量扩展情况;通过`read`或`trap`设置断点;利用`echo`检查变量值,`set`显示所有变量;检查退出状态码 `$?` 进行错误处理;使用`bashdb`等调试工具实现更复杂调试功能。
|
1月前
|
JavaScript 关系型数据库 Shell
Linux shell编写技巧之随机取字符串(一)
本文介绍了Linux Shell脚本的编写技巧,包括环境配置、变量命名规则和缩进语法,并提供了一个实例练习,展示如何使用`$RANDOM`变量和`md5sum`命令来生成随机的8位字符串。
36 4
|
1月前
|
Ubuntu Linux Shell
在Linux中,如何使用shell脚本判断某个服务是否正在运行?
在Linux中,如何使用shell脚本判断某个服务是否正在运行?
|
1月前
|
Shell Linux 网络安全
在Linux中,如何利用Shell把10台主机的当前时间写到一个文件里边?
在Linux中,如何利用Shell把10台主机的当前时间写到一个文件里边?
|
1月前
|
Java Shell Linux
【Linux入门技巧】新员工必看:用Shell脚本轻松解析应用服务日志
关于如何使用Shell脚本来解析Linux系统中的应用服务日志,提供了脚本实现的详细步骤和技巧,以及一些Shell编程的技能扩展。
28 0
【Linux入门技巧】新员工必看:用Shell脚本轻松解析应用服务日志
|
1月前
|
监控 Shell Linux
在Linux中,如何使用shell脚本进行系统监控和报告?
在Linux中,如何使用shell脚本进行系统监控和报告?
|
1月前
|
Shell Linux
在Linux中,shell脚本中的条件语句和循环结构是什么?
在Linux中,shell脚本中的条件语句和循环结构是什么?
|
1月前
|
监控 Shell Linux
在Linux中,如何使用shell脚本检测磁盘使用率?
在Linux中,如何使用shell脚本检测磁盘使用率?
|
1月前
|
Shell Linux 开发工具
在Linux中,如何编写shell脚本将当前目录下大于10K的文件转移到/tmp目录下?
在Linux中,如何编写shell脚本将当前目录下大于10K的文件转移到/tmp目录下?