目录
1.shell,centos默认shell是什么?
2.内部命令
3.外部命令
4.内部命令外部命令的区别
5.命令执行的顺序
6.linux 命令执行格式
7.linux命令辅助操作
8.linux命令帮助使用
9. pwd 命令
10.cd 命令
11. 家目录
12. 绝对路径和相对路径
13. . 和 ..含义
14. ls 命令和选项
15. linux 7大文件格式
16. 通配符
17. alias
18. du命令
19. mkdir命令
20.touch命令
21.软连接含义及建立软连接
22.硬连接含义及建立硬连接
23.软连接和硬连接的区别
24.cp命令
25.rm 含义
26.mv含义
27.which含义
28.find基础含义
29. find高级使用
30.du 和 ls 看到文件大小
shell 不是具体的软件名称,一类软件的总称类似于一堆功能相同软件的归类
内部命令:装shell的时候 连通 shell 软件一起安装了 属于shell的一部分
外部命令:需要额外安装 不属于shell
内部命令是内置在软件里的
外部命令需要额外一个独立文件
内部命令和外部命令相比内部命令优先级高 因为内部命令在内存中
命令字
是整条命令中最关键的一部分
唯一确定一条命令
选项
短格式选项:使用符号 - 引导一单个字母
长格式选项:使用符号 -- 引导 完整的单词
命令字 空格 选项 空格 参数
命令不加选项就是只是用命令的基础功能 加选项会使用额外功能
不加参数默认当前文件夹
·Tab 键: 结果唯一自动补齐,结果不唯一显示所有
·反斜杠“\”:强制换行
·Ctrl+U组合键:清空至行首
·Ctrl + K组合键: 清空至行尾
·Ctrl +L组合键:清屏
·Ctrl+ C组合键: 取消本次命令编辑
上下键显示已经打过的命令
Ctrl+r搜索命令
help命令
内部命令:help 加命令 例如help cd
外部命令:命令 -- help 例如 ls -- help
手册命令
manul命令
man ls
进入后空格键一页下翻
回车一行下翻
q 退出man手册
man 不加数字默认 使用11代表查询 linux 命令
man 5 文件名代表查询此文件的格式
pwd看当前路径(要时刻确认自己的目录)
pwd -P 看软链接的真实路径(一定要先进软连接的文件夹中先cd进入才行)
cd 命令用于切换当前工作目录。一般情况下,当用户打开终端时,默认的工作目录为该用户的主目录(也称为家目录或用户目录)。使用 cd 命令可以切换到其他目录。
1.切换到当前用户的主目录:
cd
该命令不带任何参数,可快速切换到当前用户的主目录。
2.切换到指定目录下的子目录:
cd /path/to/directory/
该命令将切换到指定目录中的子目录,例如 /path/to/directory/ 中的 subdirectory。
3.切换到上一级目录:
cd ..
该命令将切换到当前目录的上一级目录。
4.切换到之前访问过的目录:
cd -
该命令将切换到之前访问过的目录
家目录(宿主目录):放用户的配置文件的
该用户在自己的家目录下拥有最高权限
家目录就是给普通用户使用的空间
切换家目录的方法两种一种cd什么都不跟一种cd ~都是切换到当前用户的家目录
root用户的家目录在 /root
普通用户的家目录在 /home/下有一个和用户名相同的文件夹
绝对路径:从根开始只要开头是/都是绝对路径
相对路径:如果不是/开头的就是相对路径
我现在位置在 /
绝对路径回到 root 家目录cd /root
相对路径回到 root 家目录cd root
.代表当前文件夹
..代表上级
例如abc三类文件夹
c中的.代表c中的..代表b
-A不显示. 和..
ls 命令用于列出目录中的文件和子目录,并显示它们的详细信息。下面是 ls 命令常用的选项:
-a:显示所有文件,包括隐藏文件(以点号开头的文件)。
-l:以详细列表格式显示文件的详细信息,包括文件权限、所有者、大小、修改时间等。
-h:以人类可读的格式显示文件的大小,例如 KB、MB 等。
-r:倒序显示文件的列表。
-t:按修改时间排序,最新的文件显示在最上面。
-R:递归显示目录结构,包括子目录中的文件和目录。
-d:仅显示目录自身的信息,而不是显示目录中的文件列表。
例如,以下命令使用 ls 命令并加上 -l 和 -h 选项,以详细列表格式显示当前目录中所有文件的大小:
ls -lh
该命令将以人类可读的格式(如 KB、MB 等)显示文件的大小,方便用户查看每个文件占用的存储空间大小。
-普通文件 (例如文本文档) 黑色的
d 目录文件(文件夹)蓝色的
c 字符文件(以字符表示文件)(空格)黄色的
b 块文件(磁盘就是硬盘设备)黄色的
l 链接文件(快捷方式)青色
s 套接字 (在进程之间传递信息例如在这里面复制东西到微信的过程) 紫色的
p 管道 (数据单向传输)黄色的
作用匹配文件名
以下是通配符的一些示例以及对应的代码:
1.*
通配符可以匹配任意字符,表示零个或多个字符。例如,匹配当前目录下所有以 ".txt" 结尾的文件:
2.?
通配符可以匹配任意单个字符,例如匹配当前目录下所有名字中第2个字符是数字的文件:
3.[]
通配符可以匹配指定范围内的任意一个字符,例如匹配当前目录下所有以 a、b、c、d、e 中任意一个为开头的文件:
alias 是一种用来创建命令别名的机制。简单来说,alias 命令可以帮助用户自定义命令的名称,以便更方便地使用系统命令或执行一系列命令。
举个例子,如果你经常用 ls -l
命令来查看文件信息,但是输入这个命令太长了,你可能会想要将它简化成一个别名,例如 ll
。那么,你可以通过运行以下命令来创建该别名:
这时候,当你输入 ll
时,实际上执行的是 ls -l
命令,因此你可以更快速地查看文件信息。
这样打myvim就可以代替长指令了
如果想取消别名unalias ls就可以取消别名
alias 自定义命令=’系统命令‘
alias 单独打 显示所有的别名
\命令 不使用别名
unalias 自定义命令 取消别名
当你在 Linux 系统中需要查看目录或文件的磁盘使用情况时,你可以使用 du 命令。du 命令会遍历指定目录下所有文件和子目录,并返回每个文件或子目录所占用的磁盘空间大小。
假设你想查看当前目录下所有文件和子目录所占用的磁盘空间大小,你可以输入如下命令:
其中,-h 选项表示以人类可读的方式显示结果,即以 KB、MB 或 GB 等形式表示磁盘使用情况。
执行该命令后,会遍历当前目录及其所有子目录,计算每个文件和子目录所占用的磁盘空间大小,并将结果显示出来。例如,你可能会看到类似下面的输出:
第一列是每个文件或子目录占用的磁盘空间大小(以 KB、MB 或 GB 等单位显示),第二列是文件或子目录的路径。
在 Linux 系统中,mkdir 命令用于创建新的目录(文件夹)。如果你需要在当前目录下创建一个新目录,你可以使用 mkdir 命令。
举个例子
mkdir {aa,bb,cc}/{11,22,33} -vp这段命令的意思是
1.创建多级目录结构
上述命令将在当前目录下创建六个新目录,分别为 aa/11、aa/22、aa/33、bb/11、bb/22 和 bb/33,cc/11、cc/22 和 cc/33。其中,大括号 {} 内使用逗号分隔多个选项,表示需要创建的根目录。大括号后接斜杠 /,再使用逗号分隔多个选项,表示在每个根目录下需要创建的子目录。
2.显示创建过程
上述命令中加入了 -v 选项,表示在创建过程中显示详细信息;加入了 -p 选项,表示即使父目录不存在也可以创建子目录。
因此,执行上述命令时,会在当前目录下创建六个新目录,并在执行过程中显示详细信息。
Linux 操作系统中创建文件时,可以使用 touch 命令。该命令会在指定路径下创建一个新的空白文件或者更新已有文件的时间戳。touch后面如果跟的文件名不存在就创建文件如果存在就刷新文件时间
上述命令将在当前目录下创建三个新文件,分别为 example1.txt、example2.txt 和 example3.txt。
在 Linux 系统中,软链接又称符号链接,是一种特殊类型的文件,它类似于指向另一个文件或目录的快捷方式。软链接不是实际的数据,而是指向目标文件或目录的路径。
可以使用 ln 命令来创建软链接,如下所示:
其中,-s 选项表示创建软链接。
举个例子:
假设要在 /home/user1 目录下创建一个名为 link-to-example 的软链接,指向 /usr/share/example 目录。可以执行以下命令:
上述命令将在 /home/user1 目录下创建一个名为 link-to-example 的软链接,指向 /usr/share/example 目录。
创建完成后,可以通过 ls 命令来查看软链接:
上述命令会显示软链接相关的详细信息,包括链接到的目标、权限和时间戳等信息。
在 Linux 系统中,硬链接是一种特殊类型的文件连接方式,它允许用户在同一个文件系统中,以不同的文件名来访问同一个文件。硬链接可以使得多个文件名指向同一个实际数据块,这些文件名之间没有所谓的源和目标的关系,而是平等地对待。另外,硬链接只能针对文件进行创建,不能对目录进行创建。
可以使用 ln 命令来创建硬链接,如下所示:
上面的命令将在 /path/to/link 目录下创建一个新的硬链接,指向 /path/to/target 文件。
举个例子:
假设要在 /home/user1 目录下创建一个名为 link-to-example 的硬链接,指向 /usr/share/example 目录。可以执行以下命令:
上述命令将在 /home/user1 目录下创建一个名为 link-to-example 的硬链接,指向 /usr/share/example 目录。
创建完成后,你可以通过 ls -li 命令来查看硬链接:
上述命令会显示硬链接相关的详细信息,包括链接到的目标、权限和时间戳等信息。其中,第一列的数字表示链接的 inode 号,由于硬链接和原始文件共享相同的 inode 号,因此它们在系统中存储的位置相同,硬链接和原始文件的数据内容也是相同的。
软连接和硬连接是 Linux 文件系统中常用的文件链接方式,它们之间有以下区别:
实现方式不同:软连接是一种特殊的文件,其中包含了指向目标文件或目录的路径,而硬链接是一个指向目标文件或目录的 inode 号。
跨文件系统: 软链接可以跨文件系统创建,而硬链接只能在同一文件系统中创建。
文件类型:软链接是一种独立的文件类型,而硬链接与原始文件共享相同的 inode 号,所以它们的文件类型和权限也是一样的。
删除原文件行为不同:如果删除了原始文件,那么硬链接仍然可以访问数据,因为它们共享相同的 inode 号。但是软链接会失效,因为它指向的文件已经不存在了。
指向的目标不同:软链接可以指向文件或目录,而硬链接只能指向文件,不能指向目录。
在 Linux 操作系统中,cp
是一个非常常用的命令,用来将一个或多个文件或目录复制到指定的目录中,或者将一个文件或目录重命名。下面是 cp
命令的基本用法:
其中,SOURCE
表示源文件或目录,DIRECTORY
表示要将文件或目录复制到的目标路径。OPTION
则表示可选参数,例如 -r
表示递归复制目录, -i
表示交互式复制等。
一些 cp
命令的常用选项:
-r
:递归复制目录及目录中所有内容-i
:询问是否覆盖已存在的目标文件-u
:只复制源文件中更新的文件-p
:保留文件属性,如权限、时间等-f
:强制复制,不询问是否覆盖已存在的目标文件举个例子:
1.将文件 file1 复制到目录 dir 中:
2.将多个文件 file1、file2 和 file3 复制到目录 dir 中:
3.递归地将目录 src 复制到目录 dest 中:
4.将文件 file1 重命名为 file2:
5.将文件 file1 复制到目录 dir 中,并保留文件的属性:
rm
是 Linux 系统中的一个命令,用于删除指定的文件或目录。其语法格式为:
其中,OPTION
表示可选选项,FILE
表示要删除的文件或目录的路径。可以同时指定多个文件或目录进行删除。
一些 rm
命令的常见选项:
-r
:递归地删除目录及其内容。-f
:强制删除,无需确认操作,慎用。-i
:删除前需要与用户确认,避免误删。MV是 Linux 系统中的一个命令,用于移动或重命名指定的文件或目录。其语法格式为:
其中,OPTION
表示可选选项,SOURCE
表示要移动或重命名的源文件或目录,DIRECTORY
表示目标路径。
一些 mv
命令的常见选项:
-i
:交互式,对于已经存在的目标文件或目录,需要与用户确认操作。-f
:强制移动或覆盖目标文件或目录。-u
:只移动或覆盖比目标文件或目录更新的文件。举个例子:
1.将文件 file.txt 移动到目录 path/ 中:
2.将文件 file.txt 重命名为 file1.txt:
3.将目录 folder1 移动到目录 folder2 中:
4.将目录 folder1 中的所有内容移动到目录 folder2 中:
which是 Linux 系统中的一个命令,用于在系统环境变量 $PATH
所指定的路径中查找指定命令的位置。其语法格式为:
其中 OPTION
表示可选选项,NAME
表示要查找的命令名称。
一些 which
命令的常见选项:
-a
:查找所有匹配的命令,而不是只查找第一个命令。-i
:忽略大小写,不区分大小写查找命令。-v
:打印出每个命令的路径,而不仅仅是第一个匹配的命令。举个例子:
1.查找命令 ls 的路径:
2.查找所有匹配的命令:
3.查找非交互式 shell (bash) 的路径:
find
是 Linux 系统中的一个强大的命令行工具,用于查找指定目录及其子目录中满足特定条件的文件和目录。其语法格式为:
其中,path
表示要搜索的路径(目录),默认为当前目录;expression
表示条件表达式,用于指定查找的文件类型、文件名、文件属性等信息。
find
命令的常见选项:
-name
:根据文件名进行查找,通配符可以使用 *
和 ?
。-type
:根据文件类型进行查找,可选的文件类型有 f
(文件)、d
(目录)、l
(符号链接)等。-mtime
:根据修改时间进行查找,可选的时间标记有 +
(大于)、-
(小于)和 =
(等于),单位为天。-size
:根据文件大小进行查找,可选的大小标记有 +
(大于)、-
(小于)和 =
(等于),单位为块。举个例子:
1.查找当前目录下所有文件名以 .txt
结尾的文件:
2.查找当前目录下所有普通文件(不包括目录和符号链接):
3.查找 /var/log
目录下所有在两天前修改过的文件:
4.查找当前目录下所有大小不足 1KB 的文件:
这个命令的含义是在 /boot
目录下查找文件大小大于 1M
的文件,并将这些文件复制到 /mnt/
目录下。
具体来说,各个命令和选项的含义如下:
find
:用于在指定目录及其子目录中查找文件。/boot
:表示要查找的目录为 /boot
,即在 /boot
目录下查找。-size +1M
:表示要查找大小大于 1M
的文件。+1M
表示文件大小应该大于(+
)1M
,M
表示兆字节;可替换为其他的单位,如 K
表示千字节、G
表示吉字节等。-exec
:表示在找到符合条件的文件时执行一个命令。cp
:表示要执行的命令为 cp
,即复制命令。/mnt/
:表示复制到 /mnt/
目录下。注意,这里需要指定复制的目标路径,否则会出现错误。综上所述,这个命令的作用是在 /boot
目录下查找大小大于 1M
的文件,并将这些文件复制到 /mnt/
目录下。你可以根据具体的情况更改查找目录、文件大小和复制目标路径等参数
这个命令的含义是在 /mnt
目录下查找大小大于 1M
的文件,并将这些文件重命名为原文件名加上 .bak
后缀(做备份),并放置在同一目录下。
具体来说,各个命令和选项的含义如下:
find
:用于在指定目录及其子目录中查找文件。/mnt
:表示要查找的目录为 /mnt
,即在 /mnt
目录下查找。-size +1M
:表示要查找大小大于 1M
的文件。+1M
表示文件大小应该大于(+
)1M
,M
表示兆字节;可替换为其他的单位,如 K
表示千字节、G
表示吉字节等。-exec
:表示在找到符合条件的文件时执行一个命令。mv
:表示要执行的命令为 mv
,即移动或者重命名命令。{}
:表示匹配到的文件名,由 find 命令自动生成。.bak
:表示文件名后缀,这里是 .bak
,你可以根据需要修改。\;
:表示语句结束符,\
是转义符,;
代表这是一个完整的语句,需要使用分号结束。综上所述,这个命令的作用是在 /mnt
目录下查找大小大于 1M
的文件,并将这些文件重命名为原文件名加上 .bak
后缀(做备份),并放置在同一目录下。你可以根据具体需要修改查找目录、文件大小、后缀名等参数。find
命令中的 {}
表示一个占位符,意思是用当前查找到的文件名替换掉这个 {}
。在执行命令时,find
命令会自动替换 {}
为当前找到的文件名。
而在这个命令中,由于后面有 mv
重命名命令,需要同时将原来的文件名和新的文件名传入,所以这里出现了两个 {}
,分别表示原文件名和新的文件名。
具体来说,第一个 {}
表示文件原来的名字,而第二个 {}
则表示文件新的名字(加上 .bak
后缀)。在执行 mv
命令时,find
命令会将这两个 {}
分别替换为原文件名和新文件名,从而完成文件重命名的操作。
du
命令是用来查看指定目录或文件的磁盘使用情况的命令,可以用来查看文件大小、目录大小等。它会列出指定文件或目录以及其所有子目录占用的磁盘空间大小,不同的选项可以显示不同单位的大小,例如 du -h 文件名
可以以人类易读的方式显示文件的大小。
举些例子
1.查看当前目录下所有文件和子目录的大小(单位为KB)
2.查看指定目录下所有文件和子目录的大小(单位为MB)
而 ls
命令则是用于列出指定文件或目录的内容列表,也可以查看文件或目录的大小。当使用 ls -l
命令时,文件或目录的大小会以字节为单位显示在列表的第五列中。同时也可以使用 ls -lh
命令来以人类易读的方式显示文件的大小。
1.查看当前目录下所有文件和子目录的详细信息,包括文件大小(单位为字节)以及权限等信息
2.查看当前目录下所有文件和子目录的详细信息,同时将文件大小以人类易读的方式显示
需要注意的是,du
查看的是磁盘空间的使用情况(即占用的实际空间),而 ls
查看的只是文件或目录的属性信息之一(即占用的逻辑空间),所以相同的文件在两个命令下看到的大小可能会有所不同。