Questions tagged «linux»

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


11
如何在Linux中将time命令的输出重定向到文件?
关于在Linux上计时程序的一个小问题:time命令允许测量程序的执行时间: [ed@lbox200 ~]$ time sleep 1 real 0m1.004s user 0m0.000s sys 0m0.004s 哪个工作正常。但是,如果我尝试将输出重定向到文件,它将失败。 [ed@lbox200 ~]$ time sleep 1 > time.txt real 0m1.004s user 0m0.001s sys 0m0.004s [ed@lbox200 ~]$ cat time.txt [ed@lbox200 ~]$ 我知道还有其他时间实现,带有选项-o来写文件,但是我的问题是关于没有那些选项的命令。 有什么建议 ?
202 linux  bash  time 

6
更改用户默认主目录的命令
我想知道是否有任何简单的shell命令来更改Linux / Unix中的用户主目录(类似于chsh,它会更改现有有效用户的默认登录shell)而无需触摸/etc/passwd文件。谢谢
202 linux  shell  unix 

10
sed中的环境变量替换
如果我从脚本运行以下命令: #my.sh PWD=bla sed 's/xxx/'$PWD'/' ... $ ./my.sh xxx bla 没事。 但是,如果我运行: #my.sh sed 's/xxx/'$PWD'/' ... $ ./my.sh $ sed: -e expression #1, char 8: Unknown option to `s' 我在教程中读到,要从shell替换环境变量,您需要停止操作,并对部分进行“引用”,$varname以便不直接替换该部分,这是我所做的,并且仅当该变量在紧接之前定义时才起作用。 我如何被s识别$var为shell中定义的环境变量?
202 linux  unix  shell  sed 

15
解压缩目录中的所有文件
我有一个ZIP文件目录(在Windows计算机上创建)。我可以使用手动解压缩它们unzip filename,但是如何通过外壳解压缩当前文件夹中的所有ZIP文件呢? 使用Ubuntu Linux服务器。
202 linux  shell  wildcard  unzip 


11
遍历带空格的文件列表
我想遍历文件列表。此列表是find命令的结果,因此我想到了: getlist() { for f in $(find . -iname "foo*") do echo "File found: $f" # do something useful done } 很好,除非文件名中包含空格: $ ls foo_bar_baz.txt foo bar baz.txt $ getlist File found: foo_bar_baz.txt File found: foo File found: bar File found: baz.txt 我应该怎么做才能避免空间分裂?
201 linux  bash  shell 

19
如何使用Bash脚本自动添加用户帐户和密码?
我需要具有在Linux(Fedora 10)上创建用户帐户并能够通过bash脚本自动分配密码的能力(或者,如果需要的话)。 通过Bash创建用户很容易,例如: [whoever@server ]# /usr/sbin/useradd newuser 是否可以在Bash中分配一个密码,其功能与此类似,但会自动进行: [whoever@server ]# passwd newuser Changing password for user testpass. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully. [whoever@server ]#
200 linux  bash  passwd 

15
您如何在Linux控制台上向上/向下滚动?
我知道Up/ Down将为您提供命令历史记录。但是,您如何通过上下滚动查看过去的输出? 我曾经用过Shift+ Page Up/ Page Down,Alt+ Shift+ Up/ Down和Page Up/,Page Down但是这些似乎都不起作用。 这是一个Redhat Linux盒子。
199 linux  terminal  rhel 

2
什么是.pid文件,它包含什么?
我最近遇到了一个扩展名为.pid的文件,并在文件内部进行了浏览,但没有发现太多。该文档说: Pid-File是一个包含进程标识号(pid)的文件,该文件存储在文件系统的定义明确的位置,因此允许其他程序找出正在运行的脚本的pid。 任何人都可以对此进行更多说明,或指导我了解pid文件中包含的内容的详细信息吗?
199 linux  unix  pid 

5
fork(),vfork(),exec()和clone()之间的区别
我一直想在Google上找到这四个之间的区别,我希望这方面会有大量的信息,但是这四个调用之间确实没有任何可靠的比较。 我着手尝试汇编一下这些系统调用之间的区别的基本概况,这就是我得到的。所有这些信息是否正确/我是否缺少任何重要信息? Fork :fork调用基本上是对当前过程进行重复,几乎在每种方式上都是相同的(例如,并非在所有实现中都复制了所有内容,例如,在某些实现中资源有限,但其想法是创建尽可能接近的副本)。 新进程(子进程)获得不同的进程ID(PID),并将旧进程(父进程)的PID作为其父进程PID(PPID)。因为这两个进程现在正在运行完全相同的代码,所以它们可以通过fork的返回码来确定哪个是哪个-子代为0,父代为子代的PID。当然,假设fork调用有效,这就是全部-如果无效,则不会创建任何子代,并且父代会获得错误代码。 Vfork:vfork和fork之间的基本区别是,当使用vfork()创建新进程时,父进程会暂时挂起,子进程可能会借用父进程的地址空间。这种奇怪的状态一直持续到子进程退出或调用execve(),此时父进程继续运行。 这意味着vfork()的子进程必须小心,以免意外修改父进程的变量。特别是,子进程一定不能从包含vfork()调用的函数中返回,也一定不能调用exit()(如果需要退出,则应该使用_exit();实际上,对于子进程也是如此)普通fork()的形式。 Exec :exec调用是用新程序基本上替换整个当前过程的方法。它将程序加载到当前进程空间并从入口点运行它。exec()将当前进程替换为函数所指向的可执行文件。除非有exec()错误,否则控制权永远不会返回到原始程序。 Clone :克隆(作为分叉)创建一个新进程。与fork不同,这些调用允许子进程与调用进程共享其执行上下文的各个部分,例如内存空间,文件描述符表和信号处理程序表。 当使用克隆创建子进程时,它将执行功能应用程序fn(arg)。(这与fork不同,fork从原始fork调用的位置开始在子级中继续执行。)fn参数是指向函数的指针,该函数在子进程执行开始时即被调用。arg参数传递给fn函数。 当fn(arg)函数应用程序返回时,子进程终止。fn返回的整数是子进程的退出代码。子进程也可以通过调用exit(2)或在接收到致命信号后显式终止。 信息表: fork和exec之间的区别 http://www.allinterview.com/showanswers/59616.html http://www.unixguide.net/unix/programming/1.1.2.shtml http://linux.about.com/library/cmd/blcmdl2_clone.htm 感谢您抽时间阅读 !:)
198 linux  process  fork  exec  clone 

20
在Unix shell上加一列数字
给定中的文件列表files.txt,我可以得到它们的大小列表,如下所示: cat files.txt | xargs ls -l | cut -c 23-30 产生这样的事情: 151552 319488 1536000 225280 如何获得所有这些数字的总数?
198 linux  unix  shell 

14
有效测试Linux是否打开了端口?
从bash脚本中,我如何快速找出445服务器上端口是否处于打开/侦听状态。 我已经尝试了几个选项,但我想要的东西快: 1 lsof -i :445 (只需几秒钟) 2. netstat -an |grep 445 |grep LISTEN(只需几秒钟) 3. telnet(不返回) 4 nmap,netcat不可用在服务器上 很高兴知道一种不会先枚举然后在此之后摸索的方式。
197 linux  bash  shell  port 

10
第一次如何配置postgresql?
我刚安装了postgresql,并在安装过程中指定了密码x。当我尝试执行createdb并指定任何密码时,我收到以下消息: createdb:无法连接到数据库postgres:严重:用户的密码身份验证失败 相同createuser。 我应该如何开始?我可以将自己添加为数据库用户吗?

4
Bash脚本并行处理有限数量的命令
我有一个bash脚本,如下所示: #!/bin/bash wget LINK1 >/dev/null 2>&1 wget LINK2 >/dev/null 2>&1 wget LINK3 >/dev/null 2>&1 wget LINK4 >/dev/null 2>&1 # .. # .. wget LINK4000 >/dev/null 2>&1 但是处理每一行直到命令完成然后转移到下一行非常耗时,我想一次处理例如20行,然后当它们完成时再处理另外20行。 我曾考虑过wget LINK1 >/dev/null 2>&1 &将命令发送到后台并继续执行,但是这里有4000行,这意味着我将遇到性能问题,更不用说受限于我应该同时启动多少个进程,所以这不是一个好选择理念。 我现在正在考虑的一种解决方案是检查其中一个命令是否仍在运行,例如,在20行之后,我可以添加以下循环: while [ $(ps -ef | grep KEYWORD | grep -v grep | wc -l) -gt 0 ]; …
196 linux  bash  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.