Linux常见指令2

Linux常见指令[2]

  • 一.Linux常见指令
    • 1.man
      • 补充知识:nano
    • 2.cp
    • 3.mv
    • 4.cat
      • 补充知识:echo
      • 输出重定向
      • 追加重定向
      • 回到cat
      • cat其他用法
    • 5.less和more
    • 补充内容
      • 回到less
    • 6.head和tail
      • 补充知识:命令行管道

一.Linux常见指令

前言:为了方便我们在Linux中写指令
介绍一下:
1.clear指令:
清屏操作
2.在Linux的命令行中,可以通过使用上下键来翻阅历史使用过的命令
3.Alt+Enter键:进入全屏模式,退出全屏模式

1.man

在这里插入图片描述
在这里插入图片描述
按q退出后,自动切换至下一行命令
在这里插入图片描述
我们刚才查看的是Linux下的ls命令,也就是使用的man手册的1号手册
那么我们接下来看一下3号手册
以printf为例
在这里插入图片描述

你会发现,这里依然是使用的1号手册,那么这是为什么呢?
这是因为printf在shell脚本中也是一个命令,但是这个命令跟C语言中的printf函数没有任何关联,它就是一个可执行程序
也就是说我们完全可以这样做
在这里插入图片描述
但是我们就是想让它在3号手册去查,该怎么办呢?
在这里插入图片描述
在这里插入图片描述
所以:

man 手册编号 查找的内容

如果大家使用man 3 printf后查不到,那么请使用root账号执行以下命令

yum install -y man-pages

为了讲解下面的cp命令,我们先了解一下nano工具

补充知识:nano

为了方便后续操作的理解,下面先给大家介绍一个工具nano(相当于windows中的记事本)
我们执行了

nano file.txt

后进入了下面这个界面,并且写了一段C语言代码
在这里插入图片描述
这里的^代表着ctrl键,
当我们想退出时,按ctrl+x
然后它问我们是否需要保存
在这里插入图片描述
我们输入y
在这里插入图片描述
然后按回车键
成功退出
在这里插入图片描述
如果大家的系统中没有nano
那么使用root账号执行以下命令:

yum -install -y nano

2.cp

大家应该知道:在windows中:同级目录下不允许存在同名文件或者同名目录,
在Linux中也是如此
windows中同名文件区分大小写,Linux中也是如此
在这里插入图片描述
我们把file.txt拷贝到了上级目录下
这里先介绍一下cat命令:
在这里插入图片描述

在这里插入图片描述
发现这两份文件内容完全相同,验证了cp命令的正确性

那么我们能不能拷贝到当前目录中呢?
在这里插入图片描述
答案是:不可以
那么我们非要拷贝到当前目录中呢?
我们可以给他改个名字
在这里插入图片描述
这样就成功拷贝到当前目录中了

以上我们证实了cp能拷贝文件,
那么cp能不能拷贝目录呢?

我们创建了一个目录dir1,
并且在dir1中创建了4个文件
想要拷贝到上级目录中,但是无法拷贝
因为cp默认不能拷贝目录
在这里插入图片描述
但是我们就是想要拷贝目录,怎么办?

cp -rf 目录名 目标位置

在这里插入图片描述
那么我如果想把dir1拷贝到当前目录下可以吗?

我们执行了:
cp -rf dir1 dir1

在这里插入图片描述
结果发现我们把dir1拷贝到了dir1目录里面,并没有拷贝到当前目录里面(刚才多拷贝的我随手就删了)
在这里插入图片描述
那么我们就只能改一下名字了
在这里插入图片描述
在这里插入图片描述
我们也可以把该目录拷贝到其他目录下,并且可以同时更改文件名(这里以拷贝到/home/wzs目录下为例)

注意:拷贝的时候隐藏文件并不会拷贝过去
原因:

1.隐藏文件:我们拷贝的时候默认是我们自己认为把我们所能看到的文件都拷贝过去,
如果我们自己知道有隐藏文件的话,那么我们可以把隐藏文件单独拷贝过去
如果我们自己不知道有隐藏文件,那么隐藏文件的目的就达到了

2.隐藏文件就不应该被拷贝过去,因为每一个目录里面都自带两个隐藏文件
分别是一个点和两个点
如果把它们也拷贝过去,势必会发生目标目录下文件名的冲突问题

3.mv

在这里插入图片描述

注意:mv和cp一样,(src:源文件,dst:目标文件)
mv src dst:
如果dst是一个目录,那么就会把src移动到dst这个目录里面
如果dst是一串路径后面跟有名字,那么就会把src移动到对应路径下并且把名字改成你所指定的那个名字

mv命令就相当于windows系统下的剪切命令
下面我们演示一下
在这里插入图片描述
我们把当前目录下的dir1 mv 到了上级目录,并且重命名为dir2,
然后我们分别ls上级目录下的dir2和当前目录下的dir1,发现移动成功

同理,普通文件也可以mv

注意:mv还可以对一个文件进行重命名

在这里插入图片描述

mv src dst
当dst为当前路径时:
(1)当dst为已经存在的目录时,mv命令会把src移动到dst目录下面
(2)当dst是尚未存在的目录是,mv命令会把src移动到当前路径下,名字改为dst,也就是将src重命名为dst
如上图所示,我们将目录newdir 重命名为mvdir
对于普通文件也是如此

4.cat

在这里插入图片描述

补充知识:echo

在这里插入图片描述
echo命令:
1.我们输入什么内容,它就会向显示器中打印什么内容
在这里插入图片描述
2.echo “xxx” > 文件名
如果这个文件存在,那么会清空该文件的所有内容,然后写入xxx内容
如果这个文件不存在,那么会创建这个文件,然后写入xxx内容,类似于C语言中的fopen中的"w"选项

echo写入文件,默认会写入"\n"换行符

关于C语言文件操作的知识,大家可以看我的这篇博客:
C语言文件操作详解
在这里插入图片描述

输出重定向

下面我们隆重介绍一个概念:输出重定向
(两个作用:1.输出 2.重定向(即:重新改变了它的方向))

echo "hello world"  默认是向显示器中显示的
echo "hello world" > 9-29.txt   现在直接显示到了文件当中

在这里我们先引入一个Linux的设计哲学

Linux下一切皆文件:
Linux的设计者以这种哲学理念来设计Linux,
这么做有利于减少Linux系统的编码维护成本
这个哲学理念我们以后还会谈到,大家先有一个印象即可

那么我们回过头来继续去理解重定向

echo “hello world” 默认是向显示器中显示的 ------------ 默认是向显示器这个文件进行写入

echo “hello world” > 9-29.txt 现在直接显示到了文件当中 ------------ 现在向9-29.txt这个文件进行写入了

那么以后我们新建一个文件又多了一个选择

>文件名

在这里插入图片描述
又因为输出重定向在写入时默认会先清空该文件,那么我们发现
在这里插入图片描述
我们也可以通过相同的方式去清空一个文件

如果我们就是不想清空这个文件,我就是想要在它末尾追加新的内容,怎么办呢?
下面我们介绍一下:追加重定向

追加重定向

在这里插入图片描述

echo “hello 9.29-1” >> appendFile.txt
echo “hello 9.29-2” >> appendFile.txt

实现了我们刚才的需求,这就相当于C语言文件操作中的fopen的"a"选项

那么有没有>>>呢?,答案是:没有

接下来我们就能够向文件中写入多行内容了
那么我们回过头来继续学习cat

回到cat

1.cat -n: 对输出的所有行编号
在这里插入图片描述
2.cat -s:不输出多行空行
在这里插入图片描述
3.cat -b:对非空输出行编号
在这里插入图片描述
4.tac
逆向输出文件内容
在这里插入图片描述

cat其他用法

在这里插入图片描述

输入cat后,我们输入什么,cat就给我们打印什么(按ctrl+c)后退出

我们翻译一下:
输入cat后,我们输入什么,cat就给我们打印什么
cat从键盘文件中读取什么,就向显示器文件写入什么

也就是说cat默认读取的时候是从键盘文件中读取的
如果我们想要让cat从其他文件中读取呢?
在这里插入图片描述
我们就引出了输入重定向:<

<:把本来应该在键盘文件中读入的内容,更改成为普通文件中进行输入

cat的用途:通常用来打印一些比较短小的文件内容

5.less和more

那么很长的文件内容呢?
这里就要说一下more(现在已经不常用了)和less了

补充内容

为了写出很长的文件内容,我们介绍一行命令行的shell脚本(先用一下)

i=0; while [ $i -le 10 ]; do echo "hello $i";touch $i.txt; let i++;done
这里的le:小于等于的意思
i是变量,从0一直++到10

在这里插入图片描述
打印了11行信息 并且 创建了11个文件,(这个命令可以跟多条)

介绍完了之后,我们用一下这个命令

i=0; while [ $i -le 1000 ]; do echo "hello $i"; let i++;done > HelpFile.txt

在这里插入图片描述
制造了一个大文件
这是我们cat之后的一部分
很显然这么大的文件用cat去查看内容真的很不方便
在这里插入图片描述
所以我们要用到less

回到less

讲解less前,我们先说一下more

more HelpFile.txt(按q退出)

在这里插入图片描述
然后我们可以按回车键来逐行往下翻
但是按上,按下是没有反应的(所以more现在很少用)
在这里插入图片描述

而我们查文件的时候应该是也可以往上翻,也可以往下翻,所以我们要重点推荐less

less HelpFile.txt(按q退出)

在这里插入图片描述
我们可以回车往下翻,也可以按上,按下
还可以这样
在这里插入图片描述
我们输入了927
然后它就帮助我们查找到了927
在这里插入图片描述
所以这个less的主要用途

1.可以让我们在不打开某个代码文件的情况下查看该文件的源代码
2.可以查看一些简单的日志文件

在这里插入图片描述
比方说我们想要查看一个四五百行的代码,可以不用vim或者nano,直接用less就行

6.head和tail

如果我们指向查看一个文件的开头位置若干行或者结尾位置若干行呢?
就需要用到head和tail了
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
默认是显示前10行
tail也是如此

补充知识:命令行管道

那么如果我们想要提取一个大文件的任意一个中间部分呢?(刚才那个文件一共1001行)

比方说我们想要提取这个文件的第800行到第810行呢?

第一种做法:
先提取头部的810行,再提取尾部的10行
第二种做法:
先提取尾部的201行,在提取头部的10行

我们可以先把第一步得到的结果重定向到一个临时文件中
然后再在临时文件中执行第二部操作

这里以第一种做法为例:
第一步:把HelpFile.txt的前810行重定向到临时文件temp.txt中
在这里插入图片描述
第二步:提取后10行
在这里插入图片描述
这样的做法可以,但是毕竟要形成临时文件,太不优雅了
并且很明显的是:

head -810 HelpFile.txt 的输出作为了tail -10的输入

所以我们用到了命令行管道
在这里插入图片描述
这个|(就是连接两个指令的这个竖划线)就是命令行管道,也就是将

head -810 HelpFile.txt 的输出作为了tail -10的输入

管道中流动的是上一条指令的输出数据,这个数据被上一条指令交给了管道
管道在把这个数据作为下一条指令的输入
这就是一个流水线作业

那么如果我们想要局部性的逆置一下呢?
在这里插入图片描述
我要是逆置完了之后在想提取前三行呢?
在这里插入图片描述
很像一条流水线

先tail,后head:
在这里插入图片描述

以上就是Linux常见指令2,希望能对大家有所帮助!

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

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

相关文章

zemax埃尔弗目镜

可以认为是一种对称设计&#xff0c;在两个双胶合透镜之间增加一个双凹单透镜 将半视场增大到30&#xff0c;所有的轴外像差维持在可以接受的水平。 入瞳直径4mm波长0.51、0.56、0.61半视场30焦距27.9mm 镜头参数&#xff1a; 成像效果&#xff1a;

基于SpringBoot的教学资源库系统的设计与实现

目录 前言 一、技术栈 二、系统功能介绍 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 社会的进步&#xff0c;教育行业发展迅速&#xff0c;人们对教育越来越重视&#xff0c;在当今网络普及的情况下&#xff0c;教学模式也开始逐渐网络化&#xff0c;各大…

Scala第二章节

Scala第二章节 scala总目录 章节目标 掌握变量, 字符串的定义和使用掌握数据类型的划分和数据类型转换的内容掌握键盘录入功能理解Scala中的常量, 标识符相关内容 1. 输出语句和分号 1.1 输出语句 方式一: 换行输出 格式: println(里边写你要打印到控制台的数据);方式二…

NSSCTF做题(4)

[NISACTF 2022]checkin 简单的一道代码审计了 但是发现传参传不上去 后来发现 在选中nisactf的时候&#xff0c;注释里面的内容也被标记了 不知道是为什么&#xff0c;把它复制到010里边去看看 发现了不对的地方 nisactf应该传参 根据这个进行url编码 我们选择实际的参名和…

用ChatGPT编写一个词卡显示网页

一、问题缘起 之前&#xff0c;我就发觉很多老师喜欢通过播放单词音频&#xff0c;显示单词拼写&#xff0c;这种词卡的形式来帮助学生记忆单词。于是&#xff0c;我就用Python制作了一个记单词软件&#xff0c;可以实现对words.txt中的单词滚动显示&#xff0c;播放发音&…

MySQL学习笔记23

逻辑备份&#xff1a; 1、回顾什么是逻辑备份&#xff1f; 逻辑备份就是把数据库、数据表或者数据进行导出&#xff0c;导出到一个文本文件中。 2、逻辑备份工具&#xff1a; mysqldump&#xff1a;提供全库级、数据库级别以及表级别的数据备份。 mysqldumpbinlog&#xff…

【Java 进阶篇】MySQL多表查询:内连接详解

MySQL是一种强大的关系型数据库管理系统&#xff0c;允许您在多个表之间执行复杂的查询操作。本文将重点介绍MySQL中的多表查询中的一种重要类型&#xff1a;内连接&#xff08;INNER JOIN&#xff09;。内连接用于检索满足两个或多个表之间关联条件的行&#xff0c;它能够帮助…

华为OD机试 - 快递业务站 - 并查集(Java 2023 B卷 200分)

目录 专栏导读一、题目描述二、输入描述三、输出描述1、输入&#xff1a;2、输出&#xff1a;3、说明&#xff1a; 四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明 华为OD机试 2023B卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机…

MySQL 中的索引

文章目录 一、索引的创建二、聚簇索引与非聚簇索引三、联合索引和索引下推四、B 树索引 一、索引的创建 创建索引的方式包括两种&#xff1a; 隐式创建&#xff1a;数据库一般会在创建 PRIMARY KEY 和 UNIQUE 约束列时自动创建索引。显示创建&#xff1a;使用 CREAT INDEX 语…

全面解读 SQL 优化 - 统计信息

一、简介 数据库中的优化器&#xff08;optimizer&#xff09;是一个重要的组件&#xff0c;用于分析 SQL 查询语句&#xff0c;并生成执行计划。在生成执行计划时&#xff0c;优化器需要依赖数据库中的统计信息来估算查询的成本&#xff0c;从而选择最优的执行计划。以下是关…

基于PHP+MySQL的养老院管理系统

摘要 随着21世纪互联网时代的兴起&#xff0c;我们见证了人们生活方式的巨大改变。这个时代不仅深刻影响了我们的生活&#xff0c;还改变了我们对信息科学的看法。社会的各个领域都在不断发展&#xff0c;人们的思维也在不断进步&#xff0c;与此同时&#xff0c;信息的需求也与…

2023-9-29 JZ32 从上往下打印二叉树

题目链接&#xff1a;从上往下打印二叉树 import java.util.*; import java.util.ArrayList; /** public class TreeNode {int val 0;TreeNode left null;TreeNode right null;public TreeNode(int val) {this.val val;}} */ public class Solution {public ArrayList<I…

Ubuntu 部署 Seata1.7.1

一、环境说明 IP操作系统程序备注10.0.61.22ubuntu20.04PostgreSQL-14.11已提前部署10.0.61.21ubuntu20.04Nacos-2.1.0已提前部署10.0.61.22ubuntu20.04seata-server-1.7.1本文将要部署 二、部署 1. 下载 wget https://github.com/seata/seata/releases/download/v1.7.1/se…

LabVIEW风力涡轮机的雷电流测量系统中集成高速摄像机

LabVIEW风力涡轮机的雷电流测量系统中集成高速摄像机 随着全球风电装机容量的快速增长&#xff0c;雷电活动对风力发电机组造成的损害受到更多关注&#xff0c;特别是在雷电活动强烈的地区。在冬季闪电期间&#xff0c;风力涡轮机等高层结构会受到向上的雷击。众所周知&#x…

Spine Web Player教程

官方文档教程&#xff1a; Spine Web Player 报错&#xff1a; 1、Q:报Animation bounds are invalid XX错误&#xff1f; A:请校对cdn或者npm install的版本号是否与json资源内版本号一致。

信息论基础第二章阅读笔记

信息很难用一个简单的定义准确把握。 对于任何一个概率分布&#xff0c;可以定义一个熵&#xff08;entropy&#xff09;的量&#xff0c;它具有许多特性符合度量信息的直观要求。这个概念可以推广到互信息&#xff08;mutual information&#xff09;&#xff0c;互信息是一种…

github想传至远程仓库显示fatal: remote origin already exists. (远程来源已经存在 解决办法)

参考:https://blog.csdn.net/qq_40428678/article/details/84074207 在当我们输入git remote add origin https://gitee.com/(github/码云账号)/(github/码云项目名).git 就会报如下的错 fatal: remote origin already exists. 翻译过来就是&#xff1a;致命&#xff1a;远程…

ElementUI之首页导航及左侧菜单(模拟实现)

目录 ​编辑 前言 一、mockjs简介 1. 什么是mockjs 2. mockjs的用途 3. 运用mockjs的优势 二、安装与配置mockjs 1. 安装mockjs 2. 引入mockjs 2.1 dev.env.js 2.2 prod.env.js 2.3 main.js 三、mockjs的使用 1. 将资源中的mock文件夹复制到src目录下 2. 点击登…

HTML详细基础(三)表单控件

本帖介绍web开发中非常核心的标签——表格标签。 在日常我们使用到的各种需要输入用户信息的场景——如下图&#xff0c;均是通过表格标签table创造出来的&#xff1a; 目录 一.表格标签 二.表格属性 三.合并单元格 四.无序列表 五.有序列表 六.自定义标签 七.表单域 …

微信公众号网页授权登录获取用户基本信息

概述 微信公众号网页授权登录后微信获取用户基本信息&#xff0c;部署即可运行完整demo 详细 一、前言 &#xff08;1&#xff09;适合人群 1&#xff0c;JAVA服务端开发人员 2&#xff0c;初级人员开发人员 3&#xff0c;了解spring springboot maven 3&#xff0c;了…