Linux学习笔记

目录

1、Linux目录结构

  1. 基本介绍
    1. linux的文件系统采用级层式的树状目录结构,在此结构中的最上层是跟目录“/”,然后再此目录下再创建其他目录
    2. 在linux系统中一切皆文件
  2. “/”下面的常用目录介绍
    在这里插入图片描述
    1. bin和sbin:
      (/user/bin、/user/local/bin)
      bin是Binary的缩写,这个目录存放着最经常使用的命令;
      sbin中的s是super user的意思,这里存放着系统管理员使用的系统管理程序
    2. home:
      存放着普通用户的主目录,在linux中每个用户都有着一个自己的目录,一般该目录是以用户的账号命名
    3. root:
      该目录为系统管理员,也称为超级权限者的用户主目录
    4. lib:
      系统开机所需要最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库
    5. etc:
      所有的系统管理员所需要的配置文件和子目录,比如安装mysql数据库my.conf
    6. usr:
      这是一个非常重要的目录,用户很多应用程序和文件都放在这个目录下,类似于windows下的program files目录
    7. boot:
      存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件
    8. proc(不能动):
      这个目录是一个虚拟的目录,它是系统内存的映射,访问这个目录来获取系统信息
    9. srv(不能动):
      service的缩写,该目录存放着一些服务启动之后需要提取的数据
    10. sys(不能动):
      这是Linux2.6内核的一个很大的变化。 该目录下安装了2.6内核中新出现的一个文件系统sysfs
    11. tmp:
      这个目录是用来存放一些临时文件的
    12. dev:
      类似于windows的设备管理器,把所有硬件用文件的形式存储
    13. media:
      linux系统会自动识别一些设备,例如U盘、光驱等,当识别后linux会把识别的设备挂载到这个目录下
    14. mnt:
      系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在mnt上,然后进入该目录就可以查看里面的内容了
    15. opt:
      这是给主机额外安装软件所摆放的目录。如安装ORACLE数据库就可放到该目录下,默认为空。
    16. user/local:
      这是另一个给主机额外安装软件所安装的目录。一般通过编译源码方式安装的程序
    17. var:
      这个目录中存放着在不断扩充着的东西,习惯将经常被修改的目录放在这这个目录下。包括各种日志文件

2、vi和vim

  1. vi和vim基本介绍
    Linux系统会内置vi文本编辑器
    vim具有程序编辑能力,可以看做是vi的增强版本,可以主动的以字体颜色辨别语法的正确性,方便程序设计。

  2. vi和vim常用的三种模式

    1. 正常模式
      以vim打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中,可以使用【上下左右】按键来移动光标,可以使用【删除字符】或【删除整行】来处理档案内容,也可以使用【复制、粘贴】处理文件数据
    2. 插入模式
      按下i,I,O,o,A,a,R,r等任何一个字母后才会进入编辑模式,一般按i
    3. 命令行模式
      输入【esc】再输入【:】进入
      在这个模式中,可以提供相关指令,完成读取、存盘、替换、离开vim,显示行号等的动作则是在此模式中达成的。
      在这里插入图片描述
  3. vi/vim快捷键
    常用:

    1. 拷贝粘贴:一般模式下输入yy拷贝当前行,拷贝当前行下的5行:5yy;粘贴:输入p
    2. 删除当前行:一般模式下输入dd
    3. 查找:命令行下输入/+关键字
    4. 设置/取消行号:命令行下输入set nu/set nonu
    5. 在一般模式下定位到首行gg,末行G20+shift+g定位到20行
    6. 撤销:一般模式下输入 u
      在这里插入图片描述

3、关机重启和用户登录注销

  1. 关机重启
    在这里插入图片描述
  2. 用户登录和注销
    一般利用普通用户登录,登录后再使用su - 用户名命令来切换成系统管理员身份,输入logout即可注销用户

4、用户管理

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

1、添加用户

(1)添加:useradd 用户名:默认该用户的家目录在/home/用户名
也可以通过 useradd -d指定目录 新的用户名 :给新创建的用户指定家目录
(2)指定密码:passwd 用户名 回车

2、删除用户

userdel 用户名:删除用户名
userdel -r 用户名:删除用户以及用户主目录

3、查询用户

id 用户名
在这里插入图片描述

4、切换用户

当权限不够时可以通过su - 用户名切换到高权限用户
从权限高的用户换到权限的低的用户不需要输入密码,反之需要。
当要返回到原来用户时,使用exit/logout指令

5、查看当前用户/登录用户

指令:whoami/who am i
查看我是谁
在这里插入图片描述

6、用户组

类似于角色,系统可以对有共性/权限的多个用户进行统一管理

  1. 新增组
    指令:groupadd 组名

  2. 删除组
    指令:groupdel 组名

  3. 增加用户时直接加上组
    指令:useradd -g 用户组 用户名

  4. 用户和组相关文件

    1. /etc/passwd 文件
      用户的配置文件,记录用户的各种信息
      每行的含义:用户:口令:用户标识号(id):组标识号(id):注释性描述:主目录:登录Shell

    2. /etc/shadow 文件
      口令的配置文件
      每行的含义:登录名:加密文件:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

    3. /etc/group 文件
      组的配置文件,记录linux包含的组的信息
      每行含义:组名:口令:组标识号:组内用户列表

5、实用指令

1、运行级别

指令:init [0123456]

运行级别说明:
0:关机
1:单用户【找回丢失密码】
2:多用户状态没有网络服务
3:多用户状态有网络服务
4:系统未使用保留给用户
5:图形界面
6:系统重启

例如init[0]关机,init[5]切换到图形界面

2、帮助指令
(1) man指令:获得帮助信息

基本语法:man 命令或配置文件

(2)help指令

基本语法:help 命令(获得shell内置命令的帮助信息)

3、文件指令
(1)pwd指令:查看路径

基本语法:pwd

功能:显示当前工作目录的绝对路径

(2)ls指令:查看目录

基本语法:ls[选项] [目录或是文件]

常用[选项]:
-a:显示当前目录所有的文件和目录,包括隐藏的
-l:以列表的方式显示信息
在这里插入图片描述
ls -a查看隐藏文件 ( 点 . 开头)
在这里插入图片描述
ls -l单列显示
在这里插入图片描述
选项可以组合使用 例如 ls -alls -la
在这里插入图片描述

(3)cd指令:切换到指定目录

基本语法:cd [参数]

功能:切换到指定目录

cd ~或者cd:回到自己的家目录
cd ..:回到当前目录的上一级

(4)mkdir指令:创建目录

基本语法:mkdir [选项] 要创建的目录

常用[选项]:
-p:创建多级目录

例如:
在这里插入图片描述

(5)rmdir / rm -rf指令:删除目录

基本语法:rmdir [选项] 要删除的空目录
rmdir删除的是空目录,如果目录下有内容就不能删除
在这里插入图片描述
如果需要删除非空目录,使用rm -rf 文件名命令,后面会讲到
在这里插入图片描述

(6)touch指令:创建空文件

基本语法:touch 文件名
在这里插入图片描述

(7)cp指令:拷贝

基本语法:cp [选项] [被拷贝文件] [拷贝到的目录]

常用[选项]:
-r :递归赋值整个文件夹
在这里插入图片描述
上图中,如果没有js目录就会自动创建

使用细节:强制覆盖不提示前面加一个 \ ;即\cp [选项] [被拷贝文件] [拷贝到的目录]

(8)rm指令:删除文件

基本语法:rm [选项] 要删除的文件或目录

常用选项:
-r :递归删除整个文件夹
-f:强制删除不提示

删除文件:
在这里插入图片描述
删除文件不提示:
在这里插入图片描述
删除文件夹(目录):
在这里插入图片描述
删除文件夹(目录)不提示:
在这里插入图片描述

(9)mv指令:移动文件与目录或重命名

基本语法:

  • 重命名(同一目录):mv oldNameFile newNameFile
  • 移动文件:mv /temp/movefile /targetFolder
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
(9)cat指令:查看文件内容

基本语法:````cat [选项] 要查看的内容```
常用选项:
-n:显示行号
在这里插入图片描述
使用细节:cat只能浏览文件而不能修改文件,为了浏览方便,一般会带上 管道命令 | more

(10)more指令(既可作为管道命令,也可以独立使用)

管道命令就是相当于把上一个命令处理的结果交给下一个命令继续处理,比如more,就相当于继续交给more处理。

  1. more指令是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。more指令内置了若干快捷键(交互的指令)
  2. 基本语法:
    more 要查看的文件
  3. 操作说明
    操作功能说明
    空格键(space)代表向下翻页
    Enter代表向下翻一行
    q代表立刻离开more,不再显示该文件的内容
    Ctrl+F向下滚动一屏
    Ctrl+B返回上一屏
    =输出当前行的行号
    :f输出文件名和当前行的行号
(11)less指令
  1. less指令用来分屏查看文件内容,它的功能与more指令类似,但是比more指令更加强大,支持各种显示终端。less指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。
  2. 基本语法:
    less 要查看的文件
  3. 操作说明
    操作功能说明
    空格键(space)代表向下翻动一页
    [pagedown]代表向下翻动一页
    [pageup]代表向上翻动一页
    q代表立刻离开less,不再显示该文件的内容
    /字串向下搜寻【字符】的功能;n:向下查找;N:向上查找
    ?字串向上搜寻【字符】的功能;n:向下查找;N:向上查找
(12)echo指令:输出内容到控制台

基本语法:echo [选项] [输出内容]
在这里插入图片描述

(13)head指令:用于显示文件的开头部分

基本语法:
head 文件 (查看文件头10行内容)
head -n 5 文件 (查看文件头5行内容,5可以是任意行数)
在这里插入图片描述

(14)tail指令:用于输出文件尾部的内容

基本语法:
tail 文件(功能描述:查看文件尾10行的内容)
tail -n 5 文件(功能描述:查看文件尾5行的内容,5可以是任意行数)
tail -f 文件(功能描述:实时追踪该文档的所有更新)
在这里插入图片描述

(15)>指令:输出重定向 和 >>指令:追加

基本语法:
ls -l > 文件(功能:列表的内容写入文件a.txt中(覆盖写))
在这里插入图片描述

ls -al >> 文件(功能:列表的内容追加到文件a.txt的末尾)
在这里插入图片描述

cat 文件1 > 文件2(功能:将文件1的内容覆盖到文件2),下面的例子是>>追加
在这里插入图片描述
echo "内容" >>文件(功能:将内容写入文件a.txt中)
在这里插入图片描述

文件不存在则会自动创建

(16)ln指令:软链接(符号链接),类似Windows里的快捷方式,主要存放了链接其他文件的路径

基本语法:
ln -s [原文件或目录] [软链接名](功能:给原文件创建一个软链接)

当我们使用pwd指令查看目录时,仍然看到的时软链接所在目录

(17)history指令:查看已经执行过的历史命令,也可以执行历史命令

基本语法:
history(功能:查看执行已经过的历史命令)
history 10(功能:查看已经执行过的最近10条历史命令)
在这里插入图片描述
! 99(功能:执行历史命令中编号为99的命令)

4、时间日期类指令

(1)date指令:显示当前日期

基本语法:
date(功能描述:显示当前时间)
date +%Y(功能描述:显示当前年份)
date +%m(功能描述:显示当前月份)
date +%d(功能描述:显示当前是哪一天)
date "+%Y-%m-%d %H:%M:%S"(功能描述:显示年月日时分秒)
在这里插入图片描述
在这里插入图片描述

(2)date指令:设置日期

基本语法:
date -s 字符串时间
例如设置成2022-04-16 23:06:32:date -s "2022-04-16 23:06:32"

(2)cal指令:查看日历

基本语法:
cal [选项](功能描述:不加选项,显示本月日历,选项可以加年份)
在这里插入图片描述
在这里插入图片描述

5、搜索查找类指令
(1)find指令:查找满足条件的目录或文件
  1. find指令从指定目录下递归地便利其各个子目录,将满足条件的文件或者目录显示在终端
  2. 基本语法:
    find [搜索范围] [选项]
    选项说明:
    选项功能
    -name<查询方式>按照指定的文件名查找模式查找文件
    -user<用户名>查找属于指定用户所有文件
    -size<文件大小>按照指定的文件大小查找文件

按文件名:根据名称查找/home/yanghan目录下的aa.txt:
在这里插入图片描述
按拥有者:查找/home/yanghan目录下,用户名称为yanghan的文件:
在这里插入图片描述

按文件大小查找:查找整个系统大于200M的文件(+n:大于;-n:小于;n等于,单位有:k,M,G):
在这里插入图片描述

(2)locate指令:快速定位文件路径
  1. locate指令可以快速定位文件路径。locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。locate指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新locate时刻
  2. 基本语法:
    locate 搜索文件
    由于locate指令基于数据库进行查询,所以第一次运行之前,必须使用updatedb指令创建loate数据库
    在这里插入图片描述
    在这里插入图片描述
(3)which指令:查看某个指令在哪个目录下

基本语法:
which 指令
在这里插入图片描述

(4)grep指令:在文件中按关键字搜索所在行

基本语法:
(1)cat 源文件 | grep [选项] 查找内容
(2)grep [选项] 查找内容 源文件
常用选项:
-n:显示匹配行和行号
-i:忽略字母大小写

示例:在server1.js文件中查找‘app’所在行,并且显示行号
写法一:cat server1.js | grep app
在这里插入图片描述

写法二:grep -n 'app' server1.js
在这里插入图片描述

6、压缩和解压类指令
(1)gzip/gunzip 压缩/解压指令

基本语法:
gzip 文件(功能描述:压缩文件,只能将文件压缩为*.gz文件)
gunzip 文件(功能描述:解压文件命令)
在这里插入图片描述

(2)zip/unzip 压缩/解压指令

在项目打包发布中很有用
基本语法:
zip [选项] xxx.zip 压缩文件/目录(功能描述:压缩文件,压缩文件和目录的命令)
选项常用有-r,递归压缩,即压缩目录

gunzip [选项] xxx.zip(功能描述:解压文件命令)
选项常用有-d <目录>:指定解压后文件的存放目录

示例:压缩myLinux目录为myLinux.zip
在这里插入图片描述
解压myLinux.zip到/root目录下:
在这里插入图片描述
在这里插入图片描述

(3)tar指令: 压缩解压指令

基本语法:
tar [选项] xxx.tar.gz 打包的内容(功能描述:打包目录,压缩后的文件格式.tar.gz)
选项说明:
-c:产生.tar打包文件
-v:显示详细信息
-f:指定压缩后的文件名
-z:打包同时压缩
-x:解包.tar文件

示例:
(1)压缩多个文件将myLinux目录下的a.txt和aa.txt压缩成aaa.tar.gz
在这里插入图片描述
(2)将myLinux文件夹压缩成myLinux.tar.gz
在这里插入图片描述
(3)aaa.tar.gz解压到当前目录
在这里插入图片描述
(4)将myLinux.tar.gz解压到/root/test目录下(-C:将其解压到指定目录)
在这里插入图片描述

6、组管理和权限管理

  1. 组的基本介绍

    1. 在Linux中的每个用户必须属于一个组,不能独立于组之外。
    2. 在Linux中每个文件有 所有者、所在组、其他组的概念
  2. 文件/目录 所有者

    1. 一般为文件的创建者,谁创建了文件,就自然的成为该文件的所有者
    2. 相关指令:
      1. 查看文件的所有者指令:
        ls -ahl
        在这里插入图片描述

      2. 修改文件所有者指令:
        chown 用户名 文件名
        示例:将bb.txt的所有者从root改为yanghan
        在这里插入图片描述

  3. 文件/目录所在组

    1. 组的创建

      1. 基本指令:
        groupadd 组名
      2. 示例:
        (1)创建一个组monster:
        在这里插入图片描述
        (2)创建一个用户fox,并放入monster组中在这里插入图片描述
        给fox用户指定密码:
        在这里插入图片描述
        切换到fox用户,并创建bb.txt文件,查看创建的用户和所在组:
        在这里插入图片描述
        fox为创建者,fox所在的组在monster
    2. 查看文件/目录所在组:
      基本指令和查看文件/目录所有者一样:ls -ahl

    3. 修改文件所在组:
      基本指令:chgrp 组名 文件名

  4. 其它组

    1. 除文件的所有者和所在组的用户之外,系统的其他用户都是文件的其它组
  5. 改变用户所在组

    1. 在添加用户时,可以指定将该用户添加到哪个组中,同样的用root的管理权限可以改变某个用户所在组

    2. 查看用户所在组的指令:id 用户名在这里插入图片描述

    3. 查看全部组的信息:cat /etc/group
      在这里插入图片描述

    4. 改变用户所在组
      指令:
      (1)usermod -g 新组名 用户名
      (2)usermod -d 目录名 用户名(改变用户登录的初始目录,但是用户需要有进入到新目录的权限)

  6. 权限的基本介绍

    1. ls -l中显示的内容如下:在这里插入图片描述
      红色框中一共有序号为0-9的十个字符:

      1. 第0位确定文件的类型(d,-,l,c,b)
        d:是目录,相当于Windows里面的文件夹
        l:是链接,相当于Windows里面的快捷方式
        c:字符设备文件,鼠标、键盘
        b:是块设备,比如硬盘
      2. 第1-3位确定所有者(该文件的所有者拥有该文件的权限)—User
      3. 第4-6位确定所属组(同用户组的)拥有该文件的权限 —Group
      4. 第7-9位确定其他用户拥有该文件的权限 —Other
    2. rwx权限详解

      1. 作用到文件
        1. r:代表可读(read),可以读取查看
        2. w:代表可写(write),可以修改,但不代表可以删除该文件,删除一个文件的前提是对该文件所在的目录有写权限,才能删除该文件
        3. x:代表可执行(execute):可以白执行
      2. 作用到目录
        1. r:代表可读,可以读取,ls查看目录内容
        2. w:代表可写,可以修改,对目录内创建+删除+重命名目录
        3. x:代表可执行,可以进入该目录
    3. 解读ls -l显示的内容:在这里插入图片描述

      1. 10个字符:代表文件类型和相应权限

        权限可用数字表示,r=4,w=2,x=1,因此rwx=4+2+1=7

      2. 1:表示目录数

      3. root:用户

      4. root:组

      5. 292:文件大小(k)

      6. 4月 18 09:52:最后修改时间

      7. aa.txt:文件名

    4. 修改权限—chmod

      1. 基本说明:通过chmod指令,可以修改文件或者目录的权限

      2. 第一种:+添加权限、-除去权限、=赋予权限
        u:所有者、g:所有组、o:其他人、a:所有人
        (1)chmod u=rwx,g=rx,o=x 文件/目录名
        (2)chmod o+w 文件/目录名
        (3)chmod a-x 文件/目录名(给文件/目录名的所有用户除去执行权限)

      3. 第二种:通过数字变更权限 在这里插入图片描述
        前面的chmod u=rwx,g=rx,o=x 文件/目录名相当于chmod 751 文件/目录名

    5. 修改文件/目录所有者(前面讲过)
      chown [选项] 用户名 文件/目录名(改变所有者)
      chown [选项] 用户名:组名 文件/目录名(改变所有者和所在组)
      选项-R:如果是目录,则使其下所有子文件或目录递归生效

    6. 修改文件/目录所在组(前面讲过)
      chgrp [选项] 组名 文件/目录名(改变所在组)
      选项-R:如果是目录,则使其下所有子文件或目录递归生效

7、定时任务调度

1、crond任务调度
  1. 概述
    1. 任务调度:是指系统在某个时间执行的特定的命令或程序
    2. 任务调度分类:(1)系统工作:有些重要的工作必须周而复始地执行,如病毒扫描等。(2)个别用户工作:个别用户可能希望执行某些程序,比如对mysql数据库备份。
  2. 基本语法:
    crontab [选项]
    常用选项:
    (1)-e:编辑crontab定时任务
    (2)-l:查询crontab任务
    (3)-r:删除当前用户所有crontab任务
    service crond restart重启任务调度
  3. 快速入门
    设置任务调度文件:/etc/crontab
    设置个人任务调度,执行crontab -e命令
    接着输入任务到调度文件,如*/1 * * * * ls -l /etc/ > /tmp/to.txt,意思就说每小时的每分钟执行ls -l /etc/ > /tmp/to.txt命令在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
2、at定时任务
  1. 基本介绍

    1. at命令是一次性定时计划任务,at的守护进程atd会一后台模式运行,检查作业队列来运行
    2. 默认情况下,atd守护进程没60s检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间匹配则运行作业
    3. at命令是一次性定时计划任务,执行完一个任务后不再执行此任务
    4. 在使用at命令的时候,一定要保证atd进程的启动,可以使用相关指令来查看ps -ef | grep atd可以检测atd是否在运行
  2. at命令格式
    at [选项] [时间]
    Ctrl+D结束at命令的输入

    常用选项:
    (1)-m:当指定的任务被完成以后,将给用户发送邮件,即使没有标准输出
    (2)-l:atq的别名(查看任务)
    (3)-d:atrm的别名(删除任务)
    (4)-v:显示任务将被执行的时间
    (5)-c:打印任务的内容到标准输出
    (6)-V:显示版本信息
    (7)-q<队列>:使用指定的队列
    (8)-f<文件>:从指定文件读入任务而不是从标准输入读入
    (9)-t<时间参数>:以时间参数的形式提交要运行的任务

    at时间定义:
    1. 接受在当天的hh:mm(小时:分钟)式的时间指定。假如该时间已过去,那么讲究放在第二天执行。例如04:00
    2. 使用midnight(深夜),noon(中午),teatime(饮茶时间,一般是下午4点)等比较模糊的词语来指定时间
    3. 采用12小时计时制,即在时间后面加上AM(上午)或PM(下午)来说明是上午还是下午,例如12pm
    4. 指定命令执行的具体日期,指定格式为month day(月 日)或mm/dd/yy(月/日/年)或dd.mm.yy(日.月.年)。指定的日期必须在指定的时间后面。例如:04:00 2021-03-1
    5. 使用相对计时法。指定格式为:now+count time-units,now就是当前时间,time-units是时间单位,这里能够是minutes(分钟)、hours(小时)、day(天)、weeks(星期)。count是时间的数量,几天、几小时。例如now+5 minutes
    6. 直接使用today(今天)、tomorrow(明天)来指定完成命令的时间

    例如:
    (1)2天后的下午五点执行/bin/ls /home在这里插入图片描述
    (2)atq命令查看系统种没有执行的工作任务
    在这里插入图片描述
    (3)明天17点,输出时间到指定文件内,比如/root/date100.log在这里插入图片描述
    (4)两分钟后,输出时间到指定文件内,比如/root/date200.log在这里插入图片描述
    (5)删除已经设置的任务,atrm 编号在这里插入图片描述

8、linux磁盘分区、挂载

  1. 原理介绍

    1. linux来说无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构,linux中每个分区都是用来组成整个文件系统的一部分
    2. linux采用了一种叫“载入”的处理方法,它的整个文件系统包含了一整套的文件和目录,且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得
  2. 硬盘说明

    1. linux硬盘分IDE硬盘和SCSI硬盘,目前基本上是SCSI硬盘
    2. 对于SCSI硬盘表示为“sdx~”,SCSI硬盘是用“sd”来表示分区所在设备的类型的,其余则和IDE硬盘表示的方法一样
    3. 在这里插入图片描述
  3. 查看所有设备挂载情况
    lsblk或者lsblk -f

    在这里插入图片描述

  4. 挂载的示例

    1. 先装一个物理硬盘
      虚拟机中可以直接添加虚拟硬盘,点击添加即可,这里就添加了一个1G的虚拟硬盘在这里插入图片描述
      重启后可以通过lsblk查看到:在这里插入图片描述
      尚未挂载。
    2. 分区磁盘
      命令:fdisk /dev/sdb
      开始对/sdb分区:
      m:显示命令列表
      p:显示磁盘分区 同fdisk -l
      n:新增分区
      d:删除分区
      w:写入并退出
      说明:开始分区后输入n,新增分区,然后选择p,分区类型为主分区。两次回车默认剩余全部空间。最后输入w写入分区并退出,若不保存退出输入q
      在这里插入图片描述
      在这里插入图片描述
    3. 格式化磁盘
      mkfs -t ext4 /dev/sdb1
      其中ext4是一个分区类型
      在这里插入图片描述
    4. 挂载:将一个分区与一个目录联系起来
      • mount 设备名称 挂载目录(用命令行挂载,重启之后会失效)
        在这里插入图片描述
        卸载:umount 设备名称 或者 挂载目录

      • 永久挂载
        永久挂载:通过修改/etc/fstab实现挂载
        添加完后 执行mount -a
        在这里插入图片描述
        在这里插入图片描述
        在这里插入图片描述

  5. 磁盘情况查询

    1. 查询系统整体磁盘使用
      基本语法:df -h
      在这里插入图片描述

    2. 查询指定目录的磁盘占用情况,默认为当前目录
      基本语法:du [选项]
      选项有:
      -s:指定目录占用大小汇总
      -h:带计量单位
      -a:含文件
      –max-depth=1 子目录深度
      -c:列出明细的同时,增加汇总值
      在这里插入图片描述

  6. 磁盘情况-工作使用指令

    1. 统计/opt文件夹下文件的个数
      ls -l | grep "^-" | wc -l
    2. 统计/opt文件夹下目录的个数
      ls -l | grep "^d" | wc -l
    3. 统计/opt文件夹下文件的个数,包括子文件夹里的
      ls -lR | grep "^-" | wc -l
    4. 统计/opt文件夹下目录的个数,包括子文件夹里的
      ls -lR | grep "^d" | wc -l
    5. 以树状显示目录结构,没有tree,则使用yum install tree安装
      tree /home/

在这里插入图片描述
在这里插入图片描述

9、网络配置

  1. 查看网络IP和网关

    1. 查看Windows环境下的VMnet8网络配置
      指令:ipconfig在这里插入图片描述
    2. 查看Linux网络配置
      指令:ifconfig
  2. ping测试主机之间的网络连通性
    基本语法:
    ping 目的主机(测试当前服务器能否可以连接目的主机)

  3. Linux网络环境配置

    1. 第一种方法(自动获取):
      说明:登陆后,通过界面来设置自动获取ip
      特点:linux启动后会自动获取ip,缺点是每次自动获取的ip可能不一样。

    2. 第二种方法(指定ip)
      说明:直接修改配置文件来指定IP,并可以连接到外网。
      如何做:
      编辑 vi /etc/sysconfig/network-script/ifcfg-ens32文件(将ip地址配置成静态的)

      ifcfg-ens32文件说明
      TYPE=“Ethernet”
      PROXY_METHOD=“none”
      BROWSER_ONLY=“no”
      #自动分配
      #BOOTPROTO=“dhcp”
      #静态分配
      BOOTPROTO=“static”
      DEFROUTE=“yes”
      IPV4_FAILURE_FATAL=“no”
      IPV6INIT=“yes”
      IPV6_AUTOCONF=“yes”
      IPV6_DEFROUTE=“yes”
      IPV6_FAILURE_FATAL=“no”
      IPV6_ADDR_GEN_MODE=“stable-privacy”
      NAME=“ens33”
      UUID=“8572a160-ced2-459c-ab88-02026a1fe45b”
      DEVICE=“ens32”
      ONBOOT=“yes”
      #IP地址
      IPADDR=192.168.154.130
      #网关
      GATEWAY=192.168.154.2
      #域名解析器
      DNS1=192.168.154.2

      将上面的文件修改为静态分配,并修改ip地址和网关。
      再修改虚拟机设置:
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      最后重启服务或者重启系统生效:
      重启服务:service network restart
      重启系统:reboot

  4. 设置主机名和hosts映射

    1. 设置主机名

      1. 为了方便记忆,可以给linux系统设置主机名,也可以根据需要修改主机名
      2. 查看主机名指令为hostname
      3. 修改文件在 /etc/hostname 指定
      4. 修改后,重启生效
    2. 设置hosts映射

      思考:如何通过 主机名 能够找到(比如ping)某个linux系统

    Windows:
    在C:\Windows\System32\drivers\etc\hosts文件指定即可在这里插入图片描述
    这样Windows主机就可以通过yangh23323来访问虚拟机192.168.154.130

    同理Linux:
    在/etc/hosts文件指定在这里插入图片描述
    在文件中输入192.168.154.1 Win-yangh23323后Linux虚拟机既可以访问windows主机。

  5. 主机名解析过程分析(Hosts、DNS)

    1. Hosts是什么
      一个文本文件,用来记录IP和Hostname(主机名)的映射关系
    2. DNS
      域名系统,是互联网上作为域名和IP地址映射的一个分布式数据库
    3. 实例:
      用户在浏览器输入了www.baidu.com后:
      1. 浏览器先检查浏览器缓存中有没有该域名解析IP地址,有就先调用这个IP完成解析;如果没有,就检查DNS解析器缓存,如果有直接返回IP完成解析。这两个缓存可以理解为本地解析器缓存。
      2. 一般来说,当电脑第一次成功访问某一网站后,在一定时间内,浏览器或操作系统会缓存其IP地址(DNS解析记录)。如在cmd窗口输入:ipconfig /displaydns:DNS域名解析缓存;ipconfig /flushdns:手动清理dns缓存
      3. 如果本地解析器缓存中没有找到对应映射,检查系统中hosts文件中有没有配置对应的域名IP映射,如果有则完成解析并返回。
      4. 如果本地DNS解析器缓存和hosts文件中均没有找到对应的IP则到域名服务DNS进行解析域名

10、进程管理

1、基本介绍
  1. 在Linux中,每个执行的程序都称为一个进程。每一个进程都分配一个ID号(pid,进程号)

  2. 每一个进程都可能以两种方式存在的:前台和后台。前台:就是用户目前的屏幕上可以进行操作的。后台:后台进程式实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式进行。

  3. 一般系统的服务都是以后台进程方式存在,而且都会常驻系统中,直到关机才结束。

  4. 显示系统执行的进程
    ps指令是用来查看目前系统中,有哪些正在执行,以及它们执行的状况。可以不加任何参数。带参数的话:

    ps -a:显示当前终端的所有进程信息
    ps -u:以用户的格式显示进程的信息
    ps -x:显示后台进程运行的参数

    ps显示的信息选项:

    字段说明
    PID进程识别号
    TTY终端机号
    TIME此进程所消cpu时间
    CMD正在执行的命令或进程

    可以通过ps -aux | grep xxx来过滤查看需要的进程信息
    在这里插入图片描述
    字段说明:

    字段说明
    USER用户名称
    PID进程识别号
    %CPU进程占用CPU的百分比
    %MEM进程占用物理内存的百分比
    VSZ进程占用虚拟内存大小(单位:KB)
    RSS进程占用物理内存大小(单位:KB)
    TTY终端名称,缩写
    STAT进程状态,其中S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,D-短期等待,Z-僵死进程,T-被跟踪或者被停止的进程等等
    STARTED进程的启动时间
    TIMEcpu时间,即进程使用cpu的总时间
    COMMAND正在执行的命令或进程
2、父子进程

查看进程的父进程
以全格式显示当前所有进程,查看进程的父进程,例如查看sshd的父进程信息
ps -ef(以全格式显示当前所有的进程,-e:显示所有进程,-f:全格式)在这里插入图片描述
在这里插入图片描述
字段说明:

字段说明
UID用户ID
PID进程ID
PPID父进程ID
CCPU用于计算执行优先级的因子。数值越大,表明进程是cpu密集型运算。数值越小,表明进程是I/O密集型计算,执行优先级会提高
STIME进程的启动时间
TTY终端名称,缩写
TIMEcpu时间,即进程使用cpu的总时间
CMD正在执行的命令或进程
3、 终止进程kill和killall
  1. 介绍
    若是某个进程执行一般的时候需要停止时,或是已消了很大系统资源时,此时可以考虑停止该进程。使用kill命令来完成此项任务。

  2. 基本语法:
    (1)kill [选项] 进程号(功能描述:通过进程号杀死/终止进程)
    常用选项:
    -9:表示强迫进程立即停止
    (2)killall 进程名称(功能描述:通过进程名来杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用)

4、 查看进程树

基本语法:pstree [选项] (可以更加直观的来看进程信息)
常用选项:
-p:显示进程的PID
-u:显示进程的所属用户
在这里插入图片描述
在这里插入图片描述

5、 服务(service)管理
(1) 介绍

服务(service)本质就是进程,但是是运行在后台的,通常会监听某个窗口,等待其他进程程序的请求,比如(mysqld、sshd、防火墙等)因此我们又称为守护进程。

(2)service管理指令
  1. service 服务名 [start|stop|restart|reload|status]
  2. 在centOS7.0之后,很多服务不再使用service,而是systemctl(后面专讲)
  3. service指令管理的服务在/etc/init.d查看,可用service管理的服务如下:在这里插入图片描述
  4. 例如关闭和开启network服务:在这里插入图片描述
(3)查看服务名

命令:setup
输入命令回车后:在这里插入图片描述
在这里插入图片描述
这些服务中,[*]的为开机自启动服务,在这里插入图片描述
这些为service指令所管理的服务。

(4)服务的运行级别

linux中有7种运行级别:常用的是级别3和5

  1. 运行级别0:系统停机状态下,系统默认运行级别不能设为0,否则不能正常启动
  2. 运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登录
  3. 运行级别2:多用户状态(没有NFS),不支持网络
  4. 运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
  5. 运行级别4:系统未使用,保留
  6. 运行级别5:X11控制台,登陆后进入图形GUI界面
  7. 运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常运行

centOS7后运行级别说明:
在/etc/initab进行了简化,如下:
multi-user.target:analogous to runlevel 3
graphical.target:analogous to runlevel 5


查看运行级别:systemctl get-default
在这里插入图片描述
修改运行级别:
systemctl set-default multi-user.target(修改为级别3)
systemctl set-default graphical.target(修改为级别5)
在这里插入图片描述
修改为运行级别3后,重启虚拟机将会以命令行的形式开机,改回到图形化界面:
在这里插入图片描述

(5)chkconfig指令
  1. 介绍

    1. 通过chkconfig命令可以给服务的各个运行级别设置自动关闭
    2. chkconfig指令管理的服务在/etc/initial.d查看
    3. 注意:centos7.0后,很多使用systemctl管理(后面马上讲)
  2. 基本语法
    chkconfig --list [| grep xxx](查看服务)
    chkconfig --level 3 运行级别 服务名 off/on(设置某服务在某运行级别的自启动)
    例如:
    (1)查看服务在这里插入图片描述

    (2)将运行级别3的network服务自启动关闭:在这里插入图片描述

(6)systemctl管理指令
  1. 基本语法 systemctl [start|stop|restart|status] 服务名

  2. systemctl指令管理的服务在/user/lib/systemd/system查看在这里插入图片描述

  3. systemctl设置服务的自启动状态

    1. systemctl list-unit-files [| grep 服务名](查看服务开机启动状态,grep可以进行过滤)在这里插入图片描述

    2. systemctl enable 服务名(设置服务开机启动)

    3. systemctl disable 服务名(关闭服务开机启动)

    4. systemctl is-enabled 服务名(查询某个服务时候自启动的)在这里插入图片描述

    使用systemctl [start|stop]关闭或开启服务会立即生效。这种方式只是临时生效,当重启系统后,还是回归以前对服务的设置。
    如果希望设置某个服务自启动或关闭永久生效,要使用systemctl [enable|disable] 服务名

(7)打开或关闭指定端口
  1. 在真正的生成环境,往往需要将防火墙打开,但打开防火墙,那么外部请求数据包就不能跟服务器监听端口通讯。这时需要打开指定的端口。
  2. firewall指令
    1. 打开端口:firewall-cmd --permanent --add-port=端口号/协议在这里插入图片描述

    2. 关闭端口:firewall-cmd --permanent --remove-port=端口号/协议在这里插入图片描述

    3. 重新载入,才能生效firewall-cmd --reload在这里插入图片描述

    4. 查询端口是否开放:firewall-cmd --query-port=端口号/协议在这里插入图片描述

6、 动态监控进程
  1. top和ps命令很相似。他们都是用来显示正在执行的进程。top和ps最大的不同之处,在于top再执行一段时间可以更新正在运行的进程。
    基本语法:
    top [选项]
    选项:
    (1)-d 秒数:指定top命令每隔几秒更新,默认3秒
    (2)-i:使top不显示任何闲置或者僵死进程
    (3)-p:通过指定进程ID来仅仅监控某个进程的状态
    在这里插入图片描述
    交互操作:
    输入top命令回车后可以进行交互操作:
    (1)P:以cpu使用率排序,默认就是此项
    (2)M:以内存的使用率排序
    (3)N:以PID排序
    (4)q:退出top
    (5)输入‘u’,再输入用户名回车:监视特定的用户
    (6)输入’k‘,再输入要结束的进程ID号:终止指定的进程

  2. 查看系统网络情况netstat
    基本语法:netstat [选项]
    选项说明:
    (1)-an:按一定顺序排列输出
    (2)-p:显示哪个进程在调用
    在这里插入图片描述
    例如查看服务名为sshd的服务信息的命令为netstat -anp | grep sshd

11、rpm包的管理

  1. rpm包的简单查询指令
    查询已安装的rpm列表rpm -qa | grep 过滤
    例如查询是否安装了firefox:
    在这里插入图片描述

  2. rpm包名基本格式
    一个rpm包名firefox-68.10.0-1.el7.centos.x86_64
    其中:
    (1)名称:firefox
    (2)版本号:68.10.0-1
    (3)适用操作系统:centos.x86_64

  3. rpm包其他查询指令:

    1. rpm -qa:查询所安装的所有rpm软件包
    2. rpm -q 软件包名:查询软件包是否安装
    3. rpm -qi 软件包名:查询软件包信息
    4. rpm -ql 软件包名:查询软件包中的文件
    5. rpm -qf 文件全路径名:查询文件所属的软件包
  4. 卸载rpm包:
    基本语法:
    rpm -e RPM包的名称
    例如删除firefox包:rpm -e firefox

    如果其他软件包依赖要卸载的软件包,卸载时会产生错误信息;可以增加参数–nodeps(例如rpm -e --nodeps foo),就可以强制删除,但是不建议这样做,因为依赖该软件包的程序无法运行

  5. 安装rpm包:
    基本语法:
    rpm -ivh RPM包全路径名称
    参数说明:
    i:install安装
    v:verbose提示
    h:hash进度条
    在这里插入图片描述

  6. yum

    1. 介绍
      yum是一个Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖关系,并且一次安装所有依赖的软件包
    2. yum的基本指令
      yum list | grep xx软件列表:查询yum服务器是否有需要安装的软件
      yum install xxx:安装指定的yum包
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东篱_Y

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值