当前位置: 首页 > article >正文

Shell(五)Bash行操作目录堆栈

1.光标移动

  • Ctrl + a:移到行首。
  • Ctrl + b:向行首移动一个字符,与左箭头作用相同。
  • Ctrl + e:移到行尾。
  • Ctrl + f:向行尾移动一个字符,与右箭头作用相同。
  • Alt + f:移动到当前单词的词尾。
  • Alt + b:移动到当前单词的词首。

2.清除屏幕

Ctrl+l 清除屏幕

3.编辑操作

  • Ctrl + d:删除光标位置的字符(delete)。
  • Ctrl + w:删除光标前面的单词。
  • Ctrl + t:光标位置的字符与它前面一位的字符交换位置(transpose)。
  • Alt + t:光标位置的词与它前面一位的词交换位置(transpose)。
  • Alt + l:将光标位置至词尾转为小写(lowercase)。
  • Alt + u:将光标位置至词尾转为大写(uppercase)。

注:Ctrl+d得是偶,如果当前行没有任何字符,会导致退出当前Shell。

剪切和粘贴快捷键如下。

  • Ctrl + k:剪切光标位置到行尾的文本。
  • Ctrl + u:剪切光标位置到行首的文本。
  • Alt + d:剪切光标位置到词尾的文本。
  • Alt + Backspace:剪切光标位置到词首的文本。
  • Ctrl + y:在光标位置粘贴文本。

history命令

history命令能显示操作历史,最近得操作在最后,行号最大

目录堆栈

1.cd -

返回前一次所在的目录

2.pushd,popd

如果希望记录多重目录,可以使用pushd命令和popd命令,他们用来操作目标堆栈。

上面命令会进入目录dirname,并将该目录放入堆栈。

第一次使用pushd命令时,会将当前目录先放入堆栈,然后将所要进入的目录也放入堆栈,位置在前一个记录的上方。以后每次使用pushd命令,都会将所要进入的目录,放在堆栈的顶部。

popd命令不带有参数时,会移除堆栈的顶部记录,并进入新的栈顶目录(即原来的第二条目录)。

下面是一个例子。

# 当前处在主目录,堆栈为空
$ pwd
/home/me

# 进入 /home/me/foo
# 当前堆栈为 /home/me/foo /home/me
$ pushd ~/foo

# 进入 /etc
# 当前堆栈为 /etc /home/me/foo /home/me
$ pushd /etc

# 进入 /home/me/foo
# 当前堆栈为 /home/me/foo /home/me
$ popd

# 进入 /home/me
# 当前堆栈为 /home/me
$ popd

# 目录不变,当前堆栈为空
$ popd

这两个命令的参数如下。

(1)-n 参数

-n的参数表示仅操作堆栈,不改变目录。

$ popd -n

上面的命令仅删除堆栈顶部的记录,不改变目录,执行完成后还停留在当前目录。

(2)整数参数

这两个命令还可以接受一个整数作为参数,该整数表示堆栈中指定位置的记录(从0开始)。pushd命令会把这条记录移动到栈顶,同时切换到该目录;popd则从堆栈中删除这条记录,不会切换目录。

# 将从栈顶算起的3号目录(从0开始)移动到栈顶,同时切换到该目录
$ pushd +3

# 将从栈底算起的3号目录(从0开始)移动到栈顶,同时切换到该目录
$ pushd -3

# 删除从栈顶算起的3号目录(从0开始),不改变当前目录
$ popd +3

# 删除从栈底算起的3号目录(从0开始),不改变当前目录
$ popd -3

上面例子的整数编号都是从0开始计算,popd +0是删除第一个目录,popd +1是删除第二个,popd -0是删除最后一个目录,popd -1是删除倒数第二个。

(3)目录参数

pushd可以接受一个目录作为参数,表示将该目录放到堆栈顶部,并进入该目录。

$ pushd dir

popd没有这个参数。


http://www.kler.cn/a/15836.html

相关文章:

  • .Net Core根据文件名称自动注入服务
  • 类和对象——拷贝构造函数,赋值运算符重载(C++)
  • xcode-select: error: tool ‘xcodebuild‘ requires Xcode, but active developer
  • Qwen2.5-Coder-32B-Instruct Docker 部署openai接口
  • 阿里云ACK容器如何配置pod分散在集群的不同节点上
  • ThriveX 博客管理系统前后端项目部署教程
  • gitlab部署及整合Jenkins持续构建(四)sonarqube9.9安装和使用(一步一坑)
  • 使用CXF调用WSDL
  • 如何高效的学习接口自动化测试?从零开始学习接口自动化测试:选择合适的学习资源和编程语言
  • 电脑硬盘检测怎么操作?如何检查硬盘的健康情况?
  • Dockerfile样例
  • d3.js学习笔记①创建html文档
  • 【网络】网络基础协议概念IPMAC地址
  • Blender 插件UvSquares
  • 电子数据取证之网站分析和重构基础
  • 【tippecanoe】Linux环境tippecanoe部署
  • 2022 gdcpc题解(10/13)
  • Battle Symphony
  • Terraform
  • autosar软件分层架构组成--汽车电子
  • java中设计模式
  • dpdk安装在虚拟机上如何安装
  • 数字化转型导师坚鹏:数字化转型背景下的保险公司人力资源管理
  • 【SpringBoot系列】接收前端参数的几种方式
  • 音视频 FFmpeg
  • SpringBoot事务管理-5个面试核心类源码刨析