技术分享
💫Linux—first
00 min
2024-10-10
2024-11-23
type
status
summary
date
slug
tags
category
icon
password

1.Linux是什么?

是一种操作系统,是一个基于unix操作系统编写的一个新的操作系统并且免费开源的公布于众
Linux → Linux Isn Not Unix
 
一般公司选用的操作系统就是Linux
而linux稳定快速安全,且成本低

lunux的场景:

1.互联网公司后端
2.智能设备(手机,电视)
3.嵌入式场景

linux版本

a.商业化版本:
b.技术化版本:
 
 
 
linux的基本指令:
1.ls
显示当前文件夹下的所有文件
2.pwd
显示当前所在路径
3.mkdir
创建文件夹在linux里面叫目录. make director
4.cd
切换当前所在目录为。。。change director
等等。。。
linux的指令也是可以携带选项的:
比如ls -l , ls -a ls -al
携带不同的选项能带来不同的呈现效果
文件其实是内容 + 属性的,对于ls指令来说其实它带的选项都是作用于文件的属性的
notion image
这里的ls指令和 -al选项就是这样的:
这里每个文件的开头代表着每一个文件的类型,如果开头是一个d说明特德类型就是一个目录
1.目录其实就是一个普通文件
2.以.开头的文件就是一个隐藏文件,普通的指令是看不见的文件,但是如果是ls -al就能看见所有的文件
linux系统下所有文件都有两个默认文件../.这两个默认文件,两个点的文件其实就是代表的上级路径一个点就代表这当前路径,一个点存在的意义就是帮助用户定位当前目录下的一个文件
 
linux中使用/代表路径分割符 并且/也是Linux的一个根目录,目录里面右能放置目录和普通文件,所以linux目录结构注定了是一个多叉树,所以叶子节点一定是一个空目录或者是一个文件,路上节点一定是一个非空目录所以我们对所有的文件操作都是对一个多叉树的操作,所以我们定位一个文件通常使用路径来定位文件
为什么这种路径定位方式为什么具有唯一性呢?
从根目录开始定位到一个文件的方式称为绝对路径,为什么唯一呢?因为每一个文件只有一个父节点
那什么是相对路径呢?
其实就是以当前位置为参照点,以..作为省略上层路径../PytC/test.txt这个就是一种相对路径
 
 
那这两种路径的使用场景是什么呢?
1.绝对路径比较长,一般子固定场景下使用,配置文件中使用
2.相对路径比较短,一般在命令行中使用较多
 
 

2.cd指令

1.cd ~就是直接切换到家目录中,linux是一个多用户操作系统,可以创建很多个用户(用户分为超级管理员root和其他,其他就是普通用户),每一个用户文件都放在home文件下,如果我现在使用的是普通用户zhangsan,那我cd ~那就会直接切换到了home下的zhangsan用户文件下
  1. cd -就是回到最近一次进入的目录下
总结一下cd常用用法:
cd正常用法就是切换到一个目录下,但是cd也能配合.. , ~ , -来使用能实现不同的效果
 
 

3.touch指令

1.创建一个文件
 
 

4.mkdir

1.创建一个目录
2.-p 创建一个d1/d2/d3/d4的连环目录
notion image
 

5.tree指令

看见目录的树状结构
notion image
 

6.rmdir

1.删除一个空目录,且只能删除空目录,且不能删除其他类型的文件
 
 
 

7.rm (重要)

1.删除一个文件(不能删除一个dir)
2.如果是使用的root账号,那系统会提醒是否删除需要在后面编写一个y
notion image
3.指令 -r 和 -rf
notion image
rm普通情况下是删除不了目录的,但是使用-r就能删除了,但是当这个目录下非空的话系统就会一直询问你是否要删除,这个时候如果不想这样太繁杂就可以是用-rf选项
 
 

8.通配符 *

1.能匹配所有的:test.*就能匹配上所有的名字叫test但是后缀不确定的文件
notion image
或者后缀叫c文件名通配的文件
 

9.man指令

1.就是查看指令对应的作用
 
 

10.cp指令

1.将一个文件拷贝在当前目录下但是需要自己重新起上一个名字
2.但是不能直接拷贝一个目录,那要怎样才能拷贝一个目录呢?
需要带一个-r选项就是递归的意思,和mkdir中创建递归目录的选项-p是一样的意思
 

12.一个无聊的指令echo

1.能将一个字符串打印原封不动的打印出来
2.当echo后面增加了一个 > 的时候就变了
notion image
这样就能把这个字符串写进了这个txt文件中
 

13.cat指令

  1. 打印文件内容
 
 
 

14.mv指令

1.就是改名字的一个指令
mv test_backup.txt test.txt
这样使用的
2.第二个功能就是剪切
mv test.c ../
剪切到上级目录
mv test.c ../test_backup.c
剪切刀上级目录并且重命名
💡
小贴士:ctrl + c能结束一些当出现错误时候的情况(无脑ctrl + c)
 
 
是如何看待指令的?
所谓指令其实就是可执行程序
指令其实就是存在于linux系统中的一些可执行程序就存在于linux系统下的user文件中
总结一下就是指令就是一些可执行的文件放在系统中的一些特定路径下
💡
echo > 重定向写入其实是覆盖写入的,需要注意底层其实是1.清空内容2.写入内容
所以可以直接 > 文件 用于清空文件,但是如果想要文件中内容不断增加只需要这样:
echo “hello linux” >> test.txt这样就能避免覆盖
 
 

15.more 指令

1.一般用于查看较大的文件,按q推出
 
 
 

16.less指令(较重要)

其实相比于more功能较为相似,只不过more只能下翻,但是less既能上翻也能下翻
同样按q退出
 
 
 

17.head指令

提取文件文本前n行默认提取前10行
head test.txt
head -3 test.txt
 

18.tail指令

同样和head指令相对的就是tail了
提取文件文本的最后几行默认10行,同样也存在选项能够选择
 
 
💡
管道:
管道文件,当你想要提取出一个文本文件中的的1020行到1040行的文本时,可以touch一个新的文本问技术然后head -1040 test.txt > gettest.txt 然后 tail -20 gettest.txt就能读取到这部分文档了,但是难免为创建一个新的文本文件来操作,那应该怎么避免这个新文件的创建呢这里就需要用到管道了
这里就能非常简单的解决这个问题了,管道文件不会在磁盘中真实存在
head -1040 test.txt | tail -20
这个操作的含义就是左边的操作当作输出然后传给中间的|(管道文件)然后最后一个操作再对管道文件进行操作
所以管道通常能支持流水线工作
 
 
 

19.时间相关的指令

1.data显示
因为互联网是全球的,但是不同地区是有时差的,所以互联网上就有了一个统一时间的工具
date + %s:获取时间戳
date -d @时间戳 这样就能出现能看懂的时间
时间戳是递增的,所以肯定会出现每一秒都在递增,所以会出现溢出
 
 
  1. cal 日历指令
直接cal + 年份 就能查每个年份的日历
 
 
 

20.find指令(重要)

搜索文件,从磁盘文件中搜索
find + 目录名 + -name + 文件名
 
 
 

21.which

1.是在user/bin路径下查找指令
2.whereis相当于find和which之间的
既可以找到文件也能找到指令
 
 

22.grep指令

 
行文本过滤工具
grep ‘9’ test.txt
在test.txt文件中过滤出包含9的文本
grep应用场景:在一个很大的项目中找到一段重要代码
 
 
💡
什么是打包压缩: 能够被打包压缩的一定是一个整体,本质上是由多个文件→一个文件,作用是不容易造成文件丢失
打包压缩—体积变小,下载时间变短,储存空间变小
打包压缩的工具(linux):Linux充当服务器时也需要各网络应用场景满足通讯的需求
所以这样诞生了两个打包压缩工具:

23.zip/unzip

压缩和解压的指令
 
 

24.tar(重要)

打包/解包,不打开他之间看内容
怎么用?
在linux中打包的方式是非常多的,每一个公司甚至都有多重不同的打包方式,主要是后缀不同
这里先介绍两个常用的方式
tar czf代表压缩
tar xzf代表解压
tar tzf代表预览一下选中的文件
其中有一个选项也需要介绍一下就是-C能解压到指定路径下
 
 

25.bc指令

就是一种计算器
bc:进入
quite:退出
也能用管道
echo “1 + 1” | bc
 
 

26.uname 指令

uname -a 能查到使用的机器的信息
uname -r
 
 

*重要的几个热键

1.tab键:自动补齐指令
2.ctrl + r历史命令搜索
3.ctrl + c终止当前进程
4.ctrl + d退出当前状态
 
💡
linux中记录了所有历史命令,hsitory能看到默认记录最新的1000条命令
 
 

指令的运行原理:

输入指令的过程其实就是一个输入的是字符串,而指令就是一个可执行程序或者一个脚本
我们所有的命令,最终都是要在os层面上运行的,但是os使用难度比较高,五年用户不能直接和os打交道,所以这里就引入了命令行解释器或者图形化界面
整个过程就是我们将命令交给命令行解释器,然后再把命令交给操作系统核心kernel处理最后在返回处理结果
命令行解释器作用(bash):
1.进行命令行解释
2.变相了保护了操作系统,直接拦截用户的非法请求
命令行解释器:命令行,bash,sh,shell(所有命令行的统称)
shell其实就是外壳程序
 
上一篇
Qt开发
下一篇
linux—further