Questions tagged «bash»

Bash(Bourne-Again SHell)是默认情况下在Ubuntu命令行界面中使用的shell。

3
我可以用吗 '!!' 在别名还是脚本中?
在终端中,我可以使用!!它将引用我先前的命令。可以在别名中使用它吗?我已经尝试过了,但是发生的是双感叹号是按字面解释的。 我想拥有的是: 我输入一些命令 我键入一个别名,其中将包含在步骤1中输入的内容 如果有使用脚本的解决方案,那也是可以接受的。

1
没有带星号的制表符完成*
当我在命令行中有星号时,无法从gnome-terminal中的命令行制表完成。默认的shell是bash,使用gnome-terminal。例如, 这可以使用~/files/目录上的tab-completion将单个文件复制到dir中: cp ~/file1 ~/files/ 但是,当我要将多个文件复制到目录中时,无法使用目录上的制表符完成功能(我必须手动输入或粘贴~/files/): cp ~/file* ~/files/ (假设有文件存在file1,file2,file3&file4) 这确实会完成整个目录的制表符(并按我期望的regex起作用,将所有这些文件复制到中~/files/): cp ~/file?* ~/files/ 所以我有一个解决方法。但是我知道我之前已经使用过这项功能,而不必使用?,我不确定如何或何时丢失它。作为一个繁重的命令行用户,我一直在使用它,但是最近一直比较烦人。 EDIT1 +: 输出 $ compopt cp compopt +o bashdefault +o default +o dirnames +o filenames +o nospace +o plusdirs cp $ set -x然后的输出$ cp ~/file* ~/file<tab> + (( COMP_CWORD += 1 )) + COMP_WORDS=(cp -i …

4
读写文件:tee命令
众所周知,这样的命令: cat filename | some_sed_command >filename 删除文件文件名,因为在命令之前执行输出重定向会导致文件名被截断。 可以通过以下方式解决此问题: cat file | some_sed_command | tee file >/dev/null 但是我不确定这在任何情况下都行不通:如果文件(以及sed命令的结果)很大,会发生什么?操作系统如何避免覆盖仍未读取的某些内容?我看到还有一个海绵命令无论如何都应该起作用:它比tee更“安全”吗?
10 command-line  bash  tee 

3
如何定期关闭显示隐藏文件?
因此,为了将某些文件和文件夹隐藏在不熟练的人眼中,我修改了它们的名称,并在名称的开头加了一个点。它有效,并且文件被隐藏。不熟练的爱管闲事的人不会看到他们。使用Nautilus,我可以使用组合键Ctrl- 打开和关闭“显示隐藏文件” H。精细。但是后来我不知道是否要启用或禁用该功能。 我想编写一个bash脚本,该脚本每隔10分钟自动启动一次,并将关闭“显示隐藏文件”功能。因此,我可以确定,爱管闲事的眼睛永远不会看到隐藏的文件。现在的问题是: 我不知道要使用什么bash指令(如果有)。我非常确定bash脚本几乎可以完成所有操作,所以请帮忙! 我不知道如何每隔xx秒或每分钟自动启动bash脚本。 我该怎么做?
10 bash  scripts  files  schedule 


1
从完成建议中选择特定结果
假设我在特定目录中有3个文件: abc.txt, aww.txt, ant.txt 如果我这样做:(cat a然后按Tab键查看选项),终端将显示3个文件名:abc.txt, aww.txt, ant.txt 通过在终端显示的结果中指定索引号,有什么方法可以选择第n个结果而不是输入? 类似于:cat a2获取第二个文件(aww.txt)?

3
如何用sed插入多行
我要添加这个 #this ##is my text 行前 the specific line 我试过了 sed -i '/the specific line/i \ #this ##is my text ' text.txt 但只会添加“文本”。 我也试图与不同的组合\和" ",但毫无效果。
10 bash  sed 

5
如何使用Shell脚本在gnuplot中执行命令?
我要做的是编写一个脚本,该脚本首先启动一个程序,然后告诉它执行一堆命令,然后退出。让我们举一个例子。 我写了这个脚本myscript.sh,它不能按我想要的方式工作。它只是在运行gnuplot并等待其退出,然后运行其他命令。显然会产生错误。 #!/bin/bash gnuplot plot sin(x) pause -1 quit 我想很清楚我要做什么。如果没有,请在评论中让我知道。

5
为什么注销后我的进程仍在运行?
登录后ssh,我在以下命令中输入以下命令bash: sleep 50000000000000 & 然后,我kill -9是sleep流程的父流程(即bash)。然后,终端窗口同时断开。 当我再次登录时,我发现该sleep过程仍然有效。 问题:为什么sleep我退出登录并关闭终端后,该过程仍然可以生存?在我看来,nohup注销过程中除守护程序和程序外的所有内容都会被杀死。如果sleep可以通过这种方式生存下来,是否意味着我可以使用此方法代替nohup命令?
10 bash 

1
在`chown -R` git超级慢之后
我有一个庞大的GIT项目,其中包含几个GIT子模块。对于项目中的每个文件,我都将拥有权(chown -r)递归更改root为用户。 现在,任何git命令都需要花费大量时间才能完成,并且似乎使用了99%的CPU。有什么问题 我做了 sudo chown -R my_user my_project/ 更新 这似乎不仅与GIT有关,其他终端命令也要花费很多时间。top向我显示了100%的git使用情况,持续了15秒,而不是通常的0-1秒。
10 bash  git  ownership 

2
用管道输入“类型”命令
我想找出几个命令的类型。在Linux中可以将管道或xargs搜索结果从管道传送find到type命令中吗? 例如: find . -name anacron | type 要么 find . -name anacron | xargs type

2
Shell脚本中的区分大小写
考虑以下Bash脚本: #!/bin/bash echo Enter any character read char case $char in [a-z]) echo Lower case letter ;; [A-Z]) echo Upper case letter ;; [0-9]) echo Number ;; ?) echo Special char ;; *) echo You entered more than one character ;; esac 如果输入“ a”,则输出为小写字母,与“ A”相同...如何克服这个问题?
10 bash  scripts 

2
在打印n行之后以tail -f结尾
我有以下几点。 一个Java进程在文件上写入日志 一个启动Java进程的shell脚本。 启动Java进程后,我需要阅读日志文件以检查启动是否正确。 我尝试过,tail -f但它永远附加。我需要tail在打印n行之后停止。上一条-n线有一种类似的选择吗?

1
如何临时删除代理设置?
我使用以下命令设置代理设置 export http_proxy=http://proxyusername:proxypassword@proxyaddress:proxyport 当我做 echo $http_proxy 我懂了 http://cavs@students:cavsuon@proxy.uonbi.ac.ke:80 但是当我这样做 unset $http_proxy 我得到一个错误 -bash: unset: `http://cavs@students:cavsuon@proxy.uonbi.ac.ke:80': not a valid identifier 所以我做了 $http_proxy = "" 这也给我以下错误 -bash: http://cavs@students:cavsuon@proxy.uonbi.ac.ke:80: No such file or directory 如何完全删除此代理设置?
10 bash  proxy 

2
如何根据是否连接了鼠标来切换触摸板?
我想在连接外部鼠标时自动禁用触摸板,在没有鼠标时启用它。我已经尝试使用过,touchpad-indicator但是如果计算机在连接​​了鼠标的情况下进入睡眠状态并且在断开鼠标的连接后被唤醒,则该操作将失败。 我试图将以下脚本制作成守护程序来解决此问题,但无法正常工作: #!/bin/bash declare -i TID declare -i MID TID=`xinput list | grep -Eo 'Touchpad\s*id\=[0-9]{1,2}' | grep -Eo '[0-9]{1,2}'` MID=`xinput list | grep -Eo 'Mouse\s*id\=[0-9]{1,2}' | grep -Eo '[0-9]{1,2}'` if [ $MID -gt 0 ] then xinput disable $TID else xinput enable $TID fi 我试过了 start-stop-daemon -S -x ./myscript.sh -b …
10 bash  xorg  touchpad 

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.