Linux基本指令和操作(2)

news2024/9/20 0:50:26

目录

一. 适配符 *

二. man指令 -- 查看手册 

三. echo指令 -- 输出字符串到文件

四. cp指令 -- 复制

五. mv指令 -- 重命名或移动文件(剪切)

六. which指令 -- 查看指令所在的路径

七. alis指令 -- 指令重命名

八. cat指令 -- 输出文件内容

九. more指令 -- 查看文件内容

十. less指令 -- 查看文件内容

十一. head指令 -- 查看文件前n行内容

十二. tail指令 -- 查看文件最后n行内容

扩展:如何截取文件指定行数区间的内容


一. 适配符 *

* 在Linux中表示为通配符,可以匹配任何内容。如:*.cpp -- 后缀名为cpp的所有文件、test.* -- 文件名为test,后缀任意的文件。*可以与rm、ls等基本指令匹配,对相关文件进行操作,如:

  • ls *.c:拿出所有后缀名为.c的文件。
  • ls test.*:拿出所有名为test,后缀任意的文件。
  • rm *.c:删除所有后缀为.c的文件。
图1.1 通配符*的使用

二. man指令 -- 查看手册 

我们不可能记住Liunx的上千条指令,如果需要使用某条指令却不知道其具体使用方法,可以使用man指令查看手册。语法:man [手册号][指令],如:

  • man rm:查看rm指令(文件删除)的手册。
  • man ls:查看ls指令(文件名输出)的手册。
  • man printf:查看printf(输出指令)的手册。

注意:printf也是一条Linux基本指令,可模仿C语言的输出格式来输出。

  • 进入man手册之后,可以按Q退出 

man指令也可用于查找其本身的手册,man man就是查看man的使用手册。

图2.1 man的手册

手册共分为8张,其中最常用的是前3章:

  • 1 -- Linux系统下的普通命令。
  • 2 -- 系统指令,如fork线程创建。
  • 3 -- C语言指令,如printf、scanf。

如果不指定从哪一张中查找,就默认从第一章开始查找,一致查找到第8章。那么,如果直接输入man printf查找的是普通Linux指令printf,而不是C语言中的printf。如果要查看C语言的printf,应当显示指定第三章手册(man 3 printf)。

三. echo指令 -- 输出字符串到文件

  • 语法:echo 字符串 >/>> 文件名 
  • 功能:向文件中写入指定的字符串内容

在Linux下,我们认为一切都是文件,包括键盘、显示器等硬件以及普通文件。Linux下一切皆文件可以从输入输出的角度来理解,如:显示器可以作为内容输出的设备、可以由键盘读取数据,这些硬件具备与我们一般认识中的普通文件相似的特性:可供读写。

如果echo指定输出文件,则默认向显示器输出,可以使用>来进行输出重定向。在默认情况下,如果使用 echo + 输出重定向( > ) 多次向同一文件中写入字符串,那么后一次输入的内容会覆盖前一次的。如图2.2,多次向文件test1.txt输出"hello Linux",但最终文件中只有一个"hello Linux"。

图2.2 echo指令的使用及输出重定向>

如果不希望echo写入文件的内容覆盖原来的内容,可以使用追加重定向>>,但是 >> 追加重定向会默认换行,如果不希望换行,可以改用printf写入。

图2.3 追加重定向

还可以使用输出重定向来情况文件内容,语法:> 文件名。< 为输入重定向,cat < 文件名 可以输出文件内容。

图2.4 输入重定向和文件清空
  • 总结:三大重定向 
  1. > :输出重定向。
  2. >>:追加重定向。
  3. <:输入重定向。

四. cp指令 -- 复制

  • 语法:cp [选项]  源文件或目录  目标文件或目录
  • 功能:复制目录或文件到某一路径(还可以同时重命名)
  • 说明:如果同时指定多个目录或文件,如果最后一个参数为已经存在的目录,那会将多个文件或目录复制到最后一个目录下面。如果最后一个参数为不存在的目录,那么会报错。

cp指令常用选项指令:

  1. -r:递归复制,将一个目录下面的子目录和文件一同复制。如果不显示声明-r,那么就无法复制带有子目录和文件的目录。
  2. -i:如果存在名称冲突,文件覆盖之前询问用户是否要覆盖。
  3. -f:强制复制,存在文件名冲突时直接覆盖,不进行询问。
图4.1 cp指令的使用

五. mv指令 -- 重命名或移动文件(剪切)

  • 语法:mv [选项] 源文件或目录 目标文件或目录
  • 功能:1、文件或目录重命名     2、文件或目录的移动    3、移动 + 重命名
  • 说明:
  1. 如果第二个参数时文件名,则mv执行的重命名功能,如果第二个参数是单纯地路径,那么mv执行移动功能。     
  2. 如果第二个参数是 目录/文件名,mv执行 移动 + 重命名 功能。     
  3. 如果第二个参数是已经存在的目录名称,那么第一个参数(源文件或目录)可以有多个,mv会将这些文件均移动值第二个参数的路径下面。
  • 选项: -i:覆盖前询问用户是否覆盖      -f:不询问是否覆盖
图5.1 mv指令的使用

六. which指令 -- 查看指令所在的路径

  • 语法:which  [选项]  指令
  • 功能:获取指令所在路径
图6.1 which指令的使用

 如何看待指令?

  • 指令和可执行程序都是可以被执行的,指令就是可执行程序。在执行指令前,首先要在系统特定的路径下去查找指令。
  • 指令一定是某种可执行程序,因此,指令和我们自己编写好的代码编译生成的可执行程序,没有任何本质区别。
  • 结论:指令的本质就是可执行程序文件,放在特定的路径下(/user/bin/),调用时可以直接去查找。

七. alis指令 -- 指令重命名

  • 语法:alis 指令新名词 = '原名称'
  • 取消重命名:alis 已经存在的新名称 = ''

如:ll指令和ls -l指令的功能相同,其本质就是将ls -l重命名为ll

图7.1 alias的使用

八. cat指令 -- 输出文件内容

  • 语法:cat [选项] 文件名
  • 选项:(1)-b:输出非空行号    (2)-n:输出所有行号    (3)-s:不输出多行空行
图8.1 cat指令的使用

九. more指令 -- 查看文件内容

cat指令会一次性输出全部文件内容,适合查看小文件,不适合查看大文件。more指令会在打印满屏幕后暂停,按回车键才会继续打印下面的内容。

  • more -n<行号> 文件名  -- 如more -500 test.txt 为打印test.txt的前500行内容。
  • /字符串:向下查找指定的字符串内容。
  • q:退出more。

more指令有其固有缺陷:只能向下翻,不能向上翻。

使用脚本语言cnt=1; while [ $cnt -le 10000 ]; do echo "hello Linux $cnt"; let cnt++; done > test.txt生成具有10000行内容的文件test.txt(每行都带有行编号)测试more指令的功能。

图9.1 more指令的使用方法

十. less指令 -- 查看文件内容

less指令的功能和使用方法与more指令基本一致,但less指令避免了more指令的最大缺陷,它既可以上翻查找,也可以下翻查找。

  • /字符串:向下查找字符串
  • ?字符串:向上查找字符串
图10.1 less指令的使用

十一. head指令 -- 查看文件前n行内容

  • 语法:head  [参数] 文件名
  • 说明:head -n<行数> 文件名 指令会在屏幕上打印文件前n行,如果-n省略,那么默认10行。
图11.1 head指令的使用

十二. tail指令 -- 查看文件最后n行内容

  • 语法:tail [参数] 文件名
  • 说明:tail -n<行数> 文件名 -- 在屏幕上打印最后n行,如果-n省略,那么默认10行。
图12.1 tail指令的使用

扩展:如何截取文件指定行数区间的内容

以截取文件test.txt文件的第1001~1010行为例,介绍两种截取方法

方法1:借助临时文件

将test.txt文件的前1010行用head指令取出,输出重定向到tmp,txt文件中。然后使用tail指令取出tmp.txt的最后10行,得到的就是test.txt的1001~1010行内容。这种方法的缺点是要占用磁盘空间,如果不继续使用临时文件还要手动删除。

图13.1 借助临时文件截取文件部分内容的流程

方法2:借助管道

  • 符号'|'在Linux下,会被系统解释为管道文件,这是一种内存级的文件。
  • 程序1 | 程序2:将程序1的输出交给管道|,然后交到程序2中执行。
  • 管道可以支持流水线工作:程序1|程序2|程序3|......

用head指令取出test.txt的前1010行交给管道,然后将管道中的内容作为交给tail指令,取出后10行,即可获取test.txt的第1000~1010行内容。

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

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

相关文章

7.微服务项目实战---Rocketmq--消息驱动

7.1 MQ简介 7.1.1 什么是MQ MQ &#xff08; Message Queue &#xff09;是一种跨进程的通信机制&#xff0c;用于传递消息。通俗点说&#xff0c;就是一个先进先出的数据结构。 7.1.2 MQ的应用场景 7.1.2.1 异步解耦 最常见的一个场景是用户注册后&#xff0c;需要发送注…

怎么注册Google账号(使用国内手机号注册)

怎么注册Google账号&#xff08;使用国内手机号注册&#xff09; 记录一下如何用 国内的手机号 注册Google账号 文章目录 怎么注册Google账号&#xff08;使用国内手机号注册&#xff09;进入Google官网创建账号注册信息填写手机号&#xff08;踩坑版&#xff09;填写手机号&am…

MySQL——超详细数据库触发器教程

文章目录 一、触发器的概念 二、创建触发器 三、查看触发器 四、删除触发器 一、触发器的概念 在实际开发中往往会碰到这样的情况&#xff1a; 当我们对一个表进行数据操作时&#xff0c;需要同步对其它的表执行相应的操作&#xff0c;正常情况下&#xff0c;如果我们使用s…

C语言字符串函数,字符函数,内存操作函数

提示&#xff1a; 本篇文章涉及到以下内容: 求字符串长度 strlen 长度不受限制的字符串函数(被VS认为不安全,就像scanf)–>非法也要完成任务 strcpy 拷贝(将原字符串内容和\0全拷贝过去) strcat 追加(先找到目标空间中的\0,然后把原字符串中的内容直到\0全拷贝过去,原字符串…

【RPA开发】lxml 库之 etree 使用详解

通过 requests.get 方法获得 html 源代码后&#xff0c;可以通过 etree 进行解析&#xff0c;进而从源代码中提取关键信息。etree 同 Beautiful Soup 一样均可以解析 xml 和 html&#xff0c;两者不同之处在于&#xff1a;etree主要通过 xpath 进行定位&#xff0c;而 Beautifu…

基于Spring Boot+Vue 的校园健康系统设计与实现(附源码,文档)

一 简介 校园健康系统本质上是一个健康知识浏览和在线咨询的平台&#xff0c;从用户角度&#xff0c;系统包括大学生、医生和管理员。 二.主要技术 技术名作用Springboot后端框架Vue前端框架MySQL数据库 三 功能介绍 校园健康系统为用户提供医生预约服务&#xff0c;系统…

Clickhouse分布式表引擎(Distributed)查询核心原理解析

Clickhouse分布式表引擎&#xff08;Distributed&#xff09;查询核心原理解析 Clickhouse分布式表引擎&#xff08;Distributed&#xff09;写入核心原理解析Clickhouse分布式表引擎&#xff08;Distributed&#xff09;查询核心原理解析 与分布式数据写入时可以选择写分布式…

有哪家台灯好又便宜的适合学生党使用?真正合格的小学生台灯

都说眼睛是心灵的窗户&#xff0c;但是现在很多小朋友还没上初中&#xff0c;可能就早早的近视了。究其原因&#xff0c;除了和频繁观看电子屏幕密不可分之外&#xff0c;不良的用眼习惯也是一大关键。孩子写作业时不时揉眼睛的动作&#xff0c;其实只要时间一长&#xff0c;眼…

MYSQL prefer_order_index 的罪责

开头还是介绍一下群&#xff0c;如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题&#xff0c;有需求都可以加群群内有各大数据库行业大咖&#xff0c;CTO&#xff0c;可以解决你的问题。加群请联系 liuaustin3 &#xff0c;在新加的朋友会分到2群&#xff08;共…

Linux运维之初识shell

一.补充知识点 1.系统定时任务 系统定时任务需要用到crontab命令&#xff0c;但是使用此命令有一个前提&#xff0c;即需要打开crond服务。为了不那么复杂&#xff0c;可以直接使用我之前学的systemctl命令重新启动crond服务。 语法&#xff1a;crontab [-e -l -r] 选项&am…

安装zsh-theme oh-my-zsh

安装zsh yum install zsh切换到zsh chsh -s /bin/zsh exec /bin/zsh重启并且查看 echo $SHELL//查看当前shell,如果显示/bin/zsh&#xff0c;则配置成功 安装oh my zsh sh -c "$(wget https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)"到…

浅谈Java线程

大家好&#xff0c;我是易安&#xff01;今天我们简单聊下Java线程这个话题。 在Java领域&#xff0c;实现并发程序的主要手段就是多线程。线程是操作系统里的一个概念&#xff0c;虽然各种不同的开发语言如Java、C#等都对其进行了封装&#xff0c;但是万变不离操作系统。Java语…

您的天气类APP会泄露隐私吗?

不知您是否有这样的习惯&#xff0c;在早上出门前、或是在规划次日的行程时&#xff0c;都会不自觉地掏出手机、点开天气类APP进行查看。此类APP有的是智能手机自带的&#xff0c;有的是从应用商店里下载并获取的第三方应用。无论是哪种&#xff0c;它们往往都有着一个共性&…

网络安全合规-汽车行业数据合规

个人信息&#xff0c;是指以电子或者其他方式记录的与已识别或者可识别的车主、驾驶人、乘车 人、车外人员等有关的各种信息&#xff0c;不包括匿名化处理后的信息。 敏感个人信息&#xff0c;是指一旦泄露或者非法使用&#xff0c;可能导致车主、驾驶人、乘车人、车外人员等受…

神策营销云时效性升级,秒级营销即刻开启

信息化时代&#xff0c;时效性成为企业营销与管理的重要竞争力之一。高时效营销能够帮助企业提高决策效率、降低成本&#xff0c;“争分夺秒”留住用户并给用户带来更好的体验&#xff0c;它是促成企业成功营销的关键。 为了帮助企业全面提升营销时效性&#xff0c;神策营销云即…

一次修改jar包中字节码文件内容的尝试

目录 背景解决办法确定修改位置得到字节码文件修改字节码文件组合jar包 背景 最近想实现按照分节符拆分doc / docx文档的功能&#xff0c;然后就找到了这篇文章Java 按节拆分 Word 文档&#xff0c;用的依赖是&#xff1a; <dependency><groupId>e-iceblue</g…

Arduno ESP8266接入OneNET实时显示DHT11数据

Arduno ESP8266接入OneNET实时显示DHT11数据 📌相关篇《OneNET云平台数据APP端查看说明》📍《Arduno ESP8266接入中移OneNet动态显示实时数据》✨上面一篇主要是验证数据上传可行性,这次采用DHT11温湿度传感器上传真实数据到云平台进行检测,同时使用SSD1306屏幕进行数据显…

简单聊聊目标检测新范式RT-DETR的骨干:HGNetv2

【前言】 本文版权属于GiantPandaCV&#xff0c;未经许可&#xff0c;请勿转账&#xff01; 前几天疯狂刷屏的RT-DETR赚足了眼球&#xff0c;在精度和速度上体现的优势和性价比远远高于YOLO&#xff0c;而今年ChatGPT、Sam的出现&#xff0c;也让一些吃瓜群众知乎CNN没有未来了…

第8章:树

1.树是什么 一种分层数据的抽象模型前端工作中常见的树包括&#xff1a;DOM树&#xff0c;级联选择(省市区)&#xff0c;树形控件&#xff0c;…javascript中没有树&#xff0c;但是可以用Object和Array构建树 4.树的常用操作&#xff1a;深度/广度优先遍历&#xff0c;先中后…

【传统方式部署zookeeper集群与迁移至k8s】

zookeeper简介&#xff1a; zk主要服务于分布式系统、配置管理、注册中心、集群管理等&#xff1b;为什么要迁移Zookeeper集群&#xff1b;存储kafka什么数据&#xff1a;kafka有多少节点、topic名称、协调kafka正常运行。ELKKafka收集k8s日志&#xff1b;一、传统方式部署zook…