Linux入门 ------文件和目录操作

Linux 文件和目录操作

在这里插入图片描述

教学基于centos 7, Hi, 我是沙漏,不定期更新python爬虫,其余时间学习java和linux中。关注我哟!

shell命令

  • shell命令 – 能够被终端识别并且去做出相对于的操作的命令

常用简单快捷键

  • date 查看时间

  • 历史命令切换

    • history 查看历史命令记录
    • ctrl + p 从当前往历史命令回溯 - 向上遍历
    • ctrl + n 从当前往历史命令下掉 - 向下遍历
  • 光标移动 以靠近命令开端为后 远离命令开端为前

    • ctrl + b 光标向后一格
    • ctrl + f 光标向前一格
    • ctrl + a 光标跳转开头
    • ctrl + e 光标跳转末尾
    • ctrl + h 删除光标后面元素
    • ctrl + d 删除光标前面元素
    • ctrl + u 删除光标后面所有元素
  • 自动补齐命令: Tab 可以帮助显示命令 也包括文件路径提示

  • 目录的遍历

    • ls 遍历目录 后面可接待遍历路径 例如 ls / 表示遍历根节点
    • ls 也可以后加参数 比如 ls -a 表示全部文件包括隐藏文件
    • ls 也可以加其他的 比如ls - l 查看隐藏文件和时间轴
    • ls 也可以加多个参数 比如 ls -al 二个功能都有
  • 查看当前工作地点 pwd 或者看前缀提示

  • 工作地点的切换 cd /

    扫描二维码关注公众号,回复: 11520712 查看本文章
    • cd /home 是直接指明了访问目录的直接路径
  • cd home 是没有指明直接路径,但隐藏的路径是当前目录

    • cd\ 表示退出当前地点
  • 切换到家目录三种方式:

    • 使用绝对路径 cd root/
    • 使用符号 cd ~
    • 直接点 cd
  • 清屏 clear

root下目录结构

目录名称 描述
/bin bin是binary缩写,这个目录存放经常使用的命令
/boot 存放启动linux使用的核心文件
包括一些连接文件和镜像文件
/dev dev是devicel(设备)的缩写, 存放linux的外部设备
在linux中访问设备的方式和访问文件方式相同
/ect 存放所有的系统管理所需要的配置文件和子目录
/home 用户的主目录,在linux中,每个用户都有自己的目录
一般该目录名以该用户名作为文件夹名称
/lib 存放系统最基本的动态连接共享库
起作用类似windows里面的DLL文件
几乎所有应用程序都需要用到这些共享库
/media
/mnt
linux系统自动识别一些外界设备,U盘或者其他光驱
linux将这些设备挂载在这个文件夹中
可以在该文件夹中查看外部设备的信息
/opt 存放主机额外安装软件的目录,比如安装一个oracle数据库
/root /目录为系统管理员,也成为超级权限的用户主目录
/usr 主要目录,存放用户应用程序和文件,类似windows的progame files目录

用户目录

  • 绝对路径: 从根目录开始写 /home/a

  • 相对路径: 相对于当前的工作目录而言 比如直接 test.txt

  • 其他表示符号

    • . 表示当前目录
    • … 当前的上一级目录
    • — 用于临近二个目录的切换 比如 cd -
    • ~ 用户的家目录 (宿主目录)
    • #: 超级用户 --root
    • $: 普通用户
  • 可以使用tree命令行 as: tree -FC 来展示当前树节点

  • 文件目录颜色区分

    • 白色 一般为普通文件
    • 蓝色 一般表示为目录
    • 绿色 一般表示为可执行文件
    • 红色 一般表示为压缩文件
    • 青色 一般表示为链接文件
    • 黄色 一般表示设备文件
      • block 块
      • char 字符
      • fifo 管道
    • 灰色 一般表示为其他文件

    这些描述都是在一般情况下, 可能存在特殊性,注意区分

目录操作

  • 创建目录

    • 直接创建 mkdir <目录名> as: mkdir app
    • 复合创建 mkdir <外目录>/<子目录> -p as: mkdir app/game -p
  • 删除目录

    • 删除空目录 rmdir <空目录名> as mkdir app

    • 删除非空目录 rm <非空目录> -ri as: rm app -ri

      • rm 删除了就很难找到
      • -r 表示递归删除方式
      • -i 表示带提示删除
      • -ri 表示删除带递归提示
  • 拷贝目录

    • cp 命令 as: cp <源目录> <目标目录> -r (要加参数, 表示递归的复制)

    • eg: cp /root/app /root/newapp -r

    • 如果目录不存在, 则直接拷贝目录 粘贴过去

    • 如果目录存在 ,则会将源目录粘贴放在目标目录的根目录下面,类似如下

    • app 表示 源目录

      newapp 表示目标目录

      [root@localhost newapp]# tree -FC
      .
      ├── app/
      │ ├── hello
      │ └── temp
      ├── hello
      └── temp

      1 directory, 4 files

  • 重命名目录

    • mv 命令 mv <源目录> <目标目录> eg: mv hello aaa
  • 移动目录

    • 还是mv命令 mv <源目录> <目标路径目录> eg: mv aaa app

      将aaa目录 移动到 app目录下

文件操作

  • 创建文件 touch 命令 touch <文件名> as : touch helloword

    • 如果文件不存在 则表示创建这个文件
    • 如果文件存在 则修改文件最后登入时间
  • 查看文件 cat 命令 cat <文件名> as : cat helloword

  • 删除文件 rm <文件名> -i as: rm help -i

  • 文件拷贝 cp 命令 cp <源文件> <目标文件>

    • as: cp hello temp 将hello文件 拷贝到 temp文件中
    • 如果 temp 文件不存在, 则cp会自动创建这个文件,然后执行拷贝操作
    • 如果temp文件存在 , 则 cp 会直接覆盖这个文件, 实现覆盖写操作
  • 查看文件 【存在 五种命令 方式】

    • cat 命令 用于文件短小 直接查看 用法: cat <文件名> eg: cat hello

    • more 命令 用于文件较长 一次性打开大约百分之八十文件大小

      • eg: more hello
      • 此时敲击回车 表示 显示下一行的文本
      • 此时敲击空格 表示 显示下一页的文本
      • 缺陷: 只能往下看 不能翻回去
      • 使用 按键 q 和 ctrl + c 可以退出more命令
      • 或者直接 ctrl + z 关闭命令
    • less 命令 用于文件一般 更加智能

      • eg: less hello
      • 使用 ctrl + p 翻回去一页
      • 使用ctrl + n 翻下去一页
      • 关闭方式 和 more 是一样的
    • head 命令 用于从头部查看文本

      • eg: head hello
      • 默认查看十行 , 可以加参数
      • eg: head - 20 hello
      • 表示从头部查看前20行文本
    • tail 命令 用于从尾部查看文本

      • 用法与head一个样, 不多做解释!
  • 重命名文件

    • mv 命令 mv <源文件> <目标文件> eg: mv hello aaa

      newapp: –> app hello temp

      [root@localhost newapp]# mv temp aaa
      [root@localhost newapp]# ls
      aaa app hello

  • 移动文件

    • 还是mv命令 mv <源文件> <目标路径文件> eg: mv aaa app

      将aaa文件 移动到 app目录下

关于linux中软链接和硬链接

在linux中, 存在硬链接 和 软链接 二种方式, 作用都是创建一个新的打开方式, 类似windows中的外部链接, 或者 超链接之类的东西,简单了解一下就行!

  • 软链接: ln -s <目标文件> <链接文件>

    • eg: ln -s hello hello1 (hello1为软链接文件)
  • 硬链接: ln <目标文件> <链接文件>

    • eg: ln hello hello1 (hello1为硬链接文件)

原理上,硬链接和源文件的inode节点号相同,两者互为硬链接。软链接和源文件的inode节点号不同,进而指向的block也不同,软链接block中存放了源文件的路径名。

实际上,硬链接和源文件是同一份文件,而软链接是独立的文件,类似于快捷方式,存储着源文件的位置信息便于指向。

使用限制上,不能对目录创建硬链接,不能对不同文件系统创建硬链接,不能对不存在的文件创建硬链接;但是可以对目录创建软链接,可以跨文件系统创建软链接,可以对不存在的文件创建软链接。

二种链接方式各有各的特点:

  • 硬链接的特点:

    • 具有相同inode节点号的多个文件互为硬链接文件;
    • 删除硬链接文件或者删除源文件任意之一,文件实体并未被删除;
    • 只有删除了源文件和所有对应的硬链接文件,文件实体才会被删除;
    • 硬链接文件是文件的另一个入口;
    • 可以通过给文件设置硬链接文件来防止重要文件被误删;
    • 可以通过ls -i看到Index;
    • 硬链接文件是普通文件,可以用rm删除;
    • 对于静态文件(没有进程正在调用),当硬链接数为0时文件就被删除。注意:如果有进程正在调用,则无法删除或者即使文件名被删除但空间不会释放。
  • 软链接的特点:

    • 软链接类似windows系统的快捷方式;
    • 软链接里面存放的是源文件的路径,指向源文件;
    • 删除源文件,软链接依然存在,但无法访问源文件内容;
    • 软链接失效时一般是白字红底闪烁;
    • 创建软链接命令 ln -s 源文件 软链接文件;
    • 软链接和源文件是不同的文件,文件类型也不同,inode号也不同;
    • 软链接的文件类型是“l”,可以用rm删除。

文件或目录属性

这个作为理解内容, 稍微了解一下就行了。

  • wc 命令: 简单查看文本文件的基础信息

    • 用法: wc <文本文件名>

    • [root@localhost newapp]# wc hello
      1 2 12 hello

      [root@localhost newapp]# cat hello
      hello world

    • wc 会显示如下:

    • 【文件行数】 【文件字符个数】 【字节个数】 【文件名】

  • od命令: 简单查看二进制文件的基础信息

    • 用法: od <二进制文件名> - <参数>
    • eg: od hello -c 表示显示ascii字符
    • 参数:
      • c –> ascii字符
      • d –> 有符号十进制数
      • f –> 浮点数
      • o -> 八进制数
      • u -> 无符号十进制数
      • x -> 十六进制数
  • du 命令: 查看某个目录的大小

    • 用法: du -h (加入参数h 提示更多)
    • eg: du app -h
  • df命令: 查看磁盘的使用情况

    • 用法: df -h (加入参数 h 提示更多)
    • eg: df -h
  • which 命令: 用于查看 查看shell命令的位置 (外部命令)

    • eg: which cp

文件权限, 用户, 用户组

  • 查看当前用户:

    • 直接从终端阅读
    • whoami 命令
  • 修改用户权限:

    • 文字设定法: chmod [who] [+ - =] 【mode】 [文件名]
      • eg: chomd o+w hello.c
      • [who]
        • 文件所有者 u
        • 文件所属组 g
        • 其他人 o
        • 所有的人 a
      • [权限添加]
        • 添加权限 +
        • 减少权限 -
        • 覆盖权限 =
      • [mode]
        • 读 r
        • 写 w
        • 执行 x
    • 数字设定法: chmod [数字串] [mode]
      • eg: chomd 765 hello.c
      • 【权限表示】
        • 没有权限 -
        • 读 r 4
        • 写 w 2
        • 执行 x 1
      • 解释 765
        • 7 — 文件所有者 —rwx—
        • 6 –-文件所属组 —rw—-
        • 5 —其他人 — —rx—
      • 减少权限 可以使用 - [数字串] 实现对应的权限降低
      • eg: chmod -001 hello.c
      • 然后其他人的权限就编程了 —r—
  • 修改文件所有者/所有组

    • 所有者: chown

      • 示例:
        chown root /u 将 /u 的所有者更改为"root"。
        chown root:staff /u 和上面类似,但同时也将其属组更改为"staff"。
        chown -hR root /u 将 /u 及其子目录下所有文件的所有者更改为"root"。
    • 所有组: chgrp

      • 示例:
        chgrp staff /u 将 /u 的属组更改为"staff"。
        chgrp -hR staff /u 将 /u 及其子目录下所有文件的属组更改为"staff"。

文件的查找

文件的查找有很多种, 我们逐个讲解。

  • 按文件名查找:

    • 命令: find 路径【可选,默认为当前路径】 -name “文件名”
      • 文件名中可以使用通配符
      • 其中 * 表示前面一个或多个
      • 其中 ? 表示非贪婪模式
      • eg: find - name “he*?” return /root/app/hello.c
  • 按文件大小查找:

    • 命令: find 路径[可选,默认为当前路径] -size +10k
      • 其中 + 表示 大于 或者 - 表示小于
      • 其中 10 表示 文件大小
      • 其中 k 表示 kb 或者 M 兆
      • 范围查找 `` find -size +10k -size -100k`
      • 表示 查找 大于 10k 小于 100k 的全部文件
  • 按文件类型查找:

    • 命令: find 路径[可选, 默认为当前路径] =type f
      • 其中 f 表示文件类型
      • f 表示普通文件
      • d表示目录
      • l 表示链接符号
      • b 表示块设备
      • c 表示字符设备
      • s表示socket文件
      • p表示管道
      • eg:find newapp/ -type f 查找newapp目录下的 普通文件
  • 按文件内容查找:

    • 命令: grep -r “查找的内容” 【查找的路径】

      • 其中 查找内容 可以使用通配符 与文件名查找类似

猜你喜欢

转载自blog.csdn.net/qq_45906219/article/details/107689066
今日推荐