Articles of bash

批量命令,用于重新检查输出重定向

当我想处理一堆tex文件时,我会使用 for f in *.tex; do latex “$f” ; done; 当我需要将输出重定向到另一个文件时,我该怎么办,例如catdvi? 以下不起作用: for f in *.dvi ; do catdvi -e 1 -U $f > “${f%.dvi}.txt”; done; 我究竟做错了什么?

通过bash脚本设置系统范围的代理(暂时)

我正在尝试暂时设置系统范围的代理选项,该选项在网络设置中通过bash脚本以GUI的forms提供。 我只希望代码在脚本运行时适用,并且在脚本结束时必须重置为无代理。 所以,基本上,我正在寻找类似的东西: —-脚本开始—- 将代理更改为预定义的IP,端口组合 跑 关闭时,重置代理 —-脚本结束—– 现在,我看到了设置环境变量的一些内容,但我不确定如何暂时应用它。

别名替换字符串以在终端命令中使用它

有没有办法替换别名,以便将它附加或预先添加到shell中的现有命令? 例如,定义别名: alias execloc=’/home/user/’ 将其添加到bash终端中的命令: cd exeloc/temp/somefolder 可以这样做,还是有办法做到这一点?

如何从多个目录复制文件,将父文件夹的名称添加到文件名?

我一直在寻找关于“将文件从多个目录复制到一个目录”的所有可能答案,但我找不到答案。 我需要一些稍微更具体的数据库处理方法。 我有一个类似的问题: 将文件从多个目录复制到另一个多目录 但是如何将这些文件(它们都具有完全相同的名称)复制到新目录并添加父目录名称,以便我可以识别它们被复制到哪个目录? 是的我可以一个接一个地复制和重命名每个名字,如果我没有100个:) 我尝试使用find循环。 等,但仍然,我无法添加复制的文件父目录名称。 我还处于这个领域的初级阶段,因此我从正则表达式开始。 我想这里有一些事要做,但我无法弄清楚究竟是怎么回事。 所以,这是我的问题。 如何在我的unix终端上使用简单的命令或循环来做到这一点: DIR_a1 –> output_file.bam DIR_a2 –> output_file.bam DIR_a3 –> output_file.bam 复制NEWDIR_output所有output_files.bam ,使它们显示为父目录名: output_file_a1.bam output_file_a2.bam output_file_a3.bam 提前,非常感谢任何意见

脚本:递归地将wma文件转换为MP3,然后删除WMA文件

我正在尝试修复一个脚本,该脚本以递归方式在目录树中搜索WMA文件 – 将它们转换为MP3文件,然后删除WMA文件,将转换后的MP3文件保留在原位。 通过一些帮助和研究,这就是我所处的位置: #!/bin/bash shopt -s globstar for f in **/*.[Ww][Mm][Aa] do path=${f%/*} filename=${f##*/} new=${filename// /_} # space -> underscore new=${new,,} # lowercase mv -v — “$f” “$path/$new” done for f in **/*.wma do mplayer -vo null -vc dummy -af resample=44100 -ao pcm:waveheader “$f” && lame -mj -h –vbr-new -b 320 audiodump.wav -o “`basename […]

什么是通用shell脚本的示例,它将在终端中正确运行,但不是双击时?

我真的很想了解一些脚本可以从命令行运行但不是双击时的基本原因。 是否有一个脚本的例子可以做一些简单的事情,比如回显一个变量或类似的东西,它可以在命令行中重现,但是双击时却无法工作? 要清楚,我的意思是它应该在两个实例中运行,但是当双击时它应该无法正确执行其任务,并且它应该在任何最近的Ubuntu安装上执行此操作。 我希望通过能够重现我能理解的行为并在将来自己修复它。

如何让git生成输出到文件?

我想用git clone将git clone的输出写入文件 git clone https://github.com/someRepository > git_clone.file 但相反,我得到了终端中显示/更新的输出 Cloning to ‘someRepository’ … remote: Counting objects: 2618, done. remote: Compressing objects: 100% (14/14), done. remote: Total 2618 (delta 2), reused 12 (delta 1), pack-reused 2603 Received objects: 100% (2618/2618), 258.95 MiB | 4.39 MiB/s, Done. Resolving Differences auf: 100% (1058/1058), Done. Check Connectivity … Done. […]

“export PS1 =”用于自定义shell提示符

我想自定义shell提示符以包含时间。 所以,我确实export PS1=’\t\w\$’ 。 我的提示现在看起来像18:57:37~$ 。 我不知道如何用username@hostname作为前缀。 另外,我不知道如何更改\t , \w每个参数的颜色。 在所有测试之后,我如何将其设置回默认值? 最后,出口线在哪里? 我查看了~/.profile ,但没有行export PS1=’\t\w\$’ 。

如何访问我的Bash历史记录?

我对Linux很新,我需要找到一种方法来通过命令行显示我的Bash历史记录的内容,不幸的是我似乎无法找到任何可行的,或者我能理解的。 我正在使用Linux Ubuntu 11.10,当我通过查找文件手动打开Bash历史记录时,它会打开一个名为gedit的东西。 如何通过命令行查看Bash History的内容? 非常感谢! 〜ShadedVeil

如何找到启动文件读取和Ubuntu启动图形界面时创建的环境变量

在Ubuntu 16.04中使用LXDE或Gnome, 如何找到使用图形界面启动Ubuntu时创建的环境变量? 当Ubuntu启动图形界面,读取和执行哪些启动文件时, /etc/profile , /etc/profile /etc/profile.d/* ~/.profile , ~/.profile , ~/.bash_profile , /etc/environment , /etc/bash.bashrc , ~/.bashrc ? 谢谢。