Linux基本文件目录操作

117 阅读9分钟

Linux

Linux不仅系统性能稳定,而且是开源软件。其核心防火墙组件性能高效、配置简单,保证了系统的安全。在很多企业网络中,为了追求速度和安全,Linux不仅仅是被网络运维人员当作服务器使用,甚至当作网络防火墙,这是Linux的一大亮点。

Linux具有开放源码、没有版权、技术社区用户多等特点,开放源码使得用户可以自由裁剪,灵活性高,功能强大,成本低。尤其系统中内嵌网络协议栈,经过适当的配置就可实现路由器的功能。这些特点使得Linux成为开发路由交换设备的理想开发平台。

Linux优点:完全免费,完全兼容POSIX1.0标准,多用户、多任务,良好的界面,支持多种平台。

基础命令

Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。

查看shall

Snipaste_2022-07-21_16-39-00.png

Snipaste_2022-07-21_16-40-23.png

Snipaste_2022-07-21_16-51-53.png

命令提示符

登录系统后,第一眼看到的内容是:

[root@localhost ~]#

这就是 Linux 系统的命令提示符。含义

  • []:这是提示符的分隔符号,没有特殊含义。
  • root:显示的是当前的登录用户,笔者现在使用的是 root 用户登录。
  • @:分隔符号,没有特殊含义。
  • localhost:当前系统的简写主机名(完整主机名是 localhost.localdomain)。
  • ~:代表用户当前所在的目录,此例中用户当前所在的目录是家目录。
  • #:命令提示符,Linux 用这个符号标识登录的用户权限等级。超级管理员,提示符就是 #;普通用户,提示符就是 $。

命令的基本格式

接下来看看 Linux 命令的基本格式:

[root@localhost ~]# 命令[选项][参数]

命令格式中的 [] 代表可选项,有些命令可以不写选项或参数,也能执行。

Linux常用快捷键

快捷键功能
Tab 键自动补齐(两次可以显示所有选项)
反斜杠“\”强制换行或转义
Ctrl+a光标移到最前
Ctrl+e 或 end键光标移到最后
Ctrl+U清空至行首不包括当前光标处的字符
Ctrl+K清空至行尾包括当前光标处的字符
Ctrl+w从当前光标删除到开头
ALT+d从当前光标删除末尾
Ctrl+l清屏
Ctrl+c取消本次命令编辑
Ctrl+s/Ctrl+q锁屏/解锁
向上下箭头回看执行过的命令

如何获得命令帮助

help命令可以查看内部命令 Snipaste_2022-07-25_16-45-56.png 与此同时help也可用来查看外部命令的帮助

Snipaste_2022-07-25_20-20-14.png

Snipaste_2022-07-25_20-21-17.png 于此同时还有man操作手册

Snipaste_2022-07-25_20-48-08.png info ls也可以用来查询还有百度

shell与内、外部命令

可以使用 type 命令来区分内外部命令

Snipaste_2022-07-21_17-07-19.png

Linux绝对路径和相对路径

绝对路径一定是由‘/’开头开始写起 Snipaste_2022-07-25_19-48-22.png 绝对路径是相对于根路径 / 的,只要文件不移动位置,那么它的绝对路径是恒定不变的;而相对路径是相对于当前所在目录而言的,随着程序的执行,当前所在目录可能会改变,因此文件的相对路径不是固定不变的。

Linux命令行下,如何识别文件类型?

文件属性文件类型
-常规文件,即file
d目录文件
bblock device 即块设备文件,如硬盘;支持以block为单位进行随机访问
ccharacter device 即字符设备文件,如键盘支持以character为单位进行线性访问
lsymbolic link 即符号链接文件,又称软链接文件
ppipe 即命名管道文件
ssocket 即套接字文件,用于实现两个进程进行通信

查看及切换目录(cd,pwd,ls,du命令)

cd :切换目录 cd 目标位置

命令效果
cd cd ~若不指定目标位置,切换到当前用户的宿主目录(家目录)
cd -到前一次目录
一个点号“.”开头(自己)表示以当前的工作目录作为起点(已点开头的是)
两个点号“..”开头(上一级)表示以当前目录的上一级目录(父目录)作为起点
“~用户名”形式开头表示以指定用户的宿主目录(家目录)作为起点
"."开头文件表示隐藏文件
~apple (有个用户叫apple 家目录为起点)表示以指定用户的宿主目录作为起点

Snipaste_2022-07-25_21-22-31.png

pwd:显示当前工作路径

Snipaste_2022-07-25_21-38-13.png

ls:查看目录中的文件

  • -l 已长格式显示文件和目录列表 ll=ls -l
  • -a 显示全部包括隐藏文件,包括 .和..
  • -A 显示全部文件或隐藏文件,但不包括 . 和..
  • -d 仅列出目录本身,而不是列出目录内的文件数据
  • -h 友好显示文件大小(human,人性化)
  • -R 递归显示该目录及该目录的子目录下的所有内容
  • --color 显示颜色
  • -S 以文件容量大小排序
  • -i 显示indoe号

Snipaste_2022-07-25_21-54-43.png

drwxr-xr-x. 2 root root 6 7月 21 01:40 公共

rwxr-xr-x 权限三个 一组       rwx r-x r-x 什么人能对它增删改查(3个对象)

2 连接数是2                             

Root 这个文件 属于 root

Root 这个文件属于   root组

6  文件大小

7月  21 01:40 文件最后一次修改时间

公共 文件或者目录名字

通配符: 匹配文本名 ?任意单个字符 *任意长度的任意字符

Snipaste_2022-07-25_22-11-18.png

Snipaste_2022-07-25_22-28-15.png Snipaste_2022-07-25_22-28-37.png

du:查看当前所在文件夹的总磁盘占用量

du [选项] [文件或目录… ]

Snipaste_2022-07-25_22-29-55.png

eg: Snipaste_2022-07-25_22-38-25.png

du -a与-s不能同时使用

Snipaste_2022-07-25_22-35-30.png

创建目录和文件(mkdir,touch,ln命令)

mkdir:创建目录

  • -p 递归创建文件夹
  • -v 显示详细过程 Snipaste_2022-07-25_22-51-35.png

touch:创建文件及修改文件时间戳

  • 如果当前文件下没有同命名文件夹
  • touch 文件名 新建一个文件夹
  • 如果此文件夹下有同名文件
  • 刷新修改此文件时间 Snipaste_2022-07-25_23-00-29.png ln:建立软/硬连接文件

硬链接

  • ln 源文件(夹)路径 目标文件夹路径
  • 不用非得使用绝对路径

Snipaste_2022-07-25_23-19-22.png 软连接

  • ln [-s] 源文件或目录… 链接文件或目标位置
  • 加s是软连接 符号连接
  • 一定要使用绝对路径

Snipaste_2022-07-25_23-17-37.png Snipaste_2022-07-25_23-07-22.png

复制,删除,移动目录和文件(cp,rm,mv命令)

cp:复制文件和目录

cp 要复制的文件 要放置复制文件夹的位置/可以重名

Snipaste_2022-07-25_23-26-16.png

选项说明
-f覆盖目标同名文件或目录时不进行提醒,直接强制复制
-i覆盖目标同名文件或目录时提醒用户确认
-p复制时保持源文件的权限、属主及时间标记等属性不变
-r复制目录时必须使用此选项,表示递归复制所有文件及子目录
-a完整保留所有的信息
-v可视化
-u相当于增备,差异备份(只对文件夹起作用)

-p保留文件的源权限

Snipaste_2022-07-25_23-35-00.png

-a保留权限更强大 包括连接文件的属性也可以保留 建议使用-a

rm:删除文件和目录

rm [选项] 要删除的文件或目录

  • -f、强制
  • -i、交互
  • -r 递归(删除目录需要)

Snipaste_2022-07-26_14-01-26.png

mv:移动或重命名文件和目录

mv [选项] 源文件或目录 目标文件或目录 可以移动或改名

  • -f:强制覆盖,如果目标文件已经存在,则不询问,直接强制覆盖;
  • -i:交互移动,如果目标文件已经存在,则询问用户是否覆盖(默认选项);
  • -n:如果目标文件已经存在,则不会覆盖移动,而且不询问用户;
  • -v:显示文件或目录的移动过程; Snipaste_2022-07-25_23-42-21.png

查找目录和文件(which,find命令)

which:查找文件和目录

只能找命令的位置

Snipaste_2022-07-25_23-50-27.png find:查找文件和目录

查找文件有locate和find

locate是模糊查询不是实时查询(Linux系统中有一个文件数据库,找这个数据库,找那些一直不改变的文件)刷新数据库用:Updatedb 应用范围比较窄 Snipaste_2022-07-25_23-51-51.png find

find [查找范围] [查找条件表达式] [处理动作]

  • 查找路径:指定具体目标路径;不指定为默认为当前目录
  • 查找条件:可以对文件名、大小、类型、权限等标准进行查找;默认为找出指定路径下的所有文件
  • 处理动作:对符合条件的文件做操作,默认输出至屏幕(print)
查找类型关键字说明
按名称查找-name根据目标文件的名称进行查找,允许使用“* ” 及“?” 通配符
按文件大小查找-size根据目标文件的大小进行查找
按文件属性查找-user根据文件是否属于目标用户进行查找
按文件类型查找-type根据文件的类型进行查找()文件文件类型包括普通文件(f)目录(d)块设备文件(b)字符设备文件(c)
按inode查找-inum根据文件inode号查找
按权限查找-perm按文件权限查找
最大搜索目录深度-maxdepthlevel将你的文件已分级的形式查找
最小搜索目录深度-mindepthlevel同上
  1. find -name 按名称查找

Snipaste_2022-07-26_00-19-39.png

2.find -size 按文件大小查找

Snipaste_2022-07-26_00-23-13.png 查找root目录下大于1024k的文件

Snipaste_2022-07-26_00-28-23.png 查找root文件下小于1M的文件

  • fao:文件大小不加+—号是一定范围,范围越精确越好
  1. find -user 按文件属主查找

Snipaste_2022-07-26_00-32-24.png

  1. find -type 按文件类型查找 f(普通文件) d(目录) c(字符文件) b(块设备)

Snipaste_2022-07-26_00-38-15.png

  1. find -inum 按照indoe查找

Snipaste_2022-07-26_00-38-25.png 6. find -maxdepth level -mindepth level

Snipaste_2022-07-26_00-36-48.png 7. find -mtime 按天数查找文件

Snipaste_2022-07-26_00-40-32.png

找到7天以上且文件类型为普通文件且大于1M的文件且删除

动作处理 默认

  1. print输出屏幕让你看一下
  2. ls 显示详细信息
  3. delete 直接删除
  4. ok 连接符 会询问
  5. exec 连接符 不会询问

find -name "*.txt"  -ok mv {} /mnt ;

 找到名字以txt结尾的文件

-ok  处理动作 连接 前面后面的命令    会询问你要不要这样处理

 mv    {}  代指前面 find找到的文件    /mnt  移动到的目录     \;固定格式 

不删除,移动文件

find -name '*.txt' -ok  mv {}  /mnt  ;

会询问

find -name '*.txt' -exec mv {} /mnt ;

不会询问

alias:别名

将常用的一些比较复杂的命令简单化 alias 自行定义的命令=‘常用的复杂命令’

Snipaste_2022-07-25_22-44-55.png Snipaste_2022-07-25_22-47-04.png

删除别名:unalias别名命令

所有使用命令修改的配置都是临时生效 只有修改配置文件(写入文件)才是永久生效

总结:学会使用Linux里面的基础命令用来修改文件或目录