- 浏览: 452766 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
zjhgx:
多谢,多谢。多谢
Ubuntu 中软件的安装、卸载以及查看的方法总结 -
37du:
受教了,对于理解运行过程有很好的效果
ActionMapper---webwork 2.1到2.2 的变化 -
chxiaowu:
非常好,谢谢!
Ubuntu 中软件的安装、卸载以及查看的方法总结 -
euii:
谢谢,这样的总结。
Ubuntu 中软件的安装、卸载以及查看的方法总结 -
xiaoyao3857:
谢谢,正需要这样的汇总型字典!
Ubuntu 中软件的安装、卸载以及查看的方法总结
一,为何要使用这几个命令?
可能大家会有疑问,为何要使用这几个命令,
难道用cd不就可以切换目录了吗?
没错,使用cd就可以切换到需要访问的目录,
但是有时会是一个路径很长,层次很多的目录,进到此目录下后,这时我们不小心运行了 cd命令,
理所当然,我们回到了自己的home目录,这时如果想回去怎么办?
还有:因为工作的需要,我们需要不停在几个很深层的目录之间切换,不止一个,
那么即使有tab键帮忙,我们也会因为一个cd命令花费很多时间,如何在多个目录之间切换时能更方便些
pushd,popd是我们的好帮手
说明: pushd,popd,dirs这几个我们讲到的命令是bash内建的命令,
所以只要登录到了bash,这几个命令就可以使用了
二,如何在两个目录之间切换?
如果只是在两个目录之间切换,那么还不必使用pushd,
这时只需使用 cd -就可以了
cd -的作用是可以回到前一个目录,
看例子:
[root@localhost ~]# cd /usr/share/kde4/apps/kget/pics/
[root@localhost pics]# cd -
/root
[root@localhost ~]# cd -
/usr/share/kde4/apps/kget/pics
[root@localhost pics]#
怎么样?在两个目录之间切换非常方便,无需再输入很长的路径
说明:
为何cd -能够回到前一个目录?
这是因为 -在此处等同于 $OLDPWD变量,
此问题可以参见bash的info信息,
cd 一项有相关的说明: An argument of - is equivalent to $OLDPWD.
$OLDPWD变量就是bash所记录的前一个目录
也就是说:$OLDPWD和-相等
下面我们再看一个例子:
[root@localhost ~]# cd /usr/share/kde4/apps/kget/pics/
[root@localhost pics]# echo $OLDPWD;
/root
[root@localhost pics]# cd $OLDPWD
[root@localhost ~]# echo $OLDPWD;
/usr/share/kde4/apps/kget/pics
[root@localhost ~]# cd $OLDPWD;
[root@localhost pics]# echo $OLDPWD;
/root
我们可以得到结构: 用cd -和cd $OLDPWD都可以在最近所操作的两个目录之间进行切换
三,如何在多个目录之间切换?
因为 cd -和 cd $OLDPWD都是只支持最近操作的两个目录,所以要在多个目录之间操作时,
我们需要使用 pushd
1,
先来介绍我们会用到的3条命令
pushd:切换到作为参数的目录,并把原目录和当前目录压入到一个虚拟的堆栈中
如果不指定参数,则会回到前一个目录,并把堆栈中最近的两个目录作交换
popd: 弹出堆栈中最近的目录
dirs: 列出当前堆栈中保存的目录列表
看例子:
[root@localhost ~]# pushd /usr/local/sbin/
/usr/local/sbin ~
[root@localhost sbin]# dirs
/usr/local/sbin ~
[root@localhost sbin]# dirs -p -v
0 /usr/local/sbin
1 ~
[root@localhost sbin]# pushd /usr/share/kde4/apps/kget/
/usr/share/kde4/apps/kget /usr/local/sbin ~
[root@localhost kget]# dirs -p -v
0 /usr/share/kde4/apps/kget
1 /usr/local/sbin
2 ~
说明: dirs的 -p参数可以每行一个目录的形式显示堆栈中的目录列表
-v参数可以在目录前加上编号
注意:有 -v时,不添加 -p也可以每行一个目录的形式显示
说明之二:我们可以看到:最近压入堆栈的目录位于最上面
2,如何在最近的两个目录之间切换?
在最近的两个目录之间切换:用pushd不加参数即可
[root@localhost kget]# pushd /boot/grub/
/boot/grub /usr/share/kde4/apps/kget /usr/local/sbin ~
[root@localhost grub]# dirs -v
0 /boot/grub
1 /usr/share/kde4/apps/kget
2 /usr/local/sbin
3 ~
[root@localhost grub]# pushd
/usr/share/kde4/apps/kget /boot/grub /usr/local/sbin ~
[root@localhost kget]# dirs -v
0 /usr/share/kde4/apps/kget
1 /boot/grub
2 /usr/local/sbin
3 ~
[root@localhost kget]# pushd
/boot/grub /usr/share/kde4/apps/kget /usr/local/sbin ~
[root@localhost grub]# dirs -v
0 /boot/grub
1 /usr/share/kde4/apps/kget
2 /usr/local/sbin
3 ~
说明:可以看到,用pushd不加参数在最近的两个目录之间切换时,
当前目录总是位于堆栈的最上面
3,如何在多个目录之间切换?
用 pushd +n即可
说明:
n是一个数字,有此参数时,是切换到堆栈中的第n个目录,并把此目录以堆栈循环的方式推到堆栈的顶部
需要注意: 堆栈从第0个开始数起
看例子:
[root@localhost grub]# dirs -v
0 /boot/grub
1 /usr/share/kde4/apps/kget
2 /usr/local/sbin
3 ~
[root@localhost grub]# pushd +2
/usr/local/sbin ~ /boot/grub /usr/share/kde4/apps/kget
[root@localhost sbin]# dirs -v
0 /usr/local/sbin
1 ~
2 /boot/grub
3 /usr/share/kde4/apps/kget
4,如何把目录从堆栈中删除?
用popd即可
看例子:
[root@localhost sbin]# dirs -v
0 /usr/local/sbin
1 ~
2 /boot/grub
3 /usr/share/kde4/apps/kget
[root@localhost sbin]# popd
~ /boot/grub /usr/share/kde4/apps/kget
[root@localhost ~]# dirs -v
0 ~
1 /boot/grub
2 /usr/share/kde4/apps/kget
[root@localhost ~]# popd +1
~ /usr/share/kde4/apps/kget
[root@localhost ~]# dirs -v
0 ~
1 /usr/share/kde4/apps/kget
说明:可以看到popd不加参数的运行情况:
popd把堆栈顶端的目录从堆栈中删除,并切换于位于新的顶端的目录
说明之二: popd 加有参数 +n时,
n是堆栈中的第n个目录,表示把堆栈中第n个目录从堆栈中删除
四,多学一点知识
1,pushd和popd都可以只影响堆栈而不切换目录
用 -n参数即可
看例子:
[root@localhost ~]# dirs -v
0 ~
1 /usr/share/kde4/apps/kget
[root@localhost ~]# pushd -n /boot/grub
~ /boot/grub /usr/share/kde4/apps/kget
[root@localhost ~]# dirs -v
0 ~
1 /boot/grub
2 /usr/share/kde4/apps/kget
2, dirs可以清空目录堆栈
用 -c参数即可
看例子:
[root@localhost ~]# dirs -v
0 ~
1 /boot/grub
2 /usr/share/kde4/apps/kget
[root@localhost ~]# dirs -c
[root@localhost ~]# dirs -v
0 ~
说明: 位于堆栈顶部的目录是当前目录,它不能被pop出去的
转自:http://blog.chinaunix.net/u2/82938/showart_1838387.html
发表评论
-
htonl(),htons(),ntohl(),ntons()--大小端模式转换函数
2010-12-16 16:51 4150不同机器内部对变量的字节存储顺序不同,有的采用大端模式(big ... -
关于Linux静态库和动态库的分析
2010-09-28 10:29 16511.什么是库在windows平台和linux平台下都大量存在着 ... -
Heartbeat
2010-09-01 19:31 1419Heartbeat 项目是 Linux-HA ... -
linux下更改共享内存的最大值
2010-07-26 13:22 6082System V IPC 参数 名字 ... -
环境变量相关
2010-06-10 15:03 1023系统环境变量: /etc/profile:此文件 ... -
linux中的信号处理(signal与alarm)
2010-05-12 15:25 1801简单处理程序: ... -
LINUX 时间和日期
2010-04-01 19:09 2586时间与日期 通常对于 一个程序来说可以确定时间与日期是十分 ... -
IPC之消息队列
2010-03-13 12:05 1446消息队列缺点: 1. 如果进程创建了一个消息队列,在该队 ... -
如何让errno多线程/进程安全
2010-03-13 11:35 1793在 linux 或者 unix 环境中, errno ... -
Linux下库相关的概略介绍及动态库的搜索路径优先级
2010-03-13 11:29 1671(本文主要针对动态连接 ... -
ftok函数
2010-03-13 11:01 1787系统建立IPC通讯(如消 ... -
About pci.ids
2009-12-23 21:01 1774pci.ids - This is a public r ... -
port I/O
2009-12-21 15:27 1229Name outb, outw, outl, outsb ... -
udev相关
2009-12-11 20:22 1204udev 是Linux kernel 2.6系 ... -
SMP(Symmetrical Multi-Processing)
2009-12-11 15:22 1770对称多处理" ... -
功能强大的sed命令
2009-11-27 21:55 2046vim不太熟练,发现shell的sed命令很强大。 1. S ... -
/etc/sudoers配置文件的格式
2009-11-25 20:56 1659-------下面文章转载自网 ... -
/etc/sudoers中的含义
2009-11-25 20:55 2552Sudo 是允许系统管理员让普通用户执行一些或者全部的roo ... -
linux下如何模拟按键输入和模拟鼠标
2009-11-14 10:06 2851查看/dev/input/eventX是什么类型的事件, ca ... -
Linux root file system
2009-11-05 20:03 10991. Linux for PowerPC Embedded S ...
相关推荐
- cd,chdir, pushd, popd, dirs:改变工作目录 - cdc, sccs-cdc:改变 SCCS 增量更改的增量更改说明 - chdir:改变工作目录 - checheq:排版数学测试 - checknr:检查 nroff 和 troff 输入文件的错误 - chgrp:改变...
是否曾经发现自己在使用 Matlab 并希望能够快速返回到刚才所在的目录? 还是之前的那个? 是否曾经希望在Matlab中实现Unix... 在 Matlab 命令行中键入“help pushd”、“help popd”或“help dirs”以获取更多信息。
总结来说,`pushd`、`popd`和`dirs`是Linux Shell中非常实用的工具,它们能够帮助用户有效地管理目录栈,方便在多个工作目录之间快速切换。熟练掌握这些命令,可以极大地提高日常的Shell工作效率。在日常的Linux系统...
- `cd dir`: 切换到当前目录下的`dir`目录 - `cd /`: 切换到根目录 - `cd ..`: 切换到上级目录 - `cd ~`: 切换到用户主目录 3. **cp命令** - 文件复制 - `cp source target`: 复制文件 - `cp -a source_dir ...
pushd、popd 和 dirs 实现了一个 unix 风格的目录栈。 它使用一个全局变量来保存堆栈。 用法示例: > cd myDir myDir> pushd('anotherDir') anotherDir> %excute 命令在这里另一个目录> 目录目录另一个目录> popd ...
- **从目录堆栈删除路径**:`<popd>` - 从目录堆栈弹出一个目录作为当前工作目录。 - **显示目录堆栈的内容**:`<dirs>` - 显示目录堆栈的内容。 - **创建路径**:`<mkdir>` - 创建一个新的目录。 - **删除路径**:`...
使用cd命令可以改变当前目录,例如键入cd,空格,然后是子路径名(例如:cd Documents),再按回车键。也可以键入cd,空格,两个点,然后按回车键,以进入当前目录的上一级目录。另外,键入cd,空格,路径名(例如 ...
- **从路径栈中弹出目录**:`popd` - 从路径栈中弹出顶部的目录并将其设为当前目录。 - **显示路径栈**:`dirs` - 显示路径栈的内容。 - **创建目录**:`mkdir` - 创建新的目录。 - **删除空目录**:`rmdir` - ...
小型实现push / popd / dirs 像外壳中的推入式,弹出式和脏式一样? 现在,您可以在vim中执行相同的操作。 我写这篇文章是为了拥有一个不错的小脚本,以便在vim中使用push和popd。 还有其他插件,但是它们很大,并且...
20. **pushd**:将当前目录推送到目录栈,并切换到另一个目录。 - 示例:`pushd /home/user`。 21. **set**:设置 shell 的选项。 - 示例:`set -x`。 22. **shopt**:配置 shell 的选项。 - 示例:`shopt -s ...
Linux 切换路径使用方法指南 Linux 操作系统中,经常需要在不同的目录之间切换路径。在命令行中使用 cd 命令可以实现...使用 cd、pushd、dirs 等命令可以方便地在不同的目录之间切换,提高工作效率,节省时间和精力。
- `pushd`和`popd`:这两个命令用于管理目录堆栈,`pushd`将当前目录压入堆栈,并切换到新目录;`popd`则从堆栈中弹出一个目录,返回上一个目录。 - `dirname`:提取文件路径中的目录部分。 - `ls`:列出目录内容...
- **Hack 5: 使用`dirs`, `pushd`和`popd`操纵目录栈** - `dirs`显示目录栈的内容。 - `pushd`将当前目录压入目录栈,并更改到指定的新目录。 - `popd`从目录栈弹出顶部目录,并返回到这个目录。 - 示例: ```...
- **示例**: `cd /usr/local` 将当前工作目录切换到 `/usr/local`。 **1.1.2 显示当前目录 -- pwd** - **用途**: `pwd` 命令用于显示当前工作目录的完整路径。 - **语法**: `pwd` - **示例**: 执行 `pwd` 后,会...
- **`cd`**:切换目录。 - **`cp`**:复制文件或目录。 - **`mv`**:移动文件或目录,也可以用于重命名文件。 - **`mkdir`**:创建新目录。 - **`rmdir`**:删除空目录。 - **`rm`**:删除文件或目录,需要注意使用...
**技巧1:CDPATH: 设置cd命令的基目录** - **知识点**: `CDPATH` 是一个环境变量,用于定义当用户试图切换到不存在的目录时,`cd` 命令应该搜索的一系列目录路径。 - **应用场景**: 当用户尝试进入一个不存在的目录...
- **概述**:利用`dirs`、`pushd`和`popd`命令可以方便地管理和切换多个目录。 - **应用场景**:适用于需要同时处理多个目录的场景。 - **使用方法**: ```bash pushd /path/to/first/directory # 执行一些操作.....