Linux笔记03: Linux常用命令_3.2目录操作命令
3.2 目录操作命令
3.2.1 ls命令
●命令名称:ls。
●英文原意:list directory contents。
●所在路径:/usr/bin/ls。
●执行权限:所有用户。
●功能描述:列出目录内容。
(1)命令格式
[root@localhost ~]# ls [选项] [文件名或目录名]
选项:
-a: 显示所有文件
--color=when: 支持颜色输出,when的值默认是always(总显示颜色),也可以是
never(从不显示颜色)和auto(自动)
-d: 显示目录信息,而不是目录下的文件
-h: 人性化显示,按照我们习惯的单位显示文件大小
-i: 显示文件的i节点号
-l: 长格式显示
(2)常见用法
①“-a”选项中的a是all的意思,也就是显示所有文件(包括隐藏文件)。例如:
[root@localhost ~]# ls -a
. anaconda-ks.cfg .bash_profile .cache .cshrc initial-setup-ks.cfg .xauthzjMlTg
.. .bash_logout .bashrc .config .dbus .tcshrc
列出了以“.”开头的隐藏文件。
隐藏文件不是为了把文件藏起来不让其他用户找到,而是为了告诉用户这些文件都是重要的系统文件,如非必要,不要乱动!所以,不论是Linux还是Windows都可以非常简单地查看隐藏文件。
②“-d”选项显示目录本身的信息,例如:
[root@localhost ~]# ls -ld /root
dr-xr-x---. 5 root root 204 Nov 27 09:09 /root
③“-h”选项按照人们习惯的单位显示文件大小,例如:
[root@localhost ~]# ls -lh
total 8.0K
-rw-------. 1 root root 1.7K Nov 27 2022 anaconda-ks.cfg
-rw-r--r--. 1 root root 1.7K Nov 27 2022 initial-setup-ks.cfg
④“-i”选项用来查看文件的inode号,例如:
[root@localhost ~]# ls -i
16797762 anaconda-ks.cfg 16797786 initial-setup-ks.cfg
每个文件都有一个被称作inode(i节点)的隐藏属性,可以看成系统搜索这个文件的ID。
⑤“-l”选项用于显示文件的详细信息,例如:
[root@localhost ~]# ls -l
total 8
-rw-------. 1 root root 1649 Nov 27 2022 anaconda-ks.cfg
-rw-r--r--. 1 root root 1677 Nov 27 2022 initial-setup-ks.cfg
“-l”选项显示的7列,含义分别是:
●第一列:权限。
●第二列:引用计数。文件的引用计数代表该文件的硬链接个数,而目录的引用计数代表该目录有多少个一级子目录。
●第三列:所有者。也就是这个文件属于哪个用户,默认所有者是文件的建立用户。
●第四列:所属组。默认所属组是文件建立用户的有效组,一般情况下就是建立用户的所在组。
●第五列:大小。默认单位是字节。
●第六列:文件修改时间。文件状态修改时间或文件数据修改时间都会更改这个时间,注意这个时间不是文件的创建时间。
●第七列:文件名。
3.2.2 cd命令
●命令名称:cd。
●英文原意:change directory。
●所在路径:/usr/bin/cd(Shell内置命令)。
●执行权限:所有用户。
●功能描述:切换所在目录。
Linux的命令按照来源方式分为两种:Shell内置命令和外部命令。
所谓Shell内置命令,就是Shell自带的命令,这些命令是没有执行文件的;而外部命令就是由程序员单独开发的,是外来命令,所以会有命令的执行文件。
[root@localhost ~]# cat /usr/bin/cd
#!/bin/sh
builtin cd "$@"
Linux中的绝大多数命令是外部命令,而cd命令是一个典型的Shell内置命令。
(1)命令格式
[root@localhost ~]# cd [目录名]
选项:
-P:(大写)如果切换的目录是软链接目录,则进入其原始的物理目录,而不是进入软链接目录;
-L: 如果切换的目录是软链接目录,则直接进入软链接目录。
(2)常见用法
①基本用法:只需在cd命令后加目录名即可。例如:
[root@localhost ~]# cd /usr/local/src/
[root@localhost src]#
②简化用法:cd命令可以识别一些特殊符号,用于快速切换所在目录,这些符号如下表所示。
特殊符号 |
含义 |
~ |
用户的家目录 |
- |
上次所在目录 |
. |
当前目录 |
.. |
上级目录 |
3.2.3 mkdir命令
●命令名称:mkdir。
●英文原意:make directories。
●所在路径:/usr/bin/mkdir。
●执行权限:所有用户。
●功能描述:创建空目录。
(1)命令格式
[root@localhost ~]# mkdir [选项] 目录名
选项:
-p: 递归创建目录
(2)常见用法
①创建目录
[root@localhost ~]# mkdir Layton
[root@localhost ~]# ls
anaconda-ks.cfg initial-setup-ks.cfg Layton
②递归创建目录
[root@localhost ~]# mkdir -p LaytonWang/Movies/Disney
[root@localhost ~]# cd LaytonWang/
[root@localhost LaytonWang]# ls
Movies
递归创建多级空目录,需要使用“-p”选项。
3.2.4 rmdir命令
●命令名称:rmdir。
●英文原意:remove empty directories。
●所在路径:/usr/bin/rmdir。
●执行权限:所有用户。
●功能描述:删除空目录。
(1)命令格式
[root@localhost ~]# rmdir [选项] 目录名
选项:
-p: 递归删除目录
(2)常见用法
①删除目录
[root@localhost ~]# rmdir Layton
rmdir命令只能删除空目录,一旦删除的目录中有内容,就会报错。例如:
[root@localhost ~]# rmdir LaytonWang
rmdir: failed to remove ‘LaytonWang/’: Directory not empty
②递归删除目录
[root@localhost ~]# rmdir -p LaytonWang/Movies/Disney
递归删除多级空目录,需要使用“-p”选项。
3.2.5 tree命令
●命令名称:tree。
●英文原意:list contents of directories in a tree-like format。
●所在路径:/usr/bin/tree。
●执行权限:所有用户。
●功能描述:显示目录树。
(1)安装tree
如果系统没有tree命令,需要联网并使用“yum -y install tree”命令安装tree。VMware下CentOS连接网络请参考“2.3 Linux网络连接”章节。
[root@localhost ~]# yum -y install tree
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.ustc.edu.cn
* extras: mirrors.ustc.edu.cn
* updates: mirrors.aliyun.com
base | 3.6 kB 00:00:00
extras | 2.9 kB 00:00:00
updates | 2.9 kB 00:00:00
updates/7/x86_64/primary_db | 18 MB 00:00:02
省略部分内容……
Complete!
(2)常见用法
①显示当前目录树
[root@localhost ~]# tree
.
├── anaconda-ks.cfg
├── initial-setup-ks.cfg
└── LaytonWang
└── Movies
└── Disney
3 directories, 2 files
②显示指定目录树
[root@localhost ~]# tree LaytonWang/
LaytonWang/
└── Movies
└── Disney
2 directories, 0 files
小结:
本节介绍目录操作相关命令。ls命令列出目录内容,“-l”选项显示文件的详细信息;cd命令切换所在目录,特殊符号“~”切换到用户家目录、“..”切换到上级目录;mkdir命令创建空目录,“-p”选项递归创建多级空目录;rmdir命令删除空目录,“-p”选项递归删除多级空目录;tree命令显示目录树,如果系统没有tree命令,需要联网并使用“yum -y install tree”命令安装tree。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通