Linux基础命令3(常见的文件相关命令--文件创建、查找、编辑等操作)

2023-12-17 22:20

本文主要是介绍Linux基础命令3(常见的文件相关命令--文件创建、查找、编辑等操作),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

查看/搜索目录下的文件

ls 

tree

find

locate

查找命令对应的文件

whereis

which

查看文件的相关属性

file

du

stat

查看文件的内容

cat

more

less

head

tail

统计/提取文件信息

grep

wc

cut

编辑文件内容

tr

uniq

diff

sort

创建/删除文件与目录

touch

mkdir

rm

rmdir

文件与目录的复制粘贴

dd

cp

mv

文件与目录的解压缩

tar

zip

rar

其它文件与目录相关命令

pwd 显示当前工作目录

cd  切换工作目录

wget


查看/搜索目录下的文件

ls 

ls 【参数】 【文件或目录】————查看目录下的内容(list)

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

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

ls -d 目录名称     通过长格式显示此目录的信息(不显示其下的各个文件)

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

ls -h                     人性化显示文件大小(一般与l一起使用)

-A:显示指定目录下所有的子目录及文件,包括隐藏文件

-c:按文件的修改时间排序

-C:分成多列显示各行

参数讲解

d                       表示文件类型

rwx------           表示文件权限  Linux 文件权限讲解_静下心来敲木鱼的博客-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/m0_49864110/article/details/129034749?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167653093116800225570789%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=167653093116800225570789&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-13-129034749-null-null.blog_rank_default&utm_term=ls&spm=1018.2226.3001.4450

.                       代表文件访问控制列表(.表示没有配置,+表示配置了文件访问控制列表)

1                       代表inode数量

root                  文件所有者

root                   文件所属组

1383                 文件的实际大小(并非文件的占用大小)

Feb 5 18:15     文件的修改时间

Music               文件名

tree

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

tree           查看当前目录结构

tree 目录   查看此目录结构

find

find  目标目录【参数】 【名称1】————在目标目录下搜索文件名为名称1的文件

find搜索有点慢

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

参数

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

 -ok                与exec类似,只是在之后后续的命令时会提醒一次,更加安全

 -perm           匹配权限

 -group          匹配所有组

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

 -nouser        没有所有者的文件

 -nogroup      没有所属组的文件

 -o                 逻辑或

 -a                 逻辑与

 -uid              指定所有者

| xargs tar cvzf  <文件名>         可以将查询的结果压缩

 -type 按照文件类型来查看

  f:普通文件

  d:目录文件

  l:符号链接文件

  s:套接字文件

  b:块设备文件

  c:字符设备文件

  p:管道文件

例子

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

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

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

find /opt -type f -nouser -ok rm{} \;       查找/opt目录下有无属主的文件,如果有直接删除

 注意:\转义符 将后面的变量转为单纯的字符

 {}是find到的每一个文件,找到一个文件,运行一次命令,找到几个文件就运行几次命令

find /etc -type f \( -nouser -o -nogroup \)    查看/etc目录下没有属主或属组的文件

find /etc -type f -perm -2777 \( -size +20k -size -50k \)    查看/etc目录下具有2777权限的文件,并且文件大小大于20k,小于50k

find / -type d -name fstab  全盘搜索名字为fstab的目录文件

按照文件的时间戳来查找文件

 以天为单位

  -atime n      依据访问时间来查找文件

  • n为整数(1),表示查找n天之前的那一天被访问的文件,在距今前n*24~(n+1)*24小时之间被访问的文件;
  • n为正数(+1),表示查找n天之前(不包含n天本身)被访问的文件,在距今前(n+1)*24小时之内被访问的文件
  • n为负数(-1),表示查找距今n天内被访问的文件,在距今前n*24小时之内被访问的文件

  -mtime     依据修改时间来查找文件

  -ctime      依据更改时间来查找文件

 以分钟为单位

  -amin

  -mmin

  -cmin

find -atime 1

find -atime +1

按照文件的权限来查找文件

find -perm  220        匹配所有者和所有组只有写权限,其他用户没有权限的文件(只匹配220)

find -perm  -220       匹配所有者和组都包含写权限的文件(会匹配220、777等,不会匹配200、020)

find -perm /220        匹配所有者包含写权限或组包含写权限的文件(会匹配200、020、220、777等)

locate

locate 名字————在库文件中快速检索存在该名称的文件名的路径

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

locate  fstab  快速搜索fstab文件

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


查找命令对应的文件

whereis

whereis 【参数】 命令名————搜索命令所在路径及帮助文档所在位置

 -b  只查找可执行文件

 -m 之查找帮助文件

whereis也是基于updatedb命令所生成的索引库文件进行搜索,相比于locate更快;与locate不同的是,whereis能快速找到命令本身以及命令所对应的资料(命令手册等)的位置

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

which

which 命令名————搜索命令所在的路径和别名 

不太关心是否有帮助文档

which top  查找top命令对应的命令本身的位置和别名(没有别名则不显示)


查看文件的相关属性

file

file 【参数】 文件名————查看文件类型(不要通过颜色区分)

 -b 只显示文件类型,不显示文件名称

 -c 显示文件名称时不显示文件类型

 -s 显示文件的简要信息

 -z 不转换压缩文件的格式

 -L 支持符号连接

文件类型

普通文件(regular files):存储数据信息,细分为二进制文件(可执行程序、图像等)和文本文件(使用ASCII或Unicode等字符编码)

目录文件(Directories):存放文件和其它目录的一种特殊文件

符号链接文件(Links):类似于Windows的快捷方式

套接字文件(Sockets):与网络通信相关的文件类型

设备文件(Device files):将I/O设备视为特殊文件,不同的设别对应不同的名称(例如sda、eth0等);分为块设备和字符设备两种

管道文件(FIFOs):用于进程间通信的特殊文件

du

du 【参数】 【文件或目录】————查看当前指定文件或目录(会递归显示子目录)占用磁盘空间大小

   -h 以容易阅读的方式显示(KB为单位)

   -m 以MB为单位输出

   -s 显示目录下所有文件总的占用大小

du -h --max-depth=1        只显示第一级目录下所使用的硬盘空间数

stat

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

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

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

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

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

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

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

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


查看文件的内容

cat

cat  【参数】 文件名————查看内容较少的纯文本文件(concatenate) 

 -b 对输出内容中的非空行标注行号

 -n 对输出内容中的所有行标注行号

more

more 文件名————查看内容较多的纯文本文件(一页一页分屏显示文件的内容)

常用的操作命令

  Enter          向下n行;默认1行

  空格键        向下滚动一屏

  ctrl+b/b       返回上一屏

  q                 中途退出more;当浏览到最后一行时会自动退出

  -num           这里的num是一个数字,用来指定分页显示时每页的行数。

  +num          指定从文件的第num行开始显示

浏览到最后一页会自动退出

less

less 文件————查看内容较多的纯文本文件,并且具有搜索功能

man命令就是通过调用less来查看帮助文档的,所以less和man的操作都是一致的

常用操作命令

 Enter         向下移动一行

 y                向上移动一行

 空格键       向下滚动一屏

 b                向上滚动一屏

 ?                向上搜索“字符串”的功能

 /                向下搜索“字符串”的功能

 n               查找下一个搜索的内容

浏览到最后一也不会自动退出,需要输入q来退出

head

head 【参数】 文件名————用于查看文件的前N行

 -n num:查看文件的前num行

 -c num:显示指定文件的前num个字符

head -n 10 文件名  查看文件的前10行(默认前10行)

tail

tail 【参数】 文件名————查看文件的后N行或刷新文件的最新内容

  -n num        查看文件的末尾num行

  -c num        显示指定文件的末尾num个字符

  -f                 表示持续侦测文件按内容,ctrl+c结束侦测

  +num          从第num行开始显示指定文件的内容

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

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


统计/提取文件信息

grep

grep 【参数】 字符串 文件名————  按照行做文件的信息提取;显示出文件中所有带字符串的行

 -n         显示行数

 -v         反向选择(列出没有匹配的行)

 -i         忽略大小写

 -A n     显示匹配到的字符所在的行及其后n行

 -B n     显示匹配到的字符所在的行及其前n行

 -C n     显示匹配到的字符所在的行及其前后n行

 -r         递归搜索目录

 -c        对匹配的行计数

 -l         只显示包含匹配模式的文件名

 -h        抑制包含匹配模式的文件名的显示

grep -rnl "adminI" /var/log     在该目录下查找包含admin内容的文件有哪些

wc

wc 【参数】 文件————对文件做统计工作(word counts);统计文本文件的行数、字数、字节数等

 -l   只显示行数

 -w 显示单词数

 -c  显示字节数

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

cut

cut 【参数】文件————按照列做文件的信息提取

 -d 间隔符

 -f 第几列的信息

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


编辑文件内容

tr

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

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

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

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

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

uniq

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

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

 也可以通过排序命令进行先进行排序,然后在通过此uniq进行去重处理

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

diff

diff 【参数】 【文件1】 【文件2】————用来对文件做比较(different)

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

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

sort

sort 【参数】 文件————对文本内容进行排序(默认按照首字母排序)

 -n 按照数值型排序

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

 -t  指定间隔符

 -k  设置字段范围

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

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

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


创建/删除文件与目录

touch

touch 【参数】 文件————创建空白文件(一般文件、文本文件、配置文件),设置文件时间(无法修改文件的更改时间)等

  -a   修改  读取时间  atime

  -m  修改  修改时间  mtime

  -d  同时修改atime和mtime时间

touch 文件名                                          创建文件

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

mkdir

mkdir 【参数】 【目录】————创建空白目录(make directories)

mkdir 目录1                            创建目录1

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

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

rm

rm 【参数】 【文件或目录】————删除文件或目录命令

  -i 删除文件或目录时提示用户

  -f 强制删除

  -v显示删除过程

  -r 删除目录

rm 文件      删除文件

rm -r 目录   删除目录

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

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

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

rmdir

rmdir 【目录名】————删除空目录(remove empty directoies)

只可以删除空目录文件

-p:在删除目录时,一起删除父目录(但父母录中必须没有其他目录及文件)


文件与目录的复制粘贴

dd

dd if=文件 of=文件 count=个数 bs=大小————复制某个文件的某一部分内容;也可以转化文件

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/sda  of=backup bs=512

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

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

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

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

cp

cp  【参数】【原始文件】【复制后的文件名称】————复制文件或者目录

 -r/R 复制目录(包含目录下的各级子目录)

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

 -p 保留原始文件的属性

 -d 若对象为“链接文件”,则保留该“链接文件”的属性(即会创建软连接)

 -a 相当于-pdr

 -f  强制复制(如果目标文件或目录存在,先删除它们再进行复制(即覆盖),并且不提示用户)

mv

mv 【参数】 【原始文件】  【剪切后的文件】————剪切或重命名文件和目录命令(剪切后会把原始文件删除)

 -i    若存在同名文件,则向用户询问是否覆盖

 -f    覆盖已有文件时,不进行任何提示

 -b   当文件存在时,覆盖前为其创建一个备份

 -u   当源文件比目标文件新时,或目标文件不存在时,才执行此操作


文件与目录的解压缩

tar

tar 【参数】 目录/文件————打包压缩、解压缩

 -f  目标文件名 

 -C  解压到指定目录

 -c  创建压缩文件

 -x  解开压缩文件

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

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

 -v 显示过程

 -t  不进行解压,直接查看压缩文件中包含了哪些文件

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

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

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

zip

zip/unzip 【参数】 目录/文件 ——将文件压缩和解压缩(zip压缩格式) 

  -r 递归处理

rar

rar/unrar 【参数】 目录/文件 ——将文件压缩和解压缩(rar压缩格式) 

  a 添加到压缩文件

  e 当前路径

  x  绝对路径

例子:rar a test.rar  123     将123文件添加到压缩文件test.rar中

           unrar e test.rar          解压缩当前路径的test.rar文件

注意:rar默认系统没有安装,需要自己安装


其它文件与目录相关命令

pwd 显示当前工作目录

pwd————显示当前所在的绝对路径(print working directory)

什么是绝对路径和相对路径

绝对路径就是从根目录一直到目标文件的目录的完整路径

相对路径是相对于当前路径的路径

cd  切换工作目录

cd  【目录】————切换所在目录

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

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

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

cd ..           返回到上一级目录(.代表当前目录)

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

cd !$          把上个命令的参数作为cd参数使用

wget 

 wget 【参数】 网址————下载网页上的文件,也可以验证网页是否正常

 wget -P 目录 网址    将网络文件下载到指定目录

  -b 后台下载

  -r  递归下载

  -c  断点续传

这篇关于Linux基础命令3(常见的文件相关命令--文件创建、查找、编辑等操作)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/506066

相关文章

linux-基础知识3

打包和压缩 zip 安装zip软件包 yum -y install zip unzip 压缩打包命令: zip -q -r -d -u 压缩包文件名 目录和文件名列表 -q:不显示命令执行过程-r:递归处理,打包各级子目录和文件-u:把文件增加/替换到压缩包中-d:从压缩包中删除指定的文件 解压:unzip 压缩包名 打包文件 把压缩包从服务器下载到本地 把压缩包上传到服务器(zip

sqlite3 相关知识

WAL 模式 VS 回滚模式 特性WAL 模式回滚模式(Rollback Journal)定义使用写前日志来记录变更。使用回滚日志来记录事务的所有修改。特点更高的并发性和性能;支持多读者和单写者。支持安全的事务回滚,但并发性较低。性能写入性能更好,尤其是读多写少的场景。写操作会造成较大的性能开销,尤其是在事务开始时。写入流程数据首先写入 WAL 文件,然后才从 WAL 刷新到主数据库。数据在开始

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

30常用 Maven 命令

Maven 是一个强大的项目管理和构建工具,它广泛用于 Java 项目的依赖管理、构建流程和插件集成。Maven 的命令行工具提供了大量的命令来帮助开发人员管理项目的生命周期、依赖和插件。以下是 常用 Maven 命令的使用场景及其详细解释。 1. mvn clean 使用场景:清理项目的生成目录,通常用于删除项目中自动生成的文件(如 target/ 目录)。共性规律:清理操作

Linux_kernel驱动开发11

一、改回nfs方式挂载根文件系统         在产品将要上线之前,需要制作不同类型格式的根文件系统         在产品研发阶段,我们还是需要使用nfs的方式挂载根文件系统         优点:可以直接在上位机中修改文件系统内容,延长EMMC的寿命         【1】重启上位机nfs服务         sudo service nfs-kernel-server resta

【Linux 从基础到进阶】Ansible自动化运维工具使用

Ansible自动化运维工具使用 Ansible 是一款开源的自动化运维工具,采用无代理架构(agentless),基于 SSH 连接进行管理,具有简单易用、灵活强大、可扩展性高等特点。它广泛用于服务器管理、应用部署、配置管理等任务。本文将介绍 Ansible 的安装、基本使用方法及一些实际运维场景中的应用,旨在帮助运维人员快速上手并熟练运用 Ansible。 1. Ansible的核心概念

Linux服务器Java启动脚本

Linux服务器Java启动脚本 1、初版2、优化版本3、常用脚本仓库 本文章介绍了如何在Linux服务器上执行Java并启动jar包, 通常我们会使用nohup直接启动,但是还是需要手动停止然后再次启动, 那如何更优雅的在服务器上启动jar包呢,让我们一起探讨一下吧。 1、初版 第一个版本是常用的做法,直接使用nohup后台启动jar包, 并将日志输出到当前文件夹n