Questions tagged «linux»

LINUX问题必须与编程有关。仅当您的问题与使用Linux API或Linux特定行为进行编程有关时才使用此标记,而不仅仅是因为您碰巧在Linux上运行代码。如果需要Linux支持,可以尝试https://unix.stackexchange.com或特定Linux发行版的Stack Exchange网站,例如https://askubuntu.com或https://elementaryos.stackexchange.com/


12
strace应该如何使用?
一位同事曾经告诉我,在Linux上一切都无法调试时,最后的选择是使用strace。 我试图学习这种奇怪工具背后的科学知识,但是我不是系统管理员,我并没有真正获得结果。 所以, 到底是什么,它做什么? 应该如何使用?在哪种情况下应使用? 应该如何理解和处理输出? 总之,在简单的话,怎么做这个东西的工作?
273 linux  debugging  strace 

13
Windows,Mac OS X和Linux用什么语言编写?
我只是想知道谁知道构成Windows,Mac OS X和Linux的编程语言以及操作系统的每个部分使用的语言(即:内核,插件体系结构,GUI组件等)。 我假设每种语言都有多种语言,显然我知道Linux内核是用C编写的。 我在这里完全猜测Mac OS X包含很多Objective-C代码,因为它是Apple的NeXT派生的语言。 Windows,我听说包含C,C ++和Intel Assembly。Linux或Mac OS是否包含任何汇编代码? 另外,操作系统开发人员是否使用诸如Ruby,Python等脚本语言来编写操作系统的某些部分的脚本?操作系统的哪些部分将用每种语言编写?

4
共享库(.so),静态库(.a)和DLL(.so)之间的区别?
我参与了有关Linux库的一些辩论,并想确认一些事情。 根据我的理解(如果我做错了,请纠正我,稍后我将编辑我的文章)在构建应用程序时有两种使用库的方法: 静态库(.a文件):在链接时,会将整个库的副本放入最终应用程序中,以便调用方应用程序始终可以使用库中的功能 共享对象(.so文件):在链接时,仅通过相应的标头(.h)文件针对其API对对象进行了验证。该库直到需要运行时才真正使用。 静态库的明显优点是它们允许整个应用程序独立运行,而动态库的优点是可以替换“ .so”文件(即:由于安全原因需要更新)错误),而无需重新编译基本应用程序。 我听说有人对共享库和动态链接库(DLL)进行了区分,即使它们都是“ .so”文件。在Linux或任何其他POSIX兼容操作系统(即MINIX,UNIX,QNX等)上进行C / C ++开发时,共享库和DLL之间是否有区别?有人告诉我(到目前为止)一个关键的区别是共享对象仅在运行时使用,而DLL的共享必须首先在应用程序中使用dlopen()调用来打开。 最后,我还听到一些开发人员提到“共享档案”,据我了解,共享档案本身也是静态库,但从未被应用程序直接使用。相反,其他静态库将链接到“共享档案”,以将某些(但不是全部)功能/资源从共享档案中拉到正在构建的静态库中。 预先感谢大家的帮助。 更新资料 在向我提供这些术语的上下文中,必须学习Linux的一组Windows开发人员实际上使用了错误的术语。我试图纠正它们,但是(不正确的)语言规范卡住了。 共享库:程序启动时自动链接到程序的库,并且作为独立文件存在。该库在编译时包含在链接列表中(即:LDOPTS+=-lmylib对于名为的库文件mylib.so)。该库必须在编译时以及应用程序启动时存在。 静态库:一个在构建时就合并到实际程序本身的库,用于一个(较大)应用程序,其中包含应用程序代码和在构建程序时自动链接到程序中的库代码,而最终的二进制文件则同时包含这两个程序主程序和库本身作为单个独立的二进制文件存在。该库在编译时包含在链接列表中(即:LDOPTS+=-lmylib对于名为mylib.a的库文件)。该库必须在编译时存在。 DLL:本质上与共享库相同,但不是在编译时包含在链接列表中,而是通过dlopen()/ dlsym()命令加载该库,因此该库无需在构建时就存在,即可进行程序编译。同样,该库不需要在应用程序启动或编译时出现(必需),因为仅在进行dlopen/ dlsym调用时才需要。 共享存档:本质上与静态库相同,但是使用“导出共享”和“ -fPIC”标志进行编译。该库在编译时包含在链接列表中(即:LDOPTS+=-lmylibS对于名为的库文件mylibS.a)。两者之间的区别是,如果共享库或DLL希望将共享归档文件静态链接到其自己的代码,并且能够使共享库中的函数可用于其他程序,而不仅仅是使用它们,则需要使用此附加标志。 DLL内部。当有人为您提供静态库并且您希望将其重新打包为SO时,这很有用。该库必须在编译时存在。 附加更新 “ DLL”和“ shared library” 之间的区别只是我当时工作的公司中的一种(懒惰,不准确的)口语(Windows开发人员被迫转移到Linux开发,并且这个术语陷入了僵局),并遵循上述说明。 另外,在S“共享档案”的情况下,库名后的尾随“ ”文字只是该公司的惯例,而不是整个行业。
272 c++  c  linux  dll  linker 

21
Hadoop“无法为您的平台加载本地hadoop库”警告
我目前正在运行CentO的服务器上配置hadoop 。运行start-dfs.sh或时stop-dfs.sh,出现以下错误: WARN util.NativeCodeLoader:无法为您的平台加载本地hadoop库...在适当情况下使用内置java类 我正在运行Hadoop 2.2.0。 在线进行搜索会显示以下链接:http : //balanceandbreath.blogspot.ca/2013/01/utilnativecodeloader-unable-to-load.html 但是,/native/hadoop 2.x 上目录的内容似乎有所不同,因此我不确定该怎么办。 我还在以下位置添加了这两个环境变量hadoop-env.sh: export HADOOP_OPTS =“ $ HADOOP_OPTS -Djava.library.path = / usr / local / hadoop / lib /” 导出HADOOP_COMMON_LIB_NATIVE_DIR =“ / usr / local / hadoop / lib / native /” 有任何想法吗?


8
打开文件实际上有什么作用?
在所有编程语言(至少我使用过)中,必须先打开文件才能读取或写入文件。 但是这个打开操作实际上是做什么的? 除了“打开文件以供读取/写入”外,典型功能的手册页实际上没有告诉您任何其他信息: http://www.cplusplus.com/reference/cstdio/fopen/ https://docs.python.org/3/library/functions.html#open 显然,通过使用该函数,您可以知道它涉及创建某种有助于访问文件的对象。 另一种表达方式是,如果我要实现一个open功能,那么在Linux上它将需要做什么?
266 c  linux 

14
在哪里可以设置crontab将使用的环境变量?
我的crontab每小时运行一次。.bash_profile当用户从终端运行作业时,运行它的用户在工作中具有环境变量,但是,显然,crontab在运行时不会被环境变量吸收。 我尝试过将它们放入.profile,.bashrc但是它们似乎仍然没有被捡起。有谁知道我可以将crontab可以接收的环境变量放在哪里?


10
使用命令行在Linux中将xlsx转换为csv
我正在寻找一种在Linux上将xlsx文件转换为csv文件的方法。 我不想使用PHP / Perl或类似的东西,因为我正在考虑处理几百万行,所以我需要快速的东西。我在Ubuntu仓库上找到了一个名为xls2csv的程序,但它只能转换xls(Office 2003)文件(我当前正在使用),但是我需要支持较新的Excel文件。 有任何想法吗?
266 linux  excel  csv  converter  xlsx 

18
如何使用bash脚本替换文件名中的空格
谁能推荐一种安全的解决方案,从给定的根目录开始用文件名和目录名中的下划线递归替换空格?例如: $ tree . |-- a dir | `-- file with spaces.txt `-- b dir |-- another file with spaces.txt `-- yet another file with spaces.pdf 变成: $ tree . |-- a_dir | `-- file_with_spaces.txt `-- b_dir |-- another_file_with_spaces.txt `-- yet_another_file_with_spaces.pdf




6
查找最近24小时内已更改的文件
例如,我的Ubuntu机器上正在运行MySQL服务器。最近24小时内某些数据已更改。 哪些(Linux)脚本可以找到最近24小时内已更改的文件? 请列出文件名,文件大小和修改时间。
263 linux  bash  find 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.