目录

一、什么是Linux

1.1、深入Linux

1.1.1、Linux内核的主要功能

1.2、GNU工具链

1.2.1、GNU概述

1.2.2、GNU工具链

1.2.3、Linux桌面环境

1.3、Linux发行版

1.3.1、核心Linux发行版

1.3.2、专业Linux发行版

1.3.3、Linux LiveCD

二、Linunx常用命令

2.1、Linux Centos重启命令

2.2、Linux Centos关机命令

2.3、获取root用户的权限

2.4、shutdown参数说明

2.5、halt参数说明

2.6、reboot

2.7、init

2.8、补充


一、什么是Linux

Linux主要由四部分组成:

  1. Linux内核 。
  2. GNU工具组件。
  3. 图形化桌面环境。
  4. 应用软件。

1.1、深入Linux

  • Linux系统的核心是内核。
  • 内核控制计算机上的所有软硬件:必要时分配硬件、需要时执行软件。
  • Linux研发者:Linus Torvalds

1.1.1、Linux内核的主要功能

  • 系统内存管理
  1. 内核不仅管理服务器上的可用物理内存,还可以创建和管理虚拟内存(即并不是实际存在的内存)。
  2. 内核通过硬盘上的存储空间来实现虚拟内存,这块区域成为交换空间(swap space)。
  3. 内核不断的在交换空间和实际的物理内存之间反复交换虚拟内存存储单元中的内容。这使得系统以为它拥有比物理内存更多的可用内存。
  4. 内存存储单元会被按组分成很多快,这些块称为页面(page)。内核会将每个内存页面放在物理内存或交换空间。而后,内核会维护一个内存页面表,来指明那些页面位于物理内存中,那些页面被交换到了磁盘上。
  5. 内核记录正在使用中的内存页面,并自动把一段时间未访问的内存页面复制到交换区域(称为换出,swapping out)。即使还有可用内存。当程序要访问一个已被换出的内存页面时,内核必须从物理内存换出另外一个内存页面来给它让出空间,然后从交换空间换入(swapping in)请求的内存页面。这个过程十分费时。并使得运行的进程变慢,只要Linux系统在运行,为运行中的程序换出内存页面的过程就不会停歇。

  • 软件程序管理
  1. linux系统中称运行的程序成为进程;内核控制Linux系统如何管理运行在Linux系统中所有的进程。
  2. 内核创建的第一个进程叫init进程。当内核启动时,他会将init进程加载到虚拟内存中。内核在启动任何其他进程时都会在虚拟机内存中给新进程分配一块专有区域来存储该进程用的数据和代码。
  3. 一些Linux发行版使用一个表管理在系统开机时要自动启动的进程。在Linux系统上,这个表位于/etc/inittab/中。
  4. ubuntu linux采用etc/init.d目录,将开机时启动、停止某个应用的脚本放在这个目录下,这些脚本通过/etc/rcX.d目录下的入口启动,这里X代表运行级(run level).
  5. linux操作系统的init系统采用了运行级。运行级决定了init进程运行/etc/inittab文件或/etc/rcX.d目录中定义号的某些特定进程。Linux操作系统有5个启动运行级。
  6. 运行1级,只有基本的系统进程会启动,同时会启动唯一一个控制台终端进程。称为单用户模式。单用户模式常用来在系统有问题进行紧急文件系统维护。此种模式仅有一个人(系统管理员)可以登录系统操作数据。
  7. 标准运行级是3级。这个运行级上大多数应用软件,都会启动。
  8. 运行级5级。这个运行级上系统会启动图形化的X windos系统,同时允许用户通过图形化桌面窗口登录系统。
  9. 指令:$ ps ax

  1. 第一列:process ID即PID  进程号  第一个为init进程  Linux系统分配给它的PID值是1
  2. 第三列:显示了进程的当前状态(s代表在睡眠,sw代表在睡眠和等待,R代表在运行)。
  3. 最后一列:进程的名字显示在最后一列。方括号中的进程是由于不活动而被从内存中换出到磁盘交换空间的进程。有些进程被换出,大部分运行中的进程未被换出。
  • 硬件设备管理
  1. 内核的另一职责是管理硬件设备。
  2. 任何Linux系统需要与设备通信,都需要在内核代码中加入其驱动程序代码(driver code).驱动程序代码相当于应用程序和硬件设备的中间人,允许内核设备之间交换数据。
  3. Linux内核中的两种插入设备驱动代码的方法:1、编译进入内核的设备驱动代码。2、可插入内核的设备驱动模块。
  4. 内核模块:允许将驱动代码插入到允许的内核而无需重新编译内核。同时,当设备不再使用时也可以将内核模块从内核中移走。此种方式极大地简化和推动了硬件在linux上的使用。
  5. Linux系统将硬件设备当成特殊的文件,称为设备文件,设备文件有3种不同的分类:字符型设备文件、块设备文件、网络设备文件。
  6. 字符型设备文件是指处理数据时每次只能处理一个字符的设备。大多数类型的调制解调器和终端都是作为字符型设备文件创建的。块设备文件是指处理数据时每次能处理大块数据的设备,如键盘。
  7. 网络设备文件:指采用数据包发送和接收数据的设备,包括各种网卡和一个特殊的回环设备。这个回环设备允许Linux系统使用通用的网络编程协议同自己通信。
  8. linux系统上的每个设备都创建一中特殊的文件,称为节点。与设备的所用通信都是通过设备节点完成的,每个节点都有一个唯一的数值对,供Linux内核标识它。数值对包括一个主设备和一个次设备号。类似的设备被划分到同样的主设备号下,次设备号用于标识同一主设备号下的某个特殊设备。
  • 文件系统管理

linux文件系统

任何提linux服务器访问的硬盘都必须格式化称上述所列文件类型的一种,linux内核采用虚拟文件系统(virtual File system,VFS)作为和每个文件系统交互的接口。这为linux内核同任何类型文件系统通信提供了一个标准接口。当每个文件系统被挂载和使用时,VFS将信息都缓存在内存中。

1.2、GNU工具链

1.2.1、GNU概述

  1. 除了内核控制硬件设备外,操作系统还需要工具链来执行一些标准功能,比如控制文件和程序。当Linus创建系统内核时,还没有系统工具链运行其上。
  2. GNU组织(GNU代表GNU`s not Unix)开发了一套完整的Unix工具链,但没有内核系统,这些工具链是在开源软件(Open source Software,OSS)的软件开发理念下开发的。
  3. 开源软件理念允许程序员开发软件并将其免费发布。任何人都可以使用,修改该软件,或将该软件集成进自己的系统,而无需支付任何授权费用。将Liunx内核和GNU操作系统工具整合起来。就可以创造一个完整的、功能纷丰富的免费操作系统。
  4. Linux内核和GNU工具链的结合合体称为Linux。
  5. 一些Linux纯粹主义者将其称为GNU/Linux系统来表彰GNU组织为此所作的贡献。

1.2.2、GNU工具链

  • GNU项目一开始是主要是为Unix系统管理员设计的,用以提供一个类Unix环境。为Linux提供的一组核心工具被称为coreutils(core utilities)软件包。
  • GNU coreutis软件包的3个构成部分:1、用以处理文件的工具。2、用以操作文本的工具。3、用以管理进程的工具。
  • shell:GNU/Linux shell 是个交换工具。它为用户提供了启动程序、管理文件系统上的文件以及管理运行在Linux系统上的进程途径。
  • shell核心是命令提示符。命令提示符是shell的交互部分。允许输入文本命令,之后将解释命令并在内核中执行。
  • shell包含了一组内置命令,可以用这些命令完成一些操作,如复制文件、移动文件、重命名文件以及显示和终止系统上正在运行的程序。
  • 在linux系统上有多种Linux shell可用,不同的shell特性不同。有些便于创建脚本,有些便于管理进程,所有Linux发行版默认的shell基本上都是bash shell,bash shell作为标准Unix shell -----Bounme shell(创用者名称命名)的代替,有GNU项目开发。
  • 常见的shell

1.2.3、Linux桌面环境

1、x windo系统桌面

  • 视屏环境:显卡和显示器。在电脑上显示绚丽的画面,通过X window软件(X window是图形显示的核心元素)。
  • X-window 是UNIX中功能强大的图形bai用户du接口(GUI),是基于客户-服务器zhi的一种应用技术. 表现为dao应用可运行1653在一个功能强大,易与维护的服务器上,而屏幕的输出则显示在另一个工作站上. X-window 技术包括两个成员: X-server 和 Window Manager. X-server 控制图像和窗口的显示, 跟踪鼠标和键盘的操作.一个X-server可控制多个窗口.Window Manager 则用于显示窗口的菜单和边界,提供窗口的移动,转换,最大,最小化操作。
  • Linux中只有两个软件包能实现X window:1、XFree86 。2、X.org

2、KDE桌面(K Desktop Environment ,K桌面环境)

  • 最初与1996年作为开源项目发布。它会生成一个类似与Microsoft windows的图形化桌面。
  • 桌面底部的横条称为面板,由四个部分构成:KDE菜单、程序快捷方式、任务拦、小应用程序。

3、GNOME桌面

  • GNOME(The GNU Network Object model Environment,GNU网络对象模型环境)
  • 是一个流行Linux桌面环境,GNOME于1999年首次发布,成为许多Linux发行版的默认桌面环境。
  • GNOME不沿用Microsoft Windows的标准外观,但它还是集成了许多Windows用户的功能
  • 一块放置图标的桌面区域,两个面板区域,拖放功能。

1.3、Linux发行版

不同的Linux发行版通常归类为三种

  • 完整的核心Linux发行版。
  • 专业发行版。
  • LiveCD测试发行版。

1.3.1、核心Linux发行版

核心Linux发行版含有内核,一个或多个图形化桌面环境以及预编译好的几乎所有能见到的Linux应用,它提供了一站式的完整Linux安装。

1.3.2、专业Linux发行版

Linux发行版的一个子群,基于某个主流发行版,但仅包括主流发行版中一小部分用于某种特定用途的程序。

除了提供专业软件外(如仅为商业用户提供的办公应用),专业发行版还尝试通过自动检测和自动配置来帮助新手安装Linux。这让安装Linux变得更容易。

1.3.3、Linux LiveCD

  • 可以引导启动的Linux,LinuxLiveCD。
  • 不弄乱PC而体验各种Linux发行版的绝妙LinuxLiveCD。只需要插入CD就能引导。所有的Linux软件都将直接从CD上运行,有很多LinuxLiveCD可从互联网上下载、刻录到CD上体验。

二、Linunx常用命令

2.1、Linux Centos重启命令

  • 重启:reboot
  • 立即重启:shutdown -r now (root用户使用)。
  • 十分钟后重启:shutdown -r 10(root 用户使用)。
  • 在10:21时重启:shutdown -r 10:21(root用户使用)。
  • shutdown设置的命令可以通过shutdown -c取消。

2.2、Linux Centos关机命令

  • halt 立刻关机。
  • poweroff立刻关机。
  • shutdown -h now 立刻关机。
  • shutdown -h10 10分钟后关机。
  • shutdown命令可用shutdown -c指令取消。

2.3、获取root用户的权限

  • 进入root用户:sudo su -
  • 进入root用户:su root
  • 使用sudo命令借用root权限:sudo  要执行的代码

  • shutdown命令安全地将系统关机。Liunx直接断电关闭可能会造成数据丢失,使系统处于不稳定状态 ,使用shutdown指令关机,系统管理员会通知所有登录的用户系统将要关闭。并且login指令将会被冻结,即新的用户不能再登录。
  • 直接关机、延迟一定的时间关闭、重启,所有进程【process】 都会收到系统所送到的信号【signal】决定的。这让像vi之类的程先生有时间存储目前正在编辑的文档。
  • shutdown执行的工作是送信号signal给init程序,要求它改变runlevel;
  • Runlevel 0被用来停机[halt],runlevel 6是用来重新激活[reboot]系统,而runlevel 1 则是被用来让系统进入管理工作可以进行的状态,这是预设的,假定没有 -h 也没有 -r 参数给 shutdown。想要了解在停机[halt]或者重新开机【reboot】过程那些动作。详见:/etc/inittab文件中的runlevels;

2.4、shutdown参数说明

  • -t :在改变到其他runlevel之前,高速init多久以后关机。【shutdown -t】
  • -r:重启计算器。【shutdown -r】
  • -k:并不是真正的关机,只是发送警告信息给每位登录者(login)。【shutdown -k】
  • -h:关机后关闭电源(halt)。【shutdown -h】
  • -n:不用init而是自己来关机,不建议使用这个选项,而且该选项产生的后果存在不可预期性。【shutdown -n】
  • -c: cancel curret process取消目前正在执行的关机程序。【shutdown -c】
  • -f:在重启计算器【rebboot】时忽略fsck【shutdown -f】
  • -F:在重启计算器reboot时强迫fsck。【shutdown -F】
  • -time:设定关机shutdown前的时间。【shutdown -time】

2.5、halt参数说明

halt调用shutdown-h。half执行时,终止应用进程,执行sync系统调用,文件系统写操作完成后停止内核。

  • -h:防止sync系统调用,它用在fsck修补根分区之后,以阻止内核用老版本的超级块[superblock]覆盖修补过的超级块。【halt -h】
  • -w:并不是真正的重启或关机,只是写wtmp【var/log/wtmp】记录。【halt -w】
  • -d:不写wtmp记录【以包含在选项-n中】。【halt -d】
  • -f:没有调用shutdown而强制关机或重启。【halt -f】
  • -i:关机或重启前,关掉所有的网络接口。【halt -i】
  • -p:该选项为缺省选项,就是关机时调用poweroff。【halt -p】

2.6、reboot

reboot的工作过程与halt几乎一致,不过他是引发主机重启,而halt是关机,参数与halt一致。

2.7、init

  • init是所有进程的先祖,他的进程号始终为1,所以发送TERM信号init会终止所有用户进程,守护进程,shutdown使用的就是这种机制init定义了8个运行级别(runlevel),init 0 关机、init 1重启。
  • telinit改变init的运行级别。
  • telinit -iS 使系统进入用户模式,并且得不到使用shutdown时的信息和等待时间。

2.8、补充

fsck(file system check)用来检查和维护不一致的文件系统。若系统掉电或磁盘发生问题,可利用fsck命令对文件系统进行检查。

sync系统:同步系统。

初步了解Linux(1)相关推荐

  1. 初步了解Linux创建文件系统命令

    在完成磁盘分区的操作后,接着就需要对新建的分区进行格式化,创建相应的文件系统.在linux系统中我们通常借助mkfs和mke2fs这两个命令来进行以上操作. mkfs命令 mkfs命令通常用于在设备硬 ...

  2. 初步了解Linux内核中断初始化

    在linux内核中,用struct irq_chip结构体描述一个可编程中断控制器,它的整个结构和调度器中的调度类类似,里面定义了中断控制器的一些操作: 在中断处理中所涉及的几个重要的数据结构:中断描 ...

  3. 初步了解Linux strace 命令和跟踪进程产生的系统调用

    strace strace常用来跟踪进程执行时的系统调用和所接收的信号. 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切 ...

  4. 初步认识Linux oops 消息

    oops是英语口语"糟糕"的意思,当LINUX 内核发生严重错误时,比如内存段错误时,将会提示一大段信息.     Oops提示信息相当多,包括出问题时的,各个常用寄存器的值,调用 ...

  5. 初步学习Linux文件基本属性和Cygwin STATUS_ACCESS_VIOLATION 错误

    安装Cygwin,出现下图错误:Cygwin安装使用见之前的相关博文: 安装完成:使用一下:出现下图异常: base-files-mketc.sh exit code 254 bash 8272 ex ...

  6. Linux基础学习一:初步认识linux

    Linux引言 操作系统发展简介 Linux是和Windows类似的计算机操作系统.它们的作用都是充分的调度硬件资源并提供一个简单的使用入口.事实上,追本溯源操作系统主要分为2大门派:类unix操作系 ...

  7. 第一天初步认识Linux系统

    认识Linux系统 一.了解GNU/Linux的历史 二.Linux发行版主要分为REHL.CentO.UBuntu.Debian 三.相关证书RECA.RHCE.RHCSA 四.服务器的种类:塔式服 ...

  8. 初步了解Linux proc文件系统

    proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间.它以文件系统的方式为访问系统内核数据的操作提供接口. 用户和应用程序可以通过proc得到系统的信息,并可以改变内核的某些参数. 由 ...

  9. 当年嵌入式系统为什么选了Linux,而没有选Windows?

    点击上方"视学算法",选择"星标"公众号 重磅干货,第一时间送达 来自:strongerHuang,黄工 整理 链接:http://c.biancheng.ne ...

最新文章

  1. 数据库安全性之使用命令来实现用户管理以及角色.十五
  2. 基于MATLAB的dijkstra算法及其应用
  3. PW Live直播 | 清华大学NLP组刘正皓:神经信息检索的进展与挑战
  4. 【web安全】第三弹:web攻防平台pentester安装及XSS部分答案解析
  5. CodeForces - 617E XOR and Favorite Number(莫队)
  6. leetcode454. 四数相加 II(思路+详解)
  7. 【非公开】#include
  8. OMG,学它!mac怎么安装java插件
  9. 如何将macOS应用程序打包为dmg文件
  10. 【顺序表】SqList *L是什么意思
  11. 攻防世界Web新手区题解
  12. 水火箭的工作原理(化学反应)//2021-2-24 从群众中来,到群众中去
  13. APP+spring boot校园购物网站 毕业设计-附源码041037
  14. 【微信video视频播放】video标签
  15. 队列-链表-C语言实现
  16. Javascrit通过百度地图API获取客户端IP、地址
  17. 案例:电商交易数据分析
  18. vim,编辑文件后最简单的消除~ 和 .un~后缀文件生成的操作 ,重点为红色字体部分
  19. SlackwareLinux的安装之您满意DOS的表现?(转)
  20. kubernetes-二进制部署的时候,遇到kubelet启动失败,服务报错Unit kubelet.service entered failed state.

热门文章

  1. 品质周报表_品质部周报表
  2. 珐琅彩瓷:是如何涨到天价的
  3. Android 手机如何拍摄RAW图
  4. 前端学习记录 —— HTML篇(下)
  5. swift 聊天表情emoji转译(一)——从键盘到输入框
  6. 巨坑警告!去银行写代码千万别去分行
  7. Mondriaan‘s Dream(状态压缩dp)
  8. 计算机键盘上打分数如何表示,电脑excel中分数怎么打出来(图解excel分数输入法)...
  9. android禁止录屏功能,react-native(安卓)项目中禁止截屏与录屏
  10. Java多线程--使用ThreadMXBean 打出堆栈信息