Linux目录结构与文件管理

目录

一.Linux系统的组成

  (一) 内核

(二) shell

二.目录结构

三.目录管理

四.文件管理

(一)目录管理

(二)查看文件内容

(三)创建文件

(四)删除文件

(五)移动文件

(六)复制文件

五.编辑文件内容

(一)命令模式

(二)插入模式

(三)视图模式

(四)视图块模式

(五)末行模式

六,系统信息查看与修改

(一)主机名

(二)时间查看

(三)显示输出系统信息    uname

(四)文件的详细属性查看

(五)连接文件   in

(六)生成指定容量的文件     dd

(七)查找

(八)容量

(九)数量   wc

(十)过滤     grep

总结




一.Linux系统的组成


  (一) 内核


        (1)进程管理:在 Linux 中,所有运行的程序都是作为进程来执行的,内核负责创建、调度、管理和终止进程。
        (2)存储管理:Linux 内核管理物理内存、虚拟内存、交换空间等存储资源,并提供对它们的分配、回收和访问控制等功能。
        (3)文件系统:Linux 内核通过文件系统提供对文件和目录的管理和访问。它支持多种文件系统类型,包括 ext4、Btrfs、XFS、NTFS 等。
        (4)网络协议栈:Linux 内核支持常见的网络协议,如 TCP/IP、UDP、HTTP 等,提供了套接字(socket)API,方便应用程序进行网络通信。
        (5)设备驱动程序:Linux 内核通过设备驱动程序实现对硬件设备的管理和操作。它支持多种设备类型,包括网络设备、磁盘驱动器、声卡、USB 设备等。
        (6)系统调用接口:Linux 内核通过系统调用接口向用户态程序暴露其功能和服务。应用程序可以通过系统调用接口请求内核提供各种服务。
        
   

(二) shell

Shell是一种命令语言解释器,是一种在操作系统中直接与用户交互的程序。它通过读取用户输入的命令,并将其翻译成操作系统能够理解的语言来实现与操作系统交互,并将输出结果显示给用户。Shell可以简化命令和任务的执行,提高效率和自动化程度。
    (三)用户操作或应用程序
    (四)基本构成


        (1)用户态:Shell是一种命令语言解释器,是一种在操作系统中直接与用户交互的程序。它通过读取用户输入的命令,并将其翻译成操作系统能够理解的语言来实现与操作系统交互,并将输出结果显示给用户。Shell可以简化命令和任务的执行,提高效率和自动化程度。
        (2)内核态:内核态下的程序运行在更高的特权级别下,可以访问系统所有资源和硬件设备,执行更高特权级别的指令,负责处理操作系统的各种核心服务。当一个进程需要使用系统资源或者进行系统调用时,需要切换到内核态执行相关代码,并经由内核态完成后再次返回用户态。切换模式的开销比较大,因此尽量减少用户态和内核态之间的频繁切换是提高系统性能的一个关键点。
    


二.目录结构

/root    root用户的家目录
/home  普通用户家目录的存储目录
/etc   系统及应用程序的配置文件的默认存放目录

/usr
    (1) local     自定义安装的应用程序存储目录
    (2)bin        存储所有用户都有权限操作的命令
    (3)sbin      存储只有管理员有权限操作的命令

/sbin    /usr/sbin的连接文件
/bin    /usr/bin的连接文件
/dev    设备文件存储目录
/proc    设备信息文件及内核配置文件存储目录
/run    进程PID及相关文件存储目录

/var
    (1)  log          系统及硬件或程序日志存储目录
    (2)spool        mail            用户邮件存储目录
    (3)cache       缓存存放目录
    (4)run           是/run的连接文件

/lib        32位依赖库
/lib64    64位依赖库
/boot    内核文件及启动信息文件存储目录
/sys     操作系统及硬件相关信息及日志、状态等文件的存储目录
/mnt     测试挂载的空目录
/opt      一般会将拷贝的文件放置此目录
/media    外部媒体设备默认挂载目录


三.目录管理

(一)切换目录

cd        返回当前登录用户的家目录

cd..      返回上级目录

cd~      返回当前登录用户的家目录

cd-       返回上次跳转到当前的目录的目录

cd /path 查看指定目录的内容

 (二)查看目录内容

ls                      查看当前目录内容

ls /path             查看指定目录内容

ls的选项

(1)-l               以长格式选项显示目录内容

(2)-t              按照时间戳排序,与-l结合使用

(3)-a              显示所有隐藏文件

                          隐藏文件以.开始

(4)-A             显示除.和..之外的隐藏文件

(5)-R            递归显示目录内容

(6)-h             以人性化方式显示

(7)-r             翻转排列,可以与-t结合使用

(8)-d            查看目录本身,一般与-l结合使用

(三)创建目录

mkdir            

命令:mkdir /path/dirname

选项:-p     递归创建目录

mkdir -p dirname/child _dirname

(四)删除目录

rm

选项  -i   交互式询问是否操作

         -r   递归删除目录及子文件

         -f   强制删除

(五)别名命令

查看系统所有别名                 alias

创建别名                               alias 自定义命令字=‘系统命令 选项’

取消别名                               unalias 自定义命令字=‘系统命令 选项’

(六)移动目录                    

重命名  

当前目录从命名                    mv  old_dirname new_dirname

移动后重命名                       mv /source_path/old_dirname /dest_path/new_pathdirname

移动                                     move /source_path/dirname /dest_path/

(七)复制目录   

cp

选项   

-i                                         当目标文件已存在时,交互式询问是否操作

-r                                         递归复制目录及子目录

-p                                        保留属主及属组权限复制目录

-f                                         当目标文件存在,先删除后复制


四.文件管理

(一)目录管理

(1)切换目录

切换目录
    cd         返回当前登录用户的家目录
    cd ..       返回上级目录
    cd ~       返回当前登录用户的家目录
    cd -        返回上次跳转到当前目录的目录
    cd /path        切换到指定目录

(2)查看目录内容

ls     查看当前目录内容
ls /path    查看指定目录内容

ls的选项
    -l        以长格式选项显示目录内容
    -h        以人性化方式显示
    -a       显示所有隐藏文件
              隐藏文件以.开始
    -A        显示除.和..之外的隐藏文件
    -R       递归显示目录内容
    -t        按照时间戳排序,与-l结合使用
              默认降序
    -r        翻转排列,可以与-t结合使用
    -d       查看目录本身,一般与-l结合使用

(2)创建目录

    mkdir
    mkdir /path/dirName
    选项   -p    递归创建目录      mkdir -p dirName/child_dirName

(3)删除目录

    rm
    选项        -i       交互式询问是否操作       

                  -r       递归删除目录及子目录   

                  -f            强制删除

(4)别名名称

查看系统所有别名    alias
创建别名    alias 自定义命令字='系统命令  选项'
取消别名    unalias 自定义命令字

(5)移动目录

重命名
    当前目录重命名        mv  old_dirName  new_dirName
    移动后重命名        mv  /source_path/old_dirName  /dest_path/dirName
移动    mv /source_path/dirName  /dest_path/

(6)复制目录

    cp
    选项    
        -i            当目标文件已存在时,交互式询问是否操作
        -r            递归复制目录及子目录
        -p           保留属主及属组权限复制目录
        -f            当目标文件存在,先删除后复制

(二)查看文件内容
 

(1)cat
    将文件内容直接打印到终端(标准输出)
    选项        -n            显示行号

(2)more    将文件内容分页显示到终端
    用法       enter            向下翻行
                  空格            向下翻页
                  退出           q
    缺点      只能向下,不能向上        不支持查找

(3)less
    将文件内容分页显示到终端
    用法       翻行      enter         方向键       

                  翻页      空格     pgup    pgdn
        返回文件首页    g       home键
        跳转到文件末尾   G    end键
        根据关键字查找    /关键字   n向下查找    N向上查找
        退出      q

(4)head
    显示文件内容的前几行
    默认显示前10行
    选项
        -n   要显示的行数
        -     要显示的行数

(5)tail
    显示文件内容的后几行
    默认显示10行
    选项
        -n 要显示的行数
        -要显示的行数
        -f          动态显示文件内容
                    监视文件内容的变化
        应用场景      动态监视日志

(6)管道符
       |  将前一个命令处理的结果交给后一个命令进行再次处理
 

(三)创建文件

touch    空文件    touch /path/fileName
重定向符号

  正确重定向
        >    覆盖
        >>   追加
  错误重定向
        2>    覆盖
        2>>   追加

   混合重定向
        &>     覆盖
        &>>     追加
echo
    非空文件
    echo > /path/fileName
    echo 内容 > /path/fileName
vim
    默认空文件
    vim /path/fileName
    :wq!

(四)删除文件

rm   选项
        -i     交互式询问是否操作
        -f     强制删除

(五)移动文件

重命名
当前目录重命名
 mv  old_fileName  new_fileName
 移动后重命名
 mv  /source_path/old_fileName  /dest_path/fileName
移动
 mv /source_path/fileName  /dest_path/

(六)复制文件

cp
 选项    
        -i      当目标文件已存在时,交互式询问是否操作
        -p      保留属主及属组权限复制文件
        -f       当目标文件存在,先删除后复制

五.编辑文件内容

vim 模式类型

(一)命令模式


    vim进入文件的初始模式
  

 用法     跳转到文件末尾    G
  

  返回文件首行     gg
 

   同行跳转
    跳到首字符    home键          ctrl  + ^
    跳到尾字符    end键        ctrl + $
 

   复制行
    单行    yy
    多行    要复制的行数yy
              从光标所在行开始
 

   粘贴行
            p        将光标移动到想要粘贴位置的上一行
            P        将光标移动到想要粘贴位置的下一行
        撤销操作    u     注意:进行保存且退出后无效
    

    删除行
       单行       dd
       多行    要删除的行数dd
                  从光标所在行开始
 

       同行删除部分字段   D      从光标所在字符到行尾
  

     替换某一个字符    r     光标所在字符
  

     删除单个字符    del键     光标所在字符的后一个字符
    

    根据关键字查找    /关键字    n向下查找    N向上查找
     

   保存且退出     ZZ
  

    进入其他模式    插入模式     末行模式

(二)插入模式

进行文件内容编辑 

进入插入模式
    在命令模式下输入
    a     在当前光标的后一个字符插入
    o    在当前光标的下一行插入
    i     在当前光标所在字符插入
        返回命令模式时会将光标迁移一个字符
    A        在光标所在行的尾字符后插入
    I(大写i)       在光标所在行的首字符插入
    O        在当前光标的上一行插入
返回命令模式    ESC

(三)视图模式
 

   进行行选中
    v

(四)视图块模式
 

   进行列选中
    ctrl + v
    注释      #


    常用操作
       批量删除注释   ctrl + v   

       利用上下方向键选中   

       del
      

 批量增加注释
            ctrl + v
            利用上下方向键选中
            输入 大写i  I
            输入#
            按两次ESC

(五)末行模式


    保存、退出及字符串替换    :
    操作
        保存          :w
        不保存退出      :q
        保存退出           :wq        :x
        强制       !
        设置密码并保存退出       :X       输入密码        :wq
        取消密码       :X       enter 回车两次          :wq
        设置行号     :set  nu       退出后失效
        取消行号       :set nonu
        取消高亮    :nohl
        跳转到指定行      :行号


        字符串匹配替换
            全文替换
                首个匹配替换
                    :%s/keyword/neword/
                所有匹配替换
                    :%s/keyword/neword/g


            指定行替换
                首个匹配替换
                    :指定行号s/keyword/neword/
                所有匹配替换
                   :指定行号s/keyword/neword/g


            范围替换
              首个匹配替换
             :起始行号,结束行号s/keyword/neword/
              所有匹配替换
              :起始行号,结束行号s/keyword/neword/g


六,系统信息查看与修改

(一)主机名


   (1) 临时修改,重启失效        hostname  new_hostname
            刷新           bash

Linux目录结构与文件管理_第1张图片
   (2) 永久修改
        命令            hostnamectl set-hostname  new_hostname
            刷新            bash
        配置文件          vim /etc/hostname(重启生效)

 

 Linux目录结构与文件管理_第2张图片

(二)时间查看

(1)date(系统时间)
应用场景    为文件添加时间戳
语法    date  [选项] [+格式]
格式    %Y         年
           %m        月
           %d         日
           %H        小时
           %M        分钟
           %S         秒
创建带有时间戳的文件
    touch `date +%Y%m%d%H%M%S`_test.txt
    反撇号        ``    调用命令的执行结果

 

(2)hwclock(硬件时间)

 bios中的时间
 主板的bios电池

 

(三)显示输出系统信息    uname

应用场景:查看主机名    查看内核版本     查看32  64位平台

选项: -a 显示所有信息

 

-n 查看主机名

 

-r查看内核版本

 

(四)文件的详细属性查看

stat   作用:查看时间戳    查看数字权限

语法:stat /path/文件名Linux目录结构与文件管理_第3张图片

 

(五)连接文件   in

应用场景:命令优化

语法:ln [-s]  /path/sourceFile  /path/destnationFile

选项:-s     生成软连接

类型:软连接

Linux目录结构与文件管理_第4张图片   

硬连接

Linux目录结构与文件管理_第5张图片

 

 

软连接:目录文件都可以,相当于快捷方式,属性变化,修改一方,内容同步,源文件删除或移动,连接文件不可用

硬连接:不能是目录,属性完全一样,修改一方内容同步,原文件删除或移动,连接文件不受影响

(六)生成指定容量的文件     dd

语法:dd if=从哪个文件读取数据 of=将数据写到哪里 bs=每次写入的数据大小 count=总共写几次

案例:dd if=/dev/zero of=./txt5 bs=1mb count=5

(七)查找

 
(1)    find:
    概述 :查看满足一定条件的目录内容       默认递归查找
    语法:    find  path  条件选项  关键字

 

选项:

(2)  -name
        按照名字查找
        支持模糊匹配   

案例:
            查找/etc/所有以.conf结尾的文件
            find /etc -name '*.conf'
            *    表示所有Linux目录结构与文件管理_第6张图片

 

(3)-type
 文件类型
        f            普通文件
        d            目录
        b            块设备文件
        c            字符设备文件
        l            软连接文件

(4)-size
    单位  :      k           千字节
    符号:        没有      等于
                       +           大于
                       -            小于
    案例:       查找容量小于1024KB的文件       find ./ -size -1024k

(5)-user

(6)-group

(7)时间:

-amin   -atime  -mmin  -mtime  -cmin  -ctime

(八)容量


du    统计文件占用磁盘的大小
语法:        du  [-ash] [文件名或目录]
选项:        -a            统计所有


                   -s           统计总容量


                   -h            人性化显示


 案例:        1、统计/opt的总容量            du -sh /opt


                    2、统计/opt下的每个文件的大小            du -ah /opt

 Linux目录结构与文件管理_第7张图片

 

 

 

 

(九)数量   wc


    概述:输出文件中的行数、单词数、字节数
    应用场景: 日志文件的行数  用户数量
    选项:  -l       行数

 
                -w      单词数


                -c       字节数


                一个中文3个字节
                一个英文1个字节
                每一行算一个字节

 

 

 

(十)过滤     grep

(1)概述: 打印匹配给定模式的行  

应用场景:过滤错误日志  过滤配置文件

注意事项:先分析需要过滤的文件特征  总结过滤式需要的关键字

(2)选项:-n  在结果中显示行号

           -i  结果中忽略大小写

          -v  反向显示

(3)基础正则表达式:*表示所有  ^以后面字符开头  $以后面字符结尾 

(4)案例

1,过滤错误日志并显示行号

/var/log/messages

grep -n “error” /var/log/messagesLinux目录结构与文件管理_第8张图片

 

2,过滤MySQL数据库的配置文件,只看生效的配置

/etc/my.cnf

配置文件的注释 #  ^#

配置文件的空行  ^$

grep -v "^#" /etc/my.cnf |grep -v "^$"

Linux目录结构与文件管理_第9张图片

 

总结

Linux目录结构与文件管理有以下几个用处:

  1. 方便管理:了解Linux的目录结构可以帮助管理员更好地组织和管理文件,使得文件的查找、备份、恢复、迁移等工作更加高效。

  2. 提高效率:熟悉Linux的文件管理命令可以提高管理员的工作效率,例如通过使用ls命令查看当前目录下的所有文件和子目录,使用cd命令进入到指定目录等。

  3. 安全性:理解Linux的权限系统可以帮助管理员更好地控制用户对文件和目录的访问权限,从而提高系统安全性。

  4. 开发调试:在进行软件开发时,了解Linux的目录结构和文件管理方式可以帮助开发人员更好地组织代码和资源,并且在调试过程中也能够快速定位问题所在。

你可能感兴趣的:(python,开发语言)