🐇明明跟你说过:个人主页
🏅个人专栏:《Kubernetes航线图:从船长到K8s掌舵者》 🏅
🔖行路有良友,便是天堂🔖
目录
一、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等。
二、文件默认权限(umask)
在Linux系统中,默认权限(也称为umask)是用来控制新创建文件和目录的权限的。umask值会从文件和目录的初始权限中减去。
通常,umask值是由三个数字组成,分别表示文件所有者、文件所属组和其他用户的权限。每个数字都可以是0到7之间的值,对应不同的权限设置。具体如下:
- 第一个数字表示文件所有者的权限。
- 第二个数字表示文件所属组的权限。
- 第三个数字表示其他用户的权限。
umask的值是由各个权限的相应位数相加得到的。例如,如果umask值为022,则表示文件所有者的权限不包括写权限,而文件所属组和其他用户的权限不包括写和执行权限。
在Linux系统中,umask值通常以八进制表示。因此,022表示文件默认权限为755(即-rwxr-xr-x)。
要查看当前系统的umask值,可以在终端中运行以下命令:
umask
要更改umask值,可以使用umask命令加上所需的umask值。例如,要将umask值设置为022,可以运行以下命令:
umask 022
这将更改当前会话中新创建文件和目录的默认权限。要永久更改umask值,可以将其添加到shell配置文件(如~/.bashrc或~/.bash_profile)中。
三、文件的隐藏属性(chattr)
文件的隐藏属性(chattr)通常与Linux系统相关,其中chattr命令用于修改文件或目录的扩展属性。这些扩展属性通常不受传统的文件权限系统(如chmod)所控制。通过chattr命令,用户可以改变文件的一些特殊属性,如不可删除、不可更改、压缩等,从而帮助用户更好地管理文件,并增强文件的安全性和稳定性。
在Linux系统中,可以使用chattr命令来设置文件的隐藏属性。这些隐藏属性可以帮助保护文件免受意外修改或删除。
以下是一些常用的chattr命令选项:
- +i:将文件设置为不可修改。一旦设置了这个属性,文件将无法被修改、删除、重命名或链接,直到取消这个属性。
- -i:取消文件的不可修改属性。
- +a:将文件设置为只追加。一旦设置了这个属性,文件只能追加数据,无法修改或删除已有内容。
- -a:取消文件的只追加属性。
- +u:启用文件的不可恢复删除属性。一旦设置了这个属性,删除文件后将无法恢复。
- -u:取消文件的不可恢复删除属性。
要设置文件的隐藏属性,可以使用chattr命令并指定要设置的属性。例如,要将文件设置为不可修改,可以运行以下命令:
chattr +i filename
要取消文件的不可修改属性,可以运行以下命令:
chattr -i filename
chattr命令通常需要root权限才能执行。确保在修改文件属性之前了解其影响,并小心操作。
四、文件类型查看(file)
在Linux系统中,可以使用file命令查看文件的类型。该命令会根据文件内容的特征来确定文件类型,并输出相应的描述信息。
使用file命令的基本语法如下:
file 文件路径
例如,如果要查看名为example.txt的文件类型,可以运行以下命令:
file example.txt
命令执行后,将会输出该文件的类型信息,例如文本文件、二进制文件、目录等。此外,还可能显示更详细的信息,例如文本文件的字符编码、可执行文件的体系结构等。
下面是一些示例输出:
对于文本文件:
example.txt: ASCII text
对于可执行文件:
example: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, not stripped
对于目录:
example_dir: directory
使用file命令可以帮助我们快速了解文件的类型,从而更好地处理和管理文件。
五、脚本文件的查找(which)
在Linux系统中,which命令用于查找给定命令的可执行文件路径。如果命令存在于系统的PATH变量指定的目录中,则which会输出该命令的完整路径。
which命令的基本语法如下:
which 命令名称
例如,要查找ls命令的位置,可以运行以下命令:
which ls
如果ls命令存在于系统PATH中,则将输出类似以下内容:
/bin/ls
如果命令不存在,则不会有任何输出。
六、文件查找(whereis)
在Linux系统中,whereis命令是一个用来查找二进制文件、源代码文件和man手册页的命令。与which命令不同的是,whereis不仅查找可执行文件,还查找与命令相关的其他文件,如源代码和手册页。
whereis命令常用于在系统中查找指定命令的位置以及其相关文件和帮助文档的位置。它会搜索特定命令的可执行文件、源代码文件以及man页面。
whereis命令的基本语法如下:
whereis 命令名称
例如,要查找ls命令的位置,可以运行以下命令:
whereis ls
如果ls命令存在于系统中,则将输出类似以下内容:
ls: /bin/ls /usr/share/man/man1/ls.1.gz
输出结果显示了ls命令的可执行文件路径和其对应的man页面路径。
七、atime、ctime、mtime
在Linux系统中,文件系统中的每个文件都有三个时间戳,它们分别是:
- Access Time(atime):表示文件最后一次被访问或读取的时间。当执行读取文件操作时,系统会更新atime。可以使用ls -lu命令来查看文件的atime。
- Change Time(ctime):表示文件的状态最后一次被修改的时间。当文件的所有者、权限或链接数发生变化时,系统会更新ctime。可以使用ls -lc命令来查看文件的ctime。
- Modify Time(mtime):表示文件内容最后一次被修改的时间。当执行写入文件操作时,系统会更新mtime。可以使用ls -l命令来查看文件的mtime。
这些时间戳在文件系统中存储为UNIX时间戳格式,即自1970年1月1日午夜(UTC)以来经过的秒数。这些时间戳可以帮助用户跟踪文件的访问、修改和状态变化情况。
💕💕💕每一次的分享都是一次成长的旅程,感谢您的陪伴和关注。希望这些关于Linux的文章能陪伴您走过技术的一段旅程,共同见证成长和进步!😺😺😺
🧨🧨🧨让我们一起在技术的海洋中探索前行,共同书写美好的未来!!!