Linux中的简单命令2

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

 


完! 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

常耀斌:AI赋能企业数字化转型(清华社发行)

新书地址&#xff1a; 清华出版社&#xff1a;清华大学出版社-图书详情-《AI赋能企业数字化转型》 京东&#xff1a;《AI赋能企业数字化转型 常耀斌 清华大学出版社 9787302669081》【摘要 书评 试读】- 京东图书 内容简介&#xff1a; 在数字经济时代&#xff0c;企业发…

【Linux:命名管道】

命名管道原理&#xff1a; 每一个进程都有独立的struct files_struct和struct file文件属性集合和操作集只存储一份&#xff0c;因为属性集合和操作集每个文件都差不多一样两个进程读写都在同一个内核缓冲区就可以实现进程间通信 数据写入缓冲区后还需要将数据刷新到磁盘中&…

springboot+mybatis+mysql仿百度网盘系统2.0

springbootmybatismysql仿百度网盘系统2.0 一、系统介绍二、功能展示1.用户登陆2.主页3.全部文件4.文件上传5.文件分享6.文件分类 三、其它1.其他系统实现 一、系统介绍 系统主要功能&#xff1a; 普通用户&#xff1a;用户登陆、主页、全部文件、上传文件、文件分类、文件分部…

什么是上拉,下拉?

上拉就是将引脚通过一个电阻连接到电源&#xff0c;作用&#xff1a;1.使IO口的不确定电平稳定在高点平&#xff0c;2、为了增加IO口拉电流的能力。 下拉就是将引脚通过一个电阻与GND相连&#xff0c;作用&#xff1a;1.从器件输出电流 2.当IO口为输入状态时&#xff0c;引脚的…

[git] MacBook 安装git

文章目录 1.Mac Git 安装2. 开发者工具安装 CommandLineTools安装完成&#xff0c;错误解决 3. git 账户配置账户设置生成秘钥git 或者 gitee 仓库添加公钥查看全局账户命令多账户设置config文件测试连接clone到本地 1.Mac Git 安装 Mac一般自带Git工具&#xff0c;也就是说已…

yolov5明厨亮灶检测系统,厨师帽-口罩检测,带pyqt界面-可检测图片和视频,支持中文标签,检测接口已封装好并优化,代码可读性强!

明厨亮灶检测系统是一个专门用于餐饮业厨房安全监管的智能系统。该系统结合了先进的计算机视觉技术&#xff0c;尤其是使用YOLOv5模型进行厨师帽和口罩的实时检测&#xff0c;并通过PyQt5构建了一个用户友好的图形界面。该系统不仅能够检测图片和视频中的目标&#xff0c;而且支…

仪表盘检测系统源码分享

仪表盘检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Visio…

C++初阶大全

目录 一.命名空间 1.命名空间定义 2.命名空间使用 二.C输入&输出 三.缺省参数 四. 函数重载 五.引用 1.常引用 2.传值、传引用效率比较 3.引用和指针的区别 4.引用和指针的不同点: 小知识点: 六.内联函数 七.auto关键字(C11) 1.auto的使用细则 八.基于范围…

Rust练手项目,写个有趣的小工具定时从一言网获取一段有趣的话并推送通知

Rust练手项目&#xff0c;写个有趣的小工具 代码 继续练习Rust, 写个小工具定时从一言网获取一段有趣的话并提示&#xff0c;如下 练习以下Rust点 并发编程 Mutex, Arc指针使用HTTP请求Windows Gui 代码 Cargo.toml [package] name "funny_word" edition "20…

vscode中如何配置c/c++环境

“批判他人总是想的太简单 剖析自己总是想的太困难” 文章目录 前言文章有误敬请斧正 不胜感恩&#xff01;一、准备工作二、安装 VSCode 插件三、配置 VSCode1. 配置编译任务&#xff08;tasks.json&#xff09;2. 配置调试器&#xff08;launch.json&#xff09; 四、运行和调…

数据结构(Day14)

一、学习内容 结构体 概念 引入&#xff1a;定义整数赋值为10 int a10; 定义小数赋值为3.14 float b3.14; 定义5个整数并赋值 int arr[5] {1 , 2 , 3 , 4 ,5}; 定义一个学生并赋值学号姓名成绩 定义一个雪糕并赋值名称产地单价 问题&#xff1a;没有学生、雪糕 数据类型 解决&…

【C/C++】程序的构建(编译)过程概述

&#x1f984;个人主页:小米里的大麦-CSDN博客 &#x1f38f;所属专栏:C_小米里的大麦的博客-CSDN博客 &#x1f381;代码托管:C: 探索C编程精髓&#xff0c;打造高效代码仓库 (gitee.com) ⚙️操作环境:Visual Studio 2022 目录 一、前言 二、预处理&#xff08;Preprocessi…

C# USB通信技术(通过LibUsbDotNet库)

文章目录 1.下载LibusbDotNet库2.引入命名空间3. 实例化USB设备4.发送数据5.关闭连接 1.下载LibusbDotNet库 右击项目选择管理NuGet程序包在弹出的界面中搜索LibusbDotNet&#xff0c;然后下载安装。 2.引入命名空间 using LibUsbDotNet; using LibUsbDotNet.Main;3. 实例化…

MoneyPrinterTurbo 安装使用流程

项目地址&#xff1a; https://github.com/harry0703/MoneyPrinterTurbo 开发环境&#xff1a;mac 1 git 下载 # 下载代码到本地 git clone https://github.com/harry0703/MoneyPrinterTurbo.git cd MoneyPrinterTurbo2 docker 配源 在 docker 安装目录执行以下命令显示隐藏…

《Nginx核心技术》第17章:使用自签CA配置HTTPS加密反向代理访问

作者&#xff1a;冰河 星球&#xff1a;http://m6z.cn/6aeFbs 博客&#xff1a;https://binghe.gitcode.host 文章汇总&#xff1a;https://binghe.gitcode.host/md/all/all.html 星球项目地址&#xff1a;https://binghe.gitcode.host/md/zsxq/introduce.html 沉淀&#xff0c…

3.Java高级编程实用类介绍(一)

三、Java高级编程实用类介绍(一) 文章目录 三、Java高级编程实用类介绍(一)一、枚举类型二、包装类三、Math 一、枚举类型 使用enum进行定义 public enum 枚举名字{值1,值2.... }二、包装类 每个基本类型在java.lang包中都有一个相应的包装类 /** new包装类&#xff08;字符…

华硕产品资料的查询方法

华硕网站有些奇怪&#xff0c;比如我要查询x99-pro这款已经停售的主板的资料&#xff0c;在它的首页搜索&#xff0c;搜索结果为空&#xff1a; 然后在服务支持和下载中心&#xff0c;同样搜不到。 经高人指点&#xff0c;用下面的方法&#xff0c;可以搜到&#xff1a; https…

C++ char*和char[] 可能指向的内存区域详解(附实验)

C char* 指向的内存区域详解 写在前面c内存结构简介指针常量和常量指针简介情况一&#xff1a;char* 指向栈区内容情况二&#xff1a;char* 指向堆区内容情况三&#xff1a;char* 指向常量区内容情况四&#xff1a;char* 指向静态区内容情况五&#xff1a;char* 指向全局区内容…

mysql 8.0 时间维度表生成(可运行)

文章目录 mysql 8.0 时间维度表生成实例时间维度表的作用时间维度表生成技术细节使用时间维度表的好处 mysql 8.0 时间维度表生成实例 时间维度表的作用 dim_times&#xff08;时间维度表&#xff09;在数据仓库&#xff08;Data Warehouse&#xff09;中的作用至关重要。作为…

Vite + Electron 时,Electron 渲染空白,静态资源加载错误等问题解决

问题 如果在 electron 里直接引入 vite 打包后的东西&#xff0c;那么有些资源是请求不到的 这是我的引入方式 根据报错&#xff0c;我们来到 vite 打包后的路径看一看 &#xff0c;修改一下 dist 里的文件路径试了一试 修改后的样子&#xff0c;发现是可以的了 原因分析 …