zoukankan      html  css  js  c++  java
  • 4、linux目录结构

    一、目录结构

    /:  所有linux操作系统的顶点目录,不像windows,每个分区都有一个顶点目录
    /boot   存放系统启动时相关的文件,比如kernel内核,grub引导菜单.(不要删除.)
    /bin    存放的都是命令,但仅普通用户能执行
    /sbin   超级管理员能执行的命令. 
    /home   存放普通用户的家目录
    /root   超级管理员的家目录,普通用户是无法进入
    /etc    存放配置文件的目录,
     /etc/hostname 主机名
     /etc/hosts 本地解析域名一种方式
     /etc/sysconfig/network-script/ifcfg-*  网卡的配置文件
    /dev    设备目录,硬盘硬盘的分区光盘.....
     /dev/null  黑洞,接收所有的东西,只进不出
     /dev/zero  摇钱树,可以生产源源不断的数据
     /dev/random    产生随机数的一个设备
     /dev/pts/0 虚拟的Bash Shell终端,提供给远程用户使用 0,代表一个终端 1代表2个终端 以此类推
    /usr    类似于windows的C盘下面的windows目录
     /usr/lib   共享库文件,后缀都是so结尾, share object
     /usr/lib64 共享库文件64位,后缀都是so结尾, share object
     /usr/local 早起大家都把软件放在这个目录下,和windows C:ProgramFile
     /usr/bin
     /usr/sbin
    /var    存放一些可变化的内容,比如/var/log日志,可以人为让其发生变化,也或者是随着时间推移产生变化
    /tmp    存放临时文件,无论哪个用户都可以放
    /proc   反馈当前运行的进程的状态信息.
    /run    存放程序运行后所产生的pid文件
    /media  
    /mnt    提供挂载的一个目录
    /opt    早期第三方厂商的软件存放的目录.
    /srv    物理设备产生的一些文件

    二、路径

    1、路径就是对文件进行定位的一种方式。

    [root@www /]# cd /usr/  #进入到/usr目录下
    [root@www usr]# #cd lib64/  #进入到当前usr目录下lib64目录(这种常用)
    [root@www usr]# cd ./lib64/ #进入到当前usr目录下lib64目录
    [root@www lib64]# pwd   #打印当前所在的工作目录
    /usr/lib64
    [root@www lib64]# cd .././  #..回退到上一级目录/usr .当前目录(所有不会发生变化)
    [root@www usr]# cd ./lib64/
    [root@www lib64]# cd ../../ #../../ 连续回退两次目录
    [root@www /]# pwd   #打印当前所在的工作目录
    /

    2.那什么是绝对路径,什么又是相对路径呢?

    绝对路径: 只要从/开始的路径,比如ls
    /home/alice/file
    相对路径: 相对于当前目录来说,比如 a.txt ./a.txt ../bob/a.mp3 [加入: 此时在目录/home/alice]

    [root@www /]# ls /etc/sysconfig/ #绝对路径
    [root@www /]# cd etc/sysconfig/ #相对路径
    
    [root@www sysconfig]# pwd   #查看我当前在哪
    /etc/sysconfig 
    [root@www sysconfig]# #cd /var/log/ #如果我要进入/var/log目录,可以使用相绝对路径
    [root@www sysconfig]# cd ../../var/log/  
    [root@www log]# pwd
    /var/log

    三、命令

    1、cd 改变目录

    # cd 绝对路径 cd /etc/hostname
    # cd 相对路径 cd test/abc cd . cd ..
    -------------------------------------
    # cd #切换目录,例: cd /etc
    # cd ~ #切换回当前用户的家目录,注意:root和普通用户是否有所不同吗?
    # cd - #切换回上一次所在的目录
    # cd . #代表当前目录,一般在拷贝、移动等情况下使用 cp /etc/hostname ./
    # cd .. #切换回当前目录的上级目录

    cd示例
    [oldboyedu@www ~]$ cd /etc/sysconfig/network-scripts/ 
    [oldboyedu@www network-scripts]$ pwd
    /etc/sysconfig/network-scripts
    [oldboyedu@www network-scripts]$ cd
    [oldboyedu@www ~]$ pwd
    /home/oldboyedu

    cd ~示例
    [oldboyedu@www ~]$ cd /etc/sysconfig/network-scripts/
    [oldboyedu@www network-scripts]$ pwd
    /etc/sysconfig/network-scripts
    [oldboyedu@www network-scripts]$ cd ~
    [oldboyedu@www ~]$ pwd
    /home/oldboyedu

    2、touch 创建文件

    # touch file #无则创建,有则修改时间
    # touch file2 file3
    # touch file5 /home/oldboyedu/file4 
    # touch file{a,b,c} #a和b和c {}集合,等价 touch filea fileb filec
    # touch file{1..10} #touch file1 file2 file3 file..Number
    # touch file{a..z}  #a-z   
    
    [root@www ~]# touch /home/tt/file.txt  #报错提示,代表/home/没有tt这个目录
    touch: cannot touch '/home/tt/file.txt': No such file or directory

    3、目录创建命令mkdir ->make directory

    # 选项:
    -v 显示详细信息  
    -p 递归创建目录
    # mkdir dir1
    # mkdir /home/od/dir1 /home/od/dir2 -pv
    # mkdir -v /home/od/{dir3,dir4} 
    # mkdir -pv /home/od/dir5/dir6
    # mkdir -pv /home/{od/{diu,but},boy}
    
    
    [root@www ~]# mkdir /home/oldboyedu/tt/dir1    #在/home/oldboyedu/tt/目录不存在
    mkdir: cannot create directory '/home/oldboyedu/tt/dir1': No such file or directory
    
    [root@www ~]# mkdir -pv /home/oldboyedu/tt/dir1    #-p递归 -v:显示创建的效果
    mkdir: created directory '/home/oldboyedu/tt'
    mkdir: created directory '/home/oldboyedu/tt/dir1'
    
    [root@www ~]# mkdir /home/oldboyedu/tt/dir1    #如果目录已经存在,重复执行会报错
    mkdir: cannot create directory '/home/oldboyedu/tt/dir1': File exists
    [root@www ~]# mkdir -p /home/oldboyedu/tt/dir1 #如果希望重复创建文件不提示,加上-p选项即可

    4、tree

    [root@www ~]# yum install tree -y
    
    选项:  
    -L level级别   
    -d 只看目录,不看其他
    [root@www ~]# tree -L 1 /  tree /home/oldboy -L 2 -d

    5、复制copy --->cp

    #选项: 
    -v:详细显示命令执行的操作 
    -r: 递归处理目录与子目录 
    -p: 保留源文件或目录的属性
    
    [root@www ~]# cp --help
    Usage: cp [OPTION]... [-T] SOURCE DEST
      or: cp [OPTION]... SOURCE... DIRECTORY
      or: cp [OPTION]... -t DIRECTORY SOURCE...
    Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.
    
    # cp file /tmp/file_copy
    # cp name /tmp/name #不修改名称
    # cp file /tmp/ #不修改名称
    # cp -p file /tmp/file_p #-p保持原文件或目录的属性
    # cp -r /etc/ /tmp/ #复制目录需要使用-r参数, 递归复制
    # cp -v /etc/hosts /etc/hostname /tmp #拷贝多个文件至一个目录
    # cp -v /etc/{hosts,hosts.bak}
    # cp -v /etc/hosts{,-org}

    6、move移动

    [root@www ~]# mv --help
    Usage: mv [OPTION]... [-T] SOURCE DEST
      or: mv [OPTION]... SOURCE... DIRECTORY
      or: mv [OPTION]... -t DIRECTORY SOURCE..
    
    # mv file file1 #原地移动算改名,可以修改文件或者修改目录
    # mv file1 /tmp/ #移动文件至tmp目录
    # mv /tmp/file1 ./ #移动tmp目录的文件至当前目录
    # mv dir/ /tmp/ #移动目录至/tmp目录下
    # touch file{1..3}
    # mv file1 file2 file3 /opt/ #移动多个文件或至同一个目录 mv file{1..3} /opt
    
    # mkdir dir{1..3}
    # mv dir1/ dir2/ dir3/ /opt/ #移动多个目录至同一个目录

    示例:
    [root@www ~]# mv file3 file4 file5 /tmp/ #将当前/root目录下的file3 4 5 移动到/tmp
    [root@www opt]# mv /tmp/file1 ./ #移动/tmp目录下面的file1至当前用户所在的/opt目录下
    
    [root@www opt]# cd /home/oldboyedu/
    [root@www oldboyedu]# mv /tmp/file3 ../
    [root@www oldboyedu]# ls /home/
    
    [root@www ~]# mv -t /tmp/ filea fileb ./filec
    [root@www ~]# ls /tmp/file{a..c} 
    /tmp/filea /tmp/fileb /tmp/filec
    
    [root@www ~]# mv file2 /tmp123 #如果目录的目录没有在结尾增加/,同时这个目录页不存在,移动文件到/目录改名
    [root@www ~]# ls /tmp123 
    /tmp123
    [root@www ~]# mv file3 /tmp123/    #如果移动的目录目录结尾增加了/ 那么系统始终会认为目标是一个目录
    mv: failed to access '/tmp123/': Not a directory

    7、删除rm remove

    #选项:-r: 递归 -f: 强制删除(alias别名,默认会提示是否删除) -v: 详细过程
    
    # rm file.txt #删除文件, 默认rm存在alias别名,rm -i所以会提醒是否删除文件
    # rm -f file.txt #删除文件, 不提醒
    
    # rm -r dir/ #递归删除目录,会提示
    # rm -rf dir/ #强制删除目录,不提醒(慎用)
    
    --------------示例---------------
    #1.rm删除示例
    # mkdir /home/dir10
    # touch /home/dir10/{file2,file3,.file4}
    # rm -f /home/dir10/file* //不包括隐藏文件 *代表所有的意思
    # ls /home/dir10/ -a
    . .. .file4
    
    #2.rm删除示例2
    # touch file{1..10}
    # touch {1..10}.pdf
    # rm -rf file* 
    # rm -rf *.pdf
    
    
    删除不提示的方法
    [root@www ~]# /bin/rm file9
    [root@www ~]# 
    m file10
    [root@www ~]# rm -f filed
    
    注意:
     1.删文件,最好不要添加-r参数, 比如: rm -f file
     2.删文件时,使用* 需要注意,尽可能先用ls 取精确匹配要删除的文件,然后再使用rm -f删除




  • 相关阅读:
    Leetcode143. Reorder List重排链表
    Leetcode93. Restore IP Addresses复原IP地址
    Leetcode92. Reverse Linked List II反转链表
    Leetcode970. Powerful Integers强整数
    Leetcode931. Minimum Falling Path Sum下降路径最小和
    2019个人计划与Flag与期望
    排查问题-查看日志的正确打开方式
    Vuex-状态管理模式
    Git 常用操作(二)
    Hive:HQL和Mysql:SQL 的区别
  • 原文地址:https://www.cnblogs.com/Forever-x/p/8cc1eac829813c0ce6d2adc7675b3cf6.html
Copyright © 2011-2022 走看看