【Linux命令行与Shell脚本编程】三,Linux文件系统

news2024/12/23 8:46:53

Linux命令行与Shell脚本编程

第三章 Linux文件系统


文章目录

  • Linux命令行与Shell脚本编程
    • 三.Linux文件系统
      • 3.1,查看文件
        • 3.1.1,ls 命令 选项和参数
        • 3.1.2,过滤输出列表
      • 3.2, 处理文件
        • 3.2.1,touch 创建文件
        • 3.2.2,cp 复制文件
          • cp -i 覆盖询问
          • cp -R 递归
          • cp命令中使用通配符
        • 3.2.3,tab 制表符补全(命令行补全)
        • 3.2.4,ln 链接文件
          • 软链接
          • 硬链接
        • 3.2.5,mv 文件重命名--移动
        • 3.2.6,rm 删除文件
      • 3.3, 管理目录
        • 3.3.1,mkdir 创建目录
          • -p 批量创建目录及子目录
        • 3.3.2,rmdir 删除目录
      • 3.4, 查看文件内容
        • 3.4.1,file 查看文件类型
        • 3.4.2,cat more less 查看整个文件
          • 3.4.2.1,cat 命令
          • 3.4.2.2,more 命令
          • 3.4.2.3.less 命令
        • 3.4.3, tail head 查看部分文件
          • 3.4.3.1, tail 命令
          • 3.4.3.2, head 命令


三.Linux文件系统

常见目录名
在这里插入图片描述

3.1,查看文件

ls查看当前工作目录的目录和子目录

3.1.1,ls 命令 选项和参数

选项长选项含义
-a–all列出所有文件,包括隐藏的文件(.开头的文件)
-d–directory目录本身,与 -l 结合使用查看目录的详细信息,而不是目录的内容
-F–classify在名称后加上类型指示符(目录后会加 正斜杠’/‘;可执行文件后添加星号’*')
-R递归选项,列出当前目录所包含的子目录的文件
-h–human-readable以长格式列出,以人可读的方式而不是字节数显示文件大小
-l使用长列表格式显示结果
-r–reverse以相反顺序显示结果.默认字母升序显示.
-S以文件大小对文件排序
-t按修改时间排序
-i查看文件或目录的inode编号
在长列表格式输出中,每一行会列出一个文件或目录。除了文件名,输出中还包括其他有用信息。

$ ls -l
total 8
drwxr-xr-x. 2 christine christine  6 Feb 20 14:23 Desktop
drwxr-xr-x. 2 christine christine  6 Feb 20 14:23 Documents

输出的第一行显示了为该目录中的文件所分配的总块数(8)。
此后的每一行都包含了关于文件(或目录)的下列信息。
文件类型,比如目录(d)、文件(-)、链接文件(1)、字符设备(c)或块设备(b)
文件的权限
文件的硬链接数
文件属主
文件属组
文件大小(以字节为单位)
文件的上次修改时间

3.1.2,过滤输出列表

过滤器就是一个字符串,可用作简单的文本匹配。
你可以将其作为命令行参数,放置在选项之后使用:
$ ls -l my_script
-rwxrw-r--. 1 christine christine 74 Feb 29 16:12 my_script
当指定特定的文件名作为过滤器时,ls命令只会显示该文件的信息。
有时可能不知道要找的那个文件的确切名称。
ls命令也能识别标准通配符(wildcard),并在过滤器中用其来进行模式匹配:
    问号(?)代表任意单个字符;
    星号(*)代表零个或多个字符。
    []可能出现的字符
    !排除

3.2, 处理文件

命令: touch,cp,ln,mv,rm

3.2.1,touch 创建文件

touch filename 
通过touch命令创建 空文件,并将用户名作为文件属主,设置修改时间。如果文件已存在,也不会对其造成影响.
通过touch 不会修改文件,所以可以用来改变文件修改时间而不影响文件内容.

3.2.2,cp 复制文件

cp命令可以 将文件和目录从文件系统的一个位置复制到另一个位置可谓是系统管理员的日常操作。
cp命令最基本的用法需要两个参数,即源对象和目标对象:
    cp source destination。
当参数 source 和 destination 都是文件名时,cp命令会将源文件复制成一个新的目标文件,并以 destination 命名。
新文件在形式上就像全新的文件 有新的修改时间
    $ cp test_one test_two
    $ ls -l test one test two
    -rw-rw-r--. 1 christine christine 0 Feb 29 17:26 test one
    -rw-rw-r--. 1 christine christine 0 Feb 29 17:46 test two
cp -i 覆盖询问
cp 命令的 destination 目标文件若已存在,则会覆盖文件,并不会提醒. 所以最好加上 -i 选项,强制shell询问是否覆盖已有文件.

也可以将文件复制到现有目录中
        $cp -i test_one /home/christine/Documents/
        $ ls -l /home/christine/Documents/
        total 0
        -rw-rw-r--. 1 christine christine 0 Feb 29 17:48 test_one
    新文件现在位于Documents目录中,文件名和原先一样。
    
例子在目标目录名尾部加上了一个正斜线(/)。这表明Documents是一个目录而非文件。
有助于表明目的,在复制单个文件时非常重要。
如果没有使用正斜线,同时子目录/home/christine/Documents又不存在,在这种情况下,
    试图将一个文件复制到 Documents 子目录反而会创建名为Documents的文件,错误消息都不会有。
    因此记得在目标目录名尾部加上正斜线/。
cp -R 递归
cp -R 用于在单个命令中递归复制整个目录的内容 ,目标目录会自动创建.
cp命令中使用通配符
$ cp my* NewDocuments/
命令将所有以my起始的文件都复制到了 NewDocuments目录中。

3.2.3,tab 制表符补全(命令行补全)

制表键补全允许在输入文件名或目录名的时候,按一下制表键,让 shell 将内容补充完整.

3.2.4,ln 链接文件

链接文件是Linux文件系统的一个优势。
如果需要在系统中维护同一文件的两个或多个副本,可以使用单个物理副本加多个虚拟副本(链接)的方法代替创建多个物理副本。
链接是目录中指向文件真实位置的占位符。在Linux中有两种类型的文件链接。
    ·符号链接(软链接)
    ·硬链接
软链接
软链接是一个实实在在的文件,该文件指向存放在虚拟目录结构中某个地方的另一个文件。
    这两个以符号方式链接在一起的文件彼此的内容并不相同。
    要为一个文件创建符号链接,原始文件必须事先存在,然后使用 ln 命令以及-s选项来创建软链接:
        $ ls -l test_file
        -rw-rw-r--. 1 christine christine 74 Feb 29 15:50 test_file
        $ ln -s test_file slink_test_file
        $ ls -l *test file
        lrwxrwxrwx. 1 christine christine 9 Mar  09:46 slink_test_file - > test_file
        -rw-rw-r--. 1 christine christine 74 Feb 29 15:50 test_file
    长列表(ls -l)中显示的符号文件名后的 -> 符号表明该文件是链接到文件 test_file 的一个符号链接。
        slink_test_file仅仅只是指向test_file而已。内容并不相同,是两个完全不同的文件。
        证明链接文件是一个独立文件的方法是查看inode编号。文件或目录的inode编号是
        内核分配给文件系统中的每一个对象的唯一标识。
        要查看文件或目录的inode编号,可以使用 ls命令的-i 选项:
            $ ls -i *test file
            1415020 slink_test_file 1415523 test_file
        可以看出,test file文件的inode编号是  1415523,而slink test file的inode编号则是1415020。两者是不同的文件。
硬链接
硬链接创建的是一个独立的虚拟文件,其中包含了原始文件的信息以及位置。两者就根本而言是同一个文件。以硬链接相连的文件共享同一个inode编号。
    要想创建硬链接,原始文件也必须事先存在 使用 ln 命令 创建硬链接

!!只能对处于同一存储设备的文件创建硬链接。

3.2.5,mv 文件重命名–移动

linux 中 重命名文件称为 移动.
mv source target 可以将 文件和目录 移动到另一个位置或是重命名. 
    $ ls -li f?ll
    1414976 -rw-rw-r--. 1 christine christine 0 Feb 29 16:12 fall
    $ mv fall fzll
    $ ls -li f?ll
    1414976 -rw-rw-r--. 1 christine christine 0 Feb 29 16:12 fzll
    
移动文件会将文件名从fall更改为fzll,但inode编号和时间戳保持不变。 mv只影响文件名。也可以使用mv来移动文件的位置:
    $ mv /home/christine/fzll /home/christine/NewDocuments/

-i 覆盖询问
    类似 cp 命令. 加上 -i 选项,在 mv 试图覆盖已有文件是发出询问.

在移动的时候同时重命名:
    $ mv /home/christine/fzll /home/christine/NewDocuments/fall

3.2.6,rm 删除文件

shell 没有回收站,会直接删除文件.
rm -i filename 

-i 选项会询问是否确定删除文件
-f 强制删除,没有命令提示

3.3, 管理目录

mkdir,rmdir,rm

3.3.1,mkdir 创建目录

mkdir dirname
    $ mkdir New_Dir
    $ ls -ld New_Dir
    drwxrwxr-x. 2 christine christine 6 Mar 6 14:40 New_Dir
长列表输出中,目录以d开头.
-p 批量创建目录及子目录
mkdir命令的-p选项可以根据需要创建缺失的父目录。

    $ mkdir -p New_Dir/SubDir/UnderDir
    $ ls -R New_Dir
    New_Dir:
    SubDir
    New Dir/SubDir:
    UnderDir
    New_Dir/SubDir/UnderDir:

3.3.2,rmdir 删除目录

默认 rmdir 命令仅删除空目录.目标目录下存在文件,会拒绝删除目录.
    $ mkdir Wrong_Dir
    $ touch Wrong_Dir/newfile
    $ rmdir Wrong_Dir/
    rmdir: failed  to remove `Wrong_Dir/': Directory not empty

需要删除目录中的文件,才能删除目录.
rmdir 没有 -i选项,询问是否删除目录.

可以在整个非空目录中使用 rm 命令, -r 选项使命令可以向下进入(descend into)目录,删除其中文件再删除目录.

rm -rf 一口气删除目录树,危险的命令.

3.4, 查看文件内容

3.4.1,file 查看文件类型

file 命令 探测文件内部并判断文件类型.

file命令不仅能够确定文件中包含的是文本信息,还能确定该文本文件的字符编码是ASCII。
    $ file .bashrc
    bashrc: ASCII text
file 可以区分目录
    $ file Documents
    Documents/: directory
    
链接文件,file命令能够 指明链接到了哪个文件:
    $ file slink test file
    slink_test_file: symbolic link to test_file

脚本文件:
    $ file my_script
    my_script: Bourne-Again shell script, ASCII text executable

二进制可执行程序。确定 该程序编译时所面向的平台以及需要何种类型的库。如果有从未知来源处获得的二进制文件,这会是一个非常有用的特性:
    $ file /usr/bin/ls
    /usr/bin/ls: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV),
    dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2,for GNU/Linux 3.2.0,[...]

3.4.2,cat more less 查看整个文件

3.4.2.1,cat 命令
显示文本文件中所有数据:
    $ cat test file
    Hello World
    Hello World again
    Hello World a third time
    HowareyouWorld?

-n 选项会给所有的行加上行号
-b 只给有文本的行加上行号

对于大文件,文件内容会'一闪而过'
3.4.2.2,more 命令
cat命令 主要缺点是其开始运行之后 无法控制后续操作。

more命令会显示文本文件的内容,但会在显示每页数据之后暂停下来。

在这里插入图片描述

底部的 'More 百分比' 标签说明仍处于more 应用程序中,以及当前所在的位置.

more 也是分页工具,能够逐页(或逐行)显示文本。可以单击空格键进行翻页,或是使用 Enter键逐行查看。也可以使用 箭头键向前和向后 滚动手册页的内容.按 q 退出.
3.4.2.3.less 命令
more命令 的升级版.

less 命令可以 在完成整个文件的读取之前显示文件的内容.
能识别 上下箭头 以及上下翻页键.

3.4.3, tail head 查看部分文件

3.4.3.1, tail 命令
tail 命令会显示文件尾部的内容,默认显示末尾 10行.

-n选项 修改显示行数. 
    $ tail -n 2 log_file
    line14
    Last Line - line15
    
    tail -n 2 file 等同于 tail -2 file ,n可以省略
-f 选项 允许其他进场使用此文件时查看文件的内容.tail命令保持活动状态并持续显示添加到文件中的内容.
3.4.3.2, head 命令
head 命令会显示文件头部的内容,默认显示末尾 10行.

-n选项 等同于 tail的-n 命令

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/454660.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

NFS网络文件共享服务

NFS网络文件共享服务 NFS(network file system)网络文件系统 可以把对方主机资源直接挂载到自己电脑上,比FTP更加方便 明文传输 没有认证机制 安全性很差 只在局域网使用 依赖RPC(远程过程调用) 需要安装nfs-utils(提供NFS服务)…

对话西门子Mendix:低代码与亚马逊云科技Serverless的底层融合,助力企业提效降本...

‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 3月30日 亚马逊云科技举办了主题为“全面拥抱Serverless时代”的创新大会,分享了亚马逊云科技17年引领Serverless发展的技术创新、应用场景以及全球客户的创新实践。 会上,亚马逊云科技大中华区产品部…

RocketMQ高级概念

一 RocketMQ核心概念 1.消息模型(Message Model) RocketMQ主要由 Producer、Broker、Consumer 三部分组成,其中Producer 负责⽣产消息,Consumer 负责消费消息,Broker 负责存储消息。Broker 在实际部署过程中对应⼀台…

[MLIR] 转换流程详解(以Toy接入为例)

参考资料: [MLIR] 转换流程详解(以Toy接入为例) - 知乎 (zhihu.com) 在本文中我们使用 toy 语言接入 MLIR,最终转化为 LLVM IR (或目标代码)为例,来讲解 MLIR 的转换流程。具体的流程如下: .toy 源文件 → AST → MLIRGen(遍历AST…

【SSM】整合开发

文章目录 1.ssm整合过程1.1步骤1.2 Spring整合SpringMVC的问题 2.准备工作2.1 添加依赖2.2 创建数据库 3.相关配置3.1 整合Spring和Mybatis3.2 引入SpringMVC3.3 spring整合入web项目 4.测试整合效果 1.ssm整合过程 1.1步骤 (1)Spring整合MyBatis 通过…

PHP数组的功能及实现案例

目录 前言 一、什么是数组 二、创建关联数组 1.1运行流程(思想) 1.2代码段 1.3运行截图 三、创建索引数组 1.1运行流程(思想) 1.2代码段 1.3运行截图 前言 1.若有选择,可实现在目录里进行快速查找&#xff…

golang-GC垃圾回收

参考:https://juejin.cn/post/7040737998014513183#comment 垃圾回收(Garbage Collection,缩写为GC),是一种自动内存管理机制。 相关术语 赋值器:说白了就是你写的程序代码,在程序的执行过程中&#xff0c…

《架构设计》-08-分布式系统和Rpc架构

文章目录 1. 分布式系统1.1 横向拆分1.2 分布式服务框架优缺点1.3 功能/非功能需求 2. RPC架构2.1 概述2.2 网络通信2.3 序列化2.3.1 概述2.3.2 传输协议 2.4 服务调用2.4.1 概述2.4.2 同步调用2.4.3 异步调用(Future模式为例)1)Future-Get模…

day2 OSI七层体系结构

目录 网络体系结构的形成 协议与划分层次 OSI七层体系结构 网络体系结构的形成 两台计算机要互相传送文件需解决很多问题; (1) 必须有一条传送数据的通路。 (2) 发起方必须激活通路。 (3) 要告诉网络如何识别接收方。 (4) 发起方要清楚对方是否已开机&#…

绿色节约型校园电力能耗监控系统的设计与应用方案

摘 要:校园中能源的消耗与浪费占用了校园总费用支出的很大比例,而电能的消耗又是能源消耗的重中之重,重点阐述了校园能耗监控系统方案设计、关键技术。以北方某高校为例应用该方案,并结合具体的耗能特点对节能措施进行研究。 关…

养老保障金查询系统【GUI/Swing+MySQL】(Java课设)

系统类型 Swing窗口类型Mysql数据库存储数据 使用范围 适合作为Java课设!!! 部署环境 jdk1.8Mysql8.0Idea或eclipsejdbc 运行效果 本系统源码地址:https://download.csdn.net/download/qq_50954361/87700421 更多系统资源库…

Linux中的DNS域名解析配置及原理

Linux中的DNS域名解析配置及原理 DNS系统的作用1、DNS系统的分布式数据结构2、DNS域名解析方式3、通过BIND做DNS解析部署 DNS系统的作用 DNS域名系统是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互…

2023前端面试上岸手册——JavaScript 部分

目录 JavaScript 有哪些数据类型,它们的区别?数据类型检测的方式有哪些null 和undefined 区别如何获取安全的 undefined 值?Object.is() 与比较操作符 “两等” 、“三等” 的区别?什么是 JavaScript 中的包装类型?为什…

华为OD机试真题(Java),最远足迹(100%通过+复盘思路)

一、题目描述 某探险队负责对地下洞穴进行探险。探险队成员在进行探险任务时,随身携带的记录器会不定期地记录自身的坐标,但在记录的间隙中也会记录其他数据。探索工作结束后,探险队需要获取到某成员在探险过程中相对于探险队总部的最远的足…

2-01 在Nginx中配置静态资源防盗链

2-01 在Nginx中配置静态资源防盗链 IQ1AK-1682304821705)]

基于Spring+SpringMVC+MyBatis框架的Java在线考试系统

项目介绍 基于SpringSpringMVCMyBatis框架的Java在线考试系统 功能模块 |用户功能模块|用户注册登陆|用户可以通过用户名邮箱注册网站,并且通过注册的用户登陆网站。|随机练习|从题库中随机取出指定数量的题目供学员练习。|强化练习|按照学员知识分布情况&#xff…

SpringBoot【运维实用篇】---- 配置高级

SpringBoot【运维实用篇】---- 配置高级 1. 临时属性设置属性加载优先级开发环境中使用临时变量 2. 配置文件分类3. 自定义配置文件 关于配置在基础篇讲过一部分,基础篇的配置总体上来说就是让各位小伙伴掌握配置的格式。比如配置文件如何写啊,写好的数据…

HCIP之路VLAN,三层交换机,STP---生成树协议,MSTP

VLAN---虚拟局域网 垃圾流量问题 网络安全问题 VLAN特点 一个vlan就是一个广播域,不同vlan内部的数据无法进行跨广播域通讯 vlan的划分不受地域限制 vlan的实现 主机的网卡一般只能发送和接收无标记帧(Untagged Frame)。Tagged Frame --- 标…

Nginx的优化-安全与防盗链

1.Nginx的网页优化-网页压缩 在Nginx的ngx_http_gzip_module压缩模块提供对文件内容压缩的功能。进行相关的配置修改,就能实现Nginx页面的压缩,达到节约带宽,提升用户访问速度 重启服务进行访问测试 2.配置Nginx的图片缓存 当Nginx将网页数据…

ElasticSearch入门学习:基础概念与简介

文章目录 一、ElasticSearch基础概念铺垫1.1 全文检索概念1.2 正排索引与倒排索引 二、ElasticSearch简介2.1 ElasticSearch简介2.2 ElasticSearch生态圈-Elastic Stack2.3 ElasticSearch与Solr搜索引擎对比 声明:以下内容均来自b站 ElasticSearch入门到精通教程&a…