Questions tagged «command-line»

使用没有图形用户界面(GUI)而是通过在终端程序或外壳中键入文本命令来控制的程序和命令。

2
使调用常用的终端命令更容易
我有一个Java工具,我经常从命令行使用它,但是要使用它,我必须输入java -jar dsim.jar。我想这样做,以便dsim无论我在哪个目录中都可以通过键入来调用它,但是我还不太确定如何完成此操作。 我在创建了一个文件~/.bash_profile并放入其中: alias dsim='java -jar dsim.jar' /usr/local/bin在我阅读此文件时,我已将dsim.jar文件放入其中,应保留用户创建的命令行工具。这个位置在我的$ PATH中。 我认为别名工作得很好,但是似乎无法从任何位置访问文件的位置。如果我dsim从内部调用/usr/local/bin可以正常工作,但是如果我在任何其他目录中,则会得到: Error: Unable to access jar file dsim.jar 如何从任何目录中使用它?

1
我如何处理(例如,正确转义)“默认写入...”键值的paren?
TL; DR 在中defaults write <domain> <key> <value>,我如何提供一个<value>包含括号的;即“圆括号”,“(”和“)”? 全博纳 我defaults用来将屏幕截图重定向到特定目录。我可以做的很好,过去有很多次,但是当目标目录的路径名带有括号时,我遇到了问题。所以我正在做类似的事情: $ defaults write com.apple.screencapture location <dirname-with-parens-in-it> 我收到以下形式的错误: <ba bla bla> Could not parse: <dirname-with-parens-in-it>. Try single-quoting it. 但是,尽管尝试了以下所有方法,我还是能做到这一点(还有更多尝试)。在这种情况下,假设所讨论的(现有)目录的名称实际上是dirname(with)parens。我的尝试和回应: $ defaults write com.apple.screencapture location dirname\(with\)parens <bla bla bla> Could not parse: dirname(with)parens. Try single-quoting it. $ defaults write com.apple.screencapture location 'dirname\(with\)parens' <bla …

2
终端命令提供您所使用的计算机的类型
我在两台使用相同用户名的不同计算机上运行MATLAB代码。 我想通过让代码标识一个系统是台式机,另一个系统是笔记本电脑来区分两台Mac。 是否有一个终端命令可以打印我正在使用的计算机类型(因此我可以实现相关功能?)

1
修复具有相同ID的两个用户组
突然,我的主目录不在组messagebus中了staff。(我为此责怪texlive,但没有证据。) 问题是两个组具有相同的ID: $ dscl . -read /Groups/staff AppleMetaNodeLocation: /Local/Default GeneratedUID: ABCDEFAB-CDEF-ABCD-EFAB-CDEF00000014 GroupMembers: FFFFEEEE-DDDD-CCCC-BBBB-AAAA00000000 GroupMembership: root Password: * PrimaryGroupID: 20 RealName: Staff RecordName: staff BUILTIN\Users RecordType: dsRecTypeStandard:Groups SMBSID: S-1-5-32-545 $ dscl . -read /Groups/messagebus AppleMetaNodeLocation: /Local/Default GeneratedUID: CF898A47-EA83-4E18-AE17-C05E56FBC550 Password: * PrimaryGroupID: 20 RealName: messagebus RecordName: messagebus RecordType: dsRecTypeStandard:Groups 摆脱messagebus群组(或为其提供其他ID)的安全方法是什么? 这里的“安全”当然意味着我不会伤害我的staff团队。

2
Unix命令以递归方式将JPG文件复制到复杂的目录树中
我有一个很大的目录树结构,每个目录根目录及其后续子目录中都包含多个JPG文件。我需要从每个目录根递归提取一个JPG文件,并将它们全部复制到另一个位置,同时保持相同的树结构并忽略其他文件。我需要提取的所有JPG文件名都用“ RNav.jpg”标记。我尝试了cp命令和通配符,但无法正常工作。我正在运行Mavericks,在涉及UNIX命令行时我是一个新手。 现有结构如下:(最多500个目录) VNAME / PNAME1 / PNAME1_RNav.jpg VNAME / PNAME2 / PNAME2_RNav.jpg VNAME / PNAME3 / PNAME3_RNav.jpg VNAME / PNAME4 / PNAME4_RNav.jpg


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
如何移动标记为备份的文件或目录?
我正在尝试将一些文件从我的Time Machine备份移动到Time Machine中用于外部驱动器(Time Machine文件夹之外)的新位置。我想这样做(而不是仅仅从原始文件复制)主要是为了保留所有硬链接,不仅仅是在我正在移动的目录下的文件之间,还包括以前的备份,所以我只维护所有内容的单个副本。另外,我没有足够的可用空间来制作额外的实际副本!但是当我尝试从Finder移动文件夹时,我收到错误: “由于无法修改备份项,因此无法完成操作。” 当我尝试从命令行使用时 mv 我收到错误: mv: rename [...] to [...]: Operation not permitted 我读 这个问题 在答案中,有人解释说“旁路”实用程序应该“允许您提供命令和参数以完全绕过访问限制。” 然而,虽然我发现这与...一起工作 rm 命令,尝试移动目录时失败并出现与上述相同的错误。 更新:如果我输入源和目标的完整路径,它似乎可以工作。但即使它位于备份目录之外,系统仍然知道它是一个“备份”文件,导致尝试将其用作普通文件时遇到麻烦。如何摆脱“备份”位或任何使系统认为它是备份的东西?

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,这也是同样的错误。最后,我将所有脚本别名化,以便它们运行。

0
是否可以在运行kextunload -class <class_name>后加载特定的IOService类?
MBA笔记本电脑存在一个未解决的问题,即无法从命令行禁用内置键盘。例如。看这里: https://github.com/vitorgalvao/alfred-workflows/issues/13 我发现跑步了 sudo kextunload -c 'AppleHIDKeyboardEventDriverV2' 将禁用键盘而不会抛出任何错误,但我不知道是否可以加载已终止的类。不幸的是 kextload 命令没有任何与之相关的选项。 或者,我尝试卸载整个内置键盘/触控板kext sudo kextunload -b 'com.apple.driver.AppleHSSPISupport' 但它在运行后几秒内就会出现内核恐慌。 如果有解决后一个问题的方法,我将更改问题的标题并接受它作为答案。

5
如何查找正在运行的TFTP Server进程名称?
我可以使用命令 sudo launchctl load -F /System/Library/LaunchDaemons/tftp.plist 在mac上启动TFTP服务器。但是正在运行的TFTP服务器的进程名称是什么? 我试过了 ps aux | grep tftp 和 pgrep tftp,既不给我任何东西...... 我的目标是使用脚本来跟踪tftp服务器是否已打开或不...

1
Vim映射在OS X中不起作用
我的.vimrc中有以下几行用于Ubuntu。它们将当前日期作为字符串插入,并将我的签名分别插入当前打开文件的底部: :map &lt;F2&gt; "=strftime("%B %d, %Y")&lt;CR&gt;Pli&lt;Return&gt;&lt;Esc&gt;" :map &lt;F3&gt; :e ~/.sign.txt&lt;CR&gt;ggV/^$&lt;CR&gt;k"*xG$a&lt;C-R&gt;&lt;C-O&gt;*&lt;Esc&gt;:w&lt;CR&gt;:bd&lt;CR&gt;G$a&lt;C-M&gt;&lt;Esc&gt;"*P 但他们并没有在我的Macbook上工作。 F2命令导致插入“Q \ n”,F3命令导致插入“R \ n”。如何更新这些映射以在我的Mac上运行?



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.