Linux学习02--有关文件的命令

1、Linux的文件系统

1.1、根文件系统 rootfs

这是文件系统的具体介绍但我没有看 0.0

LSB规范中的FHS规定,Linux的每个发行版都应该遵循这些文件命令

/ect /usr /var /root /home /dev

1.1.1、/boot

引导文件存放目录,内核文件(vmlinuz)、引导加载器(bootloader,grub)都存放在此目录

1.1.2、/bin

供所有用户使用的基本命令 || 不能关联至独立分区,OS启动即会用到的程序

1.1.3、/sbin

管理类的基本命令 || 不能关联至独立分区,OS启动即会用到的程序

1.1.4、/lib

基本共享库文件,以及内核模块文件(/lib/modules)

1.1.5、/lib64

专用于x86_64系统上的辅助共享库文件存放位置

1.1.6、/etc

配置文件目录(大多数是纯文本文件)

1.1.7、/home

用户的主目录也是家目录

  • 普通用户 /home/USERNAME
  • 管理员用户 /root

1.1.8、/media

便携式移动设备挂载点

1.1.9、/mnt

临时文件系统挂载点

1.1.10、/dev

设备文件以及特殊文件存储位置

dev中的文件类型

  • b : block device

    特点 : 随机访问

  • c : character device

    特点 : 线性访问

1.1.11、/opt

第三方应用程序的安装位置

1.1.12、/srv

系统运行时需要的数据存放位置

1.1.13、/temp

存放临时文件的目录

1.1.14、/usr

共用存放的只读数据

usr目录下必须包含 bin include lib local sbin share

  • bin : 保证系统拥有完整功能而提供的应用数据 || 所有人都可用
  • sbin : 保证系统拥有完整功能而提供的应用数据 || 管理员可用
  • lib :
  • lib64 :
  • include : C程序的头文件存放位置
  • share : 结构化独立的数据 例如 doc man
  • local : 第三方应用程序的安装位置

1.1.15、/var

变量数据文件

  • cache : 应用程序缓存数据目录

  • lib : 应用程序状态信息数据

  • local : 转为/usr/local下的应用程序存储可变数据

  • lock : 锁文件

  • log : 日志目录及文件

  • opt : 专用于为/opt下的应用程序存储可变文件

  • run: 运行中的进程相关的数据,通常用于存储进程的pid文件

  • spool : 应用池文件

  • tmp : 保存系统两次重启之间的临时数据

1.1.16、/proc

用于输出内核与进程信息相关的虚拟文件系统

1.1.17、 /sys

用于输出当前系统上硬件设别相关信息的虚拟文件系统

1.2、Linux上的应用程序的组成部分

  • 二进制程序 : /bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin

  • 库文件 : /lib /lib64 /usr/lib /usr/lib64 /usr/local/lib /usr/local/lib64

  • 配置文件 : /etc /etc/DIRECTORY /usr/local/etc

  • 帮助文件 : /usr/share/man /usr/share/doc /usr/local/share/man /usr/local/share/doc

1.3、Linux下的文件类型:

  • - : 普通文件
  • d : 目录文件
  • b : 块设备
  • c : 字符设备
  • l : 符号链接文件
  • p : 管道文件
  • s : 套接字文件 socket

2、bash的基本特性

2.1、history命令历史

  1. 环境变量

    • HISTSIZE : 命令历史记录的条数

    • HISTFILE : ~/.bash_history

    • HISFILESIZE : 命令历史文件记录历史的条数

  2. 相关命令

    • history -d OFFSET

      删除历史记录的偏移量

    • history -c

      删除所有历史记录

    • history #

      显示历史中最近的#号条命令

    • history -a

      手动追加当前会话缓存区的命令历史至历史文件中

  3. 调用历史中的命令

    • !# : 重读执行第#条命令
    • !! : 重复执行上一条命令
    • !String : 执行最近的以String开头的命令
  4. 调用上一条命令的最后一个参数

    • !$ :
    • esc , . 先按esc 再按.号
  5. 控制命令历史的记录方式

    • 环境变量 : HISTCONTROL

      • ignoredups : 忽略连续且完全重复的命令
      • ignorespace : 忽略所有以空白字符开头的命令
      • ignoreboth : 上述两种都生效的命令

      切换HISTCONTROL变量的值

      [root@192 ~]# export HISTCONTROL="ignorespace"

    • 修改环境变量值的方式 : export 变量名 = "值"

      • 变量赋值 : 把赋值符号后面的数据存储与变量名指向内存空间

        :仅本次登录修改有效

2.2、命令补全

  1. bash执行命令

    • 内部命令

      bash自带的命令

    • 外部命令

      bash根据PATH环境变量定义的路径自左向右在每个路径搜寻以给定命令名命名的文件,如果找到就不会向右的搜索了,有先后顺序

    • 命令补全机制

      1. 直接补全 : tab要求用户给定的字符串 对应唯一的命令
      2. 间接补全 : tab tab 以用户给定的字符出啊那位开头对应的命令不唯一,则两次tab会给出列表

2.3、路径补全

把用户给出的字符串当做路径开头,并在其指定上级目录下搜索以指定的字符串开头的文件名

  • 如果唯一,直接补全
  • 否则再次tab给出列表

2.4、命令行展开

  • ~ : 展开为用户的主目录

  • ~USERNAME : 展开为指定用户的主目录

  • {} : 可承载一个以都好分隔的列表,并将其一多个路径展开

    /tmp/{a,b} ==> /tmp/a /tmp/b

    /tmp/{a,b}/hi ==> /tmp/a/hi /tmp/b/hi

2.5、命令的执行结果状态

  • bash使用特殊变量$?保存最近一条命令的结果状态
    [root@192 ~]# echo $?
    127
    
    • 0 : 成功
    • 1-255 : 失败
  • 程序执行有两类结果
    • 程序的返回值
    • 程序的执行状态结果

3、目录管理命令

3.1、mkdir

  1. mkdir /PATH1/PATH2

    • 必须保证PATH1存在不然会报错

      [root@192 ~]# mkdir /tmp/test/test1
      mkdir: cannot create directory ‘/tmp/test/test1’: No such file or directory
      
    • 目录已经存在,再次创建不会覆盖

      [root@192 ~]# mkdir /tmp/test1
      mkdir: cannot create directory ‘/tmp/test1’: File exists
      
    • 目标目录下有同名文件,也会创建失败

      [root@192 tmp]# ls | grep yum.log
      yum.log
      [root@192 tmp]# mkdir yum.log
      mkdir: cannot create directory ‘yum.log’: File exists
      
  2. 重要的OPTION

    mkdir [OPTIONS] /path/to/somewhere

    1. -p : 如果父目录不存在就创建父目录

      [root@192 ~]# mkdir /tmp/test/wwx
      mkdir: cannot create directory ‘/tmp/test/wwx’: No such file or directory
      [root@192 ~]# mkdir -p  /tmp/test/wwx
      

      : 如果目录存在,不报错也不会覆盖

      [root@192 tmp]# mv 1.txt test1/
      [root@192 tmp]# ls test1/
      1.txt
      [root@192 tmp]# mkdir -p test1
      [root@192 tmp]# !ls
      ls test1/
      1.txt
      
    2. -v : 显示生活

      [root@192 ~]# mkdir -pv /tmp/test/wwx
      mkdir: created directory ‘/tmp/test/wwx’
      
    3. -m MODE : 创建目录时直接指定权限

3.2、rmdir

删除空目录,目录非空报错

[root@192 ~]# rmdir /tmp/
rmdir: failed to remove ‘/tmp/’: Device or resource busy

rmdir [OPTION] /path/to/somewhere

  • -v : 显示过程

3.3、tree

下载 tree

因为CentOs目前没有tree

yum -r install tree

  1. 常用的OPTION
    • -d : 只显示目录
    • -L : 指定显示的层级数目
    • -P : 只显示由指定pattern匹配到的路径

小练习

  1. 如何创建/tmp/x/y1 /tmp/x/y2 /tmp/x/y1/a /tmp/x/y1/b /tmp/x/y2/a /tmp/x/y2/b
[root@192 ~]#  mkdir -p /tmp/x/{y1,y2}/{a,b}
[root@192 ~]# tree -d /tmp/
└── x
    ├── y1
    │   ├── a
    │   └── b
    └── y2
        ├── a
        └── b
  1. 如何创建x_m, y_m, x_n, y_n
[root@192 ~]# mkdir /tmp/{x,y}_{a,b}
[root@192 ~]# tree -d /tmp/
├── x_a
├── x_b
├── y_a
└── y_b
  1. 如何创建/tmp/bin /tmp/sbin /tmp/usr /tmp/usr/bin /tmp/usr/sbin
[root@192 tem]# mkdir -p ./tmp/{bin,sbin,usr/{bin,sbin}}

[root@192 tem]# tree -d
.
└── tmp
    ├── bin
    ├── sbin
    └── usr
        ├── bin
        └── sbin

6 directories

4、文本文件查看命令

4.1、more

  • more [OPTION] FILE
  • 常用选项
    • -d : 显示翻页及推出提示

4.2、less

less [OPTION] file

man 相关操作,因为man是基于less实现的

4.3、head

  • head [OPTION] file

  • 常用选项

    • -c #: 指定获取前#个字节
    • -n # : 指定获取前#行

4.4、tail

  • tail [OPTION] file
  • 常用选项
    • -c #: 指定获取后#个字节
    • -n # : 指定获取后#行
    • -f : 跟踪显示文件新追加的内容

5、文件的时间戳管理工具

文件:metadata,data

  • 查看文件状态: stat
  • 三个时间戳
    • 访问时间 | atime || 读取文件内容就叫修改
    • 修改时间 | mtime || 改变文件内容(数据)
    • 改变时间 | ctime || 改变文件元数据

5.1、touch

touch [OPTION]... FILE...

touch file 如果文件不存在就创建文件

常用选项:

  • -a : 只改atime

  • -m : 只改mtime

  • -t STAMP :
    根据时间戳STAMP修改时间

    时间戳格式 : [[CC]YY]MMDDhhmm[.ss]

  • -c : 如果文件不存在,则不创建

posted @ 2022-11-23 14:42  信计一班王同学  阅读(55)  评论(0)    收藏  举报