02_目录与文件操作

今日重点

一、Linux目录结构

Linux 系统的目录结构采用层次化设计,它不像windows系统有盘符概念,它没有盘符这个概念,一切从根目录 / 开始逐级扩展,了解和掌握这些目录的作用和内容有助于我们更好地管理和维护系统。

Linux中万物即文件
image

Linux常见目录结构(高亮部分的要格外注意)

目录作用
/bin常用命令件,如 ls, cp, rm,bin目录下面的命令是所有的用户都能执行的
/boot系统引导程序所需要的文件目录,相当于Windows中的C盘
/dev/device缩写,设备文件,磁盘,光驱,网卡
/etc系统和应用配置文件,如 /etc/hosts, /etc/passwd,/etc/hostname
/home普通用户的家目录,默认用户数据存放目录,itheima账号 => /home/itheima文件夹
/lib共享库文件和内核模块存放目录,软件安装、运行依赖库文件.a、.so文件
/mnt临时挂载储存设备的挂载点,插入u盘、移动硬盘
/opt额外的应用软件包, 安装jdk、tomcat等 (二进制安装)
/procprocess进程目录,操作系统运行时,进程信息和内核信息存放在这里 查看
/rootLinux超级权限用户root的家目录,超级管理员root => /root
/sbin系统管理员命令,如 reboot,shutdown
/tmp临时文件目录,这个目录被当作回收站使用
/usr/local用户或系统软件应用程序目录,一般为源码安装软件,默认都指向到此
/var存放可变数据,如日志、缓存、数据库数据
bin装工具(命令),sbin装管理,etc配配置,home住用户,usr装应用,var变不停,boot来启动,tmp暂时存

二、目录文件相关命令

在 Linux 中,“目录”就像文件夹,是组织和存放文件的基础结构。

常见操作包括:

2.1、定位、查看与切换

image

2.1.1、pwd定位[我在哪]

pwd(print working directory):显示当前工作路径

用途:调试脚本时确认当前目录、登录远程系统后快速定位位置(路径)。

语法:pwd

示例:

# pwd得到的路径为绝对路径
# 查看当前所在的位置,返回位置的路径  以root登录
[root@node01 ~]# pwd
# 返回的路径  -- 绝对路径
/root

# 普通用户 ~ 家目录就在 /home下面   以普通用户登录的
[itwu@node1 ~]$ pwd
/home/itwu

注意事项:

2.1.2、cd切换目录路径[我要去哪]

cd(change directory):切换目录路径

cd命令它不是shell命令,它是内置命令,在今后的shell脚本中只能用cd去用。

    # 相对于某个参照路径来进行的
    ## .   当前路径    ./a => 当前目录下面a
    ## ..  上一级路径  ../a => 上一级路径下面的a
    
    路径分割符:Linux中路径分割符为 /
               window中路径分割符为 \
    ###  在Linux中它是以/来开始就是绝对路径, 第1个位置一定为 /
    ###  建议:在Linux建议如果以后大家要用到路径时,对你新手全用绝对路径。
命令含义
cd切换到用户家目录(root用户主目录是/root,其他用户是/home/用户名)等价于 cd ~
cd 目录切换到指定目录下 => cd /etc
cd ..切换到上级目录
cd -返回上一次所在目录
# 查看当前工作路径
[root@node1 ~]# pwd
/root

# 现在要去itwu用户的家目录下面   绝对路径
[root@node1 ~]# cd /home/itwu
# 检查一下
[root@node1 itwu]# pwd
/home/itwu

# 现在回 root 用户的家目录下面  相对路径
[root@node1 itwu]# cd ../../root
# 检查一下
[root@node1 ~]# pwd
/root

# 回退到上一次路径   上一步cd就是从/home/itwu路径切换到 /root中
[root@node1 ~]# cd -
/home/itwu

# 快速回到用户的家目录,此处用root为例
# 1.指定回到家目录路径
[root@node1 itwu]# cd /root
[root@node1 ~]# cd -
/home/itwu
# 2.通过~符号来切换
[root@node1 itwu]# cd ~
[root@node1 ~]# cd -
/home/itwu
# 3.直接cd就可以了
[root@node1 itwu]# cd
[root@node1 ~]# pwd
/root

# 切换到上一级目录下面
[root@node1 ~]# cd ..

2.1.3、ls列出目录的内容[我下面有谁]

ls(list show):列出目录的内容,是用户最常用的命令之一

ls常用选项:

语法:

选项含义
-a/-Aall所有, 显示指定目录下所有子目录与文件, 包含隐藏文件 <br/>-a 它会显示 . 和 .. <br/>-A 不会显示 . 和 .. <br/>linux中规定,一个文件或目录,它是以 .开头才为隐藏文件 例:.a.txt 此文件为隐藏文件
-llist,以列表方式来显示目录下面的文件或子目录 <br/>ls -l 可以使用别名 ll命令来完成。
-h配合 -l 以人性化的方式显示文件大小(文件大小 + 单位)
-R递归列出所有子目录
Linux中,文件名或目录名只要是以 .开头,它就是隐藏文件或目录
ls -a执行后,出现隐藏文件或目录同时还有两个特殊目录
# 查看 root家目录下面有哪些可见的文件或子目录
[root@node1 ~]# pwd
/root
[root@node1 ~]# ls
anaconda-ks.cfg

# 显示所有的文件或子目录,包含隐藏文件 -a/A
[root@node1 ~]# ls -a
.   anaconda-ks.cfg  .bash_logout   .bashrc  .cshrc  .tcshrc
..  .bash_history    .bash_profile  .cache   .ssh    .Xauthority

# 显示有用的文件不显示.和..
[root@node1 ~]# ls -A
anaconda-ks.cfg  .bash_logout   .bashrc  .cshrc  .tcshrc
.bash_history    .bash_profile  .cache   .ssh    .Xauthority

# ls还可以指定要查的路径
[root@node1 ~]# ls /boot
config-5.14.0-511.el9.x86_64
efi
grub2
initramfs-0-rescue-389b2e0587bf43e09900886cf05e57c4.img

# 列表指定目录下面所有层级的文件列表 -R   不常用
[root@node1 ~]# ls -R /boot
/boot:
config-5.14.0-511.el9.x86_64
efi
grub2
initramfs-0-rescue-389b2e0587bf43e09900886cf05e57c4.img
initramfs-5.14.0-511.el9.x86_64.img
initramfs-5.14.0-511.el9.x86_64kdump.img

# 以树状形式来展示所有层级的文件列表  tree 命令  ==> tree 路径
[root@node1 ~]# tree /boot
/boot
├── config-5.14.0-511.el9.x86_64
├── efi
│   └── EFI
│       ├── BOOT
│       │   ├── BOOTX64.EFI
│       │   └── fbx64.efi

# 以详细列表的方式来展示 -l
# ls -l 它有一个别名 ll
# 选项可以组合一起来使用
[root@node1 ~]# ls -la
总用量 4
- 文件  d 目录
rw-------.  权限
root root 权限
1 引用数,硬链接数
1456 文件大小 默认为字节 1024byte = 1kb  1024kb = 1mb  1024mb = 1gb 1024gb = 1tb 1024tb = 1pb
4月 16 16:56 修改时间,如果超过半年,才它的显示会不太一样 年月日
anaconda-ks.cfg 文件名称
-rw-------. 1 root root 1456  4月 16 16:56 anaconda-ks.cfg
drwx------.  2 root root    6  4月 16 16:49 .ssh

# 使用 ll 别名来完成列表的详细展示
[root@node1 ~]# ll
总用量 4
-rw-------. 1 root root 1456  4月 16 16:56 anaconda-ks.cfg
[root@node1 ~]# ll -a
总用量 32
dr-xr-x---.  4 root root  180  4月 17 14:49 .
dr-xr-xr-x. 18 root root  235  4月 16 16:49 ..
-rw-------.  1 root root 1456  4月 16 16:56 anaconda-ks.cfg
-rw-------.  1 root root  253  4月 17 12:03 .bash_history

# 详细列表中以人性化单位来显示 -h
[root@node1 ~]# ll -h
总用量 4.0K
-rw-------. 1 root root 1.5K  4月 16 16:56 anaconda-ks.cfg

2.2、目录管理命令

2.2.1、创建目录(mkdir)

mkdir(make directory):创建目录

# 语法
mkdir [-p] 路径

参数说明:
-p:parents一次创建多级空目录

命令作用:

执行结果:

关键参数:

注意事项:

/data

.

./web


**关键参数:**

**注意事项:**

/data
.

--------------------------------------复制文件--------------------------------------------
1.txt



/home/itwu

--------------------------------------复制目录--------------------------------------------



注意事项:

作用:mv(move)命令用于文件、目录的移动和重命名



.

.

.

.

.

.


.

注意事项:


.

============================================================




.
.

注意事项:

搜索条件:按什么标准找(如文件名、大小、时间、类型等)

单位说明(注意单位字母大小写): c:字节(默认单位) k:千字节(KB) M:兆字节(MB) G:吉字节(GB)


**注意事项:**


-------------------------------------------------------------------------------------
/etc/issue

/data/web/a.html

/data/web/a.html
/data/web/abc

/data
/data/web/a.html
/data/web/1a.html
/data/web/abc

/data/web/a.html
/data/web/1a.html
/data/web/1.html

/data/web/key.png
/data/web/a.html
/data/web/1.txt
/data/web/1a.html
/data/web/1.html

/data/web/1.html

/data/web/a.html
/data/web/1.txt
/data/web/1a.html
/data/web/key.png



注意事项:


**注意事项:**



按以下任意键可进入插入模式:


| 键 | 说明 |
|---|---|
| **`i`** | 在光标前插入 |

注意事项:

命令作用
:w保存文件
:q退出不保存(你只是打开了文件没有编辑,如果有编辑则一定要强退出)
:wq保存并退出
:q!强制退出不保存
:x保存并退出(和 :wq 类似) 是小写字母x

语法::/关键词

:/hello


**注意事项:**



语法:**`:%s/旧词/新词/g`**



:%s/hello/world/g

注意事项:

此命令是早期centos用来查看ip地址的命令,但现在已经不是默认,但公司中还是使用此命令用来查看ip地址为首选,因此需要安装一个net-tools软件,如果你安装的是图形无需要安装,默认已安装。


![](/assets/feishu-images/8806212c99f5af88487aacf1.png)


此命令是现在centos默认就支持的命令,无需安装即可使用
参数作用
-c指定发送次数(默认无限)
-w超时秒数