Linux
cd命令详解
cd(change directory)命令是用户进行目录切换的基础工具。
基本用法
cd [目录路径]
:目录路径
是你想切换到的目标目录,如果路径包含空格或特殊字符,则需要使用引号
常见选项
选项 | 作用 |
---|---|
cd - |
切换到上一个工作目录。例如,如果你从 /home/user 切换到 /etc ,再执行 cd - 会返回 /home/user |
cd ~ |
切换到当前用户的主目录。无论你在哪里,输入 cd ..cd ~ 都会回到 /home/username |
cd .. |
切换到当前目录的父目录。例如,从 /home/user/Documents 切换到 /home/user 只需执行 cd .. |
绝对路径与相对路径
- 绝对路径:从根目录
/
开始的完整路径。例如,/home/user/Documents
- 相对路径:相对于当前目录的路径。例如,当前在
/home/user
,要进入Documents
,只需使用相对路径cd Documents
。
常见目录快捷方式
.
:表示当前目录。例如,cd . 并不会改变目录。..
:表示父目录,如前文提到。-
:表示上一个工作目录。~
:表示当前用户的主目录。
进阶技巧
- 自动补全:在大多数 Linux 终端中,可以使用
Tab
键自动补全目录名。例如,输入 cd Doc 后按 Tab,系统会自动补全为 cd Documents。 - 使用符号链接:符号链接(symbolic link)是文件系统中的一种快捷方式。通过
ln -s
命令创建符号链接,可以快速导航到常用目录。例如:
ln -s /home/user/Documents /home/user/docs
cd docs
- 使用环境变量:可以通过定义环境变量简化目录切换。例如,将
PROJECTS
环境变量设置为/home/user/Projects
,然后使用cd $PROJECTS
快速切换:
export PROJECTS=/home/user/Projects
cd $PROJECTS
export
命令在 Linux 和其他类 Unix 系统中用于设置或修改环境变量,并将其导出到子进程中
常见问题
- 路径错误:如果输入的路径不正确,系统会提示
No such file or directory
。此时需要检查路径拼写是否正确,或者该目录是否存在。 - 权限问题:某些目录可能需要更高权限才能访问。使用 sudo命令可以解决大部分权限问题:
sudo cd /root
- 符号链接陷阱:有时符号链接指向的目标可能不存在,导致无法切换。需要确保符号链接的目标目录是有效的
ls命令详解
ls命令(list)可用于列出指定路径下的文件(Linux中一切皆文件,目录也是文件的一种),如果不指定路径,单独运行ls命令,则默认路径为当前路径。
使用方式
ls [-options] [target path]
注:-a -l
= -al
得到的不同的文件颜色代表了不同的文件类型
常见选项
选项 | 作用 |
---|---|
-a | 显示指定路径中的所有文件,包括隐藏文件 |
-l | 显示文件的详细信息,包括文件类型,权限,所属用户,所属用户组,文件大小,上一次修改时间等 |
-h | 文件大小以KBytes为单位显示 |
-S | 按照文件大小顺序显示,默认从大到小;若要从小到大,可使用-Sr |
文件介绍
- .表示当前路径,…表示上一级路径,以.开头的文件在Linux中为隐藏文件。
- 默认的文件显示顺序是按照首字母的顺序进行排列的
-al的效果
第一行的total 72:表示当前目录下的所有内容大小为72Kbytes。除去第一行,剩余的信息可以分为6大块:
- 2: 共10个字母,
- 第1个字母表示文件类型
-
表示普通文件,d
表示目录文件,b
表示块设备文件,c
表示字符设备文件,l
表示链接文件,p
表示管道文件,s
表示socket文件
- 剩余的9个字母可以分为3组,分表表示所属用户,所属用户组,其他用户对该文件的读写权限
R
表示可读,W
表示可写,X
表示可执行,-
表示不具备相应权限
- 第1个字母表示文件类型
- 3: 紧跟在权限之后的1个数字,表示目录文件里面包含的目录文件数
- 包括普通目录文件和隐藏目录文件
- 如果是文件,则表示该文件的链接数
- 4: 所属用户
- 5: 所属用户组
- 6: 文件大小,以字节为单位
- 注:使用
-h
会转变为以KBytes为单位
- 注:使用
- 7: 文件的mtime
mkdir命令详解
mkdir命令的全称是make directories,使用时若指定目录不存在则创建目录。若指定目录已存在,则会提示已存在而不继续创建。
注意:touch与mkdir的区别: touch是创建文件, mkdir是创建文件夹
使用语法
mkdir [options] directory
常见选项
选项 | 作用 |
---|---|
-m, --mode=<MODE> |
设置权限模式(类似 chmod) |
-p, --parents |
需要时创建目标目录的上层目录,但即使这些目录已存在也不当作错误处理 |
-v, --verbose |
每次创建新目录都显示信息 |
-Z |
将每个创建的目录的 SELinux 安全环境设置为 默认类型 |
--context[=<CTX>] |
像 -Z,或者如果指定了 CTX,则将 SELinux 或 SMACK 安全上下文设置为 CTX |
--help |
显示此帮助信息并退出 |
--version |
显示版本信息并退出 |
创建单级目录
例如,目前已经有/home/user/hello目录,我们想在hello目录下再创建一个world目录,那么我们可以运行如下命令:mkdir /home/user/hello/world
也可以先切换至hello目录,再创建world目录,即:
cd /home/user/hello
再mkdir world
创建多级目录
需要使用-p选项。例如:在/home/user/hello目录下创建world1/world2/world3目录,可以使用如下命令:
cd /home/user/hello
再mkdir -p world1/world2/world3
man命令详解
用于查看命令、函数及系统调用等的操作说明文档的工具,是manual(操作说明)的缩写
使用语法
man 需要查询的命令
使用效果
通常来说,man page会包含如下几方面的内容
模块 | 内容说明 |
---|---|
NAME | 简短的命令,数据名称说明 |
SYNOPSIS | 简短的命令执行语法(syntax)简介 |
DESCRIPTION | 较为完成的命令说明,可以重点阅读 |
OPTIONS | 针对SYNOPSIS部分中,所有可用的选项说明 |
COMMANDS | 这个程序(软件)在执行的时候,可以在此程序(软件)中执行的命令 |
FILES | 这个程序或数据所使用/参考/链接到的某些文件 |
SEE ALSO | 这个命令或数据的有关其他说明 |
EXAMPLE | 一些可以参考的范例 |
BUGS | 是否有相关的错误 |
man page的第一行显示了命令名称加上括号里的一个数字,这个数字是具有一定意义的。
数字 | 含义 |
---|---|
1 | 用户在shell环境中可以操作的命令或可执行文件 |
2 | 系统内核可调用的函数与工具等 |
3 | 一些常用的函数与函数库,大部分为c的函数库(libc) |
4 | 设备文件的说明,通常为/dev下的文件 |
5 | 配置文件或者是某些文件的格式 |
6 | 游戏 |
7 | 惯例与协议等,例如Linux文件系统,网络协议等 |
8 | 系统管理员可用的管理命令 |
9 | 与kernel有关的文件 |
cp命令详解
用来复制文件或者目录,cp即是cppy的缩写
语法格式
cp [options] source destination
- 例如,当前目录下有一个test.txt文件,我想把它拷贝到同路径下的doc目录内,那么可以运行如下命令:
cp ./test.txt ./doc/
- 如果在复制文件的同时,还想对其重命名的话,可以在拷贝的时候指定新的名字。还是上面那个例子,将test.txt拷贝到./doc目录的同时,还希望将其重命名为test_bak.txt,那么可以使用如下命令:
cp ./test.txt ./doc/test_bak.txt
- 如果是对目录进行copy的话,需要加上
-r
选项,以实现对目录的递归拷贝。例如,当前目录下有一个txt目录,我们希望将其拷贝到当前目录下的doc目录内,则可以运行如下命令:
cp -r txt ./doc/
ps.可以以相同方式重命名
mv命令详解
用于移动文件,或者重命名文件
语法格式
mv [options] source destination
注:重命名语法和转移目录语法和cp
命令相同,但不需要-r
cat命令详解
作用是读取文件中的内容,并将其通过标准输出显示(即我们的显示器)
tac命令详解
tac刚好是cat的逆序,实际上tac的功能刚好也是和cat是相反的,即cat命令是从头到尾显示一个文件的内容,而tac是从尾到头显示一个文件的内容。
head命令详解
用于输出文件的开头部分内容
语法格式
head [options] files
在实际使用的时候,我们通常会使用-n选项,来指定显示头部的多少行内容。例如:我们想要查看.bashrc文件的头部10行,那我们可以运行如下命令:
head -n 10 .bashrc
tail命令详解
ail命令和head命令是相反的功能,它用于显示一个文件的尾部内容。和head命令的用法类似
注意:tail命令的作用时显示一个文件的尾部内容,而不会像tac命令那样倒序输出!和head命令一样,如果我们不使用-n
选项指定行数,那么tail命令同样也是默认输出尾部的10行内容。
语法格式
cat [options] files
more命令详解
cat命令可以用来查看文件内容,对于内容不多的文件,使用cat命令可以将文件中的所有内容完整的显示在屏幕上。而对于内容较多的文件,cat同样会向屏幕上输出文件中的所有内容,但是内容会一闪而过,并最终停留的文件的末尾。这样就非常不利于我们去阅读文件内容,寻找自己需要的内容。
more/less命令可以很好的解决上述问题,more/less命令可以按照页的方式一页一页的向屏幕上输出内容,便于我们阅读
语法格式
more [options] files
选项
选项 | 作用 |
---|---|
-n |
指定开始显示的行,例如more -n 15 .bashrc : 从第15行开始显示.bashrc文件中的内容 |
+number |
指定一页所包含的行数,例如more +20 .bashrc : 按页显示.bashrc文件中的内容,每页显示20行 |
- 可以使用如下按键翻页:
- Space:向下翻一页
- Enter:向下翻一行
- b:向前翻一页
- q:退出more命令
less命令详解
more命令的升级版,提升的功能
- 能够向上/下逐行滚动,more命令只能向下逐行滚动
- 强大的搜索功能
语法格式
less [options] files
- 可以使用如下按键来浏览内容:
- up/down:向上/下逐行滚动
- PgUp:向上翻页
- PgDn/Enter:向下翻页
- q:退出less命令
使用less命令打开文件后,还可以非常方便的搜索字符串。使用 /str 可以对str进行检索,使用n跳转到下一个匹配项,使用N跳转到上一个匹配项。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具