linux学习笔记

linux 中一切皆文件

执行指令时没有消息反而是好消息

笔记来源于B站 2021韩顺平一周学会linux

点击进入视频

linux目录结构

  • /bin (/usr/bin、/usr/local/bin)
    • 是Binary的缩写,这个目录存放着最经常使用的命令
  • /sbin (/usr/sbin、/usr/local/sbin)
    • s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序
  • /home
    • 存放普通用户的主目录,在Linux中每一个用户都有一个自己的目录,一般该目录是以用户的账号命名
  • /root
    • 该目录为系统管理员,也称作超级权限者的用户主目录
  • /lib
    • 系统开机所需要最基本的动态权限共享库,其作用类似于windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库
  • /lost+found
    • 这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。(直接在文件夹里面查看这个文件夹是看不到的,可以在终端里面查看)
  • /etc
    • 所有的系统管理所需要的配置文件和子目录 比如mysql数据库、my.conf
  • /usr
    • 这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录
  • /boot
    • 存放的是启动linux时使用的一些核心文件,包括一些连接文件以及镜像文件
  • /proc [不能动]
    • 这个目录是一个虚拟的目录,它是系统内存的映射,访问这个目录来获取系统信息
  • /src [不能动]
    • service缩写,该目录存放一些服务启动之后需要提取的数据
  • /sys [不能动]
    • 这是linux2.6内核的一个很大变换,该目录下安装了2.6内核中新出现的一个文件系统sysfs
  • /tmp
    • 这个目录是用来存放一些临时文件的
  • /dev
    • 类似于windows的设备管理器,把所有的硬件用文件的形式存储
  • /media
    • linux系统会识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下
  • /mnt
    • 系统提供该目录是为了让用户临时挂载别的系统文件,我们可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看里面的内容了。d:/VMwareFileShare
  • /opt
    • 这是给主机额外安装软件摆放的目录。如安装ORACLE数据库就可以放到该目录下。默认为空(安装文件放这)
  • /usr/local
    • 这是另一个给主机额外安装软件所安装的目录。一般是通过编译源码方式安装的程序。(安装以后的目录)
  • /var
    • 这个目录中存放着在不断扩充着的东西,习惯将经常修改的目录放在这个目录下。包括各种日志文件
  • /selinux [security-enhanced linux]
    • SELinux是一种安全子系统,他能控制程序只能访问特定文件,有三种工作方式,可以自行设置。

vi和vim

linux系统内置vi文本编辑器

vim具有程序编辑的能力,可以看成vi的增强版本。

  1. vi和vim三种模式相互切换
    • 在命令行下 # vim xxx 到一般模式
    • 一般模式输入i或a进入编辑模式
    • 编辑模式按ESC返回一般模式
    • 一般模式下
      • 输入:或/ 进入命令行模式,在命令行下:wq(保存退出)、:q(退出)、:q!(强制退出,不保存)
      • 输入ESC 返回一般模式
  2. 快捷键使用
    1. 拷贝当前行 yy,拷贝当前行向下的5行 5yy,并粘贴(输入p)
    2. 删除当前行 dd,删除当前行向下的5行 5dd
    3. 在文件中查找某个单词[命令行下/关键字,回车 查找,输入n就是查找下一个]
    4. 设置文件的行号,取消文件的行号[命令行下:set nu 和 :set nonu]
    5. 编辑/ect/profile 文件,使用快捷键到该文档的最末行[G]和最首行[gg]
    6. 在一个文件中输入"hello",然后又撤销这个动作 u
    7. 编辑 /etc/profile 文件,在一般模式下,并将光标移动到 20行,输入 20再输入 shift+g:
    8. 更多的看整理的文档

关机和重启命令

基本介绍

  • shutdown -h now 立刻进行关机
  • shutdown -h 1 “hello,1分钟后会关机了”
  • shutdown -r now 现在重新启动计算机
  • halt 关机,作用和上面一样
  • reboot 重启计算机:
  • sync 把内存的数据同步到磁盘

注意细节

  1. 不管是重启系统还是关闭系统,首先要运行sync命令,把内存中的数据写到磁盘中
  2. 目前的shutdown/reboot/halt等命令均已在关机前进行了sync,,小心驶得万年船

用户登录和注销

基本介绍

  1. 登录时尽量少用root账户登录,因为他是系统管理员,最大的权限,避免操作失误。可以利用普通用户登录,登陆后再用"su - 用户名"命令来切换成系统管理员身份
  2. 在提示符下输入logout即可注销用户

使用细节

  1. logout注销指令在图形运行级别无效,在运行级别 3及以下有效
  2. 运行级别概念:看后面使用指令

用户管理

  1. 添加用户
    • 节本语法 useradd 用户名
    • 细节说明
      • 当创建用户成功之后,会自动的创建和用户名同名的家目录
      • 也可以通过 useradd -d 指定目录 新的用户名,给创建的用户指定家目录
  2. 指定/修改密码
    • passwd 用户名
      • 显示当前用户所在的目录 pwd
  3. 删除用户
    • 基本语法 userdel 用户名
      • 删除用户msk,但是保留家目录,userdel msk
      • 删除用户以及用户主目录(这个操作要慎重),userdel -r msk
    • 一般情况下建议保留家目录,该账户工作是保留的资料在里面,可能还是有用的
  4. 查询用户信息指令
    • 基本语法: id 用户名
      • 例查询root信息,id root
    • 细节:当没有该用户时返回 no such user
  5. 切换用户
    • 在操作linux中,如果当前用户的权限不够,可以通过 su - 指令,切换到高权限用户,比如root
    • 基本语法 su - 切换用户名
    • 细节说明
      • 从权限高的用户切换到权限低的用户,不需要输入密码,反之需要
      • 当需要返回原来用户时,使用exit/logout指令
  6. 查看当前用户/登录用户
    • 基本语法 who am i
  7. 用户组
    • 介绍
      • 类似于角色,系统可以对有共性的/权限的多个用户进行统一管理
    • 新增组
      • groupadd 组名
    • 删除组
      • groupdel 组名
    • 增加用户时直接加上组
      • useradd -g 用户组 用户名
    • 修改用户的组
      • usermod -g 用户组 用户名
      • 默认增加的用户都有一个以用户名命名的组
    • 用户和组相关文件
      • /ect/passwd文件
        • 用户(user)的配置文件,记录用户的各种信息。每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录shell
      • /etc/shadow文件
        • 口令的配置文件。每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
      • /etc/group文件
        • 组(group)的配置文件,记录linux包含的组的信息。每行含义:组名:口令:组标识符:组内用户列表

实用指令

1、指定运行级别

  • 基本介绍

    • 0:关机
    • 1:单用户[找回丢失密码]
    • 2:多用户状态没有网络服务
    • 3:多用户状态有网络服务
    • 4:系统未使用保留给用户
    • 5:图形界面(graphical)
    • 6:系统重启

    常用运行级别是3和5,也可以指定默认运行级别

    应用实例

    • 命令:init [0123456] 应用案例:通过init来切换不同的运行级别,比如 5-3,然后关机
  • CentOS7后运行级别说明

    • 在centos7以前,/etc/inittab文件中,进行了简化,multi-user.target:analogous to runlevel 3 graphical.target:analogous to runlevel 5
    • # To view current default target,run: systemctl get-default
    • # To set a default target,run: systemctl set-default 级别单词.target

2、找回root密码

  • 看韩老师视频

3、帮助指令

  • man获得帮助指令
    • 基本语法:man [命令或配置文件](功能描述:过的帮助信息)
    • 比如查看ls命令的帮助信息 man ls
      • 在linux下,隐藏文件是以.开头的,选项可以组合使用 比如ls -al,ls -al /root
  • help指令
    • 基本语法:help 命令(功能描述:获得shell内置命令的帮助信息)
  • 英语不好直接百度也行

4、文件目录类

  • pwd指令

    • 基本语法 :pwd (功能描述:显示当前工作目录的绝对路径)
  • ls指令

    • 基本语法:ls [选项] (目录或文件)
    • 常见选项
      • -a:显示当前目录所有的文件和目录,包括隐藏的
      • -l:以列表的方式显示详细信息
        • ls -lh (功能描述:h表示human,文件大小可以用M,G显示)
  • cd指令

    • 基本语法:cd [参数] (功能描述:切换到指定目录)
    • 理解:绝对路径(由根目录开始)和相对路径(从现在位置出发)
    • cd ~或cd :回到自己的家目录
    • cd… :回到当前目录的上一级目录
  • mkdir指令

    • mkdir指令用于创建目录
    • 基本语法:mkdir [选项] 要创建的目录
    • 常用选线 -p:创建多级目录
      • 一级目录 mkdir /home/dog
      • 多级目录 mkdir -p /home/animal/dog
  • rmdir指令

    • rmdir指令删除空目录
    • 基本语法:rmdir [选项] 要删除的空目录
    • 使用细节:rmdir删除的目录是空目录,如果目录下面有内容删不掉
    • 提示:删除非空目录,需要使用 rm -rf 要删除的目录
      • 强制删除不提醒的方法:带上-f参数即可
  • touch指令

    • 创建空文件
    • touch 文件名称
  • cp指令

    • cp 指令拷贝文件到指定目录
    • cp [选项] source dest
    • 常用选项 -r:递归复制整个文件夹;egg:cp -r /home/bbb/ /opt/
    • \cp覆盖文件不提醒
  • rm指令

    • rm指令移除文件或目录
    • 基本语法:rm [选项] 要删除的文件或目录
      • 常用选项 -r:递归删除整个文件夹; -f:强制删除不提示
  • mv指令

    • 移动文件与目录或重命名
    • mv oldNameFile newNameFile (功能描述:重命名)
    • mv /temp/movefile /targetFolder (功能描述:移动文件)
  • cat指令

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

    • more指令是一个基于VI编辑器的文本过滤器,他以全屏幕的方式按页显示文本文件的内容。more指令中内置了若干快捷键,常见操作说明

    • 基本语法 more 要查看的文件

      操作功能说明
      空白键(space)代表向下翻一页
      Enter代表向下翻一行
      q代表立刻离开more,不再显示该文件内容
      Ctrl+F向下滚动一屏
      Ctrl+B返回上一屏
      =输出当前的行号
      :f输出文件名和当前行的行号
  • less指令

    • less指令用来分屏查看文件内容,它的功能与more指令类似,但是比more指令更强大,支持各种显示终端。less指令在显示文件内容时,并不是一次将整个文件加载后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率

    • 基本语法 less 要查看的文件

      操作功能说明
      空白键向下翻一页
      pagedown向下翻一页
      pageup向上翻一页
      /字串向下搜寻 字串 的功能;n:向下查找;N:向上查找
      ?字串向上搜寻 字串的功能;n:向上查找;N向下查找
      q离开less这个程序
  • echo指令

    • 输出内容到控制台
    • 基本语法 echo [选项] [输出内容]
  • head指令

    • head用于显示文件的开头部分内容,默认情况下head指令显示文件的前10行内容
    • 基本语法 head 文件 (功能描述:查看文件前10行内容)
    • head -n 5 文件(查看文件前5行,5可以更改)
  • tail指令

    • tail指令用于输出文件尾部的内容,默认情况下tail指令显示文件的前10行内容
    • 基本语法
      1. tail 文件 (功能描述:查看文件尾10行内容)
      2. tail -n 5 文件 (功能描述:查看文件尾5行内容,5可以是任意数字)
      3. tail -f 文件 (功能描述:实时追踪该文档的所有更新 Ctrl + C退出)
  • > 指令 和 >>指令

    • > 输出重定向 和 >> 追加
      1. Is -l > 文件(功能描述:列表的内容写入文件a.txt文件中(覆盖写))
      2. ls -al >> 文件 (功能描述:列表的内容追加到文件的末尾)
      3. cat 文件1 > 文件2 (功能描述:将文件1中的内容覆盖到文件2)
      4. echo “内容” >> 文件 (追加)
  • ln指令

    • 软链接也称为符号链接,类似于windows里的快捷方式,主要存放了链接其他文件的路径

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

    • 案例1:在/home目录下创建一个软链接 myroot,连接到/root目录

      ln -s /root /home/myroot

    • 案例2:删除软连接 myroot

      rm /home/myroot

    • 细节说明 :当我们使用pwd指令查看目录时,仍然看到的是软链接所在目录

  • history指令

    • 查看已经执行过历史命令,也可以执行历史指令

    • 基本语法 history (功能描述:查看已经执行过历史命令)

    • 案例

      1. 显示所有的历史命令

        history

      2. 显示最近使用过的10个指令

        history 10

      3. 执行历史编号为5的指令

        !5

5、时间日期类

  • date指令-显示当前日期

    • 基本语法
      1. date (功能描述:显示当前时间)
      2. date “+%Y” (功能描述:显示当前年份)
      3. date “+%m”(月份)
      4. date “+%d” (天)
      5. date “+%Y-%m-%d %H:%M:%S” (年月日时分秒)
  • date指令-设置日期

    • 基本语法

      date -s 字符串时间

  • cal指令

    • 查看日历指令
    • 基本语法 cal [选项] (功能描述:不加选项,显示月日历)

6、搜索查找类

  • find指令

    • find指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或目录显示在终端

    • 基本语法

      find [搜索范围] [选项]

      • 选项说明
选项功能
-name 查询方式按照指定的文件名查找模式查找文件
-user 用户名查找属于指定用户名所有文件
-size 文件大小按照指定的文件大小查找文件(+表示大于、-表示小于、直接大小表示等于,单位有k,M,G)
  • locate指令

    • locate指令可以快速定位文件路径。locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定文件。locate指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新locate时刻

    • 基本语法

      locate 搜索文件

      • 特别说明:由于locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate数据库
    • which指令

      • 可以查看某个指令在哪个目录下
  • grep指令和管道符号 |

    • grep过滤查找,管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理。

    • 基本语法

      grep [选项] 查找内容 源文件

      • 常用选项

      • 选项功能
        -n显示匹配行及行号
        -i忽略字母大小写
      • 案例:在hello.txt 文件中,查找“yes”所在行,并显示行号

        方式一:cat /home/hello.txt | grep -n “yes”

        方式二:grep -n “yes” /home/hello.txt

7、压缩和解压

  • gzip/gunzip指令

    • 基本语法

      gzip 文件 (功能描述:压缩文件,只能将文件压缩为*.gz文件)

      gunzip 文件.gz (功能描述:解压缩文件命令)

  • zip/unzip指令

    • zip用于压缩文件,unzip用于解压的,这个在项目打包发布中很有用

    • 基本语法

      zip [选项] XXX.zip 将要压缩的内容 (功能描述:压缩文件和目录的命令)

      • zip常用选项

        -r:递归压缩,即压缩目录

      unzip [选项] XXX.zip (功能描述:解压缩文件)

      • unzip常用选项

        -d <目录> :指定解压后文件存放目录

    • 案例

      1.将/home下的所有文件压缩成 myhome.zip

      ​ zip -r myhome.zip /home/ [将home及其包含的文件及子文件夹压缩]

      2.将myhome.zip解压到/opt/tmp目录下

      ​ unzip -d /opt/tmp/ /home/myhome.zip

  • tar指令

    • tar指令是打包指令,最后打包后的文件是.tar.gz的文件

    • 基本语法

      tar [选项] XXX.tar.gz 打包的内容 (功能描述:打包目录,压缩后的文件格式.tar.gz)

      选项功能
      -c产生.tar打包文件,建立一个压缩文件(create)
      -v显示详细信息,压缩的过程中显示文件
      -f指定压缩后的文件名
      -z打包同时压缩
      -x解包.tar文件,解开一个压缩文件
    • 案例

      1. 压缩多个文件,将/home/pig/txt 和/home/cat.txt 压缩成pc.tar.gz

        tar -zcvf pc.tar.gz /home/pig.txt /home/cat.txt

      2. 将/home的文件夹压缩成myhome.tar.gz

        tar -zcvf myhome.tar.gz /home/

      3. 将pc.tar.gz解压到当前目录,切换到/opt/

        tar -zxvf pc.tar

      4. 将没有home.tar.gz 解压到 /opt/tmp2目录下

        tar -zxvf /home/myhome.tar.gz -C /opt/tmp2

8、关闭正在执行的程序

  1. Ctrl + C 终止
  2. Ctrl + D 退出
  3. Ctrl + S 挂起
  4. Ctrl + Q 解挂
  5. Ctrl + Z 放在后端运行

组管理和权限管理

在linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件有所有者,所在组,其他组的概念。

  1. 文件/目录所有者

    一般为文件的创造者,创造者即为所有者

    • 查看文件的所有者 指令:ls -ahl
    • 修改文件所有者 指令: chown 用户名 文件名
  2. 文件/目录 所在组

    • 创建组:groupadd 组名
    • 查看文件/目录所在组 指令:ls -ahl
    • 修改文件所在组 指令:chgrp 组名 文件名
  3. 其他组

    除文件所有者和所在组的用户外,系统的其它用户都是文件的其他组

    • 改变用户的所在组 指令:

      usermod -g 组名 用户名

      usermod -d 目录名 用户名 (功能描述:改变该用户登录的初始目录,前提:用户要有进入该目录的权限)

  4. 权限的基本介绍

    -rw-r–r–. 1 maoshikai root 0 1月 24 11:51 apple.txt

    1. 第0位确定文件类型(d,-,l,c,b)

      l是链接,相当于windows的快捷方式

      d是目录,相当于windows的文件夹

      c是字符设备文件,鼠标,键盘

      b是块设备,比如硬盘

    2. 第1-3位确定所有者(该文件的所有者)拥有该文件的权限。—User

    3. 第4-6位确定所属组(同用户组的)拥有该文件的权限。—Group

    4. 第7-9位确定其他用户拥有该文件的权限。----Other

  5. rwx权限详解

    • rwx作用到文件
      1. 【r】代表可读
      2. 【w】代表可写:可以修改,但不是代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有 写权限,才能删除该文件
      3. 【x】代表可执行:可以被执行
    • rwx作用到目录
      1. 【r】代表可读
      2. 【w】可写:对目录内创建+删除+重命名目录
      3. 【x】代表可执行:可以进到该目录
  6. 修改权限chmod指令

    • 第一种方式:+,-,= 变更权限

      u:所有者 g:所有组 o:其他人 a:所有人(u、g、o的总和)

      1. chmod u=rwx,g=rx,o=x 文件/目录名
      2. chmod o + w 文件/目录名
      3. chmod a - x 文件/目录名
    • 第二种方式:通过数字变更权限

      r=4 , w=2 , x=1 , rwx=4+2=1=7

      相当于chmod 751 文件目录名

    • 案例

      1. 给abc文件的所有者读、写、执行权限,给所在组读、执行权限,给其他组读执行权限

        chmod u=rwx,g=rx,o=rx

      2. 给abc文件所有者除去执行权利,增加写的权限

        chmod u-x,g+w abc

      3. 给文件的所有用户添加读的权限

        chmod a+r abc

  7. 修改文件所有者

    • 基本介绍

    • chown newowner 文件/目录 (改变所有者)

    • chown newowner:newgroup 文件/目录 (改变所有者和所在组)

    • -R 如果是目录 则使其下所有子文件或目录递归生效

    • 案例

      1. 将/home/abc.txt 文件的所有者改成msk

        chown msk /home/abc.txt

      2. 将/home/kkk 目录下所有文件和目录的所有者都修改成msk

        chown -R msk /home/kkk

  8. 修改文件/目录所在组 chgrp

    • chgrp newgroup 文件/目录 (改变所有组)

    • 例将/home/abc.txt文件所在组修改成shaolin

      chgrp shaolin /home/abc.txt

定时任务调度

crontab 进行 定时任务的设置

  • 概述

    任务调度:是指系统在某个时间执行的特定的命令或程序

    任务调度分类:1. 系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等

    1. 个别用户工作:个别用户可能希望执行某些程序,比如对mydql数据库的备份
  • 基本语法

    crontab [选项]

    -e编辑crontab定时任务
    -l查询crontab任务
    -r删除当前所有的crontab任务

    5占位符含义

    项目含义范围
    第一个“*”一小时中的第几分钟0-59
    第二个“*”一天中的第几小时0-23
    第三个“*”一个月中的第几天1-31
    第四个“*”一年中的第几月1-12
    第五个“*”一周中的周几0-7(0和7都代表星期日)

    特殊符号说明

    特殊符号含义
    *代表任何时间,比如第一个*,就代表一小时中每分钟都执行一次的意思
    ,代表不连续的时间。“0 8,12,16 * * *”代表每天的8点零分,12点零分,16点零分都执行一次
    -代表连续的时间范围,“0 5 * * 1-6”代表在周一到周六的凌晨5点0分执行命令
    */n代表没个多久执行一次,“*/1 * * * *”代表每隔1分钟执行一遍命令

at定时任务

基本介绍

  1. at命令是一次性定时计划任务,at的守护进程atd会以后台模式运行,检查作业队列来运行

  2. 默认情况下,atd守护进程每60秒检查作业队列。有作业时会检查作业运行时间,如果与当前时间匹配,则运行此作业。

  3. at命令是一次性定时计划任务,执行完一个任务之后不再执行任务

  4. 在使用at命令时,一定要保证atd进程的启动,可以使用相关指令来查看

    ps -ef | grep atd //检车atd是否在运行

at命令格式

​ at [选项] [时间]

​ Ctrl + D 输两次 结束at命令的输入

选项含义
-m当指定任务被完成后,将给用户发送邮件,即使没有标准输出
-Iatq的别名
-datrm的别名
-v显示任务将被执行的时间
-c打印任务的内容到标准输出
-V显示版本信息
-q<队列>使用指定的队列
-f<文件>从指定文集爱你读入任务而不是从标准输入读入
-t<时间参数>以时间参数的形式提交要运行的任务

at时间指定的方法:

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

案例:

  1. 两天后下午5点执行/bin/Ls/home

​ at 5pm + 2days [回车输入/bin/Ls/home]

  1. atq命令查看系统中有没有执行的工作任务

  2. 明天17点钟,输出时间到指定文件内, 比如/root/date100.log

    at 5pm tomorrow [回车输入 date > date100.log]

  3. 2分钟后,输出时间到指定文件内 比如/root/date200.log

    now + 2 minutes [回车输入date > date200.log]

  4. 删除已经设置的任务,atrm编号

    atrm 5 <删除编号为5的任务>

Linux磁盘分区、挂载

Linux分区

原理介绍:

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

硬盘说明:

  1. Linux硬盘分为IDE硬盘和SCSI硬盘,目前基本上时SCSI硬盘
  2. 对于IDE硬盘,驱动器标识符为“hdx”(SCSI硬盘标识为“sdx”),其中hd表明分区所在设备的类型,这里是指IDE硬盘。x为盘号(a为基本盘、b为基本从属盘、c为主盘、d为辅助从属盘),表示分区,前四个分区分别用数字1到4表示,他们是主分区或扩展分区,从5开始就是逻辑分区。

查看所有设备挂载情况:

​ 命令:lsblk 或者 lsblk -f

如何增加一块硬盘

1、虚拟机添加硬盘 2、分区 3、格式化 4、挂载 5、设置可以自动挂载

分区命令:fdisk  /dev/sdb			开始分区后输入n,新增分区,然后选择p,分区类型为主分区。两次回车默认剩余全部空间。最后输入w写入分区并退出,若不保存退出输入q。

格式化硬盘:mkfs -t ext4 /dev/sdb1	(其中ext4是分区类型)

挂载:mount 设备名称 挂载目录

	取消挂载:unmount 设备名称或挂载目录

	**注意:用命令行挂载,重启后会失效**

永久挂载:通过修改/ect/fstab实现挂载

	添加完成后 执行 mount -a 立即生效

磁盘情况查询

  1. 查询系统整体磁盘使用情况

    命令:df -h

  2. 查询指定目录的磁盘占用情况

    命令:du -h

    查询指定目录的磁盘占用情况,默认为当前目录

    -s 指定目录占用大小汇总
    
    -h 带计量单位
    
    -a 含文件
    
    --max-depth=1 子目录的深度
    
    -c 列出明细的同时,增加汇总值
    

    例如:查询/opt目录的磁盘占用情况,深度为1

    du -hac --max-depth=1 /opt

  3. 磁盘情况-工作实用指令

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

linux网络配置

常见指令

查看网络ip和网关:在虚拟网络编辑器中

查看windows环境中网络配置:ipconfig

查看linux环境中网络配置:ifconfig

ping 测试主机之间的网络连通性

​ 基本语法:ping 目的主机(功能描述:测试当前服务器是否可以连接目的主机)

网络环境配置

  1. 第一种方式(自动获取)

​ 登录linux后,通过界面的来设置自动获取ip,特点:linux启动之后会自动获取ip,缺点是每次自动获取的ip地址可能不一样

  1. 第二种方式(指定ip)

    说明:直接修改配置文件来指定IP,并可以连接到外网

    编辑:vim /etc/sysconfig/network-scripts/ifcfg-ens33

    要求:将ip地址配置为静态的,比如ip地址为192.168.232.130

    TYPE="Ethernet"			#网络类型(通常是Ethernet)
    PROXY_METHOD="none"
    BROWSER_ONLY="no"
    #ip的配置方法[none|static|bootp|dhcp](引导时不使用协议|静态分配ip|BOOTP协议|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="3030bfaf-aa32-45a6-9111-fa89ddc14a13"		#随机id
    DEVICE="ens33"			#接口名(设备、网卡)
    #系统启动的时候网络接口是否有效(yes/no)
    ONBOOT="yes"
    #IP地址
    IPADDR=192.168.232.130
    #网关
    GATEWAY=192.168.232.2
    #域名解析器
    DNS1=192.168.232.2
    

    重启网络服务或重启系统生效

    serive network restart 或者 reboot
    

设置主机名和hosts映射

  1. 设置主机名

    方便记忆,可以给linux系统设置主机名,也可以根据需要修改主机名

    指令:hostname : 查看主机名

    修改文件在 /etc/hostname 指定。修改后,重启生效

  2. 设置hosts映射

    windows

    ​ 在C:\Windows\System32\drivers\etc\hosts 文件中指定

    ​ 例:192.168.232.130 localhost01

    linux

    ​ 在/etc/hosts 文件中指定

    ​ 例:192.168.200.1 ThinkPad-e14

主机名解析过程分析(Host、DNS)

  1. hosts是什么

    一个文本文件,用来记录 ip 和 hostname(主机名)的映射关系

  2. DNS

    DNS,就是domain name system的缩写,翻译:域名系统

    是互联网上作为域名和ip地址相互映射的一个分布式数据库

在浏览器访问网站过程中DNS域名解析过程

a)首先会搜索浏览器自身的DNS缓存(缓存时间比较短,大概只有1分钟,且只能容纳1000条缓存)

b)如果浏览器自身的缓存里面没有找到,那么浏览器会搜索系统自身的DNS缓存

​ 在cmd窗口中输入

​ ipconfig /displaydns //DNS域名解析缓存

​ ipconfig /flushdns //手动清理dns缓存

c)如果还没有找到,那么尝试从 hosts文件里面去找

d)在前面三个过程都没获取到的情况下,就递归地去域名服务器去查找,具体过程如下

linux进程管理

基本介绍:

  1. linux中每个执行的程序都称为一个进程。每一个进程都分配一个ID号(PID,进程号)
  2. 每个进程都可能以两种方式存在的。前台与后台
  3. 一般系统的服务都是以后台进程的方式存在的,而且都常驻在系统中,直到关机才会结束

显示系统执行的进程

指令:ps [选项],可以不加参数。

​ -a:显示当前终端的所有进程信息

​ -u:以用户格式显示进程信息

​ -x:显示后台进程运行的参数

  • USER: 行程拥有者
  • PID: pid
  • %CPU: 占用的 CPU 使用率
  • %MEM: 占用的记忆体使用率
  • VSZ: 占用的虚拟记忆体大小
  • RSS: 占用的记忆体大小
  • TTY: 终端的次要装置号码 (minor device number of tty)
  • STAT: 该行程的状态:
    • D: 无法中断的休眠状态 (通常 IO 的进程)
    • R: 正在执行中
    • S: 睡眠
    • s:表示该进程是会话的先导进程
    • T: 被跟踪或者被停止
    • Z: 僵死进程,不存在但暂时无法消除
    • W: 没有足够的记忆体分页可分配
    • <: 高优先序的行程
    • N: 低优先序的行程
    • L: 有记忆体分页分配并锁在记忆体内 (实时系统或捱A I/O)
  • START: 进程的启动时间
  • TIME: 执行的时间。CPU时间,即进程使用CPU的总时间
  • COMMAND:所执行的指令。启动进程所用的命令和参数,如果过长会被截断显示

以全格式显示当前所有进程

ps -ef 
	-e 显示所有进程
	-f 全格式
可以带上管道符号 | ,grep筛选指定进程
UID:用户ID
PID:进程ID
PPID:父进程ID

终止进程kill和killall

kill [选项] 进程号 (功能描述:通过进程号杀死/终止进程)

​ -9 :表示强迫进程立即停止

killall 进程名称 (功能描述:通过进程名称杀死进程,支持通配符,在系统因负载过大而很慢时很有用)

查看进程树pstree

pstree [选项],可以更直观的来看进程信息

​ -p:显示进程的PID

​ -u:显示进程的所属用户

服务管理

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

service管理指令

  1. 指令:service 服务名 [start|stop|restart|reload|status]

  2. 在centos7.0之后 很多服务不再使用service,而是systemctl

  3. service 指令管理的服务在 /etc/init.d 查看

    [root@localhost01 ~]# ls -l /etc/init.d/
    总用量 40
    -rw-r--r--. 1 root root 18281 5月  22 2020 functions
    -rwxr-xr-x. 1 root root  4569 5月  22 2020 netconsole
    -rwxr-xr-x. 1 root root  7928 5月  22 2020 network
    -rw-r--r--. 1 root root  1160 1月  14 00:54 README
    

查看服务名

​ setup -> 系统服务 ,就可以看到全部服务。有*的是自启动的

服务的运行级别

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

级别描述
0系统停机状态,系统默认运行级别不能设置为0,否则不能正常启动,机器关闭
1单用户工作状态,root权限,用于系统维护,禁止远程登陆,就像Windows下的安全模式登录
2多用户状态,没有NFS支持,不支持网络
3完整的多用户模式,有NFS,登陆后进入控制台命令行模式
4系统未使用,保留一般不用,在一些特殊情况下可以用它来做一些事情。例如在笔记本电脑的电池用尽时,可以切换到这个模式来做一些设置
5X11控制台,登陆后进入图形GUI模式,X Window系统
6系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动。运行init 6机器就会重启

centos7后运行级别说明

在/etc/initab,进行了简化

multi-user.target ; graphical.target

#To view current default target,run
systemctl get-default
#To set a default target,run --> 设置启动级别
systemctl set-default TARGET.target

chkconfig指令

通过chkconfig命令可以给服务的各个运行级别设置 启动/关闭

chkconfig指令的管理在 /etc/init.d 查看

基本语法:

  1. chkconfig --list [|grep xxx]

  2. chkconfig 服务名 --list

  3. chkconfig --level 5 服务名 on/off

    注意:使用chkconfig重新设置服务后自启动或关闭,需要重启机器reboot生效

systemctl指令

基本语法:systemctl [start|stop|restart|status] 服务名

​ systemctl指令管理的服务在/usr/lib/systemd/system 查看

systemctl设置服务的自启动状态:

  1. systemctl list-unit-files [| grep 服务名] (查看服务开机启动状态,grep可以进行过滤)
  2. systemctl enable 服务名 (设置服务开机启动)
  3. systemctl disable 服务名 (关闭服务开启启动)
  4. systemctl is-enabled 服务名 (查询某个服务是否是自启动的)
  • 应用案例:

查看当前防火墙的状况,关闭防火墙和重启防火墙。(防火墙是 firewalld.service)

​ systemctl status firewalld; systemctl stop firewalld; systemctl start firewalld

  • 细节讨论:
  1. 关闭或启用防火墙后,立即生效。 [telnet 测试 某个端口即可]
  2. 这种方式只是临时生效,当重启系统之后,还是回归到以前对某个服务的设置
  3. 如果希望设置某个服务自启动或关闭永久生效,要使用 systemctl [enable | disable] 服务名

firewall指令

在真正的生产环境下,往往需要将防火墙打开,但如果打开防火墙,那么外部请求数据就不能跟服务器监听端口通讯。这时就需要打开指定的端口

firewall指令

  • 打开端口: firewall-cmd --permanent --add-port=端口号/协议

  • 关闭端口: firewall-cmd --permanent --remove-port=端口号/协议

    • 重新载入才能生效:firewall-cmd --reload
  • 查询端口是否开放: firewall-cmd -query-port=端口/协议

top指令

top与ps指令相似。他们都用来显示正在执行的进程。top与ps最大不同,在于top在执行一段时间之后可以更新正在运行的进程。

基本语法:top [选项] 输入q退出

-d 秒数 :指定top指令每隔几秒更新,默认是3秒

-i:使top不显示任何闲置或僵死进程

-p:通过指定监控进程ID来仅仅监控某个进程的状态

前五行信息:

第一行:当前时间, 系统运行时间,连接用户,系统负载:1分钟,5分钟,15分钟

第二行:进程总数,正在运行数,睡眠的进程数,停止的,僵尸进程

第三行:用户空间占CPU百分比,内核占CPU百分比,用户进程空间内改变过优先级的进程占用CPU百分比,空闲CPU百分比,hi是硬件中断等待输入输出百分比,si是软件中断CPU百分比,st是分配给运行在其它虚拟机上的任务的实际 CPU 时间

第四行:物理内存总量,空闲内存,使用的内存,用作内核缓存的内存量

第五行:交换区总量,空闲交换区量,使用量,缓冲的交换区总量:内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖, 该数值即为这些内容已存在于内存中的交换区的大小。相应的内存再次被换出时可不必再对交换区写入。

进程信息:

PID:进程id USER:用户 PR:优先级 NI:nice值 负值表示高优先级,正值低优先级 VIRT:进程使用虚拟内存总量(kb单位)VIRT=SWAP+RES ( SWAP:使用的虚拟内存,被换出大小 ) RES:进程使用,未被换出的大小 SHR:共享内存大小,单位kb S:进程状态(S:sleep R:running T:trace/stop Z:僵尸进程 D:不可中断的睡眠状态) %CPU:CPU利用率 %MEM:内存利用率 TIME+:进程运行时间总计 COMMAND:命令名/命令行

实时交互操作说明

操作功能
P以CPU使用率排序,默认就是此项
M以内存使用率排序
N以PID排序
q退出top

netstat

监控系统网络情况netstat

基本语法:netstat [选项]

​ -an 按一定顺序排列输出

​ -p 显示哪个进程在调用

检测主机连接命令ping:

是一种网络连接检测工具,主要是用来检测远程主机是否正常,或是两部主机间的网线或网卡故障

rpm指令与yum指令

rpm包的管理

rpm是用于互联网下载包的打包及安装工具,它包含在某些linux分发版中。它生成具有.RPM扩展名的文件。是Red-Hat Package Manager(红帽软件包管理器)的缩写,类似于windows的setup.exe,这一文件格式名称虽然打上了RedHat的标志,Linux的分发版本都有采用,可以算是公认的行业标准了。

  • rpm包的简单查询指令
    • 查询已安装的rpm列表: rpm -qa | grep xx
      • 查看当前系统是否安装了firefox : rpm -qa | grep firefox
  • rpm包名基本格式
    • 一个rpm包名:firefox-60.2.2-1.e17.centos.x86_64
      • 名称:firefox
      • 版本号:60.2.2-1
      • 适用操作系统:e17.centos.x86_64(表示centos7.x的64位系统,如果是i686、i386表示32位系统,noarch表示通用)
  • rpm包的其他指令
    • rpm -qa :查询安装的所有rpm软件包
    • rpm -qa | more
    • rpm -qa | grep X [rpm -qa |grep firefox]
    • rpm -q 软件包名:查询软件包是否安装
    • rpm -qi 软件包名:查询软件包信息
    • rpm -ql 软件包名:查询软件包中的文件
    • rpm -qf 文件全路径名 查询文件所属的软件包
  • 卸载rpm包
    • 基本语法:rpm -e RPM 包的名称
      • 删除firefox 软件包 : rpm -e firefox
  • 细节讨论
    1. 如果其他软件包依赖于要卸载的软件包,卸载时会产生错误信息
    2. 如果我们要删除的就是foo这个rpm包,可以增加参数 --nodeps,就可以强制删除,但是一般不推荐这样做,因为依赖于该软件包的程序可能会无法运行
  • 安装rpm包
    • 基本语法:rpm -ivh RPM 包全路径名称
    • 参数说明:
      • i = install 安装
      • v = verbose 提示
      • h = hash 进度条
    • 应用实例
      • 演示卸载和安装浏览器
        • rpm -e firefox
        • rpm -ivh firefox

yum指令

yum是一个Shell前端软件包管理器,基于RPM包管理,能从指定的服务器自动下载RPM包并且安装,可以自动处理依赖关系,并且一次安装所有依赖的软件包。

  • yum基本指令
    • 查询yum服务器是否有需要安装的软件
      • yum list | grep xx 软件列表
  • 安装指定的yum包
    • yum install xxx
  • yum应用实例
    • 使用yum的方式来安装firefox
      • rpm -e firefox
      • yum list | grep firefox
      • yum install firefox
  • 32
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux学习笔记是关于学习Linux操作系统的记录和总结。在学习Linux时,你可能会遇到以下几个方面的内容。 首先,Linux是一个面向网络服务的操作系统,因此你可以随意更换桌面系统。Linux有多种不同的桌面系统供你选择。这意味着你可以根据自己的喜好和需求,选择适合自己的桌面环境。 其次,在Ubuntu中,root用户默认是被锁定的,因此你无法直接使用root权限进行操作。但是,你可以使用sudo命令来提升权限,以执行需要root权限的操作。通过sudo命令,普通用户可以在需要时暂时获得root权限,以便进行需要的操作。 此外,如果你需要修改内核为bash,可以使用vim编辑器打开/etc/passwd文件进行修改。在Linux系统中,vim是一种常用的文本编辑器,类似于Windows的记事本。通过编辑/etc/passwd文件,你可以修改用户的登录shell为bash。 总结起来,Linux学习笔记记录了学习Linux操作系统的过程和经验,包括选择适合自己的桌面环境、使用sudo提升权限以及通过vim编辑器修改/etc/passwd文件等。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Linux学习笔记](https://blog.csdn.net/m0_65379736/article/details/125700177)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值