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,一经查实,立即删除!

相关文章

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…

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;可以实现快…

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

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

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

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

【PyTorch】5.张量索引操作

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

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

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

论文阅读笔记: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…

【文星索引】搜索引擎项目测试报告

目录 一、项目背景二、 项目功能2.1 数据收集与索引2.2 API搜索功能2.3 用户体验与界面设计2.4 性能优化与维护 三、测试报告3.1 功能测试3.2 界面测试3.3 性能测试3.4 兼容性测试3.5 自动化测试 四、测试总结4.1 功能测试方面4.2 性能测试方面4.3 用户界面测试方面 一、项目背…

DBO-高斯回归预测matlab

蜣螂优化算法(Dung Beetle Optimizer, DBO)是一种新型的群智能优化算法&#xff0c;在2022年底提出&#xff0c;主要是受蜣螂的的滚球、跳舞、觅食、偷窃和繁殖行为的启发。 本次研究使用的是 Excel 格式的股票预测数据。数据集按照 8&#xff1a;1&#xff1a;1 的比例&#x…

java后端之事务管理

Transactional注解&#xff1a;作用于业务层的方法、类、接口上&#xff0c;将当前方法交给spring进行事务管理&#xff0c;执行前开启事务&#xff0c;成功执行则提交事务&#xff0c;执行异常回滚事务 spring事务管理日志&#xff1a; 默认情况下&#xff0c;只有出现Runti…

【嵌入式】总结——Linux驱动开发(三)

鸽了半年&#xff0c;几乎全忘了&#xff0c;幸亏前面还有两篇总结。出于快速体验嵌入式linux的目的&#xff0c;本篇与前两篇一样&#xff0c;重点在于使用、快速体验&#xff0c;uboot、linux、根文件系统不作深入理解&#xff0c;能用就行。 重新梳理一下脉络&#xff0c;本…

RabbitMQ 多种安装模式

文章目录 前言一、Windows 安装 RabbitMq1、版本关系2、Erlang2.1、下载安装 Erlang 23.12.2、配置 Erlang 环境变量 3、RabbitMQ3.1、下载安装 RabbitMQ 3.8.93.2、环境变量3.3、启动RabbitMQ 管理插件3.3、RabbitMQ3.4、注意事项 二、安装docker1、更新系统包&#xff1a;2、…

使用python-docx包进行多文件word文字、字符批量替换

1、首先下载pycharm。 2、改为中文。 3、安装python-docx包。 搜索包名字&#xff0c;安装。 4、新建py文件&#xff0c;写程序。 from docx import Documentdef replace1(array1):# 替换词典&#xff08;标签值按实际情况修改&#xff09;dic {替换词1: array1[0], 替换…

Android中Service在新进程中的启动流程

目录 1、Service与AMS交互框架介绍 1.1、认识AMS代表IActivityManager 1.2、认识客户端代表IApplicationThread 2、Service启动流程概览 我们知道Android有四大组件&#xff0c;Activity、Service、ContentProvider、Broadcast&#xff0c;每个组件在系统运行中或者我们编写…

read+write实现:链表放到文件+文件数据放到链表 的功能

思路 一、 定义链表&#xff1a; 1 节点结构&#xff08;数据int型&#xff09; 2 链表操作&#xff08;创建节点、插入节点、释放链表、打印链表&#xff09;。 二、链表保存到文件 1打开文件 2遍历链表、写文件&#xff1a; 遍历链表,write()将节点数据写入文件。…

【景区导游——LCA】

题目 代码 #include <bits/stdc.h> using namespace std; using ll long long; const int N 1e5 10; const int M 2 * N; int p[N][18], d[N], a[N]; ll dis[N][18]; //注意这里要开long long int h[N], e[M], ne[M], idx, w[M]; int n, k; void add(int a, int b, …