Linux文件相关命令

文章目录

  • Linux文件相关命令
    • ls
    • 通配符含义
    • [touch 创建文件命令](#touch 创建文件命令)
    • 示例
    • [cp 拷贝文件](#cp 拷贝文件)
    • [rm 删除文件](#rm 删除文件)
    • mv剪切文件
    • [cat 文件内容查看命令](#cat 文件内容查看命令)
    • [cat 文件内容查看命令](#cat 文件内容查看命令)
    • [head 从文件头部开始查看前 n 行的内容。](#head 从文件头部开始查看前 n 行的内容。)
    • [tail 从文件尾部向上查看最后 n 行的内容](#tail 从文件尾部向上查看最后 n 行的内容)
    • [less 命令将文件内容分页显示到终端,可以自由上下浏览](#less 命令将文件内容分页显示到终端,可以自由上下浏览)
    • [du 命令用于查看某个目录大小。](#du 命令用于查看某个目录大小。)
    • [df 命令用于检测文件系统的磁盘空间占用和空余情况](#df 命令用于检测文件系统的磁盘空间占用和空余情况)
    • df命令用于检测文件系统的磁盘空间占用和空余情况
    • [find 查找命令](#find 查找命令)
    • [grep 令是一种强大的文本搜索工具](#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的文件
shell 复制代码
#显示当前目录下所有的文件和目录
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 9月  14 12:20 app
drwxr-xr-x 27 wuyou wuyou 4096 11月  3 15:02 wuyou
drwxr-xr-x  2 tom  tom  4096 6月   1 15:15 tom

#-lh -l -h 文件大小以人类方便阅读数字显示 
wuyou@itcast:/home$ ls -lh 
总用量 12K
drwxr-xr-x  2 app  app  4.0K 9月  14 12:20 app
drwxr-xr-x 27 wuyou wuyou 4.0K 11月  3 15:02 wuyou
drwxr-xr-x  2 tom  tom  4.0K 6月   1 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}一个空文件

示例

shell 复制代码
#如果文件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为单位,提高信息的可读性
shell 复制代码
#显示指定文件或者目录大小
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为单位,提高信息的可读性
shell 复制代码
#显示所有文件系统的磁盘使用情况
wuyou@itcast:~/share$ df -h
文件系统        容量  已用  可用 已用% 挂载点

#以M为单位显示磁盘使用的情况
wuyou@itcast:~/share$ df -m 
文件系统        1M-块   已用  可用 已用% 挂载点

#显示磁盘使用情况
wuyou@itcast:~/share$ df -a
文件系统           1K-块      已用     可用 已用% 挂载点

find 查找命令

shell 复制代码
#在指定目录下查找大于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

示例:

shell 复制代码
#从/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

相关推荐
Miracle&1 天前
2.TCP深度解析:握手、挥手、状态机、流量与拥塞控制
linux·网络·tcp/ip
专注API从业者1 天前
Python/Java 代码示例:手把手教程调用 1688 API 获取商品详情实时数据
java·linux·数据库·python
Ribou1 天前
Ubuntu 24.04.2安装k8s 1.33.4 配置cilium
linux·ubuntu·kubernetes
tan180°1 天前
Boost搜索引擎 网络库与前端(4)
linux·网络·c++·搜索引擎
Mr. Cao code1 天前
Docker:颠覆传统虚拟化的轻量级革命
linux·运维·ubuntu·docker·容器
抓饼先生1 天前
Linux control group笔记
linux·笔记·bash
挺6的还1 天前
25.线程概念和控制(二)
linux
wanhengidc1 天前
云手机运行流畅,秒开不卡顿
运维·网络·科技·游戏·智能手机
您的通讯录好友1 天前
conda环境导出
linux·windows·conda
笨小孩@GF 知行合一1 天前
OSPF实验:外部路由引入
运维·网络·hcip·数通·ospf