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

相关推荐
EMTime3 小时前
Docker运行OpenWRT
运维·docker·容器
lolo大魔王3 小时前
Linux 文件系统超全面详解(原理、结构、挂载、分区、inode、日志、管理命令)
linux·运维·服务器
磊 子5 小时前
详细讲解一下epoll
linux·io·epoll·io多路复用
printfLILEI5 小时前
php中的类与对象以及反序列化
linux·开发语言·php
zyl837216 小时前
Docker 使用手册
运维·docker·容器
古月方枘Fry6 小时前
MGRE实验
运维·服务器
叠叠乐6 小时前
redmi k90 pro max 强解BL,刷海外rom, 并刷入sukisu ultra
linux
stolentime7 小时前
FreeDomain 本地开发环境快速搭建指南
运维·服务器·网络
xiaoye-duck7 小时前
《Linux系统编程》Linux 进程间通信之管道基础解析:从匿名管道原理到基于管道的进程池实现
linux