Linux基础命令2(常见的文件相关命令)

news2024/11/26 20:36:45

目录

查找文件命令

pwd  显示当前所在的工作目录(Print working directory)

cd    切换命令(change directory)

ls  查看目录下的文件(list)

tree  查看目录下的子目录(查看目录结构)

find  按照指定条件查找文件所对应的位置

locate   快速搜索文件对应的位置

whereis   快速搜索命令文件对应的位置

which  查找某个命令本身对应的位置

查看文件命令

cat 查看内容较少的纯文本文件(concatenate)

more 查看内容较多的纯文本文件

head 用于查看文件的前N行

tail 查看文件的后N行或刷新文件的最新内容

wc 对文件做统计工作(word counts)

stat  查看文件的存储细节和时间等信息(status)

grep  按照行做文件的信息提取

cut  按照列做文件的信息提取

diff  用来对文件做比较(different)

编辑文件命令

tr  替换文本内容中的字符(transform)

uniq 去除文本中连续的重复行(unique)

sort 对文本内容进行排序(默认按照首字母排序)

touch  创建空白文件,设置文件时间

mkdir  创建空白目录(make directory)

cp  复制文件或者目录命令

mv  剪切或重命名文件和目录命令(剪切后会把原始文件删除)

rm 删除文件或目录命令

dd 复制某个文件的某一部分内容,也可以转化文件

file 查询文件类型(不要通过颜色区分)

tar 打包和压缩命令


Linux系统中的一切都是文件

  所以Linux中的什么都可以更改,包括内核(kernel)

  硬盘都会映射为硬盘文件保存在/dev文件中

  系统的运行状态都会被保存在/proc文件中

Linux中文件不通过后缀来进行区分,通过文件类型来进行区分

Linux的文件可以不加后缀,加后缀只是为了方便区分

Linux是按照权限区分文件类型的


查找文件命令

命令有内置命令与外部命令

 exit、history属于内置命令

 top、reboot、ls等都属于内部命令

查找命令的位置一般用于查找外部命令对应的位置

pwd  显示当前所在的工作目录(Print working directory)

cd    切换命令(change directory)

 cd /etc/pm  切换到/etc/pm目录(绝对路径)

 cd pm        切换到此目录下的pm目录(相对路径)

 cd ~           返回用户的家目录(家目录,保存用户数据的目录)

 cd ..           返回到上一级目录

 cd -            返回到上一次所在的目录

ls  查看目录下的文件(list)

ls -a                     查看当前目录下所有的文件(包含.隐藏文件)

ls -l                      通过长格式显示文件(显示文件的权限、所有者、大小等信息)

ls -ld 目录名称     通过长格式显示此目录的信息

ls -l 文件名          通过长格式显示此文件的信息

tree  查看目录下的子目录(查看目录结构)

tree           查看当前目录结构

tree 目录   查看此目录结构

find  按照指定条件查找文件所对应的位置

可以使用正则表达式作为条件搜索对应文件

find /etc -name fstab               在/etc目录搜索文件名为fstab的文件

find / -user admin                 全盘搜索归于admin用户的文件

find / -name fstab -exec cp -rf {} . \;  将搜索结果复制到当前目录下

-exec 把find命令搜索到的结果交由紧随其后的命令做进一步处理

-perm  匹配权限

-group 匹配所有组

-size   匹配文件的大小(+100kb为超过100kb的文件,-为小于100kb的照片)

find搜索有点慢

locate   快速搜索文件对应的位置

在库文件中搜索(库文件通过updatedb命令生成,第一次使用locate命令时需要执行updatedb生成索引数据库) 库文件名称:/var/lib/mlocate/mlocate.db

locate  fstab  快速搜索fstab文件

  find搜索是需要严格匹配fstab,locate搜索是只要有关键词fstab就匹配

whereis   快速搜索命令文件对应的位置

也是基于updatedb命令所生成的索引库文件进行搜索,相比于licate更快

与locate不同的是,whereis能快速找到命令本身以及命令所对应的资料(命令手册等)的位置

whereis top  查找topt命令对应的命令本身的位置以及命令所对应资料的位置

which  查找某个命令本身对应的位置

 不太关心是否有帮助文档

  which top  查找top命令对应的命令本身的位置


查看文件命令

cat 查看内容较少的纯文本文件(concatenate)

 cat 文件名       查看文件

 -n 显示行号

more 查看内容较多的纯文本文件

more 文件名   查看文件(使用空格或者回车向下翻页)

head 用于查看文件的前N行

 head -n 10 文件名 查看文件的前10行

tail 查看文件的后N行或刷新文件的最新内容

 tail -n 10 文件名          查看文件的后10行

 tail -f /var/log/messages    持续刷新日志文件并显示出来

wc 对文件做统计工作(word counts)

统计文本文件的行数、字数、字节数等

-l只显示行数

-w 显示单词数

-c  显示字节数

wc- l /etc/passwd   显示文件的行数--显示当前系统中有多少个用户(passwd有多少行就有多少个用户)

stat  查看文件的存储细节和时间等信息(status)

stat Music/  查看目录Music的时间信息

 access: 最后一次查看文件内容的时间(访问时间)

 change:最后一次修改文件属性的时间(更换时间)

 modify:最后一次修改文件内容的时间(修改时间)

ls -l 查看文件显示出来的时间指的是最后修改的时间

修改文件内容后,为什么c和m的时间有时候会一起更改?

 因为修改文件内容后,不仅文件内容改变了,文件的大小也可能会改变

grep  按照行做文件的信息提取

 grep 关键词 文件名  显示出所有带关键词的行

 -n 显示行数

 -v 反向选择(列出没有关键字的行)

 -i 忽略大小写

cut  按照列做文件的信息提取

cut -d : -f 1 /etc/passwd  以:为间隔符,显示第一列的信息,提取/etc/passwd文件中用户的名字分别是什么

 -d 间隔符

 -f 第几列的信息

diff  用来对文件做比较(different)

 diff --brief 文件1 文件2      比较文件a和b是否相同

 diff -c 文件1 文件2          将不同的信息显示出来(哪行前有符号就表示不同)

编辑文件命令

tr  替换文本内容中的字符(transform)

tr命令没有能力去读取一个文件,所以我们可以使用cat命令结合管道符将文本内容传递给tr命令进行操作

cat 文件名 | tr [a-z] [A-Z]  将文件中的小写字符都替换为大写字符

  |将前面字符的输出结果当作后面字符的输入

执行此命令之后文件的内容不会改变,因为没有执行写入的操作

uniq 去除文本中连续的重复行(unique)

 uniq 文件名 

 只会去除相邻的重复行,不相邻的重复行不会去除

 可以先进行排序,然后去重

执行此命令之后文件的内容不会改变,因为没有执行写入的操作

sort 对文本内容进行排序(默认按照首字母排序)

sort -t : -k 3 -n 文件    文件以:作为分割符分为多段,通过第三段的内容按照数值型排序

sort 文件名 | uniq      对文件排序并去重

-n 按照数值型排序

-u 去除重复行(uniq是去除连续的相同行,sort -u是只要有相同的行就会去除)

-t  指定间隔符

-k  设置字段范围

执行此命令之后文件的内容不会改变,因为没有执行写入的操作

touch  创建空白文件,设置文件时间

创建一般文件、文本文件、配置文件(无法修改文件的更改时间)

 -a   修改  读取时间  atime

 -m  修改  修改时间  mtime

 -d  同时修改atime和mtime时间

touch 文件名                                          创建文件

touch -m "2021-2-15 10:11"  文件名   修改文件名的修改时间

mkdir  创建空白目录(make directory)

 mkdir 目录1                   创建目录1

 如果创建的目录有依赖关系(递归关系)的目录  需要使用-p操作

 mkdir -p 目录1/目录2/目录3    创建目录1/目录2/目录3,如果有就不会创建

cp  复制文件或者目录命令

cp 原始文件  复制后的文件名称    

cp  -r  原始目录  复制后的目录名称

-r 复制目录

-i 若目标文件存在则寻味是否覆盖

-p 保留原始文件的属性

-d 若对象为“链接文件”,则保留该“链接文件”的属性

-a 相当于-pdr

mv  剪切或重命名文件和目录命令(剪切后会把原始文件删除)

mv 原始文件 剪切后的文件

rm 删除文件或目录命令

rm 文件     删除文件

rm -r 目录   删除目录

rm -rf /      全盘删除-删除所有文件(误用)

-f 强制删除

  -v显示删除过程

当删除某个文件后,其实硬盘还是有这个文件的数据的,可以找专业公司或者软件进行全盘搜索

因为每个文件都是由属性块(inode)和数据块(block)两部分组成的,删除文件时只是删除了文件的属性块,会保留数据块;等下一次写入信息的时候才会陆续把原先的数据块信息做替换,所以我们才有机会做数据的恢复,不过Linux数据删除后一般是无法恢复的,并且Linux没有回收站

dd 复制某个文件的某一部分内容,也可以转化文件

dd if= 要复制的文件 of=复制后的文件 count 1 bs=30   按照指定大小30字节复制文件

 if         输入的文件名称(input file)

 of        输出的文件名称(output file)

 bs       设置块的大小(30表示30个字节,50M表示50M)

 count  设置要复制的块的个数

每个磁盘的第一个扇区的512字节都非常的重要,所以我们可以通过dd将磁盘的分区表(512字节)做备份

也可以测试磁盘性能(读写速度)

dd  if=/dev/zero  of=a  bs=1G

/dev/zero 白洞文件-聚宝盆(可以从中提取出来无穷多的数据)

/dec/null  黑洞文件-垃圾箱(一切信息往里面写入时就消除掉了)

file 查询文件类型(不要通过颜色区分)

file 文件名

tar 打包和压缩命令

tar czvf  压缩包.tar.gz 目录/文件     将目录/文件压缩为压缩包.tar.gz

 -c  创建压缩文件

 -z 使用Gzip压缩或解压(压缩格式为.tar.gz) 

 -v 显示过程

 -f 目标文件名

  -j  使用bzip2压缩或解压(压缩格式为.tar.bz2)

tar xzvf 压缩包.tar.gz -C 目录1    解压压缩包到目录1

  -x  解开压缩文件

  -C  解压到指定目录

在RHEL8中,不用带解压格式,系统会根据文件自动识别

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

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

相关文章

Grafana 系列文章(十二):如何使用Loki创建一个用于搜索日志的Grafana仪表板

概述 创建一个简单的 Grafana 仪表板, 以实现对日志的快速搜索. 有经验的直接用 Grafana 的 Explore 功能就可以了. 但是对于没有经验的人, 他们如何能有一个已经预设了简单的标签搜索的仪表板,以帮助一些团队在排除故障时快速找到他们正在寻找的东西。虽然 Expl…

云仓仓储的运行模式是什么?

仓库能够简单地定义为一个规划空间,通常是一个用于处置和贮存货物的大型商业建筑。因而,仓储是指在这样一个规划空间中存储和处置货物所触及的一切过程。仓库中常见的货物包括:;机械零配件、建筑资料、废品农产品、家具和电子产品。仓库中的一…

【面试题】经典面试题:让 a == 1 a == 2 a == 3 成立?

一、问题解析 if (a == 1 && a == 2 && a == 3) {console.log(Win) } 复制代码 如何打印除Win? 看到题目的第一眼,我是蒙蔽的.怎么可能会有如此矛盾的情况发生呢?就相当于一个人怎么可能即是小孩,又是成年人,还是老年人呢? 冷静下来,发现一些端倪。

VHDL语言基础-组合逻辑电路-概述

目录 概述: 组合逻辑电路:——电路无记忆功能 组合逻辑电路的设计方法: 传统的设计方法:采用标准组件进行设计 组合逻辑电路的设计方法: 两种设计方法的比较: 概述: 数字电路按其完成逻辑…

[Android]图片加载库Glide

目录 Glide的介绍 Glide的基本使用 指定图片的格式 Glide占位符 指定图片的大小 过渡动画 图片变换 Generated API Glide的介绍 Glide是一个快速高效的Android图片加载库,可以自动加载网络,本地文件,app资源中的文件,注重于平…

数据存储技术复习(二)未完

module3存储是数据中心内的核心元素。请说明常用的存储选项及其特点。磁盘驱动器:具有很大的存储容量,随机读/写访问闪存驱动器:使用半导体介质,提供高性能,低功耗2.若某磁盘驱动器显示每个磁道有八个扇区&…

标准舆情监测平台解决方案及流程,TOOM舆情监测工作计划有哪些?

舆情监测流程一般包括:数据收集、数据分析、信息汇报三个部分。首先,通过多种途径收集舆情数据,如网络媒体、社交媒体、博客、论坛等;其次,对收集的数据进行分析,统计舆情趋势、舆情类型等;最后,根据舆情分…

【Java】TCP的三次握手和四次挥手

三次握手 TCP三次握手是一个经典的面试题,它指的是TCP在传递数据之前需要进行三次交互才能正式建立连接,并进行数据传递。(客户端主动发起的)TCP之所以需要三次握手是因为TCP双方都是全双工的。 什么是全双工? TCP任何…

Print: Entry, “:CFBundleIdentifier“, Does Not Exist解决办法

首先执行react-native info查看我的电脑环境是: React Native Environment Info: System: OS: macOS 10.15.5 CPU: (8) x64 Intel(R) Core(TM) i7-4870HQ CPU 2.50GHz Memory: 103.91 MB / 16.00 GB Shell: 5.7.1 - /bin/zsh Binaries: Node: 12.22.12 - ~/.nvm/ve…

vulnhub靶机试验DC-1

按照大佬的文章学习了一 遍:https://blog.csdn.net/ierciyuan/article/details/127282461 前言 参考大佬的blog进行一次实践,入门级的学习,写得不好请见谅! 本次靶场实战涉及信息收集、漏洞查找与利用、getshell、数据库渗透、密…

MySQL进阶篇之视图(view)

04、视图/存储过程/触发器 4.1、视图(view) 4.1.1、简介及基本语法 1、介绍 视图(View)是一种虚拟存在的表。视图中的数据并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的。 通…

源码级别的讲解JAVA 中的CAS

没有CAS之前实现线程安全 多线程环境不使用原子类保证线程安全(基本数据类型) public class T3 {volatile int number 0;//读取public int getNumber(){return number;}//写入加锁保证原子性public synchronized void setNumber(){number;} }多线程环…

代码随想录【Day09】|28. 找出字符串中第一个匹配项的下标、459. 重复的子字符串、《字符串总结》

28. 找出字符串中第一个匹配项的下标 题目链接 题目描述: 实现 strStr() 函数。 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。 示例 1: 输…

计算机图形学:改进的中点BH算法

作者:非妃是公主 专栏:《计算机图形学》 博客地址:https://blog.csdn.net/myf_666 个性签:顺境不惰,逆境不馁,以心制境,万事可成。——曾国藩 文章目录专栏推荐专栏系列文章序一、改进缘由二、…

qt连接mysql,自编译生成驱动文件

CMakeninja编译qt所需的mysql驱动文件 想用qt连接mysql数据库,但是在qt6.0版本之后都不自带驱动需要自己编译,过程中由于不熟悉cmake以及ninja,踩了一百个坑,简单记录一下。 写在前面 csdn上也有很多大佬写得用cmake-gui来编译…

代码随想录算法训练营第43天DP动态规划62不同路径63 不同路径2

文章目录LeetCode 62不同路径题目讲解思路LeetCode 63 不同路径ii题目讲解思路小结LeetCode 62不同路径 题目讲解 思路 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。 根据题意来看机器人只能进行向右…

单链表的基本操作

此代码不可运行,含伪代码。一、 定义数据域typedef struct{ char num[8];char name[8];int score;}ElemType;二、 定义一个链表typedef struct LNode{ElemType data; //链表中结点的数据域 struct Lnode *next; //为指向下一个结点的指针域,并且所指向的…

物理师知识大杂烩|CT模拟机质量控制指南

引言 放射治疗 CT 模拟机(computed tomography simulators, CT-Sim)由带有平板床面的 CT 扫描仪、用于患者定位与体表标记的外部激光系统、CT 模拟软件以及各种硬拷贝输出设备组成。CT 模拟机为放射治疗计划设计提供了患者肿瘤、正常组织与危及器官的影…

TMDSEVM6657LS评估板恢复出厂默认状态

TMDSEVM6657LS评估板恢复出厂默认状态 前言 TMDSEVM6657LS评估板特别适用于DSP开发的初学者,但有时候拿到手的开发板几经流转,被别人修改过,也可能自己烧录过程出错,导致开发板的状态未知等原因,需要恢复到出厂默认状…

Django的安装及创建项目

Django的安装及创建demo项目 打开PyCharm,选择创建Django项目勾选使用Virtualenv创建虚拟环境,并选择合适的Python编译器版本即可。 注:如果因为其他原因(没有关闭vpn等)也可以在PyCharm提供的terminal终端&#xf…