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
进行编辑。
用户相关配置命令
- 此部分内容有详细解说:Linux账户管理详解
文件目录相关命令
命令: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