【Linux】基本指令-入门级文件操作(三)

目录

基本指令

14 head指令

15 tail指令

管道

16 find指令

17 grep指令

18 zip&unzip指令

19 tar指令

20 su指令

总结


基本指令

14 head指令

功能:在屏幕上显示文件的内容,默认显示前10行,如果加上选项-n,则可以显示n行。

语法:head -n 文件名

创建一个大文件:

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

进行head指令操作:


15 tail指令

功能:在屏幕上显示文件的内容,默认显示后10行,如果加上选项-n,则可以显示n行。

语法:tail -n 文件名

问:如何获取一个大文件的中间部分?

比如我想获取i.txt的第501行-510行,那就是在屏幕上显示500-509。

我可以先用head指令获取510行,存到一个新文件tmp.txt中,然后用tail指令访问tmp.txt的后10行:

head -510 i.txt > tmp.txt
tail tmp.txt

 

有没有更好的方法,不需要创建临时文件呢?有的,这里介绍一下管道: 

管道

Linux下一切皆文件,管道也是文件。在使用管道符 "|" 时, "|" 左边的进程以写的方式打开管道文件,将标准输出重定向到管道之中, "|" 右边的进程以读的方式打开管道文件,将标准输入重定向到管道之中。

因此,我们可以这么做:

head -510 i.txt | tail

 


16 find指令

功能:遍历Linux多叉树的文件结构,根据文件名、文件属性(大小、权限)等等查找文件,并作出相应的处理。

语法:find pathname -options

目前我们只需要会按文件名查找文件,同时重温一下路径的概念:

find [路径] -name [文件名]

①我先在当前目录/home/lhl下访问里面的文件i.txt: 

②然后我cd进入CSDN3目录,去find上级目录下的i.txt:

这里再拓展一些内容,/usr/bin路径下存储的是一系列指令文件,比如说我们想按名字查找一下head、tail和find指令:


17 grep指令

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

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

常用选项

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

 ①先nano一个新文件,在里面写一些东西:

nano grep.txt

然后ctrl+X退出,yes,回车就可以

②进行查找操作

查找字符串a:

查找字符串aaa:

查找字符串23:

③ 常用选项的效果

-i:忽略大小写

-n:顺便输出行号

-v:显示出没有 '搜寻字符串' 内容的那一行 

注:选项之间可以自由组合! 

以上只是介绍grep的用法,grep指令的过滤行文本功能决定了它可以筛选信息,比如我们可以查看日志是否有报错:

cat /var/log/messages | grep -i 'error'

还可以将grep、find和管道|一起用,查找路径/usr/include中的C头文件stdio.h:

当然以上信息我们目前看不懂是正常的,我们只需要知道grep的功能非常强大,而且它有高亮的效果。


18 zip&unzip指令

功能:即压缩和解压

语法:zip [选项] [zip文件] [要压缩的文件]
           unzip [要解压的zip文件]

常用选项:

-r         递归压缩目录下的所有文件

-d        解压到指定目录下要带的选项

如果虚拟机下不能使用zip或者unzip指令,得先用管理员root用户下载一下:

su//切换到root
//输root的密码
yum install -y zip
yum install -y unzip

为什么要进行文件压缩? 

①多个文件合并成1个文件,防止丢失

②节省磁盘空间

③进行网络传输的时候更节省时间

注:进行目录压缩时候,必须带-r选项,否则压缩包内只有空目录!

当出现红色的.zip文件时候,说明压缩完毕。

此时我把它解压到zip目录下:

unzip lhl.zip -d zip

此时再查看zip目录的树状结构,发现解压成功了: 


19 tar指令

功能:既可以压缩,也可以解压,功能随选项的增加而增加

常用选项:

-c  :建立一个压缩文件的参数指令 (create  的意思 )
-x  :解开一个压缩文件的参数指令
-t  :查看  tarfile  里面的文件
-z  :是否同时具有  gzip  的属性?亦即是否需要用  gzip  压缩?
-j  :是否同时具有  bzip2  的属性?亦即是否需要用  bzip2  压缩?
-v  :压缩的过程中显示文件
-f  :指定名称

常用的选项组合及语法:

①新建当前目录下的CSDN3目录压缩包并命名为CSDN3.tar

tar -czf CSDN3.tar CSDN3

②将CSDN3.tar解压到当前目录

tar -xzf CSDN3.tar

注:不存在两个同名文件,同名文件解压会覆盖! 

③将CSDN3.tar解压到tar_dir目录

tar -xzf CSDN3.tar -C tar_dir

④加-v选项,可以显示压缩/解压过程

tar -cvzf CSND3.tar CSDN3
tar -xvzf CSND3.tar -C tar_dir

 

⑤请注意:选项的组合是有顺序的,-cf、-xf、-czf、-xzf、-cvzf、-xvzf等等顺序组合,不能乱序,比如必须先新建一个压缩文件-c,才能命名它-f!

总结:tar指令相当于是zip和unzip指令的结合,其功能可以通过选项的增加而增加,非常方便! 


20 su指令

功能:切换用户

语法:

su         切换为root

su [普通用户名]        切换为普通用户

①普通用户切换至root用户,需要输入root的密码

这时,输入root用户的密码,而且屏幕上是不会显示的!

博主这边输错了2次密码,输错密码就会提示:Authentication failure。

②从root用户切换至普通用户,是可以直接切换不需要输入密码的

③普通用户切换至普通用户,需要输入要切换用户的密码

博主想玩一下多用户切换,怎么给自己添加用户呢?

adduser [用户名] //添加新的用户名
passwd [用户名]  //添加或更改密码

这个操作必须在root用户下。(或者普通用户在sudoer列表内,这个后面会出文章教大家将普通用户添加入sudoer列表内,目前就在root下操作即可)

切记一定要改密码!


Linux基本指令系列总结

        Linux基础阶段的常用指令就这么多:

pwd
mkdir
touch
ls
cd
rm
cp
mv
nano
cat
echo 
重定向
more
less
head
tail
| 管道
find
grep
zip & unzip
tar
su

接下来博主会陆续更新有关权限的博客,感谢大家支持!

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

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

相关文章

CompletableFuture 异步调用,获取返回值

ExecutorService executor new ThreadPoolExecutor(8, 16, 60,TimeUnit.MINUTES,new ArrayBlockingQueue<>(100));Random randomnew Random(10);//模拟查询用户列表List<User> listselectUsers();//需要执行的任务列表// 任务列表List<CompletableFuture<Us…

Android标题栏(TitleBar)绝佳解决方案

标题栏框架 项目地址&#xff1a;Github博客地址&#xff1a;Android标题栏&#xff08;TitleBar&#xff09;绝佳解决方案 想了解实现原理的可以参考文章&#xff1a;纯手工打造一个通用的标题栏 TitleBar 集成步骤 如果你的项目 Gradle 配置是在 7.0 以下&#xff0c;需要…

vscode1.83远程连接失败

&#xff08;报错信息忘记截图了 总之卡在vscode-server.tar.gz的下载那里&#xff0c;一直404&#xff0c;删了C:\Users\Administrator\.ssh\known_hosts也不管用 看了一下vscode1.83的commitID为a6606b6ca720bca780c2d3c9d4cc3966ff2eca12&#xff0c;网友说可以通过以下网…

Miniconda 使用进阶,把它添加到右键菜单中

因为最近有写 python 的需求&#xff0c;且我是用 Miniconda 来管理本地 python 环境的&#xff0c;所以就涉及到需要频繁的进入到环境的命令行中&#xff0c;每次都需要通过官方提供的快捷方式&#xff0c;然后还要一路设置环境和路径&#xff0c;好烦呀。因为之前添加过 Wind…

材质之选:找到适合你的地毯

当谈到家居装饰时&#xff0c;地毯是一个经常被忽视的重要元素。但事实上&#xff0c;地毯在家居中扮演了至关重要的角色&#xff0c;不仅可以增加舒适感&#xff0c;还可以改善室内的整体氛围。在这篇文章中&#xff0c;我们将探讨地毯的选择、尺寸、形状和材质&#xff0c;以…

去除PDF密码:轻松解锁、快速解密。

解密和找回PDF密码非常简单。具体步骤如下&#xff1a;第一步&#xff0c;在百度上搜索【密码帝官网】。第二步&#xff0c;点击“立即开始”&#xff0c;在用户中心上传需要解密或找回密码的PDF文件。这个方法非常实惠&#xff0c;而且不需要下载任何软件&#xff0c;可以在手…

vue工程化开发和脚手架

工程化开发和脚手架 1.开发Vue的两种方式 核心包传统开发模式&#xff1a;基于html / css / js 文件&#xff0c;直接引入核心包&#xff0c;开发 Vue。工程化开发模式&#xff1a;基于构建工具&#xff08;例如&#xff1a;webpack&#xff09;的环境中开发Vue。 工程化开…

Linux(CentOS)安装MySQL教程

主要参考链接 教程 1. 准备工作 1.1 安装CentOS虚拟机 教程点击 1.2 将CentOS虚拟机设置为静态IP&#xff0c;否则你每次重启虚拟机后连接数据库都要重新查IP 教程点击 1.3 如果有安装过MySQL&#xff0c;请先卸载MySQL 教程点击 1.4 虚拟机执行命令su切换到root账号(输…

【python VS vba】(3) 在python直接调用vba脚本

目录 0 前言 1 VBA 内容 1.1 EXCEL这边VBA的内容 1.2 VBA的测试代码 2 python 调用 2.1 python 调用VBA的过程和结果 2.2 代码 0 前言 前面写了这么多&#xff0c;没想到&#xff0c;其实py是可以直接支持VBA的 python的模块import xlwings&#xff0c;可以让python直…

云上智能驾驶三维重建优秀实践

本文重点介绍火山引擎多媒体实验室三维重建技术在动态、静态场景的以及结合先进光场重建技术的原理与实践&#xff0c;帮助大家能更好的了解和认识云上智能三维重建如何服务智能驾驶领域&#xff0c;助力行业发展。 智能驾驶技术的不断发展&#xff0c;正在改变着我们的出行方式…

入门到精通,计算机推荐书籍

你是否曾读过一本让你欲罢不能的计算机书籍&#xff1f;它可能为你打开了新的技术世界大门&#xff0c;或者是帮助你解决了棘手的编程难题。 推荐一、计算机是怎样跑起来的-矢泽久雄 这是一本入门书籍&#xff0c;是编者大一大二期间偶然在图书馆看到的书籍。当时编者完全是一…

【设计模式】第16节:行为型模式之“命令模式”

一、简介 命令模式&#xff1a;将请求&#xff08;命令&#xff09;封装为一个对象&#xff0c;这样可以使用不同的请求参数化其他对象&#xff08;将不同请求依赖注入到其他对象&#xff09;&#xff0c;并且能够支持请求&#xff08;命令&#xff09;的排队执行、记录日志、…

操作系统 day05(体系结构、开机过程、虚拟机)

一&#xff0c;操作系统的体系结构 内核 内核是操作系统最基本、最核心的部分&#xff0c;实现操作系统内核功能的那些程序就是内核程序这其中&#xff1a;时钟、中断、原语是与硬件关联最紧密的模块&#xff0c;而进程管理、存储器管理、设备管理更多的是对数据结构的操作&…

Spring及SpringBoot中AOP的使用

Spring中AOP示例 <dependencies><!--Spring核心包--><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>5.3.6</version></dependency><!--引入SpringBean--&…

GORM:在Go中轻松管理数据库

GORM综合介绍 - Go对象关系映射库 在现代软件开发中&#xff0c;高效的数据库管理对于构建强大的应用程序至关重要。GORM是Go开发人员寻求与数据库进行交互的简化方式的宝贵工具。GORM是Go对象关系映射的缩写&#xff0c;它为Go的面向对象世界与数据库的关系世界之间提供了桥梁…

运行项目报错error in ./node_modules/marked/lib/marked.umd.js

今天跑项目时发现一个报错&#xff0c;问题出在marked这个包&#xff0c;然后翻看package.json里面也没有这个包&#xff0c;全局搜索项目也没有这个包相关的信息&#xff0c;可它就是报错&#xff0c;索性直接把它给卸载发现还是报错 报错原因&#xff1a;包的版本太高 解决…

Ribbon负载均衡原理

一、先看下流程图 备注&#xff1a;红色后面都为拦截器的逻辑&#xff0c;主要是加载配置文件【LoadBalancerAutoConfiguration】&#xff0c;对发送http请求的RestTemplate进行包装拦截&#xff0c;逻辑拦在拦截器里面。 二、LoadBalancerAutoConfiguration 负载均衡用到配置…

数据结构 - ArrayList - 动态修改的数组

目录 实现一个通用的顺序表 总结 包装类 装箱 / 装包 和 拆箱 / 拆包 ArrayList 与 顺序表 ArrayList基础功能演示 add 和 addAll &#xff0c;添加元素功能 ArrayList的扩容机制 来看一下&#xff0c;下面的代码是否存在缺陷 模拟实现 ArrayList add 功能 add ind…

山东高新技术企业申报当年下证的知识产权能用吗?

一、申报当年下证的知识产权能用吗&#xff1f; 申报当年下证的知识产权不建议用&#xff0c;可以来年再申报。 二、我们目前有10件实用新型专利证书&#xff0c;但近三年只有5件缴纳年费了&#xff0c;还能用吗&#xff1f; 实用新型专利没有缴纳年费&#xff0c;是不能用的&a…

什么是 DevOps

DevOps是一套融合软件开发&#xff08;Dev&#xff09;和 IT 运营&#xff08;Ops&#xff09;的实践&#xff0c;旨在缩短应用程序开发周期并确保以高软件质量持续交付&#xff0c;通过采用 DevOps 实践&#xff0c;您可以帮助组织更可靠、更快速、更高效地交付软件。 什么是…