Linux基础指令上
pwd指令与linux文件结构pwd指令指令pwd功能查看别人所处工作目录-bash-4.2# pwd /root -bash-4.2#linux文件结构Linux的文件是一颗多叉树非叶子节点非空目录。叶子节点空目录或者普通文件ls指令与常用选项以及linux中的文件1.1ls指令语法ls [选项] [目录或文件]功能对于目录该命令列出该目录下的所有子目录与文件对于文件将列出文件名以及其它信息常用选项-a列出目录下所有文件包括以 . 开头的隐含文件-d将目录像文件一样显示而不是显示其下的文件如ls -d 指定目录-l 列出当前工作目录下的文件的详细信息选项组合效果查表选项可以连用连用选项没有固定格式要求可以是 -a -l;或者是-l -a;-al;-la-bash-4.2# ls -a . .. .bash_history .cache .config .lesshst mulu01 test01.c test.c-bash-4.2# ls -l total 12 drwxr-xr-x 4 root root 4096 Mar 31 20:24 mulu01 -rw-r--r-- 1 root root 48 Mar 31 20:05 test01.c -rw-r--r-- 1 root root 13 Mar 31 20:06 test.c -bash-4.2#-bash-4.2# ls -al total 36 drwxr-xr-x 5 root root 4096 Mar 31 20:24 . dr-xr-xr-x. 19 root root 4096 Apr 6 15:59 .. -rw------- 1 root root 1430 Apr 5 21:19 .bash_history drwxr-xr-x 3 root root 4096 Mar 30 17:27 .cache drwxr-xr-x 3 root root 4096 Mar 30 17:27 .config -rw------- 1 root root 51 Mar 31 20:34 .lesshst drwxr-xr-x 4 root root 4096 Mar 31 20:24 mulu01 -rw-r--r-- 1 root root 48 Mar 31 20:05 test01.c -rw-r--r-- 1 root root 13 Mar 31 20:06 test.c-bash-4.2# cd /root/mulu01 -bash-4.2# ls -d . -bash-4.2# ls -ld drwxr-xr-x 4 root root 4096 Mar 31 20:24 . -bash-4.2# ls -ald drwxr-xr-x 4 root root 4096 Mar 31 20:24 .ls -d为什么只显示一个点其意思是列出当前目录本身所以就只有一个点-a和-d在同一条指令时只会发挥-d不会发挥-a的作用看似冲突了但其实它们并不冲突而是作用的对象和层级完全不同-a管的是范围就是进行扫描时是否要扫描隐藏文件-d管的是行为是否要把目录本身当作普通文件有了-d时就会只扫描当前目录-bash-4.2# cd /root/mulu01 -bash-4.2# ls -d . -bash-4.2# ls -ld drwxr-xr-x 4 root root 4096 Mar 31 20:24 . -bash-4.2# ls -ald drwxr-xr-x 4 root root 4096 Mar 31 20:24 . -bash-4.2# ls -al /root/mulu01 total 32 drwxr-xr-x 4 root root 4096 Mar 31 20:24 . drwxr-xr-x 5 root root 4096 Mar 31 20:24 .. drwxr-xr-x 3 root root 4096 Mar 31 20:02 mulu03 drwxr-xr-x 2 root root 4096 Mar 30 17:33 nihao01 -rw-r--r-- 1 root root 3257 Mar 31 20:17 test01 -rw-r--r-- 1 root root 4495 Mar 31 20:23 test02 -rw-r--r-- 1 root root 297 Mar 31 20:24 test03 -bash-4.2#ls可以指定目录1.2linux中的文件初步介绍首先目录就是文件夹。文件夹有文件名和文件属性。文件属性有文件的名称文件的各种时间如修改时间创建时间。我们学习文件是学习堆文件内容的操作和对文件属性的操作。这里ls指令就是显示文件信息ls只显示文件的名称ls-l显示的是文件的详细信息文件属性-bash-4.2# ls -l total 8 drwxr-xr-x 2 root root 4096 Apr 6 16:29 mulu07 drwxr-xr-x 2 root root 4096 Mar 31 20:02 nihao01 -rw-r--r-- 1 root root 0 Mar 31 20:02 test01其中 -开头就是普通文件d开头就是目录除此之外文件名以.和..开头的就是隐藏文件需要ls-a才能显示出来任何目录下都会有这两个文件即使目录是空的具体作用后续讲解如果我们想要查找一个文件的详细状态信息可以使用stat指令文件名解决-bash-4.2# stat /root/mulu01/mulu03/mulu01/test01 File: ‘/root/mulu01/mulu03/mulu01/test01’ Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: fd01h/64769d Inode: 786450 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2026-03-31 20:02:36.075569579 0800 Modify: 2026-03-31 20:02:36.075569579 0800 Change: 2026-03-31 20:02:36.075569579 0800 Birth: - -bash-4.2#科普内容这里的三个时间都是什么意思Access: 2026-03-31 20:02:36 (访问时间)最后一次读取文件内容的时间。Modify: 2026-03-31 20:02:36 (修改时间)最后一次修改文件内容的时间。Change: 2026-03-31 20:02:36 (状态改变时间)最后一次修改文件**元数据属性**的时间。mkdir指令---创建文件夹3.1mkdir指令的使用功能创建新的工作目录指令语法mkdir新的工作目录名称-bash-4.2# tree . |-- nihao01 | -- test789.txt -- test01 1 directory, 2 files -bash-4.2# mkdir mulu07 -bash-4.2# tree . |-- mulu07//多了一个目录 |-- nihao01 | -- test789.txt -- test01 2 directories, 2 files -bash-4.2#3.2mkdir的常用选项touch指令与时间戳4.1touch指令的使用功能1.创建新文件2.修改文件时间语法touch 文件名-bash-4.2# tree . 0 directories, 0 files -bash-4.2# touch file01.txt -bash-4.2# tree . -- file01.txt 0 directories, 1 file -bash-4.2#修改文件时间-bash-4.2# stat file01.txt File: ‘file01.txt’ Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: fd01h/64769d Inode: 786456 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2026-04-07 08:18:36.851113831 0800 Modify: 2026-04-07 08:18:36.851113831 0800 Change: 2026-04-07 08:18:36.851113831 0800 Birth: - -bash-4.2# touch file01.txt -bash-4.2# stat file01.txt File: ‘file01.txt’ Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: fd01h/64769d Inode: 786456 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2026-04-07 08:23:02.769923455 0800 Modify: 2026-04-07 08:23:02.769923455 0800 Change: 2026-04-07 08:23:02.769923455 0800 Birth: - -bash-4.2#touch后面的文件名如果存在那就是修改文件时间AccessModifyChange如果不存在就是创建新文件4.2时间戳的概念补充时间戳Timestamp是计算机记录特定事件如文件创建、数据修改或交易发生发生时刻的一组数字它像是一把数字刻度尺通常以从“格林威治时间 1970 年 1 月 1 日 0 时”开始计算的总秒数即 Unix 时间戳来表示从而确保在不同系统、不同时区之间都能拥有一个统一、唯一且可精确比较的时间参照。格林威治时间 1970 年 1 月 1 日 0 时——东八区1月1日上午8点。时间戳为0我写这篇博客的时候的时间戳为1775527771。cd指令与linux中的路径功能切换工作目录语法cd空格路径-bash-4.2# tree . |-- mulu01 | |-- mulu03 | | -- mulu01 | | |-- nihao01 | | | -- test789.txt | | -- test01 | |-- nihao01 | | -- test789.txt | |-- test01 | |-- test02 | -- test03 |-- test01.c -- test.c 5 directories, 8 files -bash-4.2# cd /root/mulu01 -bash-4.2# pwd /root/mulu01Linux终端的路径分为绝对路径和相对路径绝对路径从根目录root开始向下查找的路径配置文件中用的多一些相对路径从任何目录开始查找得到的路径在日常使用的多cd和相对路径有关的其他用法和一一演示cd -切回到你上一次所在的目录。 cd ~直接飞回root目录。 cd . .到上级目录rm删除指令与rmdir指令与通配符rm指令功能删除任何可以被删除的文件/目录语法rm 要删除的文件目录常用指令组合rmdir指令----删除空目录功能删除一个空目录语法rm 要删除的空目录-bash-4.2# tree . |-- mulu01 | |-- nihao01 | | -- test789.txt | |-- test01 | |-- test02 | -- test03 -- test.c 2 directories, 5 files -bash-4.2# rmdir /root/mulu01 rmdir: failed to remove ‘/root/mulu01’: Directory not empty -bash-4.2# mkdir mulu02 -bash-4.2# tree . |-- mulu01 | |-- nihao01 | | -- test789.txt | |-- test01 | |-- test02 | -- test03 |-- mulu02 -- test.c 3 directories, 5 files -bash-4.2# rmdir mulu02 -bash-4.2# tree . |-- mulu01 | |-- nihao01 | | -- test789.txt | |-- test01 | |-- test02 | -- test03 -- test.c 2 directories, 5 files -bash-4.2#模糊操作---*通配符含义匹配任意长度的任何字符ls *.txt:找所有以.txt结尾的文件ls mulu*:找所有以mulu开头的文件ls test:找出所有文件里面带test的文件rm -rf *删除当前目录下所有非隐藏内容除了隐藏文件* 还不能通配什么通配符 * 的设计原则是匹配文件名中的字符但为了安全和结构上的考虑它有两个明确的“禁区”路径分隔符 /* 不能匹配目录分隔符。它只能在同一个目录层级内匹配文件名无法跨目录匹配。例如在 /home/user 目录下执行 ls *它会列出该目录下的所有文件但不会列出 /home/user/subfolder/file.txt 这样的深层文件。如果你要匹配深层文件需要使用 ls **需要先通过 shopt -s globstar 开启 globstar 选项。路径起始的 . 和 ..* 永远不会匹配当前目录 . 和上级目录 ..。即使你使用专门匹配隐藏文件的 .*Shell 也会在内部安全地处理避免对这两个特殊目录进行操作。