Linux小白问个关于linux的诸多疑惑问题?

现在很多公司都要求会linux系统,看了一些关于linux方面的教程,都是一些相关的命令。
那所谓的在linux上开发项目,意思是写代码也要在linux系统里面写吗(用虚拟机安装linux系统),就是说也要在linux系统里安装PHP环境集成包咯。

现在我只是按照网上的教程在虚拟机里安装了linux系统,然后找来一些【命令】跟着敲,但是我在敲的过程中,我是很茫然的。我不知道敲这些是为了什么。到现在我都不知道在linux里怎么写代码啊,我在windows用sublim text3 写代码 ,那在linux里呢用什么工具写代码呢?

还有就是招聘信息上写着要会linux,到底是要会什么啊,是要会命令呢还是要会在linux上写代码开发项目啊,但是我看到别人在linux上都是在敲命令啊,并没有看到他们有在linux上写过PHP代码啊,html代码啊 js、css代码啊。
还有就是把项目部署在linux服务器上,要做的事情是不是很多啊,要是不多的话那为什么那些会linux的人整天在敲命令,敲这些命令是要给项目做什么事情呢?

现在在公司根本就没有用到linux,而且现在我也没有看到哪台电脑是linux系统啊。为什么要在linux上开发项目。

linux小白的疑惑,不要介意啊各位!!!知道的可以详细的说下,不要太官方哦。

阅读 13.5k
25 个回答

linux只是一个操作系统,之所以觉得linux跟windows差距很大,很难用,一方面因为先入为主,另一方面,nix系统本身就不是为普通用户准备的。windows的贡献在于将计算机搬上了普通人的面前,而nix主要是给专业计算机工作者用的。linux固然有图形界面,但是图形界面本身就是不符合nix哲学的,nix哲学最大的实现就在于文本流,而图形界面并不支持文本流

举个简单的例子,你希望知道当前目录下所有文件夹(以及递归文件夹)中,哪个文件夹最占空间。请问在windows下你会怎么做?找一个软件!而在*nix下,你可以使用命令的组合,基于管道文本流,自己创造一个统计工具

du . -S | sort -rn

所以,学习linux的命令就好比,学习怎么用锤子,起子,镊子,当你要修个灯泡的时候,这些工具就要组合的用上。而windows就好比,修个灯泡,就叫一个修灯泡的工人来做。

其实linux也并非只有命令行,也是可以有图形界面的,安装个gnome或kde就可以了
有些linux发行版是有分桌面版和服务器版的,桌面版就是有图形界面的啦
你可以试下Ubuntu,unity就是它的图形界面,你也可以换为gnome或kde
至于怎么写代码。。。你在windows下怎么写在linux下就怎么写咯
sublime也是有linux版的
sublime

你装上之后用sublime写就好了不过我都是用vs code写的
我现在就是用的Ubuntu,chrome写的这个回答。
至于命令行下就用vim和Emacs咯这个还是需要些学习成本的,要学的话看这里vim 程式編輯器
哦对了学linux的话推荐看一下鳥哥的 Linux 私房菜

至于干嘛要学linux,因为很多公司都把业务系统部署于装着linux的主机上,如果业务系统需要改一点小细节怎么办?
改动不多的话(比如改一下配置文件里的IP地址什么的)就可以直接在linux用vim打开相应文件改一下然后重新运行就好,不过这个不太规范就是。
一般情况下你可以在你的电脑上开发好程序再把程序拷贝到linux服务器上运行。但是由于windows和linux的c/c++编译器并不太一样,所以如果你写的是c/c++代码你要考虑到时能不能在linux上编译运行。
所以你最好在与你最终要部署的环境相近的环境下编写c/c++程序。

首先需要明确一点,用Linux桌面进行PHP开发是完全没有问题的.

浏览器Firefox/Chrome都支持Linux.
办公软件WPS(基于Qt)和输入法搜狗(基于Fcitx)也支持Linux.

因为QQ不支持Linux桌面,所以我一般用手机QQ,文件传输可以用腾讯微云(网页版).
因为手机QQ可以上传文件到微云,也可以从微云读取文件.
手机QQ里"长按"对方发过来的文件(如压缩包),然后点击"多选",然后就可以选择存储到"微云"了.
当然,在Ubuntu上用VirtualBox虚拟一个XP用来跑QQ和测试IE8也行.

编辑器像你用的Sublime Text也支持Linux.
不过我在Linux桌面(发行版是Ubuntu)用的是Geany和Netbeans.
174710_xU2o_561214.png
130114_BPRA_561214.png

如果你要进行PHP的PECL C扩展开发,还可以用Qt Creator这种C/C++的IDE:

025140_OJwD_561214.png

当然了,招聘PHP程序员里的Linux技能要求主要是你会使用Linux,比如让你在一台Linux VPS上搭建LAMP服务环境,并且能进行简单的运维,一般都不会要求你必须要在Linux桌面上开发.不过Linux的确是一个值得学习的技能.Windows上你可以先装个Cygwin或者用VirtualBox虚拟个Linux来玩玩.哪天心血来潮了,也可以试着在电脑上装真实的Linux来用用.

实话说,作为开发人员,即使一点linux都不会也是可以的。
不过会一些还是有诸多好处的,所谓的会linux,我想并不是要求在linux环境下开发程序,而是熟悉在linux环境下的一些操作(主要是命令用法)。因为大部分程序是运行在linux服务器上的,懂一些基本操作可以省很多事。
比如说程序变慢了,想要查询什么原因造成的,但却不知道怎么在linux查看系统的各种信息,甚至php程序是否正常运行都不知道怎么看。。。这时候就只能去找运维解决了。

为什么要用 Linux 呢??

因为最近在研究 php 多进程。所以,目前我所知道的原因有:

因为有些 PHP 扩展必须要在 Linux 上才能使用、各种通信框架都需要在 Linux 上部署才能发挥其正常功效。

PHP 扩展的话,例如 pcntlsysvmsg , sysvsem , sysvshm , posix 等(所列举的都是 PHP 多进程相关扩展)。

PHP 通信框架的话,例如 WorkmanSwoole 之类的。全都强烈建议部署的时候,在 Linux 上部署,因为只有在 Linux 上才支持多进程,才能发挥其正常功效。

如果你不知道 Linux 的相关命令。那么,面对上述扩展 或 框架,你将连程序调试都做不到。

其他原因我就不怎么了解了.....

招聘信息上的会Linux,指的通常不是在Linux下开发,而是简单的部署和运维。比方服务器大都是Linux的,部署个lnmp,会不会?上现网服务器修改下PHP.ini改变一下上传文件大小限制,会不会?要是对Linux操作一点不熟悉,面对这些任务会蒙圈的。再比如,我司要用PHP连接Oracle数据库,因为要安装PHP模块,这也要在Linux下操作。再比如,客户反应速度很慢,速度很慢这种bug是无法在本地重现的,只能上服务器去查,这也要会Linux的操作,比如进程查看之类的操作。总之,对Linux的需求会越来越多,因为市场上的服务器大多是基于Linux操作系统。

去京东买一本书学学linux, 书名:linux命令行与shell脚本编程大全 先学学基础的东西。linux下写php一般都是vim哦。很少有人在linux下搞图像化的编辑器敲代码.

一般,我都是这样“劝学”:既然知道 Linux 在这个世界已经存在了,而你又是个挺喜欢摆弄计算机的人,那么对 Linux 是怎样的一种存在难道不感到好奇么?也许在你开始尝试使用 Linux 时,已经看到了很多对 Linux 不利的言论。例如,发行版本太多难以取舍、安装繁琐、应用程序没那么多、装显卡驱动很痛苦、无线网卡点不亮、声卡沉默着、中文输入法又在 Emacs 里歇菜了……然而 Linux 已经在这个世界上存在了,即使它存在这样或那样的问题,它依然没有死掉,更何况在 Linux 中去努力的化解这些问题的过程,也就是你对计算机的理解日益精深的过程。

更多内容,见:https://segmentfault.com/a/11...

先自己装一个双系统的ubuntu然后试试日常在里面使用就好,在win下开发也没什么。
除了游戏和ps这类软件没有之外都有相应的IDE和包。

  • linux也有桌面界面的,那些命令大都是一些shell ->调用的系统命令.

  • 大多数server都是linux端的,nginx 这类底层用epoll效果比win下的ICOP要好,linux对server端的支持真的非常非常好。还有很多字符处理什么的支持也非常好grep sed这类命令
    还有非常逆天的git的支持(虽然win下也有)。

  • linux 没有全家桶

  • linux对网络类的库支持特别好

  • linux 的大多数系统都有比较完善的包管理软件像mysql 只要 apt/yum 一下就安装好了。也可以自己编译 用自带的make什么的

  • 对于日常开发来说可以很方便

  • 最重要的是你可以看到更加底层的东西了,在windows下, windows都送到你手里了你还抱怨windows这个不好那个不好。而到了linux下就需要自己动手了,错了只能怪自己了,然后你就只能寻根问底,看 epoll 中断 信号 fork 等等的源码

居然支持markdown

你先用虚拟机或者双系统安装个带图形界面的linux发行版,然后尝试把开发环境在系统上面部署起来,期间你会遇到很多问题,等你把这些问题全部解决了,屏幕输出hello world了,你也就不会再提出这个问题了。

其实Linux就是一个操作系统而已啊,命令的话你只要掌握一些常用的命令就可以了,比如查看文件,复制剪切,还有就是ps命令这个就像win的结束进程。至于使用什么开发工具win有的Linux一定会有的,win没有的Linux也会有的。至于虚拟机我觉得还是别了吧,要想真的学好这个就要学会放手,放手win。就这样吧,祝愿楼主学习一切顺利

先把linux当成windows来搞,怎么开文件夹,复制、新建、删除,怎么装软件,怎么查看系统ip,网卡
linux主要是放代码,不是写代码。
一般来说,如果公司用linux电脑主要是为了安全。linux没widows操作体检来的好。一般都是widows环境开发,线上linux

首先线上的项目现在大部分都是Linux
今天解决了个windows上很难解决的问题,
mysqlsqlite 数据库有150M,搜了资料找到了个shell 脚本,解决中用到了vim,因为文件比较大,我试着用sublime 打开过这个数据库,搜索几个字符特别卡(我用的是mac).
我用vim 曾经打开过几个G的文件,这个小问题就说明了Linux特别有用。

1、其实我觉得招聘岗位上会有熟悉linux这种要求大部分时候不是要求你在linux上做开发(当然能做到的话就更好了)因为很多时候程序员也要编写一些文档,办公时候的交流,这些东西可能在window下会比较方便,拿来即用嘛
2、但是作为程序员还是很有必要多了解这些东西的,linux上面有很多的好东西:

  • 有很多的好工具,如果能够熟练的运用的话能够很好的提高自己的编码效率

  • 熟悉操作系统的原理能够很好的提高编程思想,对于如何优化代码和编写代码都是有很多好处的

加油~

先不说开发环境,就单单说linux做为你的生产环境 就足以说服你必须要掌握好linux.
不要把技能分类,这个应该是运维的,这个应该是开发的...
1.命令是基础,那是你和操作系统交流的基本语言.所以常用的命令必须要熟练 :文件管理,用户管理,进程管理,权限管理
2.不光要懂基本命令,就是操作系统的基本原理也要了解,懂的越多越好。比如某个进程现在挂起了,你不知道它到底在干什么,不知道为什么不干活了.你就可以strace跟踪一下,只是举个例子。 如果不懂系统原理,你记住这个命令也用不好.
3.别说搞php不需要懂linux。就连php运行在linux上也是调用的 linux系统api. 除非不想进步,想成为大神操作系统必须要过.
。。。太多了

第一,windows下可以开发linux等其他平台上的软件。同理linux下也可以开发windows上的一些软件。交叉编译不难。
比如很多嵌入式软件,那些嵌入式软件肯定不是在那个嵌入式设备上写出来的。
所以,你们公司很可能就需要,在windows下编写运行在linux上的软件。
第二,基于第一点的观察,你们只需要简单的了解一下linux下的命令好了,比如vi什么的。不能临时改个参数不会再上面修改啊。
这个会越用越熟的。多用就好了。

Windows和Linux两个世界的产物,了解另一个你就可以接触另一个世界

建议你买一台macbook pro, 二手的就行, 跟linux基本是一样的, 干软件的越早买越有优势

  1. 因为服务器大部分用的是linux。

  2. linux开发效率高,原生支持docker,redis等等。

之前我都是用的linux or macOS开发,可能是创业公司的原因,比较自由,后面换公司的就用windows(主要好多权限安全控制软件什么的只支持windows),不过环境什么,还是用的docker。lnmp感觉和phpstudy或类似的工具用起来感觉都没法比(这是windows的劣势,不是说开发的不好,命令行和linux完全没法比)。linux让你感觉是你可以随心所欲的控制你的电脑,但是新手的话,可能会碰到各种各样的问题就放弃了,驱动问题,依赖冲突,权限太大的误操作,其实等熟悉了之后就会发现方便很多,写一些脚本辅助开发很方便,另外像JAVA类的IDE都是可以在linux上跑的。

另外说下Linus真是偶像啊,开发或主导的linux+git真是很棒! 当然离不开于开源的思想,技术共享才能更好的进步~

PHPStorm, 跨平台开发PHP。
学linux主要是因为他的核心思想和命令行。
Linux的一些思想会影响你的行为。论思想的指导性
大多数情况下,命令行实在太高效。在积累到一定程度以后,再用win会越来越感到win的缺点,win面向的是大众,封装了太多东西。GUI在绝大多数情况下,都不是那么高效(针对程序员的需求)

人们推崇Linux,其实主要是两个原因:

1.表面性质的省钱。因为Linux系统以及大部分周边软件,天生免费。

2.能自己处理Bug。这点非常重要。如果遇到OS级的bug,还能通过源码自行查找bug,如果是windows出了bug,微软因为各种问题迟迟处理不了bug导致项目失败,那损失就大了。以前某大型网购商城的第一版基于windows的网购系统,就是因为这个问题死掉了,后来负责人也因此被换掉,此人估计前途也毁了。

新手上路,请多包涵

有些项目用linux而不用windows不是因为linux系统的优势吗?低成本,安全性高(三个权限等级)、易移植等等。工欲善其事,必先利其器,学习linux命令就是学如何使用工具啊,还是有必要的。可以先对linux系统有个宏观的了解,再具体学习工具的使用。个人愚见。

新手上路,请多包涵

可以看下鸟哥的Linux私房菜这本书籍,就能大致系统地了解Linux

新手上路,请多包涵

其实Linux开发环境比Windows好,你说的sublime text 3编辑器在Linux下也有,只不过需要先装桌面,比如Gnome,Kde等等,很多开发工具都是全平台的,如果你想搞服务器方面,Linux是必须要会的,因为服务器大多数是Linux,而且没有桌面,你要学会在命令下维护服务器。

推荐问题
宣传栏