Questions tagged «shell»

Shell是一种软件,它使用户通常可以通过在命令行中键入来与操作系统进行交互。

3
PATH搜索是否包含符号链接?
POSIX Shell标准在此站点上说 http://pubs.opengroup.org/onlinepubs/9699919799/ 有关shell如何PATH用于查找可执行文件的信息: “应从头到尾搜索列表,将文件名应用于每个前缀,直到找到具有指定名称和适当执行权限的可执行文件为止。” 嗯,这在实际的POSIX实现中似乎不是这样工作的: man which 说: “返回参数(在严格符合POSIX的外壳程序中以命令形式给出)的情况​​下,将在当前环境中执行的文件(或链接)的路径名。它通过在PATH中搜索与文件名匹配的可执行文件来实现。参数。它不遵循符号链接。” 好,让我们看看这种情况: $ pwd /home/mark $ echo $PATH /home/mark/bin:... $ ls -l bin/foobar lrwxrwxrwx 1 mark mark 18 Dec 12 22:51 bin/foobar -> /home/mark/foobar1 $ touch foobar1 $ which foobar $ chmod a+x foobar1 $ which foobar /home/mark/bin/foobar 好的,这是一个PATH带有正确名称的符号链接,并且据报告ls是可执行的。 which 根本不看它,只对它指向的内容感兴趣。 …

1
这些神秘的字符串在注册表关联中真正意味着什么?
查看我的HKEY_CLASSES_ROOT \ Word.Document.12 \ shell \ Open \ command \ command值(Word 2010'Open'shell关联),我看到了这样的废话: xb'BV5 !!!!!!!!! MKKSkWORDFiles> bi $ T!V!0Z = {Pk0vm〜AZu / n“%1” 关于/ n“%1”的最后部分的内容都很清楚,但是第一个隐秘的名称显然表示在运行MS Word时有一些魔术指令。我对Excel和其他Office协会有同样的伏都教。 我通过互联网进行自我教育的许多尝试并没有带来任何结果。很多人讨论建立Word / Excel关联正常工作的“正确方法”,但是我没有看到他们(也像我一样)了解他们在做什么以及为什么他们真的认为这种黑魔法会起作用对于其他人-只是因为它设法在他们的机器上工作。 但是,我真正不了解的事实是,没有人(当然是我在互联网上发现的人)曾问过诸如“地球如何运作?”之类的问题。或“这到底是什么意思?” 或至少不是最后一个,“您认为我有讨厌的病毒吗?!”。好吧,我想我将成为第一个。 我在这里的问题不是为什么人们如此好奇。我的问题是这些字符串在注册表关联中如何真正起作用?那一定是某些未记录(或已记录?)的Windows(大概是Windows Shell)功能将这些字符串转换为人类可消化的东西。

3
为什么不'>'从gcc重定向错误消息?
我将以下程序存储在new.c中 int main() { a; return 0; } 它返回一条错误消息。我想将此消息发送到文件。所以我用下面的命令 gcc new.c > temp.txt 但是我仍然在终端上得到输出。我正在使用Ubuntu 13.04。我该如何运作?
9 c  shell  gcc 



4
Bash Shell教程[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新的问题,所以这是对话题的超级用户。 6年前关闭。 有什么好的bash教程?我想了解更多有关bash shell命令以及如何使用它们的信息。

2
如何在XP / Vista / 7上完全禁用CTRL-ALT-DEL组合键?
我一直在广泛搜索以解决此问题,似乎没有人能够给出直接答案。 首先,我要说的不是要要求CTRL-ALT-DEL输入登录信息。 我正在研究在高尔夫中心使用的高尔夫模拟器程序。我需要完全禁用CTRL-ALT-DEL键序列的功能,以便高尔夫中心客户完全无法退出程序并访问计算机。我意识到还有其他按键组合也需要处理,我们已经可以在XP中使用整个功能,但是我们将很快切换到Windows 7,而CTRL-ALT-DEL是唯一一个组合键在Win7中似乎不起作用。如果可能的话,我真的很想要一个全方位的解决方案。 该程序也可能安装在客户的个人计算机上,用于家庭高尔夫模拟器,但是真正需要此功能的计算机(高尔夫中心计算机)由我们提供给高尔夫中心,因此最好的选择是编写一个新的外壳?除了其他建议为信息亭模式编写新外壳的信息外,我对此一无所知。 我真的想要一个更简单的选项,例如以某种方式修改注册表。我听说您可以从弹出的菜单屏幕中删除一些按钮,但是除非我可以删除几乎所有按钮(包括右下角的“关闭/重新启动”按钮),否则这还不够。为我解决。
9 shell 

4
使用内置的Bash运行exec
我定义了一个shell函数(我们称它为clock),我想将其用作另一个命令的包装器,类似于该time函数,例如clock ls -R。 我的shell函数执行一些任务,然后以结尾exec "$@"。 我希望此功能甚至可以与Shell内置程序一起使用,例如clock time ls -R应该输出time内置程序的结果,而不是/usr/bin/time可执行文件的结果。但是exec总是最终改为运行命令。 如何使Bash函数作为包装程序工作,该包装程序还接受shell内置参数作为参数? 编辑:我刚刚得知这time不是内置的Bash,而是与管道相关的特殊保留字。我仍然对内置解决方案感兴趣,即使它不能与结合使用time,但是更通用的解决方案会更好。

1
shell命令前的百分号(%)
我只是将一堆代码粘贴到我的shell中,但是%在运行命令之前忘记删除前导代码。它似乎什么也没做。为什么这对我的shell(zsh)不起作用? > % echo foo 在bash中,我得到以下内容 > % echo foo bash: fg: %: no such job 我只是想确保运行我的命令没有任何副作用。

2
如何获取脚本生成的所有子进程的列表
内容: 用户向我提供其自定义脚本来运行。这些脚本可以是各种脚本,例如用于启动多个GUI程序,后端服务的脚本。我无法控制脚本的编写方式。这些脚本可以是阻塞类型,即执行等待直到所有子进程(顺序运行的程序)退出 #exaple of blocking script echo "START" first_program second_program echo "DONE" 或非阻塞类型,即在后台派生子进程并退出类似 #example of non-blocking script echo "START" first_program & second_program & echo "DONE" 我想达到什么目的? 用户提供的脚本可以是以上两种类型中的任何一种,也可以是两者的组合。我的工作是运行脚本,并等待脚本启动的所有进程退出,然后关闭该节点。如果是阻塞类型,则情况很简单,即获取脚本执行过程的PID,然后等到ps -ef | grep -ef PID不再有条目。非阻塞脚本是给我带来麻烦的脚本 有没有一种方法可以获取通过执行脚本生成的所有子进程的PID列表?任何指针或提示将不胜感激

2
rm -rf返回码
任何人都可以让我知道rm -rf命令的可能返回码,而不是零,即失败情况下的可能返回码。我想知道命令失败的更多详细原因,不只是命令失败(返回0以外)。
9 shell  unix 

4
可以在sendto文件夹中使用Shell脚本吗?
我想使用SendTo文件夹中的bash shell脚本。当我将批处理或exe快捷方式放到SendTo文件夹中时,它会显示在shell Send To上下文子菜单中,但是当快捷方式指向shell脚本时却没有。 我正在测试的操作系统是Win7 Home Premium SP1。该扩展名.sh已与MinGW的bash.exe相关联。 我的shell脚本有一个.sh扩展名,并且我尝试.sh使用此实用程序取消关联该扩展名(我认为MinGW最初对其进行了设置,但这没有用),并尝试使用以下方式将其重新关联为bash: ftype ShellScript=c:\MinGW\msys\1.0\bin\bash.exe -c "'%1' %2" assoc .sh=ShellScript 在admin cmd shell中。尽管这可以在命令提示符和Explorer外壳上运行(通过双击),但它不会显示在Send To菜单中,并且不能通过直接在脚本顶部拖动文件来接受参数。 有人知道我会怎么做吗?


5
Linux:chsh和ypchsh都不起作用,我可以更改shell吗?
我是一个老派的Unix家伙,所以我的Linux技能可能稍微过时了。但这看起来应该很简单。 在我没有root的Red Hat Linux系统上(由公司IT部门管理),我希望能够更改我的登录shell。运行chsh给了我: $ chsh -s /bin/bash chsh: can only change local entries; use ypchsh instead. 所以,我改为运行ypchsh: $ ypchsh userid ypchsh: can't find the master ypserver: Internal NIS error 是什么赋予了?有没有其他想法?
8 linux  shell 

3
重定向输出时如何设置特定文件权限?
这可能是重复的,但我的所有搜索都提出了有关权限被拒绝错误的问题。 我在bash shell中运行命令。我想重定向输出以追加到第一次运行时可能不存在的文件。如果输出重定向必须创建此文件,我想设置特定的文件权限模式。有没有办法用一个命令来做到这一点? 例如,我可能会尝试 foo >> /tmp/foo.log 0644 哪里 0644 是我想要的权限 foo.log 结束。我在bash中尝试过的大多数命令最终都会解释 0644 作为一个额外的论据 foo。 我觉得这将是第二个命令 chmod 写入之前或之后的权限。 我正在使用GNU bash 4.2.25和Ubuntu 12.04,如果这有所不同 - 一般答案是首选。

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.