别让 Linux 成为拿offer的阻碍

文章目录


  

  

  

  

前言

  

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

  

  

  

  

目录结构

  

  
在这里插入图片描述

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

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

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

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

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

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

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

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

  • /media(CentOS6):
    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"

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

find /opt/module/ -user mq

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

find /opt/module/ -size +200M

  
  

locate 快速定位文件路径

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

  locate 搜索文件

  
  

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

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

  grep 选项 查找的内容 源文件

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


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


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

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

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

  

  
  

压缩和解压类

  
  

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
  • 21
    点赞
  • 78
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值