Questions tagged «bash»

Unix外壳,以前由终端在macOS中使用,直到10.15

2
使用变量替换目录名称中的字符串
我有一个脚本设置为在文件夹中创建一个新的目录,该脚本基于为另一个目录命名的变量,如下所示: str="/home/folder/test" base="$(basename $str)" mkdir -p "/home/folder2/${base}" 我现在想做的是在创建新文件夹时在此变量中查找并替换字符串。 例如,我有: /Home/Album-Artist[FLAC] 分配给变量。当我使用mkdir创建新目录时,我想查找“ FLAC”并将其替换为“ V0”,因此在新文件夹中 /Home/Album-Artist[V0]
2 macos  bash 

0
移动/ usr / bin和/ usr / lib文件夹,我该如何解决? (iOS 10.2.1,iPhone 6 +)
长话短说,我试图在我的根分区上释放存储,我犯了一个愚蠢的错误。我将/ usr / bin和/ usr / lib文件夹分别移动到/ var / stash / bin和/ var / stash / lib。基本上我不能将它们移回去,因为mv不再有效,因为我之前做的MV破坏了库的东西。我试图在我的PC上安装我的根文件系统并将库移回它们所属的位置,但看起来我就这样做了。我在Linux上读到了类似的问题: https://unix.stackexchange.com/questions/17428/moved-bin-and-other-folders-how-to-get-them-back 问题是,iOS上不存在库链接器ld-linux.so,我找不到类似命名的东西。目前我仍然可以访问root shell。有没有办法让我的库按顺序排列?

2
如何打开PDF作为BASH变量?
我正在尝试使用Preview打开PDF,其中输入文件是shell var: $ pdf=$(wget -qO- 'http://website.com/file.pdf') && open "$pdf" $ pdf=$(wget -qO- 'http://website.com/file.pdf') && open -a /Applications/Preview.app -f "$pdf" $ open -a /Applications/Preview.app $(wget -qO- 'http://website.com/file.pdf') $ pdf=$(wget -qO- 'http://website.com/file.pdf') | open -a /Applications/Preview.app -f - 等等 我总是得到同样的错误: -bash:/ usr / bin / open:参数列表太长 是否有可能做到这一点? 任何想要尝试的人的示例PDF: https://www.exploit-db.com/docs/english/44592-linux-restricted-shell-bypass-guide.pdf

1
Automator:“运行Shell脚本”因为缺少“on”命令而抛出错误
OSX 10.11.4在这里。 我正在尝试创建一个与热键一起使用的工作流,以运行一个简单的shell脚本。 创建者:Automator - >新服务 - >实用程序 - >运行Shell Script,然后在'Finder'中设置为'no input',shell设置为“/ bin / bash”。 对于一个简单的脚本,比如,一个只包含“ls”的脚本,它可以工作。 但到目前为止,我只是为我想要运行的脚本收到错误,其中包括“运行中”的调用,这似乎会导致问题。调试一下后,我可以把它归结为: on run {input, parameters} end run 导致错误: Run Shell script failed - 1 error -: line 2: on: command not found 可能与我想到的缺失路径有关,所以我已经尝试过这个,例如通过增加: PATH=/bin:/usr/bin:/sbin:/usr/sbin export PATH 要么: PATH=/usr/bin:/usr/local/bin export PATH 如建议 这里 。没有帮助。 另请注意:我安装了Anaconda,看起来它改变了.bash_profile中的路径。然后,我甚至不确定automator调用的bash环境是否会查看.bash_profile。 …

1
使用文本文件列表简单删除文件将不起作用
我必须删除remove.txt指定的文件 看起来像这样: img_8138.dng.jpg img_8140.dng.jpg img_8141.dng.jpg img_8143.dng.jpg 我从网上尝试了几条建议: while read file; do rm "$file"; done < remove.txt xargs -rd '\n' --arg-file=remove.txt rm -i -- rm $(cat /Volumes/space1/remove.txt) xargs rm <remove.txt 等等 这些文件位于当前目录中的一些 将被删除(remove.txt)。如果我使用rm,删除工作 在当前目录中。但是使用列表我得到了 每次都出错。 rm: cannot remove ‘img_8147.dng.jpg’: No such file or directory 有什么想法会出错吗?
1 macos  bash 

3
我如何防止黑客(秘密英特尔)再次操纵我的终端[关闭]
我如何防止黑客再次操纵我的终端,以便我的终端再次正常工作? 在荷兰,我们在我们工作的公司执行cybertest,攻击由荷兰政府AIVD(也抓住Fancy Bear黑客的团队)执行。黑客在我的MacBook Air上具有root访问权限。我怎么知道(宣布我们会被黑客入侵)?黑客能够运行: sudo hostname 192 黑客明确地运行了上面的命令。黑客也操纵我的bash。我执行了命令行 sudo dscl . list /Users | grep -v '^_' 并看到四个用户: 守护进程 没有人 仁 根 因为我的bash被操纵,我不知道在哪里看。在我的终端中只显示了我两天前执行的命令。昨天和今天的命令没有显示。即使我表演 例: Last login: Mon Aug 27 17:37:19 on ttys001 192:~ jen$ history -c 192:~ jen$ history -w Last login: Mon Aug 27 17:38:49 on ttys002 192:~ jen$ …

3
如何修复.bash_profile中的语法错误[重复]
这个问题在这里已有答案: 我通过编辑〜/ .bash_profile打破了我的PATH,而Bash将无法识别大多数命令 4个答案 前几天我和自制软件一起在轨道上安装了ruby,并且正在按照一步一步的列表来做什么。我每次进入终端时都会出现此bash语法错误: -bash: /Users/briggsmcknight/.bash_profile: line 6: syntax error near unexpected token `source' -bash: /Users/briggsmcknight/.bash_profile: line 6: `if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi source /Users/briggsmcknight/.bash_profile' 我可以逐步细分我应该做些什么来解决这个问题吗? 我认为语法错误是“fi”或“source”,但是我只是重新输入它还是什么?
1 terminal  bash 

2
找不到Bash脚本El Capitan
我创建了一个简单的Bash脚本 ls -l。 在Mavericks和旧版本的OSX中,我只是为脚本创建了一个符号链接并将其放入 /usr/bin 文件夹( ln -s ll.sh /usr/bin/ll 然后我可以使用执行脚本 ll 从任何文件夹。 自升级到El Capitan后,我无法加载此脚本。我已禁用SIP,以便我能够创建符号链接,并且脚本绝对可执行。那个地点 ( /usr/bin )肯定在$ PATH中,我甚至尝试在$ PATH中添加脚本路径。 似乎没有什么工作,我得到的只是 -bash: ll: command not found。 每次更新$ PATH后我都重新启动了终端,我试过了 source ~/.bash_profile 但两者都没有任何区别。 编辑: 我还尝试将脚本的当前目录添加到$ PATH,这也是同样的错误。最后,我将所有脚本别名化,以便它们运行。

1
如何以编程方式将多个文件复制到macOS的剪贴板?
我最终想要一个bash函数 to-clipboard 获取文件路径并将文件复制到剪贴板。使用其他脚本语言作为帮助是可以的。我目前有这个用于复制单个文件: file-to-clipboard() { osascript \ -e 'on run args' \ -e 'set the clipboard to POSIX file (first item of args)' \ -e end \ "$@" } 据说这个Applescript可以复制多个文件,但我根本不喜欢它: set f to {(POSIX file "/path/to/a/folder/a.png"), (POSIX file "/path/to/another/folder/b.png")} tell application "Finder" try -- to delete any old temp folder …

1
启动新的mac终端窗口时,未发现意外的-bash命令错误
我正在搞乱ssh密钥和权限以及其他我不太熟悉的事情,最终导致我的mac上出现一些问题,包括拒绝自己对我的用户帐户的许可,更改根目录和其他烦恼。大多数其他的东西都是通过重启或摆弄来修复的,但我知道每次启动终端窗口时都会收到此错误消息但无法弄清楚要做什么。我怎么摆脱它? 我试过这个 大多数命令Mac OSX都找不到终端返回 ,但我不认为这是同样的错误,因为如果我写 bash 进入终端,它启动一个bash接口。有些东西正在进入 -bash 在启动时进入终端,我无法弄清楚从哪里或为什么? Last login: Tue Dec 4 08:57:20 on ttys003 -bash Ludos-MBP-3:~ ludo$ -bash -bash: -bash: command not found Ludos-MBP-3:~ ludo$ 它也不是重复的 每次启动终端时都没有找到-Bash命令 因为我检查了.bash_profile文件,自上次检查以来没有任何变化。我尝试了那里的所有语句,但没有一个语句产生错误。 echo $PATH 生成 /Library/Frameworks/Python.framework/Versions/3.6/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/Applications/Postgres.app/Contents/Versions/latest/bin
1 macos  terminal  mac  bash 

1
在OS X中设置终端选项卡名称并使用vim
我经常从OS X(El Capitan)终端进入Linux集群,有时还有多个终端选项卡。我使用bash和vim。 我想做以下事情: ssh'd时,使用终端选项卡标题设置为当前工作目录 PROMPT_COMMAND='printf "\e]1;"`basename $PWD`"\a"' 使用vim时,将终端选项卡标题设置为“vim - FILENAME” 这是我的问题: 如果我这样做let &titlestring = "vim — " . expand("%:t")并且set title在.vimrc中,它会更改终端窗口标题,而不是标签标题。如果我没有单独设置标签标题(参数1),标签标题会反映窗口标题(参数2),但是一旦我设置标签标题,它就会与窗口标题“分离”。 如果我在运行一个外部命令.vimrc里有:!,我得到一个“按ENTER”对话框,很烦人。 如果我:silent !在.vimrc中使用,我的终端提示会在退出vim后终止于屏幕底部。我真的不想在每次想要使用vim时保存提示位置并重置它。 如果我在.bashrc中定义以下函数: function vim { printf "\e]1;"`basename "$1"`"\a" vim "$1" } 然后我的终端在从命令行调用时崩溃vim。调用该函数vvim可以正常工作,但我不想vvim永远键入。我想别名vim。 所以我好像卡住了。任何建议将不胜感激。先感谢您!
1 macos  terminal  bash  vi 

1
关闭“没有tty存在且没有指定askpass程序”?
我正在尝试在多台Mac上远程运行关机脚本。我用来通过ssh启动它的命令是: ssh ADMIN@mac123 'bash -s' sudo < ./documents/ShutdownUPTIME.sh 当然它要求我输入一个sudo密码,我输入正确。之后唯一的信息是:sudo: no tty present and no askpass program specified 我有什么想法可以解决这个问题吗?我的用户绝对是超级用户
1 mac  bash  ssh  shutdown 


1
使用没有root的脚本
我用不同的命令编写了一个维护脚本。该脚本里面有sudo命令。 现在我想使用crontab,但我的第一个问题是:如何在没有root权限的情况下在用户级别上使用脚本?那可能吗? 之后我想在/ usr / local / maintenance上复制脚本,并希望每周一都使用crontab来运行脚​​本fe 编辑:好的,我现在为launchD决定它。现在我在Global Agents中有一个plist,它运行正常。但只有用户文件。如何将launchD用于sudo命令?

0
获取目录中所有文件的最有效方法
我有四百万个文件分布在四个光纤连接阵列上。我需要将path,filesize和last_modified日期插入到mysql数据库中。最好的方法是什么? 这是我目前正在做的事情: sudo find "$FULFILLMENT" "$ARCH1" "$ARCH2" "$MASTERING" -type f -exec ls -lT {} + > $FILE 然后我解析该文件(使用Python)将其插入到我的数据库中。 实现上述目标的最佳方法是什么?

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.