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

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

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

mkcd()
{
mkdir -p $1
cd $1
}

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

tektea@ubuntu:~$ mkcd catogory/articles
tektea@ubuntu:~/catogory/articles $ 

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

tektea@ubuntu-laptop:~/Documents/techtarget_articles/ten_command_line_tricks/test2$ cd
tektea@ubuntu-laptop:~$ cd -
~/Documents/techtarget_articles/ten_command_line_tricks/test2$
tektea@ubuntu-laptop:~/Documents/techtarget_articles/ten_command_line_tricks/test2$

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

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

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

$ cd books

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

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

为了也创建chapter04.md源文件,命令行初学者会很快厌倦用向上箭头在历史中检索之前执行(上一)命令,然后用左指箭头直到用 chapter04.md更换了所有chapter06.md实例。还有很多更高效的方式来执行该任务。

首先,考虑使用Bash的命令行编辑键盘快捷键 (两种支持模式:Emacs和vi),这让你可以快速地导航到想去的位置:

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

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

$ 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

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

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

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

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

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

alias dir=’ls -l’

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

shopt -s cdspell

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

$ gimp

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

gimp()
{
command gimp “$@” &
}

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

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

$ less sometextfile.txt

10.清理你的命令行历史
历史命令(history command)很容易成为你能支配的最有力工具之一。但是有一个节省时间的命令尤其值得一提:$HISTIGNORE shell变量。
随着时间,你的历史列表会变得非常长。利用$HISTIGNORE变量来排泄你认为不相关的记录:

$ export $HISTIGNORE=”&:cd:exit:ls”

这会导致所有复制的命令、cd、离开和ls命令从历史命令中遗漏。

速度是管理命令行的关键,而这十个技巧看似雕虫小技,但关键时刻(比如:面试)应该可以帮得上你的。

【文章来源:TechTarget中国】

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

  1. linux打印系统时间命令行,linux中多种查看系统时间的命令

    原标题:linux中多种查看系统时间的命令 介绍linux中多种查看时间的方法 1.date 这个是最经典的系统查看时间的命令,也是脚本的经常用到定义时间的命 [root@localhost ~]$ ...

  2. Linux 基本命令(四)--时间 常用命令

    2019-07-30 date 系统时间参数 显示时间是个常用的命令,在写shell脚本中也经常会用到与日期相关文件名或时间显示.无论是linux还是windows下都是date命令. Linux下d ...

  3. linux 下yy命令,Linux 基本命令(一)--时间 常用命令

    2019-07-30 date 系统时间参数 显示时间是个常用的命令,在写shell脚本中也经常会用到与日期相关文件名或时间显示.无论是linux还是windows下都是date命令. Linux下d ...

  4. linux让脚本在指定时间运行程序,如何限制Linux命令程序运行的时间

    1. 前言 本文主要讲解如何限制Linux命令程序运行的时间. Linux提供了大量的命令,每个命令都是唯一的,并且在特定的情况下使用.Linux的目标是帮助您尽可能地高效工作.Linux命令的一个属 ...

  5. linux命令哲学,Linux哲学思想、history实现执行命令的时间、Linux命令格式

    1.Linux哲学思想 (1)一切皆是文件(包括硬件),所有都以文件形式显示. (2)小型,单一用途的程序 (3)链接程序,共同完成复杂的任务 (4)命令提示符为主 (5)配置数据存储在文本中 2.临 ...

  6. linux使用date命令修改系统日期,使用date命令设置CentOS Linux修改系统日期和时间...

    您可以使用date命令来修改CentOS Linux的时间 修改日期: 将时间设置为2014年6月20日的命令如下: #date -s 2014年6月20日 修改时间: 将系统时间设置为14:20:0 ...

  7. linux时间格式化命令

    在Shell环境里,我们获取时间的命令是date,针对不同的业务场景,我们需要时间进行格式化处理. Linux系统常用的时间域 %Y年(例如:2020,2021等) %m月(01-12) %d一个月的 ...

  8. Linux at 命令C/C++实现 (在指定的时间执行命令)

    在使用 Linux 系统时,我们通常首选 crontab 来安排作业. 命令还有另一个实用程序对于调度一次性任务非常有用. 它从标准输入或脚本/文件中读取命令,稍后可以执行一次. 但是我们不能将 at ...

  9. linux 命令行获取时间,linux - 以毫秒为单位获取时间的命令

    linux - 以毫秒为单位获取时间的命令 Linux中是否有shell命令以毫秒为单位获取时间? MOHAMED asked 2019-03-13T19:07:35Z 10个解决方案 264 vot ...

最新文章

  1. 2017-2018-1 20155328 《信息安全系统设计基础》第十四周学习总结
  2. 死磕Java并发:J.U.C之Java并发容器:ConcurrentLinkedQueue
  3. LightSpeed 的Left Join Bug解决方案
  4. JavaScript-变量与作用域链
  5. P1273 有线电视网
  6. oracle安装 衍生进程已退出,linux安装oracle 出现问题
  7. linux6.5+5.4 vncserver配置
  8. http服务器响应格式,熟悉Http协议的请求和响应格式,编写一个简单的Http服务器。 基本要求:1 正确解...
  9. 都说「跳一跳」是微信抄袭了育碧,万万没想到,他们在一起了!
  10. android 日历图,Android中的自定义日历视图
  11. 小蚂蚁学习数据结构(26)——题目——输出二叉树上值大于x的算法
  12. 【阿里云】SCDN介绍及配置
  13. 安装win7系统时,硬盘模式为IDE模式时安装成功,硬盘模式为AHCI模式时重启蓝屏或一直启动的问题,以及IDE模式与AHCI模式的区别!
  14. 通俗理解逻辑删除和物理删除的区别
  15. talfta---动态故障树分析软件产品介绍
  16. 利用多拨技术将100M宽带免费扩展到1000M
  17. CMake 编译时出现错误 coffe转换到 COFF 期间失败: 文件无效或损坏
  18. 大连首闻grid二次开发增强文档
  19. 姿态估计1-06:FSA-Net(头部姿态估算)-源码无死角讲解(1)-训练代码总览
  20. java分数计算_分数计算java

热门文章

  1. 整数的个数(信息学奥赛一本通-T1067)
  2. 信息学奥赛C++语言:最大数max(x,y,z)
  3. 7 SD配置-企业结构-定义-定义信贷控制范围
  4. office移动端_阿里云 Teambition 网盘产品快讯:移动端正式版即将上线,体验将大幅提升...
  5. python os库使用
  6. 利用colab训练YOLOv5
  7. 客户连接多个服务端_Linux 服务端最大并发数是多少?
  8. OpenCV中基本数据结构(7)_Vec
  9. [电工] 比较电路、反向滞回电路,正向滞回电路预习题
  10. HTMLCSSJavaScript个人入门自学笔记