Articles of 命令行

我不应该允许在文件名中使用什么字符序列?

在testing之后,我发现linux允许除了/和null( \0 )之外的文件名中的任何字符。 那么我应该在文件名中不允许使用哪个序列? 我听说一个领先的-可能会混淆一些命令行程序,这对我来说并不重要,但如果他们决定收集一堆文件并用一些GNU程序过滤它,可能会困扰其他人。 有人build议我删除前导和尾随空格,我打算只是因为通常用户不意味着有前/后空格。 什么样的问题序列可能会存在,我应该考虑什么序列不允许? 为了方便起见,我也考虑不允许在窗口中使用非法字符。 我想我可能不允许破折号(破折号是一个合法的窗口字符)

先从命令行调用一个python脚本,而不要先input“python”

问题:在命令行中,如何在不必在脚本名称前键入python情况下调用python脚本? 这甚至有可能吗? 信息: 我写了一个用于从命令行访问sqlite数据库的方便脚本,但我不喜欢键入“python SQLsap args”,而只是键入“SQLsap args”。 我不知道这是否可能,但是知道这是否是好事。 不仅仅是这个程序。

Perl命令行多行replace

我试图用命令行perlreplace多行文件中的文本。 我正在使用Ubuntu的NATTY。 以下是我的文本文件(称为test.txt)的内容: [mysqld] # # * Basic Settings # # # * IMPORTANT # If you make changes to these settings and your system uses apparmor, you may # also need to also adjust /etc/apparmor.d/usr.sbin.mysqld. # user = mysql socket = /var/run/mysqld/mysqld.sock port = 3306 basedir = /usr datadir = /var/lib/mysql tmpdir = /tmp […]

来自shell的GROUP BY / SUM

我有一个包含这样的数据的大文件: a 23 b 8 a 22 b 1 我想能够得到这个: a 45 b 9 我可以先对这个文件进行sorting,然后通过扫描文件来完成。 什么是一个好的直接的命令行方式呢?

有没有办法让gcc输出原始二进制文件?

是否有一组命令行选项可以说服gcc从自包含的源文件生成一个平面的二进制文件? 例如,假设foo.c的内容是 static int f(int x) { int y = x*x; return y+2; } 没有外部引用,没有什么要导出到链接器。 我想用这个function的机器指令来得到一个小文件,没有任何其他装饰。 有点像(DOS).COM文件,除了32位保护模式。

运行JAR文件而不直接调用`java`

我正在部署一个用Java编写的接受命令行参数的命令行工具。 我把它打包成一个JAR文件,因为有一个文件很方便。 问题是要运行它,你必须首先调用java -jar (filename) (args) ,这是很烦人的。 目前我拥有它的方式是有一个简单的bash脚本启动它,但这不是理想的。 无论如何(在Linux,Ubuntu服务器)有一个JAR文件调用自己的Java虚拟机? 我找了一个shebang,但找不到一个(这当然是有道理的,因为它是编译代码)。 这是我想要做的: myprogram.jar arg1 -arg2而不是: java -jar myprogram.jar arg1 -arg2 谢谢, 布赖恩

如何使python,命令行程序自动完成任意东西而不是解释器

我知道如何设置python解释器(在UNIX上)python对象的自动完成。 谷歌显示了很多关于如何做到这一点的解释。 不幸的是,有这么多的参考文献,很难find我需要做的,这是略有不同的。 我需要知道如何启用,在用python编写的命令行程序中的任意项目的选项卡/自动完成。 我的具体用例是一个需要发送电子邮件的命令行python程序。 我希望能够自动完成电子邮件地址(我有磁盘上的地址),当用户键入它的一部分(和可选地按下TAB键)。 我不需要它在Windows或Mac上工作,只是Linux。

PowerShell从命令行参数中剥离双引号

最近我一直在使用PowerShell中的GnuWin32时遇到一些麻烦,只要涉及到双引号。 经过进一步的调查,看来PowerShell从命令行参数中剥离了双引号,即使正确转义也是如此。 PS C:\Documents and Settings\Nick> echo '"hello"' "hello" PS C:\Documents and Settings\Nick> echo.exe '"hello"' hello PS C:\Documents and Settings\Nick> echo.exe '\"hello\"' "hello" 请注意,当传递给PowerShell的echo cmdlet时,双引号是存在的,但是当作为parameter passing给echo.exe时 ,除非用反斜线转义(即使PowerShell的转义字符是反引号,而不是反斜线),否则双引号将被剥离。 这对我来说似乎是一个错误。 如果我将正确的转义string传递给PowerShell,那么PowerShell应该处理任何转义可能是必要的,但是它调用该命令。 这里发生了什么? 目前,解决方法是根据这些规则来逃避命令行参数(这些规则似乎被PowerShell用来调用.exe文件的CreateProcess API调用所使用): 要传递一个双引号,用反斜线转义: \" – > " 要传递一个或多个反斜杠,然后加双引号,用另一个反斜杠转义每个反斜杠,然后转义引号: \\\\\" – > \\" 如果后面没有双引号,则反斜杠不需要转义: \\ – > \\ 请注意,进一步转义双引号可能需要将Windows API转义string中的双引号转义为PowerShell。 下面是一些使用GnuWin32的echo.exe的例子: PS C:\Documents and Settings\Nick> echo.exe […]

如何从命令行获取PID,通过用户名和图像名称过滤

我需要能够使用命令行从正在运行的进程(cmd.exe)获取PID。 问题是有两个cmd.exe运行。 一个是在用户名SYSTEM下,另一个是compUser。 有没有办法,我可以抓住compUser cmd.exe的PID? 编辑:这需要进一步的解释。 我正在从batch file中执行此操作。 我在batch file中调用的一个调用会启动一个不会死的cmd.exe。 所以杀死cmd.exe会很简单: taskkill /F /IM cmd.exe /FI "username eq compUser" 问题是我所在的batch file正在由用户名compUser下的另一个cmd.exe实例处理。 我试图做的是从第一个cmd.exe获取PID,然后再启动第二个cmd.exe。 这样我可以使用这个命令: taskkill /F /IM cmd.exe /FI "username eq compUser" /FI "PID neq [orignal task's PID]"

如何将一个variables设置为Windows上父目录的path?

再次用命令行挣扎,我发现我可以将当​​前工作目录存储在variables中,如下所示: SET current=%cd% 我如何设置父项? SET parent=%..%不起作用,因为它回声%..% 基本上,使用以下内容调用批处理脚本C:\a\b\myscript.bat : @echo off set current=%cd% echo %current% 打印C:\a\b ,我想设置一个variablesparent以便它将打印C:\a而不更改当前的工作目录为.. 这可能吗?