标签: command-line

命令行:如何将 PDF 文件旋转 90 度?

当我扫描横向文档时,输出的 PDF 文件是纵向的,因此所有 PDF 查看器都以纵向显示扫描的文档。

从命令行,如何将 PDF 文件旋转 90 度?

我尝试搜索并找到了一堆解决方案,但我很难找到看起来像是使用稳定而强大的 Linux/Unix 工具的权威解决方案 [1]。


脚注 [1]

例如,这里是我发现的一些随意解决方案的示例:

  • “只需使用 Adob​​e Acrobat Pro 旋转文件然后保存文件”
  • “使用pdfjam”
  • “使用PDFtk”
  • “使用来自 Poppler 的 ${PROGRAM_NAME}”
  • “使用 ImageMagick 的转换”——但随后所有的评论都非常消极,并指出“图像质量被破坏了”
  • “在 PDF 查看器中打开文件,然后旋转,然后使用像 cutPDF 或 PDF 打印机等 PDF 打印机打印”
  • “使用 ${PROGRAM_NAME}”,然后我搜索了“${PROGRAM_NAME}”并且有一些关于“由于许可问题,Fedora 删除了 ${PROGRAM_NAME}”

command-line pdf pdftk poppler

111
推荐指数
7
解决办法
9万
查看次数

109
推荐指数
3
解决办法
14万
查看次数

生成特定范围内的随机数

在谷歌搜索了一下之后,我找不到一种简单的方法来使用 shell 命令生成一个包含在特定范围内的随机十进制整数,即介于最小值和最大值之间。

我读过/dev/random,/dev/urandom$RANDOM,但这些都不能满足我的需要。

有没有其他有用的命令,或者使用以前数据的方法?

command-line shell random command

107
推荐指数
10
解决办法
23万
查看次数

当我检查某事时记住一个半键入的命令

我经常发现自己处于以下位置:我已经开始在 bash 提示符下键入一个长命令,但是中途我发现我需要用另一个命令检查某些内容。当我在控制台(没有 X)时,这是一个问题,通常是这种情况,因为那时我只有以下不满意的方法来做到这一点,我知道:

  • 命中ctrl+ alt+F2和登录另一个虚拟控制台上,并找出我想要的东西,然后回去继续
  • ctrl+ a,输入 echo + space+ enter,找出我想要的,按?直到我找到我的命令,ctrl+ a, delx 5, ctrl+ e,然后继续
  • 用鼠标突出显示到目前为止我输入的内容(如果 gpm 正在运行,通常是这样),按ctrl+c中断,找出我想要的内容,同时注意不要使用鼠标突出显示内容,然后按鼠标中键在新的提示下并继续
  • 向命令行大神祈祷,写一半的命令不会有任何不利影响,只会失败,然后小心翼翼地按回车,然后找出我想要的东西,按向上箭头直到我得到我的命令,然后继续
  • 跳进我的时光机,回到过去并提醒自己在开始输入命令之前启动屏幕,回到现在,按ctrl+ a c,找出我想要的,按ctrl+ a ctrl+a,然后继续

所以我想知道的是,有没有更优雅的方法来做到这一点?一种子shell命令或类似的?

我对不需要任何准备或设置即可工作的方法最感兴趣。

command-line bash zsh

104
推荐指数
7
解决办法
6896
查看次数

根据大小递归排序文件

我需要在文件夹中找到最大的文件。
如何递归扫描文件夹并按大小对内容进行排序?

我试过使用ls -R -S,但这也列出了目录。
我也尝试使用find.

command-line ls find

104
推荐指数
6
解决办法
16万
查看次数

如何从命令行创建消息框?

如何从命令行创建消息框,无论是 GUI 消息框还是终端内显示的消息框?

能够从用户那里获得简单的输入也很有趣,例如,通过单选按钮(是/否、确定等)给出的输入。

command-line terminal

104
推荐指数
4
解决办法
13万
查看次数

从终端设置音量

是否可以使用终端而不是单击顶部栏中的扬声器图标来设置音量?

我想这样做的原因是我的键盘没有音量增大/减小按钮,而且我觉得伸手去拿鼠标很烦人。

command-line audio linux-mint

102
推荐指数
7
解决办法
25万
查看次数

如何使用标准工具复制整个磁盘的分区布局

我想备份硬盘驱动器的整个分区布局,包括逻辑驱动器,以便我可以将该布局恢复到另一个磁盘。我想要复制分区的内容,只有布局。对于主分区和扩展分区,很简单:

dd if=/dev/sda of=partitiontable.bin bs=1 skip=446 count=64 # backup
dd if=partitiontable.bin of=/dev/sda bs=1 seek=446 count=64 # restore
Run Code Online (Sandbox Code Playgroud)

但是说到逻辑分区的布局,我想知道标准工具中是否存在类似的保存布局的方式?我想主要问题是找到 EBR 位置的偏移量,因为有了它,dd剩下的就可以完成了。请记住,我需要能够将所有内容放回(可能)空白磁盘,从而恢复相同的布局。使用像fdisk或这样的分区工具parted很好,但我必须能够自动化它们的使用(脚本)并且它们不应该依赖于任何与 X 相关的包——仅命令行。

我的备份计划是使用 struct 模块在一个小的 python 脚本中手动完成,但我更希望有一种更简单的方法。

command-line partition

100
推荐指数
2
解决办法
19万
查看次数

拆分文件后再次加入文件的最佳方法是什么?

如果我有一个大文件并且需要将其拆分为 100 兆字节的块,我会这样做

split -b 100m myImage.iso
Run Code Online (Sandbox Code Playgroud)

这通常会给我类似的东西

xaa
xab
xac
xad
Run Code Online (Sandbox Code Playgroud)

为了让它们重新组合在一起,我一直在使用

cat x* > myImage.iso
Run Code Online (Sandbox Code Playgroud)

似乎应该有一种比读取一组文件中的每一行代码cat并将输出重定向到新文件更有效的方法。就像只打开两个文件、EOF从第一个文件中删除标记并将它们连接起来一样 - 无需浏览所有内容。

Windows/DOS 有一个用于二进制文件的复制命令。帮助中提到此命令旨在能够组合多个文件。它使用以下语法:(/b用于二进制模式)

copy /b file1 + file2 + file3 outputfile
Run Code Online (Sandbox Code Playgroud)

在 Linux 上是否有类似或更好的方法来加入大文件而不是 cat?

更新

看来这cat实际上是加入文件的正确方式和最佳方式。很高兴知道我一直在使用正确的命令 :) 感谢大家的反馈。

linux command-line iso split files

99
推荐指数
4
解决办法
15万
查看次数

从管道中获取字符串的前 [x] 个字符

如果我的命令输出很长(单行),但我知道我只想要输出的第一个 [x](假设是 8 个)字符,那么最简单的方法是什么?没有任何分隔符。

command-line shell text-processing

98
推荐指数
3
解决办法
18万
查看次数