03Linux入门级命令(一)和Linux系统的引导过程

chuli上次我们说到用VMware安装Linux系统的虚拟机,今天来说说Linux入门需要知道的

TTY终端

在Linux默认的登录模式中,主要分两种,一种是仅有的纯文本界面的登录环境,另外一种则是图形界面的登录环境。

Linux默认情况下提供6个虚拟终端来让用户登录,系统将F1F6定义为tty1tty6。使用Ctrl+alt+Fn组合键就可以从图形界面切换到命令行界面的第N个虚拟终端,Fn代表F1,F2…,F6功能键。

Linux的默认运行级别

在centOS7之前的Linux版本,Linux运行级别分为7个级别,分别是0~6级别。我们来一一介绍。**
**

0:代表关机

1:代表单用户模式

2:代表多用户模式,但没有网络服务

3:代表完整多用户模式,有网络服务,登录后进入控制台命令行模式

4:运行级别,预留,系统未使用

5:代表图形界面

6:代表系统正常关闭并且重启

一般的默认运行级别设置为3或者5级别。

查看用户终端

who am i :命令显示出自己在系统中的用户名。登录终端,登录时间

img

who:该命令主要用于查看当前在线上的用户情况。

img

下面对who命令的常用参数进行说明:

**
**

who -m 它的效果等同于who am i

img

who -q 只显示用户的登录账号和登录用户的数量

img

who -r 可以查看当前系统的运行级别

img

who -H 显示一行列标题

img

who --helo: who命令的相关命令

img

补充:w 的指令最全面

w命令的显示项目按以下顺序排列:当前时间,系统启动到现在的时间,登录用户的数目,系统在最近1秒,5秒,和15秒的平均负载,然后是每个用户的各项数据,项目显示顺序如下:

登录账号

终端名称

远程主机名

登录时间

空闲时间

JCPU

PCPU

当前正在运行的命令行

eg:

img

与上述说明一一对应

Linux系统的目录结构

FSH(Filesystem Hierarchy Standard 目录层次标准)定义了两层规范:第一层是“/”目录下的各个目录应该放什么数据文件,例如:/etc目录下放置系统的配置文件,而/bin 和/sbin目录下放置程序及系统命令 第二层是针对/usr/和/var这两个目录的子目录来定义,例如:/var/log下放置系统日志文件等。**
**

以centOS系统为例讲解Linux的目录结构

Centos系统中的目录和文件数据被组织为一个属性目录结构,所有的分区,目录,文件等都具有一个先沟通的位置起点—根目录(要注意,Linux目录结构和win目录结构是不同的,Linux目录结构式树形,不同文件类型要存储到相对应的目录下,而Windows只是分盘符)CentOS系统定位文件或目录位置时,使用“/”进行分割(区别于Windows的“\”)。整个树形目录结构中,使用独立的一个“/”表示根目录,根目录是centOS文件系统的起点,他所在的分区称为根分区。在根目录下,centOS系统将默认建立一些特殊的子目录,分别具有不同的用途。

下面介绍一下其中常见的子目录极其作用:

img

/:根目录,一般根目录下只存放目录,不存放文件,/etc, /bin, /dev, /lib /sbin应该和根目录放置在一个分区中。

/bin ->/usr/bin:可执行二进制文件的目录,如常用的命令ls,tar,mv,cat等,这些命令对应的文件都是可执行的,普通用户可以使用大部分的命令。

/sbin->/usr/sbin:大多是涉及系统管理的命令的存放,是超级权限用户root的可执行命令存放地,普通用户无权执行这个目录下的命令,如fdisk,shutdown,mount等,与/bin不同的是,这个目录是给系统管理员root使用的命令,普通用户只能“查看”而不能设置和使用,这个目录和/usr/sbin或者/usr/local/sbin目录是相似的,我们记住就行了,凡是目录/sbin中包含的都是root权限才能执行的

/boot:存放Linux启动时内核及引导系统程序所需要的核心文件,内核文件和grub系统引导管理器都位于此目录,建议单独区分,区分100M和500M即可

/dev:存放Linux系统下的设备文件,如光驱,磁盘等,访问该目录下的某个文件相当于访问某个硬件设备。

/etc:一般存放系统的配置文件,作为一些软件启动时默认配置文件读取的目录,如/etc/fstab存放系统分区信息

/home:系统默认的普通用户的主目录(家目录),在Linux中,每个用户都有一个自己的目录,一般该目录名是以自己的账号名命名的,新增用户账号时,用的家目录都存放在此目录下,~表示当前用户的家目录,!test表示用户test的家目录,建议单独区分,并设置较大的磁盘空间,方便给用户存放数据。

/root:系统管理员root的家目录,对于系统来说,系统管理员就好比是上帝,他能对系统做任何事情,甚至包括删除你的文件,因此,请小心使用root账号。

/lib->/usr/lib:这个目录里存放着系统最基本的动态链接共享库,起作用类似于Windows里的DLL文件,几乎所有的应用程序都需要用到这些共享库,程序在执行过程中,需要调用一些额外的参数时需要动态链接库的协助。

/lib64->/usr/lib64:库文件(64位)

/mnt:用于存放挂在存储设备的挂在目录

/media:有些Linux的发行版使用这个目录来挂载那些usb接口的移动硬盘(包括U盘),CD/DVD驱动器等等

/opt:这是给主机额外安装软件存放的目录,有些软件会安装在这里,也就是自定义软件包,我么自己编译的软件包,就可以安装在这个目录中,通过源码包安装的软件,可以通过/configure–prefix=/opt/目录,安装到/opt目录下的程序,它所有的数据,库文件等等都是放在同个目录下面,直接删除不影响系统设置。

/proc: 操作系统运行时,进程信息及内核信息(比如cpu,硬盘分区,内存信息等存)放在这里。这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息,这个目录的内容不再硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

/run:一些进程产生的临时文件,重启会消失

/srv:空目录,存放一些服务产生的文件,如www服务需要访问的网页数据存放在/srv/www内

/sys:存放一些内核文件,与/proc相似,是一个虚拟的文件系统,主要记录与系统内核相关的信息,如系统当前已经载入的模块信息等,这个目录实际不占磁盘容量。

/tmp:临时文件目录,任何人都可以访问,系统软件或用户运行程序如MySQL时产生的临时文件存放到这里,此目录数据需要定期清除,重要数不可放置在此目录下,此目录空间不能太小

/usr:应用程序存放目录,如命令,帮助文档等,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与Windows下的program files目录,安装Linux软件包时默认安装到/usr/local目录下。/usr/bin:系统用户使用的应用程序。/usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序。/usr/src:内核源代码默认的放置目录。/usr/local:这个目录一般是用来存放用户自编译安装软件的存放目录。

/var:这个目录的内容经常变动的,/var/log用于存放系统日志,/var/lib存放系统文件等

查看系统信息,关机和重启等命令操作

Linux查看系统信息命令是Linux初学者必备的基础知识,这些命令也非常有用,因为进入Linux第一件事就是可能首先查看系统信息,因此必要的系统的学习一下这些Linux系统信息命令还是非常有必要的!**
**

hostname :查看主机名

img

**cat /etc/redhat-release :**查看操作系统版本

img

uname :命令主要用于显示操作系统的信息,包括版本,平台的信息

img

uname -s :显示内核名称,输出信息会和uname不带参数时输出的内容一样,和uname大同小异

img

uname -r:内核发行版,如果你想要知道你正在使用哪个内核发行版(不同的内核打包版本)就可以使用-r参数

这里阿马的版本号是3.10.0 之前咱们说过,3代表的是主版本号,10是偶数,代表稳定版本,如果是奇数的话,那么就是开发版本 0代表他的修正次数

img

uname -v :要比uname-r获取更加详细的内核版本信息(不是版本号,是指该内核建立的时间和CPU架构等)

img

uname -n:这个和之前的hostname大同小异,会提供给你节点名,也就是你的登录账号

img

uname -m:如果你想知道用的是哪类机器,可以用这条命令,他可以告诉你关于硬件的信息

img

uname -i:等同于uname -m

说明:如果和阿马返回的不一样,可能是centOS版本型号不一样

如果它返回的是i386,意味着是一个32位的操作系统

如果返回的是X86_64,意味着是一个64位的操作系统

img

**uname -p:**查看处理器类型,如果uname无法识别,他会显示“unknown”做为输出

img

uname -o:可以显示你正在运行的操作系统信息

img

uname -a: 有感于uname的所有命令,用uname -a可以全部查出来

img

查看语言字符集设置 cat /etc/locale.conf

img

Linux关机,重启命令

**init:init是所有进程的祖先,它的进程号始终为1,init用于切换系统的运行级别,切换的工作是立即完成的,init的命令用于立即将系统运行级别切换为0,也就是关机,init 6命令用户将系统的运行级别切换为6,也就是重启。
**

直白点就是 init 0可以关机 init 6可以重启

shutdown命令

shutdown命令用于安全关闭Linux系统,有些用户会使用直接切断电源的方式来关闭Linux,这是十分危险的。因为Linux后台运行着许多进程,所以强制关机可能会导致数据的丢失,使系统处于不稳定的状态,严重的话会损坏硬件设备。**
**

而当我们执行shutdown命令时,系统会通知所有登录的用户系统将要关闭,并且冻结login指令,新的用户也不能再登录系统,使用shutdown命令可以直接关闭系统,也可以延迟指定的事件在关闭系统,还可以重新启动,而延迟指定的时间关闭系统,可以让用户有时间存储当前正在处理的文件和关闭已经打开的程序,但是要实用这个命令必须保证是根用户。

例如:正常关机:shutdown

​ 关机后重启 shutdown -r

​ 在指定时间关机,例如我们要在2分钟内关机:shutdown -t 2 或者shutdown 2

取消指定时间重启:shutdown -c

shutdown -k:发送警告信息,此时不再允许登录

说明:shutdown通过通知init进程,需求它改换运行级别来实现,运行级别0用来关闭系统,运行级别6来重启系统。

**
**

**poweroff命令:在关闭计算机操作系统之后,最后还会发送ACPI指令,通知电源,最后切断电源供应
**

reboot:也是重启系统,和shutdown还有init 6大同小异

halt:是最简单的关机命令,它会调用shutdown -h命令,halt执行时,杀死应用进程,文件系统操作完成后就会停止内核

Linux操作系统的引导过程

在前面我们对Linux系统有个大概的了解,掌握了linux系统的基本信息,查看关机,重启,接下来我们进一步学习Linux系统的引导过程。

系统引导是操作系统运行的开始,在用户能够正常登陆到系统之前,Linux操作系统的引导过程将完成一系列的初始化任务,并加载必要的程序和命令终端,为用户登录做好准备,我们来说说Linux操作系统的引导过程

Linux操作系统的引导过程一般包括以下几个阶段:

POST–>BOOT SEQUENCE->BOOTLOADER->KERNEL+INITRAMFS(INITRD)->ROOTFS->/sbin/init

CentOS7和centOS6启动流程差不多,只不过到init程序的时候,改为了systemd,因此详细解释一下systemd后的启动流程

POST:加电自检

当开机按下电源按钮之后,计算机开始加电,主板上的BIOS或UEFI基本输入输出程序开始对硬件进行初步检查,检查内存CPU,显卡,键盘等等,当检测到错误的时候机器会中断或者无法启动,检测成功后根据预设的启动顺序移交系统控制权,大多时候会移交给本机硬盘**
**

Boot sequence:选择引导顺序**
**

当自检通过后,接着就是选择引导介质或方式,是通过光盘启动,硬盘启动,网络启动,还是U盘启动,这些也是在BIOS中设定的,所以设定的第一启动项是哪个就从那个开始引导**
**

Bootloader:引导加载器

确定引导介质后便开始从介质中装载引导程序如grub2,这个是一个微小程序,我们知道MBR引导记录大小是512字节,其中前446个字节就是Bootloader,主要用来引导用户选择要启动的系统或不同的内核版本,把用户选定的内核装载到RAM中的特定空间中,解压,展开,而后把系统控制权移交给内核。**
**

grub2就是Linux中BootLoader程序,由于MBR记录限制,所以grub2分为两个部分:

  1. 在MBR引导记录中,大小为446字节,主要功能是引导启动介质的grub主体文件
  2. /boot/grub2,此为grub的主体文件。

KERNEL+INITRAMFS(INITRD)->ROOTFS:加载内核

加载initramfs模块和内核,内核开始初始化,这时候kernel开始初始化,探测可识别的硬件设备,加载硬件启动程序,内核以只读的方式挂在(临时的根目录)rootfs。

kernel在内存中加载时,为了模拟系统环境,会生成一个ramdisk文件,来进行下一步操作,等到加载到真正的根文件系统时,就会退出ramdisk,切换到真正的跟文件系统中去。

说明:ramdisk:内存上是临时的虚拟内存。

/sbin/init:启动systemd进程,运行用户空间的第一个应用程序,centOS7使用systemd来代替centOS6以前的init程序。

Linux启动流程及步骤如图所示:

img

至此,内核空间就启动完毕,内核启动完成接着开始启动用户启动过程,systemd是个守护进程,pid号为1,后面所有启动的服务或进程,都是systemd的子进程及子进程的进程。

centOS不同于centOS6,第一个进程不是init,是systemd systemd是所有进程的父进程

对于大多数系统服务来说,常见的几种控制类如下所示:

**注:**这里的name是一个变量,后面的service可有可无!

启动:systemctl start name.service

停止:systemctl stop name.service

重启:systemctl restart name.service

重载:systemctl reload name.service

查看某服务当前是否运行:systemctl is -active name.service

查看所有已经激活的服务:systemctl list-units --type.service

开机自启动:systemctl enable name.service

开机不启动:systemctl disable name.service

查看服务是否开启:systemctl is-enabled name.service

禁止设定为开机自启:systemctl mask name.service

取消禁止设定为开机自启:systemctl unmask name.service

过滤其他类型的单元:type

查看所有服务类型的单元:systemctl list-unit-files --type.service(type是一个变量)

温馨提示:

**对于在实际生产环境中运行的服务器,不要轻易执行stop或restart操作,以免造成客户端访问中断,带来不必要的损失,若只是要为系统服务启动新的配置,可以采用相对温和一些的reload重新加载配置,而不是生硬的执行restart,例如,对正在为用户提供web访问的Httpd服务,当需要应用新的配置时,建议执行systemctl reload httpd.service命令来重新载入配置,而不是执行systemctl restart httpd.service

**

**
**

**
**

**
**

故事很短,道理很长,学无止境,不忘初心,砥砺前行 今天的杂谈就到这里,不一定对每个人有用,但是对有需要的人会有帮助,做不到人民币,人人喜欢 如果觉得小编说的对,介绍给你们同事,朋友,亲戚吧,谢谢你们呦!,每天不定时更新哦!!!

微信搜索 “徐阿马杂谈” 关注公众号,把你们想知道的,想提的意见发给我,我会采纳!

img

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值