zoukankan      html  css  js  c++  java
  • 自己动手写docker之Linux命令(CentOS7.7)

    pstree

    • example
      pstree -a -p
    -a:显示每个程序的完整指令,包含路径,参数或是常驻服务的标示;
    -p:显示程序识别码;
    -u:显示用户名称;
    

    ps+grep命令

    sh-4.2#  ps -ef | grep 10105 // 打印和进程14029相关的所有进程信息,包括该进程本身,该进程作为父子进程的情况
    root      10105  10010  0 04:40 pts/0    00:00:00 /bin/sh // bash是父进程
    root      10107  10105  0 04:41 pts/0    00:00:00 ps -ef // bash的子进程
    root      10108  10105  0 04:41 pts/0    00:00:00 grep 10105 // 还是bash的子进程
    

    mount

    [root@localhost ~]# mount [-t 系统类型] [-L 卷标名] [-o 特殊选项] [-n] 设备文件名 挂载点
    
    一个普通的挂载:
    mount /dev/sdb1 /mnt/disk1
    博客中的一个挂载: 当我没有真实的设备时,tmpfs可以作为一个虚拟的设备用于挂载? TODO
    mount -t tmpfs tmpfs /tmp/test_mnt_namespace
    
    -t tmpfs: 挂载为tmpfs文件系统类型
    tmpfs: 设备文件名 TODO
    /tmp/test_mnt_namespace:挂载点
    
    1. -t 系统类型:指定欲挂载的文件系统类型。Linux 常见的支持类型有 EXT2、EXT3、EXT4、iso9660(光盘格式)、vfat、reiserfs 等。如果不指定具体类型,挂载时 Linux 会自动检测。
    2. tmpfs 参考附录5
    3. tmpfs 设备
    
    • mount -bind命令
      使得访问后一个目录就相当于前一个目录。
    mount –bind /dev/shm/tmp /tmp
    

    mount --bind和硬连接的区别

    Q: 为什么需要挂载
    A: 在 Linux 看来,任何硬件设备也都是文件,它们各有自己的一套文件系统(文件目录结构)。
    因此产生的问题是,当在 Linux 系统中使用这些硬件设备时,只有将Linux本身的文件目录与硬件设备的文件目录合二为一,硬件设备才能为我们所用。合二为一的过程称为“挂载”。

    Q: 挂载做了什么
    A: 挂载,指的就是将设备文件中的顶级目录连接到 Linux 根目录下的某一目录(最好是空目录),访问此目录就等同于访问设备文件。

    Q: 自动挂载和手动挂载
    附录4
    A: 《linux挂载》一节讲到,所有的硬件设备必须挂载之后才能使用,只不过,有些硬件设备(比如硬盘分区)在每次系统启动时会自动挂载,而有些(比如 U 盘、光盘)则需要手动进行挂载。

    Q: 如果没有挂载,能看到哪些信息。
    A: 事实上,当 U 盘插入 Linux 后,系统也确实会给 U 盘分配一个目录文件(比如 sdb1),就位于 /dev/ 目录下(/dev/sdb1),但无法通过 /dev/sdb1/ 直接访问 U 盘数据,访问此目录只会提供给你此设备的一些基本信息(比如容量)。

    Q: 自动挂载的路径
    A: 根目录下的 /dev/ 目录文件负责所有的硬件设备文件,

    df命令

    附录3
    从中可以看出 挂载的磁盘是/dev/vda1,20G //阿里云抢占式实例

    [root@iZ8vbbz0mtspzvkwiu5j64Z /]# df
    Filesystem     1K-blocks    Used Available Use% Mounted on
    devtmpfs         3994144       0   3994144   0% /dev
    tmpfs            4004504       0   4004504   0% /dev/shm
    tmpfs            4004504     484   4004020   1% /run
    tmpfs            4004504       0   4004504   0% /sys/fs/cgroup
    /dev/vda1       20510332 1673444  17771980   9% /
    tmpfs             800904       0    800904   0% /run/user/0
    

    /proc/self/exe /proc/[pid]/exe

    一个指向自己当前进程的软连接。表示当前进程本身。

    参考资料

    1. Linux 进程树查看工具 pstree
    2. 什么是挂载,Linux挂载详解
    3. Linux du命令:统计目录或文件所占磁盘空间大小
    4. Linux mount命令详解:挂载Linux系统外的文件
    5. tmpfs是最好的基于RAM的文件系统

    TODOLinux文件系统到底有什么用处?

  • 相关阅读:
    BPF and eBPF linux
    o-sync-and-o-direct
    linux performance test
    iostat
    MYSQL IO innodb-buffer-pool
    MYSQL file types redo log
    read pread write pwrite open
    CORE DUMP
    linux kernel的中断子系统 softirq
    linux KERNEL 问题
  • 原文地址:https://www.cnblogs.com/yudidi/p/12450000.html
Copyright © 2011-2022 走看看