目录
[实例: -R 递归显示目录中的所有文件和子目录。](#实例: -R 递归显示目录中的所有文件和子目录。)
[实例: 组合使用](#实例: 组合使用)
[实例: 查找系统中所有文件长度为 0 的普通文件,并列出它们的完整路径:](#实例: 查找系统中所有文件长度为 0 的普通文件,并列出它们的完整路径:)
[管道符 |](#管道符 |)
[九、反引号' ` '](#九、反引号' ` ')
[十、重定向符" > " 和 " >> "](#十、重定向符" > " 和 " >> ")
Linux 命令基础格式
一、ls命令
ls [option] [linux路径]
[]:表示可选项
用于显示目录文件信息。
常用参数:
- -a 显示所有文件及目录 (. 开头的隐藏文件也会列出)
- -d 只列出目录(不递归列出目录内的文件)。
- -l 以长格式显示文件和目录信息,包括权限、所有者、大小、创建时间等。
- -r 倒序显示文件和目录。
- -t 将按照修改时间排序,最新的文件在最前面。
- -A 同 -a ,但不列出 "." (目前目录) 及 ".." (父目录)
- -F 根据文件类型在列出的文件名称后加一符号;例如可执行文件则加 "*", 目录则加 "/"
- -R 递归显示目录中的所有文件和子目录。
- -h 以更加易读的方式,显示文件的大小单位。
实例:-l以长格式显示文件和目录信息
一行从左到右的值分布为文件属性 、文件硬链接数、所有者、组、文件大小(以字节B表示)、最后修改时间、文件/目录名称 。
文件属性:一共十个字符。
第一个字符 :表示文件类型。
字母"-" :表示该文件是一个普通文件。
字母"d" :表示该文件是一个目录,字母"d",是dirtectory(目录)的缩写。
字母"l": 表示该文件是一个链接文件。字母"l"是link(链接)的缩写。
**字母"b":**表示块设备文件(block),一般置于/dev目录下,设备文件是普通文
件和程序访问硬件设备的入口,是很特殊的文件。没有文件大小,只有
一个主设备号和一个辅设备号。一次传输数据为一整块的被称为块设
备,如硬盘、光盘等。最小数据传输单位为一个数据块(通常一个数据块
的大小为512字节)
**字母为"c":**表示该文件是一个字符设备文件(character),一般置于/dev目录
下,一次传输一个字节的设备被称为字符设备,如键盘、字符终端等,
传输数据的最小单位为一个字节。
字母"p": 表示该文件为命令管道文件,与shell编程有关的文件。
**字母"s":**表示该文件为sock文件,与shell编程有关的文件。
第1字符的后面9个字母表示该文件或目录的权限位!
其中前三个表示文件拥有者的权限,中间三个表示文件所属组拥有的权限,最后三个表示其他用户拥有的权限。
r表是读 (Read) 、w表示写 (Write) 、x表示执行 (eXecute)、-代表无权限。
硬链接数:这个字段说明有多少个硬链接指向这个文件。如果使用ln,做一个指向该文件的硬链接再查看该文件,该文件的第2字段就会加一。
软链接和硬链接的区别:
软链接:符号链接又叫软链接,和原文件不是一个文件,其内容记录的是目标文件的目录,相当于Windows的快捷方式。符号链接可以跨越文件系统,也可以为目录建立。软链接有自己的索引(inode),是linux特殊文件的一种。
创建软链接文件代码格式:ln -s 原文件 链接文件
硬链接:硬链接,只能引用同一文件系统中的文件。它引用的是文件在文件系统中的物理索引(也称为inode)。当移动或者删除原始文件时,硬链接不会被破坏,因为它所引用的是文件的物理数据而不是文件在件结构中的位置。硬链接记录的是目标的inode。
创建硬链接代码格式: ln 原文件 新文件
实例:-F根据文件类型在列出的文件名称后加一符号
目录加"/",
可执行文件则加 "*",
符号链接加"@"
实例: -R 递归显示目录中的所有文件和子目录。
实例: 组合使用
ls -a -l
ls -al
ls -la
三种写法的作用相同。
Home目录和工作目录
一般打开终端的当前工作目录默认的是用户的HOME目录(/home/用户名),Home目录是每个用户的个人账户目录, 而当前的工作目录指的是终端打开的位置。
二、目录修改和查看命令
cd [linux路径]
pwd
cd命令用于切换路径,不带参数时,默认返回HOME目录。
pwd命令用于输出当前工作目录。
三、mkdir命令
用于创建目录。
实例:创建目录。
实例:-p创建多个层级目录,自动创建目标目录的父目录。
四、touch命令
用于创建文件,不带选项,可直接通过路径创建。
五、文件查看命令
cat命令
一次性全部显示文件内容。
more命令
支持翻页显示文件内容功能,适用于文件内容比较多的情况。
六、复制、移动、删除文件命令
cp命令
用于复制文件。
mv命令
用于移动文件。
rm命令
用于删除文件。
七、查找文件命令
wihich命令
which 命令
命令都是可执行的二进制文件,用于查看命令存放的位置。
find命令
find [路径] [匹配条件] [动作]
用于查找所需文件。
参数说明 :
路径 是要查找的目录路径,可以是一个目录或文件名,也可以是多个路径,多个路径之间用空格分隔,如果未指定路径,则默认为当前目录。
匹配条件用于指定查找的条件,可以是文件名、文件类型、文件大小等等。
匹配条件 中可使用的选项有二三十个之多,以下列出最常用的部份:
-name
:按文件名查找,支持使用通配符*
和?(正则表达式)
。-type
:按文件类型查找,可以是f
(普通文件)、d
(目录)、l
(符号链接)等。-size [+-]size[cwbKMG]
:按文件大小查找,支持使用+
或-
表示大于或小于指定大小,单位可以是c
(字节)、w
(字数)、b
(块数)、k
(KB)、M
(MB)或G
(GB)。-mtime days
:按修改时间查找,支持使用+
或-
表示在指定天数前或指定天数内,days 是一个整数表示天数。-user
:按文件所有者查找。-group
:按文件所属组查找。**动作:**可选的,用于对匹配到的文件执行操作,比如删除、复制等。
find 命令中用于时间的参数如下:
-amin n
:查找在 n 分钟内被访问过的文件。-atime n
:查找在 n*24 小时内被访问过的文件。-cmin n
:查找在 n 分钟内状态发生变化的文件(例如权限)。-ctime n
:查找在 n*24 小时内状态发生变化的文件(例如权限)。-mmin n
:查找在 n 分钟内被修改过的文件。-mtime n
:查找在 n*24 小时内被修改过的文件。- -ok:执行某些命令,需要用户确认。
- -exec:执行某些命令,没有用户交互。
在这些参数中,n 可以是一个正数、负数或零。正数表示在指定的时间内修改或访问过的文件,负数表示在指定的时间之前修改或访问过的文件,零表示在当前时间点上修改或访问过的文件。
正数应该表示时间之前,负数表示时间之内。
例如:-mtime 0 表示查找今天修改过的文件,-mtime -7 表示查找一周以前修改过的文件。
关于时间 n 参数的说明:
+n:查找比 n 天前更早的文件或目录。
-n:查找在 n 天内更改过属性的文件或目录。
n:查找在 n 天前(指定那一天)更改过属性的文件或目录。
实例: 查找系统中所有文件长度为 0 的普通文件,并列出它们的完整路径:
find / -type f -size 0 -exec ls -l {} \;
-exec 选项允许你执行一个命令,{} 将会被匹配到的文件名替代,\; 表示命令结束。
八、文件内容匹配命令
grep命令
grep [options] pattern [files]
该命令用来查找文件内容是否包含模式匹配的字符串(过滤作用)。
常用选项options(可写可不写):
-i
:忽略大小写进行匹配。-v
:反向查找,只打印不匹配的行。-n
:显示匹配行的行号。-r
:递归查找子目录中的文件。-l
:只打印匹配的文件名。-c
:只打印匹配的行数。- -d或-r:查找的是目录而非文件时候使用。
pattern:匹配模式(字符串或正则表达式)
files:需要匹配的目标文件或目录。
实例:文件中查找匹配项
grep hello file.txt
实例:目录中查找匹配项
grep -r -n d ./
wc命令
计算文件的Byte数、字数、或是列数。
实例:统计文本文件
参数分别为:行数 单词数 字节数
一个英文字符占一个字节,一个汉字占两个字节(ASCII码)!
管道符 |
作用将左边的结果用作右边的输入。
实例:使用管道符匹配
九、反引号' ` '
反引号括起来的内容会被当命令执行,配合echo使用,因为echo可以反弹用户输入的内容到控制台。
案例:反引号的使用
十、重定向符" > " 和 " >> "
> 作用:将符号左边的运行结果覆盖写入右边的文件中。
>>作用:将符号左边的运行结果追加写入右边的文件中。
案例:使用>覆盖写入和使用>>追加写入
十一、tail命令
用来查看尾部信息和持续追踪文件的更新内容!
常用选项:
- -f 循环读取
- -q 不显示处理信息
- -v 显示详细的处理信息
- -c<数目> 显示的字节数
- -n<行数> 显示文件的尾部 n 行内容
- --pid=PID 与-f合用,表示在进程ID,PID死掉之后结束
- -q, --quiet, --silent 从不输出给出文件名的首部
- -s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒
案例:使用-f持续追踪文件更新的内容。
此命令会持续运行,用户可以通过Crlt+C来结束该命令。