精华内容
下载资源
问答
  • mysql 二进制文件总结

    2020-10-16 16:13:39
    如果 MySQL 数据库意外停止,可以通过二进制日志文件来查看用户执行了哪些操作,对数据库服务器文件做了哪些修改,然后根据二进制日志文件中的记录来恢复数据库服务器。 默认情况下,二进制日志功能关闭的。可以...

    二进制日志(Binary Log)也可叫作变更日志(Update Log),是 MySQL 中非常重要的日志。主要用于记录数据库的变化情况,即 SQL 语句的 DDL 和 DML 语句,不包含数据记录查询操作。

    如果 MySQL 数据库意外停止,可以通过二进制日志文件来查看用户执行了哪些操作,对数据库服务器文件做了哪些修改,然后根据二进制日志文件中的记录来恢复数据库服务器。

    默认情况下,二进制日志功能是关闭的。可以通过以下命令查看二进制日志是否开启,命令如下:

    mysql> show variables like "log_bin";
    +---------------+-------+
    | Variable_name | Value |
    +---------------+-------+
    | log_bin | ON |
    +---------------+-------+
    1 row in set (0.02 sec)
    

    从结果可以看出,二进制日志是开启的。

    启动和设置二进制日志
    

    在 MySQL 中,可以通过在配置文件中添加 log-bin 选项来开启二进制日志,格式如下:

    [mysqld]
    log-bin=dir/[filename]
    

    其中,dir 参数指定二进制文件的存储路径;filename 参数指定二进制文件的文件名,其形式为filename.number,number 的形式为 000001、000002 等。

    每次重启 MySQL 服务后,都会生成一个新的二进制日志文件,这些日志文件的文件名中 filename部分不会改变,number 会不断递增。

    如果没有 dir 和 filename 参数,二进制日志将默认存储在数据库的数据目录下,默认的文件名为hostname-bin.number,其中 hostname 表示主机名。

    案例配置如下:

    log-bin=mysql-bin
    binlog_format=mixed
    server-id = 1
    

    1.二进制文件基本操作

    1. 查看二进制文件

      1. 查看二进制日志文件列表
      

      可以使用如下命令查看 MySQL 中有哪些二进制日志文件:

      mysql> show binary logs;
      +------------------+-----------+-----------+
      | Log_name | File_size | Encrypted |
      +------------------+-----------+-----------+
      | mysql-bin.000035 | 686110 | No |
      | mysql-bin.000036 | 96148 | No |
      +------------------+-----------+-----------+
      2 rows in set (0.05 sec)
      

      2. 查看当前正在写入的二进制日志文件
      

      show master status;命令用来查看当前的二进制日志;

      mysql> show master status;
      +------------------+----------+--------------+------------------+-------------------+
      | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
      +------------------+----------+--------------+------------------+-------------------+
      | mysql-bin.000036 | 96148 | | | |
      +------------------+----------+--------------+------------------+-------------------+
      1 row in set (0.01 sec)
      

       3. 查看二进制日志文件内容
      

      二进制日志使用二进制格式存储,不能直接打开查看。如果需要查看二进制日志,使用show binlog events in ‘mysql-bin.000001’; 命令。

      mysql> show binlog events in 'mysql-bin.000036'\G;
      *************************** 825. row ***************************
      Log_name: mysql-bin.000036
      Pos: 95772
      Event_type: Query
      Server_id: 1
      End_log_pos: 96117
      Info: use `lms_2006_users`; insert into `lms_admin_operation_log` (`user_id`,
      `path`, `method`, `ip`, `input`, `updated_at`, `created_at`) values (1,
      'admin/products', 'GET', '127.0.0.1', '{\"_pjax\":\"#pjax-container\"}', '2020-09-24
      09:52:05', '2020-09-24 09:52:05')
      *************************** 826. row ***************************
      Log_name: mysql-bin.000036
      Pos: 96117
      Event_type: Xid
      Server_id: 1
      End_log_pos: 96148
      Info: COMMIT /* xid=16643 */
      826 rows in set (0.01 sec)
      ERROR:
      No query specified
      

      如果不指定查询的二进制文件,则默认为第一个二进制文件


    2.删除二进制文件

    二进制日志中记录着大量的信息,如果很长时间不清理二进制日志,将会浪费很多的磁盘空间。删除二进制日志的方法很多,下面介绍几种删除二进制日志的方法。

    1. 删除所有二进制日志
    

    使用 RESET MASTER 语句可以删除的所有二进制日志,该语句的形式如下:

    	RESET MASTER;
    

    登录 MySQL 数据库后,可以执行该语句来删除所有二进制日志。删除所有二进制日志后,MySQL 将会重新创建新的二进制日志,新二进制日志的编号从 000001 开始。

    2. 根据编号删除二进制日志
    

    每个二进制日志文件后面有一个 6 位数的编号,如 000001。使用 PURGE MASTER LOGS TO 语句,可以删除指定二进制日志的编号之前的日志。该语句的基本语法形式如下:

    PURGE MASTER LOGS TO 'filename.number';
    

    该语句将删除编号小于 filename.number 的所有二进制日志下面删除 mylog.000004 之前的二进制日志,代码如下:

    PURGE MASTER LOGS TO 'mylog.000004';
    

    代码执行完后,编号为 000001、000002 和 000003 的二进制日志将被删除。

    3. 根据创建时间删除二进制日志
    

    使用 PURGE MASTER LOGS TO 语句,可以删除指定时间之前创建的二进制日志,该语句的基本语法格式如下:

    PURGE MASTER LOGS TO 'yyyy-mm-dd hh:MM:ss';
    

    其中,“hh”为 24 制的小时。该语句将删除在指定时间之前创建的所有二进制日志。

    下面删除 2019-12-20 15:00:00 之前创建的二进制日志,代码如下

    PURGE MASTER LOGS TO '2019-12-20 15:00:00";
    

    代码执行完后,2019-12-20 15:00:00 之前创建的所有二进制日志将被删除。


    3.使用二进制文件恢复数据

    环境准备
    
    1. 创建一个用于测试的库create database mytest;

      mysql> create database mytest;
      Query OK, 1 row affected (0.03 sec)
      mysql> use mytest;
      Database changed
      mysql> show tables;
      Empty set (0.02 sec)
      
    2. 创建一个用于测试的用户表并新增数据,如下:

      mysql> CREATE TABLE `user` (
      -> `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
      -> `username` varchar(20) DEFAULT NULL,
      -> `age` int(11) DEFAULT NULL,
      -> PRIMARY KEY (`id`)
      -> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
      Query OK, 0 rows affected, 3 warnings (0.09 sec)
      mysql> show tables;
      +------------------+
      | Tables_in_mytest |
      +------------------+
      | user |
      +------------------+
      1 row in set (0.02 sec)
      mysql> insert into `user`(username,age)values('starsky',10);
      Query OK, 1 row affected (0.02 sec)
      mysql> insert into `user`(username,age)values('ShineYork',10);
      Query OK, 1 row affected (0.01 sec)
      mysql> insert into `user`(username,age)values('Will',10);
      Query OK, 1 row affected (0.01 sec)
      mysql>
      

      删除数据或者表
      

      mysql> select * from user;
      +----+-----------+------+
      | id | username | age |
      +----+-----------+------+
      | 1 | starsky | 10 |
      | 2 | ShineYork | 10 |
      | 3 | Will | 10 |
      +----+-----------+------+
      3 rows in set (0.00 sec)
      mysql> delete from `user` where id=1;
      Query OK, 1 row affected (0.02 sec)
      mysql> delete from `user` where id=2;
      Query OK, 1 row affected (0.02 sec)
      mysql> delete from `user` where id=3;
      Query OK, 1 row affected (0.02 sec)
      mysql> drop table `user`;
      Query OK, 0 rows affected (0.04 sec)
      mysql> drop database `mytest`;
      Query OK, 0 rows affected (0.06 sec)
      

      恢复数据
      
      1. 通过日志文件节点恢复数据

        根据节点需要我们查看日志文件提供给我们的数据库创建,表创建,数据新增等时创建的语句节点,从而
        恢复数据。

        ./bin/mysqlbinlog --start-position=96625 --stop-position=97758 /www/server/data/mysql-
        bin.000036 | mysql -uroot -p
        

        [root@localhost mysql]# ./bin/mysqlbinlog --start-position=96148 --stop-position=97789
        /www/server/data/mysql-bin.000036 | mysql -uroot -p
        Enter password:
        [root@localhost mysql]# mysql -uroot -p
        Enter password:
        Welcome to the MySQL monitor. Commands end with ; or \g.
        Your MySQL connection id is 453
        Server version: 8.0.19 Source distribution
        Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
        Oracle is a registered trademark of Oracle Corporation and/or its
        affiliates. Other names may be trademarks of their respective
        owners.
        Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
        mysql> use mytest;
        Database changed
        mysql> show tables;
        +------------------+
        | Tables_in_mytest |
        +------------------+
        | user |
        +------------------+
        1 row in set (0.05 sec)
        mysql> select * from `user`;
        +----+-----------+------+
        | id | username | age |
        +----+-----------+------+
        | 1 | starsky | 10 |
        | 2 | ShineYork | 10 |
        | 3 | Will | 10 |
        +----+-----------+------+
        3 rows in set (0.01 sec)
        mysql>
        

        其他恢复数据命令
        

        //根据时间恢复数据
        mysqlbinlog --start-datetime='2020-09-27 22:22:22' --stop-datetime='2020-09-27
        22:30:00' /www/server/data/mysql-bin.000036 | mysql -uroot -p
        //直接执行binlog日志
        mysqlbinlog /www/server/data/mysql-bin.000036 | mysql -uroot -p
        
    展开全文
  • 如果 MySQL 数据库意外停止,可以通过二进制日志文件来查看用户执行了哪些操作,对数据库服务器文件做了哪些修改,然后根据二进制日志文件中的记录来恢复数据库服务器。 默认情况下,二进制日志功能关闭的。可以...

    二进制日志(Binary Log)也可叫作变更日志(Update Log),是 MySQL 中非常重要的日志。主要用于记录数据库的变化情况,即 SQL 语句的 DDL 和 DML 语句,不包含数据记录查询操作。

    如果 MySQL 数据库意外停止,可以通过二进制日志文件来查看用户执行了哪些操作,对数据库服务器文件做了哪些修改,然后根据二进制日志文件中的记录来恢复数据库服务器。

    默认情况下,二进制日志功能是关闭的。可以通过以下命令查看二进制日志是否开启,命令如下:

    mysql> SHOW VARIABLES LIKE 'log_bin';
    +---------------+-------+
    | Variable_name | Value |
    +---------------+-------+
    | log_bin       | OFF   |
    +---------------+-------+
    1 row in set, 1 warning (0.02 sec)
    

    从结果可以看出,二进制日志是关闭的。

    启动和设置二进制日志

    在 MySQL 中,可以通过在配置文件中添加 log-bin 选项来开启二进制日志,格式如下:

    [mysqld]
    log-bin=dir/[filename]
    

    其中,dir 参数指定二进制文件的存储路径;
    filename 参数指定二进制文件的文件名,其形式为 filename.number,number 的形式为 000001、000002 等。

    每次重启 MySQL 服务后,都会生成一个新的二进制日志文件,这些日志文件的文件名中 filename 部分不会改变,number 会不断递增。

    如果没有 dir 和 filename 参数,二进制日志将默认存储在数据库的数据目录下,默认的文件名为 hostname-bin.number,其中 hostname 表示主机名。

    下面在 my.ini 文件的 [mysqld] 组中添加以下语句:

    log-bin
    

    重启 MySQL 服务器后,可以在 MySQL 数据库的数据目录下看到 LAPTOP-UHQ6V8KP-bin.000001 这个文件,同时还生成了 LAPTOP-UHQ6V8KP-bin.index 文件。此处,MySQL 服务器的主机名为 LAPTOP-UHQ6V8KP。

    还可以在 my.ini 文件的 [mysqld] 组中进行如下修改。语句如下:

    log-bin=C:log\mylog
    

    重启 MySQL 服务后,可以在 C:log 文件夹下看到 mylog.000001 文件和 mylog.index 文件。

    查看二进制日志

    1. 查看二进制日志文件列表
    可以使用如下命令查看 MySQL 中有哪些二进制日志文件:

    mysql> SHOW binary logs;
    +----------------------------+-----------+
    | Log_name                   | File_size |
    +----------------------------+-----------+
    | LAPTOP-UHQ6V8KP-bin.000001 |       177 |
    | LAPTOP-UHQ6V8KP-bin.000002 |       154 |
    +----------------------------+-----------+
    2 rows in set (0.00 sec)
    

    2. 查看当前正在写入的二进制日志文件
    可以使用以下命令查看当前 MySQL 中正在写入的二进制日志文件。

    mysql> SHOW master status;
    +----------------------------+----------+--------------+------------------+-------------------+
    | File                       | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
    +----------------------------+----------+--------------+------------------+-------------------+
    | LAPTOP-UHQ6V8KP-bin.000002 |      154 |              |                  |                   |
    +----------------------------+----------+--------------+------------------+-------------------+
    1 row in set (0.00 sec)
    
    

    3. 查看二进制日志文件内容
    二进制日志使用二进制格式存储,不能直接打开查看。如果需要查看二进制日志,必须使用 mysqlbinlog 命令。

    mysqlbinlog 命令的语法形式如下:

    mysqlbinlog filename.number
    

    mysqlbinlog 命令只在当前文件夹下查找指定的二进制日志,因此需要在二进制日志所在的目录下运行该命令,否则将会找不到指定的二进制日志文件。

    例 1
    下面使用 mysqlbinlog 命令,来查看 C:\log 目录下的 mylog.000001 文件,代码执行如下:

    C:\Users\11645>cd C:\log
    C:\log>mysqlbinlog mylog.000001
    /*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
    /*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
    DELIMITER /*!*/;
    # at 4
    #200527  9:33:37 server id 1  end_log_pos 123 CRC32 0x69738cfd  Start: binlog v 4, server v 5.7.29-log created 200527  9:33:37 at startup
    ......
    

    由于日志内容较长,这里只展示了 mylog 中的部分内容。

    使用 mysqlbinlog 命令时,可以指定二进制文件的存储路径。这样可以确保 mysqlbinlog 命令可以找到二进制文件。上面例子中的命令可以变为如下形式:

    mysqlbinlog C:\log\mylog.000001
    

    这样,mysqlbinlog 命令就会到 C:\log 目录下去查找 mylog.000001 文件。如果不指定路径,mysqlbinlog 命令将在当前目录下查找 mylog.000001 文件。

    除了 filename.number 文件,MySQL 还会生成一个名为 filename.index 的文件,这个文件存储着所有二进制日志文件的列表,可以用记事本打开该文件。

    小技巧:实际工作中,二进制日志文件与数据库的数据文件不放在同一块硬盘上,这样即使数据文件所在的硬盘被破坏,也可以使用另一块硬盘上的二进制日志来恢复数据库文件。两块硬盘同时坏了的可能性要小得多,这样可以保证数据库中数据的安全。

    删除二进制日志

    二进制日志中记录着大量的信息,如果很长时间不清理二进制日志,将会浪费很多的磁盘空间。删除二进制日志的方法很多,下面介绍几种删除二进制日志的方法。

    1. 删除所有二进制日志
    使用 RESET MASTER 语句可以删除的所有二进制日志,该语句的形式如下:
    RESET MASTER;

    登录 MySQL 数据库后,可以执行该语句来删除所有二进制日志。删除所有二进制日志后,MySQL 将会重新创建新的二进制日志,新二进制日志的编号从 000001 开始。

    2. 根据编号删除二进制日志
    每个二进制日志文件后面有一个 6 位数的编号,如 000001。使用 PURGE MASTER LOGS TO 语句,可以删除指定二进制日志的编号之前的日志。该语句的基本语法形式如下:
    PURGE MASTER LOGS TO ‘filename.number’;

    该语句将删除编号小于 filename.number 的所有二进制日志。

    例 2
    下面删除 mylog.000004 之前的二进制日志,代码如下:

    PURGE MASTER LOGS TO 'mylog.000004';
    

    代码执行完后,编号为 000001、000002 和 000003 的二进制日志将被删除。

    3. 根据创建时间删除二进制日志
    使用 PURGE MASTER LOGS TO 语句,可以删除指定时间之前创建的二进制日志,该语句的基本语法格式如下:

    PURGE MASTER LOGS TO 'yyyy-mm-dd hh:MM:ss';
    

    其中,“hh”为 24 制的小时。该语句将删除在指定时间之前创建的所有二进制日志。

    例 3
    下面删除 2019-12-20 15:00:00 之前创建的二进制日志,代码如下:

    PURGE MASTER LOGS TO '2019-12-20 15:00:00";
    

    代码执行完后,2019-12-20 15:00:00 之前创建的所有二进制日志将被删除。

    暂时停止二进制日志

    在配置文件中设置了 log_bin 选项之后,MySQL 服务器将会一直开启二进制日志功能。删除该选项后就可以停止二进制日志功能,如果需要再次启动这个功能,需要重新添加 log_bin 选项。由于这样比较麻烦,所以 MySQL 提供了暂时停止二进制日志功能的语句。

    如果用户不希望自己执行的某些 SQL 语句记录在二进制日志中,可以在执行这些 SQL 语句之前暂停二进制日志功能。

    使用 SET 语句来暂停/开启二进制日志功能,命令如下:

    SET SQL_LOG_BIN=0/1;
    

    以上命令中,0 表示暂停二进制日志功能,1 表示开启二进制功能。

    拓展

    my.ini 中的 [mysqld] 组下面有几个设置参数是关于二进制日志的:

    expire_logs_days = 10
    max_binlog_size = 100M
    
    • expire_logs_day 定义了 MySQL 清除过期日志的时间、二进制日志自动删除的天数。默认值为 0,表示“没有自动删除”。当
      MySQL 启动或刷新二进制日志时可能删除。
    • max_binlog_size
      定义了单个文件的大小限制,如果二进制日志写入的内容大小超出给定值,日志就会发生滚动(关闭当前文件,重新打开一个新的日志文件)。不能将该变量设置为大于
      1GB 或小于 4096B(字节),其默认值是 1GB。
    展开全文
  • 初识oracle控制文件

    千次阅读 2012-07-09 09:42:03
    以下内容来源oracle dba ppt06 Maintaining the Control File 1.学习目标 1)解释控制文件的使用 ...定义:控制文件是定义当前数据库物理状态的二进制文件。 特性: 1)控制文件若丢失需要恢复 2)在MOU

    以下内容来源oracle dba ppt06 Maintaining the Control File
    1.学习目标
    1)解释控制文件的使用
    2)列出控制文件的内容
    3)多元化管理控制文件
    4)使用OMF管理控制文件
    5)获取控制文件信息

    2.什么是控制文件?它有哪些特性?
    定义:控制文件是定义当前数据库物理状态的二进制文件。
    特性:
    1)控制文件若丢失需要恢复
    2)在MOUNT状态可以读取
    3)数据库运行期间控制文件不断地被更新
    4)每个控制文件都只关联一个数据库
    5)应该被多元化
    6)维护数据库实体
    7)由CREATE DATABASE语句初始化大小

    注:控制文件由DBA管理维护。

    3.控制文件包含哪些内容?
    1)数据库名及数据库唯一标识
    2)数据文件和日志文件标识
    3)数据库恢复所需的同步信息,即检查点号
    4)数据库创建时间
    5)表空间名
    6)当前重做日志文件SCN
    7)回滚段的开始和结束
    8)重做日志归档信息
    9)备份信息


    4.控制文件的简单操作介绍?
    1)控制文件由参数control_files指定,格式如下:
       control_files=("home/app/.../control01.ctl","home/app/.../control02.ctl")
       参数中各个文件是镜像关系,也就是说,几个文件中只要有一个文件完好,数据库就可以正常运行。

    2)以下语句查询控制文件的信息:
      sql>select * from v$controlfile
      如果控制文件损坏或丢失,数据库将终止并且无法启动,所以,要对控制文件进行镜象,手工镜像步骤如下:
      a.关闭数据库
      b.复制控制文件
      c.修改参数文件,加入新增的控制文件位置描述
      d.重新启动数据库
      另外注意,控制文件中还包含几个服务器参数的设置,如果修改这些参数的值,刚需要重新创建控制文件,这些参数是:
      MAXLOGFILES:最大日志文件个数
      MAXLOGMEMBERS:最大日志成员个数
      MAXLOGHISTORY:最大历史日志个数
      MAXDATAFILES:最大数据文件个数
      MAXINSTANCES:最大实例文件个数
      所有修改数据库结构的命令都会引起控制文件的改变。同时出会记录在oracle跟踪文件中,跟踪文件的名称为alter_SID.log,路径如下:
      d:\oracle\product\10.1.0\admin\DB_NAME\bdump\SIDALRT.log(unix是alter_SID.ora)
      也可以在参数文件中指定跟踪文件的存储路径,后台进程跟踪文件目录由参数background_dump_dest指定,用户跟踪文件位置由参数user_bdump_dest指定,如:
      background_bdump_dest=/u01/app/oracle/oralog/bdump
      user_bdump_dest=/u01/app//oralog/udump


    5.如何多元化控制文件?
    步骤:
    1)修改SPFILE:
    ALTER SYSTEM SET control files =
    '$HOME/ORADATA/u01/ctrl01.ctl',
    '$HOME/ORADATA/u02/ctrl02.ctl' SCOPE=SPFILE;

    2)关闭数据库
    SQL> shutdown

    3)创建额外的控制文件
    $ cp $HOME/ORADATA/u01/ctrl01.ctl      复制现有控制文件       
         $HOME/ORADATA/u02/ctrl02.ctl
    4)启动数据库
    SQL> startup

    6.使用OMF管理控制文件?
    1)如果control_files参数没有制定就会使用OMF创建控制文件。
    2)OMF控制文件将会位于DB_CREATE_ONLINE_LOG_DEST_N。

    但是,下面语句修改系统控制文件时(可能是操作随意),到底应将控制文件是放在什么位置呢?
    SQL>Alter system set control_files = 'control01.ctl','control02.ctl','control03.ctl' scope=spfile;

    当按上面语句更改控制文件设置后,必须将控制文件放置到 %ORACLE_HOME%\database 目录下,否则数据库无法正常启动。

    数据库正常启动后,按下面语句操作恢复控制文件的制定位置:
    SQL>Alter system set control_files = 'D:\oracle\Administrator\oradata\db_1\control01.ctl','D:\oracle\Administrator\oradata\db_1\control02.ctl','D:\oracle\Administrator\oradata\db_1\control03.ctl' scope=spfile;

    7.查询控制文件信息?
    1)SQL> select name from v$controlfile;

    NAME
    ---------------------------------------------------------------------------------------------------
    E:\ORADATA\ORCL\CONTROL01.CTL
    E:\ORADATA\ORCL\CONTROL02.CTL
    E:\ORADATA\ORCL\CONTROL03.CTL

    2)SQL> select name, value from v$parameter where name='control_files';

    NAME
    --------------------------------------------------------------------------------
    VALUE
    ---------------------------------------------------------------------------------------------------
    control_files
    E:\ORADATA\ORCL\CONTROL01.CTL, E:\ORADATA\ORCL\CONTROL02.CTL, E:\ORADATA\ORCL\CONTROL03.CTL

    3)SQL> show parameter control_files;

    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    control_files                        string      E:\ORADATA\ORCL\CONTROL01.CTL,
                                                      E:\ORADATA\ORCL\CONTROL02.CTL
                                                     , E:\ORADATA\ORCL\CONTROL03.CT
                                                     L
    4)SQL> select type, record_size, records_total, records_used
      2  from v$controlfile_record_section
      3  where type='DATAFILE';

    TYPE                         RECORD_SIZE RECORDS_TOTAL RECORDS_USED
    ---------------------------- ----------- ------------- ------------
    DATAFILE                             428           100           11

     

     

    mady by indexman.

     

    展开全文
  • 我们安装好linux系统后,linux系统也会像windows系统一样,自动生成很多的文件和目录,这些目录都包含了不同的含义。下面,我们就来介绍一下这些目录都代表着什么?...bin: linux命令目录(二进制)。sbin:...

    我们安装好linux系统后,linux系统也会像windows系统一样,自动生成很多的文件和目录,这些目录都包含了不同的含义。下面,我们就来介绍一下这些目录都代表着什么?以及,在命令行界面,我们如何在不同的目录之间切换。

    一、linux系统目录结构。

    我们这里介绍的是linux系统的常规目录结构,不管什么版本的linux系统,一般都会包括以下这些目录。

    bin: linux命令目录(二进制)。
    sbin: linux命令目录(起级管理员使用),s就是Super User的意思。
    boot: linux启动目录,存有linux内核 (引导、长/皮鞋)。
    dev: linux存放硬件目录,以抽象的文件形式存放(device设备)。
    etc: linux配置文件目录。
    lib: linux系统函数库文件目录,相当于window中的.dll文件。
    mnt: linux挂载用,早期版本只有这一个挂载,建议挂载额外设备,如:U盘、移动硬盘和分区。
    medie: linux挂载用,系统建议挂载媒体设备。
    misc: linux挂载用,建议挂载NFS服务的共享目录。
    opt: linux大型软件安装目录。
    sys: linux虚拟文件系统,包含底层硬件的信息,保存在内存当中,主要保存内核相关信息。
    tmp: linux存放临时文件,会定期自动删除。
    usr: linux一般应用程序默认安装目录 【 unix soft resource 】。
    var: linux动态数据及进程改变保存位置(如日志、邮件、缓存、网站 )。
    home: linux用户的主目录家目录,子目录以用户名为文件夹名。
    root: linux起级管理员目录。
    proc: linux虚拟文件夹,存在于内存中,保存着系统的实时信息,如内存、CPU等硬件信息。

    当然,不同的发行版本,有可能会或多或少地添加一些自己的目录。

    二、如何在目录之间进行切换?

    linux的目录切换命令,跟windows系统的dos下的命令基本上一样。如果使用过dos的,那在linux系统下切换目录就不是难事了。

    1、切换到当前用户的家目录。我们只需要在命令行界面输入如下命令,就可以切换到当前用户的家目录:

    cd

    这时,我们可以在命令行界面中看到,当前目录是~ 位置,~代表的是当前用户的家目录。如下图:

    9df28946579a3c7e22f973b6797b129a.png

    2、切换到指定的目录。下面的命令是切换到 /home/目录,是以绝对路的形式来切换。

    cd /home

    如果我们已经在一个目录里了,要想切换到同级目录或上级目录的同级目录,就必须使用绝对路径。上面的命令切换后,当前目录换成了home。如下图:

    c717f046e463667c08796583e494ecbe.png

    3、切换到上一个目录。 切换到上一个目录,即切换到当前目录的前一个目录。命令如下:

    cd -

    我们当前目录是home,输入这个命令后,就又切回到当前用户家目录了。如下图:

    62cf6c3c05bd3c795adef2b008f2e070.png

    4、切换到上一级目录。以相对路径的形式切换。命令如下:

    cd ..

    一个点代表的是自己,这里的两个点..代表的是上一级目录(父目录),打印结果如下:

    ee5141b4d3564f12a77e89d39d460b5a.png

    5、切换到当前目录下的子目录。下面的这个命令是切换到当前目录下的gao目录里。

    cd gao

    如果要切换到其它用户的家目录,必须是管理员,普通用户没有这个权限。上面的命令打印结果如下图:

    556ad3939631e9eda2b08fd1ee52734c.png

    ​6、切换到根目录。有时,我们进入目录比较深,有好几级了,这时,我们可以通过如下命令直接回到linux根目录

    cd /

    这里的/代表的就是linux系统的根目录,也是linux系统的最大的目录,上面介绍的所有目录都是存放在这个根目录里的。

    好了,上面我们系统地介绍了一下linux系统的目录整体结构,以及如何在这些目录之间进行切换。操作很简单,相信大家也很容易就能上手。

    以上就是我的观点,如有不同观点,欢迎发表评论。同时欢迎【点赞、分享、收藏】和【关注】我。

    展开全文
  • 问题本文主要带着以下问题进行学习:1、什么binlog,有什么作用2、binlog有哪些格式3、分析一条典型binlog ,说明从...一、简介binlog又叫二进制日志文件,它会将mysql中所有修改数据库数据的Query以二进制的形式...
  • 逆向分析工具呢在二进制代码分析的过程中必不可少的,这些软件分析工具包括以下: 1、系统监控工具 2、反汇编器 3、调试器 4、和反汇编译器 系统监控工具用来监控,研究以及剖析 待逆向的程序,这由于程序与外部...
  • CloudKit支持哪些数据类型 CloudKit支持以下数据类型: ...不要使用数据对象存储大型二进制数据文件;使用一个CKAsset代替。数据字段不可搜索。 NSDate 以可访问的形式存储日期和时间信息。 NSArray 在此表中存储
  • numpy中可以处理的文件类型常有以下几种:二进制文件((npy、npz)、文本文件(txt、csv等) 二、二进制文件的输入和输出 save() 、 savez() 和 load() 函数以 numpy 专用的二进制类型(npy、np...
  • 我们安装好linux系统后,linux系统也会像windows系统一样,自动生成很多的文件和目录,这些目录都包含了不同的含义。下面,我们就来介绍一下这些目录都代表着什么?...bin: linux命令目录(二进制)。sbin:...
  • 我们安装好linux系统后,linux系统也会像windows系统一样,自动生成很多的文件和目录,这些目录都包含了不同的含义。下面,我们就来介绍一下这些目录都代表着什么?...bin: linux命令目录(二进制)。sbin:...
  • 从我们的下载编译的二进制文件 隐私 虽然所有密钥和事务检测都在客户端上进行,但是服务器可以了解哪些块包含受屏蔽的事务。 服务器还会学习有关您的其他元数据,例如您的IP地址等。 还要记住,T地址不提供任何...
  • 您可以从下载linux二进制文件。 基本用法 如果服务器上有rhit,并且日志位于其通常位置: rhit (您可能必须以sudo开头才能读取/var/log的文件) 告诉rhit打开哪些文件: rhit ~ /trav/nginx-logs 筛选 筛选路径...
  • 元数据一种二进制信息,用以对存储在公共语言运行库可移植可执行文件 (PE) 文件或存储在内存中的程序进行描述。将您的代码编译为 PE 文件时,便会将元数据插入到该文件的一部分中,而将代码转换为 Microsoft 中...
  • 现在给出容器的定义,一个容器包含一个完整的运行时环境:一个应用程序,及其所有依赖项,库和其他二进制文件,以及运行该文件所需的配置文件,这些文件捆绑在一个程序包中。容器化应用程序平台及其依赖项可消除OS...
  • 6)假如你要爬大量youtube视频的二进制内容,存储在本地,最佳的办法? A. Mysql数据库存储 B. Redis存储 C. Mongodb存储 D. 文件系统 7)如果想爬自己手机应用上的HTTPS的数据,获得明文,下面...
  • VS2008中影响exe大小的和速度的选项

    千次阅读 2010-03-16 09:46:00
    在这些工作都做了之后,如果还是压缩不下来二进制文件大小,可以考虑过一遍map文件中的符号表,看一下占空间最大的symbol都是哪些,是否可以优化掉,是否可以改为动态链接,等等。 以下是原文: -------
  • 第四章的题.docx

    2020-08-08 21:03:30
    6 可以执行rpmbuild -ba redis.spec生成二进制文件? ( × ) A. True B. Flase 7 RPM打包使用的什么命令,这个命令来自以下哪个包? ( B ) A. rpm , rpmbuild包 B. rpmbuild ,rpm-build包 C. rpmbuild , ...
  • VS2008中影响exe大小的和速度的选项

    千次阅读 2010-04-07 10:16:00
    在这些工作都做了之后,如果还是压缩不下来二进制文件大小,可以考虑过一遍map文件中的符号表,看一下占空间最大的symbol都是哪些,是否可以优化掉,是否可以改为动态链接,等等。以下是原文:---------------------...
  • 列出了所有编译器二进制文件的正式发行版。 如何使用 二进制包可以从下载,请参见以下各节,以获取特定于平台的安装说明。 注意:首次使用此编译器进行构建时,您可能会收到警告/错误/致命信息-您需要在构建配置中...
  • 我个人的经验,在这些工作都做了之后,如果还是压缩不下来二进制文件大小,可以考虑过一遍map文件中的符号表,看一下占空间最大的symbol都是哪些,是否可以优化掉,是否可以改为动态链接,等等。 以下是原文: ---...
  • 文章目录库库什么库的种类库的意义库的命名静态库与动态库生成实例编译多个源文件静态库动态库Linux下库浅谈查看一个可执行程序依赖哪些库可执行程序在执行时定位共享库文件如何让系统找到新库编译参数分析 ...
  • 我们可以把经过 Jocky编译的类文件以UltraEdit打开,可以发现在第8个字节上(类文件的major version)的数值0x30,即十进制的48,这JDK 1.4所能够理解的类文件版本(JDK 5.0默认编译的类文件版本49)。前提:应用...
  • 以下只有一种运算符有关字符的: $a + $b :加 $a - $b :减 $a * $b :乘 $a / $b :除 $a % $b :取模(余数) $a . $b :字符串连接 逻辑和比较 逻辑运算符有: $a || $b :或 $a or $b :或 $a &&...
  • 什么VLAN

    2013-10-23 09:59:12
    而在交换网络中,广播域可以有一组任意选定的第层网络地址(MAC地址)组成的虚拟网段。这样,网络中工作组的划分可以突破共享网络中的地理位置限制,而完全根据管理功能来划分。这种基于工作流的分组模式,大大...
  • 入门学习Linux常用必会60个命令实例详解doc/txt

    千次下载 热门讨论 2011-06-09 00:08:45
    umount命令的作用卸载一个文件系统,它的使用权限超级用户或/etc/fstab中允许的使用者。 2.格式 unmount -a [-fFnrsvw] [-t vfstype] [-n] [-rw] [-F] device dir 3.使用说明 umount 命令mount命令...
  • C语言编程要点

    2017-09-18 00:10:37
    4.6. 文本模式(textmode)和二进制模式(binarymode)有什么区别? 61 4.7. 怎样判断使用流函数还是使用低级函数? 62 4.8. 怎样列出某个目录下的文件? 62 4.9. 怎样列出一个文件的日期和时间? 63 4.10. 怎样对某个目录...
  • 又称文件的存储结构,文件在外存上的存储组织形式,与存储介质的存储性能有关; 空闲空间的管理方法主要有:空闲表法、空闲(自由)链表法、成组链接法 4、文件目录 (1)文件目录分类:一级...

空空如也

空空如也

1 2 3 4
收藏数 61
精华内容 24
关键字:

以下哪些文件是二进制文件