3 Linux目录管理

2023-05-16

注意:
在下面的讲解中,每个命令都有很多的参数说明(选项),我们只讲其中的几个,关键是让学生掌握命令的语法;学生学习完语法后,就可以自己按照参数书写各种命令,这也是我们最终的目的。常用命令,我们在企业级开发过程中,经常书写的命令。会非常被容易记住,不常用的命令,只要我们学习完了语法之后,在去查找参数手册,会非常容易的解决我们的问题,所以,每个命令不是建立在死记硬背的基础上的,要理解语法+查找参数=解决问题

3.1 Linux 文件与目录管理

在Linux系统中,所有的的目录结构为树状结构,最顶级的目录为根目录 /。
在实际开发过程中,文件的操作是非常频繁也是非常重要的
下面的章节我们将学习下Linux系统所有的系统目录和文件通过命令是如何进行管理的

3.1.1 目录常用命令

  • ls: 列出目录
  • cd: 切换目录
  • pwd: 显示目前的目录
  • mkdir:创建一个新的目录
  • rmdir:删除一个空的目录
  • cp: 复制文件或目录
  • rm: 移除文件或目录
  • mv: 移动文件与目录或修改文件与目录的名称

自动补全

  • 在敲出 文件/ 目录 / 命令 的前几个字母之后, 按下 tab
  • 如果还存在其他 文件 / 目录 / 命令, 再按一下tab键, 系统会提示可能存在的命令

1) ls (列出目录)

ls命令相当于我们在Windows系统中打开磁盘、或者打开文件夹看到的目录以及文件的明细,如下图

【查看磁盘下的目录与文件】

image.png

【查看文件夹下的目录与文件】

image.png

注意:在Linux系统当中, ls 命令算是比较常用的命令

使用者权限:所有使用者都可使用。

语法如下:

ls [选项]  目录名称

选项与参数:

  • -a :全部的文件,连同隐藏档( 开头为 . 的文件) 一起列出来(常用)
  • -d :仅列出目录本身,而不是列出目录内的文件数据(常用)
  • -l :长数据串列出,包含文件的属性与权限等等数据;(常用)

将根目录下的所有文件列出来(含属性与隐藏档)

ls -al ~

执行效果如下

image.png
ls -l
image.png

ls -l 可以查看文件夹下文件的详细信息, 从左到右 依次是:

  • 权限(A区域), 第一个字符如果是 d 表示目录
  • 硬链接数(B区域), 通俗的讲就是有多少种方式, 可以访问当前目录和文件
  • 属主(C区域), 文件是所有者、或是叫做属主
  • 属组(D区域), 文件属于哪个组
  • 大小(E区域):文件大小
  • 时间(F区域):最后一次访问时间
  • 名称(G区域):文件的名称
ls
image.png
总结
以上三种是经常被使用到的命令
它们之间的区别是
ls 显示不隐藏的文件与文件夹
ls -l 显示不隐藏的文件与文件夹的详细信息
ls -al 显示所有文件与文件夹的详细信息

2) pwd显示当前目录

执行pwd命令相当于我们在Windows系统路径导航栏中查看到的当前浏览位置信息

如下图

image.png

pwd 是 Print Working Directory 的缩写,也就是显示目前所在当前目录的命令。

使用者权限:所有使用者都可使用。

查看当前所在目录

pwd -P

执行效果如下

image.png

3) cd (切换目录)

Linux的cd切换目录,相当于我们在Windows中通过鼠标或者快捷键点开不同的目录

注意:在Linux系统当中, cd 命令算是比较常用的命令

cd是Change Directory的缩写,这是用来变换工作目录的命令

使用者权限:所有使用者都可使用。

语法如下:

cd [相对路径或绝对路径]

在正式学习cd命令前面,我们通过下面一个座位图的形式讲解下相对路径和绝对路径是怎么表现的。

image.png
  • 绝对路径:
    路径的写法,由根目录 / 写起,例如: /usr/share/doc 这个目录。
  • 相对路径:
    路径的写法,不是由 / 写起,例如由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成: cd ../man 这就是相对路径的写法啦!

1、使用相对路径定位目标

  • 特征: 相对路径 输入路径时, 最前面不是以 "/" 开始的, 表示相对 当前目录 所在的位置
  • 缺点: 参照工作目录 发生变化 相对路径也要发生变化
需求1: 当前工作目录是 /usr, 使用相对路径 切换到 /usr/tmp 目录下 

需求2: 当前工作目录是 /root, 使用相对路径 切换到 /usr/tmp 目录下
image.png

执行效果如下

注意:
cd ~ 表示回到根目录
image.png

2、使用绝对路径定位目标

  • 特征: 绝对路径 在输入路径时, 最前面是以 / 开始的, 表示 从 根目录 开始的具体目录位置
  • 优点: 定位准确, 不会因为 工作目录变化 而变化
需求1: 当前工作目录是 /usr, 使用绝对路径 切换到 /usr/tmp 目录下 

需求2: 当前工作目录是 /root, 使用绝对路径 切换到 /usr/tmp 目录下
image.png

执行效果如下

image.png

总结

  • 相对路径 在输入路径时, 最前面不是以 / 开始的 , 表示相对 当前目录 所在的目录位置
  • 绝对路径 在输入路径时, 最前面是以 / 开始的, 表示 从 根目录 开始的具体目录位置

4) mkdir(创建目录)

引子:
Linux的mkdir命令相当于我们在Windows中通过鼠标或者快捷键新建文件夹

mkdir命令用于建立名称为 dirName 之子目录

使用权限:于目前目录有适当权限的所有使用者

语法

mkdir [-p] dirName

参数说明:

  • -p 确保目录名称存在,不存在的就建一个

建立一个名为jinyanlong 的子目录

mkdir jinyanlong

执行效果如下

image.png

查看新建的 文件

image.png

在工作目录下的 aaa目录中,建立一个名为 bbb的子目录。 若 aaa目录原本不存在,则建立一个。(注:本例若不加 -p,且原本 aaa目录不存在,则产生错误。)
mkdir -p aaa/bbb

执行效果如下

这里为了显示更直观,我们使用了tree命令

后面在讲解到yum的时候,会详细讲解

此处先使用

image.png

由上图我们发现,aaa目录被强制创建,里面包含了bbb文件。

5) rmdir(删空目录)

Linux的rmdir命令相当于我们在Windows中通过鼠标或者快捷键删除文件夹。
稍微有点不同的就是在Linux中删除子目录的时候,如果主目录下没有了目录以及文件,会连同主目录同时删除了(需要写Linux带有P的参数)

rmdir命令删除空的目录

使用权限:于目前目录有适当权限的所有使用者。

语法

rmdir [-p] dirName

参数

  • -p 是当子目录被删除后使它也成为空目录的话,则顺便一并删除。

将工作目录下,名为 jinyanlong 的子目录删除 :

rmdir jinyanlong

在工作目录下的 aaa目录中,删除名为 bbb的子目录。若 bbb删除后,aaa目录成为空目录,则 aaa同时也会被删除

rmdir  -p aaa/bbb

总结:

rmdir -p aaa/bbb也就是说

在删除bbb目录完成后,发现aaa目录也是空目录了,在删除完bbb后aaa也同时被删除了。

6) cp(文件复制)

Linux的cp命令相当于我们在Windows中通过鼠标或者快捷键复制文件或者目录

cp命令主要用于复制文件或目录。

使用权限:于目前目录有适当权限的所有使用者

语法

cp [options] source dest

cp [options] source... directory

参数说明:

  • -a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
  • -d:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。
  • -f:覆盖已经存在的目标文件而不给出提示。
  • -i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖。
  • -p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
  • -r/R:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
  • -l:不复制文件,只是生成链接文件。

我们将当前目录"aaa/"下的所有目录以及文件复制到新目录"ccc"下,输入如下命令:

1、数据准备

创建aaa目录并且aaa下包含bbb目录

mkdir -p aaa/bbb
mkdir -p ccc

执行效果如下

image.png

aaa目录下有bbb

ccc下面没有目录和文件

2、执行复制

cp –r aaa/*  ccc

执行效果如下

我们将aaa下面的所有文件、目录复制到了目录c下面

image.png

总结:

用户使用该指令复制目录时,必须使用参数"-r"或者"-R"。

如果不加参数"-r"或者"-R",只复制文件,而略过目录

7) rm(删除目录)

Linux的rm命令相当于我们在Windows中通过鼠标或者快捷键删除文件或者目录

rm命令用于删除一个文件或者目录。

使用权限:于目前目录有适当权限的所有使用者

语法

rm [options] name...

参数:

  • -i 删除前逐一询问确认。
  • -f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
  • -r 将目录及以下之档案亦逐一删除。

如果我们要删除文件可以直接使用rm命令,若删除目录则必须配合选项"-r",例如:

image.png
rm -r  ccc

执行删除,如下图

image.png

注意

文件一旦通过rm命令删除,则无法恢复,所以必须格外小心地使用该命令

如果删除文件(比如.sh 、.txt)

直接使用rm name.txt

8) mv(移动文件)

Linux的mv命令相当于我们在Windows中通过鼠标或者快捷键剪切(+重命名)+粘贴文件或者目录

mv 命令用来为文件或目录改名、或将文件或目录移入其它位置

语法

mv [options] source dest
mv [options] source... directory

参数说明:

  • -i: 若指定目录已有同名文件,则先询问是否覆盖旧文件;
  • -f: 在 mv 操作要覆盖某已有的目标文件时不给任何指示;

    image.png

    将文件 aaa 更名为 bbb :

    image.png
1、创建aaa目录、
mkdir  aaa
2、开始重命名
mv aaa bbb

执行后

image.png

将ccc目录放入ddd目录中。

注意,如果ddd目录不存在,则该命令将ccc改名为ddd。

创建ccc
mkdir ccc
image.png
开始移动
mv ccc/ ddd
image.png

由上图我们发现,由于ddd目录不存在,所以在mv的时候将ccc目录改名为了ddd。

3.2 Linux 文件基本属性

在Wndows系统中,我们可以选中一个文件,右键属性,可以查看到这个文件的文件类型(基本信息),以及文件的权限信息,在Linux中,它是通过不同字符的排序顺序来表示文件的类型以及权限所属信息的。

Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。

下面我们就一起学习下Linux系统不同权限的文件和目录在怎么表示的

在Linux中我们可以使用ll或者ls –l命令来显示一个文件的属性以及文件所属的用户和组,如:

ls -l
image.png

实例中,bin文件的第一个属性用"d"表示。"d"在Linux中代表该文件是一个目录文件。

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

  • 当为[ d ]则是目录
  • 当为[ - ]则是文件;
  • 若是[ l ]则表示为链接文档(link file);
  • 若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
  • 若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。

接下来的字符中,以三个为一组,且均为『rwx』 的三个参数的组合。其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]而已。

每个文件的属性由左边第一部分的10个字符来确定(如下图)。

image.png

从左至右用0-9这些数字来表示。

第0位确定文件类型,第1-3位确定属主(该文件的所有者)拥有该文件的权限。

第4-6位确定属组(所有者的同组用户)拥有该文件的权限,第7-9位确定其他用户拥有该文件的权限。

其中,第1、4、7位表示读权限,如果用"r"字符表示,则有读权限,如果用"-"字符表示,则没有读权限;

第2、5、8位表示写权限,如果用"w"字符表示,则有写权限,如果用"-"字符表示没有写权限;第3、6、9位表示可执行权限,如果用"x"字符表示,则有执行权限,如果用"-"字符表示,则没有执行权限。

3.3 Linux文件属主和属组

引子:
对于一个文件来说,它都有一个特定的所有者,也就是对该文件具有所有权的用户。
也就是所谓的属主,它属于哪个用户的意思。
除了属主,还有属组,也就是说,这个文件是属于哪个组的(用户所属的组)。
文件的【属主】有一套【读写执行权限rwx】
文件的【属组】有一套【读写执行权限rwx】
还有它权限,下面我们在介绍
image.png

在以上实例中,aaa文件是一个目录文件,属主和属组都为 itcast,属主有可读、可写、可执行的权限(rwx);与属主同组的其他用户有可读可写和可执行的权限(rwx);其他用户也有可读和可执行的权限(r-x)。

3.3.1 chgrp更改属组

实际开发中我们经常会创建新建目录和文件,一般情况下,通过命令进行新建,
在创建完成后,使用不同的用户访问,可能就会出现报错,无法访问等等问题。
然后经过一番这查找,发现该有的文件都在,大小写也没问题,路径也没问题
其实并不是这些问题。而是权限问题导致我们无法访问!是因为一个文件默认隶属于一个属组,而使用其他用户访问这个文件肯定无法访问(因为访问用户所属的组和文件所在的不是同一个组)
那么怎么可以正常访问呢?其实就是通过更改用户组(用户组、文件组)来解决这些问题

chgrp命令用于变更文件或目录的所属群组。

文件或目录权限的的拥有者由所属群组来管理。您可以使用chgrp指令去变更文件与目录的所属群组,设置方式采用群组名称或群组识别码皆可

为了方便初学者记忆,可以将 chgrp 理解为是 "change group" 的缩写

语法如下

chgrp [-cfhRv][--help][--version][所属群组][文件或目录...] 或 chgrp [-cfhRv][--help][--reference=<参考文件或目录>][--version][文件或目录...]

改变文件的群组属性

我们通过root用户进入(如下图),上接上面的例子

我们的aaa文件的属主和属组都属于itcast(如下图)

image.png

我们现在通过chgrp命令将文件aaa的属组更改成root(其他也可以)

chgrp -v root aaa

执行效果如下

image.png

我们通过下面的命令查询文件aaa的属组是否发生了变化,执行

ls -l
image.png

由上图我们发现,文件aaa的属组由itcast变成了root

这样的话,文件的属组就发生了变化。

3.3.2 chown更改属主和属组**

我们为了让一些用户有权限查看某一文档,比如是一个时间表,而编写时间表的人要具有读写执行的权限(属主)
我们想让一些用户知道这个时间表的内容,而不让他们修改,所以我们可以把这些用户都划到一个组(属组),然后来修改这个文件的权限,让用户组可读,这样用户组下面的每个用户都是可读的

Linux是多任务操作系统,所有的档案皆有拥有者。利用 chown 可以将档案的拥有者加以改变。一般来说,这个指令只有是由系统管理者(root)所使用,一般使用者没有权限可以改变别人的档案拥有者,也没有权限可以自己的档案拥有者改设为别人。只有系统管理者(root)才有这样的权限

使用权限 : 管理员账户

语法如下

chown [–R] 属主名 文件名
chown [-R] 属主名:属组名 文件名

我们通过root用户进入(如下图),上接上面的例子

我们的aaa文件的属主属于itcast、属组属于root

我们现在通过chgrp命令将文件aaa的属主更改成root,执行

chown  root aaa

效果如下

image.png

我们通过下面的命令查询文件aaa的属主是否发生了变化,执行

ls -l
image.png

由上图我们发现,文件aaa的属主和属组都变成了root。

我们将aaa文件的拥有者与群组改回为itcast:

注意:chown命令可以更改属主和属组

chown itcast:itcast aaa

我们通过下面的命令查询文件aaa的属主是否发生了变化,执行

ls -l
image.png

由上图可知,aaa文件的属主和属组都被更改回来了。

3.3.3 chmod权限命令

Linux文件属性有两种设置方法,一种是数字,一种是符号

Linux的文件调用权限分为三级 : 文件属主、属组、其他。利用 chmod 可以控制文件如何被他人所调用。

使用权限 : 所有使用者

语法

chmod [-cfvR] [--help] [--version] mode file...

参数说明

mode : 权限设定字串,格式如下

[ugoa...][[+-=][rwxX]...][,...]

解释:

u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。

+表示增加权限、- 表示取消权限、= 表示唯一设定权限。
r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。

1) 数字权限

Linux文件的基本权限就有九个,分别是owner/group/others三种身份各有自己的read/write/execute权限。

先复习一下刚刚上面提到的数据:文件的权限字符为:『-rwxrwxrwx』, 这九个权限是三个三个一组(owner/group/others就是所说的三个一组 )的,我们也可以使用数字来代表各个权限,各权限的分数对照表如下

各权限的数字对照表:[r]:4;[w]:2;[x]:1;[-]:0

image.png

每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: [-rwxrwx---] 分数则是:
  • owner = rwx = 4+2+1 = 7
  • group = rwx = 4+2+1 = 7
  • others= --- = 0+0+0 = 0

所以等一下我们设定权限的变更时,该文件的权限数字就是770啦,变更权限的指令chmod的语法是这样的

chmod [-R] xyz 文件或目录

选项与参数:

  • xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。
  • -R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件都会变更

上面的 可以表示如下

chmod  -R 770     档案或目录

上面说了这么多,我们举例说明一下:

我们进入itcast用户创建文件czbk.txt

touch as.txt

然后切换到root

比如,我们如果要将as.txt这个文件所有的权限都设定启用

image.png

那么命令如下:

chmod -R 777 as.txt
image.png

由此可见,as.txt的属主权限、属组权限、其他权限都发生了改变

由之前的【-rw-rw-r--】变成【-rwxrwxrwx】

根据前面的换算我们已经知道如何将一个文件的属主、属组、其他权限换算成数字了,换算成数字后,我们只需要通过chmod命令即可更改文件的权限

2) 符号权限

还有一个改变权限的方法,就是 符号权限,我们先回顾下之前提到的9个权限

  • (1)user 属主权限
  • (2)group 属组权限
  • (3)others 其他权限

那么我们就可以使用 u, g, o 来代表三种身份的权限!

此外, a 则代表 all,即全部的身份。读写的权限可以写成 r, w, x,也就是可以使用下表的方式来看

image.png

如果我们需要将文件权限设置为 -rwxr-xr-- ,可以使用 chmod u=rwx,g=rx,o=r 文件名 来设定:

上接上面的例子,如下图

我们将as.txt的权限设置为-rwxr-xr--
执行

chmod u=rwx,g=rx,o=r  as.txt
image.png

由上图我们发现,as.txt的权限变成了-rwxr-xr--

假如我们要将权限去掉而不改变其他已存在的权限呢?举个例子,比如我要拿掉全部人的可读权限,则

chmod  a-r as.txt

执行如下

image.png

由此可见,as.txt的其他权限都没有了,变成了【---】

3.4 综合案例

在前面的章节中我们讲解了用户、用户组、文件属主、属组以及权限,知识点比较零散,下面,我们就通过一个简单小案例把这些知识点串联起来

需求:

比如一个公司的开发团队有三个用户:java、erlang、golang有一个文件目录tmp/work供他们开发,如何实现让这三个用户都对其具有写权限

1、首先,我们创建三个账户(切换到root)

adduser java
adduser erlang
adduser golang

执行效果如下

image.png
2、增加用户组
groupadd -g 8888 dev-group

执行效果如下

image.png
3、创建公共文件并设置权限

给文件/tmp/project2019/设置属组为dev-group

mkdir /tmp/project2019
 
 chown -R :dev-group /tmp/project2019/
 或者
 chgrp -R dev-group  /tmp/project2019/

执行效果如下

image.png

4、将用户添加到组

gpasswd -a java    dev-group
gpasswd -a erlang  dev-group
gpasswd -a golang  dev-group

执行效果如下

image.png

查询dev-group组下所有用户

grep 'dev-group' /etc/group

执行效果如下

image.png
5、切换到java用户

切换到java用户看看是否有写入权限

su java
image.png

新建文件

在我们上面创建的目录tmp/project2019/下面创建文件

mkdir java-files-new
image.png

由此发现,我们在tmp/project2019/下面创建文件发生了权限不足,我们去查看下tmp/project2019/的文件属性,如下图

我们在/tmp目录下执行

ls -l

执行效果如下

image.png

我们发现目录project2019的文件属性为【drwxr-xr-x】

根据前面学的知识,我们拆分如下

【d】:文件类型

【rwx】:属主

【r-x】:属组

【r-x】:其他

现在答案就出来了,也就是说我们的属组权限是【r-x】,只有读和执行权限,没有写入权限,那么下面我们就给project2019目录增加写入权限。

6、增加写入权限

给project2019目录增加写入权限,执行下面的命令(前面已经学习过了)

记得切换到root下执行

chmod  -R 770  project2019

执行效果如下

image.png

此时我们发现project2019目录的属组权限变成了【rwx】即可读、可写、可执行

7、切换用户,继续写入

su  java
mkdir java-files-new
ls -l

执行效果如下

image.png

由此发现,这个时候我们有了写入权限,java-files-new文件被成功写入

那么,其他两个用户golang、erlang也是和java一个组的,他们能不能正常写入呢,我们试试(从root切换过去)

su
su erlang
mkdir erlang-files-new
==============================
su
su golang
mkdir golang-files-new

ls -l

执行效果(erlang新建文件)

image.png

执行效果(golanglang新建文件)

image.png

查看所有文件
image.png

由此可见,我们组的三个用户都成功创建了文件(拥有了写入权限)

8、验证结论

为了验证上面的结论,我们新增一个用户itbeijing

看看能否正常新建文件

useradd   itbeijing
su itbeijing
mkdir  itbeijing-files-new

执行效果如下

image.png

由上图我们发现,我们刚刚新创建的用户在创建文件的时候发现了权限不足。

由此说明用户itbeijing用户的属组和文件的属组不一样,所以没有权限。

3.5 总结

在企业级开发过程中,实际操作目录是最经常出现的,对于目录常用命令我们要熟练掌握并能熟练编写
因为Linux是多用户系统,所以权限也是非常核心和重要的,我们要熟练编写权限(属主、属组、其他权限)的常用命令。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

3 Linux目录管理 的相关文章

  • js如何一次循环删除数组中的多个元素

    思路 xff1a 数组遍历删除一个元素很容易 xff0c 通过splice方法删除对应索引的元素即可 xff0c 但是遍历删除多个元素就复杂了很多 xff0c 首先不能按索引从小到大的顺序删除 xff0c 这样可能会导致索引对应的元素发生变
  • git删除远程分支

    两步删除远程仓库 xff1a git branch r d origin dev 删除远程分支 git push origin dev然后提交到远程 注意 xff1a dev分支前的冒号 不能少
  • nodejs基础篇(一)

    我从2017年开始接触nodejs xff0c 到现在用了一年多了 xff0c 觉得我有必要写点东西出来 xff0c 记录自己的积累的知识体系 xff0c 以便更好的掌握nodejs nodejs专题不是按照严格的学习历程书写 xff0c
  • 滚动到顶部的实现方法

    span class token comment scrollTop animation span span class token keyword export span span class token keyword function
  • 浅谈ES6的Promise对象

    相信凡是写过javascript的童鞋也一定都写过回调方法 xff08 callback xff09 xff0c 简单说回调方法就是将一个方法func2作为参数传入另一个方法func1中 xff0c 当func1执行到某一步或者满足某种条件
  • node版本管理器——nvm

    nvm是管理node版本的一个工具 xff0c 具体介绍不再赘述 xff0c 请到GitHub xff08 https github com creationix nvm xff09 查看 安装 Linux Mac curl o https
  • centos下修改mysql默认端口

    mysql5 6安装 xff1a br wget http repo mysql com mysql community release el7 5 noarch rpm br rpm ivh mysql community release
  • nginx开启gzip压缩

    nginx安装 xff1a yum install y nginx 配置文件默认在 etc nginx nginx conf 打开nginx conf添加 gzip span class hljs function start span c
  • wordpress安装后问题汇总

    问题一 xff1a wordpress写文章界面点击 添加媒体 和 可视化 文本 无反应 解决方法 xff1a 在wp config php中追加 define 34 CONCATENATE SCRIPTS 34 false 问题二 xff
  • ucos ii是怎么实现多任务运行的?很通俗易懂的描述

    问题 xff1a ucos上建立一个任务 xff0c 格式如上图 xff0c 它是一个死循环 xff0c 但如果我建立了五个任务 xff0c 并且五个任务里面没有延时 xff0c 就只是像无操作系统那样写法 xff0c 用死循环让它们一直跑
  • 解决vim中文乱码

    执行 xff1a cd xff5e vim vimrc 将如下文本复制保存退出即可 set fileencodings 61 utf 8 ucs bom gb18030 gbk gb2312 cp936 set termencoding 6
  • nginx开启ssl证书

    修改listen为443 如果你又开启防火墙 xff0c 还需将443端口放开 在server中添加 ssl on ssl session timeout 5m ssl certificate cert 214050429370638 pe
  • 一键安装全局npm模块

    GitHub xff1a https github com flitrue npm install global 简介 当我们使用nvm管理node xff0c 切换node版本时 xff0c 安装在全局的npm包无法共用之前node版本中
  • vscode设置命令行启动

    方法一 xff1a 配置 启动 VS Code打开命令面板 shift 43 ctrl 43 P mac shift 43 cmmand 43 P xff0c 输入 shell command xff0c 找到 Install code c
  • Vue和React的生命周期

    最新的Vue和React生命周期 Vue 生命周期 vue生命周期主要有8个 beforeCreatecreatedbeforeMountmountedbeforeUpdateupdatedbeforeDestroydestroyed Re
  • js实现千位分隔符运算

    方法一 xff1a span class token keyword function span span class token function format span span class token punctuation span
  • 调整浏览器滚动条样式

    我们知道浏览器自带滚动条很丑 xff0c 有时影响整个页面到美观 xff0c 尤其在页面内嵌一个滚动列表 xff0c 显得奇丑无比 xff0c 下面我们根据如下代码调节滚动条样式 span class token punctuation s
  • 视觉SLAM理论入门——(7)视觉里程计之特征点法—对极几何

    提取ORB特征后 xff0c 需要根据点估计相机的运动 根据相机的原理 xff0c 可以分为下面几种情况 xff1a 1 当采用单目相机 xff0c 只知道2D像素坐标 xff0c 需要根据两组2D点估计运动 xff0c 这时用对极几何求解
  • 驱动程序之_1_字符设备_13_USB设备_3_鼠标驱动

    驱动程序之 1 字符设备 13 USB设备 3 鼠标驱动 从上一篇文章知道 xff0c 当我们接入一个USB设备 xff0c USB总线驱动会为我们构建一个device并注册 xff0c 编写驱动程序时只需要构造driver并注册到总线即可
  • 【转帖】驱动程序与应用程序之间的通信

    驱动程序必须与应用程序进行通信 xff0c 才能最终达到应用程序控制设备的目的 xff0c 不然驱动有QIU用 要通信就涉及到3个方面 1 应用程序与驱动程序通信 2 驱动程序与应用程序通信 3 数据传输 下面分别讨论 1 应用程序与驱动程

随机推荐

  • STM32最小系统硬件组成详解

    STM32最小系统硬件组成详解 0组成 xff1a 电源 复位 时钟 调试接口 启动 1 电源 xff1a 一般3 3V LDO供电 加多个0 01uf去耦电容 2 复位 xff1a 有三种复位方式 xff1a 上电复位 手动复位 程序自动
  • 从特效入手,深入了解CSS(一):动态加载特效

    不建议跳跃阅读 xff01 这篇文章将从头开始介绍如何实现一个特效 中间偶尔会穿插一些css3或平时接触不多的css属性 首先看一看这一期的特效 xff1a HTML部分 span class token tag span class to
  • Nuxt.js数据预取

    本文采用的技术框架有 xff1a 后台 xff1a Express 43 MongoDb 前台 xff1a Vue2 js 43 Nuxt js 64 2 9 2 在Nuxt中发送请求有两种方案 xff1a 前后台分离的方案 xff08 数
  • 【matplotlib】matplotlib使用详解 使用python绘制漂亮的论文数据图

    预备知识 Matplotlib 是 Python 中最受欢迎的数据可视化软件包之一 xff0c 支持跨平台运行 xff0c 它是 Python 常用的 2D 绘图库 xff0c 同时它也提供了一部分 3D 绘图接口 Matplotlib 通
  • apt-get指令的autoclean,clean,autoremove的区别

    下面总结一下有关apt get的常用但容易混淆的指令 br strong apt get autoclean strong 如果你的硬盘空间不大的话 xff0c 可以定期运行这个程序 xff0c 将已经删除了的软件包的 deb安装文件从硬盘
  • 2021美团笔试题(第十套)个人解答

    1 淘汰分数 span class token comment 暴力解法 span span class token keyword import span span class token namespace java span clas
  • DeepSOCIAL:基于YOLOv4的人群距离监测!集检测、跟踪以及逆透视映射一体的系统!...

    点击下方 AI算法与图像处理 xff0c 一起进步 xff01 重磅干货 xff0c 第一时间送达 论文 xff1a https doi org 10 3390 app10217514 代码 xff1a https github com D
  • HAL 0.5.10 Specification

    HAL 0 5 10 Specification David Zeuthen lt a href david 64 fubar dk a gt Version 0 5 10 Table of Contents 1 Introduction
  • LINUX USB 系统(1) 收藏

    LINUX USB 系统 1 收藏 1 简述 xff1a USB 出自豪门 xff0c 一问世便有 IBM Microsoft compaq 等前呼后拥 xff0c 不红实在是没有道理 xff0c 以致于连三岁小毛孩都知道买游戏手柄要买 U
  • 高通brew 方案开机揭秘

    摘要 xff1a 本文试图通过代码来深入剖析 Qualcomm 手机开机的整个过程 xff0c 即从按下开机键一直到出现待机界面 xff0c Qualcomm 的手机软件在整个流程中究竟完成了哪些工作 本文的主要目标是理清手机的初始化流程
  • 编程之美读书笔记_3.3_计算字符串的相似度

    3 3 计算字符串的相似度 和计算两字符串的最长公共子序列相似 设Ai 为字符串A a1a2a3 am 的前i 个字符 xff08 即为a1 a2 a3 ai xff09 设Bj 为字符串B b1b2b3 bn 的前j 个字符 xff08
  • 有铅喷锡和无铅喷锡的选择

    有铅喷锡和无铅喷锡 xff08 SAC xff09 在生产中工艺要求是一个非常重要的因素 xff0c 他直接决定着一个PCB板的质量和定位 xff0c 比如喷锡 镀金 沉金 xff0c 相对来说沉金就是面对高端的板子 xff0c 沉金由于质
  • 硬盘的那些事(主分区、扩展分区、逻辑分区、活动分区、系统分区、启动分区、引导扇区、MBR等

    硬盘的那些事 xff08 主分区 扩展分区 逻辑分区 活动分区 系统分区 启动分区 引导扇区 MBR等 主分区 xff0c 扩展分区 xff0c 逻辑分区 xff0c 活动分区 xff0c 系统分区 xff0c 启动分区 主引导扇区 xff
  • Vcc(电源)和GND(地)之间接电容的作用

    1 在直流电源 xff08 Vcc xff09 和地之间并接电容的电容可称为滤波电容 xff0e 滤波电容滤除电源的杂波和交流成分 xff0c 压平滑脉动直流电 xff0c 储存电能 xff0e 取值一般100 xff0d 4700uF x
  • APM/Pixhawk地面站航迹规划指令单

    本文来源于http ardupilot org copter docs mission command list html condition distance 由于对APM Pixhawk的爱好 xff0c 翻译成中文供参考 xff0c
  • APM/Pixhawk路径规划飞行(自动起飞/降落/航路点飞行)

    APM Pixhawk路径规划飞行 xff08 自动起飞 降落 航路点飞行 xff09 本节主要介绍各类飞行器一般的航路点设置 xff0c 已经实现了自动起飞降落和按计划轨迹飞行 设置家的位置 对于直升机和多旋翼家的位置一般是飞控解锁的位置
  • E2上GBA模拟器移植的困难。。。

    终于决心动手写GBA的模拟器了 修改了半晌 xff0c 终于吧Oop的模拟器源码编译通过 xff0c 但是到了机器上却跑不起来 xff0c 那个源码用了一个非常奇怪的方式来处理系统响应 xff1a 主动调用系统去处理 xff0c 没开线程
  • 蓝牙物理链路类型:SCO和ACL链路

    蓝牙物理链路ACL Asynchronous Connectionless 另外的一种链路是SCO Synchronous Connection Oriented 主要用来传输对时间要求很高的数据通信 蓝牙基带技术支持两种连接类型 xff1
  • Linux内核角度分析tcpdump原理(二)

    上篇文章介绍了在内核角度tcpdump的抓包原理 1 xff0c 主要流程如下 xff1a 应用层通过libpcap库 xff1a 调用系统调用创建socket sock fd 61 socket PF PACKET SOCK RAW ht
  • 3 Linux目录管理

    注意 xff1a 在下面的讲解中 xff0c 每个命令都有很多的参数说明 选项 xff0c 我们只讲其中的几个 xff0c 关键是让学生掌握命令的语法 xff1b 学生学习完语法后 xff0c 就可以自己按照参数书写各种命令 xff0c 这