Questions tagged «bash»

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

5
如何在bash提示中显示绝对路径?
我目前将bash PS1设置为以下形式: PS1="\[\`if [[ \$? = "0" ]]; then echo '\e[32m\h\e[0m'; else echo '\e[31m\h\e[0m' ; fi\`:\w\n\$ " 如何使它显示绝对路径而不是相对路径(例如/home/dave/dir而不是~/dir)?
50 bash  path  prompt 

10
我可以遗忘将这些文档保存在一台濒临死亡的机器上吗?
首先,要供认:不,我没有进行应有的备份。 二,情况: 我有一台运行固态硬盘Fedora 25的Dell XPS 9550 。 当我被告知我试图保存到只读文件系统时,我正在处理文件并尝试保存它。原来我的文件系统现在是只读的,到处都是I / O错误。 我可以通过打开的网络浏览器将文件发送给自己来保存一些文件,但是该文件崩溃了,因此我无法重新启动它。但是我仍然在编辑器中打开了感兴趣的文件。我似乎无法将文件保存在任何地方,但可以复制它们的内容。只要我能找到一种方法来提取文件内容,就可以节省数月的工作。 但是有一些可怕的局限性。我试图插入USB驱动器,但是似乎没有设备可以代表它,并且该mount命令以段错误终止。我可以尝试通过ssh切换到另一台计算机,但是出现“总线错误”并且死了。ping,dmesg,ifconfig,所有这些工作。但是我确实有vimand less和lsand可以生成新bash实例。 没有lynx,没有firefox,没有google-chrome。没有DVD驱动器。 基本上看来我的SSD已经死了。也许是整个主板。我的内存中仍然有很有价值的文档,我有IP地址和网络连接,我可以运行一些随机命令,并且可以尝试的路径上还有3500个。 cat并且gcc似乎起作用。我可以写入/ tmp中的文件。我有一个正在运行的ipython实例似乎仍然可以正常工作。 所以...到目前为止我尝试过的都失败了。但是我觉得仍然有上千种可能性。我没有考虑什么?我怎么可能从快死了的计算机上删除这些文件? 一定有办法。 更新:新东西: 由于自己的愚蠢,我失去了网络连接。 我写了一个Python脚本来替换cp和cp -r 除非我找到某种方法来创建/devSD卡或USB驱动器的条目,否则获取数据的最佳选择似乎是屏幕,可能还有扬声器/音频电缆。 我正在编写一个脚本以尝试读取文件并输出可读的文件。 建议还是很欢迎的! 更新2:较新的东西: 在垂死的计算机上,我编写了一个Python脚本,该脚本将一点一点地读取文件,并尝试通过以一种颜色或另一种颜色闪烁屏幕来传达这些位。现在,它正在尝试编写一个两位代码,其中红色,绿色,蓝色和白色都代表两位。不过,这种方法效果不佳,因此我可能只切换为两种颜色,一次只做一次。 在我的另一台笔记本电脑上(我为这个热门的新XPS放弃了可信赖的旧Thinkpad),我编写了一个脚本,该脚本使用OpenCV Python库从网络摄像头读取。想法是让它解码另一台计算机发送的代码。麻烦的是,来自摄像机的帧速率约为每秒15帧,这意味着如果我进行完美无误的传输,则我的最大数据速率将为每秒30位,即每秒225字节。每天324k。 在快要死的XPS上,我可以tar将所需的文件打包到一个单独的档案中,该档案为1.7 MB。不幸的是,gzip,bzip2,xz,lzop和任何压缩实用程序不可用。但是使用Python的zlib模块,我可以将此文件压缩到820KB。在这种大小的情况下,我可能会在几天内将其发送出去。 因为这种传输方法很容易出错,所以我将在XPS上实现汉明码,以便在传输数据时添加一些错误校正。 可能会发生并发症,因为这就是发生的情况,但是至少可以肯定地看出这些数据的可行性! 由于这仍然是发送数据的麻烦方式,因此我对USB串行驱动程序进行了更多研究。我试图要装载的模块(usb-serial-simple,usb-debug,safe-serial)给I / O错误。我也不认为它是内置在内核中的,因为不存在/ dev / ttyUSB *设备。 到目前为止,感谢大家的建议-我知道这甚至不是一个明确的问题,因为你们事先不知道可以读取或不读取哪些程序/文件。仍然比这种视频方法更好的建议! 更新3:最新资料 我有一个PS3 Eye网络摄像头,在禁用了它的自动增益和曝光功能之后,尽管每秒错误1字节,但仍成功地从XPS读取数据。这是一个巨大的成功-首次泄漏了数据!但是速度太慢,无法在任何合理的时间内取出我的820KB,错误率也太高。 问题在于,写入终端的速度太慢。屏幕更新与即时更新完全不同,(我认为)要感谢urxvt我可以访问的终端仿真器的运行速度。 我发现可以访问XPS上的Rust编译器。我使用Rust重新编写了传输脚本,以查看这是否可以提高终端刷新速度,但是并没有帮助。 因为我不太可能提高帧速率,所以我不得不尝试增加每帧获取的数据量。我当前的方法如下所示: 右半部分仍然是时钟信号,不断闪烁以指示新帧的到来。但是,现在左侧是一个网格,其中每个单元格的角落都用一个红色正方形标记,然后从红色正方形开始向右和向下闪烁的绿色单元格会不断闪烁,以指示一点。红色方块应使接收方计算机校准单元的位置。到目前为止,我还没有任何数据,但这就是我正在研究的内容。 有人建议我考虑编写QR码,而不是这些临时的颜色模式。我也将对此进行研究,也许可以实现它而不是这种网格方法。纠错将是一个不错的选择,并且能够使用标准库进行解码。 …
49 linux  bash  ssd  fedora  crash 


7
监视特定端口上的TCP流量
我已经对此进行了广泛的搜索,但是似乎无法提出一个可行的示例。 我的目标是监视特定端口上的TCP通信,以查看传入的连接并将它们写入文本文件。问题是我还需要在每行上添加一个时间戳,以准确显示客户端何时连接到第二行。 我已经用尽了netstat,nmap和tcptrack,但是都不支持时间戳。 我当时想,如果我监视特定的本地端口并在建立连接时将文本写到文件中,然后将每一行的日期连接起来,那么Linux shell脚本可能会起作用。 我在玩这个: netstat -ano|grep 443|grep ESTABLISHED 以及这个: tcptrack -i eth0 port 443 但都不适合我的需要,因为我需要连接的时间。 如果您有任何建议或可以指出正确的方向,将不胜感激。 谢谢。:)
49 linux  bash 

3
避免Zip文件中不需要的路径
我正在制作一个Shell脚本来打包一些文件。我正在压缩这样的目录: zip -r /Users/me/development/something/out.zip /Users/me/development/something/folder/ 问题在于生成的out.zip归档文件中包含整个文件路径。也就是说,解压缩后,它将具有完整的“ / Users / me / development / anotherthing /”路径。将目录放入存档时是否可以避免这些深层路径? 当我从目标目录中运行zip时,我没有这个问题。 zip -r out.zip ./folder/ 在这种情况下,我不会得到所有的垃圾。但是,有问题的脚本将从任何地方调用。 FWIW,我在Mac OS X 10.6上使用bash。
49 macos  bash  zip  path  shell-script 

3
如果SSH闲置一段时间,如何防止SSH断开连接
我有一个ssh连接到一台机器,在没有用户输入30分钟后该机器断开连接。但是,如果我开始这样的话top,连接会保持活跃状态​​。由于这是客户端的机器,我无法重新配置该机器的SSH服务器。所以我正在寻找一种方法来自动检测闲置并启动类似的东西top。有点像Bash的“屏幕保护程序”。 我知道我可以这样做screen,但遗憾的screen是没有安装,我无法安装软件。所以我需要使用Bash提供的功能。 为了说清楚:我正在寻找一个我登录后开始的解决方案,然后我想使用那个终端,走开,两个小时后回来继续工作,没有在走开之前输入任何东西。此外,我不想寻找隧道的东西(因为我推荐伟大的工具sshuttle) 有任何想法吗?
48 linux  bash  ssh 


3
bash中这个奇怪的符号“:>”是什么意思
我在脚本中找到了一些东西,但不属于主脚本。有:>在一条线上。 你能告诉我这是什么意思吗? :> file while read A B C D E; do echo "$A;$B;$D;$E;$C" >> file; done < otherfile
47 bash 

5
如何CD到名称中包含空格的目录?
我在Mac Os X的桌面上有一个名为“ Reader 0.5”的目录。当在终端中访问该目录时,我正在使用以下代码: cd /Users/niho/Desktop/Reader 0.5 但它抛出: 没有相应的文件和目录 错误。 我怎样才能进入该目录? 谢谢。
47 macos  bash  shell 

5
遍历子目录并在每个子目录中运行命令
我有一组存储库,基于它们的VCS(Git,Mercurial,SVN)分类到目录中。使用Subversion,我可以svn update *在父目录中运行,它将遍历每个目录并按预期更新每个存储库。Git或Mercurial并非如此。 我想提出一个bash脚本,我可以运行它来完成该任务,遍历目录以及每个目录git pull或hg pull每个目录。我只是没有太多的bash脚本编写经验。
47 linux  bash  shell  script 

8
Bash:有没有办法在文件目录中搜索特定的字符串?[重复]
可能重复: 在Linux中搜索文本模式 在bash中,我想知道是否有任何命令可以让您知道您要查找的特定字符串是否存在于您当前目录中的文件中。 假设您正在当前目录的一组C文件中寻找函数“ toUpperCase()”。文件很多,所以您不想使用vim手动打开每个文件并检查字符串“ toUpperCase”,因为这会花费很多时间。如果不是bash命令行,是否有另一种方法可以有效地做到这一点?
47 search  bash 



3
如何获取bash对别名执行制表符补全?
我设置了一堆bash完成脚本(主要使用bash-it和一些手动设置)。 我也有一堆别名设置像常见任务的gco进行git checkout。现在,我可以输入内容git checkout dTab并develop为我完成,但是输入时还gco dTab没有完成。 我认为这是因为完成脚本正在完成git并且看不到gco。 是否可以通过通用/编程方式使我所有的完成脚本与别名一起使用?使用别名种类时无法完成会破坏别名的目的。

4
我想使用ImageMagick更改DPI,而不更改图像数据的实际字节大小
在GIMP中,有一种非常简单的方法可以执行我想要的操作。我只安装了德语对话框,但我将尝试对其进行翻译。我说的是去Picture -> PrintingSize然后调整值X-Resolution,Y-Resolution这些值对我来说就是所谓的DPI值。您还可以选择默认为的格式Pixel/Inch。(在德语中,对话框位于Bild -> Druckgröße那里X-Auflösung和Y-Auflösung) 好的,72默认情况下通常是这些值。当我将其更改为例如时,300具有使图像在计算机上保持不变的效果,但是如果我打印它,则如果您查看它,它将变小,但是所有细节仍然存在,只是更小->它具有在打印纸上具有更高的分辨率(但尺寸较小...对我来说很好)。 在使用LaTeX时,或者pdflatex在最近的Ubuntu-Machine上执行该命令时,我经常这样做。当我手动执行GIMP的上述过程时,一切正常。在生成的PDF中,图像将显得较小,但打印质量较高。 我想做的是使进入GIMP和调整DPI值的过程自动化。由于ImageMagick众所周知是一流的,因此我将它用于许多其他任务,因此我尝试使用此工具实现目标。但这并不能满足我的要求。 在尝试了很多事情之后,我认为这实际上应该是我的朋友: convert input.png -density 300 output.png 这应该将DPI设置为300,因为我可以在网络上的任何地方阅读。它似乎有效。但是,当我检查文件时,它保持不变(编辑:这是我期望的,如上所述)。 file input.png output.png input.png: PNG image data, 611 x 453, 8-bit grayscale, non-interlaced output.png: PNG image data, 611 x 453, 8-bit grayscale, non-interlaced 当我使用此命令时,好像它做了我想要的: identify -verbose output.png | grep 300 Resolution: 300x300 PNG:pHYs : x_res=300, …

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.