【linux_笔记】Linux目录结构以及目录、文件管理命令

学习资源来自:www.magedu.com

学习记录过程中难免出现错误,如有发现,还望大神们指出。

file:检查文件类型
    示例:file /root

可执行二进制文件的存储格式:
    Windows:PE
    Linux:ELF

文件系统是内核的主要功能之一,主要目的是实现本机上的某一个分区上的文件管理的,文件系统一般而言对于磁盘来说是以分区为单位进行交互的,在整个系统上,所有的文件系统都必须同属于整个系统级别的root.

rootfs:根文件系统,对于Linux系统而言,每一个文件都必须是根文件系统下的某一个路径,都必须要
通过根文件系统才能访问。

整个文件系统分为目录和文件,除了目录都是文件,所有的文件都存储在目录中,所有的文件都能通过目录查找到。

FHS:文件系统层级标准,规定Linux发行版应该创建一些目录用于存储特定的文件,所以无论redhat、suse还是debian基本上都会有这些目录,而且文件也都是近似的。
    
ls /:查看整个文件系统上根目录下的所有第一级子目录。
    /boot(redhat5):系统启动相关文件,如initrd(ramfs-redhat6)、vmlinuz —— 这两个文件是操作系统启动时主要用到的内核以及暂时性的小型linux,以及grub(bootloader)—— 引导加载器
    /dev:设备文件 —— linux重要思想:一切皆文件
        一个设备需要有设备文件才能被linux所访问
        设备文件类型:
            块设备:可以实现随机访问的设备,按数据块为单位。
            线性设备:实现线性访问,按字符为单位 —— 鼠标,显示器
            设备号:主设备号(major)和次设备号(minor)
    /etc:配置文件(系统上大多数程序的配置文件)存放的位置。
    /home:用户的家目录,每一个用户的家目录通常默认为/home/USERNAME
    /root:管理员的家目录(不建议使用root用户直接登录)
    /lib:库文件(库不是可执行文件——没有执行入口,不能单独执行)
        静态库:.a —— 程序直接包含库文件,便于程序单个文件管理
        动态库:.so(shared object) —— 程序和库文件是独立的,多个程序可以使用同一个库文件,有利于减少内存的占用。
        /lib/modules:内核模块文件
    /media:挂载点目录 ,移动设备,比如:U盘、光盘等。
    /mnt:挂载点目录 ,额外的临时文件,比如:第二块硬盘
        挂载的过程:把某个设备跟当前文件系统上的某个目录建立关联的过程
    /misc:杂项
    /opt:可选目录,早期的第三方程序安装目录
    /proc(与调优和系统的性能数据的监控有关):伪文件系统,内核的映射文件,大多数文件都是内核中的可调参数或者内核的工作统计数据。例如:网卡接收和发送了多少个数据包的统计数据
    /sys(调优——修改磁盘调度队列):伪文件系统,跟硬件设备相关的属性映射,通常用于实现硬件设备的管理,尤其是像硬盘这样的存储设备。
        伪文件系统:关机后目录里面是空的,开机后目录里就会有映射文件。
    /tmp:临时文件系统(/var/tmp),存放公共的、可以被其他用户查看到的临时文件,每隔一个月自动清理。每个人都可以在里面创建文件,但每个人只能删除自己的文件,不能删除别人的文件。
    /var:可变化的文件,例如:缓存、锁文件、日志文件、用户邮件的转存位置……
    /bin(binary):可执行文件,所有的命令都在这个路径下——用户命令
    /sbin:管理命令
    /usr(universal shared read-only):全局的共享的只读文件,存放只读文件
        /usr/bin
        /usr/sbin
        /usr/lib
        /usr/local(并不是必须的):第三方软件的安装路径
            /usr/local/bin
            /usr/local/sbin
            /usr/local/lib
    
文件命名规则:
    1、文件名长度不能超过255个字符;
    2、不能使用/当文件名,—— 其一、/是用来当根的,其二、/在整个路径中作为路径分隔符
    3、严格区分大小写
    
相对路径:相对于当前位置而开始的文件查找路径。
绝对路径:由根开始的文件查找路径。
    
目录管理:列出目录内容、显示目录、切换目录、创建目录、删除目录
            ls:列出目录内容
            cd:切换目录
            pwd:显示当前目录
            mkdir:创建空目录    /root/x/y/z —— 创建目录是z
                -p:自动补充缺失的父目录
                -v(verbose):详细信息     —— mkdir -pv /root/m/n/q
                tree:查看目录树
                示例:ls
                      mkdir x
                      ls
                      mkdir x/y
                      mkdir x/y/z
                      tree x
                      在同一目录下同时创建多个目录
                          mkdir -pv /mnt/test/x/m /mnt/test/y
                          ||
                          mkdir -pv /mnt/test/{x/m,y} —— 花括号展开(命令行展开)
                      在/mnt/test2/下创建目录:
                          mkdir -pv /mnt/test2/{a_b,a_c,d_b,d_c}
                          ||
                          mkdir -pv /mnt/test2/{a,d}_{b,b} —— (a+d)(b+c)=ab+ac+db+dc
                删除目录:rmdir (remove directory) —— 只能删除空目录以及一脉相承的目录(-p)
                    示例:rmdir /mnt/test2 —— 无法删除test2目录
                          rmdir /mnt/test2/a_b —— 删除成功
                          rmdir -p /mnt/test2/a_c —— a_c删了,test2未删除
                          tree x
                          rmdir -p /root/x/y/z —— x,y,z都被删除
                          
            文件管理:创建、删除、查看、编辑……
                文件创建和删除:—— Linux下文件和目录是不能重名的,Windows下也是(Windows下创建的任何文件都是有后缀的)。
                    touch:创建文件
                    示例:touch a
                          ls
                          file a
                          mkdir a —— 失败
                          mkdir x
                          touch x.doc —— 成功
                          man touch —— touch是用来修改文件的时间戳的,默认如果文件不存在就自动创建文件。
                          man stat —— stat显示文件或文件系统的状态信息
                          stat a
                          date
                          touch a
                          stat a —— 时间戳全部改变
                          ls
                          touch -c c —— 如果文件不存在,不创建文件
                          ls
                          改变文件时间戳:
                          -a 只改变访问时间
                          -m 只改变修改时间
                          touch -a a —— 访问时间和改变时间改变,修改时间未改变
                          touch -m a —— 最近一次的修改时间和改变时间改变,访问时间未改变
                          按指定时间修改:-t 年月日小时分钟.秒钟
                          touch -m -t 201212121212 a
                          stat a
                    创建文件,也可以使用文件编辑器 —— nano
                    示例
                        nano hello
                            This is a test file
                            根据提示保存文件 —— ctrl+o回车

退出 —— ctrl+x

ls -lh
                        file hello
                    删除文件:rm —— 管理员下,rm是rm -i 的别名,防止误删文件
                              \rm —— 取消交互式信息
                        -i:交互式,提示交互信息 —— 是否真的要删除
                        -f:强制删除
                        -r:递归删除目录                            
                        rm -rf:强制递归删除目录,没有提示
                            管理员权限下绝对不能执行的命令!!:rm -rf / —— 删除根目录及根目录下的所有文件(所有数据都没了!)
                            所以不到万不得已的时候,尽可能不使用管理员直接登录。
                    示例
                        rm hello
                        y
                        ls -l
                        type rm  —— rm是rm -i 的别名
                        rm a
                        n
                        \rm a —— 在命令前加\,表示不使用别名,使用命令自身的意思(只对有别名的命令有意义)
                        ls
                        \ls
                        type ls —— ls 是 ls --color=tty 的别名
                        tree /mnt/test2
                        rm -rf /mnt/test2
                        ls /mnt
                文件的复制和移动
                文件的复制
                cp: copy,只能复制一个文件到一个文件或多个文件到一个目录,管理员下是cp -i的别名。
                cp file1 file2 file3:只有file3是目标
                cp SRC DEST    —— 源文件SRC复制到目标文件DEST
                    -r:复制目录及目录中的文件(递归复制)
                    -i:交互式,提示交互信息
                    -f:强行复制
                    -p:复制文件时保留这个文件原有的属主、数组、权限、以及时间戳。
                    -a:保留文件原有的所有属性——归档复制,常用于备份
                    -L:复制链接里的文件
                    -P:复制链接自身
                示例
                    cp /etc/passwd /tmp/ —— 把passwd这个文件以同样的文件名复制到tmp目录下(目标是一个已经存在的目录)
                    cp /etc/passwd /tmp/test
                    —— 如果test不存在,则将passwd复制到tmp上并重命名为test
                       如果test存在
                            test是文件:则提示是否覆盖
                            test是个目录:把passwd这个文件以同样的文件名复制到test目录下
                    源有多个,则目标一定是目录(tmp下没有abc文件):
                        cp /etc/passwd /etc/issue /etc/inittab /tmp/abc —— 提示abc不是目录无法执行
                    源只有一个,则目标可以不是目录(tmp下没有abc文件):
                        cp /etc/inittab /tmp/abc —— 将inittab复制到tmp并重命名为abc。
                    复制目录
                        cp /etc/init.d/ /tmp/ —— 失败,cp默认不能复制目录
                        cp -r /etc/init.d/ /tmp/hello
                            hello不存在:将把init.d复制到tmp下并命名为hello
                            hello存在并是个目录:将把init.d复制到hello下并命名为init.d
                            hello存在并是个文件:确认覆盖后将创建成一个hello的链接文件(指向当前文件的链接文件),当前目录下并没有这个文件,所以这个操作是错误的,覆盖不了。
                    su - student
                    cd /tmp
                    cp /etc/inittab /tmp/stu.inittab
                    ls /tmp
                    ls -l /tmp/stu.inittab
                    exit
                    cd /tmp
                    ls -l
                    cp stu.inittab root.inittab
                    ls -l
                    cp -p stu.inittab root.inittab.2
                    ls -l —— 比较root.inittab和root.inittab.2的不同
                    cp /etc/rc /tmp   —— rc是一个链接
                    ls -l /tmp     —— 复制的是链接指向的文件
                    cp -L /etc/rc /tmp/rc.2 —— 复制的是链接里的文件
                    ls -l /tmp
                    cp -P /etc/rc /tmp/rc.3 —— 保持链接
                    ls -l /tmp
                    cp /etc/{passwd,inittab,rc.d/rc.sysinit} /tmp/ —— 复制三个文件到目录tmp下
                    
                移动文件的移动(剪切):
                mv: move,可以直接操作文件和目录,管理员下是mv -i的别名。
                mv SRC DEST 和copy一样只有最后一个是目标
                mv -t DEST SRC —— 命令的另一种书写方式
                示例
                    cp /tmp/root.inittab /var/tmp/abc
                    file /var/tmp/abc
                    mv /tmp/hello/ /var/tmp/abc —— 失败,不能用目录去覆盖一个非目录文件
                    cd /var/tmp
                    pwd
                    ls
                    mv abc mn —— 相对路径(源文件和目标文件的路径一致,那么mv操作就是重命令)
                    ls
                    cd /tmp
                    pwd
                    ls
                    mv hello hi
                    ls
                另一个复制文件命令(不能复制目录):install
                    -d DIRECOTRY … :创建目录
                    SRC DEST:复制文件
                    -t DIRECTORY SRC…
                        -m:指定权限
                示例
                    install -d /tmp/{install.1,install.2} —— 在tmp目录下创建两个目录
                    ls /tmp
                    install  /etc/passwd /var/tmp/install.filed1
                    ls /var/tmp
                    ls -l /var/tmp/ —— 复制过来的passwd有执行权限
                    ls /etc/passwd -l —— 源文件并没有执行权限
                    file /etc/rc.d/
                    install /etc/rc.d/ /var/tmp —— 不允许复制目录
                    ls /var/tmp

时间: 2024-10-05 15:06:02

【linux_笔记】Linux目录结构以及目录、文件管理命令的相关文章

描述linux目录结构以及目录结构命名规定

描述linux目录结构以及目录结构命名规定第一个是根/目录,之后又很多分支,主要有:1./boot 常用于存放系统启动的目录 2./home系统默认的用户家目录,新增用户账号时,用户的家目录都存放在此目录下,~表示当前用户的家目录 3./etc 系统配置文件存放的目录,不建议在此目录下存放可执行文件,重要的配置文件有etc/profile.d; /etc/profile.HISTSIZE; /etc/issue; /etc/motd; /etc/DIR_CLORS 4./dev 存放linux系

Linux 磁盘结构之 --- fdisk分区命令

一.fdisk 的介绍  fdisk - Partition table manipulator for Linux ,译成中文的意思是磁盘分区表操作工具:其实就是分区工具 . fdsik 能划分磁盘成为若干个区,同时也能为每个分区指定分区的文件系统,比如linux .fat32. linux .linux swap .fat16 以及其实类Unix类操作系统的文件系统等:当然我们用fdisk 对磁盘操作分区时,并不是一个终点,我们还要对分区进行格式化所需要的文件系统:这样一个分区才能使用:这和

03 Linux的目录结构与常见文件管理

Linux目录结构 根文件系统rootfs用来实现整个文件的管理: 而Linux下的所有文件都需要通过根文件系统才能访问: FHS:Filesystem Hierarchy Standard文件层次化规范,所有的Linux系统都需要遵循FHS规定: / 根目录,所有文件都在根下!!! /boot 存放与系统启动的相关文件,如内核.initrd.以及grub(bootloader,启动加载项) initrd.img 磁盘镜像文件 vmlinux.el5 虚拟内存文件 /dev 设备文件存放的目录,

Linux基础三:linux目录结构和目录文件的浏览、管理及维护

目录文件的浏览.管理及维护(一) 1.Linux文件系统的层次结构 1)Linux文件系统的树状结构:在Linux或UNIX操作系统中,所有的文件和目录都被组织成一个以根节点开始的倒置的树状结构. 2)目录的定义:目录相当于Windows中的文件夹,目录中存放的既可以是文件,也可以是其他的子目录. 3)顶层根目录的表示:使用“/”来表示根目录 4)文件系统中的两个特殊目录: . 表示当前目录,即用户所在的工作目录 .. 表示父目录,即当前目录的上一层目录 2.Linux系统中的一些重要的目录 1

Linux 目录结构与目录操作

目录结构 Linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录"/",然后再次目录下再创建其他目录 在Linux系统中,一切皆文件 常见目录作用 / : 所有目录都在 /boot : boot 配置文件.内核和其它启动 时所需的文件 /etc : 存放系统配置有关的文件 /home : 存放普通用户目录 /mnt : 硬盘上手动 挂载的文件系统 /media : 自动挂载(加载)的硬盘分区以及类似CD.数码相机等可移动介质. /cdrom : 挂载光盘? /opt

XXLii_7.21笔记 Linux基础_安装及基础命令

一.Linux安装之虚拟机设置 1.打开虚拟机,在首页点击"创建新的虚拟机". 2.    在新建虚拟机向导里设置,如下图勾选"典型"然后下一步. 注:"典型"表示后续的选择硬件的操作不用自己更改,使用默认. "自定义"表示需要更改虚拟机硬件兼容. 3.这里选择第三项,"稍后安装操作系统". 注: 第一项为物理的光驱网盘安装 4.选择你需要安装的linux发行版本. 5."最大磁盘大小"

linux自学笔记--linux网络配置、基础网络命令

1.网络配置 /etc/sysconfig/net-script/ifcfg-* DEVICE:接口名 UUID:设备唯一标示 HWADDR:网卡地址 ONBOOT:是否开机自启 BOOTPROTO:static|none|dhcp TYPE:Ethernet|Bridge DNS1:dns地址 PEERDNS:如果为dhcp模式,是否自动分配dns地址,覆盖手动 IPADDR:ip地址 NETMASK:子网掩码 GATEWAY:网关地址 2.常用网络命令 ip: ip link show ip

Linux 文件系统的目录结构

 Linux下的文件系统为树形结构,入口为/ 树形结构下的文件目录: 无论哪个版本的Linux系统,都有这些目录,这些目录应该是标准的.各个Linux发行版本会存在一些小小的差异,但总体来说,还是大体差不多. 1. / 文件系统的入口,最高一级目录: 2. /bin 基础系统所需要的命令位于此目录,是最小系统所需要的命令,如:ls, cp, mkdir等.这个目录中的文件都是可执行的,一般的用户都可以使用. 3. /boot 包含Linux内核及系统引导程序所需要的文件,比如 vmlinuz i

第二周--linux目录结构及其命名规定,ls命令的使用技巧

第一章: 描述linux目录结构以及目录结构命名规定 下图为Linux系统中标准的目录机构图: Linux系统中都是单根 / 目录结构 A: /boot 存放启动所需的文件和Linux的内核 B: /dev ------------- 实际检验 -------------------------------- [[email protected] ~]# ll /dev/null ----> 表黑洞crw-rw-rw-. 1 root root 1, 3 Apr 8 21:12 /dev/nul