十条命令行为Linux管理员节省时间

尽管Linux桌面在过去二十年中经历了巨大的改变最显著的变化可能是Ubuntu
Unity界面),根据可以提供给有经验系统管理员的力量,命令行依然是非平行的。尽管接下来的十个技巧大部分关于Bash
shell,所有这些技巧都可以很容易地应用到其它现在shell上。

Linux:十条为系统管理员节省时间的命令
 

尽管Linux桌面在过去二十年中经历了巨大的改变(最显著的变化可能是Ubuntu
Unity界面),根据可以提供给有经验系统管理员的力量,命令行依然是非平行的。尽管接下来的十个技巧大部分关于Bash
shell,所有这些技巧都可以很容易地应用到其它现在shell上。

1.运用一条命令来创建并进入目录

尽管Linux桌面在过去二十年中经历了巨大的改变(例如:Ubuntu
Unity界面),但命令行操作模式永远是对一个系统开发或维护人员的能力衡量标准,通常我们所理解的Linux高手大多是在命令行模式下操作的,所以接
下来的十个技巧大部分关于Bash shell的。

1.运用一条命令来创建并进入目录

创建接着进入一个新目录是一个非常普通的任务,似乎在shell中执行两种命令都该有捷径。虽然没有捷径,你可以将以下函数添加到你的.bashrc文件:

 

创建接着进入一个新目录是一个非常普通的任务,似乎在shell中执行两种命令都该有捷径。虽然没有捷径,你可以将以下函数添加到你的.bashrc文件:

mkcd()
{
  mkdir $1
  cd $1
}

  1. 运用一条命令来创建并进入目录
mkcd()
{
mkdir $1
cd $1
}

接着运行源.bashrc来读取内存中的变化,并运用mkcd命令完成两个服务:

 

接着运行源.bashrc来读取内存中的变化,并运用mkcd命令完成两个服务:

[email protected]:~$
mkcd articles
[email protected]:~/articles
$

创建接着进入一个新目录是一个非常普通的任务,似乎在shell中执行两种命令都该有捷径。虽然没有捷径,你可以将以下函数添加到你的.bashrc文件:

[email protected]:~$ mkcd articles
[email protected]:~/articles $

2.回到前一目录

 

2.回到前一目录

当你需要从结构复杂的目录中转移并想要回到初始目录时,你可以将之前一路径传递到cd命令,但是鲜为人知的cd命令让这件事变得琐碎。该顺序展示了该行为:

C代码  

当你需要从结构复杂的目录中转移并想要回到初始目录时,你可以将之前一路径传递到cd命令,但是鲜为人知的cd命令让这件事变得琐碎。该顺序展示了该行为:

[email protected]:~/Documents/techtarget_articles/ten_command_line_tricks/test2$
cd
[email protected]:~$
cd –
~/Documents/techtarget_articles/ten_command_line_tricks/test2$
[email protected]:~/Documents/techtarget_articles/ten_command_line_tricks/test2$

mkcd()  

[email protected]:~/Documents/techtarget_articles/ten_command_line_tricks/test2$ cd
[email protected]:~$ cd -
~/Documents/techtarget_articles/ten_command_line_tricks/test2$
[email protected]:~/Documents/techtarget_articles/ten_command_line_tricks/test2$

3.创建目录书签

{  

3.创建目录书签

继续跟随目录互动的主题,你会不可避免地一次次回到某些目录。可以通过添加到$CDPATH
shell变体的路径在你的.bashrc文件中)来创建能让你快速导航到这些目录的书签:

mkdir -p $1  

继续跟随目录互动的主题,你会不可避免地一次次回到某些目录。可以通过添加到$CDPATH
shell变体的路径(在你的.bashrc文件中)来创建能让你快速导航到这些目录的书签:

CDPATH=’.:/home/wjgilmore/books’

cd $1  

CDPATH='.:/home/wjgilmore/books'

一旦添加,你可以从操作系统路径中的任一处直接导航到书签目录,只需要执行如下命令:

}  

一旦添加,你可以从操作系统路径中的任一处直接导航到书签目录,只需要执行如下命令:

$ cd books

 

$ cd books

4.熟练地编辑命令行

 

4.熟练地编辑命令行

你有多少次在沉闷地编辑和执行一系列略微不同的命令?例如我在忙于创建来自Markdown源的不同书本章节的PDF版本时,我通常执行以下命令:

接着运行源.bashrc来读取内存中的变化,并运用mkcd命令完成两个服务:

你有多少次在沉闷地编辑和执行一系列略微不同的命令?例如我在忙于创建来自Markdown源的不同书本章节的PDF版本时,我通常执行以下命令:

$ pandoc -o html/chapter06.html chapters/chapter06.md 
–template=templates/html.template

C代码  

$ pandoc -o html/chapter06.html chapters/chapter06.md --template=templates/html.template

为了也创建chapter04.md源文件,命令行初学者会很快厌倦用向上箭头在历史中检索之前执行上一)命令,然后用左指箭头直到用chapter04.md更换了所有chapter06.md实例。还有很多更高效的方式来执行该任务。首先,考虑使用Bash的命令行编辑键盘快捷键两种支持模式:Emacs和vi),这让你可以快速地导航到想去的位置:

[email protected]:~$
mkcd catogory/articles  

为了也创建chapter04.md源文件,命令行初学者会很快厌倦用向上箭头在历史中检索之前执行(上一)命令,然后用左指箭头直到用chapter04.md更换了所有chapter06.md实例。还有很多更高效的方式来执行该任务。首先,考虑使用Bash的命令行编辑键盘快捷键(两种支持模式:Emacs和vi),这让你可以快速地导航到想去的位置:

Ctrl + a:去往首行
Ctrl + e: 去往末行
Alt + f: 前进一个字
Alt + b: 退后一个字

[email protected]:~/catogory/articles
$   

Ctrl + a:去往首行

第二种且可能更有效的方法是使用命令行替换。接下来的命令会将在之前执行命令中发现的06用04代替:

 

Ctrl + e: 去往末行

$ pandoc -o html/chapter06.html chapters/chapter06.md 
–template=templates/html.template
$ !!:gs/06/04
pandoc -o html/chapter04.html chapters/chapter04.md 
–template=templates/html.template

 

Alt + f: 前进一个字

如果你正偶然地使用GNOME终端,那么元Alt)键不会如描述般工作,因为GNO
ME终端已经绑定Alt键到工具栏命令。你还可以选择使用Shift +
Alt作为元键,但是这有点笨拙。相反地,如果你不需要工具栏命令快捷键,通过导航到编辑->
键盘快捷键来关闭它们…也能关闭启用菜单访问键选项。

  1. 回到前一目录

Alt + b: 退后一个字

5.为之后的使用保存长命令

当你需要从结构复杂的目录中转移并想要回到初始目录时,你可以将之前一路径传递到cd命令,但是鲜为人知的cd命令让这件事变得琐碎。该顺序展示了该行为:

第二种且可能更有效的方法是使用命令行替换。接下来的命令会将在之前执行命令中发现的06用04代替:

当通过一列系统管理员操作的工作时,可以输入特定的长命令并在执行它之前意识到省去序列中的一个步骤。相比于删除该命令,你可以将其保存到历史,而不用通过添加井号键#)到命令开端:

C代码  

$ pandoc -o html/chapter06.html chapters/chapter06.md --template=templates/html.template
$ !!:gs/06/04
pandoc -o html/chapter04.html chapters/chapter04.md --template=templates/html.template

$ #this is some ridiculously long command that I want to save

[email protected]:~/Documents/techtarget_articles/ten_command_line_tricks/test2$
cd  

如果你正偶然地使用GNOME终端,那么元(Alt)键不会如描述般工作,因为GNO
ME终端已经绑定Alt键到工具栏命令。你还可以选择使用Shift +
Alt作为元键,但是这有点笨拙。相反地,如果你不需要工具栏命令快捷键,通过导航到编辑->
键盘快捷键来关闭它们…也能关闭启用菜单访问键选项。

在按下Enter键后,用向上箭头,你会看见保存的命令。要执行该命令,只要在执行前从行的开始移开井号键。

[email protected]:~$
cd –  

5.为之后的使用保存长命令

6.运用命令别名保存输入

~/Documents/techtarget_articles/ten_command_line_tricks/test2$  

当通过一列系统管理员操作的工作时,可以输入特定的长命令并在执行它之前意识到省去序列中的一个步骤。相比于删除该命令,你可以将其保存到历史,而不用通过添加井号键(#)到命令开端:

ls命令的长列表格式ls
-l)可以频繁地运用,但是连字符让它在大量输入时有点不实用。你可以使用.bashrc内的别名命令创建命令别名用于长命令。在这个例子中,命令别名dir是ls
–l的替代。

[email protected]:~/Documents/techtarget_articles/ten_command_line_tricks/test2$
 

$ #this is some ridiculously long command that I want to save

alias dir=’ls -l’

 

在按下Enter键后,用向上箭头,你会看见保存的命令。要执行该命令,只要在执行前从行的开始移开井号键。

7.通过忽略输入错误保存更多输入

 

6.运用命令别名保存输入

你正处于终端区域,在任意地复制、更新和移除文件时从一个目录激发到下一个。或者你不在终端区域,由于手指比大脑运动得更快,甚至键盘反应时间可以处理,这导致你要不断地返回并更正你的输入错误。在你的.bashrc文件中添加以下行,shell会在识别文件或路径名字时自动地修正所有输入错误。

  1. 创建目录书签

ls命令的长列表格式(ls
-l)可以频繁地运用,但是连字符让它在大量输入时有点不实用。你可以使用.bashrc内的别名命令创建命令别名用于长命令。在这个例子中,命令别名dir是ls
–l的替代。

shopt -s cdspell

继续跟随目录互动的主题,你会不可避免地一次次回到某些目录。可以通过添加到$CDPATH
shell变体的路径(在你的.bashrc文件中)来创建能让你快速导航到这些目录的书签:

alias dir='ls -l'

  8.在后台打开应用程序

C代码  

7.通过忽略输入错误保存更多输入

当巡视命令行时,你也许会需要进行另一个任务,如响应一封邮件。当然,可以按你执行其它命令的方式从终端打开GUI应用,只需通过调用它们的名字完成,在这个例子中,打开Gimp:

CDPATH=’.:/home/tektea/books’  

你正处于终端区域,在任意地复制、更新和移除文件时从一个目录激发到下一个。或者你不在终端区域,由于手指比大脑运动得更快,甚至键盘反应时间可以处理,这导致你要不断地返回并更正你的输入错误。在你的.bashrc文件中添加以下行,shell会在识别文件或路径名字时自动地修正所有输入错误。

$ gimp

 

shopt -s cdspell

但是有效地这么做结束了你的终端会话,因为应用程序会在前台打开。如果你正从命令行中常规打开一个特定程序,考虑在你的.bashrc文件里修改它的默认调用:

一旦添加,你可以从操作系统路径中的任一处直接导航到书签目录,只需要执行如下命令:

8.在后台打开应用程序

gimp()
{
  command gimp
“[email protected]”
&
}

C代码  

当巡视命令行时,你也许会需要进行另一个任务,如响应一封邮件。当然,可以按你执行其它命令的方式从终端打开GUI应用,只需通过调用它们的名字完成,在这个例子中,打开Gimp:

重载你的.bashrc文件见源命令),你将能调用Gimp应用,和任意你想要打开的图像文件名称一起传递,还有保留终端控制的附加福利。

$ cd books  

$ gimp

9.以少换多

 

但是有效地这么做结束了你的终端会话,因为应用程序会在前台打开。如果你正从命令行中常规打开一个特定程序,考虑在你的.bashrc文件里修改它的默认调用:

更多的命令在快速细读文本文件内容时实用。一旦文件负载到页面,你可以运用/来搜索文件。问题并是一旦你发现想要的行,向上导航并检查看上去高于该行的内容不可能。更少的命令并不是劣势,它允许你可以实现向上和向下的文本滚动。以相同的方式调用越少的命令得到的越多:

 

gimp()
{
command gimp "[email protected]" &
}

$ less sometextfile.txt

  1. 熟练地编辑命令行

重载你的.bashrc文件(见源命令),你将能调用Gimp应用,和任意你想要打开的图像文件名称一起传递,还有保留终端控制的附加福利。