Linux·基本指令(下)

1. mv 指令 (move)

        语法:mv[选项] 源文件或目录 目标文件或目录

        功能:将源文件或目录剪贴到一个新位置,或给源文件或目录改名但不会改变其内容

        常用选项:

        -f :force 强制,如果目标文件已经存在,不会询问而直接覆盖

        简单来讲,不管前面的 src 是文件或是目录,如果后面的 dst 是文件那么就是重命名src,如果是目录就是将src剪切到该目录下

                

        可以看到,我首先创建了目录dir和文件test.c,之后在红框中给他们改名,在绿框中将文件剪切到dir1目录中。当然目录也可以连带其下所有文件都剪切到另一个目录中,只是这里我没有演示。在给移动到的路径的时候同时还可以重命名。

2. cat 与 tac 指令

        语法:cat [选项] [文件]

        功能:查看目标文件的内容

        常用选项:

                -b 对非空输出行编号
                -n 对输出的所有行编号
                -s 不输出多行空行

        这个指令很简答,我们上节已经用过了,这里就不展示了,大家可以去试试它的几个选项。

        如果cat后面什么也不跟,那就是输入什么就打印出什么。

        tac指令就是以行为单位,逆序打印文件。

3. Linux重定向技术

        首先我们要明确一个概念:Linux下一切皆文件。就是说我们的显示器,键盘都被当做文件来看待,scanf / cin 就是从键盘文件读取数据,printf / cout 就是向显示器文件写入,这些交互命令都是在文件之间进行交互的方案。

echo 指令

        echo指令就是向显示器文件写入,最后会自带一个换行符。

        

        那么既然echo可以向显示器文件写入,那能不能向其他文件写入呢?

3.1 输出重定向

        输出重定向就可以解决上面哪个问题,将本来要输出到显示器文件的内容,重定向输出到别的文件中去。

        语法:> 文件名

        

        红框是输出重定向的命令,我们发现那一大堆 a 并没有像之前那样写入到显示器文件中,而是在当前目录下新建了一个 test.txt 文件并写入了。也就是说,将本来要写入显示器文件的内容,重定向到了一个新的文件中去了。

        刚才是对一个不存在的文件进行输出重定向,那么如果对一个已经存在的文件进行输出重定向会是什么效果?

        

        可以看到输出重定向每次写入,都要将老的内容清空,然后再从头写入。

        那么我们可以利用输出重定向的这个特性做点有意思的事情。

        

        1. 当输出重定向一个已存在文件时,可以在不进入这个文件的情况下,清空这个文件。

        2. 当输出重定向一个不存在文件时,可以起到新建空文件的效果,而不用touch了。

3.2 追加重定向

        如果不像在加入内容的时候将文件清空,那么我们就可以采取追加重定向的方案。

        语法:>> 文件名

        

        可以看到追加 bb 的时候并没有删掉 aa ,同时如果不想用echo那个自动补在最后的换行符,可以用printf追加,当然,printf 写的内容也可以搞上转义字符 \n 起到换行效果。

3.3 输入重定向

        语法:< 文件名

        前面cat的时候我们提到过,如果cat后面什么都不跟,就是默认从键盘输入,然后输出到显示屏上,也就是所谓输入什么就在显示屏上输出什么。

        那么此时我们可以用输入重定向,让 cat 不从键盘输入,而是从某个文件输入,然后输出到西显示屏上。

                

        这段命令中cat后面什么文件也没有,那么就是默认的从键盘输入,然后输出到显示屏,如果此时不想再输入了,就可以 ctrl+d 或 ctrl+c 退出。

                

        上面这段命令中,我们先给之前的new.txt文件追加一个 ee换行 然后用输入重定向的方案用cat 打印到屏幕上

        

4. less 指令

        语法:less [选项] 文件

        功能:less可以通过上下键随意浏览文件,还具备文件中的关键字搜索功能

        选项:

                -i 忽略搜索时的大小写
                -N 显示每行的行号
                /字符串:向下搜索“字符串”的功能
                ?字符串:向上搜索“字符串”的功能
                n:重复前一个搜索(与 / 或 ? 有关)
                N:反向重复前一个搜索(与 / 或 ? 有关)
                q:quit

        我们先输入这样一段代码脚本,创建了一个10000行的大文件

        此时如果用cat去展示这个文件,结果就是会刷屏,一直刷到展示完整个文件

                                

        但此时如果我们用less去打开这个文件,就会从第一页开始展示,然后可以通过键盘上下键来逐行移动

                        

        最下面那个冒号是可以通过输入 / 或 ?来搜索文件中的匹配内容,搜索到后还可以通过 小写n 和 大写N 来向下或向上继续查找

        最后不想看了可以 q 退出,当然具有less相似功能的还有more指令,但是比起less来太矬了。总结一下,小文件可以用cat展示,大文件可以用less展示。

5. head tail 与 管道 |

        如果我们只想看一个文件的前几行或者后几行就可以用head和tail指令

                

        可以看到,这里都是默认打印出前10行,或后10行,但是我们也可以控制打印几行

                

        那如果我想看 [ 5000 , 5010 ] 区间内这11行数据呢?

        此时可以利用管道 |

        | 就是管道的命令,我们之前说过Linux下一切皆文件,管道也是一种文件。这段命令的含义就是先将绿框命令所生成的文件(打印出1-5010行)放到管道中,然后把管道中的内容交给橙框中的命令生成最终文件,也就是打印出 1-5010行 中的最后 11行。

        管道其实就像是一种命令生成文件的加工流水线,这个管道想弄多长就弄多长

        最后 wc 命令 是word count字符统计的意思 -l 就是统计有多少行

6. 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

        date如果不加控制的话,是英式的时间显方法,我们中国人看起来很别扭。所以我们可以通过选项指令自定义date的显示方案,并且还可以自定义分隔符,如果想用空格分隔的话不能直接输空格,要转义一下 \空格

        下面介绍一下时间戳,在互联网还没有发展起来的时候,各地都有时差,但是因为通信速度的限制,各地区之间的交互并不多,因此时差的影响也相当小。但是互联网时代的兴起,信息通讯的加速,各地区之间的通讯因时差出现了很大的漏洞。那么后来有人在英国格林尼治开了个会,规定 1970年1月1日 0时0分0秒 为时间戳起点 0 自那时起每过一秒,时间戳就 +1,于是自那时起世界时间就有了一个统一的标准。

        我们可以打 +%s 打印一下当前的时间戳看看

        同时时间戳还可以用 -d @时间戳的方式解意出来,那么我们发现时间戳为0的时候是8点而并不是0点,这是为什么?是因为中国通用的北京时间与英国格林尼治时间有8小时的时差,这个时差系统已经换算进去了。

        时间戳的一大重要用途就是写文件日志时记录时间使用。

7. cal 指令

        语法:cal [选项] [月份] [年份]

        功能:查看日历信息,如果只有一个参数表示年份,如果有两个参数表式月份和年份        

        选项:

                -3 显示系统前一个月,当前月,下一个月的月历
                -j 显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)
                -y 显示当前年份的日历

                

        抛去这个命令看起来很帅不谈,它实际上没有作用了。

8. find 指令

        语法:find 路径 -选项

        功能:find的选项众多,都列出来不可能,可以自行到man里面查找,其基本功能是在文件树中查找文件,并作出相应的处理

        常用选项:

                -name 文件名(按文件名查找文件)

                -o or或者

        

9. which 与 指令

        which是专门用来查找指令文件的指令,比如我们which几个指令

        可以看到指令们也是有路径,有位置的,我们打开这个位置

        可以发现指令其实就是一些 bin路径 下的一堆二进制文件,所以说,指令并没有多神奇,它就是一些文件,在使用的时候会去调用这些文件,只不过这些放在 bin路径 下的文件调用的时候不用指定路径罢了,或者指定路径的话我们也可以正常调用这些指令文件

        红色框中是两种方法运行指令文件,显然指定路径的调用指令文件的方案很麻烦。之后橙色框中我们回到了lesson3路径下,并且编译了一个打印 hello world 的程序,并起名 hellocmd ,但是这种状态下的可执行文件只能通过指定路径的方式使用。但是当我们把这个可执行文件拷贝进 bin 目录下之后一切就不一样了,hellocmd变成了我们自创的指令了,不需要指定路径就可以调用了。

        说了这么多,主要就是解释普通二进制可执行文件,和bin路径下的二进制可执行文件的区别。说实话区别并不大,只是bin路径下的二进制可执行文件不需要指定路径,系统会自己进bin去找,因此我们把这种不需要显示写出路径的可执行文件颁了个奖叫"指令"。

        

9.1 命令别名 alias

        我们前面在which指令的时候会发现比如 ls 描述有 alias 一堆,这其实是描述ls别名的意思

        我们看上面这一段指令,之间 ls 的时候打印出来的文件有颜色区分,但是通过路径调用的 ls 没有颜色区分。实际上这就是 ls 命令被起了别名的效果,当我们使用 ls 命令的时候,执行的指令是 ls --color=auto 指令,当我们在用路径调用的时候后面再加上这给color命令也会有颜色区分文件的效果。

        实际上我们自己也可以用 alias 给命令自定义设置别名

        ahaha就是我们自定义设置的别名,并且它被放在了存放指令文件的目录下。但是这个我们自定义的别名是内存级的别名,当我们退出系统重进后,这个自定义的别名就没有了。

        这也是为什么我经常使用 ll 来代替 ls -l 的原因。

10. grep指令

        语法:grep [选项] 搜寻字符串 文件

        功能:在文件中搜索字符串,将找到的行打印出来,行文本过滤工具

        常用选项:

                -i :忽略大小写的不同,所以大小写视为相同
                -n :顺便输出行号
                -v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行

          

11. zip unzip指令

        zip相信大家都不陌生了,就是打包压缩的意思,unzip就是解压

        语法:zip 文件名.zip 要压缩的目录或文件

                   unzip 文件名.zip (解压到当前目录)

                   unzip 文件名.zip -d 目录 (解压到指定目录)

        常用选项:

                -r 压缩目录的时候如果不选择递归压缩,它就只会压缩目录本身,而不带上目录下的文件

        如果zip/unzip不能用,就是没安装,yum  install -y zip unzip 安装一下就好

        

        现在我们已经将lesson3目录递归压缩好了,下面我们将压缩包 -d 解压到test目录下

        

        这样,我们就将压缩包中的内容完整解压到了test目录下。

11.1 sz rz Linux与Windows间文件传递

        我们安装命令 yum install -y lrzsz ,其中sz可以从Linux中传文件到Windows中,rz可以从Windows中选择文件传到Linux中。

        我们选择传到桌面上,之后就可以在Windows的桌面上看到这个压缩包

        打开之后该有的东西也都有,rz的使用方法同理,系统会让你选择从Windows中传过来的文件。

12. tar 指令

        语法:tar [-选项] 目标文件或目录 源文件或目录

        常用选项:

                -c :建立一个压缩文件的参数指令(create 的意思);
                -x :解开一个压缩文件的参数指令!
                -t :查看 tarfile 里面的文件!
                -z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
                -j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
                -v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
                -f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!
                -C : 解压到指定目录

        tar压缩方案对应的文件后缀应该为 .tar.gz 下面我们使用的时候可以简写成 .tgz。我们在压缩的时候选择 czf 三个选项,c是指我要建立一个压缩文件,一会压缩的东西就放到这里面,z可以理解成需要压缩,f是后面紧跟压缩文件的文件名。

        如果再选上v的话就会把打包的过程也打印出来。

        

        tar解压缩的我们选 xzf 这样是直接解压到当前目录下,还可以用C(大写)指定目录,就像unzip中的-d一样

13. bc 指令

        这个指令就是Linux中的一个计算器

        输入bc进入计算机页面

        然后我们可以随意计算

        这个计算器可以通过管道帮我们进行计算

                

14. uname -r查询内核版本

        计算机的体系结构指的是芯片的架构,我们一般使用的芯片架构都是x86的,这种架构又被称为amd,移动设备比如手机一般用的是arm架构。

        如果在查自己计算机的体系结构时,如果只查到了x86,说明这个计算机的芯片是32位的,不过现在的一般都是x86_6这种CUP架构是64位的。

        uname -r 可以直接输出内核版本

                        

15. shutdown 关机

        语法: shutdown -[选项]

        常用选项:

                -h :将系统的服务停掉后,立即关机

                -r :在系统的服务停掉后就立即重启

                -t sec :sec是秒数,在几秒后关机

        如果你的操作系统在云服务器上的话开机也要在相应云服务器上开机。

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

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

相关文章

HCIE-AI大模型直通车火热报名中

第一阶段&#xff1a;HCIA-AI Solution Architect&#xff08;直播&#xff0c;39课时&#xff09; 该阶段详细介绍 AI 大模型所需基础技术栈&#xff0c;包含深度学习基础、计算机视觉技术、自然语言处理技术、华为开源深度学习框架 MindSpore、注意力制、Transformer 架构&am…

Spock单元测试框架使用介绍和实践

背景 单元测试是保证我们写的代码是我们想要的结果的最有效的办法。根据下面的数据图统计&#xff0c;单元测试从长期来看也有很大的收益。 单元测试收益: 它是最容易保证代码覆盖率达到100%的测试。可以⼤幅降低上线时的紧张指数。单元测试能更快地发现问题。单元测试的性…

【spring boot】初学者项目快速练手

一小时带你从0到1实现一个SpringBoot项目开发_哔哩哔哩_bilibili 一、简介 二、项目结构 三、代码结构 1.生成框架 Spring Initializr 快速生成一个初始的项目代码&#xff0c;会生成一个demo文件 打开intellj idea&#xff0c;导入demo文件 2.目录结构 源码都放在src-ma…

“论软件维护方法及其应用”精选范文,软考高级论文,系统架构设计师论文

论文真题 软件维护是指在软件交付使用后&#xff0c;直至软件被淘汰的整个时间范围内&#xff0c;为了改正错误或满足 新的需求而修改软件的活动。在软件系统运行过程中&#xff0c;软件需要维护的原因是多种多样的&#xff0c; 根据维护的原因不同&#xff0c;可以将软件维护…

Lua基础知识入门

1 基础知识 标识符&#xff1a;标识符的定义和 C语言相同&#xff1a;字母和下划线_ 开头&#xff0c; 下划线_ 大写字母一般是lua保留字&#xff0c; 如_VERSION 全局变量&#xff1a;默认情况下&#xff0c;变量总是认为是全局的&#xff0c;不需要申明&#xff0c;给一个变…

电脑压缩视频文件 电脑压缩视频大小的方法

在数字化时代&#xff0c;视频已成为我们记录生活、分享快乐的重要工具。然而&#xff0c;大尺寸的视频文件常常让分享和存储变得棘手。如何在保持视频画质的前提下&#xff0c;轻松减小视频文件大小&#xff1f;今天&#xff0c;就让我们一起探索苹果电脑上的几种高效视频压缩…

HP Superdome2小型机监控指标解读

监控易是一款专注于IT基础设施监控的软件&#xff0c;能够实时监控服务器的各项性能指标&#xff0c;确保服务器的稳定运行。针对HP Superdome2小型机&#xff0c;监控易通过IPMI和网页抓取数据的方式&#xff0c;监测包括服务器温度、风扇及电压等在内的关键指标&#xff0c;为…

Postfix+Dovecot+Roundcube开源邮件系统搭建系列1-2:系统搭建目标+MariaDB数据库配置(MySQL)

1. 系统搭建目标 通过本系列文章&#xff0c;最终可以部署一套提供如下服务的邮件系统&#xff1a; SMTP服务&#xff1a;由Postfix提供&#xff0c;监听25、465、587端口。POP3服务&#xff1a;由Dovecot提供&#xff0c;监听110、995端口。IMAP服务&#xff1a;由Dovecot提…

Java基础笔记(面试题)

一、Tomcat中为什么要使用自定义类加载器 Tomcat中可以放多个Java项目的jar文件&#xff0c;如果每个jar文件中都有一个User的类&#xff0c;那么User类在没有自定义类加载器的情况下是只能加载一次&#xff1b;想要加载多次&#xff0c;只能自定义类加载器 二、JDK、JRE、JVM…

项目管理进阶之RACI矩阵

前言 项目管理进阶系列续新篇。 RACI&#xff1f;这个是什么矩阵&#xff0c;有什么用途&#xff1f; 在项目管理过程中&#xff0c;如Team规模超5以上时&#xff0c;则有必要采用科学的管理方式&#xff0c;满足工作需要。否则可能事倍功半。 Q&#xff1a;什么是RACI矩阵 …

【简单介绍Gitea】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

吴恩达大模型系列课程《Prompt Compression and Query Optimization》中文学习打开方式

Prompt Compression and Query Optimization GPT-4o详细中文注释的Colab观看视频1 浏览器下载插件2 打开官方视频 GPT-4o详细中文注释的Colab 中文注释链接&#xff1a;https://github.com/Czi24/Awesome-MLLM-LLM-Colab/tree/master/Courses/Prompt-Compression-and-Query-Op…

防溺水预警系统引领水域安全新篇章

一、系统概述 随着人们对水域活动的需求增加&#xff0c;溺水事故频发&#xff0c;给人们的生命安全带来了严重威胁。然而&#xff0c;如今&#xff0c;一项创新科技正在以强大的功能和无限的潜力引领着水域安全的新篇章。智能防溺水预警系统&#xff0c;作为一种集成了智能感知…

乐鑫ESP-IoT-Bridge方案简化设备智能联网通信,启明云端乐鑫代理商

随着物联网技术的快速发展&#xff0c;设备联网已成为实现智能化的关键一步。然而&#xff0c;不同设备之间的通信协议、接口等差异&#xff0c;使得设备联网变得复杂且困难。 乐鑫推出的ESP-IoT-Bridge联网方案&#xff0c;正是为了解决这一难题&#xff0c;为物联网场景下的…

抖音短视频seo矩阵系统源码(搭建技术开发分享)

#抖音矩阵系统源码开发 #短视频矩阵系统源码开发 #短视频seo源码开发 一、 抖音短视频seo矩阵系统源码开发&#xff0c;需要掌握以下技术&#xff1a; 网络编程&#xff1a;能够使用Python、Java或其他编程语言进行网络编程&#xff0c;比如使用爬虫技术从抖音平台获取数据。…

服务器的80和443端口关闭也能申请SSL证书

一、简介 在服务器的80和443端口关闭的情况下&#xff0c;确实可以申请SSL证书&#xff0c;但申请过程和方法会根据证书类型和验证方式的不同而有所差异。 通常如果是网站域名申请SSL证书&#xff0c;哪怕服务器的80、443端口都打不开&#xff0c;也可以通过DNS解析的方式来验…

设计模式-领域逻辑模式-领域模型(Domain Model)

例子 合并了行为和数据的领域的对象模型&#xff0c;如下图所示。 建立收入确认类 建立收入计算策略类 对象的传递过程

EasyExcel 学习之 导出 “WPS 表格在试图打开文件时遇到错误”

目录 1. 版本2. 现象2.1. Postman 文件下载成功且 WPS 可以正常打开2.2. VUE 下载成功但 WPS 无法打开 3. 原因:前端未指定 responseType4. 常见问题4.1. NoSuchMethodError4.1.1. org.apache.logging.log4j.LogBuilder org.apache.logging.log4j.Logger.atTrace()4.1.2. Could…

Jmeter关联

案例脚本实现&#xff1a;选择商品加入购物车 客户端发送一个登录的HTTP请求&#xff0c;服务端返回一个带着token的响应&#xff0c;后续发出一个带token信息的加入购物车的HTTP请求&#xff0c;返回响应。 关联&#xff1a;当请求直接由依赖关系的时候&#xff0c;比如一个请…

FreeRTOS的中断管理、临界资源保护、任务调度

什么是中断&#xff1f; 简介&#xff1a;让CPU打断正常运行的程序&#xff0c;转而去处理紧急的事件&#xff08;程序&#xff09;&#xff0c;就叫中断。 中断优先级分组设置 ARM Cortex-M 使用了 8 位宽的寄存器来配置中断的优先等级&#xff0c;这个寄存器就是中断优先级…