---
author: ''
category: 技术
comments_data: []
count:
  commentnum: 0
  favtimes: 2
  likes: 2
  sharetimes: 0
  viewnum: 10575
date: '2013-12-25 21:31:00'
editorchoice: false
excerpt: "Linux 终端不仅是一个键入命令的地方。如若你能熟谙这些基础技巧，那么你会在绝大多数 Linux 发行版的默认使用的 Bash shell中游刃有余。\r\n这是howtogeek.com
  网站特供给初级用户升级打怪时不能忘记携带的七种武器\r\n\r\n1 ..."
fromurl: ''
id: 2413
islctt: true
largepic: /images/p/201312/25/211247eocsvcesikucoic9.jpg
permalink: /article-2413-1.html
pic: /images/p/201312/25/211247eocsvcesikucoic9.jpg.thumb.jpg
related: []
reviewer: ''
selector: ''
summary: "Linux 终端不仅是一个键入命令的地方。如若你能熟谙这些基础技巧，那么你会在绝大多数 Linux 发行版的默认使用的 Bash shell中游刃有余。\r\n这是howtogeek.com
  网站特供给初级用户升级打怪时不能忘记携带的七种武器\r\n\r\n1 ..."
tags:
- Linux
- 终端
- Tab
- 管道
- 通配符
- 重定向
- 后台
- 条件
- 技巧
- 教程
thumb: false
title: 成为 Linux 终端高手的七种武器
titlepic: false
translator: SteveArcher
updated: '2013-12-25 21:31:00'
---

Linux 终端不仅是一个键入命令的地方。如若你能熟谙这些基础技巧，那么你会在绝大多数 Linux 发行版的默认使用的 Bash shell中游刃有余。


这是howtogeek.com 网站特供给初级用户升级打怪时不能忘记携带的七种武器——


![](/images/p/201312/25/211247eocsvcesikucoic9.jpg)


### 1.Tab 补全


这样能节省时间，并且对于输入那些你不很确定其具体名称的文件和命令来说很方便。比如，当前目录下有一个名为“really long file name”的文件，你想要删除它。你可以输入完整的文件名，但是你必须确保正确地输入了空格和每个字母。若当前目录下还有许多以字母“r”开头的文件，(如果你没有正确地输入字符) Bash 将不知道你想要删除哪一个文件。


如果在当前目录下存在着另一个名为“really very long file name”的文件，你敲击了Tab键。Bash 将为所有以“r”开头的文件自动补充“really\ ”部分。此时继续敲击Tab键，你将得到匹配所有文件名的列表。


### 2.管道机制


这种机制允许你把一条命令的输出传送到另一条命令。按照 UNIX 哲学，每个程序都足够小，只做一件事并将之做到最好。例如，ls命令列出当前目录下的所有文件，grep命令搜索输入其中的指定检索项。


你可以通过管道机制（|字符）把二者结合起来，在当前目录下搜索文件。以下给出的命令（在当前文件夹下）搜索关键字为“word”的文件：



```
ls | grep word

```

### 3.通配符


“\*”（星号）字符是一种匹配任意长度字符的通配符。比如，你想删除当前文件夹下名为“really long file name”和“really very long file name”的两个文件，你可以运行以下命令：



```
rm really*name

```

这条命令会删除所有以“really”开头以“name”结尾的文件。但是，如果你运行的是 rm \* 这条命令，你将会删除文件夹下的所有文件。（译注：使用通配符时要小心，尤其是你的rm没有-f确认时！）


### 4.输出重定向


“>”字符可以把一条命令的输出重定向到一个文件或另一条命令。比如，下面这行命令执行完 ls 后会列出当前文件夹下的所有文件，其结果不是在终端显示，而是输出到当前文件夹下一个名为“file1”的文件中去:



```
ls > file1

```

### 5.历史记录


Bash 能记住你以前输入过的命令，上、下方向键可以逐行调出它们。使用 history 命令打印历史记录，以管道机制 grep 选择性地输出你想要的结果。



```
~
. 
..

```

“~”，也叫做波浪符，用来表示当前用户的主目录。相比通过 cd /home/name 到达你的主目录，你可以输入 cd ~ 来达到相同效果。这点也可以在相关路径上使用：比如 cd ~/Desktop 能够到达当前用户的 Desktop 目录。


同样，“.”代表当前目录，“..”代表当前目录的父目录。使用 cd .. 可以返回上一级目录。它们也可以用在相关路径上，举例说明：你当前处在 Desktop 文件夹下，通过 cd ../Documents 命令，你可以转到与 Desktop 共有同一父文件夹的 Documents 文件夹去。


（译注：“-”代表前一个目录，cd - 可以返回到前一个工作目录。）


### 6.后台命令


Bash 默认情况下会在当前终端下执行你键入的每条命令。通常这样是没有问题的，但是如果你想要在启动某个应用后继续使用终端呢？通过输入 firefox 启动火狐浏览器，你的终端将被错误提示等各种信息输出占据，直到你关闭火狐浏览器为止。在 Bash 中你可以通过在命令结尾添加“&”操作符来后台执行程序。



```
firefox &

```

### 7.条件执行


Bash 也可以连续执行两条命令。 第二条命令仅在第一条命令成功执行后才会开始执行。如要如此，你可以通过键入“&&”，也就是两个“&”字符进行分隔，在同一行输入两条命令。下面给出的命令会在等待 5 秒后运行 gnome-screenshot 工具:



```
sleep 5 && gnome-screenshot 

```



---


via: <http://www.efytimes.com/e1/fullnews.asp?edid=123564>


译者：[SteveArcher](https://github.com/SteveArcher) 校对：[wxy](https://github.com/wxy)


本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出