• 别让 Linux 成为拿offer的阻碍


    文章目录


      

      

      

      

    前言

      

    博主在前一段时间的面试中被问到了一些Linux的基本命令,答的那叫一个相当的粗糙。因为博主之前为了快点学组件框架、做项目、把简历撰写完成,很多东西都是囫囵吞枣的学习。现在心仪的offer拿到了,必须回过头来重新深入理解一下没有掌握的知识!

      

      

      

      

    目录结构

      

      
    在这里插入图片描述

    • /bin
      是binary二进制的缩写,存放可以直接执行的常用命令(二进制目录,二进制是可以直接执行的机器码)。

    • /sbin
      system binary 系统级二进制命令目录,存放系统管理员(超级用户)才能使用的系统管理工具。

    • /home
      是普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。

    • /root
      系统超级管理员的用户主目录。

    • /etc
      存放系统管理所需要的配置文件和子目录。

    • /opt
      optional,给主机额外安装软件提供的目录,默认是空的。比如安装一个MySQL数据库就可以放到这个目录下。

    • /usr
      存放用户的很多应用程序和文件,类似于Windows下的program files目录,非常重要!

    • /boot
      存放启动Linux时使用的一些核心文件,包括一些链接文件以及镜像文件。

    • /mediaCentOS6):
      Linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux会把识别的设备挂载到这个目录下。(CentOS7移到了 /run/media)

    • /mnt
      该目录让用户临时挂载别的文件系统,可以将外部的存储挂载在 /mnt 上,然后进入该目录就可以查看里面内容了。

    • /var
      存放不断扩充的东西。一般将经常被修改的目录放在这个目录下,包括各种日志文件。

    • /tmp
      存放一些临时文件。

    • /dev
      device,类似于Windows的设备管理器,把所有的硬件设备用文件的形式存储(一切皆文件)。

    • /lib
      系统开机所需要的最基本的动态链接共享库。其作用类似于Windows里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。

    • /proc
      process,这个目录是一个虚拟的目录,它是系统内存的映射,可以通过直接访问这个目录来获取系统信息。

    • /srv
      service,存放一些服务启动之后需要提取的数据。

    • /sys
      这是Linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs。

      

      

      

      

    VI/VIM 编辑器

      

      

    是什么

    • VI 是Unix操作系统和类Unix操作系统中最通用的文本编辑器。
    • VIM 编辑器是从 VI 发展出来的一个性能更强大的文本编辑器。可以主动的以字体颜色辨别语法的正确性,方便程序设计。VIM 与 VI编辑器完全兼容。

      

      
      

    一般模式

      
    以 vi/vim 打开一个文档就直接进入一般模式了(这是默认的模式)。在这个模式中,可以使用上下左右按键移动光标,可以使用删除字符删除整行来处理文档内容,也可以使用复制、粘贴处理文档数据。

    语法功能描述
    yy复制光标当前一行
    数字yy / y数字y复制从当前行到下面的n行
    p粘贴到光标所在的下一行
    数字p粘贴多行
    u撤销(回滚,类似ctrl+z)
    ctrl+r反撤销(类似ctrl+shift+z)
    dd删除光标当前行
    数字dd / d数字d删除光标后多少行(含光标行)
    x剪切光标位置的字符,相当于delete,删右边字符
    X剪切光标左边的字符,相当于backspace退格键
    w光标跳到下一个单词
    shift+4($)光标移动到行尾
    shift+6(^)光标移动到行头
    r+字符/数字等把光标位置的东西改成新字符,相当于做了个替换
    R进入替换模式,输入的会依次替换后面的内容
    e朝后跳,跳到当前词的词尾(当前光标不在词尾)/ 下一个词的词尾(当前光标在词尾)
    b朝前跳,跳到当前词的词头(当前光标不在词头)/ 上一个词的词头(当前光标在词头)
    gg / H光标移动到整篇文档的开头
    G / L光标移动到最后一行行头
    数字+G跳转到指定行的行头
    yw复制一个词
    dw删除一个词
    y+shift+4(y$)复制从当前光标到行尾
    y+shift+6(y^)复制从行头到当前光标

      

      
      

    编辑模式(插入模式)

      
    在一般模式中可以进行删除、复制、粘贴等的动作,但是却无法编辑文件内容的!需要按下i,I,o,O,a,A等任何一个字母之后才会进入编辑模式。
    通常在Linux中,按下这些按键时,在画面的左下方会出现INSERT 或 REPLACE的字样,此时才可以进行编辑。而如果要回到一般模式, 则需要按下Esc这个按键即可退出编辑模式。

    (1)进入编辑模式:

    命令功能
    i当前光标前
    a当前光标后
    o当前光标行的下一行
    I光标所在行最前
    A光标所在行最后
    O当前光标行的上一行

    (2)退出编辑模式:
    Esc键 退出编辑模式,之后所在的模式为一般模式。

      

      
      

    命令模式

      
    在一般模式当中,输入 : / ? 中的任何一个按钮,就可以进入命令模式(光标移动到最底下那一行)。
    在这个模式当中, 提供搜寻资料的动作。而读取、存盘、大量取代字符、 离开 vim编辑器 、显示行号等动作是在此模式中执行的。
      

    命令功能
    :w保存
    :q退出
    :wq保存并退出
    :q!不保存强制退出
    /要查找的词(此时会开启高亮)n 查找下一个,N 查找上一个
    :noh取消高亮显示
    :set nu显示行号
    :set nonu关闭行号
    : s/old/new当前光标所在位置的替换
    : s/old/new/g当前行的全局替换
    :%s/old/new替换每一行的第一个匹配词
    :%s/old/new/g替换全篇文档所有的匹配词

      

      
      

    模式间转换

      
    在这里插入图片描述

      

      

      

      

    常用基础命令(重要)

      
    Shell 可以看作是一个命令解释器,提供了交互式的文本控制台界面。可以通过终端控制台来输入命令,由 shell 进行解释并最终交给内核执行。本章就将分类介绍常用的基本 shell 命令。

      

      
      

    帮助命令

      
      

    man 获得帮助信息

    man 是 manual (手册) 的缩写
      

    基本语法:
       man + 命令或配置文件      功能描述:获得帮助信息

      
      

    help 获得 shell 内置命令的帮助信息

    一部分基础功能的系统命令是直接内嵌在 shell 中的,系统加载启动之后会随着 shell 一起加载,常驻系统内存中,这部分命令被称为“内置(built-in)命令”;对应的其它命令 被称为“外部命令”。
      

    基本语法:
       help+ 命令      功能描述:获得 shell 内置命令的帮助信息

      
      

    type 查看某命令是内置命令还是外部命令

      
    基本语法:
       type+ 命令      功能描述:如果是内置命令会显示出来;没写内置就是外部。

    在这里插入图片描述

      
      

    常用快捷键

    快捷键功能
    ctrl + c停止进程
    ctrl+l清屏,等同于 clear;彻底清屏是:reset(重新启动当前shell环境)
    tab提示(更重要的是可以防止敲错)
    上下键查找执行过的命令

      

      
      

    文件目录类

      
      

    pwd 显示当前工作目录的绝对路径

    pwd:print working directory 打印工作目录
      
    功能:显示当前工作目录的绝对路径

      
      

    ls 列出目录的内容

    ls:list 列出目录内容
      
    (1)基本语法:

       ls + 参数 + 目录或文件

    (2)选项说明:

    参数功能
    -a全部的文件,连同隐藏的 (开头为 . 的文件) 一起列出来
    -l长数据串列出,包含文件的属性与权限等等数据(ls-l相当于ll)

    (3)显示说明:
    每行列出的信息依次是:
    文件类型与权限 链接数 文件属主 文件属组 文件大小(用byte表示) 建立或最近修改的时间 名字
    在这里插入图片描述

      
      

    cd 切换目录

    cd:Change Directory 切换路径
      
    (1)基本语法:

       cd + 参数

    (2)参数说明:

    参数功能
    cd 绝对路径切换路径
    cd 相对路径切换路径
    cd ~或者 cd回到自己的home/家目录
    cd -回到上一次所在目录
    cd …回到当前目录的上一级目录
    cd -P跳转到实际物理路径,而非快捷方式路径

      
      

    mkdir 创建一个新的目录

    mkdir:Make directory 建立目录
      
    (1)基本语法:

       mkdir + 参数 + 要创建的目录

    (2)参数说明:

    参数功能
    -p创建多层目录

      
      

    rmdir 删除一个空的目录

    rmdir:Remove directory 移除目录
      
    (1)基本语法:

       rmdir + 要删除的空目录

    (2)说明:

    rmdir 命令用来删除空目录,如果目录非空则会报错。可以使用 rm 删除目录中的文件后,使用 rmdir 删除目录。也可以使用 rm -rf 替代 rmdir 命令。

      
      

    touch 创建空文件

      
    基本语法:

       touch + 文件名称

      
      

    cp 复制文件或目录

      
    (1)基本语法:

       cp + (-r) + source dest       功能描述:复制 source文件到 dest

    (2)参数说明:

       -r:递归复制整个文件夹
       source:源文件
       dest:目标文件

      
      

    rm 删除文件或目录

      
    (1)基本语法:

       rm + 参数 + deleteFile       功能描述:删除目录中所有内容

    (2)参数说明:

    参数功能
    -r递归删除目录中所有内容
    -f强制执行删除操作,而不提示用于确认
    -v显示指令的详细执行过程

      
      

    mv 移动文件与目录或重命名

      
    基本语法:

    1. mv + oldNameFile + newNameFile:重命名
    2. mv + moveFileDir + targetFolderDir:移动文件

      
      

    cat 查看文件内容

    查看文件内容,从第一行开始显示
      
    基本语法:

       cat + 参数 + 要查看的文件

       参数:-n    功能:显示所有行的行号,包括空行

      
      

    more 文件内容分屏查看器

    more 指令是一个基于 VI 编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。more 指令中内置了若干快捷键。
      
    (1)基本语法:

       more + 要查看的文件

    (2)操作说明:

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

      
      

    less 分屏显示文件内容

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

       less + 要查看的文件

    (2)操作说明:

    操作功能
    空格键 (space)向下翻一页
    pagedown向下翻一页
    pageup向上翻一页
    /字符串向下搜寻字符串。n:向下查找,N:向上查找
    ?字符串向上搜寻字符串。n:向上查找,N:向下查找
    q退出less

      
      

    echo 输出内容到控制台

      
    基本语法:

       echo + 参数 + 输出内容

       参数:-e    功能:支持反斜杠 (\) 控制的字符转换(加了 -e 就能使用控制字符了)

    控制字符作用
    \输出\本身
    \n换行符
    \t制表符,也就是 Tab 键

      
      

    head 显示文件头部内容

    head 用于显示文件开头部分的内容,默认情况下 head 指令显示文件的前 10 行内容。
      
    基本语法:

    • head + 文件:
      查看文件头10行内容

    • head + -n + 数字 + 文件:
      如 head -n 5 文件,查看文件头5行内容。可以写任意数字。

       参数:-n 行数    功能:指定显示头部内容的行数

      
      

    tail 输出文件尾部内容

    tail 用于显示文件尾部的内容,默认情况下 tail 指令显示文件的后 10 行内容。
      
    (1)基本语法:

    • tail + 文件:
      查看文件尾部10行内容

    • tail + -n + 数字 + 文件:
      如 tail -n 5 文件,查看文件尾部5行内容。可以写任意数字。

    • tail + -f + 文件:
      实时追踪该文档的所有更新

    (2)选项:

    选项功能
    -n 行数输出文件尾部 n 行内容
    -f显示文件最新追加的内容,监视文件变化

      
      

    > 覆盖 和 >> 追加

    不用vim打开一个文件,直接在命令行就能修改文件内容。
      
    基本语法:

    • ls -l > 文件:
      列表的内容写入文件中(覆盖写)

    • ls -al >> 文件:
      列表的内容追加到文件的末尾

    • cat 文件 1 > 文件 2:
      将文件1的内容覆盖到文件2

    • cat 文件 1 >> 文件 2:
      将文件1的内容追加到文件2

    • echo “内容” > 文件:
      把内容覆盖写到文件里

    • echo “内容” >> 文件:
      把内容追加写到文件里

      
      

    ln 创建链接

    软链接也称为符号链接,类似于 windows 里的快捷方式,有自己的数据块,主要存放 了链接其他文件的路径。
      
    基本语法:

       (1)ln 创建硬链接

       ln + 原文件或目录 + 硬链接名    功能:给原文件创建一个硬链接
      
       (2)ln -s 创建软链接

       ln -s + 原文件或目录 + 软链接名    功能:给原文件创建一个软链接
      
       (3)删除链接:

       rm -rf 链接名,而不是 rm -rf 链接名/

    如果使用 rm -rf 链接名/ 删除,会把链接对应的真实目录下内容删掉!

      
    软硬链接区别:

    硬链接:
    所有创建的链接都指向同一个文件的 inode(索引节点)。如果删除源文件,没影响,因为其他硬链接仍然可以访问 inode 信息,访问到对应存储的数据空间,这样相当于文件还是存在的。可以防止误删。只有当源文件和所有的硬链接全删除后,当前文件才算是真正的被删掉了。
    PS:默认创建的文件的硬链接数是1

    软链接:
    相当于Windows的快捷方式。删除源文件,软链接文件依然存在,但是无法通过软链接访问源文件,此时软连接已经失效。

      
      

    history 查看已经执行过的历史命令

      
    基本语法:

       history    功能:查看已经执行过的历史命令

      

      
      

    时间日期类

      
      

    date 显示当前时间

      
    基本语法:

    注意:这里的+是要敲出来的!+必须写!

      (1) date:显示当前时间(年月日星期时分秒)

      (2) date +%Y:显示当前年份(2022)

      (3) date +%y:显示当前年份后两位(22)(有点模糊,一般不用)

      (4) date +%m:显示当前月份

      (5) date +%d:显示当前是哪一天

      (6) date +%S:显示当前秒数

      (7) date +%s:显示当前秒数对应的时间戳

      (8) date +%Y-%m-%d-%H:%M:%S:显示当前年月日时分秒。
           如果想用空格分隔,就必须加引号"",如:date “+%Y-%m-%d %H:%M:%S”

      
      

    date 显示非当前时间

      
    基本语法:

      (1) date -d ‘1 days ago’:显示昨天时间

      (2) date -d ‘-1 days ago’:显示明天时间

      (3) date -d ‘2 hours ago’:显示2小时前时间

      
      

    date 设置系统时间

      
    基本语法:

       date -s “字符串时间”

       date -s “2022-10-31 17:54:18”

      
      

    cal 查看日历

      
    基本语法:

       cal + 选项:如果不加选项,就显示本月日历

    选项功能
    具体某一年显示这一年的全日历信息
    -数字显示当前时间周围的几个月份日历
    -mMonday,把周一放在最前面 (一般外国人不都把周日放前面嘛)
    -y系统时间本年度的信息

      

      
      

    用户管理命令

      
      

    useradd 添加新用户

      
    基本语法:

      (1) useradd 用户名:添加新用户(默认组是和用户名一样的组)

      (2) useradd -g 组名 用户名:添加新用户到某个组

      
      

    passwd 设置用户密码

      
    基本语法:

       passwd 用户名:设置用户密码

      
      

    id 查看用户是否存在

      
    基本语法:

       id 用户名:查看用户是否存在

      
      

    cat /etc/passwd 查看创建了哪些用户

    当然,more和less都可以
      
    基本语法:

       cat /etc/passwd

      
      

    su 切换用户

    su: swith user 切换用户
      
    基本语法:

      (1) su 用户名:切换用户,只能获得用户的执行权限,不能获得环境变量

      (2) su - 用户名:切换到用户并获得该用户的环境变量及执行权限

      
      

    userdel 删除用户

      
    基本语法:

      (1) userdel 用户名:删除用户但保存用户主目录

      (2) userdel -r 用户名:用户和用户主目录,都删除( 删除用户的同时,删除与用户相关的所有文件)

      
      

    who 查看登录用户信息

      
    基本语法:

      (1) whoami:显示自身用户名称

      (2) who am i:显示登录用户的用户名以及登陆时间

      
      

    sudo 设置普通用户具有 root 权限

      
    基本语法:

       sudo + 命令:使普通用户临时具有管理员权限

    注意:
    sudo 之前需要在 /etc/sudoers 文件里配置,使它拥有使用 sudo 的权限,因为默认普通用户不能 sudo

      
      

    usermod 修改用户

      
    基本语法:

       usermod -g 用户组 用户名:把指定用户名的用户,它的用户组替换成指定的用户组

    例:usermod -g people tony:把 tony 的用户组改成 people(默认当然是tony了)

      

      
      

    用户组管理命令

      
    每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。
    不同 Linux 系统对用户组的规定有所不同, 如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。
    用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对 /etc/group文件的更新。
      
      

    groupadd 新增组

      
    基本语法:

       groupadd 组名

      
      

    groupdel 删除组

      
    基本语法:

       groupdel 组名

      
      

    groupmod 修改组

      
    基本语法:

       groupmod -n 新组名 老组名

      
      

    cat /etc/group 查看创建了哪些组

      
    基本语法:

       cat /etc/group:查看所有组相关信息(包含了系统用户组)

      

      
      

    文件权限类

      
      

    文件属性

      
    Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。
    为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。在Linux中我们可以使用 ll 或者 ls -l 命令来显示一个文件的属性以及文件所属的用户和组。

    在这里插入图片描述

      
    (1)从左到右的 10 个字符表示:
      
       第 0 位 (首位) 表示类型:

        在Linux中第一个字符代表这个文件是目录、文件或链接文件等等

        - 代表文件

        d 代表目录

        l 代表链接

        c 代表字符类型的设备文件(鼠标键盘输入操作涉及字符)

        b 代表块设备文件(硬盘)

      
       第 1-3 位表示属主权限(属主:该文件的所有者/创建者)

      
       第 4-6 位表示属组权限(属组:该文件所有者的同组用户)

      
       第 7-9 位表示其他用户权限

      
    PS:如果没有权限,就是 -

      
      
    (2)rwx 对于文件和目录的不同解释:
      
       1、作用于文件:

          r 代表可读 (read):可以读取,cat 等查看文件内容

          w 代表可写 (write):可以对文件内容修改。但是不代表可以删除或重命名该文件,删除/重命名一个文件的前提条件是对该文件所在的目录有 w写权限,才能删除该文件。

          x 代表可执行 (execute):可以被系统执行

      
       2、作用于目录:

          r 代表可读 (read):可以读取,ls 等查看目录内容

          w 代表可写 (write):可以修改,目录内创建、删除、重命名 (文件或目录)

          x 代表可执行 (execute):可以进入该目录

      
      
    (3)ll 命令显示文件基本属性介绍:
    在这里插入图片描述

      
      

    chmod 改变权限

      
    基本语法:

    在这里插入图片描述

      (1)第一种方式变更权限

      chmod  ugoa  +-=  rwx  文件或目录

      解释:u:user所属者、g:group所属组、o:other其他人、a:all所有人(u、g、o 的总和)

            +和=都是赋予权限,-是取消权限

      例:chmod g+w helloWorld.sh

      
      (2)第二种方式变更权限

      chmod  数字  文件或目录

      解释:r=4 w=2 x=1   rwx=4+2+1=7 rw=6 rx=5 wx=3
            如果是0,则 r e x 三个权限都没有

      例:chmod 644 helloWorld.sh 等价于 chmod u+rw,go+r helloWorld.sh

      
    参数:

      -R:修改整个文件夹里面的所有文件的所有者、所属组、其他用户的权限(递归修改)

      例:修改整个study文件夹里面的所有文件的所有者、所属组、其他用户都具有可读可写可执行权限
        chmod -R 777 study/

      
      

    chown 改变拥有者

      
    基本语法:

      chown (-R) 所有者名 文件或目录:改变文件或者目录的所有者。加上 -R 是递归改变,该目录下的所有文件或目录都会更改。

      
      

    chgrp 改变所属组

      
    基本语法:

      chgrp 所属组名 文件或目录:改变文件或者目录的所属组

      

      
      

    搜索查找类

      
      

    find 查找文件或者目录

      
    find 指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件显示在终端。
      
    基本语法:

      find 待查找的路径 参数   (如果不写路径,则默认从当前路径开始查找)

      
    参数说明:

    参数功能
    -name按文件名:按照指定的文件名查找文件
    -user按拥有者:查找属于指定用户名的文件
    -size按文件大小:按照指定的文件大小查找文件,单位为:
    b —— 块(512 字节)
    c —— 字节
    w —— 字(2 字节)
    k —— 千字节
    M —— 兆字节
    G —— 吉字节

      
    举例:

    (1)按文件名:根据名称查找 /opt/module/ 目录下的 .txt 文件

    find /opt/module/ -name "*.txt"
    
    • 1

    (2)按拥有者:查找 /opt/module/ 目录下,用户名称为 mq 的文件

    find /opt/module/ -user mq
    
    • 1

    (3)按文件大小:在 /opt/module/ 目录下查找大于200m的文件(+n 大于 、-n小于 、n等于)

    find /opt/module/ -size +200M
    
    • 1

      
      

    locate 快速定位文件路径

      
    locate 指令利用事先建立的系统中所有文件名称及路径的 locate 数据库实现快速定位指定的文件。
    locate 指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新 locate (默认每天自动更新一次,手动更新命令:updatedb )。
      
    基本语法:

      locate 搜索文件

      
      

    grep 过滤查找及“|”管道符

      
    管道符,“|”,表示将前一个命令的处理结果传递给后面,作为后面命令的参数再进行处理
      
    基本语法:

      grep 选项 查找的内容 源文件

    选项功能
    -n显示匹配行及行号


    PS:find、locate找的是文件名,而grep找的是文件内容


    例:查找 helloWorld.txt 文件中包含 hadoop 的行

    grep -n hadoop /opt/module/helloWorld.txt
    
    • 1

    cat /opt/module/helloWorld.txt | grep -n hadoop
    
    • 1

      

      
      

    压缩和解压类

      
      

    gzip 压缩 / gunzip 解压缩

      
    基本语法:

       gzip 文件 :压缩文件,只能将文件压缩为 *.gz 文件

       gunzip 文件.gz :解压缩文件

      
    提示:

    (1)只能压缩文件不能压缩目录

    (2)压缩后不保留原来的文件

    (3)同时压缩多个文件会产生多个压缩包

      
    实操:

    (1)压缩文件 hello.txt

    [mq@hadoop102 ~]# gzip hello.txt
    [mq@hadoop102 ~]# ls
    hello.txt.gz

    (2)解压缩

    [mq@hadoop102 ~]# gunzip hello.txt.gz
    [mq@hadoop102 ~]# ls
    hello.txt

      
      

    zip 压缩 / unzip 解压缩

      
    基本语法:

       zip 选项 XXX.zip(压缩后的名称) 将要压缩的内容 :压缩文件或目录

       unzip 选项 解压到的路径 XXX.zip :解压缩文件

      

    zip选项功能
    -r压缩目录

      

    unzip选项功能
    -d指定解压后文件的存放目录

      
    提示:

    zip 压缩命令在windows/linux都通用,可以压缩目录且保留源文件

      
    实操:

    (1)压缩 hello.txt 和 world.txt,压缩后的名称为 helloWorld.zip

    [mq@hadoop102 ~]# zip helloWorld.zip hello.txt world.txt

    (2)解压 helloWorld.zip 到指定目录

    [mq@hadoop102 ~]# unzip -d /opt/module/ helloWorld.zip

      
      

    tar 打包压缩

      
    tar打包压缩 = 打包之后再用gzip压缩(两个功能一次满足)
      
    基本语法:

       tar  选项  XXX.tar.gz(打包之后的名称)  将要打包进去的文件或目录 :打包并压缩后的文件格式 .tar.gz

      

    选项功能
    -c产生 .tar 打包文件
    -v显示详细信息
    -f指定压缩后的文件名
    -z打包同时压缩
    -x解包.tar 文件
    -C解压到指定目录

      
    实操:

    (1)打包多个文件和目录

    [mq@hadoop102 ~]# tar -zcvf test.tar.gz hello.txt world.txt mq/

    (2)解压到指定目录

    [mq@hadoop102 ~]# tar -zxvf test.tar.gz -C /opt/module/

      

      
      

    进程管理类

      
    进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。
      
      

    ps 查看当前系统进程状态

      
    ps:process status 进程状态
      
    基本语法:

      ps aux | grep xxx :查看系统中所有进程

      ps -ef | grep xxx :可以查看子父进程之间的关系

      

    选项功能
    a列出带有终端的所有用户的进程
    x列出当前用户的所有进程,包括没有终端的进程
    u面向用户友好的显示风格
    -e列出所有进程
    -u列出某个用户关联的所有进程
    -f显示完整格式的进程列表

      
    功能说明:

    (1)ps aux 显示信息说明

      USER:该进程是由哪个用户产生的

      PID:进程的 ID 号

      %CPU:该进程占用 CPU 资源的百分比,占用越高,进程越耗费资源

      %MEM:该进程占用物理内存的百分比,占用越高,进程越耗费资源

      VSZ:该进程占用虚拟内存的大小,单位 KB

      RSS:该进程占用实际物理内存的大小,单位 KB

      TTY:该进程是在哪个终端中运行的。对于 CentOS 来说,tty1 是图形化终端, tty2-tty6是本地的字符界面终端。pts/0-255 代表虚拟终端。

      STAT:进程状态。常见的状态有:R:运行状态、S:睡眠状态、T:暂停状态、Z:僵尸状态、s:包含子进程、l:多线程、+:前台显示

      START:该进程的启动时间

      TIME:该进程占用 CPU 的运算时间,注意不是系统时间

      COMMAND:产生此进程的命令名

      

    (2)ps -ef 显示信息说明

      UID:用户 ID

      PID:进程 ID

      PPID:父进程 ID

      C:CPU 用于计算执行优先级的因子。数值越大,表明进程是 CPU 密集型运算,执行优先级会降低;数值越小,表明进程是 I/O 密集型运算,执行优先级会提高

      STIME:进程启动的时间

      TTY:完整的终端名称

      TIME:CPU 时间

      CMD:启动进程所用的命令和参数

      
    补充:

    (1)如果想查看进程的 CPU 占用率和内存占用率,可以使用 aux

    [mq@hadoop102 ~]# ps aux

    (2)如果想查看进程的父进程 ID 可以使用 -ef

    [mq@hadoop102 ~]# ps -ef

      
      

    kill 终止进程

      
    基本语法:

      kill [选项] 进程号 :通过进程号杀死进程

      killall 进程名称 :通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用

    选项功能
    -9表示强迫进程立即停止

      
    实操:

    (1)杀死浏览器进程

    [mq@hadoop102 桌面]# kill -9 5102

    (2)通过进程名称杀死进程

    [mq@hadoop102 桌面]# killall firefox

      
      

    pstree 查看进程树

      
    基本语法:

      pstree -p :显示进程的 PID

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

      
      

    netstat 显示网络状态和端口占用信息

      
    基本语法:

      netstat -anp | grep 进程号 :查看该进程网络信息

      netstat –nlp | grep 端口号 :查看网络端口号占用情况

    选项功能
    -a显示所有正在监听(listen)和未监听的套接字(socket)
    -n拒绝显示别名,能显示数字的全部转化成数字
    -l仅列出在监听的服务状态
    -p表示显示哪个进程在调用

      

      

      

      

    工作中学习的

      
      

    crontab 定时调度

      
    进行定时任务的设置
      
    基本语法:

      crontab [选项]

    选项功能
    -e编辑crontab定时任务
    -l查看已编辑的crontab定时任务
    -r删除当前用户所有的crontab任务

      
    编写调度指令:

    默认有5个*占位符,即 * * * * * ,含义是 每分钟定时执行一次。

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

      
    其他特殊符号:

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

      
    真实案例:

    在这里插入图片描述

      

      

      

      

    面试题总结

      

    该部分总结面试中遇到的答不上来的问题,持续更新~

      

    (1)给你一个进程的名字,比如a进程,用一行命令停止a进程

    ps -ef | grep a | awk '{print $2}' | xargs kill -9
    
    • 1
  • 相关阅读:
    Linux命令学习之原来最简单的ls命令这么复杂
    02Spring框架的特点以及jar包下载
    【神印王座】陈樱儿假扮魔神皇,皓晨想杀人灭口,采儿施展禁制,月夜成功自保
    pytorch深度学习实战lesson9
    路径查找算法应用之A*算法
    你见过哪些实用到爆的 Java 代码技巧?
    【C++初阶学习】第十二弹——stack和queue的介绍和使用
    JPEG公布智能图像编码提案结果,火山引擎排名主观质量评测第一
    Redis事务失效的三种场景
    【JAVA刷题初阶】刷爆力扣第三弹——数组
  • 原文地址:https://blog.csdn.net/qq_56952363/article/details/127421744