目录结构&&必会命令①

2234 字
11 分钟
目录结构&&必会命令①

目录结构&&必会命令①#

[TOC]


碎碎念#

如何记忆命令#

如何有效提问#

对方可能在忙,没看见提问,当你解决问题后,一定要把总结再发给对方

⭐star法则#

英文: 星星


Linux系统目录结构#

目录结构概述#

image-20260620155029548
image-20260620155029548

Note

📌 一切从根 / 开始

⚠️ \ 这个是反斜线,不要搞混

image-20260620155045167
image-20260620155045167

windows 反斜线 C:\ # 120G固态硬盘 D:\ # 1T的机械硬盘 1T=1000G


📌 可以看出来Linux中它的效率高一点,找东西方便、快

Linux 类似windows只有一块c盘 斜线 /etc /oldboy.txt /etc/network/xx.txt

核心目录(根下)#

/proc和/sys#

📌 /proc/sys 类似,因为他们都是记录的内存中的信息,内存不占用磁盘,这两个目录存在,但是里面的内容不占用磁盘空间,所以叫他们为虚拟目录

/bin和/sbin#

在 Linux 系统中,/bin/sbin 都是存放**“可执行二进制文件(命令)“**的目录

/bin 存放所有用户(包括普通用户和 root)都可以使用的基本系统命令

/sbin 存放只有系统管理员(root) 才能使用的系统管理命令


路径表示形式#

练习示例#

🥶当我们小人来到了**/root目录下**

🌰 案例1. 进入到 /opt 目录

Terminal window
1)相对路径进入/opt目录下
[root@Kylin ~]# cd /
[root@Kylin /]# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
[root@Kylin /]# cd opt # 相对路径方式进入opt
[root@Kylin opt]# pwd
/opt
'当前路径为/opt'
========================================
2)绝对路径进入/opt目录
[root@Kylin ~]# cd /opt # 绝对路径方式进入opt
[root@Kylin opt]# pwd
/opt
'结果一样'

Linux系统核心命令#

tab键#

📌 自动补全(命令,路径)

命令#

  • tab键后

路径#

又或者非常经典的网卡路径

  • tab键后

💡 合理运用会有出其不意的效果


pwd#

📌 显示当前所在的路径 (print working directory)

Terminal window
# 直接回车
[root@Kylin ~]# pwd
/root
'显示当前工作目录'

cd#

📌 切换路径 (change directory)

Terminal window
1)直接回车 回到家目录
[root@Kylin ~]# cd
[root@Kylin ~]# pwd
/root
'回到家目录了'
2)cd ~
# 回到家目录
[root@Kylin ~]# cd ~
[root@Kylin ~]# pwd
/root
'同样回到~'

🧣以上两条命令等价

家目录: ~ 登录进去默认的所处的路径位置

image-20260620161551324
image-20260620161551324


. (点) — 当前目录 .. (点点) — 上一级目录

⚠️ cd - 返回上一次所在的目录位置

Terminal window
3)cd .
# 表示当前的目录
[root@Kylin ~]# cd .
[root@Kylin ~]# pwd
/root
'原地不动'
4)cd ..
# 表示上一级目录
[root@Kylin ~]# cd ..
[root@Kylin /]# pwd
/
'往上走了一层'
5)cd ../..
# 表示回到上两级目录
[root@Kylin network-scripts]# pwd
/etc/sysconfig/network-scripts/'☘️'
[root@Kylin network-scripts]# cd ../..
[root@Kylin sysconfig]# pwd
/etc/sysconfig
'从network-scripts回到了sysconfig'

mkdir#

📌 创建目录 make directory,如果目录存在则不会再创建

Caution
  • 脚本中 -p 选项可以重复创建 ✅ 不报错

💡 初期,建议大家用绝对路径创建目录

mkdir dir1 dir2#

📌 创建多个目录,中间用空格隔开

Terminal window
1)在/opt下创建1和2目录
[root@Kylin ~]# mkdir /opt/1 /opt/2
[root@Kylin ~]# ll /opt/
total 0
drwxr-xr-x 2 root root 6 10月 28 11:37 1
drwxr-xr-x 2 root root 6 10月 28 11:37 2
'两个目录都创建成功了'
========================================
2)在不同的路径下创建目录
[root@Kylin ~]# mkdir ./test01 /opt/test01 /etc/test01
# 创建了: 当前目录下./test01 /opt/test01 /etc/test01
'一次性在三个不同路径创建目录'

-p选项#

📌 ==递归==创建目录,目录不存在则创建、==存在则忽略==

Terminal window
# 案例: 创建多级目录a/b/c/d 使用-p参数
# -p 递归创建目录
[root@Kylin ~]# mkdir -p a/b/c
[root@Kylin ~]# ll
total 0
drwxr-xr-x 3 root root 15 10月 28 11:45 a
[root@Kylin ~]# tree a
a
└── b
└── c
'一口气创建了三级目录'

-v选项#

📌 显示创建过程


🧣tree#

📌 tree 树形结构显示目录

面试题#

统计一下某个目录下总共有多少个目录或者文件!

Terminal window
[root@Kylin ~]# tree /etc
...
313 directories, 826 files
# /etc/目录总共313个目录和826个文件
# 反思: 其实直接执行这条命令的时候,有许多冗余的显示,那么如何去取最后一行呢?
[root@Kylin ~]# tree /etc | tail -n 1
# tail -n 1 取最后一行即可

image-20260620161737543
image-20260620161737543


touch#

📌 创建普通文件,不存在则创建

  • ll 默认查看 modify 时间,即修改时间
    • 详细请参考 find详解

隐藏用法#

📌 文件存在 —> 则更新时间

Note

疑问: 上图变化的时间,究竟是什么时间? 访问access or 修改modify or 改变change

答案是: 实际上共同更新了该文件的 访问时间(access)修改时间(modify)改变(change)当前系统时间

image-20260620162357118
image-20260620162357118

Important

追溯一下这个 touch 命令: from Qwen3

  • touch 命令在 Linux/Unix 系统中主要用于更新文件的时间戳(都更新)
    • 但如果指定的文件不存在,touch 的默认行为是:✅️ 自动创建一个空文件(大小为 0 字节)

我们一直都在使用它的默认行为!

-a选项#

📌 仅更新访问时间(access)

-m选项#

📌 仅更新修改时间(modify)

touch a.txt b.txt#

📌 创建多个文件,中间用空格隔开

Terminal window
1)创建多个文件
[root@Kylin ~]# touch b.txt c.txt
[root@Kylin ~]# ll
total 0
-rw-r--r-- 1 root root 0 10月 28 11:08 b.txt
-rw-r--r-- 1 root root 0 10月 28 11:08 c.txt
'两个文件都创建好了'
========================================
2)在opt下创建oldboy.txt — 相对路径
[root@Kylin ~]# cd /opt/
[root@Kylin opt]# pwd
/opt
[root@Kylin opt]# touch oldboy.txt
'先cd到/opt再创建'
3)在opt下创建oldboy.txt — 绝对路径
[root@Kylin ~]# touch /opt/oldboy.txt
'一步到位,推荐'

touch ./d.txt#

📌 在当前路径下创建文件使用 ./

💡 建议大家,在当前目录下创建文件或者是目录,使用 ./文件./目录

而不是直接跟上文件或目录,从而避免犯错

Terminal window
[root@Kylin ~]# touch ./d.txt
[root@Kylin ~]# ll
total 0
-rw-r--r-- 1 root root 0 10月 28 11:14 d.txt
'在当前目录下创建了d.txt'

touch ../a.txt#

📌 在上一级目录创建文件

Terminal window
[root@Kylin ~]# touch ../a.txt
# 在/root的上一级 / 目录下创建a.txt

深层目录也可以使用:

Terminal window
# 在sysconfig目录下创建oldboy.txt
[root@Kylin network-scripts]# pwd
/etc/sysconfig/network-scripts/'☘️'
[root@Kylin network-scripts]# touch ../oldboy.txt
# ../ 就是上一级 /etc/sysconfig/

ls#

📌 显示文件和目录信息

ls#

📌 显示当前目录下所有的文件

ll -i#

📌 查看文件的详细信息以及inode号码

Terminal window
[root@oldboyedu ~]# ll -i oldboy.txt
67157818 -rw-r--r-- 1 root root 12 Nov 4 11:46 oldboy.txt
# 最前面的数字67157818就是inode号码

ls -l#

📌 显示文件的详细信息(modify修改时间)

ls -lh#

📌 人类可读的方式显示大小

📌 单位换算

1KB = 1024B 1MB = 1024KB 1GB = 1024MB 1TB = 1024GB

ll#

📌 ll 不是命令,llls -l 的外号

✅️ 执行 ll 相当于是执行的 ls -l

ls -lu#

  • ==小写的u==

📌 显示文件的详细信息(access访问时间)

ls -d#

📌 显示目录本身

💡 几乎不单独使用 -d 选项,啥也看不了

ls -ld 目录#

📌 显示目录本身的详细信息

💡 归根结底还是 -l 选项太强大了,查看详细信息

ls -l /etc/指定目录/#

📌 显示指定目录下所有的文件,查看的是目录里面的,而不是目录本身

Terminal window
# 案例: 显示指定目录/etc/sysconfig/下所有的文件和子目录
[root@oldboy /]# ls /etc/sysconfig/
anaconda dhcpd ip6tables kernel nftables.conf rsyslog
atd ebtables-config ip6tables-config man-db ...

ls oldboy.txt#

📌 查看文件是否存在

ls a.txt b.txt#

📌 查看多个文件

Terminal window
# 案例: 一次性查看多个文件
[root@text /]# ls a.txt b.txt
ls: cannot access a.txt: No such file or directory
ls: cannot access b.txt: No such file or directory
'文件不存在时会报错提示'

💡 记得用空格分隔就行

ls -a#

📌 显示系统中隐藏文件

Terminal window
# 案例: 查看当前目录的隐藏文件
[root@Kylin ~]# ls -a
. .. .bash_history .bash_logout .bash_profile .bashrc .cshrc .tcshrc
'以 . 开头的都是隐藏文件'

ls -lt#

📌 按照时间显示文件

💡 最新修改的文件在开头

ls -lrt#

📌 文件太多了,找出最新修改的文件,并显示在末尾

-r # 逆序显示文件


cat#

cat 文件#

📌 查看文件的内容

cat -A 文件#

📌 显示出文件中的特殊隐藏符号,每一行以 $ 结尾

cat -n 文件#

📌 显示行号

👽 这里总共8行

cat > 文件名#

📌 “覆盖""新建”内容

Terminal window
'> 是覆盖重定向,<<EOF是标准输入结束标记'
[root@Kylin ~]# cat > a.txt <<EOF
hehe
EOF
[root@Kylin ~]# cat a.txt
hehe

cat >> 文件名#

📌 追加内容

Terminal window
'>> 表示追加到文件末尾,不会覆盖原有内容'
[root@Kylin ~]# cat >> a.txt <<EOF
aaaa
bbbb
EOF
[root@Kylin ~]# cat a.txt
hehe
aaaa
bbbb

合并文件内容#

Terminal window
[root@Kylin ~]# echo aaa > a.txt
[root@Kylin ~]# echo bbb > b.txt
[root@Kylin ~]# cat a.txt
aaa
[root@Kylin ~]# cat b.txt
bbb
'将a.txt和b.txt中的内容合并到c.txt'
# 两个文件的内容 > 到一个文件里面去
[root@Kylin ~]# cat a.txt b.txt > c.txt
[root@Kylin ~]# cat c.txt
aaa
bbb
# 合并: 先cat多个文件,再用>重定向到新文件

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

目录结构&&必会命令①
https://www.kpyun.fun/posts/basics/core/core03/
作者
久棹
发布于
2025-07-18
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
久棹
只要胆子大,天天寒暑假!
公告
欢迎来到久棹的技术小站!本站专注 Linux 运维学习笔记分享,如有问题欢迎交流探讨 🎉
分类
标签
站点统计
文章
98
分类
11
标签
203
总字数
244,453
运行时长
0
最后活动
0 天前
站点信息
构建平台
Local
博客版本
Firefly v6.13.5
文章许可
CC BY-NC-SA 4.0

文章目录