如何在Linux上优雅地写代码-Linux生存指南(优雅.生存.代码.指南.如何在...........)

wufei123 2025-01-05 阅读:29 评论:0
初次接触linux时,常常感到困惑,因为要频繁地使用命令行界面,那个大黑框总是显得晦涩难懂。即使翻阅各种手册,使用vi/vim写代码也让人感到不适。然而,linux下的工具却拥有惊人的功能,远远超出我们的想象。如果你是linux的初学者,那...

初次接触linux时,常常感到困惑,因为要频繁地使用命令行界面,那个大黑框总是显得晦涩难懂。即使翻阅各种手册,使用vi/vim写代码也让人感到不适。然而,linux下的工具却拥有惊人的功能,远远超出我们的想象。如果你是linux的初学者,那么阅读下面的内容将会让你的使用更加得心应手、更加高效。

1. 抛弃man,使用tldr优雅地阅读手册

1.1 简洁明了

在Linux系统中,几乎一切操作都可以通过命令行完成,并且有着众多丰富的命令行工具。然而,即使是最优秀的程序员也无法记住所有的命令及其使用方法。当我们遇到需要执行但又不熟悉的命令时,常常感到手足无措。比如,要使用tar命令进行打包或解压缩,该如何操作呢?

有些人会打开搜索引擎,辛辛苦苦地查找答案,解决了问题,但很快又会遗忘。聪明的朋友可能会想到使用man命令,打开tar的手册。然而,tar的手册内容通常都很冗长,让人望而却步。

如何在Linux上优雅地写代码-Linux生存指南

又臭又长,需要你有较好的英语基础和耐心。不仅仅是我们这么觉得,会英语的老外都觉得烦,于是有大神开发了tldr工具。tldr即Too Long;Didn’t Read的简写,太长不看。

使用方法和man一样,比如查看tar命令的用法:

JavaScript
tldr tar
如何在Linux上优雅地写代码-Linux生存指南

他的画风如上,虽然还是英语(不要害怕英语,这是一个程序员的基本功),但是他给出了使用的例子!排版简洁、清晰,收纳了使用率高的例子。

比如你要解压缩,看到这,

如何在Linux上优雅地写代码-Linux生存指南

即使你的英语水平不高,凭有限的词汇量, 你也能知道应该用什么参数了吧,可读性极强!

1.2 安装tldr

ubuntu下安装很简单,执行以下三条命令:

JavaScript
sudo apt-get install nodejs
sudo apt-get install npm
sudo npm install -g tldr

如果出现了警告,有可能是因为nodejs版本问题,用以下命令升级nodejs:

JavaScript
sudo apt-get install nodejs-legacy
sudo npm install -g n
sudo n latest

如果升级nodejs失败,可能是Ubuntu版本问题,用以下命令安装稳定版nodejs:

JavaScript
sudo n stable
sudo node -v

然后再安装tldr

JavaScript
sudo npm install -g tldr

用以下命令可以对tldr更新

JavaScript
tldr --update

2. 让你的终端分屏显示

2.1 终端复用器(terminal multiplexer)

通过ssh登录linux只有一个命令行界面,用tmux,让他分开!

如何在Linux上优雅地写代码-Linux生存指南

如图,一个界面分成很多块,我们可以一边写程序,一边查看其他东西。

可以任意调整各个窗格大小与数量

如何在Linux上优雅地写代码-Linux生存指南

优雅!一个命令即可安装:

JavaScript
apt-get install tmux

2.2 tmux操作

2.2.1 启动tmux

直接输入

JavaScript
tmux

如图,出现 绿色栏就说明进入tmux环境了。

如何在Linux上优雅地写代码-Linux生存指南

2.2.2 退出tmux

一个exit命令即可退出。

JavaScript
exit

2.2.3 分屏

左右分屏:在要分屏的窗格下输入

JavaScript
tmux split-windosw -h

上下分屏就是把-h换成-w。

2.2.4 切换当前窗格

记住ctrl+b是tmux的各种快捷键的启动键

切换窗格步骤:

1.按ctrl+b,松开。2.按方向键,如要切换到右边就按->。

2.2.5 调整窗格大小

先切换到要调整的窗格,然后:

1.按ctrl+b,不松开。2.按方向键

2.2.6 关闭一个窗格

先切换到要关闭的窗格,然后:

1.按ctrl+b,松开。2.按x。

什么?还不够优雅、高效,还是习惯在windows下写好,再放到Linux下编译?

是的,这样是正确的选择,完全没问题,但是如果不是写大型项目,其实直接在Linux下使用vim/vi会更加优雅!

vim/vi可不是记事本,他有着强大的查找、搜索、替换…..等功能,并且可以让你完全脱离鼠标,属于越用越喜欢的慢热型。不过确实比较复杂,不想在这么优雅的文章里介绍他,想学的可以看:

一文彻底解决vi/vim编辑器操作

上面的只是初级优雅,真正的优雅来了。

3. 管道配合printf调试程序

Linux下,gdb是一个很好的调试工具,不会用的可以学一下,在这篇文章中,我并不打算介绍gdb,而是教你用管道机制,利用Linux里一些命令配合printf来调试。

Linux 下程序可以协同工作,可以将一个命令/程序的输出通过管道(Pipes)连接到另一个命令/程序的输入,管道操作符是 |。

在程序中使用printf加入调试信息,或作为输出信息,是常用的调试和输出方法,但经常会遇到打印出几百行,不容易阅读的情况。

3.1 基操:联合grep找到想要的信息

比如一个输出进程信息的程序,运行后很长(这里只展示了一部分)。

如何在Linux上优雅地写代码-Linux生存指南

我们想看看包含system字样的,只需:

JavaScript
./pstree.o |grep system
如何在Linux上优雅地写代码-Linux生存指南

ok,只输出了含system的。

3.2 用head让程序只输出一部分

比如一个输出信息特别多的程序,我们有时只想看几行信息

如何在Linux上优雅地写代码-Linux生存指南

编辑

-n后面的参数就是表示输出的行数。这个操作看似作用不大,实则特别有用!

比如一个程序,里面的printf会运行n次,为了测试程序,n可能很大,用head命令就相当于想让他让运行几次就运行几次!

写一个简单的程序模拟一下该情况:

JavaScript
#include 
int main (int argc, char **argv)
{
        int i,j;
        j = 8;
        for(i = 0;i if (i % j == 0) {
                        printf("0
");
                        j++;
                }
                printf("1
");
        }
}
如何在Linux上优雅地写代码-Linux生存指南

编辑

3.3 用sort排序输出结果

sort的-u选项

在输出行中去除重复行。

sort的-r选项

sort默认的排序方式是升序,想改成降序,加-r。

sort的-t选项和-k选项

如果一行的输出有好几个部分/列,比如:

JavaScript
a:1:30:d
b:2:30:c
f:1:1:a

每行都有4列,列与列之间用冒号隔开了,我想用第4列排序,怎么办?

加上-t选项,后面跟间隔符,指定了间隔符之后,用-k来指定列数。

另外,管道机制可以让命令连用

如何在Linux上优雅地写代码-Linux生存指南

3.4 uniq命令统计输出结果

uniq命令不带任何参数会删除重复出现的行

JavaScript
-c  : 在每列旁边显示该行重复出现的次数
-d  : 仅显示重复出现的行列
-u  : 仅显示出一次的行列(没有重复的)

有了这个-c选项,再配合sort就可以统计输出了

如何在Linux上优雅地写代码-Linux生存指南

如上,表示 程序的前一百行输出里0输出了12次,1输出了88次。

这些功能我们完全可以在自己写的程序里实现,然后调试,这并不难,但是也会麻烦,而且这都是为了调试我们的程序,跟我们程序功能实际上不沾边,既然有现成的好用的轮子,为什么不用呢?

以上就是如何在Linux上优雅地写代码-Linux生存指南的详细内容,更多请关注知识资源分享宝库其它相关文章!

版权声明

本站内容来源于互联网搬运,
仅限用于小范围内传播学习,请在下载后24小时内删除,
如果有侵权内容、不妥之处,请第一时间联系我们删除。敬请谅解!
E-mail:dpw1001@163.com

分享:

扫一扫在手机阅读、分享本文

发表评论
热门文章
  • BioWare埃德蒙顿工作室面临关闭危机,龙腾世纪制作总监辞职引关注(龙腾.总监.辞职.危机.面临.....)

    BioWare埃德蒙顿工作室面临关闭危机,龙腾世纪制作总监辞职引关注(龙腾.总监.辞职.危机.面临.....)
    知名变性人制作总监corrine busche离职bioware,引发业界震荡!外媒“smash jt”独家报道称,《龙腾世纪:影幢守护者》制作总监corrine busche已离开bioware,此举不仅引发了关于个人职业发展方向的讨论,更因其可能预示着bioware埃德蒙顿工作室即将关闭而备受关注。本文将深入分析busche离职的原因及其对bioware及游戏行业的影响。 Busche的告别信:挑战与感激并存 据“Smash JT”获得的内部邮件显示,Busche离职原...
  • 闪耀暖暖靡城永恒怎么样-闪耀暖暖靡城永恒套装介绍(闪耀.暖暖.套装.介绍.....)

    闪耀暖暖靡城永恒怎么样-闪耀暖暖靡城永恒套装介绍(闪耀.暖暖.套装.介绍.....)
    闪耀暖暖钻石竞技场第十七赛季“华梦泡影”即将开启!全新闪耀性感套装【靡城永恒】震撼来袭!想知道如何获得这套精美套装吗?快来看看吧! 【靡城永恒】套装设计理念抢先看: 设计灵感源于夜色中的孤星,象征着淡然、漠视一切的灰色瞳眸。设计师希望通过这套服装,展现出在虚幻与真实交织的夜幕下,一种独特的魅力。 服装细节考究,从面料的光泽、鞋跟声响到裙摆的弧度,都力求完美还原设计初衷。 【靡城永恒】套装设计亮点: 闪耀的绸缎与金丝交织,轻盈的羽毛增添华贵感。 这套服装仿佛是从无尽的黑...
  • python怎么调用其他文件函数

    python怎么调用其他文件函数
    在 python 中调用其他文件中的函数,有两种方式:1. 使用 import 语句导入模块,然后调用 [模块名].[函数名]();2. 使用 from ... import 语句从模块导入特定函数,然后调用 [函数名]()。 如何在 Python 中调用其他文件中的函数 在 Python 中,您可以通过以下两种方式调用其他文件中的函数: 1. 使用 import 语句 优点:简单且易于使用。 缺点:会将整个模块导入到当前作用域中,可能会导致命名空间混乱。 步骤:...
  • 斗魔骑士哪个角色强势-斗魔骑士角色推荐与实力解析(骑士.角色.强势.解析.实力.....)

    斗魔骑士哪个角色强势-斗魔骑士角色推荐与实力解析(骑士.角色.强势.解析.实力.....)
    斗魔骑士角色选择及战斗策略指南 斗魔骑士游戏中,众多角色各具特色,选择适合自己的角色才能在战斗中占据优势。本文将为您详细解读如何选择强力角色,并提供团队协作及角色培养策略。 如何选择强力角色? 斗魔骑士的角色大致分为近战和远程两种类型。近战角色通常拥有高攻击力和防御力,适合冲锋陷阵;远程角色则擅长后方输出,并依靠灵活走位躲避攻击。 选择角色时,需根据个人游戏风格和喜好决定。喜欢正面硬刚的玩家可以选择战士型角色,其高生命值和防御力能承受更多伤害;偏好策略性玩法的玩家则可以选择法...
  • 奇迹暖暖诸星梦眠怎么样-奇迹暖暖诸星梦眠套装介绍(星梦.暖暖.奇迹.套装.介绍.....)

    奇迹暖暖诸星梦眠怎么样-奇迹暖暖诸星梦眠套装介绍(星梦.暖暖.奇迹.套装.介绍.....)
    奇迹暖暖全新活动“失序之圜”即将开启,参与活动即可获得精美套装——诸星梦眠!想知道这套套装的细节吗?一起来看看吧! 奇迹暖暖诸星梦眠套装详解 “失序之圜”活动主打套装——诸星梦眠,高清海报震撼公开!少女在无垠梦境中,接受星辰的邀请,馥郁芬芳,预示着命运之花即将绽放。 诸星梦眠套装包含:全新妆容“隽永之梦”、星光面饰“熠烁星光”、动态特姿连衣裙“诸星梦眠”、动态特姿发型“金色绮想”、精美特效皇冠“繁星加冕”,以及动态摆件“芳馨酣眠”、“沉云余音”、“流星低语”、“葳蕤诗篇”。...