zoukankan      html  css  js  c++  java
  • [RH124] 3-目录结构及命令

    1.Linux目录结构

    我们知道在Windows中,系统是装在C盘中的。

    在装好系统时,会自动生成三个重要的文件夹,分别时Windows、User、Program files。

    • Windows:用于存放系统文件。
    • User:用于存放用户数据。
    • Program Files:软件安装的默认位置。

    同样,在安装Linux时,系统也会生成一些文件夹。相对Windows,Linux生成的文件夹数量更多。

     

    /bin :存放常见的命令,例如ls、mount等,实际上就是一些程序。/bin是/usr/bin的快捷方式(软链接)。该目录不能作为挂载点。

    /boot :存放和系统启动相关的东西,例如内核、参数模块等。可以单独挂载分区建议500M以上,免得出现空间不足的情况。/boot不能出现在LVM中,只能是一个标准分区。

    /dev :存放磁盘、光驱、USB设备等设备。也不能给他挂载单独的分区。为什么这些设备可以存放在/dev文件夹中,简单原理如下:

    图中,只有内核可以识别物理设备(有驱动的情况下),用户只能在用户空间通过/dev来操作设备,/dev相当于汽车里的中控台,我们对/dev的操作会被映射给内核空间,然后内核空间再根据要求去操作实际的物理设备。他们之间通过udev进行映射。

    有时候我们在安装物理硬件后,无法发现设备,很可能就是内核无法识别硬件,可能是没有硬件设备驱动。

    /etc :存放各种配置文件,包括操作系统、网络和还有应用程序等的配置文件。绝对不能单独划分分区。

    /home :存放用户的家目录。可以单独划分分区。

    /lib : 是/usr/lib的快捷方式,用于存放各种模块、动态库等。不可以单独划分分区。

    /lib64 :是/usr/lib64的快捷方式,存放64位的模块、库等。不可以单独划分分区。

    /media : 作为默认的介质挂载点,不过现在已经默认挂载在/run/media里(RHEL6及以前的版本是挂载到/media的),这个文件夹基本没用。

    /mnt :用于用户习惯性的挂载光驱等设备的挂载点。

    /opt :没什么用,只是有些应用会默认安装在这里。

    /proc :用于存放内核参数,例如可以修改物理内存允许的使用率。

    /root :root用户的家目录。

    /run :程序或服务启动后,存放PID等内容。同时里面还有RHEL7默认介质挂载点media。

    /sbin :是/usr/sbin的快捷方式,存放与系统关系紧密的命令,例如ifconfig。不能单独挂载分区。

    /srv :一般用不到,只有特殊情况可能用到,例如在openstack配置的过程中可能用到。

    /sys :不能单独挂载分区。存放与硬件相关的一些内容,例如可以修改CPU启用情况,如果有2颗CPU(通过lscpu查看),我们可以停用一颗。

    我们在 /sys/devices/system/cpu/cpu0 下可以看到一个叫online的文件,里面是值0或1,分别代表该颗CPU是否启用。通过 echo 0 > online 就可以停用CPU。

    /tmp :存放临时文件,或者垃圾文件。

    /usr :相当于windows里的program files,用于存在应用程序。可以单独划分分区。

    /var :存放数据库、日志什么的。可以划分分区。

    2.文件路径

    文件路径分为:

    • 绝对路径:从根"/"开始算。
    • 相对路径:相对另一个路径的路径。

    使用tree软件可以以树形结构查看文件目录。

    安装tree软件:

    1)挂载光盘

    mount /dev/cdrom /mnt

    2)安装tree

    rpm -ivh /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm
    cd ~用户名

    可以进入指定用户名的家目录。例如在root用户下执行cd ~hanxinda就可以进入hanxinda的家目录。

    cd - 

    回到上一次的目录。

    3.常用命令

    1)文件操作

    在Linux中,文件名后缀大部分时候和类型是没有关系的,后缀只是作为名称的一部分。和Windows不一样。

    file  # 用来查看一个文件或目录的类型。例如file /boot 输出/boot: directory,说明/boot是一个文件夹。
    touch   # 用来创建一个文件,例如touch hello默认在当前目录创建hello文件,如果hello已经存在,则更新文件时间 (可以使用touch -t指定时间)。touch /leo/hello在/leo文件夹下创建hello文件,前提是/leo必须已经存在。
    touch -t 201210201010 hello  # 修改hello的最近访问和最近更改时间修改为2012年10月20日10点10分。

    如果要同时创建多个文件:

    touch aa bb cc   # 同时创建aa bb cctouch aa{1,2,3,4,5}   # 同时创建aa1,aa2,aa3,aa4,aa5。
    touch aa{1..5}   # 同时创建aa1,aa2,aa3,aa4,aa5。
    stat  # 查看文件信息。例如访问时间、创建时间、修改时间等。
    rm  # 删除文件。在普通用户下使用rm hello会直接删除,并没有提示确认。而在root下使用rm hello就会提示确认。这是为什么,原因是root下,rm是rm -i 的alias别名,执行rm hello相当于执行rm -i hello,所以会提示删除确认,为的是防止误删。
    rm -f  # 强制删除,不会提醒确认。
    rm -r  # 递归的删除文件和文件夹。
    rm -rf /*  #删除根目录下的所有文件,千万不要使用该命令,使用后基本无法恢复。
    wc  # 统计文件中内容。wc -l统计行数,wc -w统计单词(空格分割就是单词),wc -c统计字符。

    2)软硬链接

    ln  # 链接(软连接、硬链接)。硬链接在后面讲解。软连接就相当于Windows下的快捷方式。
    ln -s hello helloo  # 创建hello的软连接helloo。通过ls -l查看可以看到helloo -> hello。

    3)文件查看

    cat  # 查看文本文件的内容。但只适合查看小文件,太长的文件不合适。
    cat -n  # 可以在查看时显示行号。
    cat -A  # 可查看隐藏的换行符。
    more  # 从文件的开始显示文件内容。问题是只能往后看,不能往前看。
    less  # 比较方便的查看文件内容。支持前后滚动。按enter可以一行一行往后查看,按空格可以一页一页往后查看,按pgup可以往前翻一页,按pgdown可以往后翻一页,按home可以回到文件开头,按end可以跳到文件结尾。按"/"可以进行查询,按n往后查询,N往前查询。按q退出。
    head  # 查看文件的前几行,默认10行。例如head /etc/passwd,默认显示前10行内容。
    head -n 8  # 查看文件的前8行。也可以写为head -8 /etc/passwd
    tail  # 查看文件的尾几行,默认10行。tail -n +35 /etc/passwd表示从35行开始一直显示到最后。
    tail -f  # 动态的查询文件。例如进行日志监控等。

    4)文件夹操作

    mkdir  # 创建文件夹。例如mkdir /zz,在根目录下创建文件夹zz。
    mkdir -p  # 递归的创建多层文件夹。例如mkdir -p /kk/123,即在根目录下创建kk文件夹,并在kk里面创建123文件夹。
    rmdir  # 删除一个目录,但是如果目录有多层的话,就无法删除。这时我们可以使用rm命令来进行删除。
    rm -r  # 递归的删除一个目录,即直接删除该目录和目录下所有内容。
    rm -rf   #递归强制删除,千万不要使用rm -rf /,会导致系统崩溃。

    5)复制剪切操作

    cp  # 复制文件或文件夹。cp /hello /usr/hello2,把根目录下的hello文件复制到/usr下,并命名为hello2。可以同时拷贝多个文件:cp /hello /hello2 /usr,把根目录下的hello和hello2拷贝到/usr目录下。
    cp -p  # 默认拷贝时只会拷贝文件的内容,文件的属性,例如创建时间等默认是不拷贝的。使用-p选项可以拷贝属性。
    cp -rf  # 强制拷贝文件和文件夹。
    cp -rfp  # 强制拷贝文件和文件夹,并拷贝属性。
    cp -a  # -a表示归档,相当于-rfp都包含了。
    mv  # 移动文件或文件夹到另一个路径,即剪切。

    ====

  • 相关阅读:
    android viewpager嵌套使用photoview异常问题
    android mvp设计模式
    android webview处理h5打开本地文件浏览器的功能
    使用python进行新浪微博粉丝爬虫
    android之ViewPager修改滑动速度
    我眼中的“阿里月饼事件”
    奄奄一息雏鸟
    RPC(远程过程调用)的应用
    对于开源菜谱的思考
    我跟360上网导航的过招
  • 原文地址:https://www.cnblogs.com/leokale-zz/p/12531321.html
Copyright © 2011-2022 走看看