linux基本概念理解

目录结构

Linux目录结构是一种层次化的文件系统结构,它是用于组织和管理文件和目录的标准方式。下面是Linux常见的目录结构:

  1. /(根目录):整个文件系统的根目录,所有其他目录和文件都位于根目录下。
  2. /bin:包含一些基本的可执行命令(二进制文件),如ls、cp、mv等。
  3. /boot:包含启动系统所需的文件,如内核文件和引导加载程序(bootloader)配置文件。
  4. /dev:包含设备文件,用于与计算机上的硬件设备进行交互,如磁盘驱动器、键盘、鼠标等。
  5. /etc:包含系统配置文件,如网络配置、用户配置、服务配置等。
  6. /home:用户的个人主目录,每个用户都有一个以其用户名命名的子目录,用于存储个人文件和设置。
  7. /lib和/lib64:包含系统和应用程序所需的共享库文件。
  8. /media:用于挂载可移动介质(如USB驱动器、光盘等)的目录。
  9. /mnt:用于临时挂载其他文件系统或网络共享的目录。
  10. /opt:用于安装第三方软件的目录,一些应用程序会被安装在/opt目录下。
  11. /proc:虚拟文件系统,提供有关系统内核和进程的信息,可以通过读取特定文件来访问这些信息。
  12. /root:超级用户(root)的个人主目录。
  13. /sbin:包含一些系统管理命令,只有超级用户才能执行这些命令。
  14. /srv:包含服务数据,如网站数据、文件传输协议(FTP)数据等。
  15. /tmp:用于存储临时文件的目录,该目录下的文件在系统重启后会被删除。
  16. /usr:用于存放用户应用程序和文件的目录。
  17. /var:包含经常变化的文件,如日志文件、缓存文件、数据库文件等。

这些是常见的Linux目录结构,不同的Linux发行版可能会有一些细微的差异,但大体上遵循相似的结构。

文件路径

Linux中的路径用于定位和访问文件和目录。路径可以分为两种类型:绝对路径和相对路径。

  1. 绝对路径:以根目录(/)作为起点,完整地指定文件或目录的路径。以下是一些示例:
  • /home/user/file.txt:表示根目录下的home目录中的user目录中的file.txt文件。
  • /etc/apt/sources.list:表示根目录下的etc目录中的apt目录中的sources.list文件。
  • /usr/bin/gcc:表示根目录下的usr目录中的bin目录中的gcc可执行文件。
  1. 相对路径:相对于当前工作目录来指定文件或目录的路径。以下是一些示例:
  • file.txt:表示当前工作目录中的file.txt文件。
  • …/dir/file.txt:表示当前工作目录的上一级目录中的dir目录中的file.txt文件。
  • ./script.sh:表示当前工作目录中的script.sh脚本文件。

在Linux中,还有一些特殊的路径表示方式:

  • /documents表示当前用户的主目录下的documents目录。
  • .(点):表示当前目录,例如./file.txt表示当前目录下的file.txt文件。
  • …(两个点):表示当前目录的上一级目录,例如…/dir表示当前目录的上一级目录中的dir目录。

另外,还有一些特殊的目录符号用于快速访问特定目录:

  • /:根目录。
  • .:当前目录。
  • …:上一级目录。

在使用路径时,可以结合这些符号来进行导航和定位文件和目录。

文件类型

在Linux系统中,每个文件都具有一个文件类型,文件类型决定了操作系统如何对待该文件以及如何解释其内容。下面是一些常见的文件类型:

  1. 普通文件(Regular file):普通文件是最常见的文件类型,它包含了实际的数据,可以是文本文件、二进制文件、图像文件等。在Linux中,普通文件用"-"表示。
  2. 目录(Directory):目录用于组织和存储文件和其他目录。在Linux中,目录用"d"表示。
  3. 符号链接(Symbolic link):符号链接是指向另一个文件或目录的指针,类似于Windows系统中的快捷方式。符号链接可以跨越不同的文件系统。在Linux中,符号链接用"l"表示。
  4. 设备文件(Device file):设备文件用于与系统中的硬件设备进行交互。有两种类型的设备文件:
    • 块设备文件(Block device):用于访问随机访问设备,如硬盘驱动器。在Linux中,块设备文件用"b"表示。
    • 字符设备文件(Character device):用于访问顺序访问设备,如键盘、鼠标。在Linux中,字符设备文件用"c"表示。
  5. 套接字(Socket):套接字用于进程间的网络通信。在Linux中,套接字用"s"表示。
  6. 管道(FIFO):管道用于进程间的通信,是一种特殊的文件类型。在Linux中,管道用"p"表示。

除了上述常见的文件类型,Linux还支持其他一些特殊文件类型,如共享库文件(Shared library)和设备文件中的块缓冲(Block buffer)等。

要查看文件的类型,可以使用ls -l命令,在文件列表中查看文件类型列的标识符

文件管理

创建文件

在Linux系统中,你可以使用touch命令来创建文件。touch命令的主要作用是更新文件的访问时间和修改时间,但是如果指定的文件不存在,touch命令也会创建一个空白文件。

要创建一个文件,可以使用以下命令格式:

touch 文件名

例如,要创建一个名为"example.txt"的文本文件,可以运行以下命令:

touch example.txt

如果文件已经存在,touch命令会更新该文件的访问时间和修改时间,而不会修改文件的内容。如果你想要创建一个空白文件或者强制更新文件的时间戳,可以使用touch命令的-c选项:

touch -c 文件名

例如,要创建一个空白的"newfile.txt"文件或者强制更新已存在的文件的时间戳,可以运行以下命令:

touch -c newfile.txt

通过ls命令或者文件管理器,你可以验证文件是否被成功创建。

移动文件

使用mv命令可以移动文件或将文件重命名。

mv 源文件 目标文件/目标目录

例如,将文件file.txt移动到目录/home/user/documents

mv file.txt /home/user/documents/

如果要将文件重命名,可以将目标文件名作为目标路径:

mv oldname.txt newname.txt

复制文件

使用cp命令可以复制文件。

cp 源文件 目标文件/目标目录

例如,将文件file.txt复制到目录/home/user/documents

cp file.txt /home/user/documents/

如果要在复制时保留原文件的元数据(如权限和时间戳),可以使用-a选项:

cp -a 源文件 目标文件/目标目录

删除文件(Delete)

使用rm命令可以删除文件。

rm 文件名

例如,删除文件file.txt

rm file.txt

如果要删除目录及其内容,可以使用-r选项进行递归删除:

rm -r 目录名

要求确认删除操作时,可以使用-i选项:

rm -i 文件名/目录名

请注意,在使用这些命令时要小心,特别是在删除文件时,一旦文件被删除,将无法恢复

查看文件内容常用指令

在Linux系统中,可以使用多个命令来查看文件的内容。以下是一些常用的查看文件内容的指令及其说明:

cat:

cat 文件名
cat命令用于连接文件并显示它们的内容。它可以用于显示文件的全部内容或较短的文件。当文件较大时,cat命令可能不太适合使用。

less:

less 文件名
less命令用于按页浏览文件的内容。它允许你向上或向下滚动文件,并提供了搜索和其他交互功能。在处理大型文件时,less比cat命令更加适用。

more:

more 文件名
more命令与less命令类似,也可以用于按页浏览文件内容。它允许向前翻页,并提供一些基本的导航和搜索功能。

head:

head 文件名
head命令用于显示文件的开头几行,默认情况下显示前10行。可以使用-n选项指定要显示的行数。

tail:

tail 文件名
tail命令用于显示文件的末尾几行,默认情况下显示最后10行。可以使用-n选项指定要显示的行数。使用-f选项可以实时追踪文件的变化。

grep:

grep "关键词" 文件名
grep命令用于在文件中搜索指定的关键词,并显示包含关键词的行。它可以根据不同的选项进行模式匹配和搜索。

这些是常用的文件内容查看命令,每个命令都有不同的用途和功能。你可以根据需要选择适合的命令来查看文件的内容。

文件系统

文件系统是计算机用于组织和管理文件的一种方式,它定义了文件和目录的结构、存储和访问方式。文件系统负责将数据存储在存储设备上,并提供文件的创建、读取、写入、删除等操作。

在Linux系统中,常用的文件系统包括:

  1. ext4(Fourth Extended Filesystem):ext4是Linux最常用的文件系统之一。它是ext文件系统的后续版本,支持更大的文件和分区大小,具有较高的性能和稳定性。
  2. XFS(XFS File System):XFS是一种高性能的日志文件系统,特别适合用于大型文件和大容量存储设备。它支持快速的文件系统检查和修复功能。
  3. Btrfs(B-Tree File System):Btrfs是一种先进的复制文件系统,提供了诸多功能,如快照、在线扩展、数据压缩等。它设计用于处理大容量的数据和高度动态的环境。
  4. ZFS(Zettabyte File System):ZFS是一个先进的文件系统和逻辑卷管理器,具有强大的数据完整性和存储池功能。它支持快照、数据压缩、数据校验等高级特性。

此外,还有其他一些文件系统,如FAT32、NTFS(在Linux中通过FUSE支持)、exFAT等,它们主要用于与其他操作系统和存储设备的兼容性。

文件系统的选择取决于特定的需求和使用情境。在Linux系统中,可以根据不同的要求选择适合的文件系统来管理存储设备和文件数据。

文件系统相关命令

在Linux系统中,有一些常用的命令用于管理和操作文件系统。以下是一些与文件系统相关的命令:

  1. df(Disk Free):显示文件系统的磁盘使用情况。

    df -h
    

    这将以人类可读的方式显示文件系统的磁盘空间使用情况,包括已用空间、可用空间和挂载点等信息。

  2. du(Disk Usage):计算目录或文件的磁盘使用情况。

    du -h 目录名/文件名
    

    这将以人类可读的方式显示目录或文件的磁盘空间使用情况,包括该目录或文件占用的磁盘空间大小。

  3. mount(Mount Filesystem):挂载文件系统到指定的挂载点。

    mount 文件系统 设备名 挂载点
    

    这将把指定的文件系统挂载到指定的挂载点上,使其可访问。

  4. umount(Unmount Filesystem):卸载已挂载的文件系统。

    umount 挂载点
    

    这将卸载指定的挂载点上已挂载的文件系统。

  5. mkfs(Make Filesystem):创建新的文件系统。

    mkfs -t 文件系统类型 设备名
    

    这将在指定的设备上创建新的文件系统,文件系统类型可以是ext4、XFS等。

  6. fsck(Filesystem Check):检查和修复文件系统。

    fsck 文件系统设备名
    

    这将检查指定文件系统设备的一致性并尝试修复任何错误。

这些是一些常见的与文件系统相关的命令。它们可以用于查看磁盘使用情况、挂载和卸载文件系统、创建新的文件系统以及检查和修复文件系统。根据实际需求,可以使用适当的命令进行文件系统管理和操作。

文件权限

在Linux系统中,文件权限用于控制对文件的访问和操作权限。每个文件都有一个所有者和一个所属组,同时还有其他用户的权限。

文件权限由三组权限组成:所有者权限、所属组权限和其他用户权限。每组权限又包括读取(r)、写入(w)和执行(x)三种权限。

以下是文件权限的表示方式及其含义:

  • -:表示无权限。
  • r:表示可读取文件的内容、查看目录的列表。
  • w:表示可编辑、修改文件的内容、在目录中创建、删除文件。
  • x:表示可执行文件或目录,对于文件,表示可以运行;对于目录,表示可以进入其中。

使用ls -l命令可以查看文件的权限。例如,-rw-r--r--表示所有者具有读写权限,所属组和其他用户具有只读权限。

可以使用以下命令来修改文件权限:

  • chmod:用于修改文件或目录的权限。
  • chmod u+x 文件名:为文件所有者添加执行权限。
  • chmod g-w 文件名:从文件所属组移除写入权限。
  • chmod o=r 文件名:设置其他用户只读权限。
  • chmod 755 文件名:设置文件的权限为rwxr-xr-x。

请注意,修改文件权限可能需要使用管理员权限(root用户或sudo)。

文件权限对于保护文件的安全性和控制对文件的访问至关重要。正确设置文件权限可以确保文件仅对授权用户可见和可操作。

r–r–`表示所有者具有读写权限,所属组和其他用户具有只读权限。

可以使用以下命令来修改文件权限:

  • chmod:用于修改文件或目录的权限。
  • chmod u+x 文件名:为文件所有者添加执行权限。
  • chmod g-w 文件名:从文件所属组移除写入权限。
  • chmod o=r 文件名:设置其他用户只读权限。
  • chmod 755 文件名:设置文件的权限为rwxr-xr-x。

请注意,修改文件权限可能需要使用管理员权限(root用户或sudo)。

文件权限对于保护文件的安全性和控制对文件的访问至关重要。正确设置文件权限可以确保文件仅对授权用户可见和可操作。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

(~ ̄▽ ̄)~凤凰涅槃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值