Linux文件相关常用命令(超全超详细)

2023-05-16

目录

command终端命令格式:command [-options] [parameter]

1.ls命令

2. cd命令

3. touch 命令

 4. mkdir命令

5. pwd命令

6. clear 命令

7. rm命令

8. cp命令

9. mv命令

10. tree命令

11. cat命令

12. more命令

13. less命令

14. grep命令

15. find命令

16. tail 命令

17. head 命令

18. tr命令

19. wc命令

20. stat命令

 21. diff命令

22. dd命令

23. file命令

24. vi(Visual interface)命令

25. echo命令

26. date命令

27. cal命令

28. tar命令

29. 重定向>和>>

30. 管道 |

31. wget命令

command终端命令格式:command [-options] [parameter]

command:命令名,相应功能的英文单词或单词的缩写

[-options]:选项,可用来对命令进行控制,也可以省略

parameter:传给命令的参数,可以是0个、1个或多个

例如:查阅命令的帮助信息

command --help         显示command的帮助信息 
# 例如:
mkdir --help
man command            查阅command命令的使用手册
# 例如:
man mkdir

1.ls命令

ls命令查看当前目录中的文件信息,格式:ls [选项] [文件]

ls -a         查看所有文件列表(可查看隐藏文件)
ls -l         以列表方式显示文件的详细信息
ls -h         配合-l以人性化的方式显示文件大小
ls -l -h      显示文件大小更加直观
ls -lh 
ls -hl
ls -lha 
ls通配符的使用
*         代表任意数个字符
?         代表任意一个字符,至少1个
[]        表示可以匹配字符组中的任一一个
[abc]     匹配a、b、c中的任意一个
[a-f]     匹配从a到f范围内的任意一个

例如:

ls 1*
ls *1.txt
ls *3*
ls 1?1.txt
ls [123]23.txt
ls [1-3]23.txt

2. cd命令

cd命令用于切换工作路径,格式:cd [目录名]

linux下文件和目录特点:
.     代表当前目录
..    代表上一级目录

cd        切换目录
cd ~      切换到当前用户的主目录(家目录~)
cd .      保持在当前目录不变
cd ..     切换到上级目录
cd -      可以在最近两次工作目录之间来回切换

例如:

相对路径:在输入路径时,最前面不是/或~,表示相对当前目录所在的目录位置

绝对路径:在输入路径时,最前面是/或~,表示从根目录/家目录开始的具体目录位置

3. touch 命令

touch命令用于创建空白文件或设置文件的时间,格式: touch [选项 ] [文件]。

参数:

-a 仅修改“读取时间”(atime)

-m 仅修改“修改时间”(mtime)

-d 同时修改 atime和mtime

touch 文件名             如果文件不存在,可以创建一个空白文件;如果文件已存在,可以修改文件的末次修改日期

例如:对file.txt文件进行修改

 4. mkdir命令

mkdir命令用于创建空白的目录,格式:mkdir [选项] 目录。

参数:
-p         可以递归递归创建出具有嵌套叠层关系的文件目录

mkdir 文件夹名           创建一个新的目录
例如:
mkdir -p a/b/c/d        递归创建多个目录

5. pwd命令

pwd命令用于查看当前所在文件夹目录

6. clear 命令

clear命令用于清屏

7. rm命令

rm命令用于删除文件或目录,格式:rm [选项 ] 文件。

rm            删除文件或目录
rm -f         强制删除,忽略不存在的文件,无需提示
rm -r         递归地删除目录下的内容,删除文件夹时必须加此参数
rm *1.txt     删除以1.txt结尾的所有文件
rm -r *
rm -rf *      强制删除该文件夹中所有文件 (删除完成不可恢复)

8. cp命令

cp命令用于复制文件或目录,格式:cp [选项 ] 源文件 目标文件。

如果目标文件是目录,则会把源文件复制到该目录中;

如果目标文件也是普通文件,则会询问是否要覆盖它;

如果目标文件不存在,则执行正常的复制操作。

cp 源文件 目标文件            复制文件或目录
cp -i 源文件名 目录名         覆盖文件前提示
cp -r 源文件名 目录名         若给出的源文件是目录文件,则cp将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名
cp -d 源文件 目标文件         若对象为“链接文件”,则保留该“链接文件”的属性
cp -p 源文件 目标文件         保留原始文件的属性
cp -a 源文件 目标文件         相当于-pdr

9. mv命令

mv命令用于移动文件或将文件重命名,格式: mv [选项 ] 源文件 [目标路径 |目标文件名 ]。

mv 源文件 目标文件                 移动文件或目录 / 重命名文件或目录
mv 文件名 目标文件目录
mv -i 文件名 目标文件目录          覆盖文件前提示  

10. tree命令

tree [目录名] 以树状图列出文件目录结构

tree -d         只显示目录信息

11. cat命令

cat命令用于查看内容较少的纯文本文件,格式:cat [选项] [文件]。

cat 文件名               查看文件内容、创建文件、文件合并、追加文件内容等功能,会一次性显示所有的内容,适合查看内容较少的文本文件
cat -b 文件名            对非空文件内容,显示行编号
cat -n 文件名            对输出的所有内容,显示行编号

12. more命令

more命令用于查看内容较多的纯文本文件,格式:more [选项] 文件。

more 文件名           分屏显示文件内容,每次只显示一页内容,适合内容较多的文本文件
使用more的操作键:
空格键:显示手册页的下一屏
Enter键:一次滚动手册页的一行
b:回滚一屏
f:前滚一屏
q:退出

13. less命令

less命令用于查看文件的内容,less与more类似,但使用less可以随意浏览文件,而more 仅能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件,格式:less [选项] 文件。

使用less的操作键:more命令的所有按键less都支持
空格键:显示手册页的下一屏
Enter键:一次滚动手册页的一行
b:回滚一屏
f:前滚一屏
q:退出
↑↓箭头可以实现一行一行的上下翻
PageDown/PageUp可以实现一页一页的上下翻
例如:
less demo.txt

14. grep命令

grep命令用于在文本中执行关键词搜索,并显示匹配的结果,格式: grep [选项] [文件]。

参数:
-n     显示匹配行及行号
-v     显示不包含匹配文本的所有行(相当于求反)  
-i     忽略大小写
-c     仅显示找到的行数
-b     将可执行文件(binary)当作文本文件(text)来搜索
两种模式查找:
^a       行首,搜索以a开头的行
ke$      行尾,搜索以ke结束的行
grep  搜索文本 文件名              搜索文本文件内容
例如:
grep as 123.txt                   搜索as
grep -n as 123.txt                搜索as显示行号
grep -v as 123.txt
grep -vn as 123.txt
grep -i as 123.txt                搜索as忽略大小写
grep -in as 123.txt               搜索as忽略大小写显示行号
grep ^f 123.txt                   搜索以f为行首的内容
grep a$ 123.txt                   搜索以a为行尾的内容
grep -n a$ 123.txt                搜索以a为行尾的内容,并显示行号

15. find命令

find命令用于按照指定条件来查找文件,格式: find [查找路径] 寻找条件 操作。

在 Linux系统中,搜索工作一般都是通过 find命令来完成的,它可以使用不同的文件特性作为寻找条件(如文件名、大小、修改时间、权限等信息),一旦匹配成功则默认将信息显示到屏幕上。

参数:
-name                     匹配名称
-perm                     匹配权限(mode为完全匹配,-mode为包含即可)
-user                     匹配所有者
-group                    匹配所有组
-mtime -n +n              匹配修改内容的时间(-n指n天以内,+n指n天以前)
-atime -n +n              匹配访问文件的时间(-n指n天以内,+n指n天以前)
-ctime -n +n              匹配修改文件权限的时间(-n指n天以内,+n指n天以前)
-nouser                   匹配无所有者的文件
-nogroup                  匹配无所有组的文件
-newer f1 !f2             匹配比文件f1新但比f2旧的文件
--type b/d/c/p/l/f        匹配文件类型(后面的字母参数依次表示块设备、目录、字符设备、管道、链接文件、文本文件)
-size                     匹配文件的大小(+50KB为查找超过50KB的文件,而-50KB为查找小于50KB的文件)
-prune                    忽略某个目录
-exec ...... { }\;        后面可跟用于进一步处理搜索结果的命令(下文会有演示)
-exec参数用于把find命令搜索到的结果交由紧随其后的命令作进一步处理,它十分类似于管道符技术,并且由于 find命令对参数的特殊要求,因此虽然 exec是长格式形式,但依然只需要一个减号(-)。
find [路径] -name "*.py"           查找指定路径下扩展名是.py的文件,包括子目录
如果省略路径,表示在当前文件夹下查找
例如:
find Desktop/ -name "*1*"          搜索桌面目录下,文件名包含1的文件
find Desktop/ -name "*.txt"        搜索桌面目录下,所有以.txt为扩展名的文件
find Desktop/ -name "1*"           搜索桌面目录下,以数字1开头的文件
find / -perm -4000 -print          查询整个系统中搜索权限包括SUID权限的所有文件

16. tail 命令

tail命令用于查看纯文本文档的后 N行或持续刷新内容,格式: tail [选项] [文件]。

tail -n 20 文件名              查看文本内容的最后20行
tail -f 文件名                 实时查看文件最新信息

17. head 命令

head命令用于查看纯文本文档的前 N行,格式: head [选项] [文件]。

head -n 20 文件名              查看文件的前20行内容

18. tr命令

tr命令用于替换文本文件中的字符,格式:  tr [原始字符] [目标字符]。

想要快速地替换文本中的一些内容,可以先使用cat命令读取待处理的文本,然后通过管道符把这些文本内容传递给 tr命令进行替换操作即可。

例如,把file.txt文件中的英文全部替换为大写,但是不改变file.txt文件内容

19. wc命令

wc命令用于统计指定文本的行数、字数、字节数,格式:wc [参数] 文本。

参数:
-l         只显示行数
-w         只显示单词数
-c         只显示字节数

例如:统计当前系统中的用户数

20. stat命令

stat命令用于查看文件的具体存储信息和时间等信息,格式:stat 文件名称。

stat命令可以用于查看文件的存储信息和时间等信息,命令 stat anaconda-ks.cfg会显示出

文件的三种时间状态(已加粗): Access、 Modify、 Change。

 21. diff命令

diff命令用于比较两个文本文件的差异,格式:diff [参数] 文件1 文件2。

diff --brief            比较两个文件是否相同
diff -c                 详细比较两个文件的差异之处

例如:

22. dd命令

dd命令用于按照指定大小和个数的数据块来复制文件或转换文件,格式:dd [参数 ]。

参数:
if         输入的文件名称
of         输出的文件名称
bs         设置每个“块”的大小
count      设置要复制的“块”的个数

23. file命令

file命令用于查看文件的类型,格式:  file 文件名。

24. vi(Visual interface)命令

vi 文件名    如果文件已存在,会直接打开该文件;如果文件不存在,会新建一个文件

末行模式命令:
w        保存
q        退出
q!       强行退出,不保存退出
wq       保存并退出
x        保存并退出

25. echo命令

echo命令用于在终端输出字符串或变量提取后的值,格式: echo [字符串| $变量]。

例如: echo hello java 输出hello java

echo $JAVA_HOME 输出java的环境变量JAVA_HOME的路径

26. date命令

参数:

%t      跳格[Tab键]
%H      小时(00~23)
%I      小时(00~12)
%M      分钟(00~59)
%S      秒(00~59)
%j      今年中的第几天
%d       日
%m       月
%Y       年

例如:

格式化日期:date "+%Y-%m-%d %H:%M:%S" 

date "+%j"  查询今天是今年的第几天

27. cal命令

cal 查看日历,格式:cal [选项]。

cal 查看当前月的日历

cal -y 查看一年的日历

28. tar命令

tar命令用于对文件进行打包压缩或解压,格式:tar [选项 ] [文件]。

在Linux系统中,常见的文件格式比较多,其中主要使用的是 .tar或 .tar.gz或 .tar.bz2格式。

参数:
-c     用于创建压缩文件
-x     用于解压文件
-t     查看压缩包内有哪些文件
-z     用Gzip压缩或解压
-j     用bzip压缩或解压
-v     显示压缩或解压的过程
-f     目标文件名,f后面一定是.tar文件,所以必须放选项最后
-p     保留原始的权限与属性
-P     使用绝对路径来压缩
-C     指定解压到的目录
-c和-x     参数不能同时使用
用户使用时则是根据文件的后缀来决定应使用何种格式参数进行解压。
tar -cvf 打包文件.tar 被打包的文件/路径(多个文件空格分开)           打包文件
tar -xvf 打包文件.tar                                             解包文件
gzip压缩
tar -zcvf 打包文件.tar.gz 被压缩的文件/路径...                     压缩文件
tar -zxvf 打包文件.tar.gz                                        解压缩文件
tar -zxvf 打包文件.tar.gz  -C 目标路径                           解压缩到指定路径
bzip2压缩
tar -jcvf 打包文件.tar.gz 被压缩的文件/路径...                    压缩文件
tar -jxvf 打包文件.tar.gz                                       解压缩文件
tar -jxvf 打包文件.tar.gz  -C 目标路径                           解压缩到指定路径

29. 重定向>和>>

Linux允许将命令执行结果重定向到一个文件

将本应显示在终端上的内容输出/追加到指定文件中

其中:
> 表示输出,会覆盖文件原有内容
>> 表示追加,会将内容追加到已有文件的末尾
例如:
echo Hello Python > a                    将Hello Python输出到文件a中
ls -lh > a                               将ls -lh产生的结果输出到文件a中
echo Hello Python >> a                   将Hello Python追加到文件a中
tree >> a                                将tree 产生的结果追加到文件a中  

30. 管道 |

Linux允许将一个命令的输出可以通过管道做为另一个命令的输入

可以理解现实生活中的管子,管子的一头塞东西进去,另一头取出来,这里|的左右分为两端,左端塞东西(写),右端取东西(读)

常用的管道命令有:
more:分屏显示内容
grep:在命令执行结果的基础上查询指定的文本
例如:ls -lh ~
ls -lha ~ | more               分屏查看文件列表信息
ls -lha ~ | grep abc           查看含有abc的文件列表信息

31. wget命令

wget命令用于在终端中下载网络文件,格式:wget [参数 ] 下载地址。

参数:
--no-check-certificate    		    下载https时,加上该命令不对证书进行校验
--output-document=/dev/null         只下载,不保存,可用于吞吐的测试
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux文件相关常用命令(超全超详细) 的相关文章

  • ioctl 命令的用户权限检查

    我正在实现 char 驱动程序 Linux 并且我的驱动程序中有某些 IOCTL 命令仅需要由 ADMIN 执行 我的问题是如何在 ioctl 命令实现下检查用户权限并限制非特权用户访问 IOCTL 您可以使用bool capable in
  • Linux 中 m 标志和 o 标志将存储在哪里

    我想知道最近收到的路由器通告的 m 标志和 o 标志的值 从内核源代码中我知道存储了 m 标志和 o 标志 Remember the managed otherconf flags from most recently received R
  • 相当于Linux中的导入库

    在 Windows C 中 当您想要链接 DLL 时 您必须提供导入库 但是在 GNU 构建系统中 当您想要链接 so 文件 相当于 dll 时 您就不需要链接 为什么是这样 是否有等效的 Windows 导入库 注意 我不会谈论在 Win
  • 适用于 Linux 的轻量级 IDE [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在 C 中使用单个消息队列是否可以实现双向通信

    我希望服务器向客户端发送一些消息 并让客户端确认它 我被分配了这个任务 我可以在 C linux 中使用单个消息队列来完成它还是我需要创建两个 谢谢 是的 可以使用 sysV 消息队列来做到这一点 从您之前的问题来看 您正在使用该队列 您可
  • linux下无法创建僵尸进程

    嗯 我有一个奇怪的问题 我无法在我的项目中创建僵尸进程 但我可以在其他文件中创建僵尸进程 有简单的说明 int main if fork 0 printf Some instructions n else sleep 10 wait 0 r
  • docker 非 root 绑定安装权限,WITH --userns-remap

    all 尝试让绑定安装权限正常工作 我的目标是在容器中绑定安装卷 以便 a 容器不以 root 用户身份运行入口点 二 docker daemon 配置了 userns remap 这样容器 主机上没有 root c 我可以绑定挂载和读 写
  • 我们真的应该使用 Chef 来管理 sudoers 文件吗?

    这是我的问题 我担心如果 Chef 破坏了 sudoers 文件中的某些内容 可能是 Chef 用户错误地使用了说明书 那么服务器将完全无法访问 我讨厌我们完全失去客户的生产服务器 因为我们弄乱了 sudoers 文件并且无法再通过 ssh
  • 通过 Visual Studio 2017 使用远程调试时 Linux 控制台输出在哪里?

    我的Visual Studio 2017 VS2017 成功连接Linux系统 代码如下 include
  • 在centos中安装sqlite3 dev和其他包

    我正在尝试使用 cpanel 在 centos 机器上安装 sqlite dev 和其他库 以便能够编译应用程序 我对 debian 比 centos 更熟悉 我知道我需要的库是 libsqlite3 dev libkrb5 dev lib
  • 就分页分段内存而言的程序寿命

    我对 x86 Linux 机器中的分段和分页过程有一个令人困惑的概念 如果有人能澄清从开始到结束所涉及的所有步骤 我们将很高兴 x86 使用分页分段内存技术进行内存管理 任何人都可以解释一下从可执行的 elf 格式文件从硬盘加载到主内存到它
  • 如何阻止ubuntu在使用apt安装或更新软件包时弹出“Daemons using outdatedlibraries”? [关闭]

    Closed 这个问题是与编程或软件开发无关 help closed questions 目前不接受答案 我最近新安装了 Ubuntu 22 04 LTS 我发现每次使用 apt 安装或更新软件包时 它都会询问我有关Which servic
  • 为什么 fopen("any_path_name",'r') 不给出 NULL 作为返回值?

    在调试一些代码时 我得到如下内容 include
  • 如何使用waf构建共享库?

    我想使用构建一个共享库waf http code google com p waf 因为它看起来比 GNU 自动工具更容易 更简洁 到目前为止 我实际上有几个与我开始编写的 wscript 有关的问题 VERSION 0 0 1 APPNA
  • 如何查找哪个 Yocto 项目配方填充图像根文件系统上的特定文件

    我经常与 Yocto 项目合作 一个常见的挑战是确定文件为何 或来自什么配方 包含在 rootfs 中 这有望从构建系统的环境 日志和元数据中得出 理想情况下 一组命令将允许将文件链接回源 即配方 我通常的策略是对元数据执行搜索 例如gre
  • linux下如何从文本文件中获取值

    我有一些文本格式的文件 xxx conf 我在这个文件中有一些文本 disablelog 1 当我使用 grep r disablelog oscam conf 输出是 disablelog 1 但我只需要值1 请问你有什么想法吗 一种方法
  • 使用 gdb 调试 Linux 内核模块

    我想知道 API 在内核模块 中返回什么 从几种形式可以知道 这并不是那么简单 我们需要加载符号表来调试内核模块 所以我所做的就是 1 尝试找到内核模块的 text bss和 data段地址 2 在 gdb 中使用 add symbol f
  • 我什么时候应该编写 Linux 内核模块?

    有些人出于某种原因想要将 Linux 中的代码从用户空间移动到内核空间 很多时候 原因似乎是代码应该具有特别高的优先级 或者只是 内核空间更快 这对我来说似乎很奇怪 我什么时候应该考虑编写内核模块 有一套标准吗 我怎样才能激励将代码保存在
  • 如何让 Node.js 作为后台进程运行并且永不死掉?

    我通过 putty SSH 连接到 linux 服务器 我尝试将其作为后台进程运行 如下所示 node server js 然而 2 5 小时后 终端变得不活动 进程终止 即使终端断开连接 我是否也可以使进程保持活动状态 Edit 1 事实
  • ansible unarchive 模块如何查找 tar 二进制文件?

    我正在尝试执行一个 ansible 剧本 该剧本的任务是利用unarchive模块 因为我是在 OSX 上执行此操作 所以我需要使用它gnu tar 而不是bsd tar通常与 OSX 一起提供 因为BSD tar 不受官方支持 https

随机推荐