Linux初识——基本指令(2)

本文将继续从上篇末尾讲起,讲解我们剩下的基本指令

一、剩余的基本指令

1、mv

mv指令是move(移动)的缩写,其功能为:1.剪切文件、目录。2.重命名

先演示下重命名,假设我想把当前目录下的di34改成dir5

那如何实现剪切操作呢?

我们发现,dir2已经被剪切到上一级目录了。

因此,mv的语法通式为:mv [文件或目录] [文件或目录]。当后一个是文件的时候,代表着是重命名,当后一个是路径的时候,代表着剪切。

但如果是mv [文件或目录] 目录+文件名,代表着我不仅要把它剪切到目标位置,还要重命名。

2. cat指令(用来显示文件的内容)

在学这个指令之前,我们先简单介绍一下nano ,他的用处就是在我们创建的文件中编辑内容,比如nano xx.txt即可在里面写东西了。

当我们写好以后,按下ctrl+x即可退出文件。

在保存后,我们想看一看里面写的到底是什么,只需要cat 文件名即可。

除此之外,我们也可以加选项-n,即可打印出行数

不仅如此,如果内容之间穿插着换行也可以有效地显示出来,但如果我们只想把有效内容输出出来,可以使用-b选项(只对非空行编号),此外,还有-s选项(不输出多行空行,即两行有效内容间最多输出一行空行)且可以组合使用。

还有一个与它很像的命令tac,也就是把cat倒过来,它的作用就是把内容逆序输出。

3.more和less指令

cat指令用于显示文件中的内容,但有时候我们面对一个大文件时想展开,用cat往往会造成刷屏的现象,此时more和less就派上用场了,他们和cat语法一样,只不过more和less显示的是开头的内容,cat会直接显示内容的末尾,看不到开头,且less支持用键盘上下键来查看上下文内容,也可以通过/关键字来跳转位置。而more只能通过enter键下翻内容,实际中我们基本都用less不用more。

在此我们对文件的读写内容补充一个知识点:重定向

对于cat指令,我们如果直接输入cat后面什么也不跟的情况下,我们在键盘上输入什么它就会打印出什么内容在显示器上。在Linux中呢,一切皆文件,包括我们的键盘、显示器等,我们所输入的内容并在显示器上呈现,其实就是对显示器这个文件进行写入操作。在C语言中,我们用scanf或者cin写入,即在键盘上获取数据,在Linux中,我们用echo指令,比如echo “hello,world”此时屏幕上就会输出 “hello,world”。

但是我们看第二个echo结果并没有在显示器文件进行写入了,而是在test.txt这个文件里写入,也就是说这个文件里现在有了内容“hello world”。如果此路径没有我们的文件名它就会新建一个该名的文件并在里面写入。貌似我们发现了新的新建文件的方式,以前我们都是touch 文件名。现在只需>文件名即可。">"我们叫输出重定向。

下一个,如果我们继续像该文件里写入内容,按道理,用上面的方法即可

本意我们是想在hello world后面加上aaaaa,但我们发现输入以后之前的内容消失了。所以我们得出,每一次的输出重定向,都是一次全新的写入。并将之前的内容清空。有了这个原理,我们就可以把已存在内容的文件进行内容清空,只需要>文件名即可,就像创建新的文件一样。

那我们想追加写入内容怎么办呢?用>>即可(中间不能用空格)>>叫追加重定向

又有一个新的问题,我们明明没打换行,但每次都有换行符,其实是echo导致的,echo的内容本身具有换行,那我们也不想要换行呢?把echo换成printf即可。

接下来,我们想用cat打印文件内容,cat指令本质是从键盘上获取内容并输出,但我们用<+文件即可(相当于从文件中获取内容并输出)<叫输入重定向

4.head和tail

这两个指令是为了我们看文件的开头和结尾的 

语法是head 文件名(tail一样)它会默认显示10行,如果我们想控制行数使用选项-数字即可比如head -50 test.txt ,tail同理。如果想查看某一区间呢?混用!假设想看[a,b],先把前b行的内容存到临时文件中,然后在读取临时文件的b-a+1行(用tail)即可。但这样太麻烦了,我们也有不用临时文件的方法,通式:head -b 文件名 | tail -(b-a+1)。“ | ”我们叫管道。可以把这个管道看成临时文件一样,可以多个|加多个命令实现不同的操作结果

5.find指令

find用于找指定路径下的指定文件

语法为 find 路径 -name 文件名相当于windows中的搜索

除此之外,还有一个查找指令which,是用来搜索指定的指令的。指令看起来挺高级的,输入指令就能满足功能,但到底是个啥呢?其实。指令就是一个可执行程序,而且我们也可以自己编写指令,就像c、c++中的自定义函数一样,在Linux系统的指令中,所有自带的指令都在一个/bin的目录下,我们使用指令时,是/bin/ls,但系统自动帮我们省略了,只需要直接输入指令即可使用,但有时候,我们自己想编写一个指令,我们也不一定放在/bin目录下,也可能是在某一目录中,此时如果我们想使用的话,直接输入我们的指令名字就会报错,因为如果直接输入指令名字,他会自动去/bin目录下寻找,找不到就会报错,所以如果我们想使用不在/bin下的指令,包括运行某一文件,需要./文件名字(相对路径)(告诉Linux在当前目录下去找就行了)

6. alias——指定命令起别名

c和c++的自定义函数中,只要函数内部的功能不变,那么起什么名字是我们自己可以控制的,Linux的指令也可以起别名,其中,ll就是ls -l的别名。起别名的办法我们用alias,语法:alias 别名='指令',比如 alias zhangsan='ls -a',以后我们想输入ls -a,只需要输入zhangsan即可。可惜的是,一旦我们重启了服务器,这些别名就会失效。

7.grep

这个指令相当于关键字过滤器,语法:grep '关键字'(有无‘’均可)

啥意思呢?比如我现在的文件有一下数据

以下就是筛选出有big 和Big关键字的行数

很明显,grep进行筛选时是区分大小写的。如果我们不行区分大小写,只要是有big字母的都显示出来就用 -i选项,如果我们想显示出除了big以外的行而不显示big行就用-v选项(也可以组合使用)

8. zip与unzip压缩与解压缩

语法:zip 要压缩成的名称(xxx.zip) 要压缩的名称

这里,我们就把dir1目录压缩成了压缩包,但我们通过底层发现,他只是把dir1这个目录进行了压缩,如果我们进行移动并解压的话,只会获得一个空的dir1目录,需要带一个-r选项进行压缩。

解压缩就是unzip [压缩包名称]。但这种解压的结果只会解压在当前目录,如果我们先解压在其他目录呢?还需要借助选项,语法:unzip 压缩包 -d 指定路径

9. tar指令(打包与解包)

tar的用途其实和zip和unzip差不多,只不过tar的打包只是把多个文件放在一块,并没有实现压缩功能,但我们也可以通过选项来用tar实现压缩。我们先看一下其具体可以带什么选项。

选项太多我们直接上用法。

语法:tar (-可带可不带)czf 新创建压缩包的名字 要打包的文件。

c表示创建一个压缩包文件,z表示过程中不仅要打包还要压缩,f后面接你的压缩包名字,在zip的压缩中,我们的压缩包名字都是xxx.zip,tar这里我们的后缀是xxx.tar.gz,我们直接简写为xxx.tgz。选项v就是在压缩中显示被压缩的文件。

如果我们要解压tgz文件,只需要改一个选项即可,把c改成x,即tar xzf 压缩包。这种语法默认会解压缩在当前路径,如果要改变其解压路径需要再加一个 -C选项,即tar xvzf 压缩包 -C 路径。

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

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

相关文章

函数与方法

具名函数 具名函数是有名称的函数&#xff0c;可以在定义之前或之后调用。 特点 有函数名。定义后可以多次调用。便于调试&#xff0c;因为在调用栈中可以看到函数名。 function add(a, b) {return a b; }console.log(add(2, 3)); // 输出: 5 匿名函数 匿名函数没有名称…

定制Centos镜像(一)

环境准备&#xff1a; 一台最小化安装的干净的系统&#xff0c;这里使用Centos7.9,一个Centos镜像&#xff0c;镜像也使用Centos7.9的。 [rootlocalhost ~]# cat /etc/system-release CentOS Linux release 7.9.2009 (Core) [rootlocalhost ~]# rpm -qa | wc -l 306 [rootloca…

Android - 通过Logcat Manager简单获取Android手机的Log

由于工作需要&#xff0c;经常需要获取Android手机的Log。 平常都是通过adb命令来获取&#xff0c;每次都要写命令。 偶然的一个机会&#xff0c;我从外网发现了一个工具 Logcat Manager&#xff0c;只需要通过简单的双击即可获取Android的Log&#xff0c;这里也分享一下。 目…

c++学习第十三天

创作过程中难免有不足&#xff0c;若您发现本文内容有误&#xff0c;恳请不吝赐教。 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、vector 1.介绍 1. vector是表示可变大小数组的序列容器。 2. 就像数组一样&#xff0c;vector也采用的连续存储空…

「数学::质数」分解质因子 / LeetCode 2521(C++)

概述 由算数基本定理&#xff0c;我们知道任意一个大于1的自然数可以表示为一些质数的乘积&#xff1a; LeetCode 2521&#xff1a; 给你一个正整数数组 nums &#xff0c;对 nums 所有元素求积之后&#xff0c;找出并返回乘积中 不同质因数 的数目。 注意&#xff1a; 质数 是…

docker-compose Zookeeper 集群搭建

文章目录 前言docker-compose Zookeeper 集群搭建1. Zookeeper下载2. 制作Dockerfile文件3. 构建镜像4. docker-compose 管理5. docker-compose构建/启动6. 验证6.1 docker ps6.2 使用 zkCli.sh 连接并验证集群 前言 如果您觉得有用的话&#xff0c;记得给博主点个赞&#xff0…

Vue.js 使用 Vuex 管理组件间的共享状态

Vue.js 使用 Vuex 管理组件间的共享状态 今天咱们来聊聊如何用 Vuex 来管理 Vue.js 应用中各个组件之间的共享状态。如果你曾经在项目中为了让组件共享数据而头疼&#xff0c;那么这篇文章就是为你准备的。 什么是 Vuex&#xff1f; 简单来说&#xff0c;Vuex 就是 Vue.js 的…

WIN11 UEFI漏洞被发现, 可以绕过安全启动机制

近日&#xff0c;一个新的UEFI漏洞被发现&#xff0c;可通过多个系统恢复工具传播&#xff0c;微软已经正式将该漏洞标记为追踪编号“CVE-2024-7344”。根据报告的说明&#xff0c;该漏洞能让攻击者绕过安全启动机制&#xff0c;并部署对操作系统隐形的引导工具包。 据TomsH…

R语言学习笔记之高效数据操作

一、概要 数据操作是R语言的一大优势&#xff0c;用户可以利用基本包或者拓展包在R语言中进行复杂的数据操作&#xff0c;包括排序、更新、分组汇总等。R数据操作包&#xff1a;data.table和tidyfst两个扩展包。 data.table是当前R中处理数据最快的工具&#xff0c;可以实现快…

本地大模型编程实战(04)给文本自动打标签

文章目录 准备实例化本地大模型情感分析更精细的控制总结代码 使用本地大模型可以根据需要给文本打标签&#xff0c;本文介绍了如何基于 langchain 和本地部署的大模型给文本打标签。 本文使用 llama3.1 作为本地大模型&#xff0c;它的性能比非开源大模型要查一下&#xff0c;…

视频外绘技术总结:Be-Your-Outpainter、Follow-Your-Canvas、M3DDM

Diffusion Models专栏文章汇总:入门与实战 前言:视频Inpaint的技术很火,但是OutPaint却热度不高,这篇博客总结比较经典的几篇视频Outpaint技术。其实Outpaint在runway等工具上很火,可是学术界对此关注比较少,博主从这三年的顶会中找到了最具代表性的三篇论文解读。 目录 …

Java对象注入的常见方式

在 Java 中&#xff0c;对象注入&#xff08;依赖注入&#xff0c;Dependency Injection&#xff09;是实现松耦合设计的重要方式&#xff0c;常见的有以下几种实现形式&#xff1a; 1. 构造器注入&#xff08;Constructor Injection&#xff09; 通过类的构造函数注入依赖对象…

【数据结构】 并查集 + 路径压缩与按秩合并 python

目录 前言模板朴素实现路径压缩按秩合并按树高为秩按节点数为秩 总结 前言 并查集的基本实现通常使用森林来表示不同的集合&#xff0c;每个集合用一棵树表示&#xff0c;树的每个节点有一个指向其父节点的指针。 如果一个节点是它自己的父节点&#xff0c;那么它就是该集合的代…

低代码系统-产品架构案例介绍、得帆云(八)

产品名称 得帆云DeCode低代码平台-私有化 得帆云DeMDM主数据管理平台 得帆云DeCode低代码平台-公有云 得帆云DePortal企业门户 得帆云DeFusion融合集成平台 得帆云DeHoop数据中台 名词 概念 云原生 指自己搭建的运维平台&#xff0c;区别于阿里云、腾讯云 Dehoop 指…

.NET 8 项目 Docker 方式部署到 Linux 系统详细操作步骤

本文将详细介绍如何将一个 .NET 8 项目通过 Docker 部署到 Linux 系统中。以下步骤包括从项目的创建、Dockerfile 的编写、镜像构建、到最后在 Linux 上的容器运行。 1. 环境准备 在开始之前&#xff0c;请确保你已经具备以下环境&#xff1a; Linux 系统&#xff08;如 Ubu…

【PyTorch】5.张量索引操作

目录 1. 简单行、列索引 2. 列表索引 3. 范围索引 4. 布尔索引 5. 多维索引 个人主页&#xff1a;Icomi 在深度学习蓬勃发展的当下&#xff0c;PyTorch 是不可或缺的工具。它作为强大的深度学习框架&#xff0c;为构建和训练神经网络提供了高效且灵活的平台。神经网络作为…

springboot 动态线程池

在Spring Boot中&#xff0c;可以使用ThreadPoolTaskExecutor类来创建动态线程池。以下是一个示例&#xff1a; 首先&#xff0c;需要在配置文件中配置线程池的属性&#xff0c;例如最小线程数、最大线程数、线程存活时间等。可以在application.properties或application.yml中…

强化学习 - 基于策略搜索和策略优化: 高斯策略

最近在做毕设需要用强化学习来做控制&#xff0c;对强化学习的知识点做一下总结。 高斯策略 高斯策略属于强化学习中的基于策略优化的分支&#xff08;Policy Optimization&#xff09;&#xff0c;尤其是策略梯度方法&#xff08;Policy Gradient Methods&#xff09; 的一部…

基于微信小程序高校课堂教学管理系统 课堂管理系统微信小程序(源码+文档)

目录 一.研究目的 二.需求分析 三.数据库设计 四.系统页面展示 五.免费源码获取 一.研究目的 困扰管理层的许多问题当中,高校课堂教学管理也是不敢忽视的一块。但是管理好高校课堂教学又面临很多麻烦需要解决,如何在工作琐碎,记录繁多的情况下将高校课堂教学的当前情况反…

论文阅读笔记:VMamba: Visual State Space Model

论文阅读笔记&#xff1a;VMamba: Visual State Space Model 1 背景2 创新点3 方法4 模块4.1 2D选择性扫描模块&#xff08;SS2D&#xff09;4.2 加速VMamba 5 效果5.1 和SOTA方法对比5.2 SS2D和自注意力5.3 有效感受野5.4 扫描模式 论文&#xff1a;https://arxiv.org/pdf/240…