• Linux操作系统学习之第二篇


    Linux操作系统学习之第二篇

    目录
    1. Linux操作系统启动过程、目录结构

    2. Linux操作系统的运行级别

    3. Linux文件及用户


    1. Linux操作系启动过程

    使用过VMware的小伙伴会在虚拟机关机和开机的时候看到他会有许多信息,但是它真实的启动过程没有那么复杂,可以分为五个阶段:

    (1)内核的引导

    (2)运行init

    (3)系统初始化

    (4)建立终端

    (5)用户登录系统


    (1)内核引导:

    打开电源后,BIOS开机自检,操作系统(Linux)接管硬件以后,首先读入 /boot 目录下的内核文件。

    (2)运行init:

    Linux操作系统读入/boot目录下的内核文件以后会运行init。

    init进程是系统所有进程的起点

    init 程序首先是需要读取配置文件

    不同的CentOS版本读取的配置文件绝对路径及目录名不一样。

    • Systemd: systemd, CentOS 7,配置文件: /usr/lib/systemd/system、 /etc/systemd/system。

    • Upstart: init,CentOS 6, 配置文件: /etc/inittab, /etc/init/*.conf。

    由于init的一大任务就是去运行开机启动的程序。这些开机启动程序在Windows当中称为“service(服务”,但是在Linux当中被称为“daemon(守护进程)”

    不同场合需要启动的程序不同。Linux允许为不同的场合分配不同的开机启动程序 这些不同的开机启动程序被称为“运行级别”

    运行级别(runlevel):

    Linux系统一共有七个运行级别:

    init 0:系统停机,系统默认运行级别不能为0,否则不能正常启动。

    init 1:单用户工作状态,root权限,用于系统维护,禁止远程登录

    init 2:多用户状态(没有NFS)

    init 3:完全的多用户状态(有NFS)登录后进入控制台(黑屏模式)执行命令模式

    init 4:系统未使用、保留。

    init 5:X11控制台,登陆后进入图形GUI界面‘

    init 6:系统正常关闭并重启。(运行模式不能设置为6,否则不能正常启动)


    (3)系统初始化

    在init配置文件当中有一行:

    si::sysinit:/etc/rc.d/rc.sysinit 它调用执行了/etc/rc.d/rc.sysinit,而rc.sysinit是一个bash shell的脚本,它主要是完成一些系统初始化的工作,rc.sysinit是每一个运行级别都要首先运行的重要脚本

    rc.sysinit脚本主要完成的工作:

    1、激活交换分区

    2、检查磁盘,加载硬件模块以及其他一些需要优先执行的任务

    真正的rc启动脚本实际上都是放在/etc/rc.d/init.d/目录下

    这些rc启动脚本有着类似的用法,它们一般能接受start、stop、restart、status等参数。

    /etc/rc.d/rc5.d/中的rc启动脚本通常是K或S开头的连接文件,对于以 S 开头的启动脚本,将以start参数来运行。

    如果发现脚本已经运行(以/var/lock/subsys/下的文件作为标志),会先以stop参数停止这些守护进程,然后再重新运行

    其目的是保证当init改变运行级别时,所有相关守护进程都将重启

    每个级别的守护进程可以自行设计(在chkconfig或者setup中的“System Services”设定)

    参考资料


    (4)建立终端

    rc脚本执行完毕后,返回init。init会打开6个终端,以便用户登录系统。init2、3、4、5的运行级别中都以respawn方式运行mingetty程序,这个程序能打开终端、设置模式同时显示一个文本登录接面,就是我们看到的登录界面

    用户登录系统:

    有三种方式:

    (1)命令行登录---全黑的屏幕

    (2)ssh登录

    (3)图形界面登录---init 5

    只有/etc/securetty中登记了的终端才允许 root 用户登录,如果不存在这个文件,则 root 用户可以在任何终端上登录。/etc/usertty文件用于对用户作出附加访问限制,如果不存在这个文件,则没有其他限制。


    图形模式与文字模式的切换方式

    Ctrl + Alt + F1 ~ F6来进入其中一个命令窗口界面。

    进入命令窗口界面后再返回图形界面只要按下Ctrl + Alt + F7 就回来了。

    vmware 虚拟机,命令窗口切换的快捷键为 Alt + Space + F1~F6. 如果你在图形界面下请按Alt + Shift + Ctrl + F1~F6 切换至命令窗口。


    由上面的描述可以概括出系统启动流程:

    操作系统---读取/boot目录下文本---打开init进程---划分运行级别---运行/etc/init.d目录下文本---展示用户登录界面---Login shell


    Linux关机

    (通常情况下服务器不会关机)

    正确的关机流程:

    首先将内存内容写到磁盘当中,关机:

    sync---shutdown now

    sync---half

    sync---poweroff

    关机指令:

    shutdown -h 10:十分钟后关机,显示在登录用户当前屏幕上

    shutdown -h now:立马关机

    shutdown -h 20:25:20:25关机

    shutdown -h +10:十分钟后关机

    shutdown -r now:系统立马启动

    shutdown -r +10:系统十分钟后重启

    reboot:重启

    half:关闭系统

    poweroff:断电源

    init 6:关闭系统

    1. Linux操作系统目录结构简介

    Windows操作系统当中:以多根的方式组织文件--盘符(C:D:E:)。

    Linux:以单根的方式组织文件/。

    Linux目录结构

    从上往下依次介绍每个文件夹。

    系统管理员:中文“根”:root

    系统目录(文件夹):中文“根”:/

    在/目录下看到的目录是一级目录

    一级目录里面的目录是二级目录

    二级目录下的目录叫三级目录


    一级目录有:

    bin(binary adj.二进制的):执行命令存储位置

    boot:启动目录。与计算机启动有关的目录存储位置包括一些连接文件以及镜像文件。。

    dev(device n.装置、终端):硬件(键盘鼠标、光驱、显示器...实体)存放的是 Linux 的外部设备

    etc(Etcetera(等等) 的缩写):配置文件(可以理解为设备的控制按钮,这些按钮是etc里面的文件)(工作中进入最多的文件夹)

    home:装用户自己文件的地方(家目录)(用户登录计算机时候计算机就会在home下创建属于该用户自己的文件夹,这些文件夹和其他用户创建的文件夹是隔离开的,保护用户隐私)每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的

    root:只有root账号能进入的目录,访问服务器的用户进不去root目录

    run:运行文件,这里的文件是临时的,一会就清掉了

    sbin(superbin):和bin一样都是命令,区别于sbin下的命令是管理员才能用的

    tmp(temporary adj.临时的):临时目录,里面东西可以随意删除。不用的文件临时的文件都是在里面的。

    usr(unix shared resources(共享资源) 的缩写):应用程序。在linux下安装的应用程序都在usr里面。非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。

    var:存放可变的目录(如日志、邮件...)


    1. Linux文件基本属性:

    在了解Linux文件管理命令之前需要先了解Linux文件的基本属性

    Linux文件有以下特点:

    1、Linux 系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。

    2、Linux 系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。

    Linux文件基本信息说明:

    这里面有几个需要记住的关键信息:

    file type:文件类型。在Linux当中文件类型有一下几种类别:

    1、d:为dirctory,目录文件

    2、~:代表这是一个文件

    3、l(link file):链接文档

    4、b:表示装置文件里面的可供存储的结构设备(可随机存取装置)

    5、c:装置文件里面的串行端口设备,如键盘、鼠标...(一次性读取装置)


    在Linux文件基本属性当中对文件划分了三个组,可以对不同组的人赋予不同的权限来达到相当于分组的效果。

    d --- --- ---

    三个“-”代表一个组。

    d代表文件属性

    把后面九个“-”按数字编号

    前三个“-”代表User组

    中间三个“-”代表Group组

    最后三个“-”代表other组

    “-”代表无权限

    每个组所拥有的对该目录或者文本的权限不同来达到管理的效果

    对于文件来说,它都有一个特定的所有者,也就是对该文件具有所有权的用户。同时,在Linux系统中,用户是按组分类的,一个用户属于一个或多个组。

    文件所有者以外的用户又可以分为文件所有者的同组用户和其他用户。因此,Linux系统按文件所有者、文件所有者同组用户和其他用户来规定了不同的文件访问权限。

    对于 root 用户来说,一般情况下,文件的权限对其不起作用。

    rwx代表权限:

    r:“读”权限=数字“4”

    w:“写”权限=数字“2”

    x:“执行”权限=数字“1”

    无对应的权限出现“-”号


    Linux文件基本属性管理命令:

    修改用户的权限:chmod(change mode)(更改文件9个属性)

    Linux文件属性有两种设置方法:

    数字

    符号

    语法:

    chmod [-R] xyz 文件或目录

    "[]"是指可选添加可选不添加

    "-R(recursive)"是指进行递归的持续变更,就是连同次目录下的所有文件都会变更

    符号类型改变文件类型:

    user=u

    group=g

    others=o

    ”+“=加入

    “-”=除去

    “=”=设定

    chmod u/g/o/a +/-/= r/w/x 文件或目录

    例如:

    chmod u=rwx,g=rwx,o=rwx test.txt

    等价于

    chmod 777 test,txt


    chmod u-r,g-r,o-r test.txt

    等价于

    chmod 333 test.txt


    改变文件属主,也可以同时更改文件属组:chown(change ownerp)

    语法:

    chown [-R] 属主名 文件名

    chown [-R] 属主名:属组名 文件名

    例如:

    chowm root:root 文件名

    改变文件属组:chgrp

    语法:

    chgrp [-R] 属组名 文件名

    ”-R“:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改。


    1. Linux用户管理

    Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。(注册账号)

    这样做的目的是:

    1、帮助管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问。

    2、管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问。

    用户账号的特点:

    每个用户账号都拥有一个唯一的用户名和各自的口令。(类似于账号密码)

    用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。(类似于个人主页)

    实现账号管理要完成的工作有以下几个方面:

    1. 用户的账号添加、删除、修改

    2. 用户口令的管理

    3. 用户组的管理


    1、添加新的用户账号(useradd):

    语法:

    useradd [option] 用户名

    可选的option:

    "-c"(comment):指定一段注释性描述

    "-d":目录,指定用户主目录,如果此目录不存在,就同时使用-m选项,可以创建主目录

    "-g":用户组,指定用户所属的用户组

    "-G":用户组,指定用户所属的附加组(一个用户可以存存在多个组当中拥有多个组的权限)

    "-s":Shell文件,指定用户登录的Shell

    "-u":用户号,指定用户的用户号,如果有-o选项,则可以重复使用其他用户的标识号

    用户名:自己设置的登录名

    实例:

    创建一个用户:Jun,在/home/Jun里面创建它的主目录 sam:(牢记语法:命令+参数+选项+参数+选项...)

    useradd(命令) -d(参数) /home/Jun(选项) -m(参数) Sam(用户名)

    创建一个用户JUN,该用户登录Shell是/bin/sh,主组为hansonjun(用户组),附属组为root:

    useradd(命令) -s(参数) /bin/sh(选项) -g(参数) hansonjun(用户组) -G(参数) root(选项) JUN(用户名)

    (增加用户账号就是在/etc/passwd文件中为新用户增加一条记录,同时更新其他系统文件如/etc/shadow, /etc/group等。)


    2、删除帐号

    删除帐号就是将/etc/passwd等系统文件中的该用户记录删除,必要时还删除用户的主目录。(创建用户时提到的系统目录)

    语法:

    userdel option 用户名

    参数:

    "-r":作用是把用户的主目录一起删除


    3、修改帐号

    修改用户账号就是根据实际情况更改用户的有关属性,如用户号、主目录、用户组、登录Shell等。

    语法:

    usermod option 用户名

    参数:(与useradd的参数一样,可以为用户指定新的资源值)

    新参数:“-l”:指定一个新帐号,将原来用户名改为新的用户名

    例如:

    usermod -l new_username old_username

    usermod(命令) -s(参数:shell) /bin/ksh(选项) -d(参数) /home/z(参数) -g(参数) developer(选项) King(用户名)


    4、用户口令管理(相当于密码)

    用户账号刚创建时没有口令,但是被系统锁定,无法使用必须为其指定口令后才可以使用,即使是指定空口令。

    指定和修改用户口令的Shell命令是passwd。超级用户可以为自己和其他用户指定口令,普通用户只能用它修改自己的口令。

    语法:

    passwd option 用户名

    参数:

    "-l":锁定口令,(禁用帐号)---使某用户不能登录

    "-u":口令解锁

    "-d":使帐号无口令---不是登录时候不用输入口令,而是此命令将用户的口令删除,这样用户下一次登录时,系统就不再允许该用户登录了。

    "-f":强迫用户下次登录时修改口令

    (如果默认用户名,则修改当前用户的口令。)

    超级用户修改其他用户用户名:

    passwd 用户名


     

  • 相关阅读:
    ArcGIS Engine开发-三维视图(SceneControl)的刷新
    c#开发基础知识及有用技巧(一)
    ArcGIS Engine开发-取得ArcMap文档缩略图
    RichTextBox中表格不能折行的问题
    Windows WorkFlow Foundation入门(六) 编译工作流
    你还在用 VMware?快试试这款更轻量级的虚拟机!
    RedisJson 横空出世,性能碾压 ES 和 MongoDB!NoSQL 要变天了吗?
    基于 ElasticSearch 实现站内全文搜索,写得太好了!
    团灭!Log4j 1.x 也爆雷了。。。速速弃用!!
    Spring Boot + Redis:抗住 10w 人,秒杀抢单!
  • 原文地址:https://www.cnblogs.com/JunkingBoy/p/14031951.html
Copyright © 2020-2023  润新知