【Linux】4.Linux常见指令以及权限理解(2)
文章目录
- 3. Linux指令
- 3.1 ls指令和rm指令补充
- 3.2 man指令(重要)
- 3.3cp指令(重要)
- 输出重定向
- 3.3.1ubuntu20.04如何安装tree
- 3.4 mv指令(重要)
- mv指令更改文件名
- mv指令更改目录名
- 如何看待指令
- 指令的重命名
- 3.5 cat指令
- 追加重定向
- 输入重定向
- 3.6 more指令
- 3.7 less指令(重要)
- 3.8 tail指令
3. Linux指令
3.1 ls指令和rm指令补充

*:通配符
ls *:显示任何文件
ls *.c:局部匹配(前面不管,只匹配.c后缀)
ls test.*:局部匹配(前面匹配test,后缀不管)

rm * -rf:删除所有的

rm -rf 文件名/目录名和rm 文件名/目录名 -rf作用一样,但是推荐写成前者。

rm -i:删除前逐一询问确认
- 在
root用户不用-i也会询问确认- 普通用户不用
-i就直接删除了,使用了-i才会询问确认
3.2 man指令(重要)
访问Linux手册页的命令是man
语法: man 命令
man ls:

按空格键翻页

按键盘上的⬆和⬇可以上下慢慢移动页面。
退出man:点击q

man man:也是可以的
下方1-9的是指Linux手册编号,因为是云服务器,所以联网的。

man printf:也是可以的
printf不止是C语言有,Linux里面也有。
我们可以通过下面的语句调用printf指令。
printf "hello %d,hello %f" "12" "3.14"

这个printf和我们之前学习的C语言的printf不是一个东西,就像六耳猕猴和孙悟空一样。
如果想要调用C接口里面的printf呢?
man 3 printf:这里的3指的是手册的编号。

如果直接man 指令名,那么得到的是按照手册编号顺序得到的解释。1号手册有就是1号手册的该指令的定义。没有就查2号手册,依此类推。
如果全都没有,就说明这个指令是不存在的。

3.3cp指令(重要)
输出重定向
讲
cp指令的前面要先讲一下输出重定向。
echo "hello Linux":echo指令可以把后面跟着的字符串打印在显示器上。
echo "hello Linux" > mytest.txt:把hello Linux写到mytest.txt里面。
我们可以通过ll看到文件大小从0变成了12。

cat mytest.txt:打印mytest.txt文件的内容

实际上
echo "hello Linux" > mytest.txt经过了两个阶段:
echo "hello Linux":echo指令将字符串打印在显示器上这里的
echo "hello Linux" >没有在显示器显示字符串这个数据被写入文件中。
我们把在指令后面带
>和一个文件名,现象是没有在显示器显示字符串,这个数据被写入文件中,我们把它称为:输出重定向。输出重定向:本来应该显示到显示器的内容,打印到文件中
cp mytest.txt mytest_backup.txt:把mytest.txt拷贝成mytest_backup.txt

想要把一个文件拷贝给另一个文件但是两个文件名字一样,那么就会报错。

cp mytest.txt ../mytest.txt:拷贝mytest.txt给上一级路径
ls ../:查看上一级路径


常识告诉我们,同一个目录下不能存在同名文件。
3.3.1ubuntu20.04如何安装tree
依次执行下面两行语句:
sudo apt update
sudo apt install tree

ll:显示指定文件或目录的详细属性信息
mkdir –p d1/d2/d3:递归建立多个目录

目录无法直接拷贝

cp -r lesson3 lesson3_backup:递归拷贝lesson3目录 (-r是递归的意思)

我们也可以进一步验证mytest.txt文件的内容

-i:覆盖文件之前先询问用户

-f:强行复制文件或目录, 不论目的文件或目录是否已经存在(一般不会询问)

-fi:是会问的,因为为了保险起见。

3.4 mv指令(重要)
mv指令更改文件名
mv mytest_backup.txt mytest1.txt:把mytest_backup.txt重命名为mytest1.txt

mv:也可以剪切
mv mytest.txt ../:把mytest.txt剪切到上级目录

mv ../mytest.txt .:把上级路径的mytest.txt剪切到当前路径

mv mytest.txt ../test.txt:把mytest.txt剪切并重命名为test.txt到上级目录

那么怎么分辨mv是剪切还是重命名还是剪切并重命名呢?
mv 当前文件 目录:剪切
mv 当前文件 路径/文件名:剪切并重命名
mv a.txt b.txt:(剪切并)重命名
mv a.txt ./b.txt:剪切并重命名(本质上mv都是剪切)
Ctrl+C:撤销这一次的操作
mv指令更改目录名

mv 目录名1 目录名2:这里不管是重新命名还是剪切,目录名2都要不存在,存在的话就会重名。这个时候,会把目录名1放进目录名2里面。
不存在的话就是重新命名和剪切了。

如何看待指令
-
如何看待指令?
指令和可执行程序都是可执行的,指令就是可执行程序。
指令一定在系统的某一个位置存在。

-
我们在执行指令前,我们要干什么?
先在系统中查找对应的指令。
-
指令存在在系统中,可以得出:指令是在系统中特定的路径下存在的。
一定是某种可执行程序
指令的本质就是可执行程序和我们自己写的代码编译好的程序,没有本质区别。
例如:我们编译后出现一个可执行程序
a.out,我们把这个可执行程序a.out重命名为ssss后放到/user/bin/里面后,我们直接输入刚刚那个重命名的ssss,就会出现这个可执行程序的运行结果。不过不建议自己写了丢进去,因为以后会忘记,也没多大用处。 -
把可执行程序从刚刚的系统路径下删除,实际上就是卸载。
这种概念在
Windows下面也是一样的。 -
指令的本质就是文件(可执行文件),就是直接安装到系统的某个路径下,然后使用的时候会自动跳到那边使用。
指令的重命名
alias A='B';
把B操作重命名为A
which可以查询指令的地址,但是在Ubuntu里面which只能查询没有被重命名的指令的位置。


3.5 cat指令
语法:cat [选项][文件]
功能: 查看目标文件的内容
常用选项:
-b对非空输出行编号
-n对输出的所有行编号
-s不输出多行空行
-
Linux下一切皆文件。
例如:
显示器(向显示器打印–>向显示器文件写入
fwhite,不会从显示器读取fread(){}读方法为空)键盘(向键盘输入–>向键盘文件读取
fread,不会向键盘打印fwhite(){}写方法为空)普通文件…
之前的输出重定向本质上就是把向显示器文件写入变成向另外的文件写入。

echo后面跟的是字符串,把后面原封不动的打印出来。
cat后面跟的是文件名,cat打印的是文件的内容
ll后面跟的是我们所对应的文件的属性,ll打印的是文件的属性

这个情况很有意思,一开始test.txt里面是hello Linux。
后来输入了多次echo "hello Linux" > test.txt,结果还是打印一行hello Linux。
然后我们输入echo "108 good" > test.txt,结果打印108 good了。
这种输出重定向有个特点:
向目标问价写入的时候会从文件的开始把所有的内容
覆盖写入。实际上,在重定向过程中要干两件事:
- 清空原始文件
- 写入新内容
由此,我们想清空一个文件的话,我们可以这样:

这个>号就代表重定向。
这里打开文件的时候就默认清空了。
追加重定向
扩展:
如果我想让文件的内容不清空呢?

这个>>中间不能带空格,> >是错误的。
这种重定向叫做:追加重定向。
echo默认带换行。
如果我们想不换行,那就可以换成printf

然后我们可以看一下cat后面如果不跟文件名会发生什么:

我输入了a回车,他就打印a
我输入了b回车,他就打印b
我输入了回车,他就打印回车
说明cat后面如果不跟文件名,就默认从键盘读。本来cat指令就是向显示器打印的,所以我输一个回车他就打印一个。
输入重定向
我们还可以这样:

这里我们呢可以认为,本来应该从键盘文件读取的,就不从键盘读了,转而从我们指定的文件读取。
这个叫做输入重定向。
两个问题:
- 当然,这里也可能感觉
cat test.txt就可以实现了,为什么要用cat < test.txt呢?因为这里要将。
- 他们有区别吗?
有区别,但是后面讲。现阶段会用就行了。

由图可见,创建新文件不一定非得要touch。

这里的cat就是打印。
cat -n 文件名:对输出的所有行编号

cat -b 文件名:对非空输出行编号
我们先创建一些空行在里面

然后输入命令

cat -s 文件名:不输出多行空行(多个空行变一行空行)

也可以组合使用

3.6 more指令
语法:more [选项][文件]
功能:more命令,功能类似 cat
常用选项:
-n对输出的所有行编号
q退出more
先用脚本语言来创建一个脚本

使用cat来读的话:

说明cat不适合大文本,适合小文本。
所以要使用more:
默认显示一面

按回车下翻

退出就按Q,就行了
more也可以带选项:


more一般靠按键只能下翻不能上翻。
我们也可以直接/9999

3.7 less指令(重要)
less工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。
less的用法比起more更加的有弹性。在more的时候,我们并没有办法向前面翻, 只能往后面看。但若使用了
less时,就可以使用[pageup][pagedown]等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容!除此之外,在
less里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜
语法:
less [参数] 文件功能:
less与more类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件。选项:
-i:忽略搜索时的大小写
-N:显示每行的行号
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
q:quit
我们输入less:


按↓会下翻,按↑会上翻。所以less适合大文本的上下布局。
less也可以输入/999查看后面的消息

也可以输入?899查看之前的消息

cat不适合看大文本,适合看小文本。
那么我们为什么要看一个比较大的文本呢?什么文本属于大文本呢?
在项目里面可以用到。
3.8 tail指令
tail 命令从指定点开始将文件写到标准输出。使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容。
语法:
tail[必要参数][选择参数][文件]功能: 用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。
选项:
-f: 循环读取
-n<行数>: 显示行数
如何读取1001-1020行内容呢?
head -1020 log.txt >temp.txt;
tail -20 temp.txt
head -1020 log.txt > temp.txt
- 从 log.txt 文件的开头读取前 1020 行
- 将这 1020 行保存到 temp.txt 文件中
>是重定向符号,会覆盖已存在的 temp.txt 文件
tail -20 temp.txt
- 从 temp.txt 文件(包含前面获取的 1020 行)中读取最后 20 行
- 将这 20 行显示在屏幕上
最终效果:
- 显示 log.txt 文件的第 1001 行到第 1020 行
- 相当于查看了原文件的第 1001-1020 行的内容
这里要创建temp.txt文件,如果不创建文件能完成吗?
我们可以使用管道。
# 使用管道,无需临时文件
head -1020 log.txt | tail -20

区分左右两侧的|称为管道文件。
这个管道文件是一种内存级别的文件。
什么叫做管道呢?
- 有输入有输出
- 传输资源
相关文章:
【Linux】4.Linux常见指令以及权限理解(2)
文章目录 3. Linux指令3.1 ls指令和rm指令补充3.2 man指令(重要)3.3cp指令(重要)输出重定向3.3.1ubuntu20.04如何安装tree 3.4 mv指令(重要)mv指令更改文件名mv指令更改目录名 如何看待指令指令的重命名3.5…...
ffmpeg aac s16 encode_audio.c
用ffmpeg库时,用代码对pcm内容采用aac编码进行压缩,出现如下错误。 [aac 000002bc5edc6e40] Format aac detected only with low score of 1, misdetection possible! [aac 000002bc5edc8140] Error decoding AAC frame header. [aac 000002bc5edc81…...
vue3监听器
1.侦听数据源类型 watch 的第一个参数可以是不同形式的“数据源”:它可以是一个 ref (包括计算属性)、一个响应式对象、一个 getter 函数、或多个数据源组成的数组 const x ref(0) const y ref(0)// 单个 ref watch(x, (newX) > {console.log(x is ${newX}) …...
03-51单片机定时器和串口通信
一、51单片机定时器 1.定时器介绍 1.1为什么要使用定时器 在前面的学习中,用到了 Delay 函数延时,这里学习定时器以后,就可以通过定时器来完成,当然定时器的功能远不止这些: 51 单片机的定时器既可以定时ÿ…...
系统架构设计师考点—项目管理
一、备考指南 项目管理主要考查的是进度管理、软件配置管理、质量管理、风险管理等相关知识,近几年都没有考查过,但是有可能在案例分析中考查关键路径的技术问题,考生了解为主。 二、重点考点 1、项目的十大管理(速记࿱…...
代码随想录算法训练营第三十二天|509.斐波那契数、70.爬楼梯、746.使用最小花费爬楼梯
目录 509.斐波那契数 动态规划五部曲: 1.确定dp数组(dp table)以及下标的含义 2.确定递推公式 3.dp数组如何初始化 4.确定遍历顺序 5.举例推导dp数组 70.爬楼梯 动态规划五部曲: 1.确定dp数组(dp table)…...
【2024年华为OD机试】 (A卷,100分)- 总最快检测效率(Java JS PythonC/C++)
一、问题描述 题目描述 在系统、网络均正常的情况下组织核酸采样员和志愿者对人群进行核酸检测筛查。 每名采样员的效率不同,采样效率为 N 人/小时。由于外界变化,采样员的效率会以 M 人/小时为粒度发生变化,M 为采样效率浮动粒度…...
【大数据】Apache Superset:可视化开源架构
Apache Superset是什么 Apache Superset 是一个开源的现代化数据可视化和数据探索平台,主要用于帮助用户以交互式的方式分析和展示数据。有不少丰富的可视化组件,可以将数据从多种数据源(如 SQL 数据库、数据仓库、NoSQL 数据库等࿰…...
LabVIEW调用不定长数组 DLL数组
在使用 LabVIEW 调用 DLL 库函数时,如果函数中的结构体包含不定长数组,直接通过 调用库函数节点(Call Library Function Node) 调用通常会遇到问题。这是因为 LabVIEW 需要与 DLL 中的数据结构完全匹配,而包含不定长数…...
MySQL 17 章——触发器
在实际开发中,我们经常会遇到这样的情况:有2个或者多个相关联的表,比如商品信息表和库存信息表,分别存放在两个不同的数据表中,我们在添加一条新商品记录的时候,为了保证数据的完整性,必须同时在…...
面向对象分析与设计Python版 面向对象设计方法
文章目录 前言一、职责驱动设计二、职责驱动设计-案例 前言 面向对象设计目标:在面向对象分析建立的领域模型的基础上,定义对象操作(职责)。为对象分配职责的方法有: 职责驱动设计遵循GRASP设计原则(Gene…...
GB/T 19582.1-2008主要内容
标准背景与概述 GB/T 19582.1-2008是由中国国家标准化管理委员会发布的国家标准,旨在指导和规范基于Modbus协议的工业自动化网络的设计和实施。该标准由全国工业过程测量控制和自动化标准化技术委员会(TC124)归口,并由中国机械工…...
[石榴翻译] 维吾尔语音识别 + TTS语音合成
API网址 丝路AI平台 获取 Access token 接口地址:https://open.xjguoyu.cn/api/auth/oauth/token,请求方式:GET,POST Access token是调用服务API的凭证,调用服务API之前需要获取 token。每次成功获取 token 以后只有…...
算法题(32):三数之和
审题: 需要我们找到满足以下三个条件的所有三元组,并存在二维数组中返回 1.三个元素相加为0 2.三个元素的下标不可相同 3.三元组的元素不可相同 思路: 混乱的数据不利于进行操作,所以我们先进行排序 我们可以采取枚举的方法进行解…...
webpack03
什么是source-map 将代码编译压缩之后,,可以通过source-map映射会原来的代码,,,在调试的时候可以准确找到原代码报错位置,,,进行修改 source-map有很多值: eval &#…...
组会 | SNN 的 BPTT(backpropagation through time)
目录 1 神经学基础知识1.1 神经元1.2 神经元之间的连接1.3 膜电位1.4 去极化与超极化 2 SNN2.1 LIF 模型2.2 BPTT 中存在的问题2.3 梯度爆炸或消失问题 前言: 本博仅为组会总结,如有谬误,请不吝指正!虽然标题为 BPTT&am…...
CDA数据分析师一级经典错题知识点总结(3)
1、SEMMA 的基本思想是从样本数据开始,通过统计分析与可视化技术,发现并转换最有价值的预测变量,根据变量进行构建模型,并检验模型的可用性和准确性。【强调探索性】 2、CRISP-DM模型Cross Industry Standard Process of Data Mi…...
django基于Python的电影推荐系统
Django 基于 Python 的电影推荐系统 一、系统概述 Django 基于 Python 的电影推荐系统是一款利用 Django 框架开发的智能化应用程序,旨在为电影爱好者提供个性化的电影推荐服务。该系统通过收集和分析用户的观影历史、评分数据、电影的属性信息(如类型…...
JVM与Java体系结构
一、前言: Java语言和JVM简介: Java是目前最为广泛的软件开发平台之一。 JVM:跨语言的平台 随着Java7的正式发布,Java虚拟机的设计者们通过JSR-292规范基本实现在Java虚拟机平台上运行非Java语言编写的程序。 Java虚拟机根本不关心运行在其内部的程序到底是使用何…...
网络授时笔记
SNTP的全称是Simple Network Time Protocol,意思是简单网络时间协议,用来从网络中获取当前的时间,也可以称为网络授时。项目中会使用LwIP SNTP模块从服务器(pool.ntp.org)获取时间 我们使用sntp例程,sntp例程路径为D:\Espressif\…...
使用VSCode开发Django指南
使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...
简易版抽奖活动的设计技术方案
1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...
rknn优化教程(二)
文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK,开始写第二篇的内容了。这篇博客主要能写一下: 如何给一些三方库按照xmake方式进行封装,供调用如何按…...
测试markdown--肇兴
day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...
Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
汇编常见指令
汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...
Rapidio门铃消息FIFO溢出机制
关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系,以下是深入解析: 门铃FIFO溢出的本质 在RapidIO系统中,门铃消息FIFO是硬件控制器内部的缓冲区,用于临时存储接收到的门铃消息(Doorbell Message)。…...
Java + Spring Boot + Mybatis 实现批量插入
在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法:使用 MyBatis 的 <foreach> 标签和批处理模式(ExecutorType.BATCH)。 方法一:使用 XML 的 <foreach> 标签ÿ…...
掌握 HTTP 请求:理解 cURL GET 语法
cURL 是一个强大的命令行工具,用于发送 HTTP 请求和与 Web 服务器交互。在 Web 开发和测试中,cURL 经常用于发送 GET 请求来获取服务器资源。本文将详细介绍 cURL GET 请求的语法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的缩写…...
华为OD机试-最短木板长度-二分法(A卷,100分)
此题是一个最大化最小值的典型例题, 因为搜索范围是有界的,上界最大木板长度补充的全部木料长度,下界最小木板长度; 即left0,right10^6; 我们可以设置一个候选值x(mid),将木板的长度全部都补充到x,如果成功…...
