网站制作培训费用,龙岩天宫山旅游攻略,在线网络制作系统,深圳市住房和城乡建设厅网站#x1f407;明明跟你说过#xff1a;个人主页
#x1f3c5;个人专栏#xff1a;《Linux #xff1a;从菜鸟到飞鸟的逆袭》 #x1f3c5;
#x1f516;行路有良友#xff0c;便是天堂#x1f516;
目录
一、前言
1、Linux的起源与发展
二、Linux文件种类
1、纯…
明明跟你说过个人主页
个人专栏《Linux 从菜鸟到飞鸟的逆袭》
行路有良友便是天堂
目录
一、前言
1、Linux的起源与发展
二、Linux文件种类
1、纯文本文件
2、二进制文件
3、数据文件
4、目录
5、链接文件
硬链接
符号链接
6、设备文件
7、套接字文件
8、管道文件
三、Linux文件扩展名
1、扩展名的概念
2、扩展名的使用习惯
3、扩展名与MIME类型
四、目录配置
1、Linux目录结构概述
2、根目录 / 下的主要子目录
3、目录的创建、删除与移动
目录的创建
目录的删除
目录的移动
五、高级话题
1、隐藏文件与目录.前缀
2、查找文件与目录使用find命令 一、前言
1、Linux的起源与发展 1991年芬兰赫尔辛基大学的学生林纳斯·托瓦兹Linus Torvalds开始编写一个新的操作系统内核这个内核最初被称为“Freax”。他的初衷只是想学习操作系统内核的开发并为自己的个人计算机编写一个操作系统。然而当他将这个内核发布在Internet上并开放源代码后全球各地的程序员开始参与到这个项目中来共同完善这个内核。最终这个内核被命名为Linux这个名字是由Linus Torvalds的名字和Unix操作系统的名字组合而成的。
Linux从一开始就坚持源代码的公开和免费使用任何人都可以对其进行修改和分发。这种开放性和自由性吸引了大量的开发者和用户使得Linux逐渐成长并成熟起来。如今Linux已经发展成为一个性能稳定、功能强大的多用户网络操作系统支持32位和64位硬件能运行主要的Unix工具软件、应用程序和网络协议。同时Linux也有上百种不同的发行版如基于社区开发的Debian、ArchLinux以及基于商业开发的Red Hat Enterprise Linux、SUSE、Oracle Linux等。 二、Linux文件种类
1、纯文本文件
纯文本文件是由ASCII码字符构成的文件其内容可以被人类轻松读懂和编写。纯文本文件是原始且高效的进程间通信方式特别是在两个不同步执行的进程需要进行通信时。此外纯文本文件常用于存储源代码、配置文件、日志文件等。它们通常具有 .txt、.conf 或 .log 等扩展名。 2、二进制文件
二进制文件存储的是数字这些数字并不是文字的编码数字而是真正的数字。二进制文件在Linux中非常常见尤其是可执行文件。这些文件由编译器生成例如gcc编译程序在编译过程中会生成中间文件这些文件就是二进制文件。二进制文件的编码是变长的利用率高但译码相对困难不同的二进制文件译码方式可能不同。 3、数据文件
数据文件主要用于存储程序运行时所需的数据。这些数据可能是文本、数字、图像或其他任何类型的信息。数据文件的具体格式和内容取决于程序的需求和设计。在Linux中数据文件可以有多种格式如CSV、XML、JSON等用于存储和交换结构化或非结构化的数据。 4、目录
就是目录第一个属性为[ d ]例如[ drwsr-sr-t ] 5、链接文件 在Linux中链接文件允许用户创建指向其他文件或目录的引用。链接文件可以分为两种主要类型硬链接hard link和符号链接symbolic link也称为软链接。 硬链接 硬链接是指创建一个指向文件索引节点inode的链接。每个文件在文件系统中都有一个唯一的inode它包含了文件的所有元数据如权限、所有者、大小等以及指向文件数据块的指针。硬链接实际上只是给文件的inode增加了一个引用计数并不会创建新的inode或数据块。 符号链接 符号链接是一个特殊的文件它包含了一个指向另一个文件或目录的路径字符串。符号链接也被称为“软链接”因为它仅仅是一个指向另一个文件或目录的“快捷方式”。 6、设备文件 Linux设备文件代表了系统中的硬件设备。在Linux操作系统中所有的硬件设备都被抽象为一个文件这使得用户可以像访问普通文件一样来访问和操作硬件设备。 Linux设备文件通常位于/dev目录下每个设备文件都有一个唯一的设备号也称为主设备号和次设备号用于标识不同的硬件设备。设备文件可以分为字符设备文件和块设备文件两种类型它们分别对应于字符设备和块设备。字符设备是指那些只能顺序访问的设备如键盘、鼠标等而块设备是指那些可以随机访问的设备如硬盘、光驱等。
作为设备驱动程序的接口设备文件允许应用程序通过标准输入输出系统调用使用其设备驱动程序与设备进行交互。使用标准系统调用简化了许多编程任务并且无论设备的特性和功能如何都可以实现一致的用户空间I/O机制。设备文件通常提供与标准设备如打印机和串行端口的简单接口但也可用于访问这些设备如磁盘分区上的特定独特资源。 7、套接字文件 Linux套接字文件用于进程间通信和网络通信。它提供了一种进程间的双向通信机制使得不同进程可以通过套接字文件进行数据交换和通信。在网络编程中套接字文件是建立网络连接的一种方式通过创建和使用套接字文件进程可以通过网络进行通信例如通过TCP/IP或UDP协议发送和接收数据。 在Linux中套接字文件以文件的形式实现与套接字相应的文件属于sockfs特殊文件系统。创建一个套接字就是在sockfs中创建一个特殊文件并建立起为实现套接字功能的相关数据结构。
套接字文件的主要属性包括
域domain指定了套接字通信中使用的网络介质。例如AF_UNIX表示UNIX域协议文件系统套接字而AF_INET表示ARPA因特网协议UNIX网络套接字可以用于包括互联网在内的TCP/IP网络进行通信。类型type一个域包含多种不同的通信方式。例如AF_INET域包括流和数据报两种通信方式。
每个套接字必须有其自己的唯一文件描述符与之关联以便在Linux中两个套接字之间传输数据。这些文件描述符是在套接字使用bind()、listen()、accept()、connect()、send()等函数时与套接字关联的。
第一个属性为[ s ] 8、管道文件 管道文件主要用于进程间通信。它允许一个进程写入端将其产生的数据写入到管道中而另一个进程读取端则可以从管道中读取这些数据。这种通信方式在父子进程间通信尤为常见。 管道文件实际上只存在于内存中不占用磁盘空间。它单独构成一种独立的文件系统但不属于任何常规的文件系统。每个管道文件都有一个与之关联的文件描述符用于在进程间传递数据。
管道文件具有一些特点如数据按顺序从写端传到读端数据是临时性的不持久化到磁盘且管道有大小限制当数据超过限制时写操作会被阻塞。当最后一个读或写进程关闭后管道文件会自动删除。
除了无名管道即通常所说的管道Linux还提供了命名管道Named Pipe。命名管道允许无关进程即非父子关系进程之间进行通信甚至跨越不同的进程号和主机。命名管道通过文件系统中的某个文件名来建立其他进程可以通过打开该文件来进行通信。使用命名管道时需要先用mkfifo命令创建管道文件然后通过文件I/O操作来进行数据的读写。 三、Linux文件扩展名
1、扩展名的概念
在Linux系统中文件的扩展名通常被称为文件的类型它可以告诉用户文件的内容或用途。尽管Linux系统并不像Windows系统那样严格要求文件有扩展名但很多文件在命名时仍然会带有特定的扩展名以便于用户对文件进行识别和管理。
Linux系统的文件扩展名通常是以“.”开头的例如“.txt”、“.jpg”、“.sh”等。不同的扩展名代表不同的文件类型比如“.txt”表示文本文件“.jpg”表示图片文件“.sh”表示脚本文件等等。除了常见的文件类型扩展名之外Linux系统还支持用户自定义扩展名用户可以根据自己的需求给文件添加不同的扩展名。
2、扩展名的使用习惯 扩展名主要用于帮助用户和组织识别文件的用途和内容。 以下是一些Linux扩展名的使用习惯
自定义性Linux允许用户自定义扩展名这意味着我们可以根据自己的需要为文件添加任何扩展名。但是为了保持一致性和可读性通常建议遵循常见的扩展名约定。脚本和程序对于脚本文件如bash脚本常见的扩展名是.sh。这有助于用户快速识别哪些文件是可执行的脚本。压缩文件压缩文件通常使用如.tar、.gz、.bz2、.zip等扩展名。这些扩展名告诉用户文件的压缩格式以及可能需要使用哪种工具来解压。配置文件配置文件可能没有特定的扩展名但通常会有一些常见的命名约定如使用.conf作为扩展名。文档和文本文本文件可能使用.txt作为扩展名但这不是强制的。实际上很多文本文件如源代码文件可能没有扩展名或者使用与文件内容相关的扩展名如.c对于C语言源文件。二进制文件二进制文件通常没有特定的扩展名因为Linux系统通过文件的权限和内容来识别文件是否可以执行。避免特殊字符在Linux中文件名包括扩展名应避免使用特殊字符因为这可能导致文件在命令行中无法正确识别或处理。建议使用字母、数字和下划线来命名文件。长度限制Linux文件系统对文件名和路径的长度有限制。所以当使用扩展名时应注意确保整个文件名包括路径的长度不超过系统限制。 3、扩展名与MIME类型 在Linux和更广泛的计算机环境中文件的扩展名和MIME类型都用于标识文件的类型和用途但它们有着不同的作用和使用方式。 文件的扩展名如.txt、.jpg、.sh等主要是用于帮助用户和组织识别文件的类型和内容。在Linux系统中尽管文件扩展名并不是确定文件类型的唯一标准但它仍然被广泛使用尤其是在用户层面作为识别文件的一种快捷方式。用户可以根据自己的需要自定义文件扩展名以更好地组织和管理文件。
而MIMEMultipurpose Internet Mail Extensions类型则是一种更标准化的方式用于描述文件的类型和内容。MIME类型通常由两部分组成主类型如文本、图像、音频、视频等和子类型如纯文本、JPEG图像、MP3音频等两者之间用斜杠分隔。例如“text/plain”表示纯文本文件“image/jpeg”表示JPEG图像文件。
MIME类型的主要用途是在互联网通信中特别是HTTP协议中标识服务器所返回的资源类型。当客户端如浏览器向服务器请求一个文件时服务器返回的HTTP响应中包含一个MIME类型字段用于告诉客户端这个文件的内容类型。这样客户端就可以正确地解析和显示文件内容。 四、目录配置
1、Linux目录结构概述
Linux目录结构是一个树状结构其中根目录/是整个文件系统的顶级目录所有其他目录和文件都是从根目录开始的。
FHS (Filesystem Hierarchy Standard): FHS 是一个标准化的规定旨在统一类UNIX系统的目录结构确保不同Linux发行版之间的兼容性和一致性并且方便用户和开发者熟悉和管理文件系统。
2、根目录 / 下的主要子目录
/bin包含一些基本的可执行文件这些文件是系统启动和运行所必需的。例如ls、cat等常用的命令就存放在这个目录下。/boot包含启动加载程序bootloader的相关文件包括内核映像文件和引导配置文件。这些文件在启动过程中用于引导操作系统。/dev包含设备文件这些文件用于与系统中的设备进行交互。/etc存放系统配置文件这些文件包含系统运行时的各种参数和设置。/home用户的主目录每个用户都有一个与其用户名相对应的子目录。这些目录通常用于存储用户的个人文件和数据。/lib存放系统库文件这些库文件包含程序运行时所需的共享代码。/media通常用于挂载可移动设备如USB驱动器或光盘。/mnt用于临时挂载其他文件系统或网络共享。/opt用于安装第三方软件包。这通常是一些可选的、非系统核心的软件。/proc一个虚拟文件系统提供有关系统和进程的信息。它并不真正占用磁盘空间而是实时反映系统的状态。/sbin存放系统管理员使用的系统管理命令和守护进程等。/srv存放服务器数据。/tmp用于存放临时文件。这些文件在系统重启后通常会被删除。/usr用户文件存放目录存放用户的文件和软件。例如/usr/bin 和 /usr/sbin 分别存放用户级别的和系统级别的可执行文件。/var存放系统运行过程中产生的可变数据如日志文件、数据库等。 3、目录的创建、删除与移动
在Linux系统中目录的创建、删除与移动可以通过一系列命令来实现。
目录的创建 使用mkdir命令mkdir是一个简单且直观的命令可以快速创建单个目录或多级目录。例如mkdir my_directory将创建一个名为my_directory的新目录。如果要创建多级目录可以使用-p选项如mkdir -p parent_directory/child_directory。使用cp命令虽然cp主要用于复制文件但当指定目标路径不存在时它也可以用来创建目录。例如cp -r my_directory new_directory会复制my_directory并创建一个新的目录new_directory如果它还不存在。
目录的删除 使用rmdir命令这是一个用于删除空目录的命令。如果目录中有文件或子目录rmdir命令将无法删除。使用rm命令rm命令既可以删除文件也可以删除目录。当用于删除目录时需要使用-r选项来表示递归删除目录及其内容。例如rm -rf directory_name将删除名为directory_name的目录及其所有内容。但请注意使用rm -rf命令时要格外小心因为它会无提示地删除文件和目录可能导致数据丢失。
目录的移动 使用mv命令mv命令用于移动或重命名文件或目录。要将一个目录移动到另一个位置可以使用mv命令并指定源目录和目标目录的路径。例如mv source_directory destination_directory/将把source_directory移动到destination_directory/下。如果destination_directory/不存在mv命令会将其视为新目录的名称并将source_directory重命名为destination_directory。
五、高级话题
1、隐藏文件与目录.前缀
在Linux系统中隐藏文件或目录的一个常见方法是在文件名或目录名前添加一个点.作为前缀。这样做是因为Linux通过文件名来判断是否将其视为隐藏文件或目录。带有点前缀的文件或目录在大多数文件管理器中默认会被隐藏使得用户不会在日常操作中轻易看到它们。
要隐藏一个文件或目录可以使用mv命令来重命名文件或目录例如
mv myfile .myfile
这样myfile或mydirectory就会变为隐藏文件或目录。
要查看隐藏的文件或目录可以使用ls -a命令来列出当前目录下的所有文件和目录包括隐藏的。例如
ls -a 2、查找文件与目录使用find命令 find命令是用于在目录层次结构中搜索文件和目录的强大工具。我们可以使用find命令根据各种条件如权限、类型、日期、所有权、大小等来搜索文件和目录并对每个匹配的文件执行指定的操作。 find命令的基本语法如下
find path options patterns
path指定要进行搜索的目录路径。options用于设置搜索的条件和行为的选项。patterns匹配文件名的模式。
以下是一些常用的find命令选项
-name pattern根据文件名进行匹配搜索。-type type按照文件类型进行搜索如f表示普通文件d表示目录等。-user username搜索指定所有者的文件。-size [|-]size根据文件大小进行搜索可以使用表示大于-表示小于。-exec command {} \;对搜索结果执行指定的命令。 例如查找当前目录及其子目录下所有名为myfile.txt的文件
find . -name myfile.txt
查找/home/user目录下所有的目录
find /home/user -type d 查找/etc目录下所有属于用户root的文件
find /etc -user root 查找当前目录及其子目录下所有大于1M的文件并删除它们
find . -type f -size 1M -exec rm {} \; 每一次的分享都是一次成长的旅程感谢您的陪伴和关注。希望这些关于Linux的文章能陪伴您走过技术的一段旅程共同见证成长和进步 让我们一起在技术的海洋中探索前行共同书写美好的未来