【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 目录下创建一个压缩包并剪切到上级目录 ~ 这个过程相当于下载

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

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

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

先介绍到这里啦~

有不对的地方请指出💞

 

 

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

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

相关文章

GitHub操作

远程库-GitHub GitHub网址 GitHub是全球最大的远程库 1. 创建远程库 2. 远程仓库操作 2.1 创建远程仓库别名 git remote -v 查看当前所有远程库地址别名 git remote add 别名 远程地址 设置远程库地址别名 案例操作 起一个别名会出现两个别名&#xff0c;是因为既可以拉取…

vscode默认终端设置为cmd的方法

vscode默认终端是powershell,执行某些命令时会提示权限等问题&#xff0c;如果更习惯使用cmd终端的话&#xff0c;可以将默认终端配置为cmd。 方法一&#xff1a; 方法二&#xff1a; 如果你想更改默认的终端&#xff0c;可以通过以下步骤操作&#xff1a; 打开 VSCode。使用…

深入理解Linux下的网络监控工具:iftop

目录标题 1. 什么是iftop?2. 安装iftop在Debian/Ubuntu上安装在CentOS/RHEL上安装在其他Linux发行版上 3. 使用iftop监控网络流量命令行选项界面说明交互命令 4. 相关参数及说明 在维护和监控Linux服务器时&#xff0c;了解网络流量的细节非常重要。网络监控可以帮助我们诊断延…

el-select下拉框 添加 el-checkbox 多选框,支持全选、取消全选

el-select下拉框 添加 el-checkbox 多选框&#xff0c;支持全选、取消全选 前言一、实现思路二、实现代码1.模板代码2. css 样式3.js 代码 DEMO 演示总结 前言 实现效果预览 提示&#xff1a;本内容基于element-ui 组件实现&#xff0c;如果使用其他组件库、可参考下面实现方…

5/11后面部分:+顺序排序+元素交换+计算每门课程的各种成绩+存放规律的数据 注意:一味的复制肯定要出问题,第2个的最后一部分有修改,注意观察

目录 第一个已经输出过一次&#xff1a; 第二个: 编程实现&#xff1a;程序功能是用起泡法对数组中n个元素按从大到小的顺序进行排序。 ​编辑的确出现了一些问题哦&#xff1a; ​编辑目前是可以运行&#xff0c;但AI不给我们通过&#xff1a; 最后还是我的代码获胜&#x…

【Android】Kotlin学习之Lambda表达式

java和kotlin对比 Lambda语法 Lambda隐形参数 it 也可以不使用指定的名称it, 可以 自定义 Lambda 使用下划线

俄罗斯方块的代码实现

文章目录 首先是头文件的引入部分接下来是一些预处理指令接下来定义了两个结构体&#xff1a;接下来是全局变量g_hConsoleOutput&#xff0c;用于存储控制台输出句柄。之后是一系列函数的声明最后是main函数源码 首先是头文件的引入部分 包括stdio.h、string.h、stdlib.h、tim…

09 - 函数调用

---- 整理自狄泰软件唐佐林老师课程 文章目录 1. 函数定义及调用1.1 自定义函数的语法1.2 make 解释器中的预定义函数1.2.1 预定义函数的调用1.2.2 问题1.2.3 本质分析 2. 示例代码 1. 函数定义及调用 makefile 中支持函数的概念 make 解释器提供了一系列的函数供 makefile 调…

git 推送github 选https遇到登录 openSSH问题

使用https需要使用github令牌token作为密码&#xff0c; 使用SSH不需要登录。 还有一个问题&#xff1a; 创建github仓库后没有quick setup页面解决办法 千万不要点击任何多的操作&#xff01;&#xff01;&#xff01;输入仓库名&#xff0c;直接create&#xff01;&#x…

SPA模式下的多页面跳转原理及实现

jQuery Mobile在SPA模式下的多页面跳转原理及实现案例 文章目录 jQuery Mobile在SPA模式下的多页面跳转原理及实现案例前言一、SPA的实现原理和代码分析1.实现原理说明&#xff08;1&#xff09;index.html&#xff08;2&#xff09;index.js&#xff08;3&#xff09;page2.ht…

华为交换机操作系统VRP的详解

3.1.1 什么是VRP VRP是华为公司从低端到高端的全系列路由器、交换机等数据通信产品的通用网络操作系统&#xff0c;就如同微软的Windows操作系统之于PC&#xff0c;苹果公司的IOS操作系统之于Iphone。VRP可以运行在多种硬件平台之上&#xff0c;并拥有一致的网络界面、用户界面…

【Qt 学习笔记】Qt常用控件 | 多元素控件 | Table Widget的说明及介绍

博客主页&#xff1a;Duck Bro 博客主页系列专栏&#xff1a;Qt 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ Qt常用控件 | 多元素控件 | Table Widget的说明及介绍 文章编号&#…