知道'是什么意思? linux,而不是其他操作系统?

时间:2015-02-16 16:47:17

标签: linux

我看到这个问题可能看起来很广泛,但实际上它非常具体,应该有一个具体的答案。

在过去的几年里,我发现了很多招聘帖子,其中列出了“linux”作为必备技能。根据我作为开发人员的经验,我主要使用的是Windows操作系统,而且我知道我使用的一些C ++代码是特定于Windows操作系统的,我假设很多shell命令也特定于Windows。

所以我想知道的是:当有人说你应该'知道'Linux时,他们到底指的是什么,或者换句话说,我应该知道哪些关于Linux的东西能够称之为技能?< / p>

3 个答案:

答案 0 :(得分:1)

Linux是* NIX系列操作系统的一部分。如果Linux是一项工作需求,那么这可能意味着您的雇主使用* NIX操作系统,因此希望您熟悉Linux和类似操作系统的工作方式。

您需要知道的最重要的事情是如何不使用gui,而是使用基于文本的控制台。

答案 1 :(得分:1)

这确实意味着你应该至少知道基本的GNU / Linux命令,并至少清楚地了解事情是如何工作的(即什么是内核,什么是X服务器/客户端,什么是窗口管理器,什么是文件权限,用户,团体)。实际上它很容易学习,只是尝试从源代码安装一些Linux发行版。例如。 Gentoo。它会教你如何在那里发挥作用。

此外,由于您正在寻找开发人员的工作,您应该有一点点 GNU / Linux的编码经验。我记得当你来自Windows®时可能会有什么问题,它是fork()函数,并且缺少用wchar来解决的问题 - 因为UTF8中存在所有内容。同样在GNU / Linux中你可能会发现类似离线MSDN的东西 - 所谓的手册。如果您安装了一些开发人员 man 软件包,您可能会发现许多系统和C特定函数的脱机描述。

更多提示:α)/proc/文件系统。您可能会发现这些目录实际上是正在运行的进程的PID。您可能会发现许多有用的信息。例如。 /proc/somePID/exe是指向正在运行的进程的可执行文件的符号链接。 β)几乎每个GNU / Linux发行版都包含许多对编程有用的工具。 gcc (编译器)nm (列出目标文件中的符号)md5sumhexdump,{{ 1}} (调试器)gdb。 γ)一切都是文件。这确实意味着,例如如果你想创建一个usbstick的图像,你甚至不需要一个特定的工具,你可能只是在objdump目录中找到它的文件,并使用/dev/实用程序,它只是复制一个文件内容,将其写入文件。 δ)您安装的所有内容都可以从终端启动,也就是说,您不需要寻找可执行文件。一个可执行文件,通常安装在dd的某个地方,但无论如何,它总是在你的$ PATH变量中。

答案 2 :(得分:1)

你应该知道

  • shell语言(以及相关命令,如grep,sed,...)
  • 最受欢迎的包管理器/包格式以及如何使用它们(deb,rpm,...)
  • 如何以及在何处配置基本的系统范围内的事物(例如grub,fstab,...)
  • linux系统的基本架构(boot stuff,init system,kernel,userland)
  • 常见概念(例如POSIX,FHS)
  • 工具链的东西(正如Hi-Angel已经概述的那样:gcc,clang,gdb和其他工具)

我建议不要安装像gentoo这样的东西进入linux。这是非常不相关的,你必须处理很多特定于发行版的陷阱(我是一个gentoo dev)。

使用常用的东西,比如OpenSUSE或Debian来学习。