> 文档中心 > Linux入门

Linux入门

文章目录

  • 1 Linux系统概述
    • 1.1 Linux简介
      • 1.1.1 什么是操作系统
      • 1.1.2 常见操作系统
      • 1.1.3 什么是linux
      • 1.1.4 Linux结构
      • 1.1.5 Linux特点
    • 1.2 常用远程接入工具介绍
    • 1.3 Linux目录结构
  • 2 Linux用户管理
    • 2.1 Linux的用户与群组
      • 2.1.1 用户标识符:UID与GID
      • 2.1.2 /etc/passwd 文件结构
      • 2.1.3 /etc/shadow文件结构
      • 2.1.4 /etc/group 文件结构
    • 2.2 群组管理
      • 2.2.1 新增群组
      • 2.2.2 修改群组
      • 2.2.3 删除群组
    • 2.3 用户管理
      • 2.3.1 新增用户
      • 2.3.2 设置用户密码
      • 2.3.3 修改用户属性
      • 2.3.4 删除用户
      • 2.3.5 切换用户
      • 2.3.6 用户查询相关命令
  • 3 文件的目录管理
    • 3.1 目录和路径
      • 3.1.1 绝对路径和相对路径
      • 3.1.2 显示当前工作目录
      • 3.1.3 更改工作目录
    • 3.2 Linux文件和目录权限管理
      • 3.2.1 查看文件和目录
      • 3.2.2 文件属性和权限说明
      • 3.2.3 修改属主
      • 3.2.4 修改所属群组
      • 3.2.5 修改权限
    • 3.3 文件和目录基本操作
      • 3.3.1 增加
      • 3.3.2 删除
      • 3.3.3 查找
      • 3.3.4 查看
      • 3.3.5 管道命令
      • 3.3.6 输出重定向
  • 4 vim编辑器
    • 4.1 为什么要学习vim
    • 4.2 vim的三种模式
    • 4.3 vim常用按键说明
      • 4.3.1 移动光标按键说明(一般模式)
      • 4.3.2 搜索和替换按键说明(一般模式)
      • 4.3.3 复制、粘贴和删除按键说明(一般模式)
      • 4.3.4 一般模式进入编辑模式按键说明
      • 4.3.5 一般模式切换到指令模式按键说明
  • 5 Linux文件系统管理
    • 5.1 Linux文件系统简介
      • 5.1.1 文件系统的概念
      • 5.1.2 文件系统的分类
      • 5.1.3 目录树的读取
    • 5.2 Linux的磁盘分区介绍
    • 5.3 配置文件系统分区
    • 5.4 管理Linux文件系统
      • 5.4.1 查看分区使用情况
      • 5.4.2 查看打开的文件
  • 6 Linux网络管理
    • 6.1 网络基础
      • 6.1.1 Linux网络术语
      • 6.1.2 IP的分类
    • 6.2 配置网络接口
      • 6.2.1 使用命令配置网络接口
      • 6.2.2 手动编辑文件配置网络接口
    • 6.3 配置路由
      • 6.3.1 查看路由表
      • 6.3.2 新增路由
      • 6.3.3 删除路由
    • 6.4 网络侦测
      • 6.4.1 网络侦测命令
      • 6.4.2 侦测目的节点是否可达
      • 6.4.3 侦测到达目的节点路由
  • 7 Linux进程管理和服务管理
    • 7.1 查看和管理进程
      • 7.1.1 进程的概念与分类
      • 7.1.2 查看进程
      • 7.1.3 结束进程
    • 7.2 任务管理
      • 7.2.1 任务的概念和相关术语
      • 7.2.2 任务管理相关命令
      • 7.2.3 周期计划任务
      • 7.2.4 定时计划任务
    • 7.3 服务管理
      • 7.3.1 systemd介绍
      • 7.3.2 systemd管理服务
      • 7.3.3 journald查看日志
  • 8 Linux系统监控
    • 8.1 监控EulerOS系统
      • 8.1.1 概述
      • 8.1.2 监控启动日志
      • 8.1.3 监控硬件信息
      • 8.1.4 监控系统和进程
    • 8.2 查看登陆信息
      • 8.2.1 查看登陆信息的命令
      • 8.2.2 查看登陆系统的用户
      • 8.2.3 查看登陆用户的详细信息
      • 8.2.4 查看曾经登陆过系统的用户信息
      • 8.2.5 查看用户最近一次登陆的信息
  • 9 简单练习
    • 9.1 开发基础
    • 9.2 更换Linux系统上某个jar

1 Linux系统概述

1.1 Linux简介

1.1.1 什么是操作系统

操作系统是管理和控制计算机硬件资源的计算机程序。

1.1.2 常见操作系统

Windows、os、linux、unix

1.1.3 什么是linux

  • Linux 是一套免费使用和自由传播的类Unix操作系统.
  • Linux 可以管理计算机所有硬件资源,进行CPU调度,分配工作桌面。

1.1.4 Linux结构

  • 应用程序
  • shell程序(Bash)
    • Bourne
    • shell(sh)
    • C shell(csh)和korn shell(ksh)
    • Bash shell(/bin/bash)
  • Linux内核kernel
  • 硬件系

1.1.5 Linux特点

  • 多任务,多用户
  • 功能强大的开发者交互界面
  • 安全保护机制,稳定性好
  • 用户界面,强大的网络支持
  • 移植性好

1.2 常用远程接入工具介绍

  • XShell
  • Xftp

1.3 Linux目录结构

  • var:日志文件
  • opt:第三方应用程序

2 Linux用户管理

2.1 Linux的用户与群组

2.1.1 用户标识符:UID与GID

  • Linux系统是通过ID来区分用户的,ID分为User ID和Group ID,用户名或者组名只是方便人们的记忆。
  • 用户PID保存路径:/etc/passwd
  • 组ID保存路径:/etc/group

2.1.2 /etc/passwd 文件结构

  • passwd文件中记录的是单个用户的登录信息。

  • 每一行代表一个用户,用冒号":"分隔成七个字段,记录了用户的7项基本信息

  • 七个字段的意义说明如下:

    字段数 意义
    1 用户登录名
    2 用户口令,此域中的口令是加密的。通常将passwd文件中的口令字段使用一个“x”或“*”来代替,将/ete/shadow作为真正的口令文件。
    3 指定用户的UID。用户登录进系统后,系统通过该值识别用户。
    4 组标识号(GID):字段记录的是用户所属的用户组,它对应着/etc/group文件中一条记录。
    5 34567描述信息,用来保存用户的真实姓名和个人细节。
    6 指定用户的主目录的绝对路径。
    7 用户登录系统时运行的shel1程序名称,通常是一个She11程序的全路径名,例如/bin/bash.

2.1.3 /etc/shadow文件结构

  • 用户密码信息存储在/etc/shadow文件中,文件中每一行表示一个系统用户的密码记录,用冒号":"分隔成八项,支持密码过期设定等功能。八个字段的意义说明如下:
字段数 意义
1 账号名称
2 用户密码(经过sha-512加密)
3 最近密码更改日期
4 密码再过几天可以被变更(和第三个字段相比)
5 密码再过几天必须被变更(和第三个字段相比)
6 密码过期前几天系统提醒用户(默认为一周)
7 密码过期几天后帐号会被取消
8 从1970年1月1日算起,多少天后帐号失效。

2.1.4 /etc/group 文件结构

  • /etc/group文件记录了GID和组名的对应关系,以及群组中的包含的用户

2.2 群组管理

2.2.1 新增群组

  • [语法]:groupadd [-option] [群组名]
    [说明]:本命令用于新增群组,常用参数为:
    • -g:指定组ID

2.2.2 修改群组

  • [语法]:groupmod [-g n] [群组名]
    [说明]:本命令用于修改群组,常用参数为:
    • -g:修改组ID
    • -n:修改组名

2.2.3 删除群组

  • [语法]:groupdel [群组名]
    [说明]:本命令用于删除群组

2.3 用户管理

2.3.1 新增用户

  • [语法]:useradd [-option] [用户名]
    [说明]:本命令用于新增系统用户,常用参数为:
    • -d:设置用户的家目录
    • -m:如果用户家目录不存在,则自动创建家目录
    • -u:设置用户的UID,如果不带此参数,系统会自动设置UID
    • -g:设置初始GID或组名,若不带此参数,系统会建立和用户名相同的组或根据配置文件自动设置
    • -G:设置用户加入的其它群组(非初始群组,/etc/group第四个字段)
    • -s:指定用户的shell,如/bin/csh

2.3.2 设置用户密码

  • [语法]:passwd [用户名]
    [说明]:本命令用于设置和修改用户密码

2.3.3 修改用户属性

  • [语法]:usermod [-option] [用户名]
    [说明]:本命令用于修改用户账号属性,常用参数为:
    • -d:修改用户/home目录
    • -e:修改用户密码失效日期
    • -g:修改初始群组

2.3.4 删除用户

  • [语法]:userdel [-option] [用户名]
    [说明]:本命令用于删除用户账号,常用参数为:
    • -r:连用户home目录一起删除

2.3.5 切换用户

  • [语法]:su [-] [用户名]
    [说明]:改变用户ID

2.3.6 用户查询相关命令

  • who:查询当前登录系统的所有用户
  • id:查询当前用户的GID,UID
  • finger:查询用户的属性信息

3 文件的目录管理

3.1 目录和路径

3.1.1 绝对路径和相对路径

  • 绝对路径:由根目录(/)开始写起的文件名或者目录名称,如/home/smc/bin/smsc
  • 相对路径:相当于当前路径的文件名或者目录名称写法。如…/…/mtserver,./代表当前目录,…/代表上一级目录

3.1.2 显示当前工作目录

  • [语法]:pwd
    [说明]:本命令用于显示当前的工作目录 present working dir

3.1.3 更改工作目录

  • [语法]:cd [目录]
    [说明]:本命令用于改变当前的工作目录,无参数时使用环境变量$HOME作为其参数,$HOME一般为登录时进入的路径。其中路径包括绝对路径和相对路径。

3.2 Linux文件和目录权限管理

  • 文件的权限意义
    • r(read):可读取此文件的实际内容
    • w(write):可以编辑此文件内容(不含删除该文件)
    • x(execute):该文件具有被系统执行的权限
  • 目录的权限意义
    • r(read):具有读取目录结构列表的权限
    • w(write):具有修改目录结构列表的权限
    • x(execute):具有进入该目录的权限

3.2.1 查看文件和目录

  • [语法]:Is [-option] [目录或文件]
    [说明]:Is命令列出指定目录下的文件,缺省目录为当前目录,缺省输出顺序为纵向按字符顺序排列。
    常用的命令选项为:
    • -l:以长格式列出目录下的文件
    • -a:以短格式列出目录下的所有文件(包含隐含文件)
    • [注]选项可混合使用。

3.2.2 文件属性和权限说明

  • 文件是Linux操作系统中组织信息的基本单元。
    Linux入门

3.2.3 修改属主

  • [语法]:chown [-R] 文件属主 文件
    [说明]:文件的UID表示文件的文件属主,文件属主可用数字表示,也可用一个有效的用户名表示,此命令改变一个文件的UID,仅当此文件的文件属主或超级用户可使用。

3.2.4 修改所属群组

  • [语法]:chgrp [-R] 属有群组 文件
    [说明]:文件的GID表示文件的文件属有群组,文件所属群组可用数字表示,也可用一个有效的用户名表示,此命令改变一个文件的ID,仅当此文件的文件属主或超级用户可使用。

3.2.5 修改权限

  • [语法]:chmod [-options] mode files chmod[ugoa][+]-|=)[rwx] 文件
    [说明]:改变文件的读、写和可执行权限。

3.3 文件和目录基本操作

3.3.1 增加

  • 新建文件
    • [语法]:touch 文件名
      [说明]:本命令touch命令其功能是创建新的空文件,改变已有文件的时间截属性。
  • 新增目录
    • [语法]:mkdir [-m 模式] [-p] 目录名
      [说明]:本命令用于建立目录,目录的存取模式由掩码(umask)决定,要求对其父目录具有写权限
      • -m:按指定存取模式建立目录。
      • -p:建立目录时建立其所有不存在的父目录,这样可一次建立多层目录
  • 复制文件或者目录
    • [语法]:cp [option] 源文件或目录 目的文件或目录
      [说明]:本命令用于本地主机复制文件或目录,要求对其父目录具有写权限
    • [语法]:scp [option] 源文件或目录 目的文件或目录
      [说明]:本命令用于网络互通的远程主机复制文件或目录,要求对其父目录具有写权限
      • -r:递归复制整个目录。
  • 移动文件或者目录
    • [语法]:mv [-fiu] 源文件或目录目的路径
      [说明]:本命令用于移动文件或目录,要求对其父目录具有写权限

3.3.2 删除

  • 删除目录
    • [语法]:rmdir [-p] 目录名
      [说明]:本命令用于建立目录,要求对其父目录具有写权限
      • -p:删除目录和其父目录,这样可一次删除多个目录
  • 删除文件或目录
    • [语法]:rm [-fir] 文件或目录
      [说明]:本命令用于删除文件或目录,要求对其父目录具有写权限

3.3.3 查找

  • 查找文件或者目录路径
    • [语法]:find path [-option] [查找条件]
      [说明]:本命令用于在硬盘中查找文件或目录的路径(速度较慢)
      -name 根据文件名查找(精确查找)
    • [例子]:
      • find / -name test.txt 从根目录下开始查找精确匹配test.txt名
        字的文件路径
      • find ./ -name"*test*"从当前目录下开始查找包含test名字的所有
        文件和目录路径(*通配任意字符)

3.3.4 查看

  • 常用的查看文件内容命令:
    • cat:直接查阅文件内容,不能翻页
    • more:翻页查看文件内容
    • less:翻页阅读,和more类似,但操作按键比more更弹性
    • head:查看文档的前面几行内容,默认10行
    • tail:查看文件的最后面几行内容,默认10行
  • 查找文件内容
    • [语法]:grep [-cin] '目标字符串' filename
      [说明]:grep(global search regular expression(RE)and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。
      • -c:计算找到’搜寻字符串的行数
      • -i:忽略大小写的不同,所以大小写视为相同
      • -n:顺便输出行号
      • -l:根据文件内容查找文件,只显示包含该内容的文件名
      • -r:根据文件内容递归查找文件,并打印对应内容

3.3.5 管道命令

  • 管道:将一个命令的输出连接到另一个命令的输入
    符号:|
  • 例如:cat /etc/passwd | grep oracle

3.3.6 输出重定向

  • 标准文件:stdin,stdout,stderr
    • 对应的文件描述符为0,1,2
  • 输出重定向:>(覆盖导入),>>(从文件末尾导入)
  • 输入重定向:<
  • 例如:
    • Is -I > Is.out(ls -I 命令重定向到文件Is.out中。)
    • find / -name filename 2 > find.txt(将命令错误输出重定向到文件中。)
    • find / -name filename > find.txt(将命令正确输出重定向到文件中。)
    • find / -name filename&> find.txt(将命令所有输出重定向到文件中。)

4 vim编辑器

4.1 为什么要学习vim

  • vim是类Unix系统内置编辑器,其它文本编辑器不一定存在
  • 很多软件编程接口都会主动呼叫
  • vim具有程序编辑能力
  • 程序简单、编辑速度快

4.2 vim的三种模式

  • 一般模式:光标移动、数据搜索、删除字符、删除整、内容复制、贴贴数据
  • 编辑模式:以插入或者取代来编辑文件内容
  • 指令模式:读取、存储文件
    在这里插入图片描述

4.3 vim常用按键说明

4.3.1 移动光标按键说明(一般模式)

快捷操作 效果
上下左右箭头 上下左右移动光标
0或者home键 移动光标到行首字符处
$或者end键 移动光标到行尾字符处
gg 移动光标到第一行
G 移动光标到最后一行
nG 移动光标到第n行
:set nu 显示行号

4.3.2 搜索和替换按键说明(一般模式)

快捷操作 效果
/word 向光标之下搜索名为word的字符串
?word 向光标之上搜索名为word的字符串
n 重复前一个搜寻动作。如果上一个动作是向下搜索名为word的字符串,那么,n代表继续向下搜索
N 和n相反。如上一个动作是向下搜索名为word的字符串,那么,N代表向上搜索
:n1,n2s/word1/word2/g n1和n2为数字。在n1和n2行之间搜索word1字符串,并且将改字符串替代为word2
:1,$s/word1/word2/g 从第一行到最后一行,搜索word1字符串,并替代为word2
:1,$s/word1/word2/gc 从第一行到最后一行,搜索word1字符串,并替代为word2,并且在替换之前要求用户确认

4.3.3 复制、粘贴和删除按键说明(一般模式)

快捷操作 效果
x,X x为删除光标所在处字符依次向后删除一个字符,相当于del键,X为向前删除一个字符,相当于backspace键
nx n为数字,连续向后删除n个字符
dd 删除光标所在行一整行数据
ndd 删除光标所在行向下n行数据
уу 复制光标所在行
nyy 复制光标所在行向下n行数据
p 为将已经复制的数据,从光标的下一行开始粘贴。比如,我现在光标在第20行,并且复制了10行数据。p为将数据粘贴在21-30行
u 复原上一个动作。取消操作的意思
. 重复上一个动作

4.3.4 一般模式进入编辑模式按键说明

快捷操作 效果
i 进入Insert模式,从目前光标所在处插入。
a 进入Insert模式,从目前光标所在处的下一个字符开始插入
o 进入Insert模式,英文字母0。从目前光标所在处的下一行插入新的一行
r,R 进入Replace模式,r取代光标所在字符一次,R为一直取代光标所在字符,直到按Esc为止
ESC 退出编辑模式到一般模式

4.3.5 一般模式切换到指令模式按键说明

快捷操作 效果
:w 将编辑的数据写入硬盘中
wq 保存编辑好的数据并退出vim编辑器
:q! 强制退出,不保存编辑的数据
ZZ 若文件没有被修改,则不存储退出;如果文件被修改,则存储退出
:w filename 将编辑好的文件另存为文件名为filename的文件
:r filename 将文件名为filename的文件内容读取到光标的后面

5 Linux文件系统管理

5.1 Linux文件系统简介

5.1.1 文件系统的概念

  • 文件系统:操作系统用于明确存储和组织计算机数据的方法,即对一个存储设备上的数据和元数据进行组织的机制。它使得对数据的访问和查找变得容易。
    在这里插入图片描述

5.1.2 文件系统的分类

  • 是否有日志?
    • 传统型文件系统
    • 日志型文件系统
  • 如何查找数据?
    • 索引式文件系统:将文件属性数据和实际内容分别存放在不同的区块,通过属性数据,可以快速找到实际数据所在。
      在这里插入图片描述

    • 非索引式文件系统:只有block存在,读取数据时,需要一个block一个block读取,效率较低。
      Linux入门

5.1.3 目录树的读取

  • 从文件系统的顶层读取,获取inode号码,验证inode权限,然后根据该inode读取block内的文件名数据,再一层层往下读取到正确的档案内容。
    Linux入门

5.2 Linux的磁盘分区介绍

  • Linux分区类型:安装系统时首先会接触到分区。硬盘分区实质上是对硬盘的一种格式化,将硬盘逻辑的分成不同的槽/块。让数据能够分类存放在硬盘的不同区域中。以便更好地管理数据。
  • 硬盘分区按照功能的不同,可以分为以下几类:
    • 主分区(primary)3个
    • 扩展分区(extended)1个
    • 逻辑分区(logical)N个
  • Linux分区命名方法
    • [语法]:fdisk -l 查看磁盘分区
    • Linux:/dev/hda2
      • h:IDE接口
      • s:SCSI接口
      • d:设备类型,硬盘
      • a:第1块硬盘,对应第2块为b
      • 2:分区编号

5.3 配置文件系统分区

  • 创建分区
    • [语法]:fdisk 设备名 输入参数n后,可以新建一个分区
  • 创建文件系统
    • [语法]:mkfs [-t类型] [-b block大小] 设备名称
    • [说明]:本命令用于创建文件系统,可指定文件系统的类型和block大小
      • -t 指定文件系统类型,如ext3
      • -b 指定block大小,单位bytes
  • 手动挂载文件系统
    • 挂载:将文件系统和目录树结合的动作
    • [语法]:mount 设备名挂载点
  • 手动卸载文件系统
    • 卸载:将文件系统和目录树分离的动作
    • [语法]:umount 设备名或挂载点
  • 自动挂载文件系统
    • /etc/fstab配置了开机自动挂载的文件系统,系统挂载有如下限制:

      • /目录是必须挂载的,而且一定要先于其余挂载点被挂载进来挂载点必须是已经存在的目录,可任意指定
      • 所有文件系统只能在同一时间,挂载一次
    • /etc/fstab每行有六个字段,各个字段意义如下表:

      字段序号 字段意义 说明
      1 文件系统 可以填写设备文件名、卷标或者UUID
      2 挂载点 已经存在的目录绝对路径,特殊的分区如swap,不需要挂载点
      3 文件系统类型 如ext3、ext4
      4 文件系统参数 多种参数组合、不同参数之间用“,”隔开
      5 是否采用Dump备份 0=不备份, 1=备份
      6 开机是否自检 0=不采用fsck自检, 1=采用fsck自检

5.4 管理Linux文件系统

5.4.1 查看分区使用情况

  • df命令查看文件系统的磁盘空间占用情况,主要参数:
    • -h:以容易理解的格式印出文件系统大小,例如136KB、24MB,21GB。
    • -i:显示inode信息而非块使用量。
  • du命令查询文件或目录的磁盘使用空间,主要参数
    • -a:显示全部目录和子目录下的每个档案所占的磁盘空间
    • -s:只显示大小的总合(summarize)
    • -h:以容易理解的格式输出文件大小信息(例如,234M、2G)

5.4.2 查看打开的文件

  • Isof即可显示系统打开的文件,必须以root用户的身份运行它才能够充分地发挥其功能。
  • 直接运行lsof命令时默认将显示所有进程打开的所有文件。

6 Linux网络管理

6.1 网络基础

6.1.1 Linux网络术语

  • 设备:主机内的网卡
  • 链路:设备到网络的连接
  • 接口:为使用设备,驱动程序在设备上创建了接口
  • 子网掩码:将IP地址划分成网络地址和主机地址两部分的掩码
  • 广播地址:到达本网段上所有主机的地址

6.1.2 IP的分类

  • A类网络:0.xxx.xxx.xxx 127.xxx.xxx.xxx
  • B类网络:128.xxx.xxx.xxx191.xxx.xxx.xxx
  • C类网络:192.xxx.xxx.xxx223.xxx.xxx.xxx
  • D类网络:224.xxx.xxx.xxx 239.xxx.xxx.xxx
  • E类网络:240.xxx.xxx.xxx255.xxx.xxx.xxx

6.2 配置网络接口

6.2.1 使用命令配置网络接口

  • [语法]:ifconfig 接口 [-option]
    [说明]:本命令用于查看或设置网络接口的参数,如IP,掩码等。

6.2.2 手动编辑文件配置网络接口

  • 手动编辑网络接口配置文件来配置网络
    • 配置文件在/etc/sysconfig/network-scripts/
    • 配置文件命名格式为ifcfg-[网卡名]
  • [语法]:ifconfig 接口 up
    [说明]:本命令用于读取配置文件的方式启动网络接口

6.3 配置路由

6.3.1 查看路由表

  • [语法]:route
    [说明]:本命令用于查看本机路由表

6.3.2 新增路由

  • [语法]:route add [-net|-host] [netmask Nm] [gw Gw] [[dev]
    [说明]:本命令新增到网段或者主机的路由
    [举例]:route add-net 192.168.101.0 netmask 255.255.255.0 dev enp3s0
  • [语法]:route add default gw
    [说明]:本命令暂时更改默认路由

6.3.3 删除路由

  • [语法]:route del [-net]-host] [netmask Nm] [gw Gw] [[dev] If]
    [说明]:本命令删除到网段或者主机的路由

6.4 网络侦测

6.4.1 网络侦测命令

  • ping命令:用来检查网络是否通畅或者网络连接速度
  • Traceroute命令:用于探测数据包从源到目的经过的路由器的IP

6.4.2 侦测目的节点是否可达

  • [语法]:ping [-option] address
    [说明]:常用参数:
    • -C:后接执行ping的次数。
    • -S:定义ICMP包的大小,默认为64bytes。

6.4.3 侦测到达目的节点路由

  • [命令]:traceroute [-option]
    [说明]:常用参数说明如下:
    • -n:不进行主机名解析,仅仅使用IP,速度较快
    • -l:后面接网络接口,如eth1,设定跟踪路由的源网卡

7 Linux进程管理和服务管理

7.1 查看和管理进程

7.1.1 进程的概念与分类

  • Linux中与进程相关的概念
    • 程序(program):文件中保存的一系列可执行命令
    • 进程(process):加载到内存中的程序,由CPU运行
    • 用户进程:用户通过终端加载的进程
    • 守护进程:与终端无关的系统进程,可基于时间或事件启动
  • 守护进程和用户进程的关系
    Linux入门

7.1.2 查看进程

  • ps命令
    • 可静态查看某一时间点进程信息
    • 使用format参数可将输出信息按照一定的格式组织,例如 ps ax --format 'cputime%C,nice%n,name%c'
  • ps aux:可以查看所有进程的相关信息
  • top命令:可连续观察进程动态,默认每3秒刷新一次,并且按CPU使用率由高到低排序
  • pstree指令:用ASCII字符显示树状结构,清楚地表达程序间的相互关系

7.1.3 结束进程

  • kill和killall命令
    • 可以结束进程
    • kill命令结束进程时跟进程号PID killall命令结束同一进程组内所有进程,跟进程名称
  • 当进程接收到kill信号时,它可能响应该信号,也可能忽视该信号
  • killall命令:杀死同一进程组内的所有进程。其允许指定要终止的进程的名称,而非PID。一般用于停止某项服务。
    • 例如:killall httpd
  • kill -9:将迫使进程在运行时突然终止,进程在结束后不能自我清理。有可能导致系统资源无法正常释放,一般不推荐使用,除非其他办法都无效。
  • 对于shell启动的后台任务,可以用kill %job_ID来停止任务。

7.2 任务管理

7.2.1 任务的概念和相关术语

  • 任务:登陆系统取得shell之后,在单一终端接口下启动的进程。在任务管理的行为当中,每个任务都是目前的shell的子进程,无法在一个shell下面去管理另外一个shell下面的任务。
  • 前台(foreground):在终端接口上,可以出现提示符让用户操作的环境。
  • 后台(background):不显示在终端接口的环境。
  • 任务管理的意义:可以多项任务并行,比如一边复制文件,一边搜索资料,一边用,vi编辑文档。

7.2.2 任务管理相关命令

  • 直接将程序放入后台处理,使用&号,如sleep 100 &
  • Jobs命令:可查看当前shell的后台的任务
  • 将正在运行的任务放入后台暂停,使用ctrl+z,比如在使用vim时,需要查找一个文件,可以在vim的一般模式下,使用ctrl+z,把vim放入后台暂停
  • fg %job ID:将任务放入前台执行
  • bg%job ID:将任务放入后台执行
  • 如果fg和bg后不加job ID,表示对当前任务进行操作

7.2.3 周期计划任务

语法:crontab [-u user] [-e|-I|-r]
- -u:指定用户,只有root能使用这个参数,帮其它用户建立、移除任务
- -e:编辑crontab任务内容
- -1:查阅crontab任务内容
- -r:移除所有的crontab的任务内容,若要移除一项内容,使用-e参数

  • 计划任务列表的写法

    Minute Hour Day Month Week command
    分钟 小时 星期 命令
    0-59 0-23 1-31 1-12 0-7 command
  • 上述字段中"Command"是必须指定的字段以外,其它字段皆为可选。对于不指定的字段,要用星号来填补其位置。

7.2.4 定时计划任务

  • at命令:用来安排一个任务在未来执行。

7.3 服务管理

7.3.1 systemd介绍

  • EulerOS采用systemd进行系统服务和daemon服务的管理
  • systemdD为system daemon,是linux下的一种init软件。作为init软件,systemd程序的任务有如下工作
    • 初始化文件系统,设置环境变量
    • 挂载硬盘,/proc,/tmp,swap等等
    • 根据设置的运行级别,启动相应的守护进程,并在系统运行期间,监听整个文件系统

7.3.2 systemd管理服务

  • 通过systemctl管理服务:systemctl start | stop | status [service]

7.3.3 journald查看日志

  • systemd提供journald进行日志管理
  • 配置文件:/etc/systemd/journald.conf
    • journalctl -u A.service:查看A服务的日志
    • journalctl --system --since=today:查看当天系统服务以及内核的日志

8 Linux系统监控

8.1 监控EulerOS系统

8.1.1 概述

  • 作为系统管理员,需要监控那些项目?
    • 系统是否正常启动?
    • 系统负载如何?系统是否有非法
    • 用户登陆?

8.1.2 监控启动日志

  • "dmesg | less’
  • Kernel Ring Buffer
  • ‘/var/log/dmsg’

8.1.3 监控硬件信息

在这里插入图片描述

  • hwinfo可以显示所有硬件相关信息,加上参数可以显示特定设备信息。
    • hwinfo --cpu:显示CPU信息
    • hwinfo --disk:可查看磁盘信息
  • iostat 命令:用于输出 CPU 和磁盘1/0相关的统计信息。
    • -c:仅显示CPU统计信息。与
    • -d:选项互斥。-d仅显示磁盘统计信息。与-c选项互斥。
    • -k:以K为单位显示每秒的磁盘请求数。
  • Ispci命令用于列出所有PCI设备,常用可选参数:
    • -v:显示PCI接口装置的详细信息
    • -vv:比-v还要更详细的信息

8.1.4 监控系统和进程

  • top:即时显示进程的动态,可以用来查看进程使用的cpu,内存等。
  • uptime:查看系统已经开机的时间以及系统平均负载。
  • uname:查看系统版本相关信息,如内核号。
  • ps:用来显示当前进程状态和top不同的是,他查看的是静态信息。
  • netstat:显示与IP、TCP,UDP协议相关的统计数据,用于检验本机各端口的网络连接情况。
  • ps命令:用来显示当前进程状态。
    • 和top不同的是,它查看的是静态信息。
  • ps包含的参数很多,以下列两种常用参数:
    • -elf:显示所有进程信息,连同命令行
    • -aux:显示所有包含其他使用者的行程
  • top命令:即时显示进程的动态,可以用来查看进程使用的cpu,内存等。
    常用参数:
    • -p [pid]:查看指定进程的动态信息
    • -u [user]:查看指定用户所启动的进程
  • netstat 命令:用于显示与IP、TCP,UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。
  • uptime 命令:查看系统已经开机的时间以及系统平均负载。
  • uname命令:查看系统版本相关信息,如内核号。
    • -a:可参看所有信息

8.2 查看登陆信息

8.2.1 查看登陆信息的命令

  • who
  • finger
  • w
  • last
  • lastlog

8.2.2 查看登陆系统的用户

  • [语法]:who [option]
    [说明]:本命令可查看当前登陆系统的用户,常用参数
    • -H或-heading:显示各栏位的标题信息列
    • -m:效果同who ami,显示出自己在系统中的用户名,登录终端,登录时间
  • [语法]:w [option] [user]
    [说明]:本命令可查看当前登陆系统的用户及用户当前的工作,比who命令更加详细
    • -u:后面接user,查看具体用户信息

8.2.3 查看登陆用户的详细信息

  • [语法]:finger [option] [user]
    [说明]:本命令用于查看用户详细信息,常用参数:
    • -s:短格式显示用户信息
    • -l:长格式显示用户信息

8.2.4 查看曾经登陆过系统的用户信息

  • [语法]:last [option]
    [说明]:本命令用于查看曾经登陆过系统的用户,常用参数:
    • -n num:设置列出名单的显示列数
    • -F:显示登陆和登出的详细信息

8.2.5 查看用户最近一次登陆的信息

  • [语法]:lastlog [option] [user]
    [说明]:本命令用于用户前一次登陆的信息,常用参数:
    • -t days:查看距今n天内登陆了系统的用户的最近一次登陆信息
    • -u:显示登陆和登出的详细信息

9 简单练习

9.1 开发基础

  • 查看操作系统:cat /proc/version
  • 查看系统时间:date
  • 查看IO、系统内存、CPU、监控视图等
    • cat /proc/cpuinfo:查看cpu的详细信息
    • free -m:查看内存使用情况
    • top:监控视图,深入学习可以网上自学
    • lostat:输出 CPU 和磁盘1/0相关的统计信息。
  • 查看网络端口状态
    • netstat -anp | grep 18008:查看18008端口状态

9.2 更换Linux系统上某个jar

  • 进入某个目录
    • cd /opt/oss进入根目录下的opt目录下的oss目录
  • 查找某个具体的文件
    • find.-name "test*"当前目录下查询名为以test开头的文件
    • find / -name "test*"根目录下查询名为以test开头的文件
  • 修改文件权限和修改文件名
    • chown ossuser:ossgroup test.jar 修改单
    • chown-R ossuser:ossgroup test/递归修改test目录下面的文件
    • mv重命名和移动
    • cp拷贝
  • 从一个环境上copy包到当前环境的具体目录
    • scp test.jar root@10.10.10.10:/tmp/test
    • 把当前目录的test.jar复制到10.10.10.10环境上的跟目录下的tmp目录下的test目录下
  • 搜索进程、杀死某个进程
    • ps -ef | grep test查看包含test的进程 其中ps可以继续查看更多用法
    • kill -9 pid 强制杀死进程