Questions tagged «bash»

Bash是来自GNU Project的类Unix操作系统的免费外壳。

1
你能用T恤写的每一行加上当前日期和时间的前缀吗?
我正在使用'tee'命令将long bash命令的结果捕获到文件中。 我用tee发出的文件能以某种方式在每行前面加上写行的时间戳吗?我正在寻找一种解决方案,其中每一行将具有不同的日期时间值...不是每行前缀相同的值。 我想要这个的原因是,当我通读文件以了解慢速区域的位置时,知道每行何时发出是非常有用的。
3 bash  logging  tee 

1
Bash通过解析find的输出来移动和重命名
我有嵌套的pdf文件目录,我想将它们提取到更高级别的目录,重命名如下: 我的文件是这样的: ./path1/pathA/fileI.pdf ./path1/pathB/fileII.pdf 我想实现: ./path1_pathA_fileI.pdf ./path1_pathB_fileII.pdf 我知道我可以通过这样做来制作文件列表 find . -type f -name "*.pdf" 我可以想象一个使用的解决方案 find . -type f -name "*.pdf" | mv -t ... 但我不知道如何填写...因为我不理解bash中的解析和变量赋值。如何在“/”处拆分路径并形成如上所述的新路径和文件名? 提前谢谢了!
3 linux  command-line  bash  find  mv 

1
如何在不是当前进程的子进程的进程中运行命令?
我在解释性编程环境(IDL)中调用外部程序时遇到库冲突问题。问题似乎是因为我调用的程序最终成为IDL的子代,所以库不会被重新加载。 在IDL中,我可以直接或使用shell启动子流程。有没有一种好的方法可以让我的程序在不作为子进程结束的情况下运行? 到目前为止我找到的唯一解决方案是使用ssh localhost my_program。这很好用,但我想要一个更直接的解决方案。
3 bash  shell 

1
如何在驱动器的指定部分启动坏块
在尝试dd200GB Maxtor IDE硬盘的最后几个块时,我遇到以下错误: $ dd if=/dev/zero of=/dev/sdc bs=4M status=progress 203901894656 bytes (204 GB, 190 GiB) copied, 7283.07 s, 28.0 MB/s dd: error writing '/dev/sdc': Permission denied 48621+0 records in 48620+0 records out 208223076351 bytes (208 GB, 194 GiB) copied, 8379.27 s, 24.8 MB/s 这个错误甚至试图恢复后坚持dd用seek=48620,其中48620是要跳过的块的数量。为了确定这个错误是否是坏扇区的结果,我想以badblocks同样的方式运行,从dd失败的地方开始。 这将转换为badblocks如此命令: badblocks -svw -b 4000000 -c …

1
为什么不ls -lrt`找到.`并找到。-exec ls -lrt {} \ +产生相同的输出?
我正在尝试按日期对文件进行排序,包括那些驻留在子目录中的文件。我通过使用它得到它的工作: find . -exec ls -lrt {} \+ 我在StackOverflow上找到了某个地方。我最初的尝试是使用: ls -lrt `find .` 但它不起作用。它按日期对每个目录的内容进行排序,而不是将它们全部排在一起。 为什么这些会产生不同的输出?
3 bash  find  ls 

2
如何强制异常终止bash脚本
我有一台运行DSM的Synology NAS。我创建了一个bash脚本来检查某个文件夹中是否存在某个文件。该脚本按计划运行,并通过电子邮件将结果返回给我。 问题是我收到太多电子邮件只是说脚本运行正常。 DSM任务计划程序仅在脚本异常终止时才允许发送电子邮件。 我的问题是:如何强制脚本异常终止? 如果我正在寻找的文件不存在,我会这样做才能收到电子邮件。
3 bash  nas 


1
bash compgen -d —'〜'总是产生空的输出
bash$ compgen -d -- '~' 产生空输出。 bash$ compgen -d -- '~mi' 也产生空输出。 bash$ compgen -d -- '~mice/' ~mice/.pulse ~mice/.mozilla ~mice/Pictures 还行吧 bash$ compgen -d -- '~mice/Do' ~mice/Downloads ~mice/Documents 还行。 compgen是否会为'〜'和'〜mi'产生空输出,这是bug吗?如果是bug,修复后是否会破坏某些东西?

2
如何安全地从脚本/命令行杀死xscreensaver?
我正在使用Linux(RHEL6)工作站。我写了一个小脚本,当我连接或断开USB拇指驱动器时,它会通过xscreensaver锁定和解锁屏幕,这实际上将其变成了工作站的物理钥匙。问题在于,似乎没有从命令行解锁xscreensaver的好方法。xscreensaver-command -deactivate违反直觉,仅“模拟用户活动”,并且仍需要密码才能解锁屏幕。xscreensaver-command -exit仅在xscreensaver没有屏幕保护程序运行时才杀死父守护程序。手册页xscreensaver-command -exit警告说, Warning: never use kill -9 with xscreensaver while the screensaver is active. If you are using a virtual root window manager, that can leave things in an inconsistent state, and you may need to restart your window manager to repair the damage. 确实,我目前正在使用pkill xscreensaver我的方法来摆脱脚本中的屏幕保护程序,这通常会导致僵尸进程和其他混乱。如何从脚本/命令行安全地解锁屏幕保护程序?

1
在Windows 10的Ubuntu 10上的Bash上安装git和Bash的git bash已安装?
我已经在Windows 10上使用git bash shell已有一段时间了,但是我只是在Windows上为Ubuntu安装了WSL / Bash。BUW有一个与我的Windows文件分开的完整文件系统,还有它自己的软件包。 那么问题来了:如果我在BUW上安装git(使用apt-get install git),是多余的(所以我应该坚持使用已经拥有并知道的git bash shell),还是在某种程度上BUW版本更好(我应该卸载git?如我现在所拥有的)?如果同时安装两者,它们会冲突吗?(请记住,我在Windows文件上使用git-老实说,完全不确定如果卸载git bash还是可以的。)

1
linux find:搜索小于2Kb的文件会丢失1到2Kb之间的文件
我只是偶然发现Linux上的find命令,简而言之,我需要在某个文件夹中查找所有小于2Kb的文件,因此发出了以下命令: find /folder_to_search_into/ -type f -size -2k 根据查找的手册页应该返回小于2 KB的所有内容 但是我注意到的是,它丢失了一些文件,大小在1到2Kb之间。 然后我发出 find /folder_to_search_into/ -type f -size -2048c 由于“ c”代表字节,因此它应该完全等效,在这种情况下,它找到了我正在寻找的所有文件。 任何想法,为什么这种行为?我可能在这里找不到明显的地方。不知道它是否与此注释有关(从“查找手册”页面-在“尺寸”部分中): 该大小不计入间接块,但计入未实际分配的稀疏文件中的块。请记住,-printf的'%k'和'%b'格式说明符对稀疏文件的处理方式不同。后缀“ b”始终表示512字节的块,从不表示1千字节的块,这与-ls的行为不同。

1
如何将IO从一个终端克隆到另一个终端
我直接(tty1)并通过ssh(pts / 0)连接到了我的Linux机器。 who pi tty1 2013-09-23 11:33 pi pts/0 2013-09-23 12:17 (192.168.1.26) 我想将所有输入(stdin)和所有输出(stdout / stderr)从一个终端重定向到另一终端,因为我正在使用ssh,但听众应该能够在大屏幕(tty1)上关注会议。 最好的解决方案是将所有内容(整个终端)都从一个终端复制到另一个终端。 有什么建议么? 最好的祝福。
3 linux  bash  terminal 

4
是否存在客户端解决方案,用于从SSH连接自动注销太短?
我从一个Linux主机SSH到另一个我不管理的Linux主机。它/etc/ssh/sshd_config显然配置为在一段短暂的不活动时间间隔后自动注销,这对于我来说太短暂了(如何在一个小时后启用交互式ssh登录的自动注销)。 是否可以通过每两分钟发送或接收换行符的方式使SSH会话保持活动状态? 类似的解决方法while true { echo ' '; sleep 120 }在拨号调制解调器时代很普遍。 FWIW,根本不涉及Windows的PuTTY。
3 linux  bash  ssh  sshd  logout 

3
Bash脚本,字符串未正确替换为转义的$和&字符
我创建了一个shell脚本,该脚本以字符串作为输入。如果字符串包含$或&,则需要用\$和替换这些字符\&。我可以用sed命令做到这一点。之后,我想用该对应的字符串替换特定文本文件中的单词。 请参阅本节以获取更多说明。 这是我的档案。 test.txt hello my root password is root. 现在,我想用字符串更改词根。该字符串可以是任何可以包含特殊字符(如$或)的东西&。 如果我想root用字符串替换my&rootpa$$,那么它应该看起来像my\&rootpa\$\$文本文件中的字符串。 这是我的外壳 #!/bin/bash dothis(){ rootpass=$(echo "$1" | sed -r 's/\$/\\$/g'); rootpass=$(echo "$rootpass" | sed -r 's/\&/\\&/g'); echo $rootpass; sed -i "s/root/$rootpass/g" test.txt } dothis "my&rootpa$$"; 该脚本可以正常运行echo $rootpass,也就是说,当我回显字符串时,它将显示my\&rootpa\$\$。 但是在文件中看起来my&rootpa$$不是my\&rootpa\$\$。脚本出了什么问题? 请指教。
3 linux  bash  shell  sed 

2
使用ffmpeg交叉淡化视频和音频
到目前为止,使用ffmpeg在2个视频之间进行超级淡入淡出的交叉淡入淡出的效果使我到目前为止,但是现在,我已经尝试了许多解决方案,并且看到那里的每个SO链接,是时候向大家寻求帮助了。 我正在尝试同时淡入淡入淡出2秒钟ts格式的2个视频和音频和视频的视频。 这些步骤是: 添加复杂的滤镜黑屏 在9秒钟后淡出视频1,淡入时间为1秒 在9秒钟时淡入视频2,淡入时间为1秒 修剪黑色滤镜输出至19秒 这仅适用于视频,效果很好,但是当我尝试添加音频时,我无法越过此错误消息: 未连接到任何目的地的滤波器的滤波器实例“ Parsed_asetpts_4”的音频类型的输出垫“默认” 看来我没有正确连接音频输出。我想我需要更改[over]行以包含音频。但是我该怎么做呢? `ffmpeg -i vid1.ts -i vid2.ts -f lavfi -i color=black -filter_complex \ "[0:v]format=pix_fmts=yuva420p,\ fade=t=out:st=9:d=1:alpha=1,setpts=PTS-STARTPTS[v0];\ [0:a]\ afade=t=out:st=9:d=1,asetpts=PTS-STARTPTS[a0];\ [1:v]format=pix_fmts=yuva420p,\ fade=t=in:st=0:d=1:alpha=1,setpts=PTS-STARTPTS+9/TB[v1];\ [1:a]\ afade=t=in:st=0:d=1,asetpts=PTS-STARTPTS+9/TB[a1];\ [a0][a1]amix=inputs=2;\ [2:v]scale=720x406,trim=duration=19[over];\ [over][v0]overlay[over1];\ [over1][v1]overlay=format=yuv420[outv]" -vcodec libx264 -y -map [outv] final.ts`
3 bash  video  shell  ffmpeg 

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.