做linux后台开发需要对linux操作系统学习到什么程度?

作者&投稿:登江 (若有异议请与网页底部的电邮联系)
javaweb后台开发要对Linux掌握到什么程度~

现在企业内部主要还是在windows上开发,测试、上线在linux上。在linux上部署tomcat服务器,把开发好的项目部署到tomcat上就行。这只涉及到在linux上部署tomcat,熟悉一些常用的命令即可,如ls ,cd 等等。
实际上真正工作的时候只需要在window上开发,通过svn提交到服务器,部署工作一般不需要开发人员来做。在linux上做得事情主要是查看日志一般常用的命令有这些:
1、vim 这个是用来编辑文本的,这个一定要熟悉,在服务器修改配置文件常用
2、grep 这是根据文本内容查找文件的,查日志常用
find 根据文件属性信息查找文件常用,
3、more less cat 查看日志常用
4、netstat ps telnet ping等系统管理命令要了解
5、awk sed 进阶命令,快速处理文本文件用的
6、还要熟悉shell脚本的编写

Linux后台开发方向具体工作:
1、操作系统(Linux)的安装配置和维护
2、数据库系统(如: MySQL)的安装配置和维护
3、Web 服务系统(如:Apache)的安装配置和维护
4、动态网站支撑系统(如:PHP)的安装配置和维护
5、动态地址管理系统(DHCP)的安装配置和维护
6、域名管理系统(DNS)的安装配置和维护
7、远程文件共享系统(FTP)的安装配置和维护
8、电子邮箱系统的安装配置和维护
9、与windows共享资源(目录、打印机)的支持系统(samba)的安装配置和维护
10、防火墙系统的安装配置和维护
等等。
偶尔还要维护网络的畅通、参与某些程序(C++或PHP语言)的程序开发、数据库运行效率的优化、Linux 或 Apache的性能优化、PHP支撑系统的性能优化等工作。
总之,涉及面比较广,有些知识你要边干边学。

linux入门学习
一、关于Linux
  1、Linux干什么用?
  首先,很少有人用Linux做桌面系统,因为Windows桌面系统已经足够好了。我们主要把Linux用作网络服务器的操作系统。如果你和你的应用符合下面的几条,那么你合适使用Linux:
  *不愿意花钱在操作系统和网络应用上。
  *用D版系统受良心谴责或害怕承担责任。
  *想得到和花钱的系统差不多的性能。
  *在用户面前显得水平较高。
  *认识几个弄Linux的高手,或者知道在哪里能够找到问题答案。
  2、每种Linux发行包差别很多吗?
  如果你在上世纪80年代末到95年之前这段时间大量使用PC机的话,那对于Linux你应该很好理解:它就象一个有着32位抢先多任务核心的DOS,其区别在于外表看起来像是一种UNIX。Linux是好多人用智慧堆砌起来的,初学者经常问:“RedHat好还是Slackware好?”。这个人同时还面临上百种选择,这的确让人头痛。大部分Linux发行包实际上很简单,几乎所有的发行包都有相同的内核(也许是不同版本),外部命令和数据文件的差别也仅仅局限于在文件系统中的存放位置不同(这导致了某些兼容性问题,因为在某些地方找不到特定的文件嘛)。另外就是有些发行包为了显示自己的卓而不群,在发行包中增加了一些自己的实用程序。实际上动手修改内核的厂商不算太多,因为这样会内核官方版本的不断更新而手忙脚乱。当然有一些嵌入式系统开发商在Linux基础上做了自己的系统另说。
  拥有众多的发行包是Linux的一个很讨厌的问题,在这一点上,我更喜欢FreeBSD,因为它只有一个官方发行版本,也运行得比较稳定。可给Linux做软件的程序员太多了,Linux上面的资料也更多。记住:当一个家伙跟你说用哪个发行版本无所谓的时候,那他就是专家。
  3、Linux业余爱好者的东西吗?
  这样的宣传给了很多人这样的印象。其实,Linux是一个严肃的操作系统,拥有一切操作系统共有的特性。它可以用在很多严肃的场合。
  4、Linux性能比Windows更好吗?
  这里的答案会让你失望,据我以往的实际测试,2.2版本的Linux核心的性能比windows2000要低。值得欣慰的是2.4版本的核心性能有大幅度提高基本上接近了Windows2000。但Windows2000复杂的图形界面占用了相当的系统资源。
  5、Linux比Windows更复杂更专业吗?
  从复杂度上说,Windows2000要比Linux复杂很多。在核心技术上,Windows也更先进。
  6、Linux更可靠吗?
  应该从两个角度评价系统的可靠性。(1)系统自身的可靠性,两者象差不多。人们普遍认为的Windwos不如Linux可靠的印象来源于Windows众多的良莠不齐的软件。当然,Linux比Windows结构简单,在一定程度上也可以提高可靠性。(2)从安全性角度来说,Linux远远高于Windows系统,道理很简单:树大招风嘛。另外,Linux的源代码开放机制使得漏洞发现和消灭得很快。而Windows相对就显得比较官僚了。这里补充一点,我用过的最可靠的系统是BSD类的OS,可靠性和安全性都可圈可点。
  7、Linux真的不用花一分钱吗?
  大部分的发行包需要花少量的钱购买。当然你也可以从网络上DOWN。其实这些发行包未必符合你的应用,一般都需要经过一些改动和定制才能运行好。当然,花的钱跟Windows没法比。
二、Linux安装注意事项
  现在的大部分发行包都很容易安装,基本上都是图形向导式的,每个发行包都不太相同,也无法一一描述,如果你连安装都不明白,那就别用Linux了。这里仅仅说明几个注意的问题。
  1、如果要和Windows混装,一定要先装Windows,后装Linux。
  2、分区的时候,根据计划安装的软件灵活决定分区。一般分区有:/,/root,/usr,/var和swap分区,其中swap分区类型和其他不同需要专门选择一下,它的空间一般是物理内存的两倍即可。/root分区是紧急情况root用的,有64兆就行了。
  3、当然,为了方便,你可以安装发行包给你做好的软件。但我安装Linux的习惯做法是开始就安装一个最小系统,然后安装所有的编译工具。安装编译工具的方法一般都通过你用的发行包的包管理工具实现,这样最方便。比如在TurboLinux中,运行/usr/sbin/Turbopkg就可以了。在管理工具中选择所有关于Developoment相关的选项或gcc相关选项,一般就可以了。
  4、lilo一定要装。否则一旦出现分区问题都不好办。
  5、如果和Windows混装的时候,装完了系统起不来了。可以用98启动盘启动,然后用FDISK
/MBR回复主引导分区来保住Windows分区。
  在安装了最小系统和全套的编译器后,我们应该得到一个比较干净的系统。在这个系统上,可以下载和安装各种应用软件了。
三、基本使用
  1、文件系统
  无论有多少个分区,整个文件系统都是一棵完整的树结构。经常用到的目录有:
  (1)/usr:存放各种应用程序文件用。其中的/usr/local用来存放后安装的软件
  (2)/var:用来存放所有的数据文件
  (3)/proc:里面的文件用来表示系统内核的各种配置和状态。这一块不是真正的文件系统,而是内存里面的各种数据。可以从这里得到一些常用的系统信息。比如CPU内存什么的。
  (4)/etc:这里是放置所有的系统配置文件。一般情况下,后安装的软件的配置文件不会放到这里。除非你是用RPM安装的随发行包配的软件或者故意这样做。我不喜欢把不同软件的文件混在一起,因此通常让不同的软件的配置文件放在各自的目录中。
  2、常用的命令
  这里我列出一些经常用的命令,具体的用法可以参见相关手册页(希望你的英文不象我这么差)。

  vi(一定要会用这个你非常讨厌的东西,如果你屈服了,可以选择另一个叫做pico的编辑器,它有点象DOS的edit)
  head(用来看很长的文件用)
  tail(同上)
  netstat(看网络状态)
  tar(解开.tar.gz的压缩包)
  ps(察看进程)
  kill(干掉进程)
  top(看系统状况)
  shutdown(关闭系统)
  cat(看文件内容)
  ping
(看网络连通状况)
  ftp(传输文件)
  man(手册)
  上面这些命令都是最最常用的,一定要把基本用法记牢。事实上,每人能记住全部命令或一个命令的全部参数,记住几个常用的就行了。其他的查书。
  3、内核升级
如果你不愿意冒险,可以跳过这个部分。不过根据我实际使用的经验,2.4.x版本的内核性能比2.2.x的性能至少提高40%,还是很值得一试的。现在最新的发行包几乎都带有新的2.4内核,但是版本号想对保守。这里,我的建议是在决定升级任何部分的时候,一定要首先看一下所谓的“currect
version release
note”信息,里面告诉你本次版本升级都有些什么改动。如果改动的内容不涉及你当前的环境或需求,只是增加了一些邪门设备的驱动,你大可不必急着升级。补充一句话:Linux的内核版本号的中间一位是奇数的是非稳定版本,比如2.3,是偶数的才是稳定版本。
  升级内核的步骤如下:
  (1)首先在网上找到你打算升级的内核文件,一般名字是:linux-2.x.xx.tar.gz,把这个文件复制到/usr/src。(不知道在哪里找?看看:http://www.kernel.org ,最好找到.tar.gz格式的,比如这里:http://www.kernel.org/pub/linux/kernel/v2.x/)。下面的升级举例是从2.2.18升级到2.5.7(这是最新的内核了,你使用其它的版本别忘了改变版本号)
  (2)解压缩:tar
zxvf linux-2.5.7.tar.gz后生成一个目录:linux-2.5.7。
  (3)进入/usr/src,用ls –l
命令可以看到src里面有一个连接,类似于:linux -> linux-2.2.18/ (连接指向你当前用的内核版本)。首先删除这个连接(rm
linux),用ln -s linux-2.5.7 linux 命令重建连接。我想你一定不会连这里的版本号都照抄吧?
  (4)进入linux-2.5.7
目录,如果不是第一次编译这个内核,最好用命令:make mrproper
删掉上次编译产生的.o文件等,当然以前保存的配置也丢了。
  (5)用命令:make
menuconfig命令调整内核配置以适应你目前的环境,记住,不懂的配置不要乱动。首要任务是调整各种硬件的环境,比如SCSI卡:SCSI
support/SCSI low-level drivers,不知道现在的SCSI卡型号?在/proc/scsi中可以找到。还有网卡,在Network
Device Support
里面。不知道现在的网卡型号?在这个文件里面写着呢:/proc/net/PRO_LAN_Adapters/eth0.info或/proc/pci文件中也可以找到
。在menuconfig中用空格键改变选项状态,前面的<*>表示该功能编译在内核中,主要是运行速度快。<
>表示不需要该功能。表示把该功能编译成模块,通常为了减小尺寸,和更换方便而把某些驱动编译成模块。
  (6)下面的事情比较程序化,照着做:make
dep (检查文件的完整性,过程很复杂)
  (7)make bzImage
注意大小写(真正开始编译了耶!我觉着这个最过瘾了,屏幕“哗啦哗啦”的,这时候你会感觉到,多少不知名的程序员在这个复杂的系统中贡献了自己的一份力量)
  (8)make
modules (编译那些被标记为的功能模块或驱动程序)
  (9)make
modules_install(把编译好的模块复制到指定地点,一般是:/lib/modules/
。注意:不同版本号的模块是完全分开在不同目录中的,因为modules跟内核是紧密相关的,混用容易导致系统崩溃)
  (10)cd
/usr/src/linux-2.5.7/arch/i386/boot ,用命令:cp
/usr/src/linux2.5.7/arch/i386/boot/bzImage /boot/vmlinuz-2.5.7
把文件bzImage文件改名成vmlinuz-2.5.7复制到/boot/
  (11)cp
/usr/src/linux-2.5.7/System.map /boot/System.map-2.5.7
  (12)进入/boot目录,rm
System.map
  (13)在/boot目录中运行ln System.map-2.5.7 System.map
10-13两个步骤每次重新编译都要做。
  (14)我开始提醒过的,但愿你安装了lilo
(否则你就高唱:“神啊,救救我吧!”),编辑文件:/etc/lilo.conf
,做下面的编辑:
  boot=/dev/sda
  map=/boot/map
  install=/boot/boot.b
  prompt
  timeout=50
  lba32
  default=linux-2.5.7
  image=/boot/vmlinuz

label=linux
initrd=/boot/initrd
read-only

root=/dev/sda5
  image=/boot/vmlinuz-2.5.7

label=linux-2.5.7
initrd=/boot/initrd
read-only

root=/dev/sda5
  黑体字部分是后加的和修改的。万一你没有安装lilo,你只能修改/boot下面的连接指向你新的System.map和vmlinuz
, 而不用修改lilo了。这样也能启动,但是一旦出现问题,你的机器就启动不了了。
  (15)执行命令:lilo
(用来更新lilo数据),注意输出的结果:带星号的是缺省的。
  (16)祈祷,然后reboot 系统重新启动后,用uname –a
可看到新的内核起作用了。如果出现任何问题不能引导了,你需要在lilo的引导界面选择原来的内核启动,进入系统后重新改变内核参数,调整硬件或其他配置。然后重复前面所有过程。

给你一个网址,是有人总结的一些面试题。http://bbs.51cto.com/thread-1030445-1.html


linux学习的步骤?
熟悉Linux系统下的开发环境 熟悉Gcc编译器 熟悉Makefile规则编写Hello,World程序 使用 make命令编译程序 编写带有一个循环的程序 调试一个有问题的程序 4、嵌入式系统开发基础 嵌入式系统概述 交叉编译 配置TFTP服务 配置NFS服务 下载Bootloader和内核 嵌入式 Linux应用软件开发流程熟悉嵌入式系统概念以及开发...

后端工程师要掌握ps吗
不需要。掌握的前端开发水平要能够支撑验证后端实践的程度,后端工程师不需要掌握ps。后台开发中,熟练使用Linux系统是最为关键的一环,毕竟后端服务多数都运行在Linux系统上,后台服务程序会处理各种数据,如订单、合同、用户数据等,这些数据一般存储到数据库中。

八个C语言项目毕业后从小白到大牛
实现功能:图像数据采集、APP显示、远程控制适合人群:有C语言、Linux、网络基础,属于综合性项目,适合有意从事嵌入式开发的同学。 硬件平台:NanoPi Duo2 涉及技术: mjpg_stremer、json、TCP、UDP、QT、epoll 六、智能音箱 难度系数: 代码量:3000行 实现功能:由嵌入式端、后台云服务器和APP组成,实现了切歌、暂停、...

选择Linux方向工作前景如何?
5. 嵌入式Linux开发等。三、Linux下的数据库方向Linux下的数据库方向主要包括Mysql、oracle以及windows下的SQL Server及DB2等的管理。以上是Linux学习的三个方向,在平时学习Linux的时候,可以选择其中一个方向重点学习,一个方向精通,都可以找到一个相当不错的工作! 已赞过 已踩过< 你对这个回答的评价是? 评论 ...

linux运维工程师的主要工作是什么?
在整个企业业务系统运转过程中,涉及到系统、网络、数据库、存储、开发、安全、监控、架构等综合的技术于一身的技术,对运维人员的能力提出了更高的要求。Linux运维岗位分类 □硬件运维:硬件维护,如服务器、交换机、路由器、存储、负载均衡等设备。□网络运维:网络设备维护:交换机、路由器以及办公局域网...

linux入门先学什么
个人更倾向于说想做什么样工作,需要学linux的哪部分。 按个人经验介绍下常见的linux有哪些领域,并对应到什么工作。1)linux应用。这部分严格来说不能算是linux,只是跑在linux上的应用,比如web,网络,IT等,职业包括系统研发,后台开发,服务器性能优化,运维等; 2)linux定制。这部分涉及linux版本的用户包较多,内核会有...

好的linux培训机构是哪家?
千锋教育更是一个值得信赖的选择。我们注重提供全面的Linux培训服务,并与众多知名企业建立了合作关系,为学员提供就业支持和实习机会。此外,我们也提供其他热门领域的培训课程,如Java开发和Web前端开发等,为学员提供更多的选择和发展机会。综上所述,千锋教育是您选择的最佳Linux培训机构。我们提供全面的...

顶级黑客如何假期自学编程
第三阶段:Python网络与并编程开发 1、并发编程 2、网络通信 第四阶段:函数时编程和核心特点 1、函数式编程核心(高阶函数、闭包等) 2、装饰器深入部析 第五阶段:Linux环境编程基础 1、Linux操作系统概述与安装 2、Linux常用命令 3、Linux用户权限和软件安装与管理 4、ShellScript脚本教程 第六阶段:数据库编程基础...

假期如何学好python
(2)搭建开发环境: 主要知识点:Linux的虚拟环境搭建和应用Django的安装。 (3)利用Diango框架完成简单的图书项目: 主要知识点: 编写模型,使用API与数据库交互、使用Django的后台管理管理数据、通过视图接收请求,通过模型获 3、Python全栈教程: (1)HTTP协议的分析:HTTP格式。 包含知识点:HTTPGET请求的格式 HTTPPOST请求...

大一新生想学LINUX嵌入式开发,该选软件工程专业还是计算机科学与技术专 ...
我建议你学计算机科学与技术(我自己是学软件的)下面给你说下观点 你参考就好了 嵌入式开发就是指在嵌入式操作系统下进行开发,一般常用的系统有WinCE,Palm,现在又多了Symbian等,其实只要会C++,在哪里都差不多 嵌入式系统是软硬结合的东西,搞嵌入式开发的人有两类。一类是学电子工程、通信工程...

连山壮族瑶族自治县18360491485: 请问高手,一般LINU后台服务端开发用C还是C++ -
只耐甘油: 一般的服务器,大都属于应用领域.在Linux/UNIX的应用领域搞开发,还是C++多一些,毕竟开发效率高、维护成本低.但是靠近底层的部分,如内核、驱动等方面的开发,还是C语言的天下.

连山壮族瑶族自治县18360491485: java 做的系统后台涉及oracle数据库技术一般用linunx平台开发要学什么 -
只耐甘油: 首先能熟练使用Linux系统,其次掌握oracle在Linux系统中的应用环境,最后明白myeclipse在Linux系统下与Oracle数据库的数据交互方法.

连山壮族瑶族自治县18360491485: 做linux后台服务器开发.要掌握c++吗?我怎么看每条招聘信息上都是精通c/c++ -
只耐甘油: 我是Linux 程序员 后台: 一般就是C和C++ 原因就是效率高 而且编译器一般就是GCC,想用VC,BC,VS..基本不可能.Linux后台 有的时候会处理数据库请求,如果并发特别大..Java是顶不住的,所以就用C了.还有游戏也是, 还有WEB服务器, 只要是并发特别大, 基本上只有C和C++可以选了. 其他的语言在这个时候都浮云... 不过C和C++可不是万能的, C也有上限,当到达上限的时候,只能加服务器了..另外说一下:界面的话,不是后吧哦...是前台的.后台一般就是处理些数据交互,GUI太耗 CPU .

连山壮族瑶族自治县18360491485: Linux后台开发应该具备哪些技能 -
只耐甘油: 需要的技能:Linux命令行技术包括:基础命令,网络命令,shell技术;高级对象编程语言,推荐Python,因为可以进行当前的大数据开发;Linux下的C语言开发,系统语言对你帮助很大,但是有Python也可以.

连山壮族瑶族自治县18360491485: 学习linux服务器开发,需要掌握c++吗,需要掌握到什么程度.那些必备知识需要掌握.我对c语言很熟 -
只耐甘油: GUI 可以用 GTK 写 , 是 C 的 , 用不着 C++,服务端 不会让你写 GUI,C++ 你可以 看看, 主要理解一下 OOP, C 也可以 实现OO, 多看看没坏处, 有些技术不到家的公司会要你用C++, 看看就行了, 基本用不到c++高级特性,底层还是靠C的功底, C++只是能方便你开发 linux 下 主要 用 C,楼上 说的过了, 满篇 goto 你还不如直接上汇编,goto 最有用 的 地方 是错误处理,单函数 过 10K 行, 这程序本身就写的有问题, 也就windows上会出这种东西, 按unix哲学, 这样在linux上写出来基本能认为是垃圾, 完全没有看的必要

连山壮族瑶族自治县18360491485: Linux后台开发应该具备哪些技能 -
只耐甘油: 后台开发具备的技能还是有很多的,这里列出一些,仅供参考:一、linux和os:1、命令:netstat tcpdump ipcs ipcrm 这四个命令的熟练掌握程度基本上能体现实际开发和调试程序的经验2、cpu 内存 硬盘 等等与系统性能调试相关的命令必须熟练...

连山壮族瑶族自治县18360491485: 请问做linux+arm嵌入式开发,需要对linux指令非常熟悉吗? -
只耐甘油: 我个人建议:(有不对的希望朋友们指出)做linux下的开发与windows相比,在编译文件和配置环境的时候非常麻烦,不像windows一样直接安装即可.在这一点建议...

连山壮族瑶族自治县18360491485: 往Linux后台开发方向发展,具体工作内容有哪些?以及如何快速成长 -
只耐甘油: Linux后台开发方向具体工作:1、操作系统(Linux)的安装配置和维护2、数据库系统(如: MySQL)的安装配置和维护3、Web 服务系统(如:Apache)的安装配置和维护4、动态网站支撑系统(如:PHP)的安装配置和维护5、动态地址管...

连山壮族瑶族自治县18360491485: Linux C 后台服务端程序开发流程是怎样的 -
只耐甘油: 开发流程:1、明确需求2、制定框架3、业务开发4、bug修复5、性能测试6、投产应用

连山壮族瑶族自治县18360491485: 在Linux下做开发 要学习Linux哪些东西 -
只耐甘油: 嵌入式Linux要学哪些?一些人总在寻思,怕走了弯路,又怕学的东西离企业需求远.那么今天就请华清远见高级讲师曹大神告诉你,9点浅析嵌入式学习步骤.下面是他本人亲笔.1、要学习Linux,首先要会用,如果不会用怎么知道怎么知道怎...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网