第四章:Linux文件及目录管理命令基础(二)

编程

1、目录结构

一切从根"/"开始,根"/"是所有目录的顶点

2、磁盘分区与目录的关系

  • Windows里分区和目录一一对应
  • Linux里的目录和分区是分离的。

    • 不同的磁盘使用字母表示
    • 不同分区是用数字表示

      • IDE磁盘:

        • 不同磁盘表示方法

          • 如:hda1,hda2.....

        • 不同分区表示方法

          • 如:hda1,hda2.....

      • SAS/SATA/SCSI/SSD磁盘

        • 不同磁盘表示方法

          • sda,sdb.....

        • 不同分区表示方法

          • sda1,sda2....

  • Linux里的分区默认是不能访问的,监狱,黑盒访问不了。

    • 有一个功能把目录/etc/ 与/dev/sda1进行了链接,称之为挂载

2.1、挂载

为分区找到一个入口,为分区开一个门或者窗户。

2.2、挂载点

分区入口的目录名,/etc就是/dev/sda1的挂在点

2.3、挂载命令及其操作

  • mount 挂载

    • 用法: mount 设备名称 挂载目录

      [root@oldboyedu ~]# ls /mnt/

      hgfs

      [root@oldboyedu ~]# cd /dev/cdrom

      -bash: cd: /dev/cdrom: Not a directory

      #-bash:cd:/dev/cdrom:不是目录

      [root@oldboyedu ~]# mount /dev/cdrom /mnt/

      mount: /dev/sr0 is write-protected, mounting read-only

      #mount:/dev/sr0是写保护的,挂载是只读的

      [root@oldboyedu ~]# ll /mnt/

      total 694

      -rw-rw-r--. 1 root root 14 Sep 10 2019 CentOS_BuildTag

      drwxr-xr-x. 3 root root 2048 Sep 6 2019 EFI

      -rw-rw-r--. 1 root root 227 Aug 30 2017 EULA

      -rw-rw-r--. 1 root root 18009 Dec 10 2015 GPL

      drwxr-xr-x. 3 root root 2048 Sep 10 2019 images

      drwxr-xr-x. 2 root root 2048 Sep 10 2019 isolinux

      drwxr-xr-x. 2 root root 2048 Sep 6 2019 LiveOS

      drwxrwxr-x. 2 root root 671744 Sep 12 2019 Packages

      drwxrwxr-x. 2 root root 4096 Sep 12 2019 repodata

      -rw-rw-r--. 1 root root 1690 Dec 10 2015 RPM-GPG-KEY-CentOS-7

      -rw-rw-r--. 1 root root 1690 Dec 10 2015 RPM-GPG-KEY-CentOS-Testing-7

      -r--r--r--. 1 root root 2883 Sep 12 2019 TRANS.TBL

  • 卸载:umount

    • 用法:需要退到挂载点上一级目录,输入 umount 目录

      [root@oldboyedu ~]# ll /mnt/

      total 694

      -rw-rw-r--. 1 root root 14 Sep 10 2019 CentOS_BuildTag

      drwxr-xr-x. 3 root root 2048 Sep 6 2019 EFI

      -rw-rw-r--. 1 root root 227 Aug 30 2017 EULA

      -rw-rw-r--. 1 root root 18009 Dec 10 2015 GPL

      drwxr-xr-x. 3 root root 2048 Sep 10 2019 images

      drwxr-xr-x. 2 root root 2048 Sep 10 2019 isolinux

      drwxr-xr-x. 2 root root 2048 Sep 6 2019 LiveOS

      drwxrwxr-x. 2 root root 671744 Sep 12 2019 Packages

      drwxrwxr-x. 2 root root 4096 Sep 12 2019 repodata

      -rw-rw-r--. 1 root root 1690 Dec 10 2015 RPM-GPG-KEY-CentOS-7

      -rw-rw-r--. 1 root root 1690 Dec 10 2015 RPM-GPG-KEY-CentOS-Testing-7

      -r--r--r--. 1 root root 2883 Sep 12 2019 TRANS.TBL

      [root@oldboyedu ~]# cd /mnt/

      [root@oldboyedu /mnt]# umount /mut

      umount: /mut: mountpoint not found

      [root@oldboyedu /mnt]# umount /mnt

      umount: /mnt: target is busy.

      (In some cases useful info about processes that use

      the device is found by lsof(8) or fuser(1))

      #umount:/mnt:target正忙。(在某些情况下,有关使用该设备由lsof(8)或fuser(1)找到

      [root@oldboyedu /mnt]# cd ..

      [root@oldboyedu /]# umount /mnt

      [root@oldboyedu /]# ll /mnt/

      total 0

      drwxr-xr-x. 2 root root 6 Apr 4 18:22 hgfs

  • 查看挂载

    [root@oldboyedu ~]# df -h

    Filesystem Size Used Avail Use% Mounted on

    devtmpfs 1.9G 0 1.9G 0% /dev

    tmpfs 1.9G 0 1.9G 0% /dev/shm

    tmpfs 1.9G 12M 1.9G 1% /run

    tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup

    /dev/sda3 19G 2.0G 18G 11% /

    /dev/sda1 253M 161M 93M 64% /boot

    tmpfs 378M 0 378M 0% /run/user/0

    # 设备名 总大小 使用大小 剩余 使用% 挂载点

2.4、FHS目录标准化

  • 根目录“/”挂载在第一块盘上,系统相关的内容

  • "/usr"目录挂载在第二块盘上 用户相关的内容

    [root@oldboyedu ~]# ls -ld /bin /lib /sbin /tmp

    lrwxrwxrwx. 1 root root 7 Apr 4 18:05 /bin -> usr/bin

    lrwxrwxrwx. 1 root root 7 Apr 4 18:05 /lib -> usr/lib

    lrwxrwxrwx. 1 root root 8 Apr 4 18:05 /sbin -> usr/sbin

    drwxrwxrwt. 11 root root 4096 Apr 6 17:30 /tmp

    [root@oldboyedu ~]# ls -ld /usr/bin /usr/lib /usr/sbin /usr/tmp

    dr-xr-xr-x. 2 root root 28672 Apr 4 18:23 /usr/bin

    dr-xr-xr-x. 29 root root 4096 Apr 4 18:06 /usr/lib

    dr-xr-xr-x. 2 root root 12288 Apr 4 18:23 /usr/sbin

    lrwxrwxrwx. 1 root root 10 Apr 4 18:05 /usr/tmp -> ../var/tmp

3、linux 的目录结构讲解

3.1、Linux目录定义

  • 标有*****是重点记忆

[root@oldboyedu /]# tree -L 1 /

/

├── bin -> usr/bin #binaies二进制,存放命令相关 *****

├── boot #引导分区,系统内核及引导程序 *****

├── dev #device,设备分区所在目录 *****

├── etc #二进制软件包配置路径

├── home #普通用户的家目录 *****

├── lib -> usr/lib #32位库文件

├── lib64 -> usr/lib64 #64位库文件

├── media #媒体

├── mnt #临时挂载点 *****

├── opt #option 可选择软件包(自定义)

├── proc #虚拟的文件系统,存放进程和内核信息的目录 *****

├── root #管理员的家目录 *****

├── run #正在运行程序相关信息文件

├── sbin -> usr/sbin #system binaies 管理员命令所在目录 *****

├── srv #为用户提供服务的数据所在的目录

├── sys #虚拟的文件系统,存放进程和内核信息的目录

├── tmp #临时文件坐在目录 *****

├── usr #系统软件和用户相关程序所在目录,第二层次目录 *****

└── var #可变化的数据 *****

4、/etc 系统初始化及设置相关文件

4.1、网卡的配置文件/etc/sysconfig/network-scripts/ifcfg-eth0:用于配制上网的文件

  • 网卡名称

    • CentOS7:ems33
    • CentOS7版本以前:eth0 为第一块网卡 eth1为第二块网卡

  • 图形化配置命令:

    • CentOS7:nmtui
    • CentOS6:setup

  • 配置文件内容

    [root@oldboyedu ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 

    TYPE=Ethernet #网卡类型

    PROXY_METHOD=none

    BROWSER_ONLY=no

    BOOTPROTO=none #启用地址协议 –static:静态协议 –bootp:协议 –dhcp:协议 -none:不指定协议[最好指定]

    DEFROUTE=yes

    IPV4_FAILURE_FATAL=no

    IPV6INIT=yes

    IPV6_AUTOCONF=yes

    IPV6_DEFROUTE=yes

    IPV6_FAILURE_FATAL=no

    IPV6_ADDR_GEN_MODE=stable-privacy

    NAME=eth0

    UUID=a183d342-6fb0-4adc-8aba-7dced2f24643

    DEVICE=eth0 #网卡接口名称

    ONBOOT=yes #系统启动时是否激活 yes|no

    IPADDR=10.0.0.200 #网卡IP地址

    PREFIX=24 #子网掩码 24=255.255.255.0

    GATEWAY=10.0.0.254 #网卡网关地址

    DNS1=112.100.100.100 #网卡DNS地址

    IPV6_PRIVACY=no

4.2、/etc/resolv.conf Linux系统DNS客户端配置文件

  • DNS Domain Name System 域名系统

    • 作用:把浏览器里输入的域名,解析为服务器的IP地址,然后才能找到服务器,提供内容
    • 很久以前上网 直接IP0.0.0.200 记不住。。。。
    • 最后发明了DNS,公共解析服务器资源谁想解析谁就请求它的IP
    • 重要功能:把浏览器里输入的域名,解析为服务器的IP地址,还有很多别的功能。
    • DNS的/etc/resolv.conf配置文件已经基本废弃了,由网卡配置文件里DNS1=112.100.100.100替代
    • 只要在网卡配置里面设置,自动更新到/etc/resolv.conf里
    • 但是如果先更新/etc/resolv.conf文件,网卡如果从前就会自动清除

    [root@oldboyedu ~]# echo "nameserver 1.1.1.1" >> /etc/resolv.conf 

    [root@oldboyedu ~]# cat /etc/resolv.conf

    # Generated by NetworkManager

    nameserver 112.100.100.100

    nameserver 1.1.1.1

    [root@oldboyedu ~]# systemctl restart network

    [root@oldboyedu ~]# cat /etc/resolv.conf

    # Generated by NetworkManager

    nameserver 112.100.100.100

4.3/etc/hosts 系统本地的DNS解析文件

10.0.0.200 www.oldboyedu.com

10.0.0.201 www.baidu.com

每个人的电脑必须要有一个HOSTS做解析。

  • 浏览器再输入www.baidu.com时候,优先找hosts解析。
  • 本地DNS配置文件hosts,优先于公网的DNS解析。
  • 局域网开发人员测试。

4.4/etc/fstab:配置开机设备自动挂载的文件

  • 设备要挂在才能用,我们挂载过根 /boot么?

    • 系统已经在开机的时候帮我们自动挂载了我们安装系统时的分区

  • 自动挂载的文件就是/etc/fstab

  • 比如插入一个U盘,希望下次开机能够直接访问。就需要在/etc/fstab配置

    [root@oldboyedu ~]# cat /etc/fstab 

    #

    # /etc/fstab

    # Created by anaconda on Sat Apr 4 18:04:58 2020

    #

    # 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

    #

    UUID=63ff48bb-a38e-4a8a-afad-f24d25c7e442 / xfs defaults 0 0

    UUID=00efac36-5fb3-4fcd-9249-a6210a52b5f0 /boot xfs defaults 0 0

    UUID=9aa96766-7dd9-4fd4-979c-30ac56a20d57 swap swap defaults 0 0

    设备名(UUID) 挂载点 文件系统类型 挂载参数 是否要备份 是否开机检查磁盘

    • 查看设备UUID

      • blkid

        [root@oldboyedu ~]# blkid

        /dev/sda3: UUID="63ff48bb-a38e-4a8a-afad-f24d25c7e442" TYPE="xfs"

        /dev/sda1: UUID="00efac36-5fb3-4fcd-9249-a6210a52b5f0" TYPE="xfs"

        /dev/sda2: UUID="9aa96766-7dd9-4fd4-979c-30ac56a20d57" TYPE="swap"

        /dev/sr0: UUID="2019-09-11-18-50-31-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"

  • 设置自动挂载

    [root@oldboyedu ~]# cat /etc/fstab 

    #

    # /etc/fstab

    # Created by anaconda on Sat Apr 4 18:04:58 2020

    #

    # 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

    #

    UUID=63ff48bb-a38e-4a8a-afad-f24d25c7e442 / xfs defaults 0 0

    UUID=00efac36-5fb3-4fcd-9249-a6210a52b5f0 /boot xfs defaults 0 0

    UUID=9aa96766-7dd9-4fd4-979c-30ac56a20d57 swap swap defaults 0 0

    UUID="2019-09-11-18-50-31-00" /media iso9660 defaults 0 0

    重启服务器查看目录(线上环境不能重启服务器)

    [root@oldboyedu ~]# mount /dev/cdrom /media/

    #手动挂载到自动挂载的目录,切记不能重启

    mount: /dev/sr0 is write-protected, mounting read-only

    [root@oldboyedu ~]# ll /media/

    total 694

    -rw-rw-r--. 1 root root 14 Sep 10 2019 CentOS_BuildTag

    drwxr-xr-x. 3 root root 2048 Sep 6 2019 EFI

    -rw-rw-r--. 1 root root 227 Aug 30 2017 EULA

    -rw-rw-r--. 1 root root 18009 Dec 10 2015 GPL

    drwxr-xr-x. 3 root root 2048 Sep 10 2019 images

    drwxr-xr-x. 2 root root 2048 Sep 10 2019 isolinux

    drwxr-xr-x. 2 root root 2048 Sep 6 2019 LiveOS

    drwxrwxr-x. 2 root root 671744 Sep 12 2019 Packages

    drwxrwxr-x. 2 root root 4096 Sep 12 2019 repodata

    -rw-rw-r--. 1 root root 1690 Dec 10 2015 RPM-GPG-KEY-CentOS-7

    -rw-rw-r--. 1 root root 1690 Dec 10 2015 RPM-GPG-KEY-CentOS-Testing-7

    -r--r--r--. 1 root root 2883 Sep 12 2019 TRANS.TBL

    Connecting to 10.0.0.200:22...

    Connection established.

    To escape to local shell, press "Ctrl+Alt+]".

    WARNING! The remote SSH server rejected X11 forwarding request.

    Last login: Mon Apr 6 17:58:06 2020 from 10.0.0.1

    [root@oldboyedu ~]# ll /media/

    total 694

    -rw-rw-r--. 1 root root 14 Sep 10 2019 CentOS_BuildTag

    drwxr-xr-x. 3 root root 2048 Sep 6 2019 EFI

    -rw-rw-r--. 1 root root 227 Aug 30 2017 EULA

    -rw-rw-r--. 1 root root 18009 Dec 10 2015 GPL

    drwxr-xr-x. 3 root root 2048 Sep 10 2019 images

    drwxr-xr-x. 2 root root 2048 Sep 10 2019 isolinux

    drwxr-xr-x. 2 root root 2048 Sep 6 2019 LiveOS

    drwxrwxr-x. 2 root root 671744 Sep 12 2019 Packages

    drwxrwxr-x. 2 root root 4096 Sep 12 2019 repodata

    -rw-rw-r--. 1 root root 1690 Dec 10 2015 RPM-GPG-KEY-CentOS-7

    -rw-rw-r--. 1 root root 1690 Dec 10 2015 RPM-GPG-KEY-CentOS-Testing-7

    -r--r--r--. 1 root root 2883 Sep 12 2019 TRANS.TBL

4.5、/etc/issue和/etc/issue.net:本地窗口显示内核参数文件

清除这俩文件内容

[root@oldboyedu ~]# > /etc/issue

[root@oldboyedu ~]# > /etc/issue.net

4.6、/etc/redhat-release : 查看系统版本

[root@oldboyedu ~]# uname -r

3.10.0-1062.18.1.el7.x86_64

[root@oldboyedu ~]# cat /etc/redhat-release

CentOS Linux release 7.7.1908 (Core)

[root@oldboyedu ~]# cat /etc/os-release #这个文件比较详细也比较复杂

NAME="CentOS Linux"

VERSION="7 (Core)"

ID="centos"

ID_LIKE="rhel fedora"

VERSION_ID="7"

PRETTY_NAME="CentOS Linux 7 (Core)"

ANSI_COLOR="0;31"

CPE_NAME="cpe:/o:centos:centos:7"

HOME_URL="https://www.centos.org/"

BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"

CENTOS_MANTISBT_PROJECT_VERSION="7"

REDHAT_SUPPORT_PRODUCT="centos"

REDHAT_SUPPORT_PRODUCT_VERSION="7"

4.7、/etc/sysctl.conf:Linux内核参数设置文件

Linux系统内核的配置和优化的文件

4.8、/etc/init.d:软件启动程序所在目录(CentOS7以前)

4.9、/etc/initab:设置开机运行级别以及启动相应级别脚本的文件(CentOS7以前)

[root@oldboyedu ~]# cat /etc/inittab 

# inittab is no longer used when using systemd.

#

# ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.

#

# Ctrl-Alt-Delete is handled by /usr/lib/systemd/system/ctrl-alt-del.target

#

# systemd uses "targets" instead of runlevels. By default, there are two main targets:

#

# multi-user.target: analogous to runlevel 3

# graphical.target: analogous to runlevel 5

#

# To view current default target, run:

# systemctl get-default

#

# To set a default target, run:

# systemctl set-default TARGET.target

#

  • Linux系统运行级别的说明:

    运行级别

    级别所明

    0

    关机

    1

    单用户模式(用来找回管理员密码)

    2

    没有NFS,多用户模式

    3

    命令行模式 文本模式

    4

    未使用

    5

    图形化模式 桌面模式

    6

    重启

  • 查看运行级别

    • CentOS6:

      • runlevel

        [root@oldboyedu ~]# runlevel 

        N 3

    • CentOS7:

      • who -r

        [root@oldboyedu ~]# who -r

        run-level 3 2020-04-06 18:02

      • systemctl get-default

        [root@oldboyedu ~]# systemctl get-default 

        multi-user.target

  • CentOS7运行级别

    [root@oldboyedu ~]# ll /usr/lib/systemd/system  | grep level | grep -v wants

    lrwxrwxrwx. 1 root root 15 Apr 4 18:22 runlevel0.target -> poweroff.target

    lrwxrwxrwx. 1 root root 13 Apr 4 18:22 runlevel1.target -> rescue.target

    lrwxrwxrwx. 1 root root 17 Apr 4 18:22 runlevel2.target -> multi-user.target

    lrwxrwxrwx. 1 root root 17 Apr 4 18:22 runlevel3.target -> multi-user.target

    lrwxrwxrwx. 1 root root 17 Apr 4 18:22 runlevel4.target -> multi-user.target

    lrwxrwxrwx. 1 root root 16 Apr 4 18:22 runlevel5.target -> graphical.target

    lrwxrwxrwx. 1 root root 13 Apr 4 18:22 runlevel6.target -> reboot.target

    -rw-r--r--. 1 root root 761 Mar 18 07:46 systemd-update-utmp-runlevel.service

    • 切换运行级别

      [root@oldboyedu ~]# systemctl set-default graphical.target 

      Removed symlink /etc/systemd/system/default.target.

      Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/graphical.target.

      [root@oldboyedu ~]# systemctl get-default

      graphical.target #图形化

      [root@oldboyedu ~]# systemctl set-default multi-user.target

      Removed symlink /etc/systemd/system/default.target.

      Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/multi-user.target.

      [root@oldboyedu ~]# systemctl get-default

      multi-user.target #文本

以上是 第四章:Linux文件及目录管理命令基础(二) 的全部内容, 来源链接: utcz.com/z/515176.html

回到顶部