Linux文件相关常用命令(超全超详细)
Posted 凉夏初晨
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux文件相关常用命令(超全超详细)相关的知识,希望对你有一定的参考价值。
目录
command终端命令格式:command [-options] [parameter]
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 只下载,不保存,可用于吞吐的测试
以上是关于Linux文件相关常用命令(超全超详细)的主要内容,如果未能解决你的问题,请参考以下文章