当前位置: 首页 > news >正文

【Linux笔记】 基础指令(二)

风住尘香花已尽

日晚倦梳头


 重命名、剪切指令 -- mv

简介:

mv 命令是 move 的缩写,可以用来移动文件或者将文件改名,是 Linux 系统下常用的命令,经常用来备份文件或者目录

语法:

mv [选项] 源文件或目录 目标文件或目录 --->重命名
mv [选项] 文件 路径 --->剪切

常用选项:

-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖 
-i :若目标文件已经存在时,就会询问是否覆盖

(重命名)测试: 

如图所示:我们在该目录下创建了一个 mack.txt 文件利用 mv 命令改成了 tank.txt

 (剪切)测试

如图所示:我们将文件 tank.txt 剪切到上级目录中


查看目标文件的内容指令 -- cat

简介:

查看目标文件的内容

语法:

cat [选项][文件]

常用选项:

-b 对非空内容输出编号
-n 对输出所有行进行编号
-s 不输入多行空格

 查看目标文件的内容

我们创建了一个 mack.txt 文件,然后进行文本编写,cat 一下就可以看到编写的内容了

扩展:echo(向显示器文件进行写入)


Linux下一切皆文件,键盘、显示器等等皆以文件来看待

printf、cout 我们向显示器进行打印 -- 向显示器文件进行写入
scanf、cin 键盘读取数据 -- 从键盘文件中读取数据


如果我不想看到 hello linux 怎么办,在用 vim 进行编写(打开+保存退出)太麻烦了!

我们可以用 echo 将显示器中打印的内容写入文件中

echo "文件内容" >目标文件 -- >符号表示输入重定向(本来要写入显示器的内容写入到文件)

注意:

如果文件不存在,就创建它

【每次写入,都要从头写入,并且要将原内容清空,然后在写入】

那么我们想继续写不想让原内容清空该怎么办呢?

 -- 我们可以使用 >> 两个大于号表示 追加

echo有自动换行的功能

 cat -b [文件名]

首先我们在 mack.txt 中写入了以上内容

所以 cat -b 是对非空内容输出编号

cat -n [文件名]

所以 cat -n 是对所有内容进行编号

 cat -s [文件名]

所以 cat -s 是即使有多个空行最后只会输出一个

扩展 tac(逆序打印文件)

我们知道 cat 是按正序打印编写内容,而 tac则是逆序打印编写内容

选项与 cat 对应

cat 的局限性

cat 适合小文件对于大文件要查找相关的内容会很不方便 ~ 因为会刷屏


全屏方式分页显示文件内容指令 -- more

简介:

全屏方式分页显示文件内容,可以往下翻动但是不能回退

语法:

more [选项][文件]

常用选项:

-n 对输出的所有行编号 
-q 退出

cnt=1; while [ $cnt -le 1000 ]; do echo "hello $cnt"; let cnt++; done > log.txt

我们先用脚本语言制造从 1 到 1000 的文件写入 log.txt

我们先用 cat 查看一下

我们可以看到 cat 在查看我们大型文件的时候刷屏了,这样就很不好 ~

试试我们的 more 

more 在命令行只会显示在分屏中显示过的内容

我们按 回撤键 表示往下翻页,但是不能往上翻

我们按 q键 表示退出 


查看文件内容的最佳指令 -- less

简介:

less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。

less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看。但若使用了 less 时,就可以使用 [pageup] [pagedown] 等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容! 除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。

语法:

less [选项/参数] 文件

常用选项:

指令:
-i 忽略搜索时的大小写 
-N 显示每行的行号 
参数:
/: 字符串:向下搜索“字符串”的功能 
?: 字符串:向上搜索“字符串”的功能 
n:重复前一个搜索(与 / 或 ? 有关) 
N:反向重复前一个搜索(与 / 或 ? 有关) 
q: q退出

首先我们可以了解到 less 浏览的内容并不会在命令行打印

其次 less 不仅可以下翻还可以回退

与参数搭配还能在分屏中快速查找自己想到的结果(/)

我们来试试 less -i

less 可以在搜索时忽略大小写


查看文件开头与结尾的内容 -- head --tail

简介:

head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头至标准输出中,而 tail 想当然尔就是看档案的结尾。

语法:

head [选项/参数] 文件
tail [选项/参数] 文件

head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头 10 行,tail 也是默认打印其相应文件的末尾 10  行

常用选项:

-n<行数> 显示行数

 head 默认是查看文件的前 10 个,tail 默认是查看文件的后 10 个

head、tail + n(显示行数)就是显示前、后的多少行

这都是取开头和结尾,那么如何取到中间的数据呢?

head、tail还可以搭配使用

格式

head <开始行数> [文件] | tail <行数>


这就用打了管道,中间的 " | " 符号就是管道,head 确定了管道的底部,而 tail 不正是显示末尾的 n 行吗,tail 就决定了管道的高度,等于从 head 开始的前 n 行


时间相关的指令 -- data

简介:

date 指定格式显示时间,例如:date +%Y:%m:%d

在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中常用的标记列表如下:

%H : 小时
%M : 分钟
%S : 秒 
%X : 相当于 %H:%M:%S 
%d : 日  
%m : 月份  
%Y : 完整年份  
%F : 相当于 %Y-%m-%d

在设定时间方面:

date -s                       //设置当前时间,只有root权限才能设置,其他只能查看。 
date -s 20080523              //设置成20080523,这样会把具体时间设置成空00:00:00 
date -s 01:01:01              //设置具体时间,不会对日期做更改 
date -s “01:01:01 2008-05-23″ //这样可以设置全部时间 
date -s “01:01:01 20080523″   //这样可以设置全部时间 
date -s “2008-05-23 01:01:01″ //这样可以设置全部时间 
date -s “20080523 01:01:01″   //这样可以设置全部时间

时间戳:

是从1970年1月1日(UTC/GMT的 午夜)开始所经过的秒数,不考虑闰秒。简单来讲:时间戳是一份能够表示一份数据在一个特定时间点已经存在的完整的可验证的数据。 它的提出主要是为用户提供一份电子证据, 以证明用户的某些数据的产生时间

就是一个时间记录,对数据产生的时间进行一个唯一认证,不可更改

当前时间转化为时间戳:时间->时间戳:date +%s
当前时间戳转化为时间:时间戳->时间:date -d@当前时间戳

data 加一些选项便可以显示当前时间!!!

显示当前时间戳 

显示时间戳上的时间


时间戳:我们开发的时候一般都是要写开发日志的,而开发日志都要写上时间戳,以便将来查找文件


 

 查找日历指令 -- cal

简介:

cal命令可以用来显示公历(阳历)日历。公历是现在国际通用的历法,又称格列历,通称阳历。

语法:
 

cal [参数][月份][年份]

常用选项:

-3 显示系统前一个月,当前月,下一个月的月历 
-j  显示在当年中的第几天(一年日期按天算,从11号算起,默认显示当前月在一年中的天数) 
-y  显示当前年份的日历 

 显示当前年份的日历

显示当前年份的第几天,比如以上的黑框框表示今天是当前年份的第 132 天


 

查找文件所在位置 -- find 

简介:

用于在文件树中按照文件名深度优先、广度优先的匹配查找对应文件,并作出相应的处理(可能访问磁盘)

语法:

find [当前查找的路径] -选项 [文件名]

常用选项:

-name   按照文件名查找文件

 

以上我们就找到了 tank.c 文件所在的位置

那么我觉得一次查一个文件太麻烦,能不能同时查多个文件呢

这个时候就要用到我们的 -o 命令,表示 或者

find [查找路径] -name [文件名] -o -name [文件名]

扩展一:which -- 查找指令文件存放的位置

作用:which 用来在我们的 liunx 搜索指定指令存储位置

这些都是我们在linux中所用到的指令 ~ 

所以指令到底是什么???

指令就是一个可执行程序,就是一个文件

就相当于你之前写过的 C 代码原本程序后缀是 .c 通过编译链接生成了 .exe 的可执行文件,这个 .exe 就像我们的 linux 指令一样只要我们输入系统就会给出对应的操作

就如我这样带路径的使用也是可以的 ~ 只是 linux 帮我们简化了

还有不理解的可以看看我接下来的操作:

我先在当前路径下创建了一个 mack.cpp 文件

这个时候我们就有了一个 mack 的可执行文件绿色

如果我们在命令行直接输入 mack 是运行不了的,加上路径之后才可以

但是当我做一件事情,将 mack 拷贝到 bin 目录

以后我们想直接执行我们的命令,这样就可以直接运行了

卸载可执行程序

所以老铁们现在知道我们运行可执行文件为什么要带 ./ 了吗

如果你不带 ./ 系统就会默认在 bin 去找,就找不到指定的文件了

扩展二:alias -- 给指令取别名

在以上我们发现有 alias 这个东西 ~ 什么意思呢?

我们先来看:

我们还是用刚刚的代码生成可执行文件 ~ 

我们发现 系统简化过的ls 下是有颜色的,而路径下的 ls 是不带色的

这两种有什么不同呢?

因为我们之前用的 ls 是一种别名!!!

别急我们来看:

我们利用 alias 将 ls -al 取了别名 tank

这个时候我们输入 tank 就等于输入了 ls -al

为什么用取别名的命令可执行文件会带颜色呢?

因为我们别名默认带了--color=auto

而我们只要这样

就可以带颜色啦 ~ 

回顾 -- 我们之前说到过的 ll 指令就是 ls -l 指令的简化,其实没什么难的就是取别名


注意:系统别名是系统开机时赋予的,我们写的别名是内存级别,在系统关闭时就会被删除


 

搜寻字符串指令 -- grep 

简介:

在文件中搜索字符串,将找到的行打印出来

语法:

 grep [选项] 搜寻字符串 文件

常用选项:
 

-i :忽略大小写的不同,所以大小写视为相同 
-n :顺便输出行号 
-v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行

我们在 log.txt 中查找带有 '9' 的字符串过滤出来

grep -i 忽略大小写的查找

grep -v 将不是目标字符串的过滤出来


 压缩文件、解压文件 -- zip、unzip

简介:

zip命令的功能是用于压缩文件,解压命令为unzip。通过zip命令可以将文件打包成 .zip 格式的压缩包,里面会包含文件的名称、路径、创建时间、上次修改时间等等信息

为什么要打包压缩?

减少网络传输的数据量,将多个文件合并成一个,方便网络传输!!!

语法:

语法: zip 压缩文件.zip 目录或文件
语法: unzip 压缩文件.zip 解压目录

常见选项:

-r 递归处理,将指定目录下的所有文件和子目录一并处理 

安装 zip 的命令:

yum install -y unzip
yum install -y zip

 

我们现在 dir3 目录下创建一个压缩包并剪切到上级目录 ~ 这个过程相当于下载

我们在解压的时候发现:我们解压的目录是空的,这是为什么呢?

因为我们在打包一个目录的时候要知道目录是一颗树要递归打包,而一个文件则是直接打包(这里就不展示了)

这下打包压缩之后再解压就已经完成啦 !!!

先介绍到这里啦~

有不对的地方请指出💞

 

 

相关文章:

【Linux笔记】 基础指令(二)

风住尘香花已尽 日晚倦梳头 重命名、剪切指令 -- mv 简介&#xff1a; mv 命令是 move 的缩写&#xff0c;可以用来移动文件或者将文件改名&#xff0c;是 Linux 系统下常用的命令&#xff0c;经常用来备份文件或者目录 语法&#xff1a; mv [选项] 源文件或目录 目标文件或目录…...

软件全套资料梳理(需求、开发、实施、运维、安全、测试、交付、认证、评审、投标等)

软件全套精华资料包清单部分文件列表&#xff1a; 工作安排任务书&#xff0c;可行性分析报告&#xff0c;立项申请审批表&#xff0c;产品需求规格说明书&#xff0c;需求调研计划&#xff0c;用户需求调查单&#xff0c;用户需求说明书&#xff0c;概要设计说明书&#xff0c…...

javacv实时解析pcm音频流

javacv实时解析pcm音频流 解析代码 try (ByteArrayInputStream inputStream new ByteArrayInputStream(bytes);){FFmpegFrameGrabber grabber new FFmpegFrameGrabber(inputStream);// PCM S16LE 格式grabber.setFormat("s16le");// 采样率grabber.setSampleRate(1…...

Matlab|考虑极端天气线路脆弱性的配电网分布式电源和储能优化配置模型

1主要内容 程序主要参考《考虑极端天气线路脆弱性的配电网分布式电源配置优化模型-马宇帆》&#xff0c;针对极端天气严重威胁配电网安全稳定运行的问题。基于微气象、微地形对配电网的线路脆弱性进行分析&#xff0c;然后进行分布式电源接入位置与极端天气的关联性分析&#…...

【Python基础】装饰器(3848字)

文章目录 [toc]闭包什么是装饰器装饰器示例不使用装饰器语法使用装饰器语法 装饰器传参带参数的装饰器类装饰器魔术方法\__call__()类装饰器示例带参数类装饰器property装饰器分页操作商品价格操作 个人主页&#xff1a;丷从心 系列专栏&#xff1a;Python基础 学习指南&…...

十、Redis内存回收策略和机制

1、Redis的内存回收 在Redis中可以设置key的过期时间&#xff0c;以期可以让Redis回收内存&#xff0c;循环使用。在Redis中有4个命令可以设置Key的过期时间。分别为 expire、pexpire、expireat、pexpireat。 1.1、expire expire key ttl&#xff1a;将key的过期时间设置为tt…...

Ansible --- playbook 脚本+inventory 主机清单

一 inventory 主机清单 Inventory支持对主机进行分组&#xff0c;每个组内可以定义多个主机&#xff0c;每个主机都可以定义在任何一个或 多个主机组内。 如果是名称类似的主机&#xff0c;可以使用列表的方式标识各个主机。vim /etc/ansible/hosts[webservers]192.168.10.1…...

【hive】transform脚本

文档地址&#xff1a;https://cwiki.apache.org/confluence/display/Hive/LanguageManualTransform 一、介绍二、实现1.脚本上传到本地2.脚本上传到hdfs 三、几个需要注意的点1.脚本名不要写全路径2.using后面语句中&#xff0c;带不带"python"的问题3.py脚本Shebang…...

5款可用于LLMs的爬虫工具/方案

5款可用于LLMs的爬虫工具/方案 Crawl4AI 功能: 提取语义标记的数据块为JSON格式&#xff0c;提供干净的HTML和Markdown文件。 用途: 适用于RAG&#xff08;检索增强生成&#xff09;、微调以及AI聊天机器人的开发。 特点: 高效数据提取&#xff0c;支持LLM格式&#xff0c;多U…...

投影、选择转SQL语言

使用以下两个表进行举例&#xff0c;第一个表为R表&#xff0c;第二个表为S表 R.AR.BR.C123456789 S.AS.BS.C101112131415161718 1、投影转SQL语言&#xff1a; 兀 A,B,C (R) 等价于select A,B,C from R 解释&#xff1a; 兀&#xff1a;相当于select (R):相当于from R…...

系统加固-自用

一、windows 1、概述 (1)、权限最高&#xff1a;system(系统账户)&#xff0c;权限比administrator权限还高 (2)、常见操作系统安全漏洞类型 缓冲区溢出漏洞TCP/IP协议漏洞web应用安全漏洞开放端口的安全漏洞 2、系统安全加固方法 (1)、系统不显示上次登录的用户名 进入…...

Java面试题:阐述Java中的自动装箱与拆箱机制,以及使用它们时可能遇到的性能问题

在Java中&#xff0c;自动装箱&#xff08;Autoboxing&#xff09;和拆箱&#xff08;Unboxing&#xff09;是Java 5引入的特性&#xff0c;它们允许基本数据类型和对应的包装类之间的自动转换。 自动装箱 自动装箱是指将基本数据类型&#xff08;如int、double等&#xff09…...

初识sql注入--手工注入

目录 可能使用的sql函数 入侵网站方式 1、文件上传漏洞 2、rce 3、sql注入 SQL注入 什么是sql注入 进行SQL注入 实验环境 开始实验&#xff08;使用information_shema数据库&#xff09; 1、进入靶场 2、报列数 下面来解释一下为什么要照上面SQL语句写 url编码 单…...

OceanBase 缺少 dbms_obfuscation_toolkit.md5 包函数的解决方案

因为 dbms_obfuscation_toolkit.md5 是一个 Oracle 不推荐继续使用的函数&#xff0c;所以 OceanBase 没有对其兼容&#xff0c;取而代之的是兼容了 dbms_crypto.hash&#xff0c;其用法详见这篇 KB 但是&#xff0c;并不是所有业务都接受修改源码&#xff0c;因为复杂系统里&…...

Java---类和对象第一节

目录 1.面向对象初步认识 1.1什么是面向对象 1.2面向对象和面向过程的区别 2.类的定义和使用 2.1简单认识类 2.2类的定义格式 2.3类的实例化 2.4类和对象的说明 3.this关键字 3.1访问本类成员变量 3.2调用构造方法初始化成员变量 3.3this引用的特性 4.对象的构造以…...

Zeller公式的应用:给定日期,确定周几

开篇 本篇文章依然是对于日期相关函数的实现。 问题概要 给定一个日期&#xff0c;返回为周几 思路分析 这个问题的思路只是对于Zeller公式的直接引用&#xff0c;不存在其他逻辑。公式详情可参考Zeller公式百科 代码实现 #include <stdio.h>// 根据Zeller公式计算 int …...

程序链接和运行 - 笔记

1 linux下程序a连接b.so后,运行时如何找到调用的函数 在Linux下,当程序A连接了动态链接库B(.so文件)后,在运行时,程序A会使用动态链接器(dynamic linker)来解析并加载动态链接库B中的函数。动态链接器会在系统中搜索动态链接库,并将它们加载到程序的地址空间中。 当…...

pyqt 按钮常用格式Qss设置

pyqt 按钮常用格式Qss设置 QSS介绍按钮常用的QSS设置效果代码 QSS介绍 Qt Style Sheets (QSS) 是 Qt 框架中用于定制应用程序界面样式的一种语言。它类似于网页开发中的 CSS&#xff08;Cascading Style Sheets&#xff09;&#xff0c;但专门为 Qt 应用程序设计。使用 QSS&am…...

websevere服务器从零搭建到上线(一)|阻塞、非阻塞、同步、异步

文章目录 数据准备(阻塞和非阻塞)、数据读写(同步和异步)小总结&#xff08;陈硕老师的总结&#xff09; 知识拓展同步执行实例异步编程实例 八股 数据准备(阻塞和非阻塞)、数据读写(同步和异步) 无论是什么样的IO都包含两个阶段&#xff1a;数据准备和数据读写。 我们的网络IO…...

【C++】引用传递 常量引用

在C中&#xff0c;引用传递和常量引用是两个常用的概念&#xff0c;主要用于函数参数传递。它们提供了对变量或对象更有效率和更安全的访问方式。 引用传递&#xff08;Pass by Reference&#xff09; 引用传递意味着当你将变量作为参数传递给函数时&#xff0c;你实际上是传…...

Docker停止不了

报错信息 意思是&#xff0c;docker.socket可能也会把docker服务启动起来 解决 检查服务状态 systemctl status dockersystemctl is-enabled docker停止docker.socket systemctl stop docker.socket停止docker systemctl stop docker知识扩展 安装了docker后&#xff0c;…...

【网络】为什么TCP需要四次挥手?

在网络通信中&#xff0c;TCP&#xff08;传输控制协议&#xff09;是一种可靠的、面向连接的协议&#xff0c;它在数据传输过程中保证了数据的可靠性和顺序性。而TCP的连接建立过程只需要三次握手&#xff0c;但是TCP的挥手过程却需要四次挥手&#xff0c;这是为什么呢&#x…...

2024自动化测试市场分析

大家都说2024年软件测试讲会卷的更厉害,从原来的功能测试到现在自动化测试,那么2024年是否可以学习自动化冲一把,我们先看一下2023年自动化测试在测试行业中的分析: 1.市场需求增长&#xff1a; 随着技术的进步和企业对软件质量的要求日益提高&#xff0c;自动化测试在测试行…...

什么是机器视觉应用解决方案?

机器视觉应用解决方案通常指的是利用视觉系统自动检测、处理和分析图像的技术方案&#xff0c;以便执行各种工业或研究任务&#xff0c;如质量控制、自动检测、导航和识别等。在LabVIEW环境中&#xff0c;这些解决方案通常涉及到硬件和软件的紧密集成&#xff0c;以实现高效的数…...

使用 scrapyd 部署 scrapy

1.scrapyd 是什么&#xff1f; Scrapyd 是一个用于部署和运行 Scrapy 爬虫项目的服务器应用程序。它使得你可以通过 HTTP 命令来部署、管理和执行多个 Scrapy 爬虫&#xff0c;非常适合持续集成和生产环境中的爬虫部署。 2.安装scrapyd 并使用 2.1 安装 scrapyd F:\scrapydTes…...

Python计算器程序代码

from tkinter import * import random class App: def __init__(self, master): self.master master self.initwidgets() #表达式的值 self.expr None def initwidgets(self): #定义一个输入组件 self.show Label(relief SUNKEN, font (Courier New, 24), width 25, bg …...

图像分割各种算子算法-可直接使用(Canny、Roberts、Sobel)

Canny算子&#xff1a; import numpy as np import cv2 as cv from matplotlib import pyplot as pltimg cv.imread("../test_1_1.png") edges cv.Canny(img, 100, 200)plt.subplot(121),plt.imshow(img,cmap gray) plt.title(Original Image), plt.xticks([]), …...

Spring Boot进阶 - 实现自动装配原理

Spring Boot的自动装配&#xff08;Auto-Configuration&#xff09;是其核心特性之一&#xff0c;它极大地简化了Spring应用的配置过程。自动装配的原理基于Spring框架的Configuration、ConditionalOnClass、ConditionalOnMissingBean等注解&#xff0c;以及Spring Boot提供的s…...

面向电商家居行业3D室内场景合成中的空间感知

本文主要介绍了3D场景合成技术在电商领域&#xff0c;尤其是家居家装行业的应用。它解释了如何使用3D场景合成创建逼真的室内设计&#xff0c;让消费者能够交互式地查看和体验产品&#xff0c;提高购物的趣味性和效率。文章提到了两种主要的3D室内场景生成算法&#xff1a;传统…...

ERROR 1045 (28000) Access denied for user ‘root‘@‘IP‘(using password YES/NO)

查看权限 要查看MySQL用户的权限&#xff0c;您可以使用SHOW GRANTS语句。这将列出用户的权限&#xff0c;包括授予的权限和可以授予其他用户的权限。 以下是查看当前用户权限的SQL命令&#xff1a; SHOW GRANTS; 如果您想查看特定用户的权限&#xff0c;可以使用以下命令&…...