当前位置: 首页 > article >正文

Linux第一讲:Linux基本指令

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.kler.cn/news/359274.html

相关文章:

  • Vue - Element 选择器 el-select 既可以选择下拉又可以手动输入文本功能(手动输入的值只能是数字 并且支持4位小数)
  • Python单个数值字符串转化成时间戳
  • Unity水体交互
  • C++之《剑指offer》学习记录(5):数组中重复的数
  • MySQL 设计数据表
  • Android 中获取和读取短信验证码
  • es索引库操作和使用RestHignLevelClient客户端操作es
  • 家用wifi的ip地址固定吗?换wifi就是换ip地址吗
  • 【Linux】了解pthread线程库,清楚并没有线程创建接口,明白Linux并不存在真正意义的线程(附带模型图详解析)
  • 属于Navicat的时代落幕了
  • 如何使用xlnt创建多个sheet并写入内容后保存?
  • 即时通讯代码优化
  • Mybatis框架用到了哪些设计模式?
  • LeetCode --- 419周赛
  • 企业信息化
  • 【mod分享】极品飞车10卡本峽谷白日mod,在白天竞速也是一种很棒的体验,更多的车辆,更高清的材质,更棒的灯光效果、同样光追
  • 【AI战略思考6】高筑墙,广积粮,静待周文王
  • LeetCode:3258.统计满足k约束的子串数量 I(滑动窗口 Java)
  • 土豆家族提权
  • pytorch安装GPU版本,指定设备