怎样在Linux下编程?需要什么技术?

前言

分享好玩科技,探索未知世界。大家好,我是drinkingcode。针对如何学习Linux编程,分享一下作为过来人的经验,希望可以帮助到大家。

环境搭建

如果要在Linux下进行编程,那么首先我们需要有Linux操作系统的环境。通常的做法是下载并安装VMware,然后在VMware下安装Linux操作系统的发行版,比如Ubuntu,CentOS等。当一切安装就绪后,你就拥有一个Linux的编程环境了。如果大家需要相关资料,可以关注私信我,百度网盘分享给大家。(仅供个人参考学习)

入门

掌握C语言

环境搭建好之后,接下来我们需要掌握一门编程语言。由于在Linux下提供的系统API都是针对C语言的,所以想要进行Linux编程,就需要掌握C语言的基本使用。针对C语言的学习,给推荐大家一本《C和指针》

熟悉Linux命令

在Linux下编程,很多时候都是通过命令来进行操作的,ls命令,cd命令等。所以掌握常用的Linux命令之后,你就能更方便地去使用Linux系统。对于Linux命令的掌握,大家只需要选择一些常用的命令来进行学习就可以,至于平时不常见的命令,到时遇到再去选择性学习。在这里推荐一本学习Linux命令的书籍《鸟哥的Linux私房菜》基础学习篇

熟悉vim

有了前三步的基础,接下来,我们就可以手动来写C语言了。在Linux下,C语言的编辑器为vim。但是想要在vim上编写代码,就需要了解vim基本命令的使用,因为vim的使用使用vim命令来进行交互的。当我们熟悉了vim命令的使用后,我们就可以自由自在地在Linux下编写我们的C语言代码啦,然后用gcc编译器编译我们写好C语言代码的文件,就可以得到可执行程序,运行可执行程序,就可以看到输出结果。

进阶

熟悉系统API

在入门阶段,我们掌握基本开发Linux程序的流程。但是在入门阶段中,我们编写的应用还不具备太大的实用意义,因为我们编写的程序并没有借助系统的API。所以在进阶阶段,我们需要做的就是借助Linux系统API,以便我们编写的应用发挥更大的威力,更具有实用的价值。

在Linux系统中,比如读取一个文件的内容或者把服务器建立一个连接等,都需要调用Linux系统API才能实现。如何掌握这些API呢?在这里,推荐搭建阅读《UNIX环境高级编程》,里边介绍了文件I/O,进程间通信等知识。这样我们就可以借助系统API让应用发挥更大的价值。

掌握Makefile

当我们编写一个程序的时候,为了让其层次更清晰,通常会把不同部分的程序放在不同的文件或文件夹中,但这些文件之后又是有相互依赖关系的,如何在gcc编译时告知他们之间的顺序呢?此时,就需要我们掌握Makefile的基本语法,然后用Makefile来告知gcc如何编译。在这里推荐一本《GNUmake》。

总结

以上就是我说认为在Linux编程学习中几个比较重要的节点,予以罗列出来,希望对于想要学习Linux编程的同学有一定的借鉴作用。如果你喜欢我的文章或对你有帮助,欢迎点赞转发!

关注我,我是drinkingcode,分享好玩科技,探索未知世界!

其实和Windows下面编程流程差不多,唯一的区别就是你需要先熟悉一下Linux环境(毕竟没有Windows使用起来那么方便),其次,还有就是你需要熟悉一下常用的shell命令及vim等编辑器,下面我简单介绍一下:

了解一下Linux的目录结构:这个是了解Linux的基础,根目录下面都有哪些目录,每个目录都是干什么,常用的配置文件(网络IP、环境变量)都在哪,常用库都在哪,这个都需要了解掌握:

熟悉常用的LinuxShell命令:这个是使用Linux的基础,像常见的ls,cd,find,mdkir,rm,top,grep,sed,awk,su等,简化版的Linux就只Terminal终端而已,如果你连基本的命令都不会,就不要想着还能操作Linux:

熟悉一下vim,emacs等编辑器的使用,可能在迷你版的Linux下,就只是一个vim编辑器,你所有的编程工作都只能在这个环境下进行,wq!命令,这个你会经常用到,如果是桌面版的,可能还有相关IDE可供使用:

最后就是编程了,这个根据自己的编程语言安装对应的包或编译器就行(gcc,java,python等),无非就是vim编辑,命令行编译,调试运行而已(和windows平台可能会有差异),开始使用起来不舒服,后面熟悉后,也就没啥了,当然,有些IDE是跨平台的,也有Linux平台的版本,使用起来和windows的差异不会太大:

就分享这么多吧,可能有些乱,初学编程的话,如果对Linux不熟悉的话,建议还是在Windows环境下面进行,使用起来能更方便一些,熟悉后,可在Linux下面进行,当然,直接在Linux下面也行,不过有个熟悉的过程,建议初学者,还是下载一个桌面版的Linux,不至于直接一个终端命令行,使用起来很迷茫,不知所措,以后很多服务器都是基于Linux平台的,Linux的应用也很广泛,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言。

在Linux下编程不需要什么特别的技术,你只需要掌握Linux操作系统的使用方法,然后在里面安装你所需要编程语言的IDE即可。

Linux系统下是兼容大部分编译软件的,比如Java语言应用最广泛的是eclipse,它具备Linux版本,而且用起来和Windows下差别不大。

Linux生态圈还有一款广为人知的可以写代码的软件,那就是vim,如果你在Linux下跑过C语言程序,那一定用过vi这个指令。它类似于Windows上的notepad,功能强大。

Linux入门,个人推荐一本书:《Linux鸟叔的私房菜》。

在Linux下编程那么必定要使用Linux的命令行终端vim了,要熟练掌握各种vim命令。

Linux终端命令

在Linux下打开命令行终端:Ctrl+Alt+T

浏览目录或者文件:ls后面可以加很多参数,-l、-a、-h等

进入某个目录:cd+路径

返回到上层目录:cd..

切换到上次cd进入的目录:cd

创建一个文件:touch

a.c

创建一个目录:mkdirmydir

创建和删除目录

mkdir目录名创建一个目录rm-r目录名删除一个目录

创建一个文件

touchfilename.txt创建一个文件echostring>>>>filename.txt向文件中写入字符串catfilename查看文件的内容

复制cp

cpsrcfile.txtdstfile.txt文件的复制cpsrcfiledstfile-r文件夹的复制

移动文件或修改名字(mv)

mvsrcfiledstname修改名字mvfilename路径名移动文件或文件夹

vim编辑器的使用

创建一个文本文件并进入编辑模式:vi

filename.txt

vim三种模式之间的转换

1)命令行模式

esc:进入命令行模式

yy:复制当前一行

nyy:从当前行开始复制n行

:3,6yy:从第三行复制到第六行

dd:删除当前行到剪切板

ndd:删除n行到剪切板

p:在光标的下一行粘贴

P:在光标的上一行粘贴

u:撤销

Ctrl+r:反撤销

2)插入模式(编辑模式)

i:进入插入模式光标之前插入

a:光标之后插入

I:行首插入

A:行尾插入

o:光标下一行插入

O:光标上一行插入

s:删除光标所在字符并进入插入模式

S:删除光标所在行并进入插入模式

r:修改光标所在字符

R:替换光标所在行,直到按下esc键结束

0:光标移动到行首

$:光标移动到行尾

gg:光标移动到文件开头

G:光标移动到文件结尾

cc:删除当前行并进入插入模式(删除的内容放在剪贴板中)

yw:将光标所在单词copy到剪贴板

3)底行模式

Shift+::进入底行模式

:wp:保存并退出

:q:不保存退出

:q!:强制退出

学习Linux需要掌握的知识

c语言基础

要熟悉基本的C语法,数据类型、函数、指针等。

文件IO

要掌握文件IO相关的系统调用函数,对文件进行打开、关闭、读写等操作。

数据结构

熟练掌握顺序存储与链式存储等存储结构:链表、队列、栈、二叉树等。

进程和线程

理清进程和线程的区别,掌握进程和线程的创建方法,熟练运用线程和进程相关的系统调用函数。

网络编程

理清TCP/IP协议,会使用socket创建网络套接字,掌握网络通信的方法,熟悉各种服务器模型。



  • 鎬庢牱鍦↙inux涓嬬紪绋?闇瑕佷粈涔堟妧鏈?
    绛旓細鐔熸倝甯哥敤鐨凩inuxShell鍛戒护:杩欎釜鏄娇鐢↙inux鐨勫熀纭,鍍忓父瑙佺殑ls,cd,find,mdkir,rm,top,grep,sed,awk,su绛,绠鍖栫増鐨凩inux灏卞彧Terminal缁堢鑰屽凡,濡傛灉浣犺繛鍩烘湰鐨勫懡浠ら兘涓嶄細,灏变笉瑕鎯崇潃杩樿兘鎿嶄綔Linux: 鐔熸倝涓涓媣im,emacs绛夌紪杈戝櫒鐨勪娇鐢,鍙兘鍦ㄨ糠浣犵増鐨Linux涓,灏卞彧鏄竴涓獀im缂栬緫鍣,浣犳墍鏈夌殑缂栫▼宸ヤ綔閮藉彧鑳藉湪杩欎釜鐜涓...
  • 濡備綍鍦╨inux涓杩涜杞欢寮鍙?
    绛旓細鍦↙inux涓嬭繘琛岃蒋浠跺紑鍙戦氬父鍖呮嫭浠ヤ笅姝ラ锛1.**瀹夎寮鍙戝伐鍏凤細**浣跨敤鍖呯鐞嗗櫒锛堝apt銆亂um锛夊畨瑁呯紪绋嬭瑷鐩稿叧鐨勫紑鍙戝伐鍏锛屼緥濡侴CC锛圕/C++缂栬瘧鍣級銆丳ython瑙i噴鍣ㄣ丣avaJDK绛夈2.**閫夋嫨闆嗘垚寮鍙戠幆澧冿紙IDE锛夛細**閫夋嫨涓涓傚悎浣犵紪绋嬭瑷鐨処DE锛屽Eclipse銆両ntelliJIDEA銆乂SCode绛夛紝鎴栬呬娇鐢ㄦ枃鏈紪杈戝櫒濡俈im銆丒...
  • 鎬庢牱鐢linux缂栫▼?
    绛旓細1銆佸紑鍚竴涓櫄鎷熸満锛屾墦寮缁堢锛坈trl+alt+t锛夛紝鐒跺悗鐢╲i鏂板缓骞惰繘鍏ョ紪杈戜竴涓猚鏂囦欢锛坴i a.c)銆2銆佹寜鈥渋鈥濊繘鍏ヨ緭鍏ユā寮忥紝寮濮缂栧啓绋嬪簭锛屽洜涓linux涓杈撳叆涓枃杩樿杩涜鍏朵粬璁剧疆锛屾墍浠ユ垜鏄湪notepad++涓嬬紪杈戠殑銆3銆佸厛瀹氫箟涓涓暣鏁癮銆4銆佸垽鏂璦鏄惁鑳借2鏁撮櫎锛屽嵆a瀵2鍙栦綑鏄惁涓0锛屼负0鍒欐鏁颁负鍋舵暟锛屽弽涔...
  • 鍦╨inux绯荤粺涓繘琛缂栫▼鐨勫叿浣撴祦绋嬫槸浠涔?楹荤儲璇村叿浣撶偣,璋㈣阿鍠絖鐧惧害鐭 ...
    绛旓細4锛庝笅杞藉埆浜哄凡缁忕Щ妞嶅ソ鐨凩inux鎿嶄綔绯荤粺 濡偽糃Linux銆丄RM-Linux銆丳PC-Linux绛锛屽鏋滄湁涓撻棬閽堝鎵浣跨敤鐨凜PU绉绘濂界殑Linux鎿嶄綔绯荤粺閭f槸鍐嶅ソ涓嶈繃鐨勶紝涓嬭浇鍚庡啀娣诲姞鑷繁鐨勭壒瀹氱‖浠剁殑椹卞姩绋嬪簭锛岃繘琛岃皟璇曚慨鏀癸紝瀵逛簬甯MU鐨凜PU鍙互浣跨敤妯″潡鏂瑰紡璋冭瘯椹卞姩锛屽浜幬糃Linux杩欐牱鐨勭郴缁熷垯闇缂栬瘧杩涘唴鏍歌繘琛岃皟璇曘5锛庡缓绔嬫牴鏂囦欢...
  • 璇烽棶鎴戞湁涓涓.so鏂囦欢,濡備綍鍦↙inux涓嬬紪绋浣跨敤鍛?
    绛旓細-lxx xx鏄綘鐨.so鏂囦欢鍚 鍏跺疄浣跨敤鏂规硶鍜屼綘浣跨敤鏁板搴撳嚱鏁版槸涓鏍风殑锛屾簮浠g爜涓坊鍔 include <math.h>锛岀紪璇戠殑鏃跺欙紝鍔犱笂-lm鍙傛暟銆傛敞锛linux涓鐨.so鏂囦欢涓哄叡浜簱锛岀浉褰撲簬windows涓嬬殑dll鏂囦欢銆
  • 鍦↙inux涓鐢–璇█缂栫▼
    绛旓細4銆傚畧鎶よ繘绋嬬殑鍒涘缓 濡傛灉浣犲湪DOS鏃朵唬缂栧啓杩囩▼搴,閭d箞浣犱篃璁哥煡閬撳湪DOS涓嬩负浜嗙紪鍐欎竴涓父椹诲唴瀛樼殑绋嬪簭鎴戜滑瑕缂栧啓澶氬皯浠g爜浜.鐩稿弽濡傛灉鍦↙inux涓缂栧啓涓涓"甯搁┗鍐呭瓨"鐨勭▼搴忓嵈鏄緢瀹规槗鐨.鎴戜滑鍙鍑犺浠g爜灏卞彲浠ュ仛鍒. 瀹為檯涓婄敱浜嶭inux鏄浠诲姟鎿嶄綔绯荤粺,鎴戜滑灏辨槸涓嶇紪鍐欎唬鐮佷篃鍙互鎶婁竴涓▼搴忔斁鍒板悗鍙板幓鎵ц鐨.鎴戜滑...
  • 鎬庢牱瀛︿範鍦╨inux鎿嶄綔绯荤粺涓鐢–璇█缂栫▼
    绛旓細Linux涓婥璇█缂栫▼鍩虹鐭ヨ瘑:1.婧愮▼搴忕殑缂栬瘧 鍦↙inux涓嬮潰,濡傛灉瑕佺紪璇戜竴涓狢璇█婧愮▼搴,鎴戜滑瑕佷娇鐢℅NU鐨刧cc缂栬瘧鍣. 涓嬮潰鎴戜滑浠ヤ竴涓疄渚嬫潵璇存槑濡備綍浣跨敤gcc缂栬瘧鍣. 鍋囪鎴戜滑鏈変笅闈竴涓潪甯哥畝鍗曠殑婧愮▼搴(hello.c): int main(int argc,char **argv) { printf("Hello Linuxn"); } 瑕佺紪璇戣繖涓▼搴,鎴戜滑鍙鍦ㄥ懡浠よ...
  • 鎬庢牱鍦╨inux涓嬬紪绋,鎬庝箞杩涘叆缂栫▼鐜?
    绛旓細Linux榛樿涓嶅畨瑁呬换浣缂栫▼鐜鐨勶紝鍥惧舰妗岄潰涓嬬殑IDE鍔熻兘涔熷苟涓嶆槸澶氬畬鍠勶細Linux涓鏈甯歌鐨勬槸鈥滃紑鍙戝浠垛濓紙鐪熸鎼炲紑鍙戠殑娌″嚑涓効鎰忓湪鍥惧舰鐜鐨処DE涓共娲伙紝鎵浠ヨ緝涔嬩簬IDE鐜锛屽紑鍙戝浠舵洿鍚堥傦紝杩欑偣璺焀indows涓嶅悓锛夈傚畨瑁呭ソ寮鍙戝浠讹紙濡俫cc锛夛紝灏卞彲浠ュ湪浠讳綍鏃跺欎粠鏂囨湰鎺у埗鍙拌皟鐢ㄥ畠鐨勪换浣曞懡浠わ紝鑰屼笉鏄厛杩愯...
  • 鍦╨inux鐜涓濡備綍鐢–璇█缂栫▼?浠g爜鍦ㄩ偅閲屽啓鍛,鍐欏畬淇濆瓨鎴愪粈涔堟牸寮忕殑鍛...
    绛旓細缂栬緫鍣ㄧ敤vi鎴杤im鎴杄macs鍐欙紝鍐欏畬淇濆瓨涓**.c 鐒跺悗鐢╣cc缂栬瘧锛実db璋冭瘯銆傛瘮濡俫cc -o test.c test 锛嶏紞锛 杩愯 ./test 缂栬瘧鏃跺彧鏈夊姞 -g 鍙傛暟锛屾墠鍙敤gdb璋冭瘯銆傚锛歡cc -g test.c -o test
  • 鍦╨inux鐜涓嬩娇鐢ㄤ粈涔缂栫▼杞欢
    绛旓細linux灏辨槸C/c++锛屾牴鏈笉闇瑕佷粈涔堣蒋浠躲傚湪鏂囨湰缂栫級鍣ㄩ噷鍐欏ソ浜嗭紝鐩存帴鍦ㄥ懡浠よ涓嬬敤gcc鍜実++灏卞彲浠ョ紪璇戝暒銆傚湪鍛戒护琛屼笅鐢 C++鐨勮瘽锛歡++ hello.cpp -o hello C鐨勮瘽锛歡cc hello.c -o hello 鐒跺悗杩愯 ./hello 灏卞彲浠ヤ簡銆俀develop涔熷彲浠ワ紝鑰屼笖缂栬瘧寰堝揩銆傚鏋滃彧鏄啓浠g爜楂樻墜鐢╒IM灏辫浜嗐
  • 扩展阅读:编程一般要学多久 ... linux基础考试题库 ... linux编程怎么下载 ... 自学编程入门教程 ... 免费编程软件手机版 ... linux命令大全菜鸟教程 ... java linux ... 自学编程的人有多可怕 ... linux下c编程开发工具 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网