【Linux】目录结构、路径、常用命令、常用热键
创始人
2025-05-28 18:34:48

目录

1. Linux目录结构

2. Linux路径

2.1 绝对路径和相对路径

2.2 特殊路径符

3. Linux常用命令

3.1 ls命令

3.2 pwd命令

3.3 cd命令

3.4 touch命令

3.5 mkdir命令

3.6 rmdir&rm

3.6.1 rmdir命令

3.6.2 rm命令

3.7 man命令

3.8 cp命令

3.9 mv命令

3.10 echo命令

3.10.1 反引号

3.10.2 重定向符

3.11 cat命令

3.12 more命令

3.13 less命令

3.14 head命令

3.15 tail命令

3.16 date命令

3.16.1 显示时间

3.16.2 设置时间

3.16.3 时间戳

3.17 cal命令

3.18 which命令

3.19 find命令 -name

3.20 grep命令

3.20.1 管道符

3.21 wc命令

3.22 zip&unzip

3.22.1 zip命令

3.22.2 unzip命令

3.23 tar命令

3.24 bc命令

3.25 uname命令

3.26 shutdown命令

4. Linux常用热键


1. Linux目录结构

Linux的目录结构是一个树形结构。

Windows系统可以拥有多个盘符,如 C盘、D盘、E盘。Linux没有盘符这个概念,只有一个根目录/,所有文件都在它下面。

在Windows系统中,路径之间的层级关系,使用\来表示。如,D:\data\work\hello.txt

在Linux系统中,路径之间的层级关系,使用/来表示。如,/usr/local/hello.txt

  • 开头的/表示根目录
  • 后面的/表示层级关系

2. Linux路径

2.1 绝对路径和相对路径

绝对路径:以根目录为起点,描述路径的一种写法,路径描述以/开头。

相对路径:以当前目录为起点,描述路径的一种写法,路径描述无需以/开头。

如图,通过pwd得知当前目录为/usr,通过cd命令切换工作目录到/usr/local/lib:

  • cd /usr/local/lib
  • cd local/lib

以上两种写法都可以切换工作目录到/usr/local/lib

2.2 特殊路径符

  • . 表示当前目录
  • .. 表示上一级目录
  • ~ 表示家目录(普通用户为/home/×××,root用户为/root)
  • - 表示上一次所在目录

3. Linux常用命令

Linux命令基础格式:

command [-options] [parameter]

command:命令本身

-options:[可选,非必填] 命令的一些选项,可以通过选项控制命令的行为细节

parameter:[可选,非必填] 命令的参数,多数用于命令的指向目标等

3.1 ls命令

全称:list

语法:

ls [选项] [目录或文件]

功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。

常用选项:

  • -a (all)列出目录下的所有文件,包括以.开头的隐藏文件。
  • -d 将目录像文件一样显示,而不是显示其下的文件。 如:ls –d指定目录
  • -i 输出文件的i节点的索引信息。 如ls –ai指定文件
  • -k 以k字节的形式表示文件的大小。ls –alk指定文件
  • -l (ls -l与ll相同)以列表(竖向排列)的形式列出文件的详细信息。
  • -n 用数字的 UID,GID 代替名称。
  • -F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示目录;“@”表示符号链接;“|”表示FIFOs;“=”表示套接字(sockets)。
  • -r 对目录反向排序。
  • -t 以时间排序。
  • -s 在l文件名后输出该文件的大小。
  • -R 列出所有子目录下的文件。
  • -1 一行只输出一个文件。

当不使用选项和参数,直接使用ls命令本体,表示:以平铺形式,列出当前工作目录下的内容。

使用ls -a:

可以看到,ls -a对比ls列出的内容更多了(包括以.开头的隐藏文件)。

选项是可以组合使用的,比如

  • ls -l -a
  • ls -la
  • ls -al

上述三种写法,都是一样的,表示同时应用-l和-a的功能。

除了选项本身可以组合以外,选项和参数也可以一起使用。

3.2 pwd命令

全称:print working directory

语法:

pwd

功能:显示用户当前所在的目录

 

3.3 cd命令

全称:change directory

语法:

cd 目录

功能:改变工作目录。将当前工作目录改变到指定的目录下。

3.4 touch命令

语法:

touch [选项] [文件]

功能:更改文档或目录的日期时间,包括存取时间和更改时间,若文件不存在,则创建一个新文件。

常用选项:

  • -a 或--time=atime或--time=access或--time=use,只更改存取时间。
  • -c 或--no-create,不建立任何文档。
  • -d 使用指定的日期时间,而非现在的时间。
  • -f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。
  • -m 或--time=mtime或--time=modify,只更改变动时间。
  • -r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。
  • -t 使用指定的日期时间,而非现在的时间。

3.5 mkdir命令

全称:make directory

语法:

mkdir [-p] 目录

功能:创建目录

-p选项可选,表示自动创建不存在的父目录,适用于创建连续多层级的目录。

3.6 rmdir&rm

3.6.1 rmdir命令

全称:remove directory

语法:

rmdir [-p] 目录

功能:删除空目录

-p选项可选,表示当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除。

3.6.2 rm命令

全称:remove

语法:

rm [选项] 目录或文件

功能:删除目录或文件

常用选项:

  • -f (force)即使文件属性为只读(即写保护),亦直接删除(强制删除)
  • -i 删除前逐一询问确认
  • -r 删除目录及其下所有文件

 

rm命令支持通配符*,用来做模糊匹配。符号*表示通配符,即匹配任意内容(包含空)。

  • test*,表示匹配任何以test开头的内容
  • *test,表示匹配任何以test结尾的内容
  • *test*,表示匹配任何包含test的内容

3.7 man命令

全称:manual

语法:

man [选项] 参数

功能:访问Linux手册页

常用选项:

  • -a 在所有的man帮助手册中搜索
  • -k 根据关键字搜索联机帮助,是模糊搜索
  • section 搜索领域

8个章节(section):

  • 1 普通的命令
  • 2 系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件)
  • 3 库函数,如printf,fread
  • 4 特殊文件,也就是/dev下的各种设备文件
  • 5 文件的格式,比如passwd,就会说明这个文件中各个字段的含义
  • 6 给游戏留的,由各个游戏自己定义
  • 7 附件还有一些变量,比如向environ这种全局变量在这里就有说明
  • 8 系统管理用的命令,这些命令只能由root使用,如ifconfig

按q键退出。

3.8 cp命令

全称:copy

语法:

copy [选项] 源文件或目录 目标文件或目录

功能:复制文件或目录。如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中;若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息。

常用选项:

  • -f 或--force,强行复制文件或目录,不论目的文件或目录是否已经存在
  • -i 或--interactive,覆盖文件之前先询问用户
  • -r 递归处理,将指定目录下的文件与子目录—并处理

 

3.9 mv命令

全称:move

语法:

mv [选项] 源文件或目录 目标文件或目录

功能:移动文件或目录;或重命名。

  • mv 文件名 文件名:将源文件名改为目标文件名
  • mv 文件名 目录名:将文件移动到目标目录
  • mv 目录名 目录名:目标目录已存在,将源目录移动到目标目录;目标目录不存在则改重命名
  • mv 目录名 文件名:error

常用选项:

  • -f  (force )若目标目录下已存在同名文件,则直接覆盖
  • -i  若目标目录下已存在同名文件,则询问是否覆盖

3.10 echo命令

全称:concatenate

语法:

echo 输出的内容

功能:输出指定内容

3.10.1 反引号

反引号 `:被`包围的内容,会被作为命令执行,而非普通字符

3.10.2 重定向符

  • >:输出重定向,将左侧命令的结果,覆盖写入到符号右侧指定的文件中
  • >>:追加重定向,将左侧命令的结果,追加写入到符号右侧指定的文件中

3.11 cat命令

全称:concatenate

语法:

cat [选项] 文件

功能:查看文件内容(内容全部显示到屏幕上)

常用选项:

  • -b 对非空输出行编号
  • -n 对输出的所有行编号
  • -s 不输出多行空行

3.12 more命令

语法:

more [选项] 文件

功能:查看文件内容(一页一页翻动,不支持向前翻页)

常用选项:

  • +n 从笫n行开始显示
  • -n 定义屏幕大小为n行

常用操作:

  • 空格键:向下翻一页
  • Enter:向下翻一行
  • /字串:代表在这个显示的内容当中,向下搜寻“字串”这个关键字
  • :f 立刻显示出文件名以及目前显示的行数
  • q:退出
  • b或[ctrl]-b:往回翻页,不过这动作只对文件有用,对管线无用

3.13 less命令

语法:

less [选项] 文件

功能:查看文件内容(一页一页翻动,支持向前翻页)

常用选项:

  • +n 从笫n行开始显示
  • -n 定义屏幕大小为n行

常用操作:

  • 空格键:向下翻一页
  • [pagedown]:向下翻一页
  • [pageup] :向上翻一页
  • /字串:向下搜寻“字串”这个关键字
  • ?字串:向上搜寻“字串”这个关键字
  • n :重复前一个搜寻 (与 / 或 ? 有关!)
  • N :反向的重复前一个搜寻 (与 / 或 ? 有关!)
  • g :前进到这个数据的第一行去
  • G :前进到这个数据的最后一行去 (注意大小写)
  • q :退出

3.14 head命令

语法:

head [选项] 文件

功能:显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行

常用选项:

  • -n<行数> 显示的行数

3.15 tail命令

语法:

tail [选项] 文件

功能:显示档案的末尾至标准输出中,默认tail命令打印其相应文件的末尾10行

常用选项:

  • -f 循环读取
  • -n<行数> 显示行数

3.16 date命令

3.16.1 显示时间

语法:

date +格式

格式参数:

  • %H:时(24小时制)
  • %M:分
  • %S:秒
  • %Y:年
  • %m:月
  • %d:日

3.16.2 设置时间

  • date -s 设置当前时间,只有root权限才能设置,其他只能查看
  • date -s 20080523 设置成20080523,这样会把具体时间设置成空00:00:00
  • date -s 01:01:01 设置具体时间,不会对日期做更改
  • date -s “01:01:01 2008-05-23″ 这样可以设置全部时间
  • date -s “01:01:01 20080523″ 这样可以设置全部时间
  • date -s “2008-05-23 01:01:01″ 这样可以设置全部时间
  • date -s “20080523 01:01:01″ 这样可以设置全部时间

3.16.3 时间戳

  • 时间->时间戳:date +%s
  • 时间戳->时间:date -d@1508749502

3.17 cal命令

全称:calendar

语法:

cal [选项] [[月份] 年份]

功能:显示日历

  • 如果没有参数,则显示当月日历
  • 如果只有一个参数,则表示年份
  • 如果有两个参数,则表示月份和年份

常用选项:

  • -3 显示系统前一个月,当前月,下一个月的月历
  • -j 显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)
  • -y 显示当前年份的日历

3.18 which命令

语法:

which 命令

功能:查找命令的路径

3.19 find命令 -name

语法:

find 起始目录 -name "文件名"

功能:从起始目录按文件名查找文件

find命令支持通配符*,用来做模糊匹配。符号*表示通配符,即匹配任意内容(包含空)。

  • test*,表示匹配任何以test开头的内容
  • *test,表示匹配任何以test结尾的内容
  • *test*,表示匹配任何包含test的内容

3.20 grep命令

全称:global regular expression print(全局正则表达式打印)

语法:

grep [选项] 字符串 文件

功能:在文件中搜索字符串,将找到的行打印出来

常用选项:

  • -i 忽略大小写的不同,所以大小写视为相同
  • -n 顺便输出行号
  • -v 反向选择,亦即显示出没有搜寻字符串内容的那一行

3.20.1 管道符

管道符 |:将管道符左边命令的结果,作为右边命令的输入

3.21 wc命令

全称:word count

语法:

wc [选项] 文件

功能:统计一个文件中的字节数、字符数、行数、字数

常用选项:

  • -c 统计字节数
  • -m 统计字符数
  • -l 统计行数
  • -w 统计字数

不使用选项则输出行数、字数和字节数。

3.22 zip&unzip

3.22.1 zip命令

语法:

zip [选项] 文件名.zip 目录或文件

功能:压缩目录或文件为zip格式

常用选项:

  • -r 递归处理将指定目录下的所有文件和子目录—并处理

 

3.22.2 unzip命令

语法:

unzip [选项] 文件名.zip

功能:解压缩zip格式的目录或文件到指定目录

常用选项:

  • -d<目录> 指定文件解压缩后所要存储的目录

3.23 tar命令

全称:tape archive

语法:

tar [选项] 目录或文件

功能:打包

常用选项:

  • -c (creat)创建打包文件,可搭配-v来查看过程中被打包的文件名
  • -x 解打包或解压缩的功能
  • -t 查看tarfile里面的文件名
  • -z 通过gzip的支持进行压缩/解压缩,此时文件名最好为*.tar.gz
  • -j 通过bzip2的支持进行压缩/解压缩,此时文件名最好为*.tar.bz2
  • -v 在压缩/解压缩的过程中,将正在处理的文件名显示出来
  • -f<文件> -f后面要立刻接要被处理的文件名
  • -C<目录> 解压到指定目录
  • -p 保留备份数据的原本权限与属性,常用于备份(-c)重要的配置文件
  • -P 保留绝对路径,亦即允许备份数据中含有根目录存在之意
  • --exclude=FILE 在压缩的过程中,不要将 FILE 打包!

范例一:将整个/etc目录下的文件全部打包成为/tmp/etc.tar

[root@linux ~]# tar -cvf /tmp/etc.tar /etc        <==仅打包,不压缩

[root@linux ~]# tar -zcvf /tmp/etc.tar.gz /etc  <==打包后,以gzip压缩

[root@linux ~]# tar -jcvf /tmp/etc.tar.bz2 /etc <==打包后,以bzip2压缩

范例二:查阅上述/tmp/etc.tar.gz文件内有哪些文件

[root@linux ~]# tar -ztvf /tmp/etc.tar.gz

范例三:将/tmp/etc.tar.gz文件解压缩在/usr/local/src底下

[root@linux ~]# cd /usr/local/src

[root@linux src]# tar -zxvf /tmp/etc.tar.gz

范例四:在/tmp底下,我只想要将/tmp/etc.tar.gz内的etc/passwd解开而已

[root@linux ~]# cd /tmp

[root@linux tmp]# tar -zxvf /tmp/etc.tar.gz etc/passwd

范例五:将/etc/内的所有文件备份下来,并且保存其权限

[root@linux ~]# tar -zxvpf /tmp/etc.tar.gz /etc

范例六:在 /home 当中,比2005/06/01新的文件才备份

[root@linux ~]# tar -N "2005/06/01" -zcvf home.tar.gz /home

范例七:我要备份/home, /etc,但不要/home/dmtsai

[root@linux ~]# tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc

范例八:将/etc/打包后直接解开在/tmp底下,而不产生文件

[root@linux ~]# cd /tmp

[root@linux tmp]# tar -cvf - /etc | tar -xvf -

3.24 bc命令

全称:binary calculator

语法:

bc [选项] 参数

功能:实现任意精度的计算(+-*/^%)

3.25 uname命令

全称:unix name

语法:

uname [选项]

功能:获取电脑和操作系统的相关信息

常用选项:

  • -a 或--all 显示全部的信息,包括内核名称、主机名、操作系统版本、处理器类型和硬件架构等
  • -m 或--machine 显示处理器类型
  • -n 或--nodename 显示主机名
  • -r 或--release 显示内核版本号
  • -s 或--sysname 显示操作系统名称
  • -v 显示操作系统的版本
  • -p 显示处理器类型(与-m选项相同)

3.26 shutdown命令

语法:

shutdown [选项]

功能:关机

常用选项:

  • -h 将系统的服务停掉后,立即关机
  • -r 在将系统的服务停掉之后就重新启动
  • -t seconds 设定在几秒钟之后关机

4. Linux常用热键

  • Tab 命令、目录、文件补全
  • Ctrl+C 终止命令
  • Ctrl+D 退出当前命令行,如果是切换过来的用户,则执行这个命令回退到原用户
  • Ctrl+R 搜索命令行使用过的历史命令记录

相关内容

热门资讯

【实验报告】实验一 图像的... 实验目的熟悉Matlab图像运算的基础——矩阵运算;熟悉图像矩阵的显示方法࿰...
MATLAB | 全网最详细网... 一篇超超超长,超超超全面网络图绘制教程,本篇基本能讲清楚所有绘制要点&#...
大模型落地比趋势更重要,NLP... 全球很多人都开始相信,以ChatGPT为代表的大模型,将带来一场NLP领...
Linux学习之端口、网络协议... 端口:设备与外界通讯交流的出口 网络协议:   网络协议是指计算机通信网...
kuernetes 资源对象分... 文章目录1. pod 状态1.1 容器启动错误类型1.2 ImagePullBackOff 错误1....
STM32实战项目-数码管 程序实现功能: 1、上电后,数码管间隔50ms计数; 2、...
TM1638和TM1639差异... TM1638和TM1639差异说明 ✨本文不涉及具体的单片机代码驱动内容,值针对芯...
Qt+MySql开发笔记:Qt... 若该文为原创文章,转载请注明原文出处 本文章博客地址:https://h...
Java内存模型中的happe... 第29讲 | Java内存模型中的happen-before是什么? Java 语言...
《扬帆优配》算力概念股大爆发,... 3月22日,9股封单金额超亿元,工业富联、鸿博股份、鹏鼎控股分别为3.0...
CF1763D Valid B... CF1763D Valid Bitonic Permutations 题目大意 拱形排列࿰...
SQL语法 DDL、DML、D... 文章目录1 SQL通用语法2 SQL分类3 DDL 数据定义语言3.1 数据库操作3.2 表操作3....
文心一言 VS ChatGPT... 3月16号,百度正式发布了『文心一言』,这是国内公司第一次发布类Chat...
CentOS8提高篇5:磁盘分...        首先需要在虚拟机中模拟添加一块新的硬盘设备,然后进行分区、格式化、挂载等...
Linux防火墙——SNAT、... 目录 NAT 一、SNAT策略及作用 1、概述 SNAT应用环境 SNAT原理 SNAT转换前提条...
部署+使用集群的算力跑CPU密... 我先在开头做一个总结,表达我最终要做的事情和最终环境是如何的,然后我会一...
Uploadifive 批量文... Uploadifive 批量文件上传_uploadifive 多个上传按钮_asing1elife的...
C++入门语法基础 文章目录:1. 什么是C++2. 命名空间2.1 域的概念2.2 命名...
2023年全国DAMA-CDG... DAMA认证为数据管理专业人士提供职业目标晋升规划,彰显了职业发展里程碑及发展阶梯定义...
php实现助记词转TRX,ET... TRX助记词转地址网上都是Java,js或其他语言开发的示例,一个简单的...
【分割数据集操作集锦】毕设记录 1. 按要求将CSV文件转成json文件 有时候一些网络模型的源码会有data.json这样的文件里...
Postman接口测试之断言 如果你看文字部分还是不太理解的话,可以看看这个视频,详细介绍postma...
前端学习第三阶段-第4章 jQ... 4-1 jQuery介绍及常用API导读 01-jQuery入门导读 02-JavaScri...
4、linux初级——Linu... 目录 一、用CRT连接开发板 1、安装CRT调试工具 2、连接开发板 3、开机后ctrl+c...
Urban Radiance ... Urban Radiance Fields:城市辐射场 摘要:这项工作的目标是根据扫描...
天干地支(Java) 题目描述 古代中国使用天干地支来记录当前的年份。 天干一共有十个,分别为:...
SpringBoot雪花ID长... Long类型精度丢失 最近项目中使用雪花ID作为主键,雪花ID是19位Long类型数...
对JSP文件的理解 JSP是java程序。(JSP本质还是一个Servlet) JSP是&#...
【03173】2021年4月高... 一、单向填空题1、大量应用软件开发工具,开始于A、20世纪70年代B、20世纪 80年...
LeetCode5.最长回文子... 目录题目链接题目分析解题思路暴力中心向两边拓展搜索 题目链接 链接 题目分析 简单来说࿰...