4.3《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)—链接到目录
在4.2章中我们已经会用cd进入到指定的目录中。这是导航最常见的用途之一,但是它还有几个值得关注的用途。第一个是使用cd ..
(读作'see-dee 点点')返回当前目录级别的上一级:
$ pwd
/Users/mhartl/text_files
$ cd ..
$ pwd
/Users/mhartl
在这种情况下,由于/Users/mhartl是我的home目录,可以直接使用cd直接回到home目录:
$ cd text_files/
$ pwd
/Users/mhartl/text_files
$ cd
$ pwd
/Users/mhartl
直接使用cd本事就能成的原因是它将目录改变至用户home目录。这意味着:
$ cd
和
$ cd ~
是相等的。
当改变目录时,有时指定home目录很有用。例如,假设我们创建了第二个目录并进入到这个目录中:
$ pwd
/Users/mhartl
$ mkdir second_directory
$ cd second_directory/
现在如果我们想要到text_files目录中,可以使用通过home目录~结合text_files用cd进入:
$ pwd
/Users/mhartl/second_directory
$ cd ~/text_files
$ pwd
/Users/mhartl/text_files
另外,我们学到这里可以理解在插图6中的提示:我将我的提示配置成显示当前的目录,可能显示成[~], [ruby], [projects]。(我们将在Learn Enough Text Editor to Be Dangerous中讨论如何自定义提示。对于特别有求知欲望(或是等不及)的读者可以自行google怎么锻炼他们的技术精湛度(Box5)).
和返回上一级(..)相似地是 . (读作点)指的是当前目录。对'.'最常用的场景是移动或复制当前目录的文件:
$ pwd
/Users/mhartl/text_files
$ cd ~/second_directory
$ ls
$ cp ~/text_files/sonnets.txt .
$ ls
sonnets.txt
注意第一次使用ls时什么都没返回, 因为最初的second_directory是空的。
另一个常常使用'.'的场景是与find命令结合使用,这就像grep非常非常有用,但在我自己的使用场景中99%都是像下面这样使用:
$ cd
$ find . -name '*.txt'
./text_files/sonnet_1.txt
./text_files/sonnet_1_reversed.txt
./text_files/sonnets.txt
用文字描述就是, 这些命令会找到名字匹配正则表达式'*.txt'的文件,从当前目录.开始然后是它的子目录。‘find’工具集对于在命令行中寻找一个随意放置的文件特别有用。
也许我最喜欢使用.的场景是'open 点', 这只在macOS系统上能使用:
$ cd ~/ruby/projects
$ open .
这个非凡的open命令将打开它的参数使用打开指定的文件或目录的默认程序。(xdg-open与这个命令相似,在一些linux系统上能正常使用)。例如open foo.pdf
会用默认预览器打开pdf文件(在大多数的Macs上是Preview).在使用目录的场景如'.'时,默认程序是Finder,所以调用open .
的结果就像插图20所展示的那样。
一个最后导航相关的命令,是我个人十分喜爱的命令是cd -
,这会进入到之前的目录:
$ pwd
/Users/mhartl/second_directory
$ cd ~/text_files
$ pwd
/Users/mhartl/text_files
$ cd -
/Users/mhartl/second_directory
我发现'cd -'当结合一些命令时十分有用,正如Box12 中所描述的那样。
Box 12. 结合命令
在命令行中结合命令通常非常方便,正如使用Unix程序 configure和make时安装软件,这通常会像下面这样显示:
$ ./configure ; make ; make install
这行命令在当前目录'.'运行configure程序,然后同时运行make和make install。(你并不需要理解这些程序是做什么的,而且实际上它们不会再你的系统上工作,除非你恰好在这样安装的程序目录中。)由于他们是被分号分隔,三个命令会同时一起运行。结合命令更好的方式是使用双&符号 &&:
$ ./configure && make && make install两个命令间的却别在于用&&符号分隔开的命令只有在前一个命令执行成功后才会执行。相反,使用';'所有命令无论如何都会一起执行,在像下步命令会依赖于前个命令的场景中会报错。
我特别喜欢将cd -和&&结合使用,这可以帮我做下面的事情:
$ build_article && cd ~/tau && deploy && cd -
再说一次,你不需要理解这些命令,但是这通常是在一个目录中创建一篇文章的好主意, cd进入一个不同的目录,再部署(也许是个网址)到生产环境,然后再cd 返回(cd -)到原始的目录,继续我们的工作。当然,如果需要,我们可以使用上箭头(在Box9中的有用方法)找到整个命令,并再做一遍。
练习
- cd 和cd ~的区别是什么?(或是他们有区别吗)
2.进入到text_files,然后到使用返回上一个目录等级(双点操作符..)到second_directory目录。
3.在你当前的目录位置中,创建一个叫做nil的空文件在text_files目录中,可以使用任何方法。
4.使用与之前不同路径移除在之前的练习中创建的nil文件.(换句话说,如果你之前使用路径~/text_files
, 那就使用../text_files或者/Users//text_files).
4.3《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)—链接到目录的更多相关文章
- 2《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)——操作文件
已经学习了基本的命令,现在是时候学习操作文件了,这也是命令行的重要任务.还是基于本教程的事先规定,本教程是入门级的,不要求熟悉类似编辑文本的程序(这些文本编辑程序,将在下个系列教程中介绍, Learn ...
- 1.1《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)——运行终端
终端是个允许我们运行命令行的程序,运行命令前,先打开它.在MacOS系统上,可以使用macOS应用 Spotlight来打开终端窗口,Spotlight也有其他两种方式触发,一种是键入⌘␣(comma ...
- 1.3《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)——手册页
我们运行的命令行程序,通常在技术上称作shell, 它包含了一个非常强大(也很神秘)的工具,我们将用它来学习更多可用的命令.这个工具本身就是个称作'man'的命令('manual'的简写).它的参数是 ...
- 3.1《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)——下载文件
首先,为了不手动创建一个长文件(这太麻烦了),我们将使用强大的curl(有时也写作"cURL")工具从网上下载一个文件,这个命令可以让命令行与URL交互.尽管这不是Unix核心命令 ...
- 2.3《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)——重命名,复制,删除
最常用的文件操作除了将文件列出来外,就应该是重命名,复制,删除了.正如将文件列出来一样,大多数现代操作系统为这些任务提供了用户图形界面,但是在许多场景中,用命令行还是会更方便. 使用mv命令重命名一个 ...
- 1.2《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)——开始第一条命令
现在开始准备运行我们的第一条命令了,在屏幕上打印'hello'.(字符打印的地方被称为'标准输出',通常指的是屏幕,很少指真的物理打印机设备).这条命令就是echo,这条命令的参数是想要输出的字符串或 ...
- 1.4《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)——编辑命令
在编辑模式中,命令行包括几个重复之前命令的功能.这些以及其他很多命令功能时常设计键盘上的特殊键,所以给出Table 1作为参考,给出了许多键在典型的Macintosh键盘上的标记符号.若你的键盘不太一 ...
- 4.5《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)—第四章小结
本章相关重要命令总结在Table 6. 命令 描述 示例 mkdir <name> 创建某目录 $ mkdir foo pwd 显示当前所在目录 $ pwd cd <dir> ...
- 4.1《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)—目录结构
Unix风格的目录结构通常使用一个目录名列表并用正斜杠分隔来表示,这样我们可以结合ls命令: $ ls /Users/mhartl/ruby 或者 $ ls /usr/local/bin 正如图20, ...
随机推荐
- 免费工资总额管控系统-JXHR2016
•工资总额是指按照国家统计局规定的统计口径或企业规定,在一定时期内支付给各类用工的劳动报酬总额 •工资总额,即基本工资,包括岗位工资.各项津补贴 •JXHR2016以薪酬管控为核心,结合人力资源规划. ...
- 程序员Web面试之jQuery
又到了一年一度的毕业季了,青春散场,却等待下一场开幕. 在求职大军中,IT行业的程序员.码农是工科类大学生的热门选择之一, 尤其是近几年Web的如火如荼,更是吸引了成千上万的程序员投身其中追求自己的梦 ...
- 针对模拟滚动条插件(jQuery.slimscroll.js)的修改
在开发过程中程序员总会碰到产品经理提出的各种稀奇古怪的需求,尽管有些需求很奇葩,但不得不说有些须有还是能指引我们不断的学习与进步,最近在工作中就碰到这种问题.需求是要求在各主流浏览器上使用自定义的滚动 ...
- ORACLE11g下如何利用SQL DEVELOPER连接上数据库
最近在学习数据库的相关内容,在sqlplus敲了几天命令行窗口后,想尝试一下用sql developer 连接上数据库但一直没有实现.在网上查询了相关资料后现在终于弄好了,就来写下此篇博文与大家分享! ...
- 洗礼灵魂,修炼python(52)--爬虫篇—【转载】爬虫工具列表
与爬虫相关的常用模块列表. 原文出处:传送门链接 网络 通用 urllib -网络库(stdlib). requests -网络库. grab – 网络库(基于pycurl). pycurl – 网络 ...
- java 按字节读写二进制文件(Base64编码解码)
最近在做项目时遇到这样一个需求:依次读取本地文件夹里所有文件的内容,转为JSON,发送到ActiveMQ的消息队列, 然后从MQ的消息队列上获取文件的信息,依次写到本地.常见的文件类型,比如.txt ...
- python第三天 变量 作业
作业1,模拟登陆:1. 用户输入帐号密码进行登陆2. 用户信息保存在文件内3. 用户密码输入错误三次后锁定用户 使用文件:user_file.txt 用户列表文件. 格式:{'张三':'12 ...
- linux 系统中用root切换到普通用户时显示的异常如-bash-4.1$
解决办法: 其实就是普通用户的家目录缺少配置文件导致: [root@xxx ~]# su - oldboy -bash-4.1$ 原因是普通用户的家目录下缺少文件: [root@xxx ~]# ls ...
- 辽宁移动宽带体验及魔百盒M101s-2刷机
一.背景 坐标:辽宁 某城,移动宽带100M. 设备:移动赠送,华为光猫一只,魔百盒M101s-2电视盒子 一只,据安装人员说这个魔百盒是移动自己开发设计的. 二.上网体验 上网:浏览一般网站没问题. ...
- U盘内容被病毒隐藏的解决办法(亲测可用)
前几天用U盘的时候不小心感染上了病毒,用自己的电脑打开后里面只剩下一个U盘的快捷方式,选中显示隐藏文件之后依然没有任何显示,但是查看U盘的属性的时候可以看到,U盘已经使用了300多M,所以就上网查了一 ...