在谷歌搜索了一下之后,我找不到一种简单的方法来使用 shell 命令生成一个包含在特定范围内的随机十进制整数,即介于最小值和最大值之间。
我读过/dev/random,/dev/urandom和$RANDOM,但这些都不能满足我的需要。
有没有其他有用的命令,或者使用以前数据的方法?
我想将带有一些彩色文本和图像的 pdf 转换为另一个只有黑白的 pdf,以减少其尺寸。此外,我想将文本保留为文本,而无需转换图片中的页面元素。我尝试了以下命令:
convert -density 150 -threshold 50% input.pdf output.pdf
Run Code Online (Sandbox Code Playgroud)
在另一个问题中找到了一个链接,但它做了我不想要的:输出中的文本被转换成一个糟糕的图像并且不再可选。我尝试使用 Ghostscript:
gs -sOutputFile=output.pdf \
-q -dNOPAUSE -dBATCH -dSAFER \
-sDEVICE=pdfwrite \
-dCompatibilityLevel=1.3 \
-dPDFSETTINGS=/screen \
-dEmbedAllFonts=true \
-dSubsetFonts=true \
-sColorConversionStrategy=/Mono \
-sColorConversionStrategyForImages=/Mono \
-sProcessColorModel=/DeviceGray \
$1
Run Code Online (Sandbox Code Playgroud)
但它给了我以下错误消息:
./script.sh: 19: ./script.sh: output.pdf: not found
Run Code Online (Sandbox Code Playgroud)
有没有其他方法可以创建文件?
在 Ubuntu 14.04 服务器中,我遇到了大量的硬盘活动,但没有明显的理由:它突然出现,持续几分钟然后消失。它消耗系统资源并使整个系统变慢。
是否有(命令行)工具可用于监视磁盘活动,列出使用磁盘的进程和所涉及的文件?像 CPU 的 htop 之类的东西。
在Linux桌面系统中,我想在用户登录时执行一个命令。
在阅读了其他一些帖子后,我尝试将命令插入~/.bashrc但未成功。此外,系统使用图形界面进行用户登录,因此该命令不应与shell 的启动相关。
我还尝试将命令附加到其中包含的脚本之一,但/etc/profile.d没有结果。
有没有另一种方法可以做到这一点?登录后系统读取的任何文件?
在带有 Ubuntu 14.04 和 的系统中bash,我的PS1变量以以下内容结尾:
\u@\h:\w\$
Run Code Online (Sandbox Code Playgroud)
以便提示显示为
user@machinename:/home/mydirectory$
Run Code Online (Sandbox Code Playgroud)
然而,有时,当前目录有一个长名称,或者它在长名称的目录中,所以提示看起来像
user@machinename:/home/mydirectory1/second_directory_with_a_too_long_name/my_actual_directory_with_another_long_name$
Run Code Online (Sandbox Code Playgroud)
这将填充终端中的行,光标将转到另一行,这很烦人。
我想获得类似的东西
user@machinename:/home/mydirectory1/...another_long_name$
Run Code Online (Sandbox Code Playgroud)
有没有办法定义PS1变量来“包装”和“压缩”目录名称,永远不会超过一定数量的字符,从而获得更短的提示?
也许这是一个微不足道的问题,但在man页面中我没有找到有用的东西。我正在使用 Ubuntu 和bash.
正常输出为sha512sum testfileIS
<hash_code> testfile
Run Code Online (Sandbox Code Playgroud)
如何抑制文件名输出?我想获得
<hash_code>
Run Code Online (Sandbox Code Playgroud) 使用示例命令
man apropos > outputfile
Run Code Online (Sandbox Code Playgroud)
生成一个文本文件,其中包含格式化的man页面apropos(与man apropos直接打印在屏幕上的一些细微差别,例如粗体字符)。
但我想手动设置生成的输出文件的最大行宽,以便所有段落都对齐到该宽度。
man页面是通过groff以下方式创建的:例如,我试图将.ll 50原始.gz man源文本文件的一段放在前面,但是如果我需要在多个man页面上工作,那就微不足道了。此外,并非所有字符都被识别:
apropos.1:45: warning: can't find character with input code 195
apropos.1:45: warning: can't find character with input code 168
apropos.1:47: warning: can't find character with input code 178
apropos.1:131: warning: can't find character with input code 169
Run Code Online (Sandbox Code Playgroud)
所以,我想知道是否存在更直接的方法。在创建outputfile? 时如何修改最大线宽?有什么具体的命令吗?
编辑:
(以下所有注意事项都是关于 Ubuntu 18.04:我无法在以前的版本中测试它们,包括上述问题的 14.04。)
至于单行临时解决方案,如果MANWIDTH还没有用自定义值导出,则没有区别
$ MANWIDTH=60 man apropos > …Run Code Online (Sandbox Code Playgroud) 在 Xubuntu 14.04 中,我尝试同时使用两者ip并ifconfig处理网络接口,但它们给出了相同的结果。
$ sudo ifconfig wlan0 down
$ sudo ip link set wlan0 down
Run Code Online (Sandbox Code Playgroud)
都正确放下接口,连接不工作;但是之后
$ sudo ifconfig wlan0 up
$ sudo ip link set wlan up
Run Code Online (Sandbox Code Playgroud)
没有恢复连接!
这是ip link show放下接口后的输出:
wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether <my_MAC_address> brd ff:ff:ff:ff:ff:ff
inet 192.168.1.29/24 brd 192.168.1.255 scope global wlan0
valid_lft forever preferred_lft forever
Run Code Online (Sandbox Code Playgroud)
这是设置界面后的输出:
wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether …Run Code Online (Sandbox Code Playgroud) 是否可以在同一 LAN 的两个用户之间发送文本消息,但第一个使用 cmd 运行 Windows,第二个运行 Linux/Unix?
我不是在寻找即时消息服务。我想在 Linux shell 中输入类似的内容
write user@192.168.x.x:port message
Run Code Online (Sandbox Code Playgroud)
以便 Windows 用户可以在其 cmd 窗口中阅读文本message;那么 Windows 用户应该能够用另一个命令进行回复。是否可以?
我已经阅读了 Windowsmsg命令,但它不适用于所有版本的操作系统。还有别的事吗?
我想使用 Linux shell 和 Windows cmd,而不是 PuTTY。
使用bash外壳,在具有如下行的文件中
first "line"
<second>line and so on
Run Code Online (Sandbox Code Playgroud)
我想每次都替换一次或多次出现的"line"\n<second>withother characters并获得:
first other characters line and so on
Run Code Online (Sandbox Code Playgroud)
所以我必须用特殊字符(例如"和 )<和换行符替换字符串。
在其他答案之间搜索后,我发现sed可以接受命令右侧的换行符(因此,other characters字符串),但不能接受左侧的换行符。
有没有办法(比这更简单)用sed或获得这个结果grep?
command-line ×5
shell ×4
bash ×2
networking ×2
ubuntu ×2
checksum ×1
command ×1
directory ×1
files ×1
ghostscript ×1
grep ×1
hard-disk ×1
hashsum ×1
imagemagick ×1
login ×1
man ×1
messaging ×1
monitoring ×1
newlines ×1
pdf ×1
prompt ×1
pwd ×1
random ×1
scripting ×1
sed ×1
shell-script ×1
wifi ×1
windows ×1