Linux常见指令2

news2024/12/23 15:07:43

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.coloradmin.cn/o/1051337.html

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

相关文章

Springboot中slf4j日志的简单应用

1、注入依赖&#xff08;pom.xml&#xff09; <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api --> <dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>2.0.9</version> &…

C语言进程的相关操作

C语言进程的相关操作 进程简介 每个进程都有一个非负整数形式到的唯一编号&#xff0c;即PID&#xff08;Process Identification&#xff0c;进程标识&#xff09;PID在任何时刻都是唯一的&#xff0c;但是可以重用&#xff0c;当进程终止并被回收以后&#xff0c;其PID就可…

分析一段js加密代码

源代码 (function(){var KBP,EbW482-471;function wHY(r){var y2043987;var lr.length;var a[];for(var g0;g<l;g){a[g]r.charAt(g)};for(var g0;g<l;g){var vy*(g289)(y%39401);var ty*(g287)(y%31258);var xv%l;var pt%l;var ma[x];a[x]a[p];a[p]m;y(vt)%2251814;};re…

华为云云耀云服务器L实例评测|云耀云服务器L实例部署推箱子经典小游戏

[TOC](华为云云耀云服务器L实例评测&#xff5c;云耀云服务器L实例部署推箱子经典小游戏 一、前言二、Sokoban小游戏介绍2.1 Sokoban小游戏简介2.2 Sokoban小游戏玩法 三、本次实践介绍3.1 本次实践简介3.2 本次环境规划 四、购买云耀云服务器L实例4.1 购买云耀云服务器L实例4.…

跟着Nature Plant学图形颜色搭配 | caecopal包

写在前面 今天在Nature Plant(IF:16.0)期刊中看到文中的图形&#xff0c;进一步的查看后发现作者使用一个R包来进行图形颜色的搭配。就此机会也分享给大家&#xff0c;若你需要可以进一步查看及使用此包。 对于图形颜色的搭配&#xff0c;对于文章整体美观是非常重要。但是&a…

坐标系上的交互+分治与交互:CF788D

https://codeforces.com/contest/788/problem/D 坐标系上的交互有一种常见套路&#xff0c;就是抓住一些关键的线 x轴y轴yx&#xff08;就是此题&#xff09; 然后考虑接下来怎么做。 交互题常见有二分的套路&#xff0c;此题我们可以考虑推广到分治。 不断判断mid&#xf…

修改sqlmap-Tamper脚本

修改sqlmap-Tamper脚本 文章目录 修改sqlmap-Tamper脚本1 sqlmap官网2 sql注入漏洞注入尝试3 环境&#xff1a;sqli-labs/Less-26a/3.1 尝试宽字节注入: 3.2 sqlmap使用3.3准备修改sqlmap使用 4 sqlmap中-tamper工厂&#xff08;输入输出&#xff09;4.1 [参考文章&#xff1a;…

用MFC写的OCX,在HTML调用事件有响应,多线程中调用时网页上事件无响应 :用消息通知来更新可以

问题:连接成功后&#xff0c;点交易无事件。但每次点连接都有事件。直接点交易也有事件。好像跟延时有关系。 Sleep(10000)可以&#xff0c;跟延时没关系。 固定参数也无响应&#xff0c;跟参数没关系。 可能是多线程有关系。用消息通知来更新可以。 void Callback(int code…

git创建仓库并建立远程连接

创建仓库 以gitee为例 首先需要创建一个项目在gitee 中 创建仓库之后 建立连接 git init 初始化项目 git add . // 将所有文件存储到暂存区 git commit -m 自己定义的名字 // 本地提交更新 git remote add origin 远程仓库地址 // 之后就将本地和远程仓库建立连…

JavaScript 基础第三天笔记

JavaScript 基础第三天笔记 if 多分支语句和 switch的区别&#xff1a; 共同点 都能实现多分支选择&#xff0c; 多选1大部分情况下可以互换 区别&#xff1a; switch…case语句通常处理case为比较确定值的情况&#xff0c;而if…else…语句更加灵活&#xff0c;通常用于范围…

无线通信——Mesh的最后一公里问题

其实“最后一公里”问题直到现在也是在探究的话题。首先解释一下什么是“最后一公里”&#xff1a;我们下班了&#xff0c;假如公司有专车把我们送到了地铁站。这非常的方便&#xff01;从地铁站坐上回家方向的地铁。也是很省事儿&#xff01;虽然中途在地铁需要换站&#xff0…

亚信科技AntDB数据库 高并发、低延迟、无死锁,深入了解AntDB-M元数据锁的实现

AntDB-M在架构上分为两层&#xff0c;服务层和存储引擎层。元数据的并发管理集中在服务层&#xff0c;数据的存储访问在存储引擎层。为了保证DDL操作与DML操作之间的一致性&#xff0c;引入了元数据锁&#xff08;MDL&#xff09;。 AntDB-M提供了丰富的元数据锁功能&#xff0…

华为鸿蒙4,3,2禁用Google谷歌服务框架,使用最新谷歌Google play服务

华为鸿蒙4,鸿蒙3,鸿蒙2有一些应用或者游戏尤其是游戏需要最新版的谷歌play服务支持才可以使用。但是华为的鸿蒙系统解决完”设备未经 play 保护机制认证”之后,最稳定的谷歌play服务是20这个版本&#xff0c;一旦升级到最新的Google谷歌play服务&#xff0c;目前是最新版本23这…

LabVIEW应用开发——VI模块化

我们在写C语言的时候&#xff0c;一些模块化的功能或者多次调用的功能&#xff0c;我们一般会用一个函数封装起来&#xff0c;方便使用并且让代码看起来更加的简洁。这种函数一般都会包含这几个概念&#xff0c;输入参数、输出参数和返回值。而LabVIEW的VI就可以当作是一个函数…

led台灯哪个牌子最好?2022最新的台灯牌子排名

想要选好护眼台灯首先我们要知道什么是护眼台灯&#xff0c;大的方向来看&#xff0c;护眼台灯就是可以保护视力的台灯&#xff0c;深入些讲就是具备让灯发出接近自然光特性的光线&#xff0c;同时光线不会伤害人眼而出现造成眼部不适甚至是视力降低的照明设备。 从细节上看就…

EasyX趣味化编程note2,绘制基本图形

创意化编程&#xff0c;让编程更有趣 今天介绍的仍为比较简单的效果&#xff0c;由浅入深来进行学习 介绍每个函数都会附上代码和运行结果&#xff0c;感兴趣的大家可以复制粘贴运行一下看看效果&#xff0c;也可以自己进行改动&#xff0c;非常好玩且加深印象。 上节课的知识…

wsl2 更新报错问题解决记录

1、问题 win10 中安装的 wsl2&#xff0c;启动 docker desktop 时提示 wsl2 有问题&#xff1a; 于是点击推荐的地址连接到微软&#xff0c;下载 wsl2 的更新文件。之后运行&#xff0c;又报错&#xff1a; 更新被卡住。 2、解决方法 WinR 输入 cmd 打开命令行窗口&#x…

基于Vue+ELement搭建动态树与数据表格实现分页模糊查询

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是Java方文山&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的专栏《ELement》。&#x1f3af;&#x1f3af; &#x1…

self-XSS漏洞SRC挖掘

本文由掌控安全学院 - 一朵花花酱 投稿 Markdown是一种轻量级标记语言&#xff0c;创始人为约翰格鲁伯&#xff08;John Gruber&#xff09;。它允许人们使用易读易写的纯文本格式编写文档&#xff0c;然后转换成有效的 XHTML&#xff08;或者HTML&#xff09;文档。这种语言吸…

MySQL数据库基本操作--DDL

文章目录 1. DDL2. 对数据库的常用操作3. 对表结构的常用操作数据类型数值类型字符串类型日期类型 基本操作修改表结构格式 1. DDL DDL(Data Definition Language)&#xff0c;数据定义语言&#xff0c;该语言部分包括以下内容&#xff1a; 对数据库的常用操作对表结构的常用…