当前位置: 首页 > news >正文

Linux文件相关命令

文章目录

  • Linux文件相关命令
    • ls
    • 通配符含义
    • touch 创建文件命令
    • 示例
    • cp 拷贝文件
    • rm 删除文件
    • mv剪切文件
    • cat 文件内容查看命令
    • cat 文件内容查看命令
    • head 从文件头部开始查看前 n 行的内容。
    • tail 从文件尾部向上查看最后 n 行的内容
    • less 命令将文件内容分页显示到终端,可以自由上下浏览
    • du 命令用于查看某个目录大小。
    • df 命令用于检测文件系统的磁盘空间占用和空余情况
    • df命令用于检测文件系统的磁盘空间占用和空余情况
    • find 查找命令
    • grep 令是一种强大的文本搜索工具
    • | 管道 一个命令的输出做为另一个命令的输入。

Linux文件相关命令

ls

ls是英文单词list的简写,其功能为列出目录的内容,是用户最常用的命令之一,它类似于DOS下的dir命令。

Linux文件或者目录名称最长可以有256个字符,“.”代表当前目录,“…”代表上一级目录,以“.”开头的文件为隐藏文件,需要用 -a 参数才能显示。

参数含义
-a显示指定目录下所有子目录与文件,包括隐藏文件
-l以列表方式显示文件的详细信息
-h配合 -l 以人性化的方式显示文件大小

通配符含义

通配符含义
*文件代表文件名中所有字符
ls te*查找以te开头的文件
ls *html查找结尾为html的文件
代表文件名中任意一个字符
ls ?.c只找第一个字符任意,后缀为.c的文件
ls a.?只找只有3个字符,前2字符为a.,最后一个字符任意的文件
[][”和“]”将字符组括起来,表示可以匹配字符组中的任意一个。“-”用于表示字符范围。
[abc]匹配a、b、c中的任意一个
[a-f]匹配从a到f范围内的的任意一个字符
ls [a-f]*找到从a到f范围内的的任意一个字符开头的文件
ls a-f查找文件名为a-f的文件,当“-”处于方括号之外失去通配符的作用
\如果要使通配符作为普通字符使用,可以在其前面加上转义字符。“?”和“*”处于方括号内时不用使用转义字符就失去通配符的作用。
ls *a查找文件名为*a的文件
#显示当前目录下所有的文件和目录
wuyou@itcast:/home$ ls 
app  wuyou  tom#显示当前目录下所有的文件和目录 包括隐藏文件
wuyou@itcast:/home$ ls -a 
.  ..  app  wuyou  tom#以长格式显示文件和目录信息
wuyou@itcast:/home$ ls -l
总用量 12
drwxr-xr-x  2 app  app  4096 914 12:20 app
drwxr-xr-x 27 wuyou wuyou 4096 113 15:02 wuyou
drwxr-xr-x  2 tom  tom  4096 61 15:15 tom#-lh -l -h 文件大小以人类方便阅读数字显示 
wuyou@itcast:/home$ ls -lh 
总用量 12K
drwxr-xr-x  2 app  app  4.0K 914 12:20 app
drwxr-xr-x 27 wuyou wuyou 4.0K 113 15:02 wuyou
drwxr-xr-x  2 tom  tom  4.0K 61 15:15 tom
wuyou@itcast:/home$ 

touch 创建文件命令

  • 如果文件不存在, 创建新文件(只能是普通文件,不能是文件夹)

  • 如果文件存在, 更新文件时间戳

touch file 创建file空文件,如果file存在则更新file的存取和修改时间

touch file{2,3,4} 同时创建file2,file3,file4三个空文件

touch “file{2,3,4}” 创建file{2,3,4}一个空文件

示例

#如果文件a不存在就创建 如果存在就修改时间戳
wuyou@itcast:~/share$ touch a 
wuyou@itcast:~/share$ ls
a#创建文件file1到file10
wuyou@itcast:~/share$ touch file{1..10}
wuyou@itcast:~/share$ ls
a  file1  file10  file2  file3  file4  file5  file6  file7  file8  file9#创建file{1..10}
wuyou@itcast:~/share$ touch "file{1..10}"
wuyou@itcast:~/share$ ls
a      file10       file2  file4  file6  file8
file1  file{1..10}  file3  file5  file7  file9
wuyou@itcast:~/share$ #查看文件属性 修改文件的时间戳
wuyou@itcast:~/share$ stat a 文件:a大小:0               块:0          IO 块:4096   普通空文件
设备:801h/2049d        Inode:674876      硬链接:1
权限:(0664/-rw-rw-r--)  Uid:( 1000/    wuyou)   Gid:( 1000/    wuyou)
最近访问:2019-11-03 16:22:39.415481402 +0800
最近更改:2019-11-03 16:22:39.415481402 +0800
最近改动:2019-11-03 16:22:39.415481402 +0800
创建时间:-
wuyou@itcast:~/share$ ls
a      file10       file2  file4  file6  file8
file1  file{1..10}  file3  file5  file7  file9
wuyou@itcast:~/share$ touch a 
wuyou@itcast:~/share$ stat a 文件:a大小:0               块:0          IO 块:4096   普通空文件
设备:801h/2049d        Inode:674876      硬链接:1
权限:(0664/-rw-rw-r--)  Uid:( 1000/    wuyou)   Gid:( 1000/    wuyou)
最近访问:2019-11-03 16:25:00.888865371 +0800
最近更改:2019-11-03 16:25:00.888865371 +0800
最近改动:2019-11-03 16:25:00.888865371 +0800
创建时间:-
wuyou@itcast:~/share$ 

cp 拷贝文件

cp命令的功能是将给出的文件或目录复制到另一个文件或目录中,相当于DOS下的copy命令 。

常用选项说明:

选项含义
-a该选项通常在复制目录时使用,它保留链接、文件属性,并递归地复制目录,简单而言,保持文件原有属性。
-f删除已经存在的目标文件而不提示
-i交互式复制,在覆盖目标文件之前将给出提示要求用户确认
-r若给出的源文件是目录文件,则cp将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名。
-v显示拷贝进度

示例:

cp file dirs/ 把file文件复制到dirs目录下

cp file1 file2 dirs/ 把file1 file2文件拷贝到dirs目录下

cp -i file1 file2 把文件file1拷贝到file2中,并且提示

cp -t dirs file1 把文件file1拷贝到dirs目录下

cp -r dir1/ dir2/ 把dir1目录复制到dir2目录下

cp -R dir1 dir2 把dir1目录拷贝到dir2目录下

cp -a file dirs/ 把file文件复制到dirs目录下,保留文件的原来属性

cp -rf dir1/ dir2/ 强制复制文件夹,不提示

cp -rvf dir1/ dir2/ 把dir1目录复制到dir2目录下,并且显示复制过程

rm 删除文件

可通过rm删除文件或目录。使用rm命令要小心,因为文件删除后不能恢复。为了防止文件误删,可以在rm后使用-i参数以逐个确认要删除的文件。

常用参数及含义如下表所示:

参数含义
-i以进行交互式方式执行
-f强制删除,忽略不存在的文件,无需提示
-r递归地删除目录下的内容,删除文件夹时必须加此参数

示例:

rm a 删除文件a,在删除之前用户需确认删除该文件

rm a b c 删除文件a b c,在删除之前用户需确认是否删除该文件

rm -i a 删除文件a,在删除之前用户需确认是否删除该文件

rm -f a 删除文件a,强制删除该文件,不需要用户确认是否删除

rm -v a 删除文件a,删除之后会显式结果

rm -r dirs 递归删除目录dirs,并且每一次删除都需要用户确认是否删除

rm -rf dirs 强制递归删除目录dirs,每一次删除都不需要用户确认是否删除

rm file* 删除所有file打头的文件

rm -i file* 提示是否确定删除

rm -f file* 不提示,强行删除

rm -r dir2 删除目录

rm -f [ab].txt 等价于rm -f a.txt b.txt

rm -f [^ab].txt 删除除a.txt b.txt以外的所有?.txt

rm -f ?.txt ?代表一个字符

rm -f ???.txt

mv剪切文件

用户可以使用mv命令来移动文件或目录,也可以给文件或目录重命名。

常用选项说明:

选项含义
-f禁止交互式操作,如有覆盖也不会给出提示
-i确认交互方式操作,如果mv操作将导致对已存在的目标文件的覆盖,系统会询问是否重写,要求用户回答以避免误覆盖文件
-v显示移动进度

示例:

mv file file2 把file文件重命名为file2

mv file dirs/ 把file文件移动到dirs目录下

mv file1 file2 dirs/ 把file1 file2文件剪切到dirs目录下

mv dir1 dir2 dir3/ 把dir1 dir2目录剪切到dir3目录下

mv -i file1 dir1/ 把file1文件剪切到dir1目录下,如果存在覆盖就提示用户

mv -f file1 dir1/ 把file1文件剪切到dir1目录下,如果存在覆盖也不提示用户

mv -u dir1/* dir2/ 把dir1目录下所有文件移动到dir2目录下,并且根据文件时间来决定要不要移动

cat 文件内容查看命令

cat 将文件内容一次性输出到终端。

缺点:终端显示的内容有限,如果文件太长无法全部显示。

示例:

cat /etc/passwd 查看/etc/passwd内容

cat -n /etc/passwd 查看/etc/passwd内容,对输出的所有行编号(显示行号)

cat -b /etc/passwd 查看/etc/passwd内容并且给非空行编号

cat -A /etc/passwd 等价于 -vET

cat 文件内容查看命令

cat 将文件内容一次性输出到终端。

缺点:终端显示的内容有限,如果文件太长无法全部显示。

示例:

cat /etc/passwd 查看/etc/passwd内容

cat -n /etc/passwd 查看/etc/passwd内容,对输出的所有行编号(显示行号)

cat -b /etc/passwd 查看/etc/passwd内容并且给非空行编号

cat -A /etc/passwd 等价于 -vET

head 从文件头部开始查看前 n 行的内容。

  • head命令从文件头部开始查看前 n 行的内容。
  • 如果没有指定行数,默认显示前10行内容。

命令格式:

head –n[行数] 文件名

示例:

head /etc/passwd 查看/etc/passwd前10行内容

head -c 30 /etc/passwd 查看/etc/passwd前30个字符

head -30 /etc/passwd 查看/etc/passwd前30行

head -n 30 /etc/passwd 查看/etc/passwd前30行内容

head -q /etc/passwd 查看/etc/passwd的内容,但是不打印头信息

head -v /etc/passwd 查看/etc/passwd的内容,但是打印头信息

tail 从文件尾部向上查看最后 n 行的内容

  • 从文件尾部向上查看最后 n 行的内容
  • 使用方式:tail –n[行数] 文件名
  • 如果没有指定行数,默认显示最后10行内容

示例:

tail /etc/passwd 查看/etc/passwd后10行内容

tail -n 30 /etc/passwd 查看/etc/passwd后30行内容

tail -c 30 /etc/passwd 查看/etc/passwd后30个字符

tail -f /etc/passwd 实时查看/etc/passwd文件内容 (可以动态监视文件新增的内容)

tail -q /etc/passwd 查看/etc/passwd的内容,但是不打印头信息

tail -v /etc/passwd 查看/etc/passwd的内容,但是打印头信息

less 命令将文件内容分页显示到终端,可以自由上下浏览

less命令将文件内容分页显示到终端,可以自由上下浏览

命令作用
回车(ctrl + n)显示下一行
ctrl + p显示上一行
空格(PageDown)显示下一页
PageUp显示上一页
q退出
h获取帮助

wuyou@itcast:~/share/test$ less /etc/passwd

du 命令用于查看某个目录大小。

du命令用于查看某个目录大小。

du命令的使用格式如下:

du [选项] 目录或文件名

选项含义
-a递归显示指定目录中各文件和子目录中文件占用的数据块
-s显示指定文件或目录占用的数据块
-b以字节为单位显示磁盘占用情况
-h以K,M,G为单位,提高信息的可读性
#显示指定文件或者目录大小
wuyou@itcast:~/share$ du -sh /etc/systemd/
200K    /etc/systemd/#显示文件的字节数
wuyou@itcast:~/share$ du -b txt
38      txt

df 命令用于检测文件系统的磁盘空间占用和空余情况

df命令用于检测文件系统的磁盘空间占用和空余情况,可以显示所有文件系统对节点和磁盘块的使用情况。

选项含义
-a显示所有文件系统的磁盘使用情况
-m以1024字节为单位显示
-h以K,M,G为单位,提高信息的可读性

df命令用于检测文件系统的磁盘空间占用和空余情况

df命令用于检测文件系统的磁盘空间占用和空余情况,可以显示所有文件系统对节点和磁盘块的使用情况。

选项含义
-a显示所有文件系统的磁盘使用情况
-m以1024字节为单位显示
-h以K,M,G为单位,提高信息的可读性
#显示所有文件系统的磁盘使用情况
wuyou@itcast:~/share$ df -h
文件系统        容量  已用  可用 已用% 挂载点#以M为单位显示磁盘使用的情况
wuyou@itcast:~/share$ df -m 
文件系统        1M-块   已用  可用 已用% 挂载点#显示磁盘使用情况
wuyou@itcast:~/share$ df -a
文件系统           1K-块      已用     可用 已用% 挂载点

find 查找命令

#在指定目录下查找大于100K的文件
wuyou@itcast:~/share$ find /boot -size +100k#在指定目录下查找小于100K的文件
wuyou@itcast:~/share$ find /boot -size -100k#在指定目录下查找大小等于100K的文件
wuyou@itcast:~/share$ find /boot -size 100k#查找根目录下文件大于10M
wuyou@itcast:~/share$ find / -size +10M  #查找根目录下文件小于10M
wuyou@itcast:~/share$ find / -size -10M  #查找根目录下文件等于10M
wuyou@itcast:~/share$ find / -size 10M  #查找根目录下头文件大于1M
wuyou@itcast:~/share$ find / -name "*.h" -size +1M  #查找boot目录下所有的grub.cfg文件, 并且使用ls -l显示
wuyou@itcast:~$ find /boot   -name "grub.cfg"  -exec  ls -l {} \; #在当前目录下查找txt文件,并且删除
wuyou@itcast:~/share$ ls
txt
wuyou@itcast:~/share$ find ./ -name "txt" -exec rm -rf {} \;#在当前目录下查找txt文件,并且删除该文件,删除之前需要确认
wuyou@itcast:~/share$ find ./ -name "txt" -ok  rm -rf {} \;    
< rm ... ./txt > ? y
wuyou@itcast:~/share$ 

示例:

find /etc -name grub.conf   查找/etc目录下的grub.conf文件
find / -name "*.conf"       查找/下所有.conf文件
find  / -iname grub.conf    查找/目录下的grub.conf文件,忽略大小写
find / -maxdepth 2 -name grub.conf     可以使用-maxdepath参数来控制查找的层次,就是说只查当前目录和子目录,最多查2级目录
find / -mindepth 2 -name grub.conf     最少查二级目录
find /etc -type d           查找/etc/下所有的目录
find /etc -type f           查找/etc/下的所有普通文件
find /etc -type l -name *.conf      查找/etc/下软链接文件是.conf结尾的文件
find /etc -type s           查找/etc/下所有socket文件
find /etc -type c           查找/etc/下的所有字符设备文件
find /etc -type p           查找/etc/下所有管道文件
find /etc -user root        查找/etc/所属用户是root的文件
find /etc -group root       查找/etc/所属用户组是root的文件
find /etc -uid 500          查找/etc/下uid是500的文件,和-user类似
find /etc -gid 500          查找/etc/下gid是500的文件,和-group类似
find /etc -nouser           查找没有所属用户的文件
find /etc -nogroup          查找没有所属用户组的文件
find /etc -perm 777 -type d    查找/etc/下权限为777的目录
find . -perm  111           查找权限是111的文件
find . -size +10M           查找当前目录下大于10M的文件,单位可以有K,M,G,b等
find / -size -2M            查找根目录下少于2M的文件
find / -mtime 1             查找根目录下1天以前修改的所有文件
find / -mtime +2            查找根目录下2天以前修改的所有文件
find / -mtime -3            查找根目录下最近3天内修改的所有文件
find / -atime 1             查找根目录下1天以前访问或读过的所有文件
find / -atime -1            查找根目录下最近1天内读过或访问的文件
find / -ctime -3            查找根目录下最近3天内状态发生改变的文件
find / -cmin -3             查找根目录下最近3分钟内状态发生改变的文件
find / -empty               查找根目录下所有空白文件或者空目录
find / -false               查找根目录下总是错误的文件

grep 令是一种强大的文本搜索工具

Linux系统中grep命令是一种强大的文本搜索工具,grep允许对文本文件进行模式查找。如果找到匹配模式, grep打印包含模式的所有行。

grep一般格式为:

grep [-选项] ‘搜索内容串’ 文件名

在grep命令中输入字符串参数时,最好引号或双引号括起来。例如:grep ‘a ’1.txt。

常用选项说明:

选项含义
-v显示不包含匹配文本的所有行(相当于求反)
-n显示匹配行及行号
-i忽略大小写

命令:grep -r + “查找的关键字” + 路径

搜索目录需要添加参数: -r

查找 /home/itcast 下包含“hello,world“字符串的文件

grep -r “hello,world” /home/itcast

示例:

#从/etc/passwd文件中搜索root
wuyou@itcast:~$ grep "root" /etc/passwd#显示所有不包含root字符串的行
wuyou@itcast:~$ grep -v "root" /etc/passwd#从文件中搜索main函数
wuyou@itcast:~$ grep -a "main" /bin/ls#忽略大小写
wuyou@itcast:~$ grep -i "ROOT" /etc/passwd#显示行号
wuyou@itcast:~$ grep -n "root" /etc/passwd#完全匹配单词
wuyou@itcast:~$ grep -w "root" /etc/passwd#递归查找目录里面所有的文件
wuyou@itcast:~$ grep -rn "root" /etc/

| 管道 一个命令的输出做为另一个命令的输入。

管道(|):一个命令的输出可以通过管道做为另一个命令的输入。

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

cat /etc/passwd | less

http://www.dtcms.com/a/336992.html

相关文章:

  • Disbursement on Quarantine Policy(概率、逆元计算期望)
  • 寻北仪如何靠“小”征服地下世界?
  • AI需要防火墙,云计算需要重新构想
  • 20. 云计算-多租户
  • 猫头虎AI分享|一款智能量化交易系统:QuantCell,从数据收集到策略执行全流程自动化
  • C++ 多进程编程深度解析【C++进阶每日一学】
  • 人工智能技术爆发的时代,AI工具和大模型对行业的深刻变革及实际应用!
  • 面向R语言用户的Highcharts
  • DR200差速移动机器人的多功能感知系统与多场景应用
  • 【网络安全实验报告】实验二: 后门木马配置及分析
  • 【网络安全实验报告】实验三:古典加密算法的实现
  • 数字化转型:概念性名词浅谈(第四十一讲)
  • 如何在VS Code中使用Copilot与MCP服务器增强开发体验
  • ThinkPHP的安装运行和调试
  • 动态规划----3.打家劫舍
  • EasyExcel篇
  • C语言篇:猜数字游戏的实现教程
  • 20250818 割点 割边 点双总结
  • 一个基于纯前端技术实现的五子棋游戏,无需后端服务,直接在浏览器中运行。
  • 数据挖掘 3.5 支持向量机——边界和正则化
  • 二分查找例题
  • 从基础到架构的六层知识体系
  • 进阶向:人物关系三元组,解锁人物关系网络的钥匙
  • 如何新建一个自己的虚拟环境
  • 有向无环图(Directed Acyclic Graph, DAG)介绍(环检测、DFS法、Kahn算法、)
  • 【Langchain系列三】GraphGPT——LangChain+NebulaGraph+llm构建智能图数据库问答系统
  • 15.三数之和
  • InfluxDB 开发工具链:IDE 插件与调试技巧(二)
  • 01.Linux小技巧
  • 从 UI 角度剖析蔬菜批发小程序的设计之道——仙盟创梦IDE