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文件相关常用命令(超全超详细) 的相关文章

  • 无法为 Python 3.4 创建工作虚拟环境

    I 安装Python 3 4 2 https docs python org 3 using unix html building python和我的 Linux Mint 17 1 中的 Virtualenv 12 0 5 然后我尝试创建
  • 测试linux下磁盘空间不足

    我有一个程序 当写入某个文件的磁盘空间不足时 该程序可能会死掉 我不确定是否是这种情况 我想运行它并查看 但我的测试服务器不会很快耗尽空间 有什么办法可以嘲笑这种行为吗 看起来没有任何方法可以在 Ubuntu 中设置文件夹 文件大小限制 并
  • 退出 bash 脚本但保持进程运行

    我正在运行服务器 需要使用参数执行以下命令 这些脚本目前工作得很好 但问题是当我运行脚本时我无法返回到控制台 它在控制台中保持运行 如果我强行停止它 那么该过程也会停止 我想继续运行该进程并返回到控制台 bin sh php home st
  • 如何阅读shell命令的源代码?

    我想阅读编写linux命令的实际源代码 我已经获得了一些使用它们的经验 现在我认为是时候与我的机器进行更深层次的交互了 我在这里找到了一些命令http directory fsf org wiki GNU http directory fs
  • 编写多个mysql脚本

    是否可以在复合脚本中包含其他 mysql 脚本 理想情况下 我不想为包含的脚本创建存储过程 对于较大的项目 我想分层维护几个较小的脚本 然后根据需要组合它们 但现在 我很乐意学习如何包含其他脚本 source是一个内置命令 您可以在 MyS
  • 如何使用ffmpeg重叠和合并多个音频文件?

    我正在尝试将多个音频文件合并到一个文件中 但我可以使用以下命令来连接 而不是连接 ffmpeg v debug i file1 wav i file2 wav i file3 wav filter complex 0 0 concat n
  • 远程linux服务器到远程linux服务器大型稀疏文件复制 - 如何?

    我有两台 CentOS 5 4 服务器 每台服务器上都安装了 VMware Server 假设我始终对 vmware 虚拟机使用稀疏文件 将虚拟机文件从一台服务器复制到另一台服务器的最可靠 最快速的方法是什么 虚拟机的文件复制起来很痛苦 因
  • Linux 文本文件操作

    我有一个格式的文件 a href a href a href a href 我需要选择 之后但 之前的文本 并将其打印在行尾 添加后 例如 a href http www wowhead com search Su a a a a a
  • Windows 与 Linux 文本文件读取

    问题是 我最近从 Windows 切换到 Ubuntu 我的一些用于分析数据文件的 python 脚本给了我错误 我不确定如何正确解决 我当前仪器的数据文件输出如下 Header 有关仪器等的各种信息 Data 状态 代码 温度 字段等 0
  • 使用命令行将 MediaWiki 维基文本格式转换为 HTML

    我倾向于编写大量文档 因此 MediaWiki 格式对我来说很容易理解 而且比编写传统 HTML 节省了我很多时间 然而 我也写了一篇博客 发现一直从键盘切换到鼠标来输入正确的 HTML 标签会增加很多时间 我希望能够使用 Mediawik
  • 是否有可能在linux中找到包含特定文本的文件?

    考虑这种情况 我在文件夹 Example 下有很多文件 如果我需要找到一个包含特定短语 如 Class Example 的文件 我该如何使用 Linux shell 来做到这一点 linux中有类似 定位 的函数可以做到这一点吗 Thank
  • 为什么 ld 无法从 /etc/ld.so.conf 中的路径找到库?

    我想添加 opt vertica lib64进入系统库路径 所以我执行以下步骤 1 添加 opt vertica lib64 into etc ld so conf 然后运行ldconfig 2 检查 bash ldconfig p gre
  • 如何从 Linux 的 shell 中删除所有以 ._ 开头的文件?

    确实如标题所示 我已将许多文件从 Mac 复制到 Raspberry Pi 这导致了许多以前缀开头的多余文件 我想删除以以下开头的文件夹中的每个文件 我该怎么做 尝试类似的方法 cd path to directory rm rf 或者 如
  • 如何确保 numpy BLAS 库可用作动态加载库?

    The theano安装文档 http www deeplearning net software theano install html troubleshooting make sure you have a blas library指
  • 确保 config.h 包含一次

    我有一个库项目 正在使用 Linux 中的 autotools 套件移植到该项目 我对自动工具很陌生 本周 我已经了解了其操作的基础知识 我有一个关于如何保留内容的问题config h免遭重新定义 我惊讶地发现生成的config h文件也没
  • 操作系统什么时候清除进程的内存

    进程在某些操作系统上成功或异常终止 操作系统何时决定擦除分配给该进程的内存 数据 代码等 在退出时或当它想为新进程分配内存时 这个清除内存分配过程在所有操作系统 winXP Win7 linux Mac 上都相同吗 据我了解 页表具有该进程
  • 如何获取 linux 实用程序 tail 的源代码?

    这个命令确实非常有用 但是我可以在哪里获取源代码以查看内部发生的情况 thanks tail 实用程序是 Linux 上 coreutils 的一部分 源压缩包 ftp ftp gnu org gnu coreutils coreutils
  • 如何让 clangd 转向 c++20

    当没有其他信息时 如何让 clangd 回退到 c 20 例如 在第一次构建之前 cmake 可以生成一个 这是在带有最新 LLVM 的 Arch Linux 上 这是通过 Emacs LSP 运行的 但这应该没有什么区别 你可以加 Com
  • 停止服务时单元陷入故障状态(状态=143)[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 这是我的问题 我有 CentOS 和 java 进程在上面运行 Java进程是通过启动 停止脚本来操作的 它也创建了 java 实例的 p
  • 在 LINUX 上使用 Python 连接到 OLAP 多维数据集

    我知道如何在 Windows 上使用 Python 连接到 MS OLAP 多维数据集 嗯 至少有一种方法 通常我使用 win32py 包并调用 COM 对象进行连接 import win32com client connection wi

随机推荐