Linux:文件系统基础命令扫盲

目录

查看目录下的文件

创建目录文件

删除目录文件

打印当前工作目录

切换工作目录

删除文件

复制文件或目录

移动文件或目录

创建文件


🚀主页:R6bandito_

 ✈往期:《Linux与Windows文件共享》

查看目录下的文件

命令:ls (list):

        显示指定目录中的文件或子目录

ls [参数] [路径信息]

示例:列出根目录下所有文件及子目录

youdingsong@ubuntu:/$ ls 
bin  boot  dev  etc  home  lib  lost+found  media  mnt  opt  proc  root  run  sbin  selinux  srv  sys  tmp  usr  var
youdingsong@ubuntu:/$ 

不使用任何参数且采用默认路径,则默认列出当前所处工作目录的文件及其子目录

我们使用man手册列出ls命令的帮助信息如下:

可以看到其可调用的参数是十分多的,在此处我们不一一列举。命令行参数可以叠加配合使用,如下所示:

youdingsong@ubuntu:~$ ls -alh 
#此处,alh便为三个不同的参数。其功能见文章下述。

接下来介绍几个ls常用的且比较重要的命令行参数:

  • -a(all): man手册原文:

do not ignore entries starting with .

不忽略以 . 开头的隐藏文件

例如我们来到家目录,使用ls列出其下文件:

youdingsong@ubuntu:~$ ls
Documentary

可以看到其中只有一个子目录:Documentary。现在我们使用 -a参数,来列出家目录下文件:

youdingsong@ubuntu:~$ ls -a
.  ..  .bash_history  .bash_logout  .bashrc  Documentary  .oh-my-zsh  .profile  .sudo_as_admin_successful  .viminfo  .zshrc
youdingsong@ubuntu:~$ 

        现在我们一并将其中的隐藏文件全部列了出来。这些文件在默认情况下是不会显示的,无论是在图形界面还是命令行界面。

  • -l(long):man手册原文:

use a long listing format

使用长格式进行打印显示

例如我们在家目录下,调用此命令:

youdingsong@ubuntu:~$ ls -al
total 44
drwxr-x--- 4 youdingsong youdingsong 4096 Oct 12 20:11 .
drwxr-xr-x 3 root        root        4096 Oct 12 16:48 ..
-rw------- 1 youdingsong youdingsong  948 Oct 12 17:35 .bash_history
-rw-r--r-- 1 youdingsong youdingsong  220 Oct 10 20:48 .bash_logout
#部分结果如上

可以看到该命令将文件的详细信息和属性打印了出来。这里我们来识读一下所打印信息的含义:

  • 红框第一列:该列中d代表该文件为目录文件(即目录), -代表该文件为文件系统的一个普通文件。 若为l则代表该文件为一个软链接

  • 蓝框中每行的9位数据为文件的权限部分:从左至右每三位为一组,分别为

    文件所有者 文件所有者所在组 其它人

    所对应的权限有:r (read 可读),w (write 可写),x (execute 可执行)。 这里以第二行数据的权限为例:

drwxr-xr-x
rwx:文件的所有者拥有  可读  可写  可执行 权限
r-x:文件所有者所在组拥有	可读	可执行 权限 (无可写权限)
r-x:其它人拥有	可读	可执行	权限

  • 绿框列:为该文件的硬链接数目。

  • 黄框:为文件的所有者以及文件所有者的组。这里我们可以看到,..文件的所有者与所有者的组均为root(注:...均为文件)。

  • 棕色框:文件的大小。

  • 玫瑰色框:文件最近的一次修改时间。

  • 白色框:文件名称。

  • -h(human readable):man手册原文:

with -l and -s, print sizes like 1K 234M 2G etc.

-l-s等参数配合使用,以人类易读的方式显示出文件的大小。在家目录下执行此命令:

youdingsong@ubuntu:~$ ls -lh
total 4.0K
drwxrwxr-x 2 youdingsong youdingsong 4.0K Oct 10 21:10 Documentary

 与之前进行对比,可以看到文件大小的显示格式已经变为了常用的以K,M,Gb等常用易读格式。

  • -t(sort by time):man手册原文:

sort by time, newest first; see --time

根据文件所修改的时间进行排序。最近修改的文件排在前面。在家目录下执行下列命令:

youdingsong@ubuntu:~$ ls -alht
total 44K
drwxr-x--- 4 youdingsong youdingsong 4.0K Oct 12 21:03 .
-rw------- 1 youdingsong youdingsong   20 Oct 12 21:03 .lesshst
-rw------- 1 youdingsong youdingsong 1.1K Oct 12 20:50 .bash_history
drwxr-xr-x 3 root        root        4.0K Oct 12 16:48 ..
drwxrwxr-x 2 youdingsong youdingsong 4.0K Oct 10 21:10 Documentary
-rw------- 1 youdingsong youdingsong  888 Oct 10 21:10 .viminfo
…………
youdingsong@ubuntu:~$

可以看到,时间最新的已经排到了第一列,并顺次往下延,越往后文件最近的一次修改时间据现在越长。

关于ls更多的参数,可以参考man手册进行使用。


创建目录文件

命令:mkdir(make directory)

        创建一个目录文件

mkdir [参数] directory_name

示例:在家目录下创建新目录文件 Test_dir。

youdingsong@ubuntu:~$ mkdir Test_dir
youdingsong@ubuntu:~$ ls
Documentary  Test_dir

可以看到家目录下已经新创建了一个空目录。mkdir命令常用参数如下:

  • -p(parents):man手册原文:

no error if existing, make parent directories as needed

如果父目录不存在,则会创建父目录。这也就是所谓的递归创建目录。

例如:

youdingsong@ubuntu:~$ mkdir -p Test_dir/dir1/dir2/dir3
youdingsong@ubuntu:~$ tree Test_dir/
Test_dir/
└── dir1
    └── dir2
        └── dir3

3 directories, 0 files

我们向Test_dir目录文件中又继续创建了子目录,子目录下又有子目录。

  • -m(mode):man手册原文:

set file mode (as in chmod)

        正如chmod命令一样,创建目录文件并向其赋予指定权限。

        例如我们在家目录下创建一个新目录new_dir。并将其权限设置为 rwx rwx rwx(注:此处不能使用文字法来设定权限,只能使用数字法!)

youdingsong@ubuntu:~$ mkdir -m 777 new_dir
youdingsong@ubuntu:~$ ls -l
total 12
drwxrwxr-x 6 youdingsong youdingsong 4096 Oct 13 10:04 Documentary
drwxrwxrwx 2 youdingsong youdingsong 4096 Oct 13 11:12 new_dir
drwxrwxr-x 3 youdingsong youdingsong 4096 Oct 13 11:03 Test_dir
youdingsong@ubuntu:~$ 

可以看到,所创建的new_dir已经被赋予了所指定的权限。


删除目录文件

命令:rmdir(remove empty directory)

        删除一个目录

rmdir [参数] [路径信息]

例如删除掉之前所创建的new_dir文件:

youdingsong@ubuntu:~$ rmdir new_dir
youdingsong@ubuntu:~$ ls
Documentary  Test_dir

该命令用于删除目录,但是只能删除空目录文件。对于非空目录文件是无法使用rmdir进行操作的。

youdingsong@ubuntu:~$ tree Test_dir/
Test_dir/
├── dir1
│   └── dir2
│       └── dir3
└── main.c

3 directories, 1 file
youdingsong@ubuntu:~$ rmdir Test_dir
rmdir: failed to remove 'Test_dir': Directory not empty

Test_dir目录非空,对其使用rmdir命令报错。

  • 参数-p(parents):man手册原文:

remove DIRECTORY and its ancestors;

删除目录及其上级。假设我们现在有如下目录结构:

youdingsong@ubuntu:~$ tree test/
test/
└── hello
    └── this
        └── is
            └── linux

4 directories, 0 files

我们想要删除整个test目录及其子孙目录。执行如下命令:

youdingsong@ubuntu:~$ rmdir test
rmdir: failed to remove 'test': Directory not empty

很明显,直接这样做是行不通的,rmdir并不能删除非空目录文件。我们换个思路,由内而外依次删除试试看:

youdingsong@ubuntu:~$ rmdir test/hello/this/is/linux/
youdingsong@ubuntu:~$ tree test/
test/
└── hello
    └── this
        └── is

3 directories, 0 files

可以看到命令已经成功执行,但是只删除了最内层的空的子目录,并未达到我们的预期目标。

接下来我们采用-p参数进行执行:

youdingsong@ubuntu:~$ rmdir -p test/hello/this/is/
youdingsong@ubuntu:~$ ls
Documentary  Test_dir

可以看到连同最初的父目录在内(test)一并被删除了。

(注:同样只能删除空目录,若路径的任一级目录文件中含有除路径信息所含目录之外的其它文件(哪怕是空目录) 均无法删除)。

后续还有rm删除命令也有删除目录文件的功能,其使用较rmdir命令更为常用,也更为方便。


打印当前工作目录

命令:pwd(print working directory)

        将当前所处的目录位置以绝对路径方式打印到终端。

最为常用的命令之一,也十分简单,不作过多赘述。示例:

youdingsong@ubuntu:~/Documentary/dir3$ pwd
/home/youdingsong/Documentary/dir3

切换工作目录

命令:cd(change directory)

        切换目前工作目录到所指定的位置

cd [路径参数]

可以使用绝对路径参数,例如从当前位置切换到/usr/lib目录下:

youdingsong@ubuntu:~$ pwd
/home/youdingsong
youdingsong@ubuntu:~$ cd /usr/lib #绝对路径参数
youdingsong@ubuntu:/usr/lib$ pwd
/usr/lib

可以使用相对路径参数,例如从家目录到家目录的子目录Documentary:

youdingsong@ubuntu:~$ cd Documentary/ #相对路径参数
youdingsong@ubuntu:~/Documentary$ 

去上一级目录(..):

youdingsong@ubuntu:/usr/lib$ cd ..
youdingsong@ubuntu:/usr$ pwd
/usr

回到家目录(~):

路径参数可以使用 ~,也可以不加任何路径参数(默认回到该用户的家目录)

youdingsong@ubuntu:/usr/lib$ cd
youdingsong@ubuntu:~$ pwd
/home/youdingsong

#二者是等价的

youdingsong@ubuntu:/usr/lib$ cd ~
youdingsong@ubuntu:~$ pwd
/home/youdingsong

退回(-):

        注意:这里不是返回上一级目录!是回到上次cd之前的目录。这个操作类似于如下图所示Windows中的返回操作

        在Windows中,这个操作相信大家不会陌生,我们linux中功能也是与其类似的,但是linux中的功能没有Windows中的强大。 在linux中,只进行一次记忆,因此对于退回操作也只能退回最近的一次。例如:

youdingsong@ubuntu:~$ cd /usr/lib
youdingsong@ubuntu:/usr/lib$ cd /bin
youdingsong@ubuntu:/bin$ cd -
/usr/lib
youdingsong@ubuntu:/usr/lib$ cd -
/bin

这里反复调用该命令(cd -)只会在 /bin/usr/lib两个目录之间来回切换,而并不会回到一开始的Home目录。这里我们使用env命令将环境配置打印到终端上

可以在下面看到如下句段:

OLDPWD=/usr/lib

这里就是存储cd - 命令所用的目录路径的位置,此处目录会随着 cd命令的调用而更改。也就是说,当我们执行cd -命令时,其实是将环境变量中的OLDPWD拿了出来替换掉了 ‘-’

youdingsong@ubuntu:/bin$ cd $OLDPWD #这里和cd - 命令二者等价
youdingsong@ubuntu:/usr/lib$ 

删除文件

命令:rm(remove files or directories)

        删除文件或目录。

rm [命令参数] [文件名及文件路径参数]

        在这里需要提前强调的是用rm删除文件是不可逆的。因此在删除文件之前应再三检查命令与要删除的文件是否匹配!

其次不要以root身份(或sudo) 来执行该命令,尤其是在执行递归删除时!可以考虑使用 trash-cli 等工具,将文件移动到回收站从而代替使用rm进行永久删除。

~/Documentary$ rm aaa.cpp #删除当前目录下的aaa.cpp文件

可一次性删除多个文件:

~/Documentary$ rm file1 file2 file4

常用参数:

  • -r(recursive):man手册原文:

remove directories and their contents recursively.

递归删除目录及内容

在默认情况下rm是无法删除目录的,但可以调用递归参数来对目录文件执行删除操作(该功能严禁在root和sudo条件下使用):

├── dir1
│   └── file1
:~/Documentary$ rm -r dir1 
  • -f(force):man手册原文:

ignore nonexistent files and arguments, never prompt.

强制进行删除,不接收任何的提示。常与r一起使用。

:~/Documentary$ rm -rf dir2
  • -i:man手册原文:

prompt before every removal.

执行每次删除之前进行确认。

        该命令在完全删除某文件之前会要求用户进行确认以防止误操作。但代价就是当递归删除某目录时若其内文件较多,则每个文件的删除都需要用户手动进行确认,我相信没人喜欢这种事情。        

        因此对于该命令不建议将其作为rm的别名,而是在某些特定场景下手动调用该参数。

:~/Documentary$ rm -ri dir3
rm: descend into directory 'dir3'? y
rm: remove regular empty file 'dir3/file2'? y
rm: remove regular empty file 'dir3/file1'? y
rm: descend into directory 'dir3/hello'? y
rm: remove regular empty file 'dir3/hello/file1'? y
rm: remove directory 'dir3/hello'? y
rm: remove directory 'dir3'? y
:~/Documentary$   #诺,看到了吧。
  • -I:man手册原文:

prompt once before removing more than three files, or when removing recursively.

在删除多个文件时将会对用户进行提示,而在删除单个文件时不会则不会提示。

对于多个文件的删除确认只提示一次,而不是像-i那样每个文件都需要确认一次。

:~/Documentary$ rm -I file1 file3  file4 test.cpp 
rm: remove 4 arguments? n
:~/Documentary$ ls
aaa.cpp  dir2  file1  file3  file4  test.cpp  test_file1  tet

复制文件或目录

命令:cp(copy files and directories)

cp [功能参数] 源文件 目标文件

用于复制文件或目录。示例如下:

:~/try$ ls
test.c
:~/try$ cp test.c obj.c
:~/try$ ls
obj.c  test.c #两份.c文件都是都是一样的

其常用功能参数如下:

  • -r(recursive):man手册原文:

copy directories recursively.

递归拷贝,用于复制目录及其内部的文件。

:~/Documentary$ cp dir2/ dirnew #默认无法拷贝目录
cp: -r not specified; omitting directory 'dir2/'
:~/Documentary$ cp -r dir2/ dirnew #递归拷贝
:~/Documentary$ ls
aaa.cpp  dir2  dirnew  file1  file3  file4  plus.cpp  test.cpp  test_file1  tet
  • -i(interactive):man手册原文:

prompt before overwrite.

        交互模式,在执行拷贝前进行确认

        cp命令的逻辑是:若目标文件不存在则新建,若目标文件存在则覆盖。因此为了防止误操作(错误操作导致文件被覆盖)。建议将该模式作为其cp的别名进行使用。

:~$ ls
Documentary  hello  share  te.cpp  Test_dir  try #try中有一个test.cpp
:~$ cp -i te.cpp try/test.cpp #若不使用-i则会直接进行覆盖而不会提示
cp: overwrite 'try/test.cpp'? n
  • -u(update):man手册原文:

copy only when the SOURCE file is newer than the destination file or when the destination file is missing.

仅当源文件比目标文件新或目标文件不存在时执行拷贝操作。

    Oct 23 21:02 newest
    Oct 20 15:27 test.cpp
:~/Documentary$ cp -u test.cpp newest 
:~/Documentary$ ls -al
-rw-rw-r--  1 youdingsong youdingsong    0 Oct 23 21:02 newest

可以看到文件test.cpp比newest旧,此处执行-u命令,命令虽然是被成功执行了的,但是覆盖并未成功,可以看到newest文件大小仍为0.

而当我们不使用-u重新执行操作时:

:~/Documentary$ cp -i test.cpp newest 
cp: overwrite 'newest'? y
:~/Documentary$ ls -l
 Oct 23 21:08 newest 

可以看到文件newest文件大小已被更改,原来较新的空文件已被覆盖。

  • -a(archive):man手册原文:

same as -dR.

归档模式,复制文件及其属性(包括文件权限以及符号链接)。适合用于备份。


移动文件或目录

命令:mv(move)

mv [功能参数] 源文件 目标文件

用于移动文件或目录,也可以重命名目录和文件,相当于Windows的剪切功能。

:~/Documentary$ ls
aaa.cpp  dir2  dirnew  file1  file2  file3  file4  
:~/Documentary$ mv file2 file1 .. #将file1 与 file2移动至上级目录
:~/Documentary$ ls
aaa.cpp  dir2  dirnew  file3  file4 

常用参数如下:

  • -i(interactive):man手册原文:

prompt before overwrite.

cp命令一样,mv同样存在文件覆盖的问题,可以使用该交互参数来对用户进行确认提示。

:~/Documentary$ mv -i file1 ..
mv: overwrite '../file1'? n
:~/Documentary$ 
  • -u(update):该参数与cp命令中的参数一样,此处不再重复给出。

        Linux里没有专门用于重命名的命令,可以使用mv命令移动到原来的目录下即可实现重命名。

:~/Documentary/tet$ ls
file1
:~/Documentary/tet$ mv file1 newname
:~/Documentary/tet$ ls
newname

 Tips:如果目标文件与源文件的文件名及文件路径相同,mv 命令将不会做任何操作。


创建文件

命令:touch

touch [功能参数] 文件名

创建空文件,或更新现有文件的时间戳。

        说来有趣,touch命令从其字面意思来看似乎跟创建(create)沾不上一点关系。touch命令的本意是更新文件的时间戳(也就是假装touch了一下文件,将文件的修改时间戳更至最新)。

        后来有人发现touch的副作用是:当用户touch一个不存在的文件时会创建出一个新文件,后来便一发不可收拾,成为了一个最为广泛好用的创建新文件的方法。

:~/Documentary/tet$ ls
newname
:~/Documentary/tet$ touch newfile
:~/Documentary/tet$ ls
newfile  newname

touch一个不存在的文件会创建新文件,touch一个已经存在的文件会更新其时间戳。

touch也有自身的功能参数,但是使用频率都不高,此处便不再给出具体语句示例。

  • -c:如果文件不存在,则不创建新文件。

  • -d:使用指定的日期和时间。

touch -d "2024-10-23 12:00:00" filename.txt

  • -a:仅更新访问时间。

  • -m:仅更新修改时间。


                        🌹🌹🌹o(* ̄▽ ̄*)ブ

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2024年【流动式起重机司机】考试技巧及流动式起重机司机模拟考试题库

题库来源:安全生产模拟考试一点通公众号小程序 流动式起重机司机考试技巧是安全生产模拟考试一点通生成的,流动式起重机司机证模拟考试题库是根据流动式起重机司机最新版教材汇编出流动式起重机司机仿真模拟考试。2024年【流动式起重机司机】考试技巧及…

正确的功能可将热晶体管风速计线性化

处理传感器电路输出信号的电路或计算公式必须生成传感器响应的反函数。例如,如果传感器响应是对数函数,则线性化部分的响应必须是指数的。 这项工作首先获取传感器响应的 46 个离散点(参见参考论文中的图 4)。刚开始时&#xff0…

若依前后分离版集成积木报表进行token传递

若依分离板集成积木报表就不说了需要的请移步:若依前后分离版集成积木报表-CSDN博客 考虑到前端摸鱼不干活,所以一般都是前后端都干,我这里前后端都搞上,你们直接抄,抄完接着去摸鱼,代码不美观,轻喷 一、…

【景观生态学实验】实验一 ArcGIS地理数据处理及制图基础

实验目的 1.掌握ArcGIS软件基本操作:通过实验操作与学习,熟练掌握ArcGIS软件相关的基本操作,包括界面熟悉、工具栏使用、数据的加载和保存、基本数据处理操作等; 2.掌握如何使用ArcGIS进行影像拼接及裁剪:通过实验操作与学习&am…

ABAP SMARTFORMS(2)

1、表单接口 方法一:导入结构、内表,给全局定义传入结构体 方法二:只关联表,不关联结构,给全局定义传入结构体 GW_XYXX存的表头信息 GW_XYKQ存考勤信息,表中的每一行 初始化学员信息表的第一条数据作为表头 2、创建表头模板 该…

x-cmd mod | x sd - 搭配 fzf 实时预览文本替换效果,打造更直观高效的编辑体验

目录 介绍子命令使用案例 介绍 sd(search & displace)是一种查找和替换文本工具,使用常见的正则表达式语法,类似于 sed,但专注于替换操作,从而使用起来更直观、更易读。 该模块主要通过 fzf 以交互方式…

单片机STC8H8K64U开发板_RA6809开发板 驱动彩屏显示

单片机STC8H8K64U开发板,型号RT8H8K001 预留Type C接口,可供电SWD下载: RA6809开发板,型号RT6809CNN01 预留Type C接口供电,预留MCU接口、电容触摸屏接口、液晶屏接口: 双臂合一,驱动和控…

Error in cpuinfo: prctl(PR_SVE_GET_VL) failed 错误记录

今天在一台新机器上面搭建安装环境的时候出现了上面的错误,直观感觉是跟py-cpuinfo这个模块有关系的。 Error in cpuinfo: prctl(PR_SVE_GET_VL) failed 错误通常与 ARM 架构上的 CPU 信息库(如 cpuinfo)相关,特别是在尝试获取可扩…

web pdf 图片拖动图片合成

web pdf 图片拖动图片合成 先看效果 前端 合成后 1.原理 以前写过相关的帖子,使用的是 canva 但是这次换了一个思路使用的是图片 1.先把pdf转成图片 2.把pdf图片和目标图片传到浏览器 3.原理就和图片合成一样了。见上一篇帖子 4.后端也一样只不过这次是将位置和pd…

IntelliJ IDEA 常用快捷键详解与自定义修改方法

目录 前言1. IntelliJ IDEA 常用快捷键1.1 代码编辑快捷键1.2 代码导航快捷键1.3 重构快捷键1.4 调试快捷键 2. 如何修改 IntelliJ IDEA 快捷键2.1 打开快捷键设置界面2.2 查找和修改快捷键2.3 导入和导出快捷键配置 结语 前言 IntelliJ IDEA 是一款广受开发者欢迎的集成开发环…

vue2之混入(mixin)

Vue 2 的混入(Mixin)是一种在 Vue 组件中分发可复用功能的方式。通过混入,你可以将一些通用的组件选项(如数据、方法、计算属性、生命周期钩子等)提取到一个混入对象中,并在多个组件中重用这些选项&#xf…

基于Python大数据的招聘数据分析及大屏可视化系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:…

2024软考-《软件设计师》-易混淆知识点总结(1~6章)

一、计算机组成与体系结构 1.1、原码、反码、补码、移码的运算 原码:最高位表示符号位,其余低位表示数值的绝对值(0表示正数,1表示负数) 反码:正数的反码与原码相同,负数的反码是其绝对值按位…

基于ESP32的RGB便携式视频灯

基于ESP32的RGB便携式视频灯 拥有一套能够满足个人需求的灯光设备至关重要。市面上的RGB视频灯虽然功能强大,但往往价格不菲。我制作的这款灯是20W RGB便携式视频灯不仅满足了我的需求,而且成本仅为市售产品的三分之一。接下来,我将详细介绍这…

大模型开发实战1-QuickStart

0. 关于大模型和模型选择 由于OpenAI的ChatGPT流行,AI技术在大模型技术的赋能下高速发展,特别是2023年至今,国内的AI技术发展更是前所未有的景象,各大公司争相发布自己的大模型,包括百度文心一言,阿里同义…

正版CST电磁仿真软件:保障创新与合规的基石

在当今快速发展的科技时代,电磁仿真技术对于电子产品的设计、测试和优化至关重要。CST电磁仿真软件以其强大的功能和广泛的应用领域,成为众多企业和研究机构不可或缺的工具。然而,在选择使用CST软件时,确保使用正版软件不仅是对知…

【C++】红黑树的底层原理以及实现

#1024程序员节 | 征文# 个人主页:夜晚中的人海 文章目录 ⭐前言🚆一、红黑树的概念🏠二、红黑树的规则🎄三、红黑树的效率🎡四、红黑树的实现1. 基本框架2. 插入操作• 变色• 单旋 变色• 双旋 变色 3. 查找操作4. …

玄机平台-应急响应-webshell查杀

首先xshell连接 然后进入/var/www/html目录中,将文件变成压缩包 cd /var/www/html tar -czvf web.tar.gz ./* 开启一个http.server服务,将文件下载到本地 python3 -m http.server 放在D盾中检测 基本可以确认木马文件就是这四个 /var/www/html/shell.p…

高效实现聚水潭数据集成MySQL的技术案例

聚水潭奇门数据集成到MySQL的技术案例分享 在现代企业的数据管理中,如何高效、准确地实现不同系统之间的数据对接是一个关键问题。本文将聚焦于一个实际的系统对接集成案例:将聚水潭奇门平台的售后单数据集成到MySQL数据库中,具体方案名称为…

JVM—类的生命周期

目录 类的生命周期 加载阶段 连接阶段 验证阶段 准备阶段 解析阶段 初始化阶段 面试题1 面试题2 类的生命周期 类的生命周期描述了一个类加载、使用、卸载的整个过程,整体可以分为以下五个阶段。 1. 加载 2. 连接,其中又分为验证、准备、解析三…