Questions tagged «shell»

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

3
如何将heredoc定义的变量传递给命令
如何将此heredoc定义的变量传递给命令? read -r -d '' tables <<'EOF' table1 table2 table3 EOF tables=$(tr '\n' ' ' < "$tables"); 我希望将table变量定义为: table1 table2 table3
2 shell 

3
为什么cd在我的shell脚本中不起作用?
解决了 我正在尝试在我的Linux Amazon-EC2服务器上创建一个shell脚本,它将启动我的Minecraft服务器,但cd命令说当我尝试更改到服务器可执行文件所在的目录时,它无法找到目录或文件。请注意我接下来没有任何类型的shell脚本的经验。是否必须具有此文件所在文件夹中的权限或文件本身?该文件名为“startServer”。 #!/bin/bash cd /home/ec2-user/Minecraft java -Xmx2048M -Xms2048M -jar minecraft_server.jar nogui *我没有用文件扩展名保存它。我是不是该?它需要吗?

8
为什么“ls -a”会隐藏root用户的某些现有目录?
今天我在我们的一个测试服务器上发现了一些非常有趣的东西(至少对我而言): 我可以使用相对路径从我的实际工作目录更改为现有目录,但使用时不会列出该目录ls -a。 这是shell会话(as root): $ pwd /you/are/here $ ls -a . .. <-- Note: "somedir" is not shown to root $ echo $CDPATH $ cd somedir <-- But still: "cd" works fine $ pwd /you/are/here/somedir $ cd .. $ pwd /you/are/here $ ls -a . .. 有人能告诉我,这怎么可能呢?我已经检查:ls是/bin/ls,和pwd是/bin/pwd,无论是从原来的包(我的意思是:不是黑客攻击)。 /you是一个已安装的EMC磁盘(ext3)。并somedir存在,因为我可以列出它的内容(有几个子目录,文件)。它的名字不是以点开头。 更多shell会话,有关命令和ls输出的更多信息: …

4
用于非破坏性地折叠或重新缩进HTML的实用程序
我有一个脚本,它接受来自wget或类似的输入,并使用它搜索关键词grep。(我保证我不会尝试使用正则表达式解析HTML,它只是一种模拟我们在另一个更复杂的产品中的内容检测行为的便捷方式。)这很有效,只要HTML内容不是太严重了。如果是这样,线条会变得非常长(在某些情况下我已经看到超过50 kB),并且grep它们会窒息。 为了解决这个问题,我希望能够折叠或重新缩进HTML,使其分布在更多行上。但是,为了使脚本能够提供准确的结果,我需要能够在不改变内容的情况下执行此操作。这意味着它无法纠正无效或未封闭的标签,并且它必须仅在元素之间折叠,而不是在元素内部折叠。 这两个要求似乎排除了我发现的所有HTML整理或美化实用程序。 是否有任何基于UNIX的shell实用程序,perl / python / ruby​​模块或类似的东西可以为我做这个? 或者,因为我需要的是在标签之间添加一些新行,有没有办法让我可以半自动地做到这一点?

2
重命名子目录中的文件
我想将一些文件“folder.jpg”重命名为“cover.jpg”。文件本身位于当前目录下面两级。一个简单的电话 mv */*/folder.jpg */*/cover.jpg 不起作用。 那么......如何为所有子目录自动完成? 谢谢!

3
bash:变量名未通过Tab完成展开
在具有bash版本“3.2.51(1)-release”(操作系统:SUSE Linux Enterprise Server 11.1(x86_64))的远程计算机上,我无法使用变量名执行常规选项卡。例如,我想键入: echo $OLDPWD/ 然后在斜杠的末尾,我可以点击“Tab”,变量名称将扩展为旧的目录名称(在最后一个cd或pushd命令之前)。这适用于我自己的笔记本电脑(Debian 7,Bash 4.2.37(1)-release)。为什么在这个SLES bash shell中它不起作用? 同样,如果我输入 echo $OLDP 然后在“P”的末尾点击“Tab”,bash会完成它$OLDPWD。这也不会发生在SLES 11 bash中。 哪些控制变量(shopt?set?)会影响这种行为?

2
删除文件并使用find [duplicate]排除一些文件
这个问题在这里已有答案: 如何删除某些目录中的所有文件除外? 17个答案 这是一个老问题。我知道如何删除文件并排除一些,如下所示: rm `find ~/temporary/Test\ 1 -mindepth 1 -maxdepth 1|grep -v 'A'` 但问题是名称中包含空格的文件夹'Test 1',查找的结果是 /home/owner/temporary/Test 1/B 它会产生rm错误,我该如何解决?

3
终端解压缩外部默认目录
在将CMS部署到远程服务器时,使用终端命令“unzip”似乎非常有用,因为您可以传输zip并远程解压缩。但是,我找不到将所有文件直接解压缩到.zip文件所在目录的根目录的方法。默认情况下,它创建一个与.zip文件同名的文件夹,并将文件提取到该文件夹之后我需要做一个mv命令将文件夹的内容移动到根目录。 我可以使用解压缩一步一步做到这一点吗?
2 macos  shell  zip 


1
无法使用launchctl setenv更改SSH_AUTH_SOCK
我想SSH_AUTH_SOCK在OSX El Capitan系统上将值设置为不同的位置。我尝试通过执行以下命令来执行此操作: $ launchctl setenv SSH_AUTH_SOCK ~/.gnupg/S.gpg-agent.ssh 但是,SSH_AUTH_SOCK即使重新启动终端后仍然保持默认值: $ echo $SSH_AUTH_SOCK /private/tmp/com.apple.launchd.XXXXXXXXXX/Listeners 但有趣的是,当我查询的值SSH_AUTH_SOCK使用launchctl,我得到了想要的结果: $ launchctl getenv SSH_AUTH_SOCK /Users/sora/.gnupg/S.gpg-agent.ssh 如何正确设置SSH_AUTH_SOCK系统范围的值? 编辑:SSH_AUTH_SOCK没有任何shell启动文件的设置(例如~/.zshrc,/etc/zshrc,/etc/zprofile)

1
unix expr命令显示比较整数的奇怪结果
当我写作 expr 123 \< 5 结果是正确的(0)因为expr计算两个整数。 也 expr 123. \< 5 给出了预期的结果(1)因为它现在比较了两个字符串。 但 expr "123" \< 5 给出0(我预期为1,和以前一样) 为什么?
2 unix  shell 

1
在子shell或后台执行shell命令?
实际上我主要使用Ruby,但现在我已经创建了一个bash脚本文件。从这个脚本文件我在屏幕上显示消息。这是我的情景。 我使用aosd_cat模块在屏幕上显示消息,我成功完成了。为此,我使用了他们的文档。 这是我的message.sh脚本文件: #!/bin/bash function message_1(){ if [ condition ] echo 'message -1' | DISPLAY=:0 aosd_cat -u 10000 -e 2 -t 2 -R 'Green' -n 'Arial Bold 20' -p 0 -x 10 -y 60 else echo 'message -4' | DISPLAY=:0 aosd_cat -u 10000 -e 2 -t 2 -R 'Green' -n …

4
从linux中的某些字符开始重新加载历史命令的最快方法是什么?
在Dos中,我们可以输入前几个字符来过滤命令历史记录并快速找到合适的字符。但是如何在Linux中做同样的事情呢? 例如,当我测试本地服务器时: cd sudo /etc/init.d/vsftpd start wget ... ls emacs ... sudo /etc/init.d/vsftpd restart sudo /etc/init.d/vsftpd stop ... 在Dos中,您可以sudo使用箭头键轻松键入和切换三个命令。但是在Linux中,我们能做的最好是低于命令吗? historty | grep sudo 我不喜欢它,因为历史很容易变得混乱,它也需要鼠标动作。
2 linux  shell 

3
我需要在PS *中使用哪些转义码来确保终端在shell提示符下恢复正常设置?
有时我偶然cat会有一些二进制数据; 有时一些ncurses程序崩溃 - 由于充足的原因终端可能最终处于不良状态,需要手动reset。这种情况经常发生。 这种糟糕的状态可能是无回声,或将所有东西都转换成中国垃圾或许多其他东西。 有什么简单的方法可以确保当shell恢复控制时终端(没有硬重置,清洁屏幕等)设置被恢复? 它是bash,Terminal.app但我猜这个问题非常普遍。

1
我的主机仅提供SFTP,不提供SSH。我还能使用私钥身份验证吗?即,SFTP是否隐式使用SSH?
我正在使用WP Engine作为主机。它们是托管主机,它们从不提供外壳程序访问。但是,它们确实允许设置SFTP帐户。 我的(有限的)理解是SFTP仍然使用SSH隧道。换句话说,SSH是一种传输方式,提供者可以通过它激活SFTP,外壳程序访问,或者两者都激活。 如果SFTP通过SSH运行,他们是否不能将密钥放入用户的.ssh目录中,以便我可以通过密钥进行身份验证,而无需提供shell访问权限? 我试图问他们是否可以做到这一点,但是我发现很难说明我的观点,那就是SFTP通过SSH运行。也许我100%错误! 谢谢!
2 ssh  shell  sftp 

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.