Questions tagged «command-line»

命令行是您的Shell的交互式界面。

1
解释为什么观看“工作”无效,但观看“ ps”有效?
jobs我最喜欢的命令是查看我的代码在后台运行。为了动态检查它们,我倾向于键入 watch 'jobs' 不会显示任何内容。然而 watch 'ps' 完美地工作。我几个月来一直在犯同样的错误。 我认为理解为什么第一个不起作用而第二个不能起作用可以帮助我停止做同样的错误。 有人可以帮忙吗?

1
从两个程序中重定向标准输出
我正在C ++代码(prog2)上运行内存检查工具(prog1),这两者都给了我巨大而详细的输出。为了消除一些错误,我需要将此输出保存到文件中。 我尝试将标准输出重定向到文件: prog1 prog2 > outfile.txt 但这给了我一个文件,其中包含prog2的输出,而prog1的输出仍将到达终端。 有人知道一种方法来指定我希望两个输出都转到一个文件吗?喜欢(prog1 prog2) > outfile.txt吗?


3
如何设置ssh不仅尝试端口22,而且每次尝试次端口?
为了减少日志中的噪音并稍微降低可发现性(并且在fail2ban之上,仅允许公共密钥身份验证等),我经常在设置为其他端口的服务器上更改sshd端口,例如5492。目前我将-p 5492附加到我的ssh命令中,或将每个特定服务器的端口添加到了我的中ssh_config。 如果端口22不起作用,是否可以配置ssh尝试同时连接到端口22和端口5492?

2
为什么有时在CTRL + C之后需要重置控制台
当被取消时,某些命令行界面工具会返回损坏的控制台CTRL+C。有时文本是不可见的,或者是图形问题,直到我运行命令为止reset。 (我使用bash,但希望它独立于shell。) 这个效果有名字吗?是什么原因造成的,程序员如何在工具中防止这种情况发生?是否有一种策略可以在主要的编程语言中解决该问题?

2
总共有多少种方式可以输入输入命令?
关于Linux,我注意到的第一件事是将数据输入命令的方式不同,我知道几种,但不知道总共有多少种。 到目前为止我所知道的方式: 管道: echo -e "zorro\nwurst\nlahmacun\nsozialhilfe" | sort 从键盘发出文件结尾信号: sort >gurken >zucker >braunkohle 从文件: sort foo HERE字符串(实际上称为HERE文档): sort << HERE >wasserkopf >elternzeit >schuldeingeständnis >währungsreform >alabasterhaut HERE 这是全部还是还有更多的方法可以使用?为什么根本没有其他方法?有些方法是否多余?

2
何时在命令行应用程序中使用标准错误流?
编写命令行应用程序时,何时有使用错误的准则?令我惊讶的是,在谷歌搜索时没有发现任何东西。 特别是,我现在关心的问题是是使用stdout还是stderr何时用户使用非法参数调用程序。但是,非常感谢您提供一个更全面的答案,因为这肯定不是唯一需要明确规则才能编写出符合用户期望的行为的程序的情况。

3
如何将find找到的文件作为参数传递?
首先要截断一些琐碎但不适用的答案:我既不能使用find+ xargs技巧,也不能使用其变体(如findwith -exec),因为每次调用我需要使用很少的此类表达式。最后,我会回到这一点。 现在来看一个更好的例子,让我们考虑: $ find -L some/dir -name \*.abc | sort some/dir/1.abc some/dir/2.abc some/dir/a space.abc 我如何将这些作为参数传递给program? 只是做不成功 $ ./program $(find -L some/dir -name \*.abc | sort) 失败,因为program获取以下参数: [0]: ./program [1]: some/dir/1.abc [2]: some/dir/2.abc [3]: some/dir/a [4]: space.abc 可以看出,带有空间的路径被分割,并program认为它是两个不同的参数。 报价直到生效 似乎像我这样的新手用户,遇到此类问题时,往往会随机添加引号,直到最终起作用为止-仅在这里似乎没有帮助… "$(…)" $ ./program "$(find -L some/dir -name \*.abc | …

5
用于粘贴我的命令及其输出的命令
通常,我想将某些内容发布到github错误中,例如 $ ping google.com PING google.com (216.58.195.238): 56 data bytes Request timeout for icmp_seq 0 64 bytes from 216.58.195.238: icmp_seq=0 ttl=53 time=1064.747 ms 现在我运行命令,使用screen的C-a C-[突出显示的区域,enter将其复制到缓冲区,将其粘贴到vim,把它写入一个文件,然后cat到这一点pbcopy。一定有更好的方法。 有没有可以运行tee的命令,我键入的命令将以a为前缀,$并将所有输出输出到pbcopy?还是什么接近?我设想 $ demo ping google.com PING google.com (216.58.195.238): 56 data bytes Request timeout for icmp_seq 0 64 bytes from 216.58.195.238: icmp_seq=0 ttl=53 time=1064.747 ms ^C …


1
cfdisk还是fdisk?
在阅读手册页时,fdisk我遇到了以下有趣的文字: 周围有几个* fdisk程序。每个都有其问题和优点。按照cfdisk,fdisk,sfdisk的顺序尝试。(实际上,cfdi​​sk是一个漂亮的程序,它对接受的分区表有严格的要求,并生成高质量的分区表。如果可以的话,请使用它。fdisk是一个执行模糊操作的错误程序-通常碰巧会产生合理的结果。结果是它的唯一优点是它对BSD磁盘标签和其他非DOS分区表提供了一定的支持,如果可以,请尽量避免使用sfdisk仅适用于黑客-用户界面很糟糕,但比fdisk和比fdisk和cfdisk更强大。此外,它可以非交互地使用。) 我注意到两个应用程序的选项格式不同: - melancholy():/$ sudo fdisk -l Disk /dev/sda: 500.1 GB, 500107862016 bytes 255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes …

2
在运行用户要运行的命令之前,请运行另一个命令
假设我想通过ls这种方式修改工具的原始行为: $ ls Hello World file1 file2 ... 我怎样才能做到这一点? 运行时,ls我想运行另一个命令echo "Hello World!"。 我看到的快速解决方案是使用别名: alias orig_ls="ls" alias ls='echo "Hello World!"' 但是,这不是一个真正的解决方案,因为在我运行orig_ls时它将输出"Hello World!"。

3
如何从命令行编写/编辑/更新OsIndications efi变量?
如果需要在使用超快速启动时输入UEFI固件设置实用程序(在POST过程中未加载键盘驱动程序),我希望写入“ Os Indications” efi变量。我的操作系统是Ubuntu 14.04内核3.13.0-35-generic。 OsIndications 变量返回一个UINT64位掩码 OsIndicationsSupported 变量返回一个UINT64位掩码 该EFI_OS_INDICATIONS_BOOT_TO_FW_UI位可以在OsIndicationsSupported变量由固件设置,如果固件支持OS请求停止在固件的用户界面。EFI_OS_INDICATIONS_BOOT_TO_FW_UI如果操作系统希望固件在下次启动时停止在固件用户界面上,则可以由操作系统在OsIndications变量中设置该 位。 EFI_OS_INDICATIONS_BOOT_TO_FW_UI= 0x0000000000000001- 佩奇312 UEFI规范2.3.1C的 我的固件能够在下次启动时进入固件设置实用程序: $ hexdump /sys/firmware/efi/vars/OsIndicationsSupported-8be4df61-93ca-11d2-aa0d-00e098032b8c/data 0000000 0001 0000 0000 0000 0000008 我可以在/sys/firmware/efi/efivars使用时 创建一个新变量 $ printf\x07\x00\x00\x00\x00" > myvar-12345678-1234-1234-1234-123456789abc 但是,写入efi变量会OsIndications-8be4df61-93ca-11d2-aa0d-00e098032b8c导致各种结果write error: Invalid argument: 使用新的efivarfs # printf "x00\x00\x00\x01" > /sys/firmware/efi/efivars/OsIndications-8be4df61-93ca-11d2-aa0d-00e098032b8c -bash: printf: write error: Invalid argument # printf "x00\x00\x00\x01" …

2
无法在家连接到外部RDS TSG服务器
我们有公司的RDS(远程桌面服务器)TSG(终端服务网关)服务器,该服务器使员工可以在家中连接到RDS会话,以便他们可以在家中查看工作的RDS桌面。 在使用Windows 7且具有以下设置的家庭计算机上,此方法可以正常工作: 但是,某些用户在家中使用Linux,并试图使用freerdp 1.2.0。 我已经使用以下命令在连接到公司内部局域网的笔记本电脑上对此进行了测试,并且工作正常: $ xfreerdp /f /rfx /cert-ignore /v:farm.company.com /d:company.com /u:administrator /p: 但是,如果我尝试在不使用公司LAN连接(即家庭连接)的笔记本电脑上使用该命令,则会得到以下信息: freerdp_set_last_error 0x2000C Error: protocol security negotiation or connection failure 因此,我现在尝试按以下方式在freerdp 1.2.0中使用一些新的TSG命令,但这也不起作用。 我只能看到4个与TSG相关的命令: /g:<gateway>[:port] Gateway Hostname /gu:[<domain>]<user> or <user>[@<domain>] Gateway username /gp:<password> Gateway password /gd:<domain> Gateway domain 我在某个/g特定情况下只真正需要使用的地方读过,可能我读错了。 所以当我尝试: $ xfreerdp /f /rfx /cert-ignore /v:farm.company.com …

4
透明地运行葡萄酒程序
当我想运行一个酒程序时,我必须输入例如 $ wine ~/.wine/drive_c/Program\ Files/TextAloud/TextAloudMP3.exe 可以直接运行TextAloudMP3吗?我的意思是不仅从命令行(我可以创建别名),而且在整个图形环境中。我正在使用启动程序dmenu。

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.