Unix & Linux

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

11
是否必须有更好的方法来仅替换单个换行符?
我习惯每句只写一行,因为我通常将内容编译为LaTex,或者以其他格式书写而忽略了换行符。我使用空白行指示新段落的开始。 现在,我有一个以这种风格编写的文件,我想将其作为纯文本发送。我想删除所有单个换行符,但完整保留两个换行符。这是我所做的: sed 's/$^/NEWLINE/' file.txt | awk '{printf "%s ",$0}' | sed 's/NEWLINE/\n\n/g' > linebreakfile.txt 这用一些我相信不会出现在文件中的文本替换空行:NEWLINE然后用awk消除了所有换行符(我在某些网站上发现了这个技巧),然后NEWLINE用必需的两个换行符替换了s 。 这似乎是完成一件非常简单的事情的漫长方法。有没有更简单的方法?另外,如果有一种方法可以用单个空格替换多个空格(有时由于某种原因有时会蔓延),那也很好。 我使用emacs,所以如果有一些emacs特定的技巧很好,但我宁愿看到一个纯sed或纯awk版本。

1
如何将php-fpm的用户设置为php-user而不是www-data?
我正在使用Nginx在Debian上使用php-fpm以获得php5支持。我希望php-fpm位于user&group php-user之下,而不是www-data下。 我以为init.d脚本会提到用户或使用其中写入了www-data的文件。但是我看不到。我如何在用户php-user:php-user下生成此过程?这是我服务器上的php5-fpm init.d脚本。 我尝试查看start-stop-daemon手册页,但没有看到。我敢肯定这很简单,但我不知道该怎么做。 #!/bin/sh ### BEGIN INIT INFO # Provides: php-fpm php5-fpm # Required-Start: $remote_fs $network # Required-Stop: $remote_fs $network # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: starts php5-fpm # Description: Starts PHP5 FastCGI Process Manager Daemon ### END INIT INFO # …
27 users  init.d 


3
将stdout和stderr重定向到没有文件描述符副本的同一文件是否安全?
我从空目录开始。 $ touch aFile $ ls aFile 然后我有ls两个参数,其中一个不在此目录中。我将两个输出流都重定向到名为的文件output。我>>为了避免同时写而使用。 $ ls aFile not_exist >>output 2>>output $ cat output ls: cannot access 'not_exist': No such file or directory aFile 这似乎可行。这种方法有危险吗?

3
Linux:是否只能看到内核空间线程/进程?
我知道程序有两个“级别”:用户空间和内核空间。 我的问题是:我只想查看内核程序,或者更好:内核空间上的程序。 这种方法正确吗? ps -ef|grep "\[" root 1 0 0 20:23 ? 00:00:00 init [4] root 2 0 0 20:23 ? 00:00:00 [kthreadd] root 3 2 0 20:23 ? 00:00:00 [ksoftirqd/0] root 5 2 0 20:23 ? 00:00:00 [kworker/0:0H] root 7 2 0 20:23 ? 00:00:06 [rcu_sched] root 8 2 …


3
“ while:;”是什么意思?
我知道什么是while循环。但是,我只看到它适用于: while [condition] while ![condition] while TRUE (infinite loop) 之后的陈述while必须为TRUE或FALSE。 有一个名为shell的内置命令:。它被描述为不执行任何操作的虚拟命令,但是我不知道这里是否相同,即使它可以是TRUE还是FALSE。也许有些不同,但是呢?

3
如何在不安装nano的情况下摆脱“找不到纳米”的警告?
安装了Debian Stretch(9.3)。安装Vim并删除Nano。Vim被选为默认编辑器。 每次跑步crontab -e,我都会收到以下警告: root@franklin:~# crontab -e no crontab for root - using an empty one /usr/bin/sensible-editor: 25: /usr/bin/sensible-editor: /bin/nano: not found /usr/bin/sensible-editor: 28: /usr/bin/sensible-editor: nano: not found /usr/bin/sensible-editor: 31: /usr/bin/sensible-editor: nano-tiny: not found No modification made 我尝试过重新配置sensible-utils程序包,但没有给出任何输入(表示正在执行的操作均成功),但仍会出现警告。 root@franklin:~# dpkg-reconfigure sensible-utils root@franklin:~# 尽管这些警告并没有阻止我执行任何操作,但我发现它们很烦人。我该如何摆脱它们?
27 debian  vim  nano 

1
如何永久禁用终端中的Ctrl-s?
从这里我明白要禁用Ctrl+ S中stty -ixon可以使用的命令和它的作品,但只要我关闭终端,打开另一个我必须重新输入命令。 要永久禁用Ctrl+,S我制作了一个startup.sh包含stty -ixon命令的命令,并使用crontabat 运行它,@reboot但是它不起作用。 那么永久禁用Ctrl+ 的解决方案是S什么?

4
如何从外壳执行库命令?
我只想简单地计算一个字符串的长度(即哈希值)。因此,我打开终端并执行以下操作: $ apropos length 返回给我的是一堆在其末尾带有(3)或(3ssl)附加的命令/功能。现在,男人给了我们有关这些section numbers含义的信息。 3 Library calls (functions within program libraries) 出于好奇,我只是尝试了所有这些命令(希望至少可以使用) strcspn (3) - get length of a prefix substring strlen (3) - calculate the length of a string strnlen (3) - determine the length of a fixed-size string strspn (3) - get length of a prefix …
27 shell  libraries 

1
为什么Chromium无法将DNS缓存超过一分钟?
我使用Chromium,但在我期望的时间内没有缓存DNS时遇到了问题。以example.com域为例。根据DNS设置,该域应再缓存26151秒: $ dig example.com ;; ANSWER SECTION: example.com. 26151 IN A 93.184.216.34 但是,当我在Chromium中打开example.com并打开chrome:// net-internals /#dns时,一分钟之内就会忘记IP! 为什么Chromium不遵守域的DNS设置的TTL?如何强制DNS缓存DNS数据直到过期?
27 dns  chrome  cache 


2
字符串为左括号时,shell括号测试错误
我曾经对以下事实充满信心:对字符串加引号始终是一种好习惯,以避免shell对其进行解析。 然后我遇到了这个: $ x='(' $ [ "$x" = '1' -a "$y" = '1' ] bash: [: `)' expected, found 1 试图找出问题,并得到相同的错误: $ [ '(' = '1' -a '1' = '1' ] bash: [: `)' expected, found 1 我解决了这样的问题: [ "$x" = '1' ] && [ "$y" = '1' ] 我仍然需要知道这里发生了什么。
27 shell  test 

3
`:w!sudo tee%`如何工作
如果您打开了没有权限在vim中写入的文件,然后决定需要对其进行更改,那么您就可以编写更改而无需退出vim,:w !sudo tee % 这是因为我不知道该如何工作。可以请你解剖一下吗? 我了解这一:w部分,它假定将已经存在的文件名与当前缓冲区关联,它将当前缓冲区写入磁盘,对吗? 我也了解!哪个执行sudo tee命令并%代表当前缓冲区内容,对吗? 但是仍然不了解它是如何工作的。
27 vim  sudo  tee 

2
'ls'和'echo $(ls)'之间的区别
考虑两个壳样本 $ ls myDoc.html SomeDirectory someDoc.txt 和 $ echo $(ls) myDoc.html SomeDirectory someDoc.txt 据ls我了解,第一个执行将把当前工作目录的内容附加到stdout文件(这是终端显示的内容)。它是否正确? 第二个采用ls命令的值(表示当前工作目录的内容)并将其打印到stdout文件中。它是否正确? 为什么两个命令给出不同的输出?
27 shell 

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.