Questions tagged «linux»

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

4
在执行之前制作CMake打印命令
我正在使用Linux上的CMake构建的大型C ++项目。CMake运行正常,在模块和应用程序树中生成大量的Makefile。运行GNUmake会导致链接器错误。make在运行命令之前,如何获得确切的命令? -d选项不会打印命令,但是很多信息并没有帮助。 -n选项显示所有命令,但不运行它们,因此我无法确定问题出在哪里。从make -n检查标准输出,我看不到任何相关的命令。我怀疑某些命令会根据早期命令的结果进行更改,而Makefile的层次结构使您很难分辨出实际情况。 我看不到make手册页中的其他选项似乎有用。
70 linux  cmake  gnu-make 


7
带有最后退出代码的Bash提示
因此,我一直在尝试通过bash提示进行自定义,以使其看起来像 [feralin@localhost ~]$ _ 颜色。我设法获得了恒定的颜色(每次看到提示时,颜色都是相同的),但是如果最后一个命令的退出状态为非零,我希望用户名(“ feralin”)显示为红色,而不是绿色。我想出了: \e[1;33m[$(if [[ $? == 0 ]]; then echo "\e[0;31m"; else echo "\e[0;32m"; fi)\u\e[m@\e[1;34m\h \e[0;35m\W\e[1;33m]$ \e[m 但是,从我的观察来看,运行$(if ...; fi)时似乎只对一次求值.bashrc,然后永远替换结果。即使最后一个退出代码为非零(如),这也使名称始终为绿色echo $?。这是怎么回事吗?还是提示出现其他问题?长话短说,如何提示我使用最后一个退出代码?
70 linux  bash  prompt 

3
删除mongodb的日志文件是否安全?
如果删除3.1G日志文件,sudo service mongodb restart将失败。但是,此文件占用太多空间。我怎么解决这个问题?如何删除? bash$ du -sh /var/lib/mongodb/* 4.0K _tmp 65M auction_development.0 128M auction_development.1 17M auction_development.ns 3.1G journal 4.0K mongod.lock
70 linux  mongodb  disk 



4
使用Rsync的包含和排除选项按模式包括目录和文件
我在rsync正确设置语法方面遇到问题,并且想知道我的方案是否可以真正使用处理rsync。首先,我已经确认rsync本地主机和远程主机之间的运行正常。在目录上进行直接同步成功。 我的文件系统如下所示: uploads/ 1260000000/ file_11_00.jpg file_11_01.jpg file_12_00.jpg 1270000000/ file_11_00.jpg file_11_01.jpg file_12_00.jpg 1280000000/ file_11_00.jpg file_11_01.jpg file_12_00.jpg 我想做的是仅在子目录中以“ file_11_”开头的文件上运行rsync,并且我希望能够仅运行一个rsync作业来同步子目录中的所有这些文件。 这是我正在尝试的命令: rsync -nrv --include="**/file_11*.jpg" --exclude="*" /Storage/uploads/ /website/uploads/ 这导致0文件在我的空运行中被标记为可以传输。我尝试了--includeand--exclude语句的各种其他组合,但是要么继续未获得任何结果,要么获得了所有内容,就好像没有设置任何include或exclude选项一样。 有人知道如何执行此操作吗?
70 linux  unix  rsync  darwin 

14
在shell脚本中使用passwd命令
我正在编写一个Shell脚本,以自动添加新用户并更新其密码。我不知道如何获取passwd来从shell脚本中读取,而不是交互式地提示我输入新密码。我的代码如下。 adduser $ 1 密码$ 1 2美元 2美元
70 linux  bash  unix  shell 


8
使用grep和sed查找和替换字符串
我正在使用以下内容以递归方式在目录中搜索特定的字符串,并将其替换为另一个: grep -rl oldstr path | xargs sed -i 's/oldstr/newstr/g' 这样可以。唯一的问题是,如果字符串不存在,则sed失败,因为它没有任何参数。这对我来说是个问题,因为我正在使用ANT自动运行此操作,并且由于sed失败而导致构建失败。 如果找不到该字符串,有没有办法使它失效? 我对我可以使用的单行简单解决方案感兴趣(不一定与grep或sed与此类通用unix命令一起使用)。
69 linux  shell  unix  sed  grep 

6
在Ubuntu上从JDK 1.7迁移到JDK 1.8
我在UBUNTU上。当前安装的JDK版本是: java version "1.7.0_51" Java(TM) SE Runtime Environment (build 1.7.0_51-b13) Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode) 正在安装的配置是: sudo update-alternatives --config java There is only one alternative in link group java (providing /usr/bin/java): /usr/lib/jvm/java-7-oracle/jre/bin/java 我下载了JDK 1.8的最新tar.gz档案。 如何从覆盖/卸载当前安装的JDK 1.7的tar.gz中轻松安装JDK 1.8?甚至没有明确使用tar.gz。
69 java  linux  ubuntu  java-8 


1
GCC的-Wpsabi选项到底能做什么?抑制它意味着什么?
背景 去年,我使用了nlohmann json库[1],并且使用GCC 5.x在x86_64上进行了交叉编译arm-linux-gnueabi-*而没有任何警告。当我将GCC更新为较新版本时,GCC会生成含糊的诊断说明页面。例如,这是注释之一 In file included from /usr/arm-linux-gnueabi/include/c++/7/vector:69:0, from include/json.hpp:58, from src/write_hsi.cpp:23: /usr/arm-linux-gnueabi/include/c++/7/bits/vector.tcc: In member function ‘void std::vector<_Tp, _Alloc>::_M_realloc_insert(std::vector<_Tp, _Alloc>::iterator, _Args&& ...) [with _Args = {nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long long int, long long unsigned int, double, std::allocator, nlohmann::adl_serializer>}; _Tp = nlohmann::basic_json<>; _Alloc = std::allocator<nlohmann::basic_json<> >]’: …
69 c++  linux  gcc  gcc-warning  abi 

4
找不到/安装libXtst.so.6?
我正在运行Ubuntu 12.10,并且尝试安装Netbeans 7.1(或更高版本),但我没有.sh文件,但无法安装,错误出现在这里: [2013-06-27 19:11:28.918]: at org.netbeans.installer.Installer.main(Installer.java:81) [2013-06-27 19:11:28.918]: An error occured while initializing the NetBeans IDE installer UI. [2013-06-27 19:11:28.918]: Most probably the running JVM is not compatible with the current platform. [2013-06-27 19:11:28.919]: See FAQ at http://wiki.netbeans.org/FaqUnableToPrepareBundledJdk for more information. [2013-06-27 19:11:28.919]: /usr/local/java/jre1.7.0_25/lib/i386/xawt/libmawt.so: libXtst.so.6: cannot open shared object …

6
Linux静态链接已死?
实际上,Linux上的-static gcc标志现在不起作用。让我从GNU libc常见问题中引用: 2.22。即使是静态链接程序也需要一些共享库,这对我来说是不可接受的。我能做什么? {AJ} NSS(有关详细信息,请键入`info libc“名称服务开关”“)在没有共享库的情况下无法正常工作。NSS只需更改一个配置文件(/etc/nsswitch.conf)即可使用不同的服务(例如NIS,文件,db,hesiod),而无需重新链接任何程序。唯一的缺点是现在静态库需要访问共享库。这由GNU C库透明地处理。 一种解决方案是使用--enable-static-nss配置glibc。在这种情况下,您可以创建仅使用服务dns和文件的静态二进制文件(为此更改/etc/nsswitch.conf)。您需要明确链接所有这些服务。例如: gcc -static test-netdb.c -o test-netdb \ -Wl,--start-group -lc -lnss_files -lnss_dns -lresolv -Wl,--end-group 这种方法的问题在于,必须将使用NSS例程的每个静态程序链接到所有这些库。 {UD}实际上,无法再说使用此选项编译的libc正在使用NSS。不再有开关。因此,强烈 建议不要使用--enable-static-nss,因为这会使系统上程序的行为不一致。 关于这一事实,现在是否有任何合理的方法可以在Linux上创建功能齐全的静态构建,或者静态链接在Linux上完全无效?我的意思是静态构建: 行为与动态构建完全相同(行为不一致的static-nss是邪恶的!); 适用于合理的glibc环境和Linux版本;

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.