Linux文件目录详解

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介: Linux文件目录详解

Linux一切皆文件

Linux所有目录皆存放于 /(根目录)下

本文基于centos-7.9系统记录

系统目录及作用

  • 我们可以利用命令:tree -L 1 /查看/目录下所有子目录,目录后注释则是介绍此目录作用。
  • 我们会经常用到/bin、/etc、/var等目录下的内容
tree -L 1 /
/
├── bin -> usr/bin # 用于存放二进制命令
├── boot # 内核及引导系统程序所在的目录
├── dev # 所有设备文件的目录(如磁盘、光驱等)
├── etc # 配置文件默认路径、服务启动命令存放目录
├── home # 用户家目录,root用户为/root
├── lib -> usr/lib # 32位库文件存放目录
├── lib64 -> usr/lib64 # 64位库文件存放目录
├── media # 媒体文件存放目录
├── mnt # 临时挂载设备目录
├── opt # 自定义软件安装存放目录
├── proc # 进程及内核信息存放目录
├── root # Root用户家目录
├── run # 系统运行时产生临时文件,存放目录
├── sbin -> usr/sbin # 系统管理命令存放目录
├── srv # 服务启动之后需要访问的数据目录
├── sys # 系统使用目录
├── tmp # 临时文件目录
├── usr # 系统命令和帮助文件目录
└── var # 存放内容易变的文件的目录
19 directories, 0 files

比较重要的系统文件

网卡配置文件

  • 网卡配置文件为:/etc/sysconfig/network-scripts/ifcfg-eth0
  • ipv6内容暂时用不到,也可以删掉。
cat /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet # 类型为以太网
PROXY_METHOD=none # 代理方式:关闭状态
BROWSER_ONLY=no # 只是浏览器:否
BOOTPROTO=static # 网卡引导协议为静态,dhcp为动态
DEFROUTE=yes # 默认路由:开启
IPV4_FAILURE_FATAL=no # 是否开启ipv4致命错误检测:否
IPV6INIT=yes # IPv6是否自动初始化:是
IPV6_AUTOCONF=yes # ipv6是否自动配置
IPV6_DEFROUTE=yes # ipv6是否可以为默认路由
IPV6_FAILURE_FATAL=no # 是否开启ipv6致命错误检测:否
IPV6_ADDR_GEN_MODE=stable-privacy # ipv6地址生成模型
NAME=eth0 # 网卡名称
# 以下几项为手动配置
ONBOOT=yes # 网卡开机自启动
IPADDR=192.168.10.3 # IP地址
PREFIX=24 # 子网掩码
GATEWAY=192.168.10.254 # 网关地址
DNS1=223.5.5.5 # DNS地址

DNS配置文件

  • DNS(Domain Name System)用于将域名解析为IP地址,本地DNS配置文件为:/etc/resolv.conf
  • 下面配着内容是将223.5.5.5作为DNS服务器的地址,含义是指等服务器所有DNS解析工作都有服务器地址为223.5.5.5的DNS服务器负责。
cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 223.5.5.5

系统hosts文件

  • hosts文件是主机IP地址与主机名或域名对应的解析配置文件,进行本地解析。所有内网服务器hosts文件都保持一致。
  • 文件路径为:/etc/hosts
  • 夫妻之间的服务通信、接口调用等可以用hosts文件中的域名或主机名代替IP
cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.10.2 nginx-lb
192.168.10.3 nginx01
192.168.10.4 tomcat01
192.168.10.5 tomcat02

主机名配置文件

  • 可以在此文件中修改主机名,文件路径为:/etc/hostname
  • 也可以通过命令hostnamectl set-hostname 主机名直接进行修改
cat /etc/hostname 
nginx01

fstab文件

  • 这个文件是记录开机需要自动挂载的文件系统的配置文件,也就是常说的永久挂载
  • 文件的路径为:/etc/fstab
  • 临时挂载命令为:mount 文件系统 挂载点
cat /etc/fstab 
#
# /etc/fstab
# Created by anaconda on Sun Jan 10 03:40:54 2021
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=cafe565d-aa74-4650-97cf-917c79d997d1 /boot                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0

上面内容包含两条挂载信息,挂的信息分为六列,含义分别为

1.被挂载的设备名称
2.挂载点
3.文件系统类型
4.挂载选项。default为默认
5.是否需要备份,0为不需要
6.是否需要开机检查,0为不需要

rc.local文件

  • 用于存放开机自启动服务命令,可以将命令直接写入此配置文件中,路径为:/etc/rc.local
  • 配置完成后,需要执行chmod +x /etc/rc.d/rc.local属于该文件的执行权限
cat /etc/rc.local 
#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.
touch /var/lock/subsys/local

全局环境变量配置文件

  • 此文件中配置对所有用户生效,如果需要对某用户配置环境变量,需要在其家目录下.bash_profile文件中做出配置。
  • 路径为:/etc/profile
cat /etc/profile
export JAVA_HOME=/app/jdk
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$PATH:$JAVA_HOME/bin
  • 上面内容为为JDK配置的环境变量。配置完成后运行source /etc/profile使其生效。

定时任务配置文件

  • 此文件路径为:/var/spool/cron/
  • 可以直接使用命令crontab -e进行编辑。

用户相关配置命令

文件目录相关命令

命令:touch

  • 用于修改文件的时间属性,若文件不存在,则创建。
  • 语法:touch [选项] 文件名
  • 选项:
-a:修改文件的访问时间为当前系统时间
-m:修改文件的修改时间为系统当前时间
-d:将文件的修改时间修改为指定的时间
  • 实例:创建一个新文件并查看创建时间
[root@nginx01 ~]# touch newfile
[root@nginx01 ~]# ll newfile 
-rw-r--r-- 1 root root 0 1月  23 20:52 newfile

命令:cat

  • 查看文件内容,进行文件合并
  • 语法:cat [选项] 文件名cat 文件一 文件二 > 文件三
  • 选项:
-n:从一开始对文件所有输出的行数编号
-b:从一开始对文件所有输出的行数编号,忽略空行
-s:连续两行以上的空白行,合并成一行
  • 实例:查看文件内容并对输出内容编号
[root@nginx01 ~]# cat -n newfile 
     1  dabf
     2  fee
     3  fef
     4  afffwff

命令:mkdir

  • 用于创建一个新目录
  • 语法:mkdir [选项] 目录名
  • 选项:
-m:创建目录的同时设置目录权限
-p:递归创建目录

实例:创建/下data目录,并在/data目录下创建haha目录

[root@nginx01 ~]# mkdir -p /data/haha
[root@nginx01 ~]# tree /data/
/data/
└── haha
1 directory, 0 files

命令:rm

  • 用于删除文件或目录,删除时一定要多加注意,防止误删
  • 语法:rm [选项] 文件或目录
  • 选项:
-i:删除之前进行确认
-f:强制删除,不进行确认
-r:递归删除
-v:显示详细过程
  • 实例:强制删除文件,不进行确认
[root@nginx01 ~]# ll
总用量 8
-rw-------. 1 root root 1357 1月  10 2021 anaconda-ks.cfg
-rw-r--r--  1 root root   21 1月  23 20:57 newfile
[root@nginx01 ~]# rm -rf newfile 
[root@nginx01 ~]# ll
总用量 4
-rw-------. 1 root root 1357 1月  10 2021 anaconda-ks.cfg

命令:cp

  • 此命令用于复制
  • 语法:cp [选项] 文件或目录
  • 选项:
-a:复制目录时保留文件连接文件属性,并可递归复制目录
-f:强制复制
-i:覆盖之前进行确认
-p:保留原文件或目录的属性
-r:递归复制
  • 实例:将文件复制到/data目录下
[root@nginx01 ~]# cp /etc/passwd /data/
[root@nginx01 ~]# ll /data/
总用量 4
drwxr-xr-x 2 root root    6 1月  23 21:00 haha
-rw-r--r-- 1 root root 1077 1月  23 21:08 passwd

命令:mv

  • 将文件或目录移动位置,或进行重命名
  • 语法:mv [选项] 源文件或目录 目标文件或目录
  • 选项:
-b:如果目标文件存在,则覆盖前为其创建一个备份

实例:将/data下passwd文件移动至/data/haha目录下

[root@nginx01 ~]# ll /data/
总用量 4
drwxr-xr-x 2 root root    6 1月  23 21:00 haha
-rw-r--r-- 1 root root 1077 1月  23 21:08 passwd
[root@nginx01 ~]# mv /data/passwd /data/haha/
[root@nginx01 ~]# ll /data/
总用量 0
drwxr-xr-x 2 root root 20 1月  23 21:11 haha
[root@nginx01 ~]# ll /data/haha/
总用量 4
-rw-r--r-- 1 root root 1077 1月  23 21:08 passwd

同系列文章链接

目录
相关文章
|
1月前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
89 3
|
1月前
|
存储 Linux Windows
linux常用目录
/sbin s就是super User的意思,这里存放的是系统管理员使用的系统管理程序。 /home 存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一版该目录名是以用户的账号命名的。 /root 该目录为系统管理员,也称为超级权限者的用户主目录。 /lib 系统开机所需要最基本的动态连接共享库,其作用类似于windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。 /etc 所有的系统管理所需要的配置文件和子目录。 /usr 这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program fies目录。 /bo
42 2
|
2月前
|
运维 安全 Linux
Linux中传输文件文件夹的10个scp命令
【10月更文挑战第18天】本文详细介绍了10种利用scp命令在Linux系统中进行文件传输的方法,涵盖基础文件传输、使用密钥认证、复制整个目录、从远程主机复制文件、同时传输多个文件和目录、保持文件权限、跨多台远程主机传输、指定端口及显示传输进度等场景,旨在帮助用户在不同情况下高效安全地完成文件传输任务。
355 5
|
13天前
|
Linux Shell 网络安全
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
本指南介绍如何利用 HTA 文件和 Metasploit 框架进行渗透测试。通过创建反向 shell、生成 HTA 文件、设置 HTTP 服务器和发送文件,最终实现对目标系统的控制。适用于教育目的,需合法授权。
52 9
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
|
1月前
|
运维 监控 网络协议
运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面
本文介绍了运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面,旨在帮助读者提高工作效率。从基本的文件查看与编辑,到高级的网络配置与安全管理,这些命令是运维工作中的必备工具。
134 3
|
1月前
|
Linux Python
Linux 中某个目录中的文件数如何查看?这篇教程分分钟教会你!
在 Linux 系统中,了解目录下文件数量是常见的需求。本文介绍了四种方法:使用 `ls` 和 `wc` 组合、`find` 命令、`tree` 命令以及编程实现(如 Python)。每种方法都附有详细说明和示例,适合不同水平的用户学习和使用。掌握这些技巧,可以有效提升系统管理和日常使用的效率。
557 6
|
1月前
|
分布式计算 Java Hadoop
linux中HADOOP_HOME和JAVA_HOME删除后依然指向旧目录
通过以上步骤,可以有效地解决 `HADOOP_HOME`和 `JAVA_HOME`删除后依然指向旧目录的问题。确保在所有相关的配置文件中正确设置和删除环境变量,并刷新当前会话,使更改生效。通过这些措施,能够确保系统环境变量的正确性和一致性。
31 1
|
1月前
|
Linux 开发工具 Perl
在Linux中,有一个文件,如何删除包含“www“字样的字符?
在Linux中,如果你想删除一个文件中包含特定字样(如“www”)的所有字符或行,你可以使用多种文本处理工具来实现。以下是一些常见的方法:
41 5
|
1月前
|
安全 Linux 数据安全/隐私保护
在 Linux 系统中,查找文件所有者是系统管理和安全审计的重要技能。
在 Linux 系统中,查找文件所有者是系统管理和安全审计的重要技能。本文介绍了使用 `ls -l` 和 `stat` 命令查找文件所有者的基本方法,以及通过文件路径、通配符和结合其他命令的高级技巧。还提供了实际案例分析和注意事项,帮助读者更好地掌握这一操作。
53 6
|
1月前
|
Linux
在 Linux 系统中,`find` 命令是一个强大的文件查找工具
在 Linux 系统中,`find` 命令是一个强大的文件查找工具。本文详细介绍了 `find` 命令的基本语法、常用选项和具体应用示例,帮助用户快速掌握如何根据文件名、类型、大小、修改时间等条件查找文件,并展示了如何结合逻辑运算符、正则表达式和排除特定目录等高级用法。
104 6