Questions tagged «bash»

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

1
覆盖与系统命令同名的用户定义函数
此功能存在于我的用户的〜/ .bashrc中: function rm() { ls $* echo "rm?" read ans if [ "$ans" == 'y' ]; then /bin/rm $* fi } 在需要用户运行的ksh脚本中,我有这样一行: [[ "$KEEP" = "" ]] && \rm $FILE 虽然反斜杠转义了用户定义的别名,但是它不会阻止脚本运行具有相同名称的用户定义函数。结果,调用了我用户的rm()函数,而不是系统函数。 我发现了这个超级用户的问题和答案,但是解决方案仅适用于内置函数,而不适用于系统命令。 什么是最好的方法来执行rm命令而不是别名或函数?我是否必须指定rm的完整路径,并确保要正确执行的每个系统命令?有没有更好的办法?
14 bash  alias  bashrc  ksh 

5
除了删除文件和文件夹,还有其他类似scp的命令吗?
我正在使用scp将内容复制到远程位置。但是有时scp不能按预期工作,我发现有时副本无法正确完成(可能是在将新文​​件添加到要复制的文件夹中时)。 因此,我想先删除远程文件夹,然后再进行复制以确保完全拥有所需的文件。 还有其他类似scp的命令(例如srm或smv)吗?还是有办法删除远程文件夹和文件?
14 bash  ssh  scp 

7
将ID3标题标签设置为等于MP3文件名
有没有人得到一个bash脚本,该脚本将通过媒体库并将每个MP3文件的id3标题标签设置为与文件名相同? 我也欢迎其他自动化方法。它可以是GUI应用程序,也可以是可以自动完成工作的任何东西。 EasyTag方法在此处注明:如何在mp3 ID3文件中重命名批量标题标签 -不幸的是,我不明白这些步骤。
14 linux  bash  script  id3 

14
脚本:在XML文件的标签中提取值最简单的方法是什么?
我想读取pom.xml(Maven的“项目对象模型”)并提取版本信息。这是一个例子: <?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.mycompany</groupId> <artifactId>project-parent</artifactId> <name>project-parent</name> <version>1.0.74-SNAPSHOT</version> <dependencies> <dependency> <groupId>com.sybase.jconnect</groupId> <artifactId>jconnect</artifactId> <version>6.05-26023</version> </dependency> <dependency> <groupId>joda-time</groupId> <artifactId>joda-time</artifactId> <version>1.5.2</version> </dependency> <dependency> <groupId>com.sun.jdmk</groupId> <artifactId>jmxtools</artifactId> <version>1.2.1</version> </dependency> <dependency> <groupId>org.easymock</groupId> <artifactId>easymock</artifactId> <version>2.4</version> </dependency> </dependencies> </project> 如何从上方提取版本“ 1.0.74-SNAPSHOT”? 希望能够使用简单的bash脚本sed或awk做到这一点。否则,首选简单的python。 编辑 约束 linux盒位于公司环境中,因此我只能使用已经安装的工具(不是我不能请求xml2之类的实用程序,但是我必须经过很多繁文ta节)。一些解决方案非常好(已经学习了一些新技巧),但是由于环境受限,它们可能不适用 更新的xml清单 我将依赖项标签添加到原始列表中。这将显示某些hacky解决方案在这种情况下可能无法正常工作 发行版 我正在使用的发行版是RHEL4
14 linux  bash  unix  python  xml 

5
退出后如何用以前的bash活动替换vim屏幕缓冲区?
我试图找出什么是bash(或vim)功能。这是场景。我在bash终端中,然后用vim编辑一些内容,然后返回bash。在某些终端中,vim会话屏幕消失,以显示先前的bash shell活动(这就是我想要的?)。 在其他情况下,vim会话屏幕缓冲​​区仍然保留(隐藏了旧的bash shell活动)。我将不得不清除屏幕,或者等到我的bash活动将vim会话缓冲区推出屏幕。 如何控制此行为,以将Vim会话缓冲区替换为以前的bash活动? 谢谢蒂姆
14 bash  vim 



1
如何在bash中转义“-”
这个问题已经在这里有了答案: 7年前关闭。 可能的重复: Unix工具:如果文件名减去某物怎么办? 请告诉我如何避免这种情况: [root @ unix〜]#./-sh -bash:./-sh:权限被拒绝 [root @ unix〜]#chmod + x -sh chmod:无效模式:-sh 尝试使用“ chmod --help”以获得更多信息。 [root @ unix〜]#

11
每个目录的bash / zsh历史记录日志文件
我发现我在固定目录中的项目上做了很多工作。有时-几个月后-我需要在该项目上重做一些事情,但我不记得自己做了什么。我使用mercurial或git跟踪文件更改,但我希望能够记住在该目录中发出的命令。 搜索我的shell历史记录不是很有帮助。我已经将所有内容都记录到了我的。* _ history文件中,但是我想要列出我在〜/ foo / bar中所做的事情的列表,而不是那一周我所做的所有其他(百万次)事情。我什至可能都不记得我上个月从事那个特定项目了。 有谁知道我使用过的所有shell命令的项目目录日志文件如何?我正在设想一个类似的命令: 我的项目 ...这会将外壳程序日志文件设置为〜/ myproject / .history.log,从该日志文件加载以前的历史记录,并可能更新提示以告诉我正在使用的目录(例如vcprompt以提供版本)控制信息)。 那里有什么东西吗?
14 linux  bash  shell  history  zsh 

2
在不继承父级环境的情况下运行命令
有没有办法在新的登录会话中“好像”运行命令? 我已经尝试过了env -i。但是,我不想处理必须设置或取消设置的各种ENV变量。 我也尝试了bash -c "some command"和bash -l -c "some commmand",但是它们都复制了当前环境。 最接近的是贫民窟解决方案: ssh me@localhost "some command"
14 bash  shell  session 


5
为什么“ whereis”和“哪个”不显示命令位置?
命令喜欢whereis或which不显示命令位置的原因是什么?例如,我有nvm并想知道它的位置,但是这些命令都不能帮助我找到二进制文件。我应该只find在这种情况下使用吗? 更新 这是的长输出 type nvm $ type nvm nvm is a function nvm () { if [ $# -lt 1 ]; then nvm help; return; fi; local uname="$(uname -a)"; local os=; local arch="$(uname -m)"; case "$uname" in Linux\ *) os=linux ;; Darwin\ *) os=darwin ;; SunOS\ *) os=sunos ;; FreeBSD\ …
14 bash 

1
一个sudo用于多个终端
Sudo根权限是在特定时间给出的,但仅用于一个终端。如果要在该时间段内在另一个终端中使用sudo,则必须再次输入密码。如何强制sudo跨终端工作?
14 bash  shell  sudo 

1
如何在bash脚本中切换/更改用户ID以在同一脚本中执行命令?
有没有一种方法可以在脚本内切换用户身份(在安装过程中作为根用户执行),以执行某些命令而无需调用外部脚本,然后返回root运行其他命令? 有点: #!/bin/bash some commands as root SWITCH_USER_TO user some commands as user including environment variables checks, without calling an external script SWITCH_USER_BACK some other stuff as root, maybe another user id change...

3
同时复制和chmod / chown
我有一个日志文件root,我想将其复制到另一个用户的目录中,以供他分析(必须先将其解压缩)。 目前,我不得不 # cp log.xz /home/user/Documents # chown user:user /home/user/Documents/log.xz 有没有一种方法可以同时发出两个命令,也许有一个或多个cp选项?
14 linux  bash 

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.