别让 Linux 成为拿offer的阻碍

news2025/4/9 10:12:12

文章目录

  • 前言
  • 目录结构
  • VI/VIM 编辑器
    • 是什么
    • 一般模式
    • 编辑模式(插入模式)
    • 命令模式
    • 模式间转换
  • 常用基础命令(重要)
    • 帮助命令
      • man 获得帮助信息
      • help 获得 shell 内置命令的帮助信息
      • type 查看某命令是内置命令还是外部命令
      • 常用快捷键
    • 文件目录类
      • pwd 显示当前工作目录的绝对路径
      • ls 列出目录的内容
      • cd 切换目录
      • mkdir 创建一个新的目录
      • rmdir 删除一个空的目录
      • touch 创建空文件
      • cp 复制文件或目录
      • rm 删除文件或目录
      • mv 移动文件与目录或重命名
      • cat 查看文件内容
      • more 文件内容分屏查看器
      • less 分屏显示文件内容
      • echo 输出内容到控制台
      • head 显示文件头部内容
      • tail 输出文件尾部内容
      • > 覆盖 和 >> 追加
      • ln 创建链接
      • history 查看已经执行过的历史命令
    • 时间日期类
      • date 显示当前时间
      • date 显示非当前时间
      • date 设置系统时间
      • cal 查看日历
    • 用户管理命令
      • useradd 添加新用户
      • passwd 设置用户密码
      • id 查看用户是否存在
      • cat /etc/passwd 查看创建了哪些用户
      • su 切换用户
      • userdel 删除用户
      • who 查看登录用户信息
      • sudo 设置普通用户具有 root 权限
      • usermod 修改用户
    • 用户组管理命令
      • groupadd 新增组
      • groupdel 删除组
      • groupmod 修改组
      • cat /etc/group 查看创建了哪些组
    • 文件权限类
      • 文件属性
      • chmod 改变权限
      • chown 改变拥有者
      • chgrp 改变所属组
    • 搜索查找类
      • find 查找文件或者目录
      • locate 快速定位文件路径
      • grep 过滤查找及“|”管道符
    • 压缩和解压类
      • gzip 压缩 / gunzip 解压缩
      • zip 压缩 / unzip 解压缩
      • tar 打包压缩
    • 进程管理类
      • ps 查看当前系统进程状态
      • kill 终止进程
      • pstree 查看进程树
      • netstat 显示网络状态和端口占用信息
  • 面试题总结

  

  

  

  

前言

  

博主在前一段时间的面试中被问到了一些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表示显示哪个进程在调用

  

  

  

  

面试题总结

  

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

  

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

ps -ef | grep a | awk '{print $2}' | xargs kill -9

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/3858.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java 之 ElasticSearch8.x.x 【一篇文章精通系列】【ES的基本操作,ES安装,ES head + Kibana】

Java 之 ElasticSearch8.x.x 【一篇文章精通系列】【上:ES的基本操作,ES安装,ES head Kibana】一、ElasticSearch的安装1、解压安装ES2、熟悉目录3、启动ES4、安装可视化界面(elasticsearch head)5、了解ELK6、安装Ki…

【路径插值与抽稀篇】(3)路径插值与抽稀篇

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录系列文章目录前言一、路径曲线插值、拟合和逼近的区别1、拟合2、插值3、逼近二、路径点线性插值方法(1)纯跟踪&#xff…

EDA程序设计--计时器设计

实训题目:计时器的设计 1 系统设计 1.1设计要求 1.1.1 设计任务 设计并制作一台计时器。 1.1.2 性能指标要求 ① 用EDA实训仪的I/O设备和PLD芯片实现计时器的设计。 ② 计时器能够显示时、分和秒。 ③ 用EDA实训仪上的8只八段数码管显示时、分和秒(如00…

mysql 常用查询优化策略详解

前言 在程序上线运行一段时间后,一旦数据量上去了,或多或少会感觉到系统出现延迟、卡顿等现象,出现这种问题,就需要程序员或架构师进行系统调优工作了,其中,大量的实践经验表明,调优的手段尽管…

Linux学习——目录操作和库使用

目录 一、打开目录 二、读取目录 三、关闭目录 四、修改文件权限 五、获取文件属性 六、库的概念: 1、静态库 缺点: 优点: 创建静态库步骤: 链接静态库: 2、动态库 动态库的生成步骤: 练习题&a…

论文阅读之Enhancing Transformer with Sememe Knowledge(2020)

文章目录论文阅读Transformmer-SETransformer-SP实验结果总结参考论文阅读 文章建议结合两种简单的方法将义原知识整合: 1)基于语言学假设,我们将聚合义原嵌入添加到每个词嵌入中以增强其语义表示; 2)我们使用义原预测…

OpenCV实战项目 -- 口罩识别

每次我忘记戴口罩去食堂吃饭的时候,门口都会有志愿者学生提醒你:“你好,麻烦戴下口罩。” 进门后里面那块大屏幕还会发出声音:“请佩戴口罩”。 上次博客仿照宿舍楼下那块大屏幕写了个人脸考勤,所以这次我打算弄一个口…

std::logic_error 错误的解决

今天测试一个程序,突然出现一个 std::logic_error 错误,详细如下: 这个应该是 std::string 相关的一个错误,具体的错误信息还得用 GDB 跟踪一下了。 看第 8 栈帧已经是系统库里的东西了,第 9 帧是我本地的代码&#x…

【C进阶】之定义结构体及使用typedf

1 结构体中包含函数指针类型成员 声明的格式: struct 结构体名 { 返回类型 (*函数指针名)(形参列表); }; 定义结构体类型的变量并对结构体中的函数指针成员进行初始化 struct 结构体名 结构体变量名; 结构体变量名.函数指针名 函数名; // 函数指针指向的函数具有相…

目标检测(7)—— YOLO系列V3

一、YOLOV3 多scale 三种scale: 为了检测到不同大小的物体,设计了3个scale。 特征融合不好。 感受野大的特征图预测大的,中的预测中的,小的预测小的。各自预测各自的,不用做特征融合。 三个候选框: 每个特…

「C++小游戏教程」基本技巧(2)——系统 DOS 命令

0. 引言 「C小游戏教程」基本技巧(1)——随机化 在 (1) 中,我在使用 random_shuffle() 时加了一个 system("pause");。其中 system() 是系统发出 DOS 命令的函数,原型为 int system(char *command);。我们今天就来谈谈这个函数的主要功能用途…

Redis持久化

目录 一、Redis高可用 1.持久化 2.主从复制 3.哨兵 4.Cluster集群 二、Redis持久化 三、RDB持久化 1.概念 2.触发条件 (1)手动触发 (2)自动触发 3.执行流程 4.启动时自动加载 四、AOF持久化 1.概念 2.开启AOF持久…

微信公众号获取openid流程

说明 微信公众号获取openid,在官方文档中称为网页授权,授权有两种scope,snsapi_base和snsapi_userinfo,snsapi_base是静默授权,不需要用户同意,以下要说的就是静默授权。 关于网页授权的两种 scope 的区别…

[CISCN2019 华北赛区 Day1 Web2]ikun

要买lv6 然后下一页下一页的找,也找不到 来个脚本爆破一下 #coding:utf-8 import requests import time for i in range(1,200):print(i)url http://17dfa3f4-2826-4b97-9d61-a920b6c8976f.node4.buuoj.cn:81/shop?page{}.format(i)r requests.get…

目标检测(6)—— YOLO系列V2

一、YOLOV2改进的概述 做的改进如下图: Batch Normalization 批量归一化层 不加BN层,网络可能学偏,加上归一化进行限制。 从今天来看,conv后加BN是标配。 更大的分辨率 V1训练的时候使用224224,测试用448448。 V2训…

胡扯推荐算法(协同)及其dome实现

文章目录前言推荐系统定义基本分类相似度计算欧式距离皮尔逊系数余弦相似度协同过滤案例数据定义相似度计算推荐svd奇异值分解优化完整代码总结前言 打瞌睡遇到送枕头的感觉真爽嘿嘿 BoyC啊 废话不多说,开始吧。 推荐系统定义 推荐系统(Recommendation System,…

张益唐与黎曼猜想

一个人活在世界上,可以有不同层次的贡献,有正的有负的。唐山烧烤店打人的那种人,就是典型的负的贡献。正的贡献有大有小,像我这样开发一个小软件,写一段小博文,这是小的贡献;像张益唐这样&#…

zlMediaKit 9 ThreadPool模块

semaphore.h TaskQueue.h threadgroup.h ThreadPool.h ThreadPool semaphore 基于条件变量和锁实现的信号量post和wait语义 #include <mutex> #include <condition_variable>namespace toolkit {class semaphore { public:explicit semaphore(size_t initia…

Linux命令从入门到实战 ----查找文件和目录压缩和解压缩

文章目录搜索查找find查找文件和目录locate快速定位文件路径grep 过滤查找| 管道符which命令用于查找文件。whereis压缩和解压缩gzip/gunzip 压缩zip/unzip压缩tar打包总结搜索查找 find查找文件和目录 find指令将从指令指定目录下向下遍历其各个子目录&#xff0c;将满足条件…

算法60天:day46

算法60天&#xff1a;day46动态规划-单词拆分动态规划-多重背包问题动态规划-背包总结动态规划-单词拆分 力扣链接 class Solution { public:bool wordBreak(string s, vector<string>& wordDict) {unordered_set<string> wordSet(wordDict.begin(),wordDict…