Linux命令界面中的“返回”操作涵盖多个场景,包括目录层级返回、命令历史返回、终端会话返回等,不同场景对应不同命令,掌握这些操作可大幅提升命令行操作效率,以下从常见场景出发,详细说明各类返回方法及注意事项。

目录层级返回:文件系统中的“返回”
在Linux文件系统中,“返回”最常用于目录层级切换,核心命令为cd(change directory),结合不同参数实现多级返回。
返回上级目录:cd ..
是Linux中父目录的符号表示,cd ..可直接切换到当前目录的上一级,当前路径为/home/user/docs,执行cd ..后路径变为/home/user。
- 注意事项:若当前路径为根目录,指向自身,因此
cd ..后仍停留在(根目录无上级目录)。
返回上一个工作目录:cd -
cd -通过$OLDPWD环境变量记录“上一个工作目录”,实现快速切换。
- 先执行
cd /var/log,当前路径变为/var/log; - 再执行
cd /tmp,路径变为/tmp; - 执行
cd -,将返回/var/log;再次执行cd -,则返回/tmp(交替切换)。
- 注意事项:若未切换过目录(如刚登录系统),
$OLDPWD为空,cd -会报错。
返回用户主目录:cd或cd ~
用户主目录(/home/username)是登录后的默认目录,直接执行cd或cd ~可快速返回,用户user登录后,cd或cd ~均切换至/home/user。
- 扩展:
cd ~username可切换到其他用户的主目录(如cd ~root切换至/root)。
cd命令选项对比
为更清晰理解不同返回场景,可通过下表总结:
| 命令 | 作用 | 示例 | 备注 |
|---|---|---|---|
cd .. |
返回上级目录 | cd ..(从/home/user到/home) |
根目录下无效 |
cd - |
返回上一个工作目录 | cd -(在/var和/tmp间切换) |
需有切换历史 |
cd/cd ~ |
返回当前用户主目录 | cd(从任意目录到/home/user) |
等效于cd $HOME |
命令历史返回:重复与编辑历史命令
在命令行操作中,常需重复或修改上一条命令,此时可通过“命令历史”功能实现返回。

重复上一条完整命令:
是“历史扩展”语法,表示重复执行上一条命令,执行ls -l /etc后,若需再次执行,直接输入即可,等同于输入ls -l /etc。
- 典型场景:执行命令时因权限不足报错(如
cat /etc/shadow),可先通过sudo !!以管理员权限重复执行。
按编号重复历史命令:!n
历史命令按执行顺序编号(可通过history查看),!n可重复执行第n条命令。
history # 输出:1001 ls, 1002 cd /var, 1003 ps aux !1002 # 重复执行第1002条命令,即`cd /var`
按倒序重复历史命令:!-n
!-n表示重复倒数第n条命令。!-1等同于(重复上一条),!-2重复倒数第二条命令。
方向键调出与编辑命令
- 上箭头(↑):按一次调出上一条命令,连续按可逐条回溯;
- 下箭头(↓):与上箭头相反,向下浏览历史命令;
- 左右箭头:在调出的命令中移动光标,可修改后执行(如将
ls改为ls -a)。 - 注意事项:历史命令数量由
HISTSIZE变量控制(默认1000),可通过export HISTSIZE=5000调整。
终端会话返回:后台任务与Shell进程切换
返回前台执行:fg
命令执行时若按Ctrl+Z,任务会暂停并转入后台(如sleep 100 &),此时可通过fg将任务调回前台。
- 执行
sleep 100后按Ctrl+Z,输出[1]+ Stopped sleep 100; - 执行
fg %1(%1为任务号,可通过jobs查看),任务恢复前台运行。
- 扩展:
bg %1可将暂停的后台任务转为后台运行(如[1]+ sleep 100 &)。
退出子Shell返回父Shell:exit
在当前Shell中执行bash会进入子Shell,执行exit可退出子Shell并返回父Shell。
bash # 进入子Shell echo $SHLVL # 输出2(表示嵌套层级) exit # 退出子Shell,返回父Shell($SHLVL变为1)
- 注意事项:若在登录Shell(如直接通过SSH连接的Shell)中执行
exit,会关闭整个终端会话。
终端复用工具:screen/tmux会话返回
通过screen或tmux可创建持久化会话,即使关闭终端也能保留,后续可通过命令重新接入。

screen -S mysession创建会话,exit退出会话后,执行screen -r mysession可重新接入;tmux new -s mysession创建tmux会话,tmux attach -t mysession返回会话。
其他返回场景:目录栈与变量返回
目录栈:pushd/popd
当需在多个目录间频繁切换时,可用目录栈(pushd压栈、popd出栈)实现“返回”。
pushd /home # 将/home压栈,并切换到/home,栈内:(/home) pushd /var # 将/var压栈,并切换到/var,栈内:(/home /var) popd # 弹出栈顶(/var),切换到/home,栈内:(/home)
- :
dirs(输出当前目录栈,如/home /var)。
使用变量返回目录
通过$OLDPWD(上一目录)和$PWD(当前目录)可手动实现返回。
cd /usr/local echo $OLDPWD # 输出上一目录(如/home) cd $OLDPWD # 返回上一目录(/home)
Linux命令界面的“返回”操作需结合场景选择:目录层级返回用cd ../cd -,命令历史返回用/方向键,终端会话返回用fg/exit,复杂场景可用目录栈或终端复用工具,熟练掌握这些命令,可避免重复输入,高效完成命令行任务。
相关问答FAQs
问题1:为什么在根目录/下执行cd ..没有反应?
解答:Linux中根目录是文件系统的顶级目录,其父目录指向自身(即等同于),因此执行cd ..后路径仍为,并非命令错误,而是文件系统的设计逻辑。
问题2:如何快速返回到上一个执行的命令并修改其中的部分内容?
解答:可通过以下两种方式实现:
- 方向键编辑:按上箭头(↑)调出上一条命令,通过左右箭头移动光标,修改后按
Enter执行(如将cat file.txt改为cat file.log); - 历史替换语法:使用
^old^new语法替换上一条命令中的old为new,例如上一条命令为ls /var/log,执行^log^tmp^将变为ls /var/tmp并直接执行。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/36151.html