Questions tagged «shell»

Shell是Unix的命令行界面。您可以交互地在外壳程序中键入命令,也可以编写脚本来自动执行任务。使用此标记可解决适用于/ bin / sh和大多数兼容shell(ash,bash,ksh,zsh等)的问题。对于有错误的Shell脚本,请在此处发布之前在http://shellcheck.net中对其进行检查。

1
为什么/ etc / shadow缩短了我使用命令useradd -p设置的密码?
[root@P-dude dude]# useradd -p $6$Ic2PVlwi$2nf.IRWTMy0FHrPzaCjkahfu9IIxnzxPZL7yg8SsvOdbjEpoI0G8uy7AqduYKQOn2R/rnnaalRmfPMy.a0 bwong20 [root@P-dude dude]# cat /etc/shadow | grep pswayze pswayze:nf.IRWTMy0FHrPzaCjkahfu9IIxnzxPZL7yg8SsvOdbjEpoI0G8uy7AqduYKQOn2R/rnnaalRmfPMy.a0:16924:0:99999:7::: 我不确定为什么系统会从我的加密密码中删除前14个字符。/etc/shadow文件中的密码比我作为参数提供的密码短useradd -p
21 shell  useradd 

2
是否有设置目标应用程序第零个参数的POSIX方法?
在中,bash您还可以使用exec -a和中的zsh选项来设置ARGV0执行带有特定第零个参数的程序,但是还有POSIX方法吗? 如该注释中所建议,您可以创建一个(临时)符号链接来实现此目的,但是通过这种方式,我无法将新的第零个参数值设置为真正的任意值,例如具有某个绝对路径的命令。那么还有其他解决方案吗?

2
在Makefile中检查环境变量的值
我有一个Makefile目标,在其中必须检查环境变量的值。但是,我没有确切的语法。努力尝试,但找不到。任何帮助表示赞赏。 环境变量名称:TEST,其值:“ TRUE” test_target: ifeq ($(TEST),"TRUE") echo "Do something" endif 我收到以下错误: /bin/sh: -c: line 0: syntax error near unexpected token `"TRUE","TRUE"' /bin/sh: -c: line 0: `ifeq ("TRUE","TRUE")'
21 shell  make 

3
在前一个命令写入STDOUT时在STDIN中键入另一个命令是否安全?
也许以前已经回答了这个问题,欢迎您链接到另一个答案... 如果我执行一个shell命令(在一个bashshell中),如下所示: make 然后,当输出make是通过从滚动STDOUT的的make命令,如果我输入make check并按enter之前的第一个命令执行完毕,当make命令终于完成下一个命令make check将选择权并运行。 我的问题很简单: 这危险吗? 这种紧急输入是否有潜在的意外行为? 为什么这样做会起作用?
21 bash  shell  stdout  stdin 

6
生成随机密码;为什么不便携?
我想生成一个随机密码,并且这样做: </dev/urandom tr -dc [:print:] | head -c 64 在运行Ubuntu的笔记本电脑上,这只会按预期生成可打印的字符。但是,当我进入学校的运行Red Hat Enterprise Linux的服务器并在其中运行服务器时,3!ri�b�GrӴ��1�H�<�oM����&�nMC[�Pb�|L%MP�����9��fL2q���IFmsd|l�K会得到诸如之类的输出,但根本无法执行。这里可能出什么问题了?

6
除了`>>`以外,还有另一种简单的方法可以将行附加到文件末尾吗?
最近,我在tree_hole文件中回覆了简短的句子。 我曾经echo 'something' >> tree_hole用来做这项工作。 但是我总是担心如果我输入的>不是而不是怎么办>>,因为我经常这样做。 因此,我在bashrc中制作了自己的全局bash函数: function th { echo "$1" >> /Users/zen1/zen/pythonstudy/tree_hole; } export -f th 但是我想知道是否还有另一种简单的方法可以将行添加到文件末尾。因为我可能需要在其他场合经常使用它。 有没有?

5
bash脚本[x $ 1 = x]
我正在阅读bash脚本,但我不明白那里发生了什么。 #!/bin/sh [ x$1 = x ] 第二行是什么[ x$1 = x ] 意思?
21 bash  shell 


6
获取两条路径之间的相对链接
假设我有两条路径:<source_path>和<target_path>。我想我的shell(zsh中)来自动找出是否有代表的方式<target_path>,从<source_path>相对路径。 例如,假设 <source_path> 是 /foo/bar/something <target_path> 是 /foo/hello/world 结果将是 ../../hello/world 为什么我需要这个: 我需要尽可能地创建从<source_path>到<target_path>使用相对符号链接的符号链接,因为否则当我从Windows访问网络上的这些文件时,我们的samba服务器将无法正确显示该文件(我不是sys admin,所以不要无法控制此设置) 假设<target_path>和<source_path>是绝对路径,则下面的代码创建指向绝对路径的符号链接。 ln -s <target_path> <source_path> 因此它无法满足我的需求。我需要对数百个文件执行此操作,因此不能仅仅手动对其进行修复。 有内置的shell可以解决这个问题吗?
21 shell  files  zsh  symlink 

4
在定界符上分割长行
我可以使用以下命令来拆分输入: foo:bar:baz:quux 入这个? foo bar baz quux 我正在尝试找出该cut命令,但它似乎仅适用于固定数量的输入,例如“前1000个字符”或“前7个字段”。我需要使用任意长的输入。

1
为什么不“查找”此文件?
find与配合使用grep,可以找到与模式匹配的文件: # find | grep error ./solr-modifiedSolr4/SolrPhpClient/phpdocs/errors.html ./error_log ./includes/classes/error_log 但是,find找不到单独使用第一个文件: # find . -name error* ./error_log ./includes/classes/error_log 不使用时为什么find找不到errors.html文件grep?如何find用于显示此文件?

1
ls在小目录中花费很长时间
运行Ubuntu,我打开一个终端并执行 sudo bash cd / ls | head -n 1000 并预计返回大约20个目录。 但是,如果我执行ls,并且不将其插入任何东西,ls会一直挂在那里,直到我从另一个终端杀死它为止。可能会发生什么? 编辑: > type ls ls is aliased to `ls --color=auto` 编辑: > /bin/ls / <normal response> > /bin/ls --color=auto <hangs indefinitely> 为什么为ls的输出着色会导致此命令挂起?
21 shell  command-line  files  ls 

4
如何理解管道
当我只是在bash中使用管道时,我对此并没有多加考虑。但是,当我使用系统调用pipe()和fork()一起阅读一些C代码示例时,我不知道如何理解管道,包括匿名管道和命名管道。 经常听到“ Linux / Unix中的所有内容都是文件”。我想知道管道实际上是否是文件,以便它连接的一部分写入管道文件,而另一部分从管道文件读取吗?如果是,在哪里创建匿名管道的管道文件?在/ tmp,/ dev或...? 但是,从命名管道的示例中,我还了解到,使用管道比显式使用临时文件具有空间和时间性能上的优势,这可能是因为管道的实现中没有涉及文件。同样,管道似乎不像文件那样存储数据。所以我怀疑管道实际上是一个文件。

4
如何杀死进程的特定线程?
$ ps -e -T | grep myp | grep -v grep 797 797 ? 00:00:00 myp 797 798 ? 00:00:00 myp 797 799 ? 00:00:00 myp 797 800 ? 00:00:00 myp 这显示了mypPID = 797 的过程以及四个具有不同SPID的线程。 我如何才能杀死进程的特定线程而又不杀死整个进程。我知道,在某些情况下,如果特定线程上存在致命依赖关系,则可能根本不可能。但是,在任何情况下都有可能吗?是的,如何? 我尝试过kill 799,该过程本身已终止。现在,我不确定这是由于myp没有该进程800而导致依赖项失败,还是因为kill很简单,无法杀死单个进程。

6
Unix相当于PowerShell?
当复杂的shell命令涉及使用AWK解析文本输出时,我总是觉得很尴尬。基本上,我们将结构化数据转换为文本,然后再次解析文本以获取结构化数据。 PowerShell是Windows外壳程序,它允许您在外壳程序命令之间而不是文本之间通过管道输入类型的对象,从而避免了该问题。 是否有像PowerShell这样基于对象而不是基于文本的Unix shell?
21 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.