Linux目录与文件管理

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


一、Linux目录

  • 根目录: 所有分区、目录、文件等的位置起点 整个树形目录结构中,使用一个独立的“/”表示
  • 常见子目录:
  • /root /bin /boot /dev /etc /home /var /usr /sbin

    一级目录功能(作用)
    /bin/存放系统命令,普通用户和 root 都可以执行。放在 /bin 下的命令在单用户模式下也可以执行
    /boot/系统启动目录,保存与系统启动相关的文件,如内核文件和启动引导程序(grub)文件等
    /dev/设备文件保存位置
    /etc/配置文件保存位置。系统内所有采用默认安装方式(rpm 安装)的服务配置文件全部保存在此目录中,如用户信息、服务的启动脚本、常用服务的配置文件等
    /home/普通用户的主目录(也称为家目录)。在创建用户时,每个用户要有一个默认登录和保存自己数据的位置,就是用户的主目录,所有普通用户的主目录是在 /home/ 下建立一个和用户名相同的目录。如用户 liming 的主目录就是 /home/liming
    /media/挂载目录。系统建议用来挂载媒体设备,如软盘和光盘
    /lib/系统调用的函数库保存位置
    /mnt/挂载目录。早期 Linux 中只有这一个挂载目录,并没有细分。系统建议这个目录用来挂载额外的设备,如 U 盘、移动硬盘和其他操作系统的分区
    /misc/挂载目录。系统建议用来挂载 NFS 服务的共享目录。虽然系统准备了三个默认挂载目录 /media/、/mnt/、/misc/,但是到底在哪个目录中挂载什么设备可以由管理员自己决定
    /opt/第三方安装的软件保存位置。这个目录是放置和安装其他软件的位置,手工安装的源码包软件都可以安装到这个目录中。不过笔者还是习惯把软件放到 /usr/local/ 目录中,也就是说,/usr/local/ 目录也可以用来安装软件
    /root/root 的主目录。普通用户主目录在 /home/ 下,root 主目录直接在“/”下
    /sbin/保存与系统环境设置相关的命令,只有 root 可以使用这些命令进行系统环境设置,但也有些命令可以允许普通用户查看
    /srv/服务数据目录。一些系统服务启动之后,可以在这个目录中保存所需要的数据
    /tmp/临时目录。系统存放临时文件的目录,在该目录下,所有用户都可以访问和写入。建议此目录中不能保存重要数据,最好每次开机都把该目录清空
  • 根(/)相当于一个入口,文件的总入口,也是唯一入口
  • bin (sbin) 二进制文件,可执行文件,也可能存在别处,默认使用较多所有用户软连接文件
  • sbin 管理员可使用的二进制文件
  • boot 系统内核、启动文件
  • dev 硬件文件(黄色)
  • etc 配置文件等同于windows 注册表,一般都是文本文件
  • run 运行的内存中文件
  • tmp 临时文件 -t
  • usr应用程序和操作系统相关的文件
  • var日志文件,数据变化的
  • home 普通用户的家目录的上级目录zhangsan目录会在 home
  • root系统管理员的目录上 /root
  • lib 动态库文件 类似于windows 的dll文件
  • proc 主要保存系统的内核、进程、外部设备状态和网络状态等
  • opt 第三方应用程序安装所在目录程序
  • media 可移动设备
  • mnt 默认挂载点

  • 二、查看及检索文件

    1.七种常见的文件类型

    文件类型说明
    -普通文件,包括纯文本文件、二进制文件、各种压缩文件等
    b块设备文件block,就是保存大块数据的设备,比如最常见的硬盘
    d目录文件directory,类似 Windows 系统中的文件夹
    c字符设备character,例如键盘、鼠标等
    l符号链接文件link,类似 Windows 系统中的快捷方式
    p管道文件pipe,其主要作用是解决多个程序同时存取一个文件所造成的错误
    s套接字文件socket,通常用于进程间的网络通信,一般隐藏在 /var/run/ 目录下

    2.查看及检索文件——cat命令

  • 作用:显示并连接文件内容
  • 基本格式:cat	[选项] 文件名...
    
  • 常用选项:
  • 选项效果
    -n显示行号,包括空行
    -s将所有的连续的多个空行替换为一个空行(压缩成一个空行)
    -b跳过空白行编号
    -A显示隐藏字符
  • 例如:
    查看一个文件内容
  • 在这里插入图片描述

  • 查看多个文件内容
  • 在这里插入图片描述

  • 反向查找多个文件内容
  • 在这里插入图片描述

  • 用-n对所有输出行数标号,包括空白行
  • 在这里插入图片描述

  • 使用-b对于空白行不编号,跳过空行
  • 在这里插入图片描述

  • 使用-s将所有的连续的多个空行压缩成一个空行
  • 在这里插入图片描述

  • 使用-A显示看不见的字符,隐藏字符
  • 在这里插入图片描述

  • 拓展:hexdump -查看非文本文件内容
  • [root@localhost /]# hexdump -C -n 512 /dev/sda
    00000000  eb 63 90 10 8e d0 bc 00  b0 b8 00 00 8e d8 8e c0  |.c..............|
    00000010  fb be 00 7c bf 00 06 b9  00 02 f3 a4 ea 21 06 00  |...|.........!..|
    00000020  00 be be 07 38 04 75 0b  83 c6 10 81 fe fe 07 75  |....8.u........u|
    00000030  f3 eb 16 b4 02 b0 01 bb  00 7c b2 80 8a 74 01 8b  |.........|...t..|
    00000040  4c 02 cd 13 ea 00 7c 00  00 eb fe 00 00 00 00 00  |L.....|.........|
    00000050  00 00 00 00 00 00 00 00  00 00 00 80 01 00 00 00  |................|
    00000060  00 00 00 00 ff fa 90 90  f6 c2 80 74 05 f6 c2 70  |...........t...p|
    00000070  74 02 b2 80 ea 79 7c 00  00 31 c0 8e d8 8e d0 bc  |t....y|..1......|
    00000080  00 20 fb a0 64 7c 3c ff  74 02 88 c2 52 be 05 7c  |. ..d|<.t...R..||
    00000090  b4 41 bb aa 55 cd 13 5a  52 72 3d 81 fb 55 aa 75  |.A..U..ZRr=..U.u|
    000000a0  37 83 e1 01 74 32 31 c0  89 44 04 40 88 44 ff 89  |7...t21..D.@.D..|
    000000b0  44 02 c7 04 10 00 66 8b  1e 5c 7c 66 89 5c 08 66  |D.....f..\|f.\.f|
    000000c0  8b 1e 60 7c 66 89 5c 0c  c7 44 06 00 70 b4 42 cd  |..`|f.\..D..p.B.|
    000000d0  13 72 05 bb 00 70 eb 76  b4 08 cd 13 73 0d 5a 84  |.r...p.v....s.Z.|
    000000e0  d2 0f 83 de 00 be 85 7d  e9 82 00 66 0f b6 c6 88  |.......}...f....|
    000000f0  64 ff 40 66 89 44 04 0f  b6 d1 c1 e2 02 88 e8 88  |d.@f.D..........|
    00000100  f4 40 89 44 08 0f b6 c2  c0 e8 02 66 89 04 66 a1  |.@.D.......f..f.|
    00000110  60 7c 66 09 c0 75 4e 66  a1 5c 7c 66 31 d2 66 f7  |`|f..uNf.\|f1.f.|
    00000120  34 88 d1 31 d2 66 f7 74  04 3b 44 08 7d 37 fe c1  |4..1.f.t.;D.}7..|
    00000130  88 c5 30 c0 c1 e8 02 08  c1 88 d0 5a 88 c6 bb 00  |..0........Z....|
    00000140  70 8e c3 31 db b8 01 02  cd 13 72 1e 8c c3 60 1e  |p..1......r...`.|
    00000150  b9 00 01 8e db 31 f6 bf  00 80 8e c6 fc f3 a5 1f  |.....1..........|
    00000160  61 ff 26 5a 7c be 80 7d  eb 03 be 8f 7d e8 34 00  |a.&Z|..}....}.4.|
    00000170  be 94 7d e8 2e 00 cd 18  eb fe 47 52 55 42 20 00  |..}.......GRUB .|
    00000180  47 65 6f 6d 00 48 61 72  64 20 44 69 73 6b 00 52  |Geom.Hard Disk.R|
    00000190  65 61 64 00 20 45 72 72  6f 72 0d 0a 00 bb 01 00  |ead. Error......|
    000001a0  b4 0e cd 10 ac 3c 00 75  f4 c3 00 00 00 00 00 00  |.....<.u........|
    000001b0  00 00 00 00 00 00 00 00  85 ca 09 00 00 00 80 20  |............... |
    000001c0  21 00 83 d5 89 8c 00 08  00 00 00 00 a0 00 00 d5  |!...............|
    000001d0  8a 8c 8e fe ff ff 00 08  a0 00 00 40 80 03 00 00  |...........@....|
    000001e0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
    000001f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 55 aa  |..............U.|
    00000200
    
    

    3.分页查看文件内容——more命令

    作用:全屏方式显示分页内容
    基本格式:more	[选项] 文件名...
    

    操作的方法:

    • List item

    • 按Enter键向下逐行滚动

    • 按空格键向下翻一屏

    • 按b键向上翻一屏

    • List item

    • 按q键退出

    下翻到最后一页后会自动退出

    4.分页查看文件内容——less命令

    作用:与more命令相同,但是扩展功能更多
    基本格式:less	[选项] 文件名...
    

    操作方法

    • 可以使用/ 查找 n向下 N向上查找
    • Page Up 向上翻页,Page Down 向下翻页
    • 空格下一行 到文末后自动退出
    • b上一行
    • enter一行一行滚动
    • 自动退出
    • q退出

    5.查看开头部分内容——head命令

    作用:查看文件开头一部分内容,不加具体的数字 默认10
    head [-n] 文件名			#n为行数
    
    [root@localhost /]# head -5 /etc/sysconfig/network-scripts/ifcfg-ens33 
    TYPE=Ethernet
    PROXY_METHOD=none
    BROWSER_ONLY=no
    BOOTPROTO=static
    DEFROUTE=yes
    
    

    6.查看结尾部分内容——tail命令

    作用:查看文件结尾一部分内容
    tail -n 具体数字 文件名 (不加具体的数字,默认结尾十行)
    tail -f 具体数字 文件名 实时跟踪最后十行
    
    [root@localhost /]# tail -5 /etc/sysconfig/network-scripts/ifcfg-ens33 
    ONBOOT=yes
    IPADDR=192.168.175.101
    GATEWAY=192.168.175.2
    NETMASK=255.255.255.0
    DNS1=8.8.8.8
    
    

    7.统计文件内容——wc命令

    基本格式:wc	[选项]...目标文件...
    
    选项效果
    -l行数
    -w单词数
    -c字节数

    在这里插入图片描述

    8.检索、过滤文件内容——grep

    grep awk sed ——文本三剑客,主要处理文本中的字符
    作用:在文件中查找并显示包含指定字符串的行
    格式:grep	[选项]... 查找条件 目标文件
    
  • -i:查找时忽略大小写
  • -v:反向查找,输出与查找条件不相符的行
  • -o 只显示匹配项
  • -f 对比两个文件的相同行
  • -c 匹配的行数([root@localhost ~]# grep -c root passwd 3)
  • 查找时添加条件设置

  • 要查找的字符串以双引号括起来
  • “^……”表示以什么开头
  • “……$”表示以什么结尾
  • “^$”表示空行
  • [root@test1 opt]# cat 123.txt |grep -v '^$' >123.txt  //将非空行写入到123.txt文件
    [root@test1 opt]# grep "^b" 123.txt    //过滤已b开头
    [root@test1 opt]#grep '/$'  123.txt    //过滤已/结尾
    [root@test1 opt]# grep -v "^$" 123.txt //过滤非空行3 备份与恢
    

    三、压缩与解压缩

    1 .gzip、bzip2

  • gzip [-9] 文件名… 提高压缩比例,但是文件较大时效率会低 bzip2 [-9] 文件名... 9代表压缩比率, 9最大1最小,使用以上两种压缩源文件不存在了 gzip的压缩率 要高于bzip2
  • 作用:制作压缩文件和解压缩文件
    格式:gzip [-9] 文件名					    #制作压缩文件
         bzip2 [-9] 文件名						#制作压缩文件
    
    [root@test1 opt]# gzip *.txt    
    #压缩后源文件没了 可以使用-k  保留源文件centos8 特性
    [root@test1 opt]# ls
    123456.txt.gz  123.txt.gz  1.txt.gz  2.txt.gz  abc.txt.gz  rh  test.txt.gz
    [root@test1 opt]# gzip -d *.txt.gz    解压
    [root@test1 opt]# ls
    123456.txt  123.txt  1.txt  2.txt  abc.txt  rh  test.txt
    

    (1)

    1. 当使用gzip压缩一个纯文本文件时,效果是非常明显的,大约可以减少70%以上的文件大小。
    2. gzip制作的压缩文件默认的扩展名为".gz" 原始文件不再保留
    3. bzip2制作的压缩文件默认的扩展名为“.bz2”,原始文件不再保留

    (2) 常用命令选项:

  • -9:压缩等级,指令的值可为1 (压缩速度最快,最低的压缩质量)至9 (最慢的压缩速度,压缩率
  • 最高)之间的整数,其默认值为6 (压缩速度和压缩质量较为平衡的值) -d:用于解压缩已经压缩过的文件,相当于使用gunzip、bunzip2命令
  • 2 .压缩解压缩命令 —— gunzip、bunzip2

    基本格式:
    gzip  -d  .gz格式的压缩文件				#解开压缩文件
    bzip2  -d  .gz格式的压缩文件				#解开压缩文件
    

    1.无法压缩文件夹
    ​ 2.压缩后源文件消失
    ​ 3.用-k选项,bzip2可保留源文件,gzip不可以

    3 .制作归档文件命令 —— tar

    作用:制作和释放归档文档
    格式:
    tar [选项] ... 归档文件名 源文件或目录
    tar [选项] ... 归档文件名 [-C 目标目录]
    

    常见选项

    选项作用
    -c创建 .tar格式的包文件,一般都带;
    -x解开 .tar格式的包文件;
    -v输出详细信息(Verbose ),制作tar包或解开tar包时。显示过程;
    -f表示使用归档文件,-f这个是tar包。无论制作还是解开都要加;
    -P打包时,保留原权限;
    -t不解开tar包时,列表查看包内的文件;
    -C指定解压的目录,解压时指定释放的目标文件夹;
    -z调用gzip程序进行压缩或解压。
    -j调用bzip2程序进行压缩或解压;
    [root@localhost data]# tar -zcvf vm.tar.gz vm1 vm2 zz
    vm1
    vm2
    zz/
    [root@localhost data]# tar -jcvf vm.tar.gz vm1 vm2 zz
    [root@localhost data]# tar -zxvf vm.tar.gzip -C /opt
    vm1
    vm2
    zz/
    [root@localhost zz]# tar -tf vm1.tar.gzip 
    vm1
    
    
    

    4.vi编辑器

  • Linux 系统中“一切皆文件”,因此当我们在命令行下更改文件内容时,不可避免地要用到文本编辑器。Vim具有编辑程序的能力,会主动利用不同的字体颜色辨别语法的正确性,方便程序设计接口
  • vim是vi的升级版
  • vim [OPTION]... ...
    命令  选项       文件
    
    vim  文件名不存在  是新建
    vim  文件名存在   就是修改
    
  • 如果系统提示并未安装vim ,可以使用:
  • yum install vim -y   //进行安装
    

    (1) 常用选项

    +#	        打开文件后,让光标处于第#行的行首,+默认行尾
    !			打开上一次的文件
    +/PATTERN	让光标处于第一个被PATTERN匹配到的行行首用不多
    wq			进行保存并推出
    q!			强制退出vim编辑
    

    (2)vim三种模式

    1. 命令或普通(Normal)模式:默认模式,可以实现移动光标,剪切/粘贴文本
    2. 插入(Insert)或编辑模式:用于修改文本
    3. 扩展命令(extended command )或末行模式:保存,退出等搜索替代
    i	insert, 在光标所在处输入
    I	在当前光标所在行的行首输入
    a	append, 在光标所在处后面输入
    A	在当前光标所在行的行尾输入
    o	在当前光标所在行的下方打开一个新行
    O	在当前光标所在行的上方打开一个新行
    
    ① 命令模式
  • 命令模式:此模式下,可使用方向键(上、下、左、右键)或 k、j、h、i 移动光标的位置,还可以对文件内容进行复制、粘贴、替换、删除等操作。
  • 单词间跳转
    w:下一个单词的词首
    e:当前或下一单词的词尾
    b:当前或前一个单词的词首
    
    当前页跳转:
    H:页首     
    M:页中间行     
    L:页底
    zt:将光标所在当前行移到屏幕顶端
    zz:将光标所在当前行移到屏幕中间
    zb:将光标所在当前行移到屏幕底端
    
    行首行尾跳转:
    ^ 跳转至行首的第一个非空白字符
    0 跳转至行首
    $ 跳转至行尾
    
    行间移动:
    #G 或者扩展命令模式下 
    :#   跳转至由第#行
    G 最后一行
    1G, gg 第一行
    
    
    删除命令(delete)
    d 删除命令,可结合光标跳转字符,实现范围删除
    d$ 删除到行尾
    d^ 删除到非空行首
    d0 删除到行首
    dw 下一个单词的词首
    de 当前或下一个单词的词尾
    db 当前或上一个单词的词首
    dd:   剪切光标所在的行
    D:从当前光标位置一直删除到行尾,等同于d$
    
    复制命令(yank)
    y 复制,行为相似于d命令
    yy:复制行
    Y:复制整行
    
    撤消更改
    u 撤销最近的更改,相当于windows中ctrl+z
    #u 撤销之前多次更改
    U 撤消光标落在这行后所有此行的更改
    Ctrl-r 重做最后的“撤消”更改,相当于windows中crtl+y
    . 重复前一个操作
    #. 重复前一个操作#次
    
    
    ② 插入/编辑模式
  • 插入/编辑模式: 使 Vim 进行输入模式的方式是在命令模式状态下输入 i、I、a、A、o、O 等插入命令,当编辑文件完成后按 Esc 键即可返回命令模式。
  • 快捷键作用
    i在当前光标所在位置插入随后输入的文本,光标后的文本相应向右移动
    l行首插入命令
    o在光标所在行的下面插入新的一行。光标停在空行首,等待输入文本
    O在光标所在行的上面插入新的一行。光标停在空行的行首,等待输入文
    a在当前光标所在位置之后插入随后输入的文本
    A行尾插入命令
    ③ 末行模式
  • 末行模式:文件中的指定内容执行保存、查找或替换等操作。使 Vim 切换到编辑模式的方法是在命令模式状态下按“:”(英文冒号)键,此时 Vim 窗口的左下方出现一个“:”符号,这是就可以输入相关指令进行操作了。
  • 快捷键作用
    :q退出不保存
    :q!强制退出不保存
    :W保存
    :w 新文件名另存为新文件
    :wq保存并退出
    :e另存为新文件
    :r在当前文件中读入其他文件内容
    # d删除 第#行
    #,# d删除#到#行

    (3) 配置文件定制vim的工作特性

  • Vim 启动时,会根据配置文件(.vimrc)来设置 Vim,因此我们可以通过此文件来定制适合自己的 Vim。
    Vim 配置文件分为系统配置文件和用户配置文件:
    1. 系统配置文件位于 Vim 的安装目录(默认路径为 /etc/.vimrc);
    2. 用户配置文件位于主目录 ~/.vimrc,即通过执行 vim ~/.vimrc 命令即可对此配置文件进行合理修改。通常情况下,Vim 用户配置文件需要自己手动创建。
    快捷键作用
    :set ai设置自动缩进
    :set nu显示行号
    :set cul突出显示当前行
    :set ts=4设置tab健宽度为4个空格

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值