Linux中的简单命令2

news2024/9/21 2:46:34

一.echo指令

echo的作用是显式文本内容 

#echo ‘字符串’

#echo “字符串”

echo会将后面的内容当作字符串直接打印在屏幕上,后面的内容需要用单引号或者双引号括起来

注意:echo会自动在字符串后面加上一个换行符。

 可以与printf进行对比:

printf不会自动加换行符,我们可以自己加上

 二.mv指令

mv是move的缩写,作用是移动文件/目录到指定目录中,或者文件和目录的重命名 

mv src dst

mv srcfile dstdir //src是文件/目录,dst是目录,则现在是移动文件

mv srcfile dstfile //src和dst都是文件,且dst文件不存在,则现在是文件重命名

mv srcdir dstdir //src和dst都是目录,且dst目录不存在,则现在是目录重命名

注意:mv改成move也同样成立

 在上图中,当前目录下有一个123.txt的普通文件,我们利用mv指令,将该文件重命名为xsc.txt。这里之所以是文件重命名是因为前后两者都是文件且后者不存在。

在上图中,该目录下有一个dir1子目录,我们借助mv指令,将dir1目录重命名为111.

 在上图中,111是一个目录,testfile也是一个目录,我们这时再使用mv指令,就是将111目录移动到了testfile目录中。

三.在Linux操作系统中,一切皆文件

在任何系统中,不管是我们自己创建的文件还是显示器,键盘,等等都是文件。

在C/C++中,print/cout它们是将数据写入到显示器文件中,这时数据就能在显示器显式了。scanf/cin它们就是从键盘文件中读取文件,所以它们的输入输出操作其实就是文件操作。

但是我们在之前的学习中知道,当我们要进行文件操作时,首先要打开文件,然后再进行文件操作,再关闭文件。

那为什么我们没有打开键盘文件和显示器文件就可以使用呢?

其实系统在我们刚开始的时候就替我们打开了一些文件,这些文件是比较常用的,不需要自己打开,当遇到其他文件操作时,我们就需要自己打开了。这就像在C语言中,编译器默认打开了stdin、stdout、stderr这三个文件。

3.1输出重定向 

我们刚才的echo是向屏幕上打印字符串,其实它是先将字符串写入到了显示器文件中,再由显示器文件将其打印到屏幕上。

所以echo默认就是将数据写入到屏幕文件中

我们可以利用>(大于号)进行输出重定向,即echo本来是输出到显示器文件中,我们可以改变其默认的输出位置为我们指定的文件:

echo "字符串" > dstfile

 我们看到,当我们直接使用echo时,就会将字符串打印到屏幕上。但是当我们使用输出重定向时,它就不会再向屏幕上打印内容了,而是将数据写入到了我们指定的文件。

我们来看一下该文件的内容:

我们看到,字符串确实被写到了该文件中。我们可以借助图来理解输出重定向:

 之所以会这样是因为我们利用>(大于号)改变了echo的默认输出文件。该输出重定向有两个特性:

  1. 若后续文件不存在,则以该文件名新建文件,然后写入
  2. 若文件存在,先清空文件内容,然后写入

 验证1:

 该目录下本来没有123.txt文件,我们借助输出重定向就可以创建一个新文件,并写入数据。

验证2:

该文件我们向里面写入了hello world,然后我们在利用输出重定向时,就会先将里面的数据清空,然后再写入。

那我们想一下:我们用echo是默认向文件里面写数据,那么我们可不可以不写呢?直接进行重定向操作呢?

#> dstfile

从图中我们就可以得出结论,我们可以直接进行重定向操作,所以我们就可以直接借助>(大于号)来创建文件。 

3.2追加重定向

输出重定向会将文件内容清空再写入,那如果我们不想让其清空,而是追加呢?

#echo "hello world" >> dstfile

利用>>就可以实现追加的操作: 追加重定向时文件的内容就不会被清空了,而是直接向文件中追加。

四.文件类型

以下面的开头为区分文件的依据:

  • -:普通文件,例如:.txt、.c、.cpp、音频、视频、可执行等等
  • d:目录文件
  • c:字符文件,键盘、显示器,终端,输入的数据具有顺序性
  • b:块设备文件,磁盘
  • l:连接文件
  • p:管道文件

需要注意的是:普通文件不看后缀来区分,而是靠开头的-,但是这是对于系统来说的,对于其他工具来说,它就要看后缀来操作其对应的普通文件。 

五.cat指令 

cat指令的功能是:链接文件并打印文件内容到标准输出(屏幕)。 简单来说就是将文件内容打印到屏幕上,但是cat只适合查看短文件。

cat指令还有一个有用的选项-n,效果是显示行号

tac指令:tac的功能是倒着打印文件内容

5.1输入重定向 

输入重定向的符号为<(小于号):

#cat < dstfile 

它的解释为:将dstfile打开,作为cat的输入,如果dstfile为空,则以标准输入为cat的输入。

自己理解为:cat也是一个文件,输入重定向就是将dst打开写入到cat文件中,如果没有dst,则cat就从标准输入获取数据即键盘文件。

当从标准输入获取数据时,我们每输入一次,就会回显一次。

那么有个问题:

#cat 123.txt

#cat < 123.txt 

这两个的结果好像是一样的,那么二者有没有区别?

答案是有的,但是目前还无法理解,我们可以先记住二者有区别。

六.more指令

more指令的功能类似于cat,也是查看文件。more更适合查看那些大文件。

在软件领域、大型项目等都有日志,日志就是一个的文件,我们此时就可以借助more来查看该日志文件。

# more /var/log/messages

//按q退出more

 当我们用more查看日志时或者大文件时,就会自动展开一页,然后按enter可以往下翻。但是当你把某一条翻过去之后想在返回去看是不可以的,more只能往下翻,不能往回翻。

more还有搜索功能,当我们进入more之后,输入/以及要搜索的字符串,more就会跳转到开头含有该字符串的位置

七.less指令 

less的功能类似于more,但是比more更强大,less可以随意浏览文件,而more只能往下翻,不能往上。而且less在查看之前不会加载整个文件

  • less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大
  • less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看
  • 但若使用了 less 时,就可以使用 [pageup][pagedown] 等按键的功能来往前往后翻看文件,更容易用 来查看一个文件的内容!
  • 除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。

#less dstfile

//按q退出

//搜索前要输入/ 

 我们在使用less时可以利用上下键来实现随意查看,也可以进行搜索,方式与more的搜索方式相同:在文件中搜索开头含指定字符串的信息并跳转到该信息处,并且会高亮提示。按enter可以跳到下一个含有该字符串开头的位置。

 八.head指令

 head指令就是显式文件的前一部分/指定行数到标准输出,默认打印该文件的前10行到标准输出。

#head -[行号] dstfile

//行号可输可不输

九.tail指令

tail指令和head指令是一对兄弟指令,head是查看文件的前10行,tail默认查看文件的后10行。

 #tail -[行号] dstfile

//行号可输可不输

十.组合指令 

我们前面已经了解了那么多的查看文件的指令,但还是不够实用,如果我要查看文件的500~510行的内容呢?

这里我们就可以使用组合指令来实现:

#cat /var/log/messages | head -510 | tail -10

我们来分析一下这段指令:首先cat /var/log/messages是将文件内容显示在屏幕上,但是我们后面加了‘|’,这个是管道文件,我们先将要显示的文件放入到管道文件中,然后对管道文件执行head -510,将该文件的前510行取出再放入到管道文件中,接着继续对管道文件执行tail -10指令,取出管道文件的后10行,这样不就拿出了原文件的500~510行的内容么!!

十一.时间相关的指令

11.1date指令

date指令就是显式时间,但是要指定格式:

#date +(格式) 

  • %H : 小时(00..23)
  • %M : 分钟(00..59)
  • %S : 秒(00..61)
  • %X : 相当于 %H:%M:%S
  • %d : 日 (01..31)
  • %m : 月份 (01..12)
  • %Y : 完整年份 (0000..9999)
  • %F : 相当于 %Y-%m-%d 

 

格式之间可以用符号隔开。 

11.2时间戳 

时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒,因为有时差)起至现在的总秒数

时间戳具有多种作用,包括但不限于以下几个方面:

  1. 事件排序和比较:时间戳可以用于标记事件的发生顺序,比较事件的时间先后,以便进行排序和分析。

  2. 数据唯一标识:时间戳可以作为数据的唯一标识,确保每条数据具有唯一的标识符,方便在数据库或系统中进行查询和操作。

  3. 缓存和更新:时间戳可以用来判断数据是否已过期或需要更新,比如在缓存系统中,通过比较时间戳可以确定缓存是否需要重新获取最新数据。

  4. 安全验证:时间戳可以用于验证数据的完整性和真实性,比如在数字签名和加密算法中,时间戳可以用来确保数据未被篡改或伪造。

  5. 数据同步和复制:时间戳可以用于数据同步和复制,通过比较时间戳来确定哪些数据需要复制或同步到其他系统或设备。

  6. 日志记录和审计:时间戳可以用来记录事件的发生时间,方便后续的日志分析、故障排查和安全审计。

  7. 多时区处理:时间戳可以用来处理多时区的时间差异,通过统一的时间戳标准,可以准确地将不同时区的时间转换为统一的格式。

总的来说,时间戳在计算机科学和信息技术中扮演着重要的角色,用于标识、排序、比较和分析事件的时间信息,以及在数据处理和安全验证等方面起到关键作用。

 1.时间->时间戳

#date +%s

2.时间戳->时间

#date -d@时间戳

11.3cal指令 

cal命令可以用来显示公历(阳历)日历。公历是现在国际通用的历法,又称格列历,通称阳历。“阳历”又名“太阳 历”,系以地球绕行太阳一周为一年,为西方各国所通用,故又名“西历”。

 


完! 

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

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

相关文章

从Zotero6到Zotero7的数据迁移尝试?(有错勿喷,多多指教!)

从Zotero6到Zotero7的数据迁移尝试 0 前言 之前在主机上一直用的Zotero6&#xff08;实验室主机&#xff09;&#xff0c;最近发现在个人笔记本上看论文更频繁&#xff0c;尝试重新部署Zotero&#xff0c;才发现竟然更新了&#xff01;所以这里简单记录一下数据迁移过程&…

水厂中的反冲洗工艺

滤池作为水厂的重要的处理单元之一,滤池的形式多种多样,但其截留水中杂质的原理基本相同。我们以常见的V型滤池为例,介绍一下水厂中的反冲洗工艺。 V型滤池是快滤池的一种形式,因为其进水槽形状呈V字形而得名,也叫均粒滤料滤池(其滤料采用均质滤料,即均粒径滤料)、六阀滤…

代码随想录算法训练营第14天|226. 翻转二叉树、101. 对称二叉树、104. 二叉树的最大深度、111. 二叉树的最小深度

目录 226. 翻转二叉树1、题目描述2、思路3、code&#xff08;后序递归&#xff09; 101. 对称二叉树1、题目描述2、思路3、code 104. 二叉树的最大深度1、题目描述2、思路3、code 111. 二叉树的最小深度1、题目描述2、思路3、code 226. 翻转二叉树 题目链接&#xff1a;link …

2024年最新软件测试学习路线图(从入门到精通)

六维全息课程注重综合能力培养&#xff0c;从入学到职后一站式服务测试开发人才。2024年最新软件测试学习路线图&#xff0c;从入门到精通一应俱全。 9阶段专业课11大专项测试项目 适应互联网企业测试开发需求。 对于想入行学软件测试的新手来说&#xff0c;首先就需要一个高效…

GESP等级考试 C++二级-if语句

if语句是C中的选择语句&#xff0c;通过if语句程序可以在一种可能、二种可能或者多种可能中做出选择&#xff0c;对于不同的可能进行不同的处理。 1 一种可能 使用if语句对一种可能进行处理的格式如下所示&#xff1a; if (表达式) {语句; } 其中&#xff0c;if后面跟一个圆…

预报名来啦!25届考研所有重要时间节点和注意事项一览

预报名即将开始&#xff0c;学姐给大家准备了&#xff0c;详细的报考流程及常见问题&#xff0c;每年都有学生因为报名出问题导致没法参加考试&#xff0c;大家一定要认真对待哦~ 一.报名时间及流程 01 预报名时间 2024年9月24日至9月27日&#xff0c;9:00—22:00 02 预报名…

高校课堂教学管理系统小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;学生管理&#xff0c;教师管理&#xff0c;课程分类管理&#xff0c;课程资源管理&#xff0c;互动论坛&#xff0c;系统管理 微信端账号功能包括&#xff1a;系统首页&#xff0c;课程资源&#xff0…

HarmonyOS ArkUI 构建布局

文章目录 一、构建布局1.线性布局 (Row/Column)1.1 Blank空白填充组件1.2 layoutWeight 自适应缩放1.3 自适应延伸 2.弹性布局 (Flex)3.栅格布局 (GridRow/GridCol)3.创建列表 (List) 一、构建布局 1.线性布局 (Row/Column) 线性布局文档 通过线性容器Row和Column构建 Column…

QT之QML学习五:添加自定义Qml组件,以及组件管理

开发环境: 1、Qt 6.7.2 2、Pyside6 3、Python 3.11.4 4、Windows 10 重要的事情说三遍,使用自定义qml参考链接: Qt官网参考网址!!! 重要的事情说三遍,使用自定义qml参考链接: Qt官网参考网址!!! 重要的事情说三遍,使用自定义qml参考链接: Qt官网参考网址!!!…

怎么看待伦敦银交易的风险与收益?

伦敦银交易的风险与收益&#xff0c;在宣传材料中&#xff0c;伦敦银是一种潜在收益很高&#xff0c;潜在风险不大的品种。然而在实践中我们发现&#xff0c;伦敦银交易好像并不如宣传材料说的那样容易做。那么&#xff0c;具体伦敦银交易的风险和收益是怎么样的&#xff1f;那…

Python:只需20行代码,一键下载网络热门短剧,简直不要太爽!

网络短剧铺天盖地&#xff0c;主打的就是一个爽字&#xff0c;但有有些博主就是不当人&#xff0c;喜欢一剪没&#xff0c;正当我们看的津津有味的时候&#xff0c;进度条却到底了&#xff01;&#xff01;&#xff01; 对于大家来说&#xff0c;想看续集&#xff0c;都是全凭实…

力扣第560题 和为k的子数组

前言 记录一下刷题历程 力扣第560题 和为k的子数组 和为k的子数组 原题目&#xff1a;给你一个整数数组 nums 和一个整数 k &#xff0c;请你统计并返回 该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续非空序列。 示例 1&#xff1a; 输入&#xff1a;nums …

源码分析:LinkedList

一、LinkedList 简介 LinkedList 是一个基于双向链表实现的集合类&#xff0c;经常被拿来和 ArrayList 做比较。 不过&#xff0c;我们在项目中一般是不会使用到 LinkedList 的&#xff0c;需要用到 LinkedList 的场景几乎都可以使用 ArrayList 来代替&#xff0c;并且&#x…

7-8 哈利·波特的考试

题意简述&#xff1a; 给一个图&#xff0c;求一个点&#xff0c;该点离其他点最小距离的最大值 最小。 输入样例: 6 11 3 4 70 1 2 1 5 4 50 2 6 50 5 6 60 1 3 70 4 6 60 3 6 80 5 1 100 2 4 60 5 2 80输出样例: 4 70 注意&#xff1a;0x3f不能写在判断里面&#xff0c;…

【大模型训练】Flash Attention详解

文章目录 前言预备知识FlashAttention1传统Attention计算方式FlashAttention1的基本原理除去Softmax操作的分块计算Softmax分块计算Attention分块计算 FlashAttention2参考资料 前言 FlashAttention系列工作&#xff0c;是一种加速注意力计算方法&#xff0c;目前已经应用在&a…

解决TensorFlow-GPU安装错误:Python版本兼容性与环境配置问题

创作不易&#xff0c;您的打赏、关注、点赞、收藏和转发是我坚持下去的动力&#xff01; 从错误信息中可以看到&#xff0c;tensorflow-gpu 安装时出现了 packaging.requirements.InvalidRequirement 错误&#xff0c;具体是因为解析 Python 版本时出现了问题。这通常是由于环…

OpenAI全新发布o1模型:开启 AGI 的新时代

OpenAI全新发布o1模型&#xff1a;开启 AGI 的新时代 欢迎关注【youcans的AGI学习笔记】原创作品 2024年9月13日&#xff0c;OpenAI新模型o1 正式发布。o1 在测试化学、物理和生物学专业知识的基准 GPQA-diamond 上&#xff0c;全面超过了人类博士专家。 OpenAI 宣称&#xff…

CANFD芯片应用中关键功能和性能指标分析

CAN FD芯片通信速率高达5Mbps&#xff0c;需要线缆少传输距离较远&#xff0c;在汽车、工业、宇航、能源等领域应用越来越广。 1&#xff09;汽车工业&#xff1a;汽车内部电子系统日益复杂&#xff0c;需要高速、可靠的数据传输来确保车辆的安全和性能。CAN FD通信提供了更高…

R数据对象快速保存与读取:qs包

qs&#xff1a;R对象的快速序列化 qs是一个R语言包&#xff0c;使用qs可以快速地从磁盘中保存和读取对象。** 它的主要目的是替换R中的saveRDS和readRDS函数&#xff0c;提供了一个更加快速而完整的数据读写方法。 ** 受到fst的启发&#xff0c;qs通过lz4/zstd库使用了类似的块…

人工智能和机器学习:探讨人工智能和机器学习的最新发展、应用、挑战和未来趋势

人工智能和机器学习是当前科技领域的热点话题&#xff0c;其最新发展、应用、挑战和未来趋势备受关注。 最新发展&#xff1a; 人工智能和机器学习技术在近年来得到了快速发展&#xff0c;尤其是深度学习技术的广泛应用。例如&#xff0c;深度学习在图像识别、语音识别、自然语…