Questions tagged «bash»

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


2
从linux运行存储在windows共享上的bash脚本
我想直接从Windows共享运行脚本。Windows机器运行Windows 7,我尝试在同一局域网上运行Ubuntu 13.10的脚本。我尝试使用bash脚本和python脚本,当我运行它时,我有以下错误: zsh: permission denied: ./bc.sh 包含脚本的共享安装如下: sudo mount -t cifs -o username=user,passwordpass=,exec,rw,users,file_mode=0777,dir_mode=0777 //192.168.0.3/folder /mnt/Win7 该脚本具有以下权限: -rwxrwxrwx 0 root root 24 Dec 10 20:50 bc.sh 并且只包含一个简单的命令: #!/bin/bash echo "Test" 我尝试用sudo运行它但是也没有用。 sudo: unable to execute ./bc.sh: Permission denied 我也尝试使用bash而不是zsh,但没有成功。 关于我缺少什么的任何想法? 谢谢。

2
使用sed替换字符串的一部分
我打算替换文件中的某些字符串; 所以我使用sed。 我希望替换字符串,而sed读取字符串并将文本附加到字符串的中间。 例: string in myfile : user=blabla string that I want to obtain: user=bob 所以我用这种方式运行sed,让它搜索“user =”字符串,并用“user = bob”替换它 sed -i 's/user=*/user=bob/' myfile 我得到的是 user=bobblabla 基本上sed认为我想要替换那个部分,而我想用新字符串替换整个字符串。我认为*会告诉sed考虑之后的任何事情,但它不起作用。 因为我不知道“blabla”会是什么,所以我不能把它放在sed命令中。如何告诉sed找到以“user =”开头的字符串并用新的字符串替换整个字符串?
3 bash  sed 

1
ubuntu,在命令行上使用&发布问题
我遇到的问题是当我使用&时。例如 vncviewer 192.168.1.106 & 这应该在后台运行vncviewer,允许我继续使用终端进行其他操作。vncviewer在另一端(在远景盒上)在我的ubuntu终端响应 Password: 我无法输入密码,因为该过程在后台,所以我 [ctrl + a] fg %1 [enter] 它应该给那个过程“焦点”。然而,在那一点上,键盘没有响应,因为在ctrl-c dosent工作中,当我输入,输入,esc ..全部死亡时没有文字出现。:(唯一的出路是关闭终端。 非常小的问题,一切正常,只是不想打开多个终端。(我已尝试过屏幕,如果有标签会使用它。)
3 ubuntu  bash  terminal  vnc 

1
如何从剪贴板中捕捉<< EOF'任意文本数据
我想将一些文本粘贴到终端并将其保存到文件而不使用编辑器,但只是'cat'。 但是文本中的行或标签太长,使用“cat&gt; test.txt”或“cat &lt;&lt;'EOF'&gt; test.txt”(“here document”)之类的简单命令无法实现。 在“此文档”模式下的bash中,如果粘贴的文本数据包含选项卡,则会导致自动完成。 如果我用'--noediting'开始bash,在某些系统上,粘贴行的长度限制为256个字符,其余的粘贴文本将被丢弃。 如果我直接粘贴到cat的输入(没有&lt;&lt;'EOF'),最大线也是256。 如果我做: stty raw; cat &gt;test.txt; stty sane ,行长度不再受限制,但没有办法将EOF发送到cat的输入。 如果我启用eof char: stty raw icanon eof '^d'; cat &gt;test.txt; stty sane 长队丢失了。 另外,如果我不禁用echo: stty -echo ,Solaris 10和Putty的组合导致大块文本~1500chars丢失,有时会导致空文件。 我得到的最接近的是用超时杀死猫: ( sleep 15; pkill cat ) &amp; stty raw -echo; cat &gt;test.txt; stty sane; echo …
3 linux  bash  clipboard  tty 


2
删除一系列文本文件的最后5行的非常简单的脚本
出于某种原因,此脚本为每个原始文件输出三个文件,而不是一个。 一定是犯了一些小错误 - 我是新手! 如果有人能够解释为什么会发生这种情况,那就很有责 脚本:- for f in *.txt do noOfRows=$(cat $f | wc -l) relevantRows=$(expr $noOfRows - 5) head -n $relevantRows $f | tee ${f%.txt}-Amended.txt done ls命令的结果: - E12-5_F2_NEG-Amended-Amended-Amended.txt E12-5_M3_POS-Amended-Amended-Amended.txt E12-5_F2_NEG-Amended-Amended.txt E12-5_M3_POS-Amended-Amended.txt E12-5_F2_NEG-Amended.txt E12-5_M3_POS-Amended.txt E12-5_F2_NEG.txt E12-5_M3_POS.txt E12-5_F2_POS-Amended-Amended-Amended.txt E12-5_M4_NEG-Amended-Amended-Amended.txt E12-5_F2_POS-Amended-Amended.txt E12-5_M4_NEG-Amended-Amended.txt E12-5_F2_POS-Amended.txt E12-5_M4_NEG-Amended.txt E12-5_F2_POS.txt E12-5_M4_NEG.txt E12-5_F5_NEG-Amended-Amended-Amended.txt E12-5_M4_POS-Amended-Amended-Amended.txt E12-5_F5_NEG-Amended-Amended.txt E12-5_M4_POS-Amended-Amended.txt …
3 linux  ubuntu  bash  shell  script 

4
Sed:在文件的第一行之后追加包含换行符号的文本
我试图通过将输出重定向git shortlog到CHANGELOG.md文件以编程方式构建更改日志。 我的更改日志输出(删节): 布兰登迪尔(4): 修复依赖冲突 我的changelog文件(空)看起来像这样: CHANGELOG === 我试图使用的命令是: sed "2a $(git shortlog)" ./CHANGELOG.md 但我得到这个错误: sed: -e expression #1, char 30: extra characters after command 我想要的是: CHANGELOG === 布兰登迪尔(4): 修复依赖冲突 有人可以帮助连接我错过的点吗?

2
在bash中设置-T - 它做了什么?
什么set -T在bash 中意味着什么?它有什么作用?我相信它与Unix中的陷阱有关,但我不确定。 我发现了这个: 如果陷阱被无情地调用,许多这样的结构变得更加简单,而前景儿童仍在运行。您只需安装一个陷阱处理程序,它可以解决问题,并且每当您点击SIGINT(或SIGQUIT)时都会调用它。就像C程序中的信号处理程序被立即调用一样。也许我是一个C程序员,但我发现延迟的sh行为非常不直观。 #! /bin/sh onsig() { trap SIGINT kill -SIGINT $$ } set -T # set async execution of traps on FreeBSD trap onsig SIGINT ./some-blocking-program set +T # set traps execution behaviour back to normal 这使陷阱处理程序更复杂,但它允许您通常编写shell脚本的主要部分,而不记住程序可能会阻塞并采取相应的操作。
3 bash  unix  shell 

2
在Linux命令手册中,在描述中使用“short_option <逗号> long_option”和“short_option long_option”之间的区别是什么?
例如,看一看 男子统计 在描述中,有几个选项,如: -L, - dereference 和 -c --format = FORMAT 有或没有逗号有什么区别?我该如何学习这类东西。我担心我可能会遗漏一些简单的细节。 我目前正在阅读:http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap12.html 但它似乎没有说太多。您如何/在哪里查阅有关Linux的信息?
3 linux  bash  shell 

3
sudo许可否认
我运行了这段代码: sudo cat &lt;&lt;EOF | sudo sed -e "s,%,$,g" &gt;/etc/init.d/dropbox echo "Hello World" EOF 但即使如此,我得到“权限被拒绝”,因为你必须是root用户才能在/etc/init.d目录中进行更改。不知何故,我上面的命令不起作用。 有办法解决这个问题吗?
3 linux  bash  ubuntu  debian 

2
rm -r命令的警告
我想rm在递归删除目录时提示我,如: $ rm -r &lt;dir&gt; Do you want to remove the dir(Y/N)? 有没有可以传递给我的论据rm呢?
3 bash  shell 

1
我怎样才能尽可能快地运行dd?
我正在学习bash,并与周围的许多人来说,所有的困惑是什么许多不同的方式有从/一(零写入驱动器或传输数据shredVS ddVS pvVS catVS tee等),我已经不堪重负。 就目前而言,我不情愿地选择了dd它,因为它似乎是两种用途的最佳命令行选项。鉴于此,我想确保我尽可能高效地使用它。 据我所知,默认情况下dd,块大小为512字节,并且增加了这个值,例如: dd if=/dev/zero of=/dev/sdX bs=3M status=progress ...会使它写出更大的块并且这样做的次数更少,因此可以更快地运行。 但是如果简单地设置更大的块大小会使命令运行得更快,那么阻止我使用bs=3G什么呢?这样做有什么缺点,如果有的话?Linux超级用户推荐使用的最佳块大小是多少?
3 linux  bash  dd 


7
Bash运算符<,>,| 和grep / kill
作为练习,我想使用基本的bash原则通过命令行终止一个进程但是我遇到了一些我不理解的错误: ps -A | grep nautilus | egrep -o '[0-9]{4,5}' | kill 1)它不起作用 如果我试试 ps -A | grep nautilus | egrep -o '[0-9]{4,5}' &gt; kill 2)也不起作用 3)如果我这不 (..) egrep '\d' (...)应该与[0-9]相同? 4)我有什么方法可以做这样的事情: kill &lt; (greps (...) )
3 linux  bash  grep  kill 

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.