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.rhkb.cn/news/144469.html

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

相关文章

【每日一题】2769. 找出最大的可达成数字

2769. 找出最大的可达成数字 - 力扣&#xff08;LeetCode&#xff09; 给你两个整数 num 和 t 。 如果整数 x 可以在执行下述操作不超过 t 次的情况下变为与 num 相等&#xff0c;则称其为 可达成数字 &#xff1a; 每次操作将 x 的值增加或减少 1 &#xff0c;同时可以选择将 …

红黑树是如何实现的?

文章目录 一、红黑树的概念二、红黑树的性质三、红黑树和AVL树对比四、红黑树的插入1. 红黑树的结点定义2. 父亲的颜色3. 叔叔的颜色为红色4. 叔叔不存在5. 叔叔存在且为黑6. 插入的抽象图 五、红黑树的验证1. 检查平衡2. 计算高度与旋转次数3. 验证 六、 红黑树与AVL树的比较 …

基于SSM+Vue的医院住院综合服务管理系统的设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用Vue技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

ROS系统读取USB相机图像数据

ROS系统读取USB相机图像数据 前言usb_cam 功能包下载与编译摄像头选择连接摄像头可配置参数 前言 usb_cam功能包简介 为了丰富机器人与外界的交互方式&#xff0c;已经增加了与机器人的语音交互方式&#xff0c;不仅使机器人能够说话发声&#xff0c;还能听懂我们说的话&#…

Windows中实现将bat或exe文件作为服务_且实现命令行安装、配置、启动、删除服务

一、背景描述 在Windows环境下进行日常的项目开发过程中&#xff0c;有时候需要将bat文件或exe文件程序注册为Windows的服务实现开机自己运行&#xff08;没有用户登陆&#xff0c;服务在开机后也可以照常运行&#xff09;、且对于那些没有用户交互界面的exe程序来说只要在后台…

STL upper_bound和lower_bound函数

声明&#xff1a; 首先包含头文件#include<algorithm> 这里的两个函数所运用的对象必须是非递减的序列&#xff08;也就是数组&#xff0c;数组必须是非递减的&#xff09;&#xff0c;只有这样才可以使用upper_bound和lower_bound这两个函数。 还有一点&#xff0c;就…

Python入门教程48:Pycharm永久镜像源的pip配置方法

国内几个好用的Python镜像服务器地址&#xff1a; 清华大学镜像站&#xff1a;https://pypi.tuna.tsinghua.edu.cn/simple/阿里云镜像站&#xff1a;https://mirrors.aliyun.com/pypi/simple/中科大镜像站&#xff1a;https://pypi.mirrors.ustc.edu.cn/simple/中国科技大学镜…

HTML5福利篇--使用Canvas画图

目录 一.Canvas元素 1.Canvas元素定义 2.使用JavaScript获取页面中的Canvas对象 二.绘制图形 1.绘制直线 2.绘制矩形 &#xff08;1&#xff09;rect() &#xff08;2&#xff09;strokeRect() &#xff08;3&#xff09;fillRect()和clearRect()函数 3.绘制圆弧 4.…

ElementUI之首页导航+左侧菜单->mockjs,总线

mockjs总线 1.mockjs 什么是Mock.js 前后端分离开发开发过程当中&#xff0c;经常会遇到以下几个尴尬的场景&#xff1a; - 老大&#xff0c;接口文档还没输出&#xff0c;我的好多活干不下去啊&#xff01; - 后端小哥&#xff0c;接口写好了没&#xff0c;我要测试啊&#x…

opencv: 解决保存视频失败的问题

摘要&#xff1a;opencv能读取视频&#xff0c;但保存视频时报错。 一、首先要确保已经下载了openh264.dll文件&#xff0c;否则保存的视频无法打开&#xff0c;详细可以浏览这个&#xff1a;opencv&#xff1a;保存视频。 二、保存视频时出现一下问题&#xff1a; OpenCV:…

COCO 数据集 人体关键点格式

图片与标注数据在 COCO官网 均提供下载 标注格式 COCO 的标注中包含 4 个部分/字段&#xff0c;"info" 描述数据集&#xff0c;"licenses" 描述图片来源&#xff0c;"images" 和 "annotations" 是主体部分 "images" 部分…

一文带你全面解析postman工具的使用

写在前面&#xff1a;本文转自今日头条作者雨滴测试&#xff0c;感兴趣可点击下方链接查看原文 基础篇效率篇高级篇 一文带你全面解析postman工具的使用 文章目录 一文带你全面解析postman工具的使用基础篇一、postman安装说明1.下载与安装2.界面导航说明3.发送第一个请求 二、…

3 OpenCV两张图片实现稀疏点云的生成

前文&#xff1a; 1 基于SIFT图像特征识别的匹配方法比较与实现 2 OpenCV实现的F矩阵RANSAC原理与实践 1 E矩阵 1.1 由F到E E K T ∗ F ∗ K E K^T * F * K EKT∗F∗K E 矩阵可以直接通过之前算好的 F 矩阵与相机内参 K 矩阵获得 Mat E K.t() * F * K;相机内参获得的方式…

87、Redis 的 value 所支持的数据类型(String、List、Set、Zset、Hash)---->List相关命令

本次讲解要点&#xff1a; List相关命令&#xff1a;是指value中的数据类型 启动redis服务器&#xff1a; 打开小黑窗&#xff1a; C:\Users\JH>e: E:>cd E:\install\Redis6.0\Redis-x64-6.0.14\bin E:\install\Redis6.0\Redis-x64-6.0.14\bin>redis-server.exe redi…

Java编码技巧:验证码

目录 1.1、EasyCaptcha&#xff08;优选&#xff0c;支持种类多&#xff0c;样式多&#xff0c;使用简单&#xff09;1.1.1、作用1.1.2、官方信息1.1.3、使用案例1.1.4、依赖1.1.5、代码1.1.6、效果1.1.7、拓展 1.2、kaptcha1.2.1、作用1.2.2、官方信息1.2.3、使用案例1.2.4、依…

DE0开发板交通灯十字路口红绿灯VHDL

名称&#xff1a;基于DE0开发板的交通灯十字路口红绿灯 软件&#xff1a;Quartus 语言&#xff1a;VHDL 要求&#xff1a; 设计一个十字路口交通信号灯的控制电路。分为两种情况&#xff0c;正常状态和报警状态。 1.正常状态&#xff1a;要求红、绿灯按一定的规律亮和灭&a…

触觉智能 PurPle Pi OH(OpenHarmony)开发板

资料汇总 内容预览 产品介绍 PurPle-Pi OH 规格书​​​​​​ 系统编译 Purple-Pi-OH Linux SDK编译 Purple-Pi-OH OHOS SDK编译 使用手册 Purple-Pi-OH Ubuntu系统使用手册 常见FAQ 常见问题 官网 官网地址 Purple Pi OH介绍 Purple Pi OH作为一款兼容树莓派的开…

多个pdf合并成一个文件,3个方法合并pdf

如何把多个pdf合并成一个文件&#xff1f;在我们日常的工作中&#xff0c;经常会遇到一些需要处理的文件&#xff0c;其中包括PDF文件。特别是当我们需要将多个PDF文件合并成一个PDF文件时&#xff0c;会面临一些困难。这样的情况下&#xff0c;我们的阅读能力会受到限制&#…

软件测试中的测试工具和自动化测试

1. 测试工具 测试工具也分为不同人员使用的 开发人员&#xff1a;测试框架&#xff0c;编写测试用例&#xff1b;各类线上dump分析工具如windgb&#xff1b;开发时的集成IDE工具如Visual Studio&#xff0c;idea等等 面向不同测试需求的测试工具 软件测试是软件开发生命周期…

手摸手带你 在Windows系统中安装Istio

Istio简介 通过负载均衡、服务间的身份验证、监控等方法&#xff0c;Istio 可以轻松地创建一个已经部署了服务的网络&#xff0c;而服务的代码只需很少更改甚至无需更改。 通过在整个环境中部署一个特殊的 sidecar 代理为服务添加 Istio 的支持&#xff0c;而代理会拦截微服务…