欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

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

程序员文章站 2022-06-24 20:50:35
1、目录结构 一切从根"/"开始,根"/"是所有目录的顶点 2、磁盘分区与目录的关系 Windows里分区和目录一一对应 Linux里的目录和分区是分离的。 不同的磁盘使用字母表示 不同分区是用数字表示 IDE磁盘: 不同磁盘表示方法 如:hda1,hda2..... 不同分区表示方法 如:hda1 ......

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:本地窗口显示内核参数文件

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

清除这俩文件内容

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

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

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 #文本