Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发。

我们都知道被困在一段简单代码上数个小时是一个开发者挫败感的由来。出了问题却找不到bug会让人身心俱疲。

我认为对于开发人员来讲,节省时间是相当重要的。我发现自己经常浪费时间在有关Linux的简单事情上,而我也曾目睹专家级的开发者仅仅使用合适的工具就节省了大量的时间来避免上述的挫折感的产生。

1. 快捷键可以节省时间

使用快捷键。不要浪费时间在鼠标上例如打开一个终端(Terminal)。一些快捷键我发现相当有用:

打开终端:`Ctrl+Alt+T`

对行操作:在终端,如果你使用 `` 或 `` 是相当浪费时间的,相反,你应该:

跳过一个单词:`Ctrl + →` 或者 `Ctrl + ←`

直到行末:`Ctrl + a` , 回到开头:`Ctrl + e`

删除整行:`Ctrl + u`

命令查找:通过在终端键入 `Ctrl + R` 来查找你以前输入过的命令类型。循环多次地键入这个快捷键你会找到所有你输入过的匹配的命令。

2. 在终端显示 Git 分支信息

我的意思是想这样子的终端:

当我在别人的终端上看到了这个,我就完全喜欢上了它。你有两种途径可以做到:

使用 ZSH(推荐做法):要做到如图所示,你需要在终端键入以下命令:

使用 ZSH 会带给你更多的好处 —— 更加友好的界面、拼写检查、智能补全等等。有关 ZSH 的更多细节,请查看setting up ZSH on Linux.

修改 ~/.bashrc:或者修改你的 ~/bashrc然后在文件末尾添加以下行:

3. 开始使用别名

起别名允许你使用你所选的关键字别名来缩短常用的命令。

不得不说,恰当地使用别名会明显地让你每天缩短30分钟(在敲打命令上)。我习惯 cd 进我的项目目录,然后启动服务器或者别的其他程序。高效的开发者会使用常用命令的别名,而且还会 export 常用的变量和路径到 bash 的变量中。

例如,你需要每天早上通过这行命令来启动服务器:

那么你现在可以这么做,然后把这个命令添加到你的 ~/.bashrc中:

下一次,你只需要在你的终端上敲下 nginx-start就可以启动你的服务器。

更好的做法是,把你每天要使用5次以上的命令都重命名为大于2个关键字的命令。

更详细的向导在 using alias with unix systems 上可以找到。

4. 使用 Terminator 或者 Tmux

我曾经常切换终端窗口来执行不同的任务,这里你可以有别的方法可以做到:

很简单地,只需要打开终端并且敲下以下代码就可以下载得到:

你可以右键 terminator 的界面来分割你需要的任意一个屏幕窗口(screen)。

5. 学习并使用那些非常有用的Linux命令

在Linux上可以飞速的完成像查找一个文件、浏览一个文件等的操作。你需要熟悉那些非常基本的命令:

通过名字查找文件:

滚动正在查看的大文件:。这样比你在gedit或者别的编辑器打开再浏览要快得多。

在终端界面上输出整份文件:

只输出包含那些关键字的行:

在当前路径下打开文件管理器:。

以树形结构展开当前目录的结构,包括子目录和子文件:。

输出空闲内存数:。

以流的形式读取一个文件,特别是实时的日志文件:

熟练掌握如、、等的命令,一旦你习惯这样做,你每天都会因此节约大量时间。

6. 展示、监控和终止进程

我在日常频繁执行的任务之一就是监控资源(RAM,CPU等等)和终止进程。在Linux上如何执行这些操作会让Linxu初学者感到困惑。

我使用一个工具叫 htop,它看上去就如下图所示:

你可以在一个窗口就完成监视、排序、终止以及查找进程。你可以从这里找到教程:install and get started with htop here

7. 使用牛逼的代码编辑器

我知道这一项是相当主观的建议。但我还是推荐使用一款优秀的代码编辑器,例如 JetBrains 系列的产品。熟练地掌握它可以让你的开发生涯更加愉快漫长。

额外建议:健康生活,专心致志

你大概知道这些忠告,最主要还是:吃好睡好。尽可能集中自己的精力在某个方面上,下面的工具可以帮助你:

RedShift:在电脑屏幕上放上这个会让你睡得更好。

Self Control:这个可以帮助你控制你自己的习惯,避免在FB,Twitter上流连忘返。

英文原文:http://www.trysudo.com/7-tips-for-a-productive-development-setup-on-linux/

译者:Darcy

在Linux上高效开发的7个建议相关推荐

  1. Linux上线程开发API概要(线程)

    进程与线程       典型的UNIX/Linux进程可以看成只有一个控制线程:一个进程在同一时刻只做一件事情.有了多个控制线程后,在程序设计时可以把进程设计成在同一时刻做不止一件事,每个线程各自处理 ...

  2. C#在Linux上的开发指南

    本人才疏学浅,在此记录自己用C#在Linux上开发的一点经验,写下这篇指南.(给想要在Linux上开发C#程序的朋友提供建议) 目前在Linux上跑的网站:http://douxiubar.com | ...

  3. linux上 arm开发环境搭建,详解 LINUX下QT For ARM开发环境搭建过程

    LINUX下QT For ARM开发环境搭建过程是本文介绍的内容,不多说,先来看内容.在PC上,我们需要得到两个版本的Qt,分别是:Qt-4.5.2和QtEmbedded-4.5.2-arm.前者包括 ...

  4. 外贸人如何在领英linkedin上高效开发客户

    领英目前有6亿人在使用,上面各行各业的客户都有,是个非常好的开发客户平台,但是这么好的平台,能用好它的外贸人有多少呢? 这里出一道题,假设你是一个外贸新人,新进电子产品行业,如果给你一个小时的时间,你 ...

  5. linux上C++开发——1. C++包管理工具

    文章目录 1. 包管理器的作用 1.1 常见的包管理器 1.2 C++使用第三方库的方式 1.3 C++包管理器的诞生 1. 常见的C++包管理工具 1.1 Conan 1.2 vcpkg 1.3 其 ...

  6. 嵌入式linux与ARM开发板的入门建议

    2019独角兽企业重金招聘Python工程师标准>>> 第一,学习基本的裸机编程. 对于学硬件的人而言,必须先对硬件的基本使用方法有感性的认识,更必须深刻认识该硬件的控制方式,如果一 ...

  7. 7个步骤教会你使用领英(LinkedIn)高效开发国外客户

    领英(LinkedIn)现在已经是许多外贸企业在寻找客户资源时的第一选择了,但客户资源不是你轻轻松松就能很快获得的,甚至有些人在领英努力了好几个月都没有很好的收获. 很多外贸人为自己业务寻找新的潜在国 ...

  8. 基于 Linux 和 MiniGUI 的嵌入式系统软件开发指南题八——MiniGUI 和其他嵌入式 Linux 上的图形及图形用户界面系统

    简介: 为了让读者对嵌入式 Linux 当中能够使用的图形及图形用户界面有个较为全面的认识,本文将为读者介绍一些嵌入式 Linux 系统中常见的图形及图形用户界面系统,并作为<基于 Linux ...

  9. Linux上的WebSphere MQ开发快速入门

    本文将通过用于向队列发送消息和从队列接收消息的示例应用程序说明如何在 Linux 上着手安装和配置 WebSphere MQ,以及如何为 MQ 环境开发 Java 应用程序. 引言 本文的目标是让您轻 ...

最新文章

  1. IronRuby and ASP.NET MVC
  2. 计算机存储的大小端模式解析
  3. export LD_LIBRARY_PATH 的使用
  4. 使用ArrayList对大小写字母的随机打印
  5. poj1094Sorting It All Out(拓扑排序)
  6. 移植性问题のCString类型转换,字符串操作和UNICODE、ANSI字符集
  7. 淘宝网的软件质量属性分析
  8. RabbitMQ用户角色及权限控制
  9. 华为交换机web界面配置
  10. linux行命令测网速,Linux命令行测试网速的方法
  11. Modebus - usb转RS485(芯片)串口驱动
  12. 2017年数模国赛B题第一小题的思路过程(个人思路)
  13. 计算机备份打印机驱动程序,如何在Windows上备份打印机驱动程序和队列
  14. 愚你相遇,好幸运:遇见你,遇见了最好的自己
  15. 解决 OneNote 项目符号快捷键 Ctrl+. 在 Windows 10 下无效问题
  16. 【网络编程开发系列】好端端的MQTT-broker重新部署后居然出现TLS握手失败了
  17. NCBI数据下载-sra
  18. 天地图引擎加载自定义WMTS图层
  19. 基于opencv的视频融合
  20. 【Vue知识点- No2.】vue脚手架、基础API

热门文章

  1. java联调_java联调环境
  2. 21世纪的net程序员怎么就这么难招聘?
  3. tdengine jdbc连接报错: Unable to resolve FQDN; 其他情况出现该错误,也可用此方法处理。
  4. google中文官网
  5. SAR信号处理之窗函数7——汉宁(Hanning)窗
  6. error: non-constant-expression cannot be narrowed from type 'int' to 'SLuint32'
  7. 2022-04-12 西安 javaSE(06)匿名对象、this第二种用法、static
  8. ASK动画获三千资本A+轮投资,将加速推进原创动漫作品的创作
  9. 【数据库篇】Redis知识点
  10. Android vold mount sdcard导致的冻屏问题