Linux目录结构

虚拟机快照

1、拍摄快照

image-20211209204224924

image-20211209204345586

2、恢复快照

image-20211209204613798

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

1、克隆主机
管理 ---> 克隆

2、改ip

最后一位3 - 254
# 查看网卡名称,或者查看本机IP
[root@localhost ~]# ip a

# 修改网卡
[root@localhost ~]#

[root@localhost ~]# sed -i 's#.100#.101#g' /etc/sysconfig/network-scripts/ifcfg-eth[01]-

# 重启系统网络
[root@localhost ~]# systemctl restart network

bash概述

bash(壳)是一个命令解释器,负责跟系统的内核进行交互,在操作系统的最外层

bash可以干什么?针对于操作系统做了一些操作

  • 文件管理

  • 目录管理

  • 权限管理

  • 用户管理

  • 应用管理

  • 软件管理

  • 磁盘管理

  • 等等

    执行方式 操作简单 针对简单的管理操作

    脚本script 操作复杂 操作一些复杂性较大的操作

系统命令行介绍

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
1、ping
格式:
ping [网址]

2、主机登录用户信息
[root@localhost ~]# : #表示超级用户管理员命令提示符,注释
[test@localhost ~] : $普通用户命令提示符

root : 登录当前系统的用户名
@ : 表示分隔符,没有特殊含义
localhost : 表示当前系统的主机名
~ : 表示当前所在的目录(~ 代表的是当前的家目录, /root)
[] : 表示括号,没有其他的作用
# : 没有实际含义

3、自定义系统登录用户信息
PS1 环境变量

[root@localhost ~]# echo $PS1
[\u@\h \W]\$
[root@localhost ~]# PS1='[\u@\h --- \W]\$'


知识储备:
print('Hello World')
echo "Hello World!"

系统命令语法格式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
通常系统命令语法格式:
一条完整命令
命令 [参数] [选项] [路径]

command [arguments] [options]

1、中括号内的内容是可有可无的,选项和参数不是必须的
2、命令是指令的主体,是必须存在的
3、选项是用于调节命令的某个功能
引导短格式(单个字符) 以短横杠表示‘-’ 例如 -l
引导长格式(多个字符) 多个字符表示一定的含义 以‘--’表示 --all
多个短格式(多个字符) 每个字符都有一定的功能,‘-’ -al
4、参数是命令操作的对象,文件或者目录
5、指令、选项、参数两两之间必须要有一个空格
6、完整的命令、选项、参数之间不能有空格
7、命令的位置是在最前面的,是不能改变位置的
8、选项和参数的位置是可以发生改变的

系统运行命令

1、关机

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
同步时间:
yun install -y ntpdate
ntpdate ntp.aliyun.com


shutdown :关机或重启
参数:-h : 指定关机的延时时间
-c : 取消关机


关机/取消:
shutdown -h 10 # 10是以分钟为节点的
shutdown -h 11:00 # 定时关机
shutdown -c # 取消你的关机操作


立即关机:
shutdown -h now # 立刻关机
shutdown -h 0 # 立刻关机



halt : 禁用CPU资源
halt -p # 立刻关机,不加-p只关闭系统

poweroff : 立即关闭电源


init :设置系统启动模式
参数: 0 : 立刻关机
1 : 单用户模式
2 : 多用户无网络模式
3 : 多用户模式
4 : 待定
5 : 桌面模式
6 : 重启

2、重启

1
2
3
4
5
6
7
8
9
10
11
shutdown
参数:
-r : 指定重启的延时时间

shutdown -r 10 # 10分钟后立刻重启
shutdown -r 0 # 立即重启
shutdown -r now # 立即重启
shutdown -r 11:00 # 11:00重启

reboot
reboot # 系统推荐的重启操作

3、注销

1
2
3
4
5
logout	: 退出当前登录的用户	只能退出登录式shell,不能退出非登陆式shell

ctrl+d : 快捷键 退出当前登录的用户

exit : 退出当前登录的用户 能退出登录式shell,也能退出非登陆式shell,主要用于脚本退出

查看系统命令帮助

1
2
3
4
5
6
7
8
9
10
11
12
格式:
man [需要查看帮助的命令] :详细的显示一个命令的使用方法

命令解释说明信息:NAME
命令语法说明信息:SYNOPSIS
命令描述详细说明:DESCRIPTION
命令参数详细说明:OPTIONS

q : 退出
/[搜索内容] : 搜索内容

推荐网址:https://www.linuxcool.com/

设置别名

1
2
3
4
5
6
7
8
9
10
11
12
13
14
alias
# 格式:
[root@localhost ~]# alias alias net_test = 'ping baidu.com' #设置别名

[root@localhost ~]# alias #查看系统别名是否设置成功

[root@localhost ~]# net_test #测试别名

[root@localhost ~]# unalias net_test #取消别名

[root@localhost ~]# alias rm='xxx' #设置系统别名

# 不使用别名,就在命令之前增加\,\代表转义
[root@localhost ~]# \rm 1.txt

系统路径的类型

  • 绝对路径:参照物是根(/)路径,凡是以/开始的路径就是绝对路径 或者以~为开头的路径也是绝对路径
  • 相对路径:参照物是当前路径,不是以/开头的路径就是相对路径 针对当前路径而言的
1
2
3
4
5
6
7
8
9
# 包含整个文件名称及文件的位置	这样的定位称之为路径
# 路径就是对于文件的定位的一种方式
# 每个目录下都有一个.和..

. # 表示的是当前所在的目录
.. # 当前目录的上一级目录
./ # 用于表示当前目录
../ # 从当前目录的上一级目录开始
~ # 家目录

系统目录结构

在Linux中,所有的文件或者目录的起点或者顶点都是以(/)开始。

Linux的目录结构拥有层次,就像是一个倒挂的树形结构

xitongmulu

Linux系统中的目录需要挂载使用

目录挂载初识

1
2
3
4
5
6
7
8
挂载的命令:mount
mount [磁盘路径] [挂载的路径]

查看本机挂载的命令
[root@localhost dev]# df -h

卸载挂载的磁盘
[root@localhost dev]# umount /mnt/

必知必会的目录及文件

  • /bin
    bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令。

  • /sbin:存放系统命令的目录 需要管理员权限才可以执行的命令

  • /boot
    这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。

  • /dev
    dev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。

    • 1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      /dev/cdrom	#光盘镜像
      /dev/null #黑洞设备 将一些不用的数据导入到黑洞设备
      /dev/zero #字符设备 会源源不断的产生数据,字符
      /dev/random #产生随机数的设备

      #磁盘设备及分区
      /dev/sda
      /dev/sda1
      /dev/sda2
      /dev/sda3
  • /etc
    etc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。

    • 1
      2
      3
      4
      5
      /etc/sysconfig/network-scripts/ifcfg-*	#查看网卡配置文件
      /etc/hosts# 本地域名解析文件 #记录ip地址与主机名的对应映射关系
      /etc/resolv.conf #本地DNS配置文件
      /etc/fstab #挂载设备目录配置文件 开机自启动挂载列表
      /etc/hostname #主机名字配置文件
  • /home
    用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的,如上图中的 alice、bob 和 eve。

  • /lib
    lib 是 Library(库) 的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。

    • /lib #库文件目录 32位库文件
      /lib64 #库文件目录 64位库文件
  • /lost+found
    这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。

  • /media
    linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。

  • /mnt
    系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了。

  • /opt
    opt 是 optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。

  • /proc

    虚拟可变的目录 记录了系统的实时状态–>类似于汽车的仪表盘

  • /root
    该目录为系统管理员,也称作超级权限者的用户主目录。

  • /sbin
    s 就是 Super User 的意思,是 Superuser Binaries (超级用户的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序。

  • /selinux
    这个目录是 Redhat/CentOS 所特有的目录,Selinux 是一个安全机制,类似于 windows 的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。

1
2
3
4
5
6
关闭selinux
临时关闭
[root@localhost ~]# setenforce 0
永久关闭
[root@localhost ~]# vim /etc/selinux/config
SELINUX=disabled #编辑改成永久关闭
  • /srv
    物理设备所产生的一些文件

  • /sys

    物理设备的驱动信息文件

    这是 Linux2.6 内核的一个很大的变化。该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs 。

    sysfs 文件系统集成了下面3种文件系统的信息:针对进程信息的 proc 文件系统、针对设备的 devfs 文件系统以及针对伪终端的 devpts 文件系统。

    该文件系统是内核设备树的一个直观反映。

    当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。

  • /tmp
    公共临时目录 公共场所 只能针对自己的文件进行操作 系统会定时的删除这个目录下长时间没有访问的文件

  • /usr

    /usr #系统目录 系统文件目录 跟windows目录一样
    /userlocal #系统软件安装目录 跟windows的一样

  • **/usr/bin
    系统用户使用的应用程序。

  • **/usr/sbin
    超级用户使用的比较高级的管理程序和系统守护程序。

  • **/usr/src
    内核源代码默认的放置目录。

  • /var

    这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在 /var/log 目录下,另外 mail 的预设放置也是在这里。

    1
    2
    3
    4
    /var/log	#系统日志存放目录
    /var/log/messages #系统级别日志
    /var/log/secure #用户登录日志
    /var/tmp #程序运行时所产生的一些进程文件
  • /run
    是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。

在 Linux 系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。

/etc: 上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。

/bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在 /bin/ls 目录下的。

值得提出的是,/bin, /usr/bin 是给系统用户使用的指令(除root外的通用户),而/sbin, /usr/sbin 则是给 root 使用的指令。

  • stderr -> /proc/self/fd/2 #错误输出2>
    stdin -> /proc/self/fd/0 #标准输入<**
    **stdout -> /proc/self/fd/1 #标准输出>