在Linux上高效开发的7个建议

我们都知道被困在一段简单代码上数个小时是一个开发者挫败感的由来。出了问题却找不到bug会让人身心俱疲。
我认为对于开发人员来讲,节省时间是相当重要的。我发现自己经常浪费时间在有关Linux的简单事情上,而我也曾目睹专家级的开发者仅仅使用合适的工具就节省了大量的时间来避免上述的挫折感的产生。

  1. 快捷键可以节省时间

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

打开终端:Ctrl+Alt+T

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

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

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

删除整行:Ctrl + u

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

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

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


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

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

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

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

  1. 开始使用别名

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

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

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

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

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

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

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

  1. 使用 Terminator 或者 Tmux

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


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

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

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

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

通过名字查找文件:

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

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

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

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

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

输出空闲内存数:。

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

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

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

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

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

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

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

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

原文地址:https://blog.51cto.com/13981400/2387279

时间: 2024-10-14 17:38:34

在Linux上高效开发的7个建议的相关文章

C#在Linux上的开发指南

本人才疏学浅,在此记录自己用C#在Linux上开发的一点经验,写下这篇指南.(给想要在Linux上开发C#程序的朋友提供建议) 目前在Linux上跑的网站:http://douxiubar.com | http://douxiubar.com/AdminLogin/Index(MVC4+Dapper+Autofac)的一个作品 在Linux上开发建议上http://www.linuxdot.net/和http://jexus.org/讨论学习,我刚接触那会才知道自己才疏学浅,受益良多(入门题;I

Android APP高效开发的十大建议

在使用Android开发APP过程中,为什么确保最优化.运行流畅且不会使Android系统出现问题至关重要呢?因为影响APP产品效率的每一个问题,如:耗电或内存占用情况等,都是关乎APP成功与否关键因素.小编为大家总结了十条高效开发AndroidAPP的建议,希望对你有所帮助. 建议一:高效地利用线程 我们知道App运行过程中所有的操作都默认在主线程(UI线程)中进行的,这样App的响应速度就会受到影响.会导致程序陷入卡顿.死掉甚至会发生系统错误.为了加快响应速度,需要把费时的操作(比如网络请求

C#在Linux上的开发指南(续)

续之前的一篇开发指南http://www.cnblogs.com/RainbowInTheSky/p/5496777.html 部分人在部署的时候经常出现dll兼容问题(其实可以看小蝶惊鸿的文章,蝶神早已踩过了坑http://www.cnblogs.com/xiaodiejinghong/tag/mono/) 站点部署后建议使用webbench进行压力测试 1.Microsoft.Web.Infrastructure.dll不用上传,mono已经实现(MS的dll有api依赖的问题),Mono的

(转)嵌入式linux与ARM开发板的入门建议

第一,学习基本的单片机编程. 对于学硬件的人而言,必须先对硬件的基本使用方法有感性的认识,更必须深刻认识该硬件的控制方式,如果一开始就学linux系统.学移植那么只会马上就陷入一个很深的漩涡.我在刚刚开始学ARM的时候是选择ARM7(主要是当时ARM9还很贵),学ARM7的时候还是保持着学51单片机的思维,使用ADS 去编程,第一个实验就是控制 led.学过一段时间ARM的人都会笑这样很笨,实际上也不是,我倒是觉得有这个过程会好很多,因为无论做多复杂的系统最终都会落实到这些最底层的硬件控制,因此

Linux上常用命令整理(一)—— cat

近几个月刚从windows上转过来,开始慢慢熟悉linux,先不撕比到底哪个更好,首先要怀着相互借鉴的精神去了解各个平台. Linux上做开发,除去使用文本编辑器做开发的大神之外,大家(包括我这种菜鸟新手)都需要掌握的应该就是Linux上的常用命令,能让一些时不时冒出来的琐碎而又麻烦的需求简单化.这次先整理几个. cat paste cut grep 一个一个来,先从cat开始,昨天面试被问到了答不上来... cat 主要是三个功能:显示文件内容.创建文件.合并文件 最基本的语法就是:cat [

在开发板Linux上挂载"驱动"挂载不成功,出现提示server 172.27.52.100 not responding, still trying

1.在开发板具体操作步骤如下: 1.1 :设置IP ifconfig eth0 172.27.52.200 1.2 :ping通 虚拟机Linux 主机Linux ping XXX.XXX.XXX.XXX 1.3.挂接 mount -t nfs -o nolock  XXX.XXX.XXX.XXX:/work/nfs_root/first_fs  /mnt // 例如:mount -t nfs -o nolock  172.27.52.100:/work/nfs_root/first_fs  /

使用delphi 10.2 开发linux 上的webservice

前几天做了linux下apache的开发,今天做一个linux 下的webservice ,以供客户端调用. 闲话少说,直接干. 新建一个工程.选other...,选择如图. 继续输入服务名 然后就生成对应的单元. 增加linux 平台. 完善对应的单元代码 { Invokable implementation File for Txaliontest which implements Ixaliontest } unit xaliontestImpl; interface uses Soap.

Linux上使用Qt Creator进行C/C++开发

Qt Creator支持中文,启动速度比Eclipse.Netbeans更快,界面也更美观,跟输入法Fcitx协作良好(光标跟随). 你既可以把Qt Creator当代码编辑器作为vim辅助,好处在于Qt Creator能够自动parse项目,形成友好快速的智能提示,而且你也同样可以使用Qt Creator里面的gdb前端(上图)和valgrind前端(高清大图) 对项目进行调试和内存分析,不过Makefile就要自己写或者用autotools生成了,这对于使用vim进行编程的同学来说,应该是轻

【数据库】Mean web开发 04-MongoDB在Linux上的安装及遇到的问题

简介 Mean是JavaScript的全栈开发框架.更多介绍 用MongoDB实现持久数据的存储是Mean Web全栈开发中的一部分. MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的.它的特点是高性能.易部署.易使用,存储数据非常方便. MongoDB的学习资料可参考: MongoDB中文社区 上一节介绍了NoSQL Manager for MongoDB客户端管理工具连接本地数据库及使用方法,这一节介绍MongoDB在Linux上的安