Linux·基本指令(下)

news2024/12/27 13:38:12

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.coloradmin.cn/o/1931438.html

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

相关文章

Unty 崩溃问题(Burst 1.8.2)

错误代码&#xff1a; Assertion failed on expression: exception SCRIPTING_NULL UnityEngine.StackTraceUtility:ExtractStackTrace () Unity.Burst.BurstCompiler:SendRawCommandToCompiler (string Unity版本&#xff1a;2021.3.17F1&#xff0c;Burst 1.8.2 表现&…

openstack设置IP直接登录,不需要加dashboard后缀

openstack 实验环境&#xff0c;openstack-t版&#xff0c;centos2009 修改配置文件 [rootcontroller ~]# vim /WEBROOT /etc/openstack-dashboard/local_settings #将dashboard去掉 WEBROOT /dashboard/ #改为 WEBROOT /[rootcontroller ~]# vim /etc/httpd/conf.d/openst…

pytorch学习(七):池化层的使用

MaxPool2d&#xff1a; 参数详解&#xff1a; kernel_size: int or tuple。 stride&#xff1a;窗口的步长&#xff0c;默认值是kernel_size的值。&#xff08;卷积层默认值为1&#xff09; dilation&#xff1a;如下图&#xff0c;控制窗口内内元素之间的距离。学名空洞卷积…

浅析stm32启动文件

浅析stm32启动文件 文章目录 浅析stm32启动文件1.什么是启动文件&#xff1f;2.启动文件的命名规则3.stm32芯片的命名规则 1.什么是启动文件&#xff1f; 我们来看gpt给出的答案&#xff1a; STM32的启动文件是一个关键的汇编语言源文件&#xff0c;它负责在微控制器上电或复位…

持续集成05--Gogs的安装与使用

前言 在持续集成/持续部署&#xff08;CI/CD&#xff09;的旅程中&#xff0c;版本控制系统是不可或缺的一环。当我们在使用jenkins&#xff0c;想要达到测试脚本有更新&#xff0c;就让项目自动去进行构建&#xff0c;或者当开发脚本有更新&#xff0c;也可以自动去构建的效果…

graham 算法计算平面投影点集的凸包

文章目录 向量的内积&#xff08;点乘&#xff09;、外积&#xff08;叉乘&#xff09;确定旋转方向numpy 的 cross 和 outernp.inner 向量与矩阵计算示例np.outer 向量与矩阵计算示例 python 示例生成样例散点数据图显示按极角排序的结果根据排序点计算向量转向并连成凸包 基本…

linux中关于环境变量的常用的设置方法

一. linux中设置环境变量的方式 1.使用/etc/environment, 是一个全局的环境变量设置文件&#xff0c;它会影响到所有用户和所有进程。当你需要设置一个全局的环境变量时&#xff0c;应该使用这个文件。这个文件的格式是 KEYvalue&#xff0c;每行一个环境变量。 2. 使用/etc/…

Spring Data Redis + Redis数据缓存学习笔记

文章目录 1 Redis 入门1.1 简介1.2 Redis服务启动与停止&#xff08;Windows&#xff09;1.2.1 服务启动命令1.2.2 客户端连接命令1.2.3 修改Redis配置文件1.2.4 Redis客户端图形工具 2. Redis数据类型2.1 五种常用数据类型介绍 3. Redis常用命令3.1 字符串操作命令3.2 哈希操作…

【学习笔记】虚幻SkeletalMesh学习(一)基础介绍

文章目录 零、前言一、资源介绍1.1 骨架资源1.2 骨架网格体资源 二、UE4中的定义2.1 骨骼数据2.2 模型网格数据 三、渲染3.1 RenderData的初始化3.2 渲染对象的创建3.3 渲染对象的更新3.3.1 游戏线程的更新&#xff08;*FSkeletalMeshObjectGPUSkin::Update*&#xff09;3.3.2 …

大模型“重构”教育:解构学习奥秘,推动教育普惠

大模型“重构”千行百业系列选题 生成式人工智能的热潮&#xff0c;为AI领域的发展注入新的活力&#xff0c;而“赋能千行百业”已经成为人们普遍对于人工智能和大模型的全新理解。 人工智能和大模型技术的迅猛发展正在以前所未有的速度深刻改变着各个行业。正如专家所预测&a…

《昇思25天学习打卡营第23天|onereal》

第23天学习内容简介&#xff1a; ----------------------------------------------------------------------------- 本案例基于MindNLP和ChatGLM-6B实现一个聊天应用。 1 环境配置 配置网络线路 2 代码开发 下载权重大约需要10分钟 ------------------------------- 运…

汇总国内镜像提供了Redis的下载地址

文章目录 1. 清华大学开源软件镜像站&#xff1a;2. 中国科技大学开源软件镜像&#xff1a;3. 阿里云镜像&#xff1a;4. 华为云镜像&#xff1a;5. 腾讯云镜像&#xff1a;5. 官方GitHub仓库&#xff08;虽然不是镜像&#xff0c;但也是一个可靠的下载源&#xff09;&#xff…

XX2104 培训【C++解决】

描述 某培训机构的学员有如下信息&#xff1a; 姓名&#xff08;字符串&#xff09; 年龄&#xff08;周岁&#xff0c;整数&#xff09; 去年 NOIP 成绩&#xff08;整数&#xff0c;且保证是 5 的倍数&#xff09; 经过为期一年的培训&#xff0c;所有同学的成绩都有所提高&…

【数据结构与算法】数据结构(Data Structure)的基本概念及其研究对象

什么是程序 算法数据结构程序 —— Nicklaus Wirth(尼古拉斯沃斯) Niklaus Wirth是一位著名的计算机科学家&#xff0c;他提出了"程序算法数据结构"的观点。他认为&#xff0c;程序不仅仅是执行特定任务的一段代码&#xff0c;而是由算法和数据结构两部分组成的。算法…

Linux--线程同步

目录 0.上篇 1. 线程同步概念 2.认识条件变量 2.1条件变量的概念 2.2认识接口 2.3写一个测试代码 3.生产者消费者模型 3.1概念部分 1.基本概念 2.主要问题 3.优点 4.思考切入点&#xff08;321原则&#xff09; 3.2编写基于BlockingQueue的生产者消费者模型&…

js执行机制----事件循环

前言 问题 一般情况下,我们都认为js是顺序执行的 但是遇到下列情况 setTimeout(function(){console.log(定时器开始啦) });new Promise(function(resolve){console.log(马上执行for循环啦);for(var i 0; i < 10000; i){i 99 && resolve();} }).then(function(…

MySQL数据库查询索引失效场景

在连表情况下,如果排序字段涉及到了两个表,排序字段将无法走索引. 加上第二个排序字段之后,走全表扫描了. 或者尽量让两次排序都用同一个表的字段,这样可以建联合索引让排序也能走索引.&#xff08;不想建联合索引的话&#xff0c;可以第二次排序用表id&#xff0c;这样单个的…

天池AI大模型技术提升营火热上线,四重好礼等你来拿!

目标锁定&#xff0c;加速成长&#xff0c;四大活动玩法助您提升技术&#xff0c;赢取四重好礼&#xff1a; 【活动一】完成3步学习任务&#xff0c;赢取定制加湿器 【活动二】邀请好友报名指定学习赛&#xff0c;累计助力赢苹果iPad、大疆无人机、韶音蓝牙耳机等好礼 【活动三…

华为1000人校园实验记录

在这里插入代码片1000人校园区网设计 1、配置Eth-trunk实现链路冗余 vlan 900 管理WLAN #接入SW8 操作&#xff1a;sys undo in en sysname JR-SW8 int Eth-Trunk 1 mode lacp-static trunkport g0/0/1 0/0/2 port link-type trunk port trunk allow-pass vlan 200 900 qu vla…

NSSCTF-Web题目26(PHP弱比较)

目录 [SWPUCTF 2022 新生赛]funny_php 1、题目 2、知识点 3、思路 [ASIS 2019]Unicorn shop 4、题目 5、知识点 6、思路 [SWPUCTF 2022 新生赛]funny_php 1、题目 2、知识点 弱比较、双写绕过 3、思路 出现源代码&#xff0c;我们进行审计 第一个if 这里要我们GET方…