当前位置:   article > 正文

运维基础(上部)_熟悉大型服务器的命令操作和维护

熟悉大型服务器的命令操作和维护

运维基础【(上部)】

因为笔记所记内容太多,所以我分成了上下两部分来分享给大家查看学习!同时我会持续更新博客发布更加优质的文章,希望大家多多支持与关注!感谢!

一、运维概述

1、运维岗位的收入情况

image-20221215105342914

2、运维的职位定义

  • 什么是运维?

    ​ 在技术人员之间,一致对运维有一个开玩笑的认知:运维就是修电脑、装网线的、背锅的岗位。

    ​ 其实不然,运维是一个非常广泛的定义,在不同的公司不同的阶段有着不同的职责与定位,如果以operation(运维英文)字面的含义去理解,认为就是敲几行操作命令的工作,那就错了。

    对于初创公司,运维工程师的工作可能需要从申请域名开始,购买/租用服务器上架,调整网络设备的设置,部署操作系统和运行环境,部署代码,设计和部署监控,防止漏洞和攻击等等。(基础运维)

    对于大型的公司,对于运维工作的要求越来越高,也催生了更细化的运维分工,从大的方向,可以分为网站运维、基础运维、系统运维、网络运维、数据库运维,IT运维、运维开发、大数据运维、云计算运维、运维安全、运维架构师、运维专家等方向。

3、运维的诞生

​ 从最早的网管开始,九十年代初期,互联网欠发达的时候,还少有 “服务器” 的概念,电脑价格昂贵,大多数人并不具备在家上网的条件,网吧应运而生。

​ 网吧的电脑、猫等设备需要进行日常维护,于是 “网管” 岗位应运而生,这就是早期运维的雏形。

4、90年代初网吧图

image-20221215111359084 image-20221215111452569 image-20221215111701245

5、运维行业前景(了解)

  1. 从行业角度来看,随着中国互联网的高速发展、网站规模越来越大、架构越来越复杂,对专职网站运维工程师、网站架构师的要求会越来越急迫,特别是对有经验的优秀运维人才需求量大,而且是越老越值钱。
  2. 从个人角度,运维工程师技术含量及要求会越来越高,同时也是对公司应用、架构最了解最熟悉的人,越来越得到重视。
  3. 互运维是一个融合多学科(网络、系统、开发、安全、应用架构、存储等)的综合性技术岗位,给运维工程师提供了一个很好的个人能力与技术的发展空间。
  4. 运维工作的相关经验将会变得非常重要,而且也将成为个人核心竞争力,优秀的运维工程师具备很好的各层面问题的解决能力及方案提供、全局思考的能力等。
  5. 由于运维岗位所接触的知识面非常广阔,**更容易培养或发挥个人某些方面的特长或爱好,**如内核、网络、开发、数据库等方面,可以做得非常深入精通、成为这方面的专家。
  6. 当前国内外对运维人才的需求非常迫切,运维工程师的薪资也水涨船高,与研发、测试等技术部门持平,甚至超出。

二、企业运作模式

1、四大部门

  • 四大部门: 研发、测试、运维、(系统管理)

  • 流程走向: 产品设计 —> 项目研发 —> 运维 —> 系统数据管理

  • 职责描述:

    研发部:根据项目需求设计项目(程序员/Java工程师/php 工程师/码农)

    测试部:项目 bug 的测试(项目内测部门)

    运维部: 负责项目的上线以及后期项目所在的服务器的维护

    系统管理部: 在不同的公司架构中可能不一样,有的公司可能有这个部门,有的可能没有。

    其工作职责主要是去使用这个项目。

    铁三角:研发、测试、运维。

2、上线与生产

以某个 web站点(网站)为例

image-20221216212239136

在项目的从无到有的过程中,可以将其分为两个阶段:研发阶段、生产阶段。

运维在其中承担了承上启下的作用,衔接了研发阶段与生产阶段,属于其中最重要的一环。

3、网站的概念

​ 简单地说,网站是一种沟通工具,人们可以通过网站来发布自己想要公开的资讯,或者利用网站来提供相关的网络服务。人们可以通过网页浏览器来访问网站,获取自己需要的资讯或者享受网络服务。

扩展:了解网站的分类:
	根据网站所以编程语言分类:例如:asp网站、php网站、jsp网站、Asp.net网站等;
	根据网站的用途分类:例如门户网站(综合网站)、行业网站、娱乐网站等;
	根据网站的功能分类:例如单一网站(企业网站)、多功能网站(网络商城)等等。
	根据网站的持有者分类:例如个人网站、商业网站、政府网站,教育网站等。
	根据网站的商业目的分类:营利性网站(行业网站、论坛)、非营利性网站(企业网站、政府网站、教育网站)。
	根据网站的面向终端的分类:web网站(电脑端)和wap网站(手机端)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

4、网站的运作模式

image-20221216220334491

5、重要概念

  • 域名:也就是在浏览器地址栏中输入的那一串字母和数字的组合,例如:www.baidu.com,这个就是域名,域名主要是方便用户记忆。
  • 服务器:就是给用户提供服务的机器(电脑)。服务器可以分为四大类:塔式服务器、几式服务器、刀片服务器、柜式服务器
  • IP地址:形式 IPv4、IPv6
  • 公网:www(万维网), 全世界都可以互相访问的网。
  • 局域网/内网/私网:在某个单元内部(家庭/教室/公司)能够进行互相访问的网络。

6、普通台式机能否充当服务器

问题:普通台式机/笔记本能否充当服务器来使用?

如果从提供服务角度来考虑的话,的确是可以充当服务器的,但是一般不会用普通电脑来充当服务器。原因如下:

  • 稳定性不如专门服务器。(开机时间长之后,服务器保证稳定运行不卡机)
  • 性能上不如专门服务器。(硬件)
  • 服务器的标准上不及专门的服务器统一。

7、企业真实服务器有哪些特点

  • 服务器的稳定的特性
  • 服务器的高性能特性
  • 服务器的标准化统一特性

8、服务器重要结构组成

家用电脑:cpu、主板、硬盘、内存、电源、显卡、显示器、声卡、键盘、鼠标

8.1、CPU
  • CPU发展史

    image-20221217105657080

8.2、内存

image-20221217105852509

8.3、风扇

image-20221217110132494

8.4、电源

image-20221217110209350

机柜式服务器、塔式服务器

image-20221217110233627

刀片式服务器、几式服务器

8.5 硬盘

image-20221217110409795

8.6 主板

image-20221217110448438

IBM X3650服务器内部结构拆解一_服务器评测与技术-中关村在线 (zol.com.cn)

三、操作系统相关

1、计算机发展史

第一台计算机是1946年2月14日诞生日,第一台名称 ENIAC。体积一间屋子的大小,重量高达 28t。

第一代:1946 - 1958 12年 (电子管)

第二代:1958 - 196 6年 (晶体管)

第三代:1964 - 1970 6年 (集成电路)

第四代:1970 - 至今 (大规模集成电路) 集成电路 plus

2、计算机的组成

CPU、内存、硬盘、显示器、显卡、主板、电源、声卡、鼠标、键盘

3、计算机资源

计算机资源分为2部分:硬件资源、软件资源

硬件: 看得见摸得着的设备

软件: 一般由研发工程师开发的一些程序,一般会称之为应用软件

  • 问题:为什么在键盘上敲按键会在屏幕上显示呢?

    硬件(键盘)——> 驱动(键盘驱动程序)——> 操作系统 (软件)——> 显卡驱动 ——> 显示器(硬件)

    操作系统(OS,operation system)属于特殊的软件。其他的一些应用软件都必须安装在操作系统中。

4、操作系统

目前市面上最常见的操作系统:

Windows 系统:由微软公司开发的一款闭源操作系统(用户操作系统,服务器操作系统),从最早的 DOS版本到后期,win 95,win 97,win 98, win 2000,win 2003(服务器操作系统) ,win XP,win vista,win 7,win server 2008(服务器操作系统),win 8,win server 2012(服务器操作系统),win 10,win server 2016(服务器操作系统),win 11。

Mac 系统:由苹果公司开发的一款闭源 操作系统。是借鉴 openBSD 操作系统开发出的操作系统。

Linux 操作系统:一款目前市面上占有率最多的服务器操作系统。其是一款开源 操作系统。

Linux 有很多分支,常见的分支有:乌班图(Ubuntu)、CentOS、RedHat、SUSE、Debian等等。但是**Linux目前在世界上最大的分支是安卓**(谷歌研发的Linux分支)。Root Administrator

开源:开放源代码,开源不意味着免费(可能会服务收费)。RedHat 红帽认证 100000刀

闭源:不开放源代码,其他人是看不到源代码的,有部分闭源软件是收费的,如 Windows的系统、office。

https://www.v2ex.com

5、为什么需要使用 Linux操作系统

  1. 性能问题:Windows 服务器操作系统不如Linux高;
  2. 稳定性问题:
    • 底层架构:Linux 更加稳定,其开机时间可以达到好几年不关机;
    • 开源:因为开源,人人都可以看到源代码,就可以为其提供自己的补丁,补丁可以提高 稳定性和安全性
  3. 安全性问题:
    • Linux 操作系统:相对于Windows 操作系统更加安全;
    • PE 工具 大白菜、老毛桃(windows 操作系统)
  4. 远程管理方面:QQ 远程协助(mstsc)
    • ​ Windows 不及 Linux 操作高效。
  5. 服务器价格昂贵的,需要对资源进行充分利用,充分把计算机资源用到项目上(访问并发、性能),而不是把资源浪费在图形化界面或者方便程度上。

Linux 发展史与安装

一、Linux 发展史

1、Linux 前身 - Unix

1968 年 Multics 项目

MIT、Bell 实验室、美国通用电气有限公司 走到了一起,致力于开发 Multics 项目。到后期由于开发进度不是很好。MIT 和 Bell 实验室相继离开这个项目的开发,最终导致项目搁浅。

1970 年(Unix 元年,时间戳) Unix诞生

当时在开发 Multics 项目的时候,实验室中有一个开发成员开发了一款游戏(travel space:遨游太空),因为这两个实验室相继离开项目开发,导致这名开发人员没法玩游戏,后来他提议组织人员重新在 Multics 项目之上重新的开发,也就出现了 1970年的 Unix。当时 Unix 操作系统是使用的==汇编语言(机器语言)==开发的。时间戳

1973年 用C语言重写 Linux

因为汇编语言有一个最大的局限性:对于计算机硬件过于依赖。导致移植性不好,所以后期在1973年使用了 C语言对其进行重新开发。

1975年 Bell 实验室允许大学使用 Unix

1975年,Bell 实验室允许大学使用 Unix 操作系统用于教学作用,而不允许用于商业用途。

2、Linux 诞生

image-20221217151142999

上述所提及的版本号并不是分支版本,而是指 Linux 的内核版本。

3、开源文化

Linux 是开源的操作系统。所谓开源就是开发源代码。

人物 Stallman 斯特曼,开源文化的倡导人。

1983年 GNU 计划

1985年 FSF 基金会

1990年 Emacs、GCC(C语言的编译器)、程序库

1991年 Stallman 去找 linus,商谈让 Linux 加入其开源计划(GNU计划)

1992年 GNU/Linux

4、Linux 系统特点

开放性(开源)、多用户、多任务、良好的用户界面、优异的性能与稳定性

多用户多任务:

单用户:一个用户,在登陆计算机(操作系统),只能允许 同时 登录一个用户;

单任务:一个任务,允许用户 同时 进行的操作任务数量;

多用户:多个用户,在登录计算机(操作系统),允许 同时 登录多个用户进行操作;

多任务:多个任务,允许用户 同时 进行多个操作任务;

Windows 属于:单用户、多任务。

Linux 属于:多用户、多任务。

pearOS、

5、Linux 分支

分支:Linux 分支有很多,现在比较有名的 Ubuntu、debian、centos、redhat、suse 等等。

二、Linux 系统的安装

1、安装方式

目前安装操作系统方式有2种:真机安装、虚拟机安装。

真机安装:使用真实的电脑进行安装,像安装Windows 操作系统一样,真机安装的结果就是替换掉当前的 Windows 操作系统;

虚拟机安装:通过一些特定的手段,来进行模拟安装,并不会影响当前计算机的真实操作系统

如果是学习或者测试使用,强烈建议使用虚拟机安装方式。

2、虚拟机软件

什么是虚拟机?

虚拟机目前有2个比较有名的产品:VMware 出品的 VMware workstation、Oracle 出品的 virtual Box

3、虚拟机的安装

3.1、VMware Workstation 的安装
3.2、Virtual Box 的安装

4、Linux 版本的选择

版本选择:CentOS 6.5【镜像一般都是 xxx.iso文件】

问题:为什么不选择最新版的 7.x版本?
	6.x 目前依然是主流
	6.x 的各种系统操作模式是基础
	7.x 实际上也支持大多数6.x的操作形式
  • 1
  • 2
  • 3
  • 4

官网:https://www.centos.org/

5、新建虚拟机

5.1 使用 VMware Workstation
5.2 使用 Virtual Box(了解)

6、Linux 操作系统安装

6.1 使用 VMware Workstation进行安装
6.2 使用 Virtual Box 安装 Linux(了解)

7、终端

可以通过命令行方式进行关机。命令的输入需要在 终端 中进行输入。

所谓终端,其实类似于 Windows 下 cmd 命令行模式。在终端中可以输入需要执行的一些指令,同样可以通过终端进行关机(注意:以后在工作中很少会去使用关机命令,会使用重启比较多)

终端的形式:

image-20221217163251350

终端组成部分:

image-20221217163828516

如何使用终端命令进行关机?

在Linux 中关机命令,有以下几个:shutdown(正常关机)、halt(关闭内存)、init 0

shutdown -h now

8、使用 VMware 备份操作系统

在 vm 中备份的方式有 2 种:快照、克隆。

快照:又称还原点,就是保存在拍快照时候的系统的状态(包含了所有的内容),在后期的时候随时可以恢复。侧重在于短期备份,需要频繁备份的时候可以使用快照,做快照的时候虚拟的操作系统一般处于开启状态

  1. 在菜单 ”虚拟机“ - ”快照“ - ”拍摄快照“

    image-20221217165201953

    输入相关信息,点击拍摄快照

克隆:就是复制的意思。侧重长期备份,做克隆的时候是必须得关闭

三、Linux 系统的文件

1、文件与文件夹(目录)

什么是文件?

​ 一般都是一个独立的东西,可以通过一些特定的工具进行打开,并且其中不能在包含除了文件以外的东西。

什么是文件夹?

​ 可以在其中包含其他文件的东西。

为什么先讲文件?

  1. 日常运维工作中,有近一半以上的工作内容 精力 其实都是对文件的操作

  2. Linux 本身也是一个基于文件形式表示的操作系统

    Linux 一切皆文件

    1. 在 Windows 是文件的,在Linux 下同样也是文件;
    2. 在 Windows 不是文件的,在 Linux 下也是以文件的形式存储的;

日常学习中和日常工作中,对于文件的操作的都有哪些种类?

创建文件、编辑文件、保存文件、关闭文件、重命名文件、删除文件、恢复文件。

2、Linux 系统的文件目录结构

目录结构:

  • Bin:全称 binary,含义是二进制。该目录中存储的都是一些二进制文件,文件都是可以被运行的

  • Dev :该目录中主要存放的是外接设备,例如盘、其他的光盘等。在其中的外接设备是不能直接被使用的,需要挂载(类似 Windows 下的分配盘符)。

  • Etc: 该目录主要存储一些配置文件。

  • Home:表示 ”家“,表示除了 root 用户以外其他用户的家目录,类似于 Windows 下的 User/用户目录

  • Proc: process,表示进程,该目录中存储的是 Linux 运行时候的进程。

  • Root: 该目录是 root 用户自己的家目录。

  • Sbin: 全称 super binary,该目录也是存储一些可以被执行的二进制文件,但是必须得有 super 权限的用户才能执行。

  • Tmp: 表示 ”临时“ 的,当系统运行时候产生的临时文件会在这个目录存着。

  • Usr: 存放的是用户自己安装的软件。类似于 windows 下的 program files。

  • Var:存放的程序/系统的日志文件的目录。

  • Mnt: 当外接设备需要挂载的时候,就需要挂载到 mnt 目录下。

Linux 的基本指令

一、指令与选项

什么是 Linux 的指令?

​ 指在 Linux 终端(命令行)中输入的内容就称之为指令


一个完整的指令的标准格式:Linux 通用的格式

#指令主体 [选项] [操作对象]

​ 一个指令可以包含多个选项

​ 操作对象也可以是多个

二、基础指令

1、ls 指令

含义:ls(list)

  • 用法1:#ls

    • 含义:列出当前工作目录下的所有文件/文件夹的名称
  • 用法2:#ls 路径

    • 含义:列出指定路径下的所有文件/文件夹的名称

      关于路径(重要):
      路径可以分为两种:相对路径、绝对路径
      相对路径:相对首先得有一个参照物(一般就是当前的工作路径);
      	相对路径的写法:在相对路径中通常会用到2个符号“./”【表示当前目录】、“../”【上一级目录下】。
      绝对路径:绝对路径不需要参照物,直接从根 “/”开始寻找对于路径;
      
      • 1
      • 2
      • 3
      • 4
      • 5
  • 用法3:#ls [选项] [路径]

    • 含义:在列出指定路径下的文件/文件夹的名称,并以指定的格式进行显示。

    • 常见的语法:

      ​ #ls -l 路径

      ​ #ls -la 路径

    • 选项解释:

      -l:表示list,表示以详细列表的形式进行展示

      -a:表示显示所有的文件/文件夹(包含了隐藏文件/文件夹)

      image-20221217210248762

      上述列表中的第一列字符表示文档的类型,其中 “-” 表示改行对应的文档类型为文件,“d” 表示文档类型为文件夹

      image-20221217210518907

      在 Linux 中隐藏文档一般都是以 “.” 开头。

  • 用法4:#ls -lh 路径

    • 含义:列出指定路径下的所有文件/文件夹的名称,以列表的形式并且在显示文档大小的时候以 可读性较高的形式显示

2、pwd 指令

  • 用法:#pwd (print working directory:打印当前工作目录)

3、cd 命令

  • 命令:#cd(change directory:改变目录)

  • 作用:用于切换当前的工作目录的

  • 语法:#cd 路径

    补充:
    在 Linux 中有一个特殊的符号 “~”,表示当前用户的家目录。
    切换的方式:#cd ~
    
    • 1
    • 2
    • 3

4、mkdir 指令

  • 指令: mkdir(make directory,创建目录)

  • 语法:#mkdir 路径 【路径,可以是文件夹名称也可以是包含名称的一个完整路径】

    image-20221217212508013

    注意: ls 列出的结果颜色说明,其中蓝色的名称表示文件夹,黑色的表示文件,绿色的其权限为拥有所有权限

  • 语法2:#mkdir -p 路径

    • 含义:当一次性创建多层不存在的目录的时候,添加 -p参数,否则会报错
  • 语法3:#mkdir 路径1 路径2 路径3 …【表示一次性创建多个目录】

5、touch 指令

  • 指令:touch
  • 作用:创建文件
  • 语法:#touch 文件路径【路径可以是直接的文件名也可以是路径】

6、cp 指令

  • 指令:cp (copy,复制)

  • 作用:复制文件/文件夹到指定的位置

  • 语法:#cp 被复制的文档路径 文档被复制到的路径

    注意:Linux 在复制过程之中是可以重新对新位置的文件进行重命名的,但是如果不是必须的需要,则建议保持前后名称一致。

注意:当使用cp命令进行文件夹复制操作的时候需要添加选项 “-r”【-r 表示递归复制】 ,否则目录将被忽略。

7、mv 指令

  • 指令: mv(move,移动,剪切)
  • 作用:移动文档到新的位置
  • 语法:#mv 需要移动的文档路径 需要保存的位置路径
补充:在 Linux 中重命名的命令也是 mv,语法和移动语法一样。
  • 1

8、rm 命令

  • 指令: rm(remove,移除、删除)

  • 作用:移除/删除一个文档

  • 语法:#rm 选项 需要移除的文档路径

  • 选项:

    -f: force,强制删除,不提示是否删除

    -r: 表示递归

  • 删除一个文件

image-20221218004450595

在删除的时候如果不带选项,会提示是否删除,如果需要确认则输入 ”y/yes“,否则输入 ”n/no“按下回车。

注意:如果在删除的时候不想频繁的确认,则可以在指令中添加选项 ”-f“,表示 force(强制)。

  • 删除一个文件夹

image-20221218005230907

注意:删除一个目录的时候需要做递归删除,并且一般也不需要进行删除访问,所以移除目录的时候一般需要使用 -rf 选项。

  • 删除多个文档

image-20221218005531779

  • 要删除一个目录下有公共特性的文档,例如都以 Linux 开头

image-20221218005757623

其中 称之为通配符,意思是表示任意的字符,Linux,表示只要以文件以 Linux 开头,后续字符则不管**。

9、vim 命令

  • 指令: vim(vim是一款文本编辑器)

  • 语法:#vim 文件的路径

  • 作用:打开一个文件(可以不存在,也可以存在)

  • 使用 vim 来打开文件

    ​ 退出打开的文件,在没有按下其他命令的时候,按下 shift+英文冒号,输入 q,按下回车即可。

10、输出重定向

​ 一般命令的输出都会显示在终端中,有些时候需要将一些命令的执行结果想要保存到文件中,进行后续的分析/统计,则这时候需要使用到的 输出重定向技术

“>”:覆盖输出,会覆盖掉原先的文件内容

“>>”:追加输出,不会覆盖原始文件内容,会在原始内容末尾继续添加

  • 语法:#正常执行的指令 >/>> 文件的路径

    注意:文件可以不存在,不存在则新建

  • 使用覆盖重定向,保存 ls -la 的执行结果,保存到当前目录下的 ls.txt

image-20221218022006442

  • 使用追加重定向,保存 ls -la 的执行结果到 ls.txt 中

image-20221218022158709

11、cat 指令

  • 作用1:cat 有 直接 打开一个文件的功能。
  • 语法1:#cat 文件的路径
  • 作用2:cat 还可以对文件进行 合并
  • 语法2:#cat 待合并的文件路径1 待合并的文件路径2 … 文件路径 n > 合并之后的文件路径
  • 合并 3 个文件,并存到一个文件中【配合输出重定向使用】

image-20221218023037518

三、进阶指令(重点)

1、df 指令

  • 作用:查看磁盘空间
  • 语法:#df -h -h 表示以可读性较高的形式展示大小

image-20221218023233668

2、free 指令

  • 作用:查看内存使用情况
  • 语法:#free -m -m 表示以 mb 为单位查看

image-20221218023654161

剩余的真实可以用的内存为 1665mb

Swap: 用于临时内存,当系统真实内存不够用的时候可以临时使用磁盘空间来充当内存。

3、head 指令

  • 作用:查看一个文件的前 n 行,如果不指定 n,则默认显示前 10 行。
  • 语法:#head -n 文件路径 【n 表示数字】

image-20221218024735941

4、tail 指令

  • 作用1:查看一个文件的末 n 行,如果 n 不指定默认显示后 10 行
  • 语法:#tail -n 文件的路径 n 同样表示数字

image-20221218025015184

  • 作用2:可以通过 tail 指令来查看一个文件的动态变化
  • 语法:#tail -f[F] 文件路径

该命令一般用于查看系统的日志比较多。

5、less 指令

  • 作用:查看文件,以较少的内存进行输出,按下辅助功能键(数字+回车、空格键+上下方向键)查看更多
  • 语法:#less 需要查看的文件路径

6、wc 指令

  • 作用:统计文件信息 (包括行数、单词数、字节数)

  • 语法:#wc -lwc 需要统计的文件路径

    -l: 表示 lines,行数

    -w: 表示 words,单词数

    -c: 表示 bytes,字节数

7、date 指令(重点)

  • 作用:表示操作时间日期 读取、设置),shell指令

  • 语法1:#date 输出的形式:2018 年 3 月 24 日 星期六 15:54:28

  • 语法2:#date +%F(等价于#date “%Y-%m-%d”) 输出形式:2018-03-24

  • 语法3:#date “+%F %T” 引号表示让 “年月日与时分秒” 成为一个不可分割的整体

    等价操作 #date “+%Y-%m-%d %H:%M:%S”

    输出形式:2018-03-24 16:01:00

  • 语法4:获取之前或者之后的某个时间(备份)

    • #date -d “-1 day” “+%Y-%m-%d %H:%M:%S”
    • 符号的可选值:+(之后)或者 -(之前)
    • 单位的可选值:day(天)、month(月份)、year(年)
    %F:表示完整的年月日
    %T:表示完整的时分秒
    %Y:表示四位年份
    %m:表示两位月份(带前导0)
    %d:表示日期(带前导0)
    %H:表示小时(带前导0)
    %M:表示分钟(带前导0)
    %S:表示秒数(带前导0)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

8、cal 指令

  • 作用:用来操作日历的
  • 语法1:#cal 等价于 #cal -1 直接输出当前月份的日历
  • 语法2:#cal -3 表示输出上一个月 + 本月 + 下个月的日历
  • 语法3:#cal -y 年份 表示输出某一个年份的日历

9、clear/ctrl + L 指令

  • 作用:清除终端中已经存在的命令和结果(信息)。
  • 语法:clear 或者快捷键:ctrl + L

需要注意的是,该命令并不是真的清除了之前的信息,而是把之前信息的隐藏到了最上面,通过滚动条继续查看以前的信息。

10、管道(重要)

  • 管道符:|

  • 作用:管道一般可以用于 “过滤”,“特殊”,“扩展处理”。

  • 语法:管道不能单独使用,必须需要配合前面所讲的一些指令来一起使用,其作用 主要是辅助作用

  • 过滤案例(100%使用):需要通过管道查询出根目录下包含 “y” 字母的文档名称

    #ls /|grep y
    
    针对上面这个命令说明:
    	1、以管道作为分界线,前面的命令有个输出,后面需要先输入,然后再过滤,最后再输出,通俗的讲就是管道前面的输出就是后面指令的输入;
    	2、grep 指令:主要用于过滤
    
    • 1
    • 2
    • 3
    • 4
    • 5
  • #ps -ef | grep httpd

  • 特殊用法案例:通过管道的操作方法来实现 less 的等价效果(了解)

    • #cat 路径 | less

四、高级指令(重点)

1、hostname 指令

  • 作用:操作服务器的 主机名读取、设置)
  • 语法1:#hostname 含义:表示输出完整的主机名
  • 语法2:#hostname -f 含义 :表示输出当前主机名中的 FQDN(全限定 域名

image-20221218135945016

2、id 指令

  • 作用:查看一个用户的一些基本信息 (包含用户 id,用户组 id,附加组 id…),该指令如果不指定用户则默认当前用户。
  • 语法1:#id 默认显示当前执行该命令的用户的基本信息
  • 语法2:#id 用户名 显示指定用户的基本信息

image-20221218145707684

  • 验证上述信息是否正确?
    • 验证用户信息:通过文件 /etc/passwd
    • 验证用户组信息:通过文件 /etc/group

image-20221218150138218

3、whoami 指令

  • 作用:“我是谁?” 显示当前登录的用户名,一般用于 shell 脚本,用于获取当前操作的用户名方便记录日志。
  • 语法:#whoami

4、ps -ef 指令(重点)

  • 指令:ps

  • 作用:主要是查看服务器的进程信息

  • 选项含义:

    -e: 等价于 “-A”,表示列出全部的进程

    -f: 显示全部的列(显示全字段)

  • 执行结果:

image-20221218151402024

  • 列的含义:
    • UID: 该进程执行的用户 id;
    • PID: 进程 id;
    • PPID: 该进程的父级进程 id,如果一个程序的父级进程找不到,该程序的进程称之为僵尸进程;
    • C: CPU的占用率,其形式是百分数;
    • STIME: 进行的启动时间;
    • TTY: 终端设备,发起该进程的设备识别符号,如果显示 “ ?”则表示该进程并不是由终端设备发起;
    • TIME: 进程的执行时间;
    • CMD: 该进程的名称或者对应的路径;
  • 案例:(100%使用的命令)在 ps 的结果中过滤出想要查看的进程状态
    • #ps -ef | grep [进程名称]

5、top 指令

  • 作用:查看服务器的进程占的资源

  • 语法:

    • 进入命令:#top (动态显示)
    • 退出命令:按下 q 键
  • 输出结果:

image-20221218152920266

表头含义:
PID:进程id;
USER:该进程对应的用户;
PR:优先级;
NI::用户进程空间内改变过优先级的进程占用CPU百分比;
VIRT:虚拟内存;
RES:常驻内存;
SHR:共享内存
	计算一个进程实际使用的内存 = 常驻内存(RES)- 共享内存(SHR)
*S:表示进程的状态(sleeping,其中 S 表示睡眠,R 表示运行);
*%CPU:表示 CPU 的占用百分比;
*%MEM:表示内存的占用百分比;
TIME+:执行的时间;
*COMMAND:进程的名称或者路径;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

image-20221218154158933

  • 在运行 top 的时候,可以按下方便的快捷键
    • M: 表示将结果按照内存(MEM)从高到底进行降序排列;
    • P: 表示将结果按照 CPU 使用率从高到低进行降序排列;
    • 1: 当服务器拥有多个 cpu 的时候可以使用 “1” 快捷键来切换是否展示显示各个 cpu 的详细信息。

6、du -sh 指令

  • 作用:查看目录的真实大小

  • 语法:#du -sh 目录路径

  • 选项含义:

    • -s: summarles,只显示汇总的大小
    • -h: 表示以高可读性的形式进行显示
  • 案例:统计 “/root/yunweiheiniux” 目录的实际大小

image-20221218170338446

  • 案例:统计 “/etc” 目录实际大小

image-20221218170435916

7、find 指令

  • 作用:用于查找文件 (其参数有 55个之多)

  • 语法:#find 路径范围 选项 选项的值

  • 选项:
    • -name: 按照文档名称进行搜索(支持模糊搜索)
    • -type: 按照文档的类型进行搜索
      • 文档类型:“-” 表示文件(在使用find 的时候需要用 f 来替换),“d” 表示文件夹
  • 案例:使用 find 来搜索 httpd.conf
    • #find / -name httpd.conf

image-20221218175947894

  • 案例:搜索 etc 目录下所有的 conf 后缀文件
    • #find / etc -name .conf

image-20221218180206613

  • 案例:使用 find 来搜索 /etc 目录下所有的文件
    • #find /etc/same.d/ -type f

image-20221218180454327

  • 案例:使用 find 来搜索 /etc/目录下所有的文件夹
    • #find /etc -type d

image-20221218181301333

8、service 指令(重点)

  • 作用:用于控制一些软件的服务启动/停止/重启

  • 语法:#service 服务名 start/stop/restart

  • 例如:需要启动本机安装的 Apache(网络服务器软件),其服务名 httpd
    • #service httpd start

image-20221218182343402

  • 通过 ps 命令来检查 httpd 服务是否启动:

image-20221218182638008

9、kill 指令(重点)

  • 作用:表示杀死进程 (当遇到僵尸进程或者出于某些原因需要关闭进程的时候)

  • 语法:#kill 进程 PID (语法需要配合 ps 一起使用)

  • 案例:需要 kill 掉 Apache 的进程

image-20221218183009523

  • 与 kill 命令作用相似但是比 kill 更加好用的杀死进程的命令:killall
    • 语法:#killall 进程名称

      image-20221218183442292

10、ifconfig 指令(重点)

  • 作用:用于操作网卡相关的指令
  • 简单语法:#ifconfig (获取网卡信息)

image-20221218183733426

  • Eth0 表示 Linux 中的一个网卡,eth0 是其名称。Lo(loop,本地回还网卡,其 ip 地址一般都是 127.0.0.0)也是一个网卡的名称。

image-20221218184003964

注意:inet addr 就是网卡的 ip 地址

11、reboot 指令

  • 作用:重新启动计算机
  • 语法1:#reboot 重启
  • 语法2:#reboot -w 模拟重启,但是不重启 (只写关机与开机的日志信息)

12、shutdown 指令

  • 作用: 关机 (慎用)

  • 语法1:#shutdown -h now “关机提示” 或者 #shutdown -h 15:25 “关机提示”

  • 案例:设置Linux 系统关机时间在 12:00

image-20221218185230119

  • 如果想要取消关机计划的话,则可以按照以下方式去尝试:
    1. 针对于 centos7.x 之前的版本:ctrl+c
    2. 针对于 centos7.x (包含)之后的版本:#shutdown -c
    除了 shutdown 关机以外,还有以下几个关机命令:
    #init 0
    #halt
    #poweroff
    
    • 1
    • 2
    • 3
    • 4

13、uptime 指令

  • 作用:输出计算机的持续在线时间(计算机从开机到现在运行的时间)
  • 语法:#uptime

image-20221218190546223

14、uname 指令

  • 作用:获取计算机操作系统相关信息
  • 语法1:#uname 获取操作系统的类型
  • 语法2:#uname -a all,表示获取全部的系统信息(类型、全部主机名、内核版本、发布时间、开源计划)

image-20221218191523855

15、netstat -tnlp 指令

  • 作用:查看网络连接状态
  • 语法:#netstat -tnlp

image-20221218191838063

  • 选项说明
    • -t: 表示只列出 tcp 协议的连接;
    • -n: 表示将地址从字母组合转化成 ip地址,将协议转化成端口号来显示;
    • -l: 表示过滤出 “state(状态)” 列中其值为 LISTEN(监听)的连接;
    • -p: 表示显示发起连接的进程 pid 和进程名称;

16、man 指令

  • 作用:manual,手册 (包含了 Linux 中全部命令手册,英文)

  • 语法:#man 命令 (退出按下 q 键)

  • 案例:通过 man 命令查询 cp 指令的用法
    • #man cp

五、练习题

  1. 如何通过命令行重启 Linux 操作系统?
    • #reboot
  2. 如何在命令行中快速删除光标前/后的内容?
    • 前:ctrl + u
    • 后:ctrl + k
  3. 如何删除 /tmp 下所有 A 开头的文件?
    • #rm -f /tmp/A
  4. 系统重要文件需要备份,如何把 /etc/passwd 备份到 /tmp 目录下?
    • #cp /etc/passwd /tmp/
  5. 如何查看系统最后创建的 3 个用户?
    • #tail -3 /etc/passwd
  6. 什么命令可以统计当前系统中一个有多少账户?
    • #wc -l /etc/passwd #cat /etc/passwd | wc -l
  7. 如何创建 /tmp/test.conf 文件?
    • #touch /tmp/test.conf
  8. 如何通过 vim 编辑打开 /tmp/test.conf ?
    • vim /tmp/test.conf
  9. 如何查看 /etc/passwd 的头 3 行和尾 3 行?
    • #head -3 /etc/passwd
    • #tail -3 /etc/passwd
  10. 如何一次性创建目录 /text/1/2/3/4 ?
    • #mkdir -p /text/1/2/3/4
  11. 如何最快的返回到当前账户的家目录?
    • #cd ~ #cd
  12. 如何查看 /etc 所占的磁盘空间 ?
    • #du -sh /etc
  13. 如何删除 /tmp 下所有的文件 ?
    • #rm -rf /tmp/*
  14. 尝试启动 Apache 的服务,并且检查是否启动成功。
    • service httpd start
    • ps -ef | grep httpd
  15. 使用已学命令杀死 Apache 的进程。
    • #killall httpd

编辑器之神 —— vim 编辑器

一、vi 介绍

Vi 编辑器是所有 Unix 及 Linux 系统下的标准的编辑器,类似于 windows 系统下的 notepad(记事本)编辑器,由于在 Unix 及 Linux 系统的任何版本,Vi 编辑器是完全相同的,因此可以在其他任何介绍 vi 的地方都能进一步了解它,Vi 也是 Linux 中最基本的文本编辑器,学会它后,我们将在 Linux 的世界里畅行无阻,尤其是在终端中。

关于 vim:

vi 和 vim 都是 Linux 中的编辑器,不同的是,vim 比较高级,可以视为 vi 的升级版本。vi 使用于文本编辑,但是 vim 更适用于 coding。

Vim 点是光标的移动,模式切换,删除,查找替换,复制,粘贴,撤销命令的使用。

二、vim 三种模式(重点)

Vim 中存在三种模式(大众的认知):命令模式、编辑模式(输入模式)、末行模式(尾行模式)

  • 命令模式:在该模式下是不能对文件直接编辑,可以输入快捷键进行一些操作 (删除行,复制行,移动光标,粘贴等等)【打开文件之后默认进入的模式】;
  • 编辑模式:在该模式下可以对文件的内容进行编辑;
  • 末行模式:可以在末行输入命令来对文件进行操作 (搜索、替换、保存、退出、撤销、高亮等等)

Vim 的打开文件的方式(4种,要求掌握的就前三种)

  • #vim 文件路径 作用:打开指定的文件
  • #vim +数字 文件路径 作用:打开指定的文件,并且将光标移动到指定行
  • #vim +/关键词 文件路径 作用:打开指定的文件,并且高亮显示关键词
  • #vim 文件路径 1 文件路径 2 文件路径 3 作用:同时打开多个文件

重点:先复制出一个 /etc/passwd 文件,复制当前家目录下(千万不要在 etc 下直接修改!!!

image-20221218223419552

后续的一切 vim 命令都是基于 /root/passwd 文件进行操作。

退出方式:输入:q 按下回车即可。

image-20221218224026880

三、命令模式

注意:该模式是打开文件的第一个看到的模式(打开文件即可进入)

1、光标移动

  1. 光标移动到行首
    • 按键:shift + 6 或 ^ (T 字母上的 6,不要按小键盘的 6)
  2. 光标移动到行尾
    • 按键:shift + 4 或 $(R 字母的左上角的 4,不是小键盘的 4)
  3. 光标移动到首行
    • 按键:gg
  4. 光标移动到末行
    • 按键:G
  5. 翻屏
    • 向上翻屏:按键:ctrl + b / PgUp
    • 向下翻屏:按键:ctrl + f / PgDn

2、复制操作

  1. 复制光标所在行
    • 按键:yy
    • 粘贴:在想要粘贴的地方按下 p 键
  2. 以光标所在行为准(包含当前行),向下复制指定的行数
    • 按键:数字 + yy
  3. 可视化的复制
    • 按键:ctrl + v,然后按下 ↑↓←→ 方向键来选中需要复制的区块,按下 yy 键进行复制,最后按下 p 键粘贴

3、剪切/删除

  1. 剪切/删除光标所在行
    • 按键:dd (删除之后下一行上移)

    • 注意:dd 严格意义上说是剪切命令,但是如果剪切了不粘贴就是删除的效果。

  2. 剪切/删除光标所在行为准(包含当前行),向下删除/剪切指定的行
    • 按键:数字 dd (删除之后下一行上移)
  3. 剪切/删除光标所在的当前行,但是删除之后下一行不上移
    • 按键:D (删除之后当前行会变成空白行)

4、撤销/恢复

  • 撤销:输入 :u(不属于命令模式) 或者 u(undo)
  • 恢复:ctrl + r 恢复(取消)之前的撤销操作

5、扩展1:光标的快速移动

  1. 快速将光标移动到指定的行
    • 按键:数字 G
  2. 以当前光标为准向上/上下移动 n 行
    • 按键:数字 ↑,数字 ↓
  3. 以当前光标为准向左/向右移动 n 字符
    • 按键:数字 ←,数字 →
  4. 末行模式下的快速移动方式:移动到指定的行
    • 按键:输入英文 “:”,其后输入行数数字,按下回车

四、模式间的切换

image-20221219113718991

五、末行模式

  • 进入方式:由命令模式进入,按下 “:” 或者 ”/(表示查找)“即可进入

  • 退出方式:
    • 按下 Esc
    • 连按 2 次 Esc 键
    • 删除末行全部输入字符
  • 1、保存操作(write)
    • 输入:”:w“ 保存文件
    • 输入:”:w 路径“ 另存为
  • 2、退出(quit)
    • 输入:”:q“ 退出文件
  • 3、保存并退出
    • 输入:”:wq“ 保存并且退出
  • 4、强制(!)
    • 输入:”:q!“ 表示强制退出,刚才做的修改操作不做保存
  • 5、调用外部命令(了解)
    • 输入:”:! 外部命令“
  • 6、搜索/查找
    • 输入:“/关键词”

    • 例如:我想在 passwd 文件中搜索 “sbin” 关键词

      image-20221219115812191

      在搜索结果中切换上/下一个结果:N/n (next)

      如果需要取消高亮,则需要输入:“:nohl”【no highlight】

  • 7、替换
推荐阅读
相关标签