<1>Linux基础指令:Linux 高频指令详解 + 文件与目录认知

[1. clear(翻页式清空屏幕,仅为视觉效果,不删除就内容)](#1. clear(翻页式清空屏幕,仅为视觉效果,不删除就内容))

[2. ls(罗列当前路径下的所有文件详情)](#2. ls(罗列当前路径下的所有文件详情))

[2.1 ls -l 或者 ll(基于ls扩展,显示更多属性)](#2.1 ls -l 或者 ll(基于ls扩展,显示更多属性))

[2.2 ls -a(显示隐藏文件(.开头文件))](#2.2 ls -a(显示隐藏文件(.开头文件)))

[2.3 ls指令组合使用 : ls -la, ls -al, ls -l -a, ls -a -l](#2.3 ls指令组合使用 : ls -la, ls -al, ls -l -a, ls -a -l)

2.4如何理解文件?

2.5路径是什么?

3.pwd(显示用户当前所在的目录的路径(文件夹))

[4. mkdir(在当前路径下新建一个文件夹)](#4. mkdir(在当前路径下新建一个文件夹))

[5. cd(路径切换)](#5. cd(路径切换))

[5.1 cd ~ (从任意路径,直接回到家目录)](#5.1 cd ~ (从任意路径,直接回到家目录))

[5.1 cd - (快速在 当前 和 上一次访问的 路径 中来回切换)](#5.1 cd - (快速在 当前 和 上一次访问的 路径 中来回切换))

[5.1 cd ..(返回到上一级目录)](#5.1 cd ..(返回到上一级目录))

[5.2 隐藏文件 "." (当前路径)](#5.2 隐藏文件 "." (当前路径))

[5.2 隐藏文件 ".." (上级路径)](#5.2 隐藏文件 ".." (上级路径))

[5.3 / (Linux的根目录)](#5.3 / (Linux的根目录))

[5.4 目录 与 树形结构](#5.4 目录 与 树形结构)

[5.5 windows电脑,或者Linux上有几块硬盘?](#5.5 windows电脑,或者Linux上有几块硬盘?)

[5.6 家目录(操作系统的用户,登录系统后,默认所处的路径)](#5.6 家目录(操作系统的用户,登录系统后,默认所处的路径))

[6. whoami(指定用户在指定用户下,查询当前用户终端)](#6. whoami(指定用户在指定用户下,查询当前用户终端))

[7. touch(创建一个新的文件)](#7. touch(创建一个新的文件))

[8. stat (查看一个文件更详细的信息)](#8. stat (查看一个文件更详细的信息))

[9. mkdir (创建一个新目录(路径,文件夹))](#9. mkdir (创建一个新目录(路径,文件夹)))

[9.1 Linux区分文件类型](#9.1 Linux区分文件类型)

[9.2 mkdir -p (一键创建一串目录)](#9.2 mkdir -p (一键创建一串目录))

[10. tree (树形结构显示当前路径及后面的目录文件打印出来)](#10. tree (树形结构显示当前路径及后面的目录文件打印出来))

[11. rm && rmdir(删除文件,目录)](#11. rm && rmdir(删除文件,目录))

[11.1rmdir :不可删除非目录,只能删除空目录](#11.1rmdir :不可删除非目录,只能删除空目录)

[11.2 rm :可删除非目录,目录需要递归删除(rm -r)](#11.2 rm :可删除非目录,目录需要递归删除(rm -r))

[11.2.1 rm -rf : 强制递归删除,别问我确认了](#11.2.1 rm -rf : 强制递归删除,别问我确认了)

[11.2.1 谨慎使用rm -rf](#11.2.1 谨慎使用rm -rf)

[11.2 rm -i (提醒是否要删除文件)](#11.2 rm -i (提醒是否要删除文件))


1. clear(翻页式清空屏幕,仅为视觉效果,不删除就内容)

clear用于清空屏幕:使屏幕上之前的语句全部置于屏幕之上,不显示在屏幕内。滚轮可以查看历史消息,翻页式清空,不是将旧内容删除。

2. ls(罗列当前路径下的所有文件详情

ls 指令 : 罗列当前路径下的所有文件详情(罗列文件的属性)

输入 ls 后 ,弹出了许多蓝色字体这些都是文件 ,后面会讲,这些其实是文件夹

这些都是文件的属性,文件名字如何查看文件详情? 输入指令 ls -l

2.1 ls -l 或者 ll(基于ls扩展,显示更多属性)

输入ls -l 后,会给出当前路径下各个文件的更多属性详情!!

ls -l 的简写 : ll ,实际上是取了 ls -l的别名。

2.2 ls -a(显示隐藏文件(.开头文件))

ls -a : 显示隐藏文件(.开头文件)

ls 默认不显示隐藏文件。

2.3 ls指令组合使用 : ls -la, ls -al, ls -l -a, ls -a -l

ls 的 扩展命令 都可组合使用: ls -a -l , ls -l -a ,ls -la ,ls - al

2.4如何理解文件?

那讲了那么多,文件是什么呢?

windows 新建一个空文件,它占不占磁盘空间?

答案是: 它占磁盘空间! windows要存下它的名字,类型,时间等这些文件属性数据!

文件的属性数据也叫做元信息,元信息也是数据,也要保存!! 文件 != 文件的内容

文件 = 文件的内容 + 文件的属性! 这两者结合,才是完整的文件。

学习文件的本质:无非就是对 文件内容 或者 文件属性数据 做修改!!

2.5路径是什么?

上面也多次提到路径 。路径其实就是:

每个系统的路径分割符不同。我的电脑上是 >

windows 和 Linux 的:

路径存在的意义就是为了方便访问数据,方便找到文件在哪,就如其名,路径,通往某个地方的路

路径是具有唯一性的!! 默认所处的路径,叫做当前路径。后面有指令可以获取它。

相对路径也是具有唯一性的!!

相对路径可以有很多条,但是每一条都是唯一确定的。

3.pwd(显示用户当前所在的目录的路径(文件夹)

pwd :显示用户当前所在的目录的路径(文件夹)( 显示从根目录开始,到现在目录的路径)

pwd结合ls,可以玩出花:

4. mkdir(在当前路径下新建一个文件夹

mkdir 的作用:在当前路径下新建一个文件夹。指令效果类似于:

使用格式就是:mkdir + 空格 + 文件名

5. cd(路径切换)

用法: cd + 空格 + 路径

在当前路径下的文件,可以直接 cd 文件名 ,就能进去该路径。

因为118在当前路径,所以直接cd 118就进去,如果要去别的路径下的文件,就需要通过"相对路径"(后面说) ,或者"绝对路径"(比如:/D盘/root/118,从头到尾的路径都明确写出来了,就跟1+1=2一样,是绝对的,称之为绝对路径。)

它的效果等价于:双击文件夹,进入文件夹。

5.1 cd ~ (从任意路径,直接回到家目录)

cd ~ :任意路径,直接回到家目录

5.1 cd - (快速在 当前 和 上一次访问的 路径 中来回切换)

cd - :快速在 当前 和 上一次访问的 路径 中来回切换

举个例子:大部分电脑, alt + Tab,可以在最近两个页面窗口来回切切换。

5.1 cd ..(返回到上一级目录)

cd .. (cd + 空格 + 点点) :返回到上一级目录!!

它的效果等价于:点击返回上一级按钮

5.2 隐藏文件 "." (当前路径)

运行可执行程序(其实就是文件),从磁盘加载内存,前提是:先找到这个文件!!

系统不会无端找到程序,它也是要通过路径,那怎么找到我们当前路径的?通过隐藏文件 .

5.2 隐藏文件 ".." (上级路径)

.. : 上级路径 !! cd 是路径切换,为什么能切换到上级路径?

因为 .. 是隐藏文件,是上级目录!

使用 .. ,可以不用依次从根目录type到上级目录,它十分简便,直接就能找到父节点,就跟三叉树一样,它肯定会损耗性能,但优化的性能远大于消耗。

换句话说,如果上级目录的其他下级目录同父节点,同级目录的其他目录(假设目前118,113下有test.exe) )下有一个可执行程序,那更简便 的方式去访问是: ../113/test.exe

这就是相对路径的优势,绝对路径太麻烦了

5.3 / (Linux的根目录)

一直cd .. ,就会一直回退,当回退到 / 路径时,就回退不了了,因为已经到了根目录

5.4 目录 与 树形结构

/D盘/root/118/117 上面说了,最左侧的 / 是根目录,/又是路径分割符,那 / 与 / 之间的是什么?

答案:是目录!!
Linux管理文件,使用的是树形结构,管理文件的!

叶子节点:普通文件 && 空目录

路上节点:目录 ! !也就是文件夹

因为只文件夹具有继续向内扩展分支的性质,所以是必然是路上节点。之所以有叶子节点,因为他们是空目录或者普通文件,无法或者还没有向内扩展

所以路径为什么具有唯一性?因为从根目录到指定目录,由于树形结构,它的绝对路径就是唯一确定的!!!

反过来说,因为它的父节点具有唯一性!一直往上推,路径往上的节点都具有唯一性。

5.5 windows电脑,或者Linux上有几块硬盘?

我们电脑上或多或少都有很多磁盘:C盘,D盘,E盘。但他们都电脑上一块硬盘的分区!!

电脑中只有一块硬盘!

这些CDEF盘,其实就是根目录下的第一个目录!根目录就是所谓的有且唯一的硬盘

5.6 家目录(操作系统的用户,登录系统后,默认所处的路径)

家目录 :操作系统的用户,登录系统后,默认所处的路径

我们的Linux操作系统,一个root账号(超级账号,理解为店长一样)可以创建多个普通账号(店员)。登录的账号不同,他们的家目录也各自不相同(家不一样)。每个家目录是独立的,各不干扰

在我们的windows电脑系统里,有没有家目录?

有没有发现,每次登录windows都让我们登录账号,初始的是administrator,你也可以登录张三,李四,王五....,每次登录的账号不同,桌面也不同

其实:每一个用户,都有一个家目录!!创建新账号后,C盘的"用户"就会出现新的账号家目录!! 里面有它的各自信息,文件夹,包括桌面应用

这个就是whb这个账号的家目录!!

也就是说,当我登录用户,windows就会拿着我的用户名,去用户里找我的路径(访问我账号的家目录),然后找到我的桌面文件夹,然后展开在桌面,这就是每个账户不同的桌面的原因。

再说,我们打开浏览器,下载东西,浏览器怎么知道我们要下在哪里呢?

其实它是下在我们家目录的"下载"文件夹里!!

6. whoami(指定用户在指定用户下,查询当前用户终端)

whoami : 指定用户在指定用户下,查询当前用户终端

7. touch(创建一个新的文件)

touch : 创建一个新的文件

它还有其他用法,但暂时不讲,结合后面的知识讲。

8. stat (查看一个文件更详细的信息)

stat : 查看一个文件更详细的信息

什么是ACM时间?

A时间:Access:最近查看、读取文件内容的时间(打开看一眼)

C时间:Change:最近修改元数据的时间(属性修改。内容修改也会更改)

M时间:Modify:最近修改文件内容的时间(进去把内容修改)

9. mkdir (创建一个新目录(路径,文件夹))

mkdir :(创建一个新目录(路径,文件夹))

9.1 Linux区分文件类型

Linux下,创建了那么多普通文件,文件夹,那怎么知道哪些是哪些?看后缀吗?

Linux区分文件类型,不关心文件后缀(但不代表不可用这个判断)

但是在Linux上使用gcc编译器编译代码时,却要求后缀名为.c 不是说不关心后缀吗?

因为 : Linux操作系统 != gcc 编译器 Linux操作系统上虽然集成了gcc编译器,但他们是两个东西。

9.2 mkdir -p (一键创建一串目录)

mkdir -p : 一键创建一串目录

10. tree (树形结构显示当前路径及后面的目录文件打印出来)

tree : 树形结构显示当前路径及后面的目录文件打印出来

如果显示没有此命令,需要输入指令下载:

11. rm && rmdir(删除文件,目录)

rm && rmdir :删除文件,目录

11.1rmdir :不可删除非目录,只能删除空目录

11.2 rm :可删除非目录,目录需要递归删除(rm -r)

11.2.1 rm -rf : 强制递归删除,别问我确认了

11.2.1 谨慎使用rm -rf

11.2.2 谨慎使用 rm -rf *

谨慎使用rm -rf *

这意味着把当前目录下所有子目录及文件删除 * 代表全部!

11.2 rm -i (提醒是否要删除文件)

rm -i :提醒是否要删除文件

root超级用户下,rm 就会直接询问,不需要rm -i。因为是超级用户,需要确认你的每一步行动,以免意外!

这个选项是给普通用户使用的,普通用户不会确认,需要你自己rm -i 养成习惯。

相关推荐
色空大师2 小时前
【Linux-安装nginx】
linux·运维·前端·nginx·部署
艾莉丝努力练剑2 小时前
【Linux线程】Linux系统多线程(七):<线程同步与互斥>线程同步(下)
java·linux·运维·服务器·c++·学习·操作系统
zzzyyy5382 小时前
Linux进程控制(1)
linux·运维·服务器
喜欢流萤吖~2 小时前
SpringBoot 异步处理与线程池实战
java·开发语言
c++逐梦人2 小时前
C++ RAII流式日志库实现
开发语言·c++
t***5442 小时前
还有哪些设计模式适合现代C++
开发语言·c++·设计模式
Dshuishui2 小时前
学习一下 Python 包管理器 uv
开发语言·python·uv
Wave8452 小时前
C++ 面向对象基础:类、访问权限,构造函数,析构函数
开发语言·c++
t***5442 小时前
如何在现代C++项目中有效应用这些设计模式
开发语言·c++·设计模式