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://xiahunao.cn/news/3247134.html

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

相关文章

力扣622.设计循环队列

力扣622.设计循环队列 通过数组索引构建一个虚拟的首尾相连的环当front rear时 队列为空当front rear 1时 队列为满 (最后一位不存) class MyCircularQueue {int front;int rear;int capacity;vector<int> elements;public:MyCircularQueue(int k) {//最后一位不存…

vscode+SSH连接Ubuntu

目录 问题引入 基本思路 Permission denied, please try again 修改用户名与密码 新建用户 最终成功方案 问题引入 ssh 用户名ip地址。用户名是远端服务器的用户名&#xff0c;ip地址也是远端服务器的地址。linux虚拟机的ip地址与windous主体不一样&#xff0c;所以还需要…

微信小程序与本地MySQL数据库通信

微信小程序与本地MySQL数据库通信 因为本地MySQL服务器没有域名&#xff0c;也没有进行相应的请求操作封装&#xff0c;因此微信小程序没办法和数据库通信。 但是对于开发人员来说&#xff0c;没有数据库&#xff0c;那还能干撒&#xff1f;虽然我尝试过用json-server&#x…

【C++】类和对象·this指针

C中的类与C语言中的结构体有很多的相似的地方&#xff0c;可以说本质上除了结构体只能定义成员变量&#xff0c;以及结构体默认的访问控制权限是public之外与class没啥区别。但是结构体变量每次调用函数的时候需要指针&#xff0c;而类中的成员函数明明被保存在公共代码段&…

Redis之哈希类型

目录 一.命令 二.内部编码 1.压缩列表&#xff08;ziplist&#xff09; 2. 哈希表&#xff08;Hashtable&#xff09; 自动转换策略 三.作为缓存 Redis的学习专栏&#xff1a;http://t.csdnimg.cn/a8cvV 一.命令 HSET命令 设置hash中指定的字段&#xff08;field)的值,时…

Ubuntu22.04安装OMNeT++

一、官网地址及安装指南 官网地址&#xff1a;OMNeT Discrete Event Simulator 官网安装指南&#xff08;V6.0.3&#xff09;&#xff1a;https://doc.omnetpp.org/omnetpp/InstallGuide.pdf 官网下载地址&#xff1a;OMNeT Downloads 旧版本下载地址&#xff1a;OMNeT Old…

OAI 5G-NR源码架构

OAI 5G-NR源码架构 1 特性范围 目前gNB和5G-NRUE支持如下的配置&#xff1a; 工作模式&#xff1a;TDDCP长度&#xff1a;Normal CP子载波间隔&#xff1a; 30kHz信道带宽&#xff1a;40MHz(106PRB)、80MHz(217PRB)、100MHz(237PRB)天线端口&#xff1a;单波束时隙格式&…

Redis-应用

目录 应用 缓存雪崩、击穿、穿透和解决办法? 布隆过滤器是怎么工作的? 缓存的数据一致性怎么保证 Redis和Mysql消息一致性 业务一致性要求高怎么办? 数据库与缓存的一致性问题 数据库和缓存的一致性如何保证 如何保证本地缓存和分布式缓存的一致&#xff1f; 如果在…

solidity基础语法(以太坊solidity合约)

solidity基础语法&#xff08;以太坊solidity合约&#xff09; 1-值类型和取值范围2-引用类型3-引用类型高阶4-固定数组和动态数组 1-值类型和取值范围 https://learnblockchain.cn/docs/solidity/introduction-to-smart-contracts.html#subcurrency https://learnblockchain…

WEB前端06-DOM对象

BOM浏览器对象模型 浏览器对象模型&#xff1a;将浏览器的各个组成部分封装成对象。是用于描述浏览器中对象与对象之间层次关系的模型&#xff0c;提供了独立于页面内容、并能够与浏览器窗口进行交互的对象结构。 组成部分 Window&#xff1a;浏览器窗口对象 Navigator&…

Hadoop3:HDFS存储优化之小文件归档

一、情景说明 我们知道&#xff0c;NameNode存储一个文件元数据&#xff0c;默认是150byte大小的内存空间。 那么&#xff0c;如果出现很多的小文件&#xff0c;就会导致NameNode的内存占用。 但注意&#xff0c;存储小文件所需要的磁盘容量和数据块的大小无关。 例如&#x…

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

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

iPhone手机怎么识别藏文?藏语翻译通App功能介绍:藏文OCR识别提取文字

在工作学习的过程中&#xff0c;遇到不会的藏文&#xff0c;也不知道怎么把文字打出来&#xff0c;这个时候可以试试《藏语翻译通》App的图片识别功能&#xff0c;支持拍照识别和图片识别&#xff0c;拍一拍就能提取藏文文字&#xff0c;并支持一键翻译和复制分享。 跟着小编的…

数据结构之双向链表(赋源码)

数据结构之双向链表(源码) 线性表 双向链表是线性表链式存储结构的一种&#xff0c;若对链式存储结构进行分类可以分为八种。 带头、不带头&#xff1a;指的是该连链表有无头节点&#xff0c;头节点不存放任何内容&#xff0c;它不一定是链表必备的元素&#xff0c;而一个链…

十五、【机器学习】【监督学习】- 神经网络回归

系列文章目录 第一章 【机器学习】初识机器学习 第二章 【机器学习】【监督学习】- 逻辑回归算法 (Logistic Regression) 第三章 【机器学习】【监督学习】- 支持向量机 (SVM) 第四章【机器学习】【监督学习】- K-近邻算法 (K-NN) 第五章【机器学习】【监督学习】- 决策树…

RPA鼠标按键使用技巧

RPA鼠标按键使用技巧 Mouse.MouseAuto.Action命令出错&#xff0c;调用的目标发生了异常&#xff0c;Exception in Mouse.Action元素不可用怎么解决 出现问题 1.想要实现的效果鼠标移动到录屏工具的小球上2.点击开始按钮开始录屏现象&#xff0c;鼠标没有移动痕迹&#xff0c…

C1W4.Assignment.Naive Machine Translation and LSH

理论课&#xff1a;C1W4.Machine Translation and Document Search 文章目录 1. The word embeddings data for English and French words1.1The dataThe subset of dataLoad two dictionaries 1.2 Generate embedding and transform matricesExercise 1: Translating English…

华为的热机备份和流量限制

要求&#xff1a; 12&#xff0c;对现有网络进行改造升级&#xff0c;将当个防火墙组网改成双机热备的组网形式&#xff0c;做负载分担模式&#xff0c;游客区和DMZ区走FW4&#xff0c;生产区和办公区的流量走FW5 13&#xff0c;办公区上网用户限制流量不超过100M&#xff0c;…

智慧博物馆的“眼睛”:视频智能监控技术守护文物安全与智能化管理

近日&#xff0c;位于四川德阳的三星堆博物馆迎来了参观热潮。据新闻报道&#xff0c;三星堆博物馆的日均参观量达1.5万人次。随着暑假旅游高峰期的到来&#xff0c;博物馆作为重要的文化场所&#xff0c;也迎来了大量游客。博物馆作为文化和历史的重要载体&#xff0c;其安全保…

QT应用编程: window下QT程序异常捕获并生成DMP文件、PDB文件

文章目录 main.cpp代码捕获异常 生成dmp文件和pdb文件DebugTest生成错误代码注意 分析软件崩溃&#xff0c;除了需要dmp&#xff0c;还需要这个pdb文件 dmp&#xff0c;文件记录了崩溃的信息&#xff0c;而pdb&#xff08;代码工程数据库&#xff09;&#xff0c;则包含了你写的…