Unix & Linux

Linux,FreeBSD和其他类似Un * x的操作系统用户的问答

7
可移植的方式来获取脚本的绝对路径?
(zsh)脚本确定其绝对路径的可移植方式是什么? 在Linux上,我使用类似 mypath=$(readlink -f $0) ...但这不是便携式的。(例如,readlink在darwin上,该-f标志无法识别,也没有任何等效的标志。)(当然,readlink为此使用的是一个相当晦涩的hack。) 有什么更便携的方式?

3
重定向顺序
我不太了解计算机如何读取此命令。 cat file1 file2 1> file.txt 2>&1 据我了解,2>&1只需将标准错误重定向到标准输出。 按照这种逻辑,命令对我的读取如下: 连接文件file1和file2。 stdout从此操作发送到file.txt。 发送stderr至stdout。 结束? 我不确定计算机在做什么。按照我的逻辑,该命令应为 cat file1 file2 2>&1 > file.txt 但这是不正确的。

3
使用VIM进行替换,重用部分搜索模式
我正在使用VIm并尝试设置搜索和替换命令以进行一些替换,在这些替换中我可以重新使用属于搜索字符串的正则表达式。 一个简单的示例是我要替换(10)为的行{10},其中10可以是任何数字。 我走了这么远 .s/([0-9]*)/what here??/ 完全符合我想要的部分。 现在更换,我尝试 .s/([0-9]*)/{\0}/ 但是,这给出了输出 {(10)} 然后,我尝试 .s/(\zs[0-9]*\ze)/{\0}/ 但是,这给了我({10}),我也关闭了,但不是我想要的。 我想我需要其他某种标记/反向引用来代替\0,但是我不知道在哪里看。所以问题是,这可以在vim中完成吗?

3
如何使用curl从sourceforge下载内容?
只需在浏览器上输入http://downloads.sourceforge.net/project/romfs/genromfs/0.5.2/genromfs-0.5.2.tar.gz即可,但是我试图从受限的CLI环境中下载实用程序。 以下只是返回一个空文件: curl http://downloads.sourceforge.net/project/romfs/genromfs/0.5.2/genromfs-0.5.2.tar.gz 如何使用curl从sourceforge获取genromfs-0.5.2.tar.gz?
29 curl 

1
谁创建/ etc / {group,gshadow,passwd,shadow}-?
在任何我可以访问的linux系统中(几个Archlinux,一个Ubuntu,一个Debian Sid和一个Gentoo),以下四个文件/etc/都以破折号结尾: /etc/group- /etc/gshadow- /etc/passwd- /etc/shadow- 在互联网上,他们说这些只是备份文件,更新到倒数第二个。 现在我想知道:谁在创建那些文件?是我的编辑吗?是应用程序在编辑这些文件(gpasswd,useradd,groupadd等)吗?它是较低级别的东西(甚至是内核模块)吗?
29 linux  files  etc 

2
更改给定可执行文件的链接库(CentOs 6)
我有这样的可执行文件链接: $ ldd a.out libboost_system-mt.so.1.47.0 => /usr/lib64/libboost_system-mt.so.1.47.0 (0x00007f4881f56000) libssl.so.10 => /usr/lib64/libssl.so.10 (0x00007f4881cfb000) libcrypto.so.10 => /usr/lib64/libcrypto.so.10 (0x00007f4881965000) librt.so.1 => /lib64/librt.so.1 (0x00007f488175d000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f4881540000) libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007f4881239000) . . libcrypto和libssl库是openssl 1.0.0-fips库。我想尝试使用1.0.1库,因此已在主目录中构建了它们。有没有办法a.out轻松地与新的openssl库重新链接?我想避免 必须重新链接a.out(因为构建工具非常复杂) 更改任何全局设置(因为其他开发人员在此计算机上工作) 是否可以做我希望在这里做的事情?
29 libraries  linker 


3
如何在文本控制台中设置分辨率(在任何`vga = ...`失败时进行故障排除)
这是使用vga=...内核参数设置文本控制台(通常可通过Ctrl-Alt-F1到Ctrl-Alt-F6来使用)的分辨率的常用方法。我正在使用Ubuntu 10.04 Lucid,输出uname -a为: Linux 2.6.32-33-generic #70-Ubuntu SMP Thu Jul 7 21:13:52 UTC 2011 x86_64 GNU/Linux 为了确定可用的模式,我使用以下sudo hwinfo --framebuffer报告: 02: None 00.0: 11001 VESA Framebuffer [Created at bios.464] Unique ID: rdCR.R1b4duaxSqA Hardware Class: framebuffer Model: "NVIDIA G73 Board - p456h1 " Vendor: "NVIDIA Corporation" Device: "G73 Board - p456h1 " …
29 linux  video  console  nvidia 

6
rm -rf / tmp / *安全吗?
这是我过去在Windows上经常做的事情,但是在最近的惨败之后,我想确定一下。安全吗 sudo rm -rf /tmp/* ?
29 tmp 

6
内核如何挂载根分区?
我的问题是关于从单独的/ boot分区引导Linux系统。如果大多数配置文件位于单独的/分区中,内核如何在引导时正确地将其安装? 在这方面的任何阐述都是很棒的。我感觉好像缺少一些基本知识。我最关心的是操作的过程和顺序。 谢谢! 编辑:我想我需要问的是更多的root内核参数中使用的dev文件。例如,假设我将我的根参数设置为root = / dev / sda2。内核如何映射/ dev / sda2文件?
29 linux  kernel  boot  mount 


4
Bash Shell脚本输出对齐
我的剧本: date echo -e "${YELLOW}Network check${NC}\n\n" while read hostname do ping -c 1 "$hostname" > /dev/null 2>&1 && echo -e "Network $hostname : ${GREEN}Online${NC}" || echo -e "${GRAY}Network $hostname${NC} : ${RED}Offline${NC}" done < list.txt sleep 30 clear done 正在输出这样的信息: Network 10.x.xx.xxx : Online Network 10.x.xx.xxx : Offline Network 10.x.xx.xxx : …

12
如何“分类”文件并删除注释行?
我想知道是否有一种方法可以cat归档php.ini并删除所有以; 例如,如果文件包含以下内容: ; - Show all errors, except for notices ; ;error_reporting = E_ALL & ~E_NOTICE ; ; - Show only errors ; ;error_reporting = E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR ; ; - Show all errors except for notices ; error_reporting = E_ALL & ~E_NOTICE 然后我运行了正确的命令cat | {remove comments command},那么最终结果是: error_reporting = E_ALL & …

2
为什么`sort <“ $ f1”`优先于`sort-“ $ f1”`,为什么它优先于`sort“ $ f1”`?
从https://unix.stackexchange.com/a/458074/674 记住-- 在将任意参数传递给命令时使用(或在可能的情况下使用重定向)。因此,sort -- "$f1"或更好的sort &lt; "$f1"替代sort "$f1"。 为什么首选使用--和重定向? 为什么sort &lt; "$f1"优先于sort -- "$f1"? 为什么 sort -- "$f1"优先于sort "$f1"? 谢谢。

2
Docker —警告:不支持交换限制
我在Ubuntu 16.04上运行Docker(1.9.1)。当我运行docker info输出的最后一行时说WARNING: No swap limit support。 INFO[0781] GET /v1.21/info Containers: 0 Images: 0 Server Version: 1.9.1 Storage Driver: aufs Root Dir: /var/lib/docker/aufs Backing Filesystem: extfs Dirs: 0 Dirperm1 Supported: true Execution Driver: native-0.2 Logging Driver: json-file Kernel Version: 4.4.0-62-generic Operating System: Ubuntu 16.04.1 LTS (containerized) CPUs: 2 Total Memory: …
29 swap  docker 

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.