Linux第一讲:Linux基本指令

news2024/11/24 19:14:27

Linux第一讲:Linux基本指令

  • 1.Linux发展历史
  • 2.先快速了解一些指令
  • 3.指令 -- ls
    • 3.1知识点1 -- 文件属性
      • 3.1.1详细解析ls指令
        • 3.1.1.1 ls
        • 3.1.1.2 ls -l 、ls -a
          • 3.1.1.2.1 ls -l
          • 3.1.1.2.2 ls -a
          • 3.1.1.2.3 ls -la
        • 3.1.1.3其它指令
    • 3.2知识点2 -- 什么是.和..
    • 3.3知识点3 -- 前缀- 和 前缀d
  • 4.指令 -- pwd
    • 4.1知识点4 -- 路径分隔符和多叉树结构引入
      • 4.1.1路径分隔符
      • 4.1.2多叉树结构
    • 4.2知识点5 -- .和..的终极理解
  • 5.指令 -- cd
    • 5.1 cd ~
    • 5.2 cd -
    • 5.3知识点6 -- 家目录
  • 6.指令 -- stat、file、mkdir、rm
    • 6.1 stat
      • 6.1.1 知识扩展 -- ACM时间
    • 6.2 file
    • 6.3 mkdir
    • 6.4 rm
    • 6.5知识点7 -- 后缀问题
    • 6.6知识点7 -- tree
  • 7.指令 -- man
    • 7.1man指令的使用
    • 7.2知识点 -- 一切皆文件
  • 8.指令 -- cp
    • 8.1cp指令的使用
    • 8.2知识点:指令其实就是程序
    • 8.3知识点 -- alias
  • 9.命令 -- mv 和 cat
    • 9.1 mv
    • 9.2 cat
    • 9.3知识点:日志
  • 10.指令 -- more和less、head和less
    • 10.1more
    • 10.2less
    • 10.3head和tail
      • 10.3.1head
      • 10.3.2tail
      • 取任意区域的数据
    • 10.4知识点:管道
  • 11.指令 -- date、cal
    • 11.1date
    • 11.2知识点:时间戳
    • 11.3cal
  • 12.指令 -- find和grep
    • 12.1find
      • 12.1.1whereis指令补充
    • 12.2grep
  • 13.指令 -- zip、unzip、tar
    • 13.1什么是解压缩
    • 13.2zip、unzip
      • 13.2.1windows和linux之间进行文件互传
    • 13.3tar
      • 13.3.1Linux之间的互传
  • 14.指令 -- bc
  • 15.指令 -- uname -r
  • 16.知识补充
    • 16.1知识补充1

1.Linux发展历史

Linux是一个操作系统,是一个开源的项目,对于它的发展历史我们看另一位大佬的博客,但是只需要看目录前两个内容即可:

在这里插入图片描述
链接: Linux发展历史

2.先快速了解一些指令

我们要先了解一些指令,然后我会再详细一一解析一个一个的指令:

在这里插入图片描述

下面我们详细来学习一下指令

3.指令 – ls

在详细学习指令的过程中,会出现一个一个的知识点,这些知识点是更加重要的,因为指令在我们一遍一遍地操作之后,会慢慢变得简单,而知识点的理解才是重点

3.1知识点1 – 文件属性

文件是在磁盘上进行存储的,但是如果我们创建了一个文件,但是并不在这个文件中写任何内容,那么这个文件是否还需要占用空间呢?肯定是需要占用空间的!因为文件 != 文件内容,文件 = 文件属性 + 文件内容:

在这里插入图片描述

3.1.1详细解析ls指令

3.1.1.1 ls

ls的作用为,显示当前目录下的文件名称,但是我们注意到,不同的文件,在Linux下显示的颜色也不一样,这到底有什么说法呢?其实,文件分为两种:普通文件和目录,因为一个目录中可以存储文件,也可以包含其它的目录,所以我们就要重新定义ls的作用了:
在这里插入图片描述

3.1.1.2 ls -l 、ls -a
3.1.1.2.1 ls -l

当我们输入ls -l时,可以看到:
在这里插入图片描述
除了文件名,还显示了其它的一串东西,我们可以大致猜出:这些应该是文件的属性,有时间、字节数等,所以说ls -l的作用是显示当前目录下,详细的文件属性信息:
在这里插入图片描述

3.1.1.2.2 ls -a

下面我们来看ls -a的用法:
在这里插入图片描述
可以看出,ls -a除了显示出文件和目录,还显示了. 和 …,既然是蓝色,那么就是两个目录,对于它们两个的描述详细看知识点2,竟然将所有的文件都显示出来了,那么ls -a的作用就是显示当前路径下的所有文件,a就是all

3.1.1.2.3 ls -la

其实两个指令之间能够合并,得到更加了厉害的指令:
在这里插入图片描述

3.1.1.3其它指令

ls家族中还有其它的指令,这些指令不一一列举了,后边会用到的:
在这里插入图片描述

3.2知识点2 – 什么是.和…

在Linux中,以.和…开头的文件或者目录,称为隐藏文件,我们来验证一下:
在这里插入图片描述
其实windows中也有着隐藏文件:
在这里插入图片描述
在我们的文件夹中就能够查看隐藏的项目,而一些游戏中的重要数据其实就放在隐藏的项目中,这是为了防止用户误操作,删除游戏重要的数据

3.3知识点3 – 前缀- 和 前缀d

在这里插入图片描述
所以说.和…其实是两个目录,其实.表示当前路径,…表示上级路径,下面会提

4.指令 – pwd

从一开始得知,pwd是打印当前路径的:
在这里插入图片描述
那么我们就详细分析一下路径的细节:

4.1知识点4 – 路径分隔符和多叉树结构引入

4.1.1路径分隔符

在这里插入图片描述

4.1.2多叉树结构

我们当前的路径为:/root/LinuxClass,那么最前边的/是什么呢?其实是根目录
在这里插入图片描述
而Linux的所有文件都必须从一个根位置开始,而根也是一个目录,我们在根目录中创建另外的目录或文件,从另外的目录中再创建另外的目录或文件,这其实是一个多叉树的结构:
在这里插入图片描述
而对于这么庞大的一棵树,我们怎样才能找到我们想要的文件呢?
在这里插入图片描述

4.2知识点5 – .和…的终极理解

对于任何一个目录,都存在.和…:
在这里插入图片描述
所以它们肯定很重要,其实.表示当前路径,…表示上级路径:
在这里插入图片描述
它们的作用为:
…:可以从当前结点找到自己的父节点
. :可以找到当前路径,当我们写一个C语言代码需要编译时,直接out会发生找不到代码的报错,这时我们就要用:./a.out,来指定当前路径
当我们到达根目录之后,再想要向上查找,使用…,就无法再向上查找了,所以根目录的.和…都指向自己:
在这里插入图片描述

5.指令 – cd

5.1 cd ~

在这里插入图片描述
对于home的解释看知识点6

5.2 cd -

cd -的作用为切换回最近的一次路径:
在这里插入图片描述

5.3知识点6 – 家目录

Linux是一个多用户操作系统,有着家目录的概念,顾名思义,多用户操作系统指能够支持多个用户使用的操作系统,而用户分为两种:超级管理员和普通用户,超级管理员(root用户)有着所有的计算机权限,而普通用户则有着一部分权限
如果将所有用户创建的文件都保存再同一个目录下,肯定会出现问题,所以就为每一位用户分配了一个目录,这个目录称为家目录,当一个用户打开操作系统时,会默认处于其家目录中
超级管理员,默认的家目录为:/root
普通用户,默认的家目录为:/home/xxx
windows操作系统也有着家目录的概念,我们来看:
在这里插入图片描述
从自己的文件夹桌面栏中,我们就可以看到自己桌面上的所有信息了,所以说,桌面的本质其实也是一个目录,只不过使用图形化界面的形式表现出来了而已

6.指令 – stat、file、mkdir、rm

6.1 stat

stat:显示文件的状态信息,stat命令的输出信息比ls命令的输出信息要更加详细:
在这里插入图片描述

6.1.1 知识扩展 – ACM时间

在这里插入图片描述
ACM时间指的就是上面的三个时间的简称:
access time:指文件最后一次被访问的时间,当读取一个文件的内容时,这个时间会被更新
modify time:指文件内容最后一次被修改的时间
change time:指文件的元数据(也被称为i结点信息,其实就是文件属性)最后一次被修改的时间
文件的元数据是指描述文件属性的数据,包含了关于文件的详细信息,但不包含文件的实际内容,如文件名、文件大小、创建时间、修改时间、访问时间、权限等,而i结点是一个数据结构,存储着关于文件的元数据,但不包括文件的实际内容和文件名
我们可以通过touch -a filename来改变其access time,通过touch -m filemname来改变其modify time:
在这里插入图片描述

6.2 file

file:检查一个文件的类型(目录、二进制文件、文本文件):
在这里插入图片描述

6.3 mkdir

mkdir:创建一个新的目录:
在这里插入图片描述
但是当我们想要创建一连串的目录时:
在这里插入图片描述
直接使用mkdir不行,我们要这样写:
在这里插入图片描述

6.4 rm

我们知道了怎么创建文件,那么如何删除文件呢?使用rm指令:
在这里插入图片描述
但是当我们要删除目录时:
在这里插入图片描述
报错了,因为目录是一个子树,要删除目录需要递归(recursion)删除,所以要这样删除:
在这里插入图片描述
但是这样又会显示很多提示信息,如果不想要这么些交互,直接删除需要这样:
在这里插入图片描述
但是这里也会有风险:
在这里插入图片描述
当我们删除时,跟着所有的东西都会被删除,那么如果我们删除/根目录时,也会直接被删除,所以这还是有很大的风险的,但是如果我们误删除了,需要重新安装,可以看教程

6.5知识点7 – 后缀问题

在Linux中,文件类型和后缀无关,文件后缀通常用于表示文件的类型,用来方便用户和程序来识别,文件的实际类型是由其类型来决定的,而不是文件名或后缀
比如,我们有一个名为example的文件,使用file指令时,仍然可以识别它的类型
但是如果我们有一个.txt文件,里面装入的是C语言代码,使用g++编译时为什么会出现报错呢?因为Linux系统 != g++,g++对于文件后缀有要求,而Linux系统没有,所以还是建议在创建文件时要加上后缀!
在这里插入图片描述

6.6知识点7 – tree

既然目录其实是多叉树结构,那么我们就可以使用tree指令来打印出这个多叉树结构:
在这里插入图片描述
报错了!因为tree是需要安装的,安装指令:

yum install -y tree

等待一会就完成了,再次打印结构,可以看到:
在这里插入图片描述
我们再尝试打印根目录:
可以发现它会一直打印,因为根目录包括的内容很多!这时候我们就要使用ctrl,ctrl+c,可以直接将打印暂停:
在这里插入图片描述

7.指令 – man

7.1man指令的使用

Linux中有很多的指令,这些指令我们不可能都记着,所以Linux提供了一个man命令,该命令允许访问Linux中的手册页的命令:
在这里插入图片描述

但是由于云服务器一般是一个生产环境,上边的功能一般是残缺的,因为它会默认项目已经实现,所以就不会提供完整的手册:
在这里插入图片描述
所以我们要先进行安装:
在这里插入图片描述
然后我们就可以使用它的全部功能了:
在这里插入图片描述
我们会发现,为什么printf有两个,而且一个printf前面还要加上一个3呢?
因为手册一共分为8章,而man的所有指令作用如下:
在这里插入图片描述

7.2知识点 – 一切皆文件

在这里插入图片描述
虽然对于一切皆文件这个说法之后还会详细阐述,但是我们现在也可以对于这句话进行一个初步的认识:
在这里插入图片描述

8.指令 – cp

8.1cp指令的使用

cp其实就是copy的缩写,也就是拷贝指令

在这里插入图片描述

8.2知识点:指令其实就是程序

我们桌面上的所有东西,其实是一个一个的快捷操作,如果我们双击文件,就会打开文件对应的exe文件,也就是可执行程序,与之对应的,我们平常所用的ls等指令,其实也是一个一个的程序,使用which可以看出它们被保存在哪个文件中:
在这里插入图片描述

8.3知识点 – alias

上一个知识点,我们看出来了,alias ls=……其实就是起别名,那么我们可以直接定义一个变量来起别名:
在这里插入图片描述

9.命令 – mv 和 cat

9.1 mv

假设我们现在对于自己刚刚创建的文件名称不满意,想要改变名称,那么我们可以这样写:
在这里插入图片描述
对于目录,也是如此:
在这里插入图片描述
在这里插入图片描述

9.2 cat

在这里插入图片描述

9.3知识点:日志

我们平常不会使用到日志,但是如果是一些高端的项目,就会使用到日志,日志就是对于一些异常情况做出记录,并且记录出异常情况出现的时间,以及异常情况的详细信息
我们这里举一个例子:如果一个大型软件,比如一个小游戏,如果一天晚上突然发生了bug,如果我们没有日志的话,不知道bug出现的时间,以及bug的具体信息,那么就很难进行更新,所以日志是很重要的
但是一些日志很大很大,那么对于这些大型文件的读取就是相当重要的,cat读取数据时,会将全部数据进行读取,这对于我们观看是很不方便的,下面引入两个指令

10.指令 – more和less、head和less

10.1more

在这里插入图片描述
但是more相对与less还是有很多缺点的,我们建议使用less:

10.2less

在这里插入图片描述
在这里插入图片描述

10.3head和tail

我们先创建10000个数字:
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/e6be22f6028e433897ff586d36

10.3.1head

在这里插入图片描述

10.3.2tail

在这里插入图片描述

取任意区域的数据

假设我们要取[2000,2020]的数据:
在这里插入图片描述
但是这个方法不好,因为要再创建一个文件,我们需要这样做:
在这里插入图片描述
在这里插入图片描述

而 | 其实是管道,下面我们来看一下管道的概念:

10.4知识点:管道

在这里插入图片描述

11.指令 – date、cal

11.1date

在这里插入图片描述
如果我们在公司中,需要深入底层进入电脑房时,公司要求不能够带手机和电脑,我们就可以这样进行时间的查询

11.2知识点:时间戳

而date一个很重要的指令为:
在这里插入图片描述
但是这个输出的数据到底是什么意思呢?
我们举个例子:对于我们跨境买商品时,如果买了一个别国的商品,要查找这一件商品时,到底是按照我们的中国时间查,还是按照别国的时间查找呢,所以说大佬们呢就在格林威治开了一个会议,设置时间戳为从1970年1月1日0点起至现在的秒数
但是这个究竟有什么实质性的作用呢?当我们查找系统上次更新的时间时、查找某个时间段之内的数据时都需要用到时间戳
那么可不可以将时间戳转换为我们现在的时间呢?:
在这里插入图片描述
这样就实现了
在这里插入图片描述
但是为什么我们将时间戳设为0时,时间不是0点0分呢?因为北京时间和格林尼治时间相差了8个小时

11.3cal

在这里插入图片描述

12.指令 – find和grep

12.1find

在这里插入图片描述
之前我们学了which,那么find和which有什么区别呢
在这里插入图片描述

12.1.1whereis指令补充

在这里插入图片描述

12.2grep

在这里插入图片描述
grep的使用如下:
在这里插入图片描述
grep可以帮助我们看那些大型文档等,也可以用来观看进程:
在这里插入图片描述

13.指令 – zip、unzip、tar

这两个指令都是针对于文件的解压缩的文件,我们先来了解一下什么是解压缩:

13.1什么是解压缩

在这里插入图片描述
那么我们如何对文件进行解压缩呢:

13.2zip、unzip

在这里插入图片描述

13.2.1windows和linux之间进行文件互传

既然我们将文件压缩成一个zip文件包了,那么怎么将这个文件包传到我们的windows上呢

在这里插入图片描述

13.3tar

在这里插入图片描述

13.3.1Linux之间的互传

我们之前讲了windows和Linux之间的文件传输,那么Linux之间的传输是怎么传的呢:

在这里插入图片描述

14.指令 – bc

在这里插入图片描述

15.指令 – uname -r

如果我们想要查找Linux下的体系结构(一般指芯片)、架构(x86)是什么,内核版本是什么,那么我们就需要进行查询:

在这里插入图片描述

16.知识补充

16.1知识补充1

链接: Linux2.6* 内核默认支持的文件系统
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

手写模拟Spring的基本功能

文章目录 1. Spring的基本功能2. 容器启动 容器启动,即创建容器对象并赋予配置对象3. BeanDefinition扫描4. Bean的生命周期5. 单例Bean与多例Bean6. 依赖注入7. AOP8. Aware 回调9. 初始化10. BeanPostProcessor附录: 1. Spring的基本功能 2. 容器启动 …

【鸡翅Club】项目启动

一、项目背景 这是一个 C端的社区项目,有博客、交流,面试学习,练题等模块。 项目的背景主要是我们想要通过面试题的分类,难度,打标,来评估员工的技术能力。同时在我们公司招聘季的时候,极大的…

mingw64的Windows安装及配置教程gcc、g++等

mingw64.rar 链接:https://pan.baidu.com/s/18YrDRyi5NHtqnTwhJG6PuA 提取码:pbli (免费永久有效,免安装,解压后配置环境变量即可使用) 1 下载 解压后随便放到一个地方: 复制“bin”路径&am…

SpringCloudAlibaba[Nacos]注册配置中心注册与发现服务

Nacos的全称是Dynamic Naming and Configuration Service,Na为naming/nameServer即注册中心,co为configuration即注册中心,service是指该注册/配置中心都是以服务为核心。是阿里巴巴开源易于构建云原生应用的动态服务发现、配置管理和服务管理平台。 Nac…

安装vue发生异常:npm ERR! the command again as root/Administrator.

一、异常 npm ERR! The operation was rejected by your operating system. npm ERR! Its possible that the file was already in use (by a text editor or antivirus), npm ERR! or that you lack permissions to access it. npm ERR! npm ERR! If you believe this might b…

【LeetCode:910. 最小差值 II + 模拟 + 思维】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

html,css,js实现Upload 上传

实现效果&#xff1a; 代码实现&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Docum…

基于Multisim的汽车尾灯控制电路设计与仿真

假设汽车尾部左右量测各有3个指示灯&#xff08;用发光二极管模拟&#xff09;1. 汽车正常运行时指示灯全灭&#xff1b;2.右转弯时&#xff0c;右侧3个指示灯按右循环顺序点亮&#xff1b;.3. 左转弯时&#xff0c;左侧3个指示灯按左循环顺序点亮&#xff1b;4.临时刹车时所有…

【C语言刷力扣】910.最小差值 ||

题目&#xff1a; 解题思路; 由于需要对数组中的每一个进行 k 或 -k 的操作&#xff0c;这时要求最小差值&#xff0c;即对较大的数 -k 对较小的数 k。 需要先对数组进行排序&#xff0c;再枚举对元素的操作。 对 nums[0] 到 nums[i - 1] 的数进行 k对 nums[i] 到 nums[numsS…

Java笔试05

在Java中&#xff0c;final 关键字可以用于修饰类、方法和变量&#xff1a; 修饰类&#xff1a; 被 final 修饰的类不能被继承&#xff0c;即不能有子类。这通常用于工具类或者不希望被扩展的类。 修饰方法&#xff1a; 被 final 修饰的方法不能被子类覆盖。这通常用于确保类…

Yolo目标检测:实时性与准确性的完美结合

在目标检测领域&#xff0c;Yolo&#xff08;You Only Look Once&#xff09;算法无疑是一颗璀璨的明星。自2016年由Joseph Redmon等人提出以来&#xff0c;Yolo凭借其出色的实时性和准确性&#xff0c;迅速在多个应用场景中崭露头角。本文将详细介绍Yolo目标检测的基本原理、优…

Qt学习笔记第21到30讲

第21讲 new/delete关键字 new关键字 在 C 中&#xff0c; new 关键字用于动态分配内存。它是 C 中处理动态内存分配的主要工具之一&#xff0c;允许在程序运行时根据需要分配内存。 用法 ①分配单个对象&#xff1a;使用 new 可以在堆上动态分配一个对象。例如&#xf…

面向对象进阶(上)(JAVA笔记第二十二期)

p.s.这是萌新自己自学总结的笔记&#xff0c;如果想学习得更透彻的话还是请去看大佬的讲解 目录 static修饰符静态变量静态方法 工具类工具类的使用例子第一题第二题 static注意事项继承关系建立继承关系的格式继承的好处及使用场景继承的特点继承体系的设计继承中类的三大要素…

JavaWeb 22.Node.js_简介和安装

有时候&#xff0c;后退原来是向前 —— 24.10.7 一、什么是Node.js Node.js 是一个于 Chrome V8 的 JavaScript 运行时环境&#xff0c;可以使 JavaScript 运行在服务器端。使用 Node.js&#xff0c;可以方便地开发服务器端应用程序&#xff0c;如 Web 应用、API、后端服务&a…

使用Three.js和Force-Directed Graph实现3D知识图谱可视化

先看样式&#xff1a; 在当今信息爆炸的时代&#xff0c;如何有效地组织和展示复杂的知识结构成为一个重要的挑战。3D知识图谱可视化是一种直观、交互性强的方式来呈现知识之间的关系。本文将详细介绍如何使用HTML、JavaScript、Three.js和Force-Directed Graph库来实现一个交互…

基于SpringBoot+Vue+uniapp微信小程序的社区门诊管理系统的详细设计和实现(源码+lw+部署文档+讲解等)

项目运行截图 技术框架 后端采用SpringBoot框架 Spring Boot 是一个用于快速开发基于 Spring 框架的应用程序的开源框架。它采用约定大于配置的理念&#xff0c;提供了一套默认的配置&#xff0c;让开发者可以更专注于业务逻辑而不是配置文件。Spring Boot 通过自动化配置和约…

解决:YOLOv8训练数据集时P、R、mAP等值均为0的问题

文章目录 问题解决1.匹配pytorch与cuda的版本2.使用 Adam 优化器3.加大训练轮数epoch4. 删除data/labels下的train.cache和val.cache 问题 使用YOLOv8训练自己的数据集时&#xff0c;出现P、R、mAP等值均为0的问题 Model summary (fused): 186 layers, 2,685,733 parameters, …

【 Git 】git push 出现报错 fatal: Could not read from remote repository.

git push 出现报错 fatal: Could not read from remote repository. 问题描述解决方案 问题描述 Connection closed by 198.18.0.xx port xx fatal: Could not read from remote repository.Please make sure you have the correct access rights and the repository exists.解…

【JavaScript】Javascript基础Day04:函数

Javascript——Day04 01. 函数的基本使用02. 函数的参数以及默认参数03. 匿名函数之函数表达式04. 逻辑中断05. 转换为布尔型 01. 函数的基本使用 02. 函数的参数以及默认参数 注意&#xff1a; 03. 匿名函数之函数表达式 函数&#xff1a;匿名函数/具名函数 为什么这个外部…

【wpf】07 后端验证及令牌码获取步骤

由于在用wpf开发应用程序时&#xff0c;从后端获取数据需要用到 Authorization 授权的Bearer令牌&#xff0c;而这个令牌的获取需要登录后台进行获取&#xff0c;这里登录时还涉及到的验证码的操作&#xff0c;所以在获取过程中&#xff0c;需要对后台系统进行登录并拿到这个Be…