Questions tagged «bash»

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

6
如何在bash脚本中同时获取PIPESTATUS和输出
我正在尝试使用此命令获取文件的最后修改日期 TM_LOCAL=`ls -l --time-style=long-iso ~/.vimrc | awk '{ print $6" "$7 }'` 执行此行后,TM_LOCAL的值类似于“ 2012-05-16 23:18” 我还想检查PIPESTATUS以查看是否有错误。例如,如果file不存在,则ls返回2。但是$?由于返回值为,所以其值为0 awk。 如果仅运行此命令,则可以通过查看以下内容检查ls的返回值: ${PIPESTATUS[0]} ls -l --time-style=long-iso ~/.vimrc | awk '{ print $6" "$7 }' 但是$PIPESTATUS,如果像第一个示例中那样将输出分配给变量,则不会按我预期的那样工作。在这种情况下,$PIPESTATUS数组只有1个元素,与$? 因此,问题是,如何同时获得两者$PIPESTATUS并将输出分配给变量?
9 bash  pipe 


2
从Cygwin Bash取消进程
有一种方法可以适当地从cygwin bash中取消进程吗? 例如我可以在后台运行 /cygdrive/c/Windows/notepad.exe & 和记事本窗口显示,但当我使用Ctrl + D或键入exit关闭bash时,bash窗口保持打开状态
9 bash  cygwin 

3
Cygwin .bashrc不是源,因为cygwin在Windows主页中启动
注意:请查看下面的第二篇文章,以获取有关该问题的更新。 直到上周,Cygwin一直为我工作得很好。现在,.bashrc尚未获得。我必须安装了某些东西或进行了更改,但是我不记得是什么引起了问题。当我启动Cygwin时,我在Windows主目录中,并且所有别名都无效。我必须手动获取.bashrc。以下是我的Cygwin.bat: @echo off C: chdir C:\cygwin\bin set CYGWIN=tty notitle glob bash --login -i 有任何想法吗? 编辑:我的.bash_profile包含以下内容, # source the users bashrc if it exists if [ -f "${HOME}/.bashrc" ] ; then source "${HOME}/.bashrc" fi EDIT2:重要!当我启动Cygwin时,它将在我的Windows主文件夹中启动。我尝试将.bash_profile和.bashrc放在此文件夹中,并且它们的来源正确!这意味着问题已减少到找出为什么Cygwin在Windows主文件夹而不是普通的Cygwin主文件夹中启动的原因。 EDIT3:运行grep Gulshan / etc / passwd /的结果 $ grep Gulshan /etc/passwd Administrator:unused:500:513:U-Gulshan-HP\Administrator,S-1-5-21-1235613160-4193452482-2032876723-500:/home/Administrator:/bin/bash Guest:unused:501:513:U-Gulshan-HP\Guest,S-1-5-21-1235613160-4193452482-2032876723-501:/home/Guest:/bin/bash Gulshan:unused:1000:513:U-Gulshan-HP\Gulshan,S-1-5-21-1235613160-4193452482-2032876723-1000:/home/Gulshan:/bin/bash
9 bash  cygwin  bashrc 

2
如何在Linux中批量重命名一组文件名?
我有一个文件夹,其图像名为: pic001-2.png pic002-2.png pic003-2.png 如何将它们重命名为以下内​​容? pic001.png pic002.png pic003.png 我已经尝试过了,mv "pic*-2.png" "pic*.png"但是不断出错。
9 bash  rename 


6
在tmux中运行时,vim中的按键混乱
我一直在玩tmux,我很喜欢它。但是,在其中运行vim时存在一个烦人的问题。 箭头键以某种方式被重新映射,但仅在某些时候才被映射,例如在启动Command-T时,如果我尝试向下滚动文件列表,则该命令将被取消,并且将进入插入模式,具体取决于箭头键按下时,插入了A,B,C或D。 例如,如果我使用箭头在缓冲区中移动,它们将正常工作。 有任何想法吗? 谢谢!
9 keyboard  bash  vim  tmux 


4
需要隐藏符号链接而不隐藏链接到的目录
我使用&创建了一个指向我的主文件夹中目录的符号链接(特别是符号链接,而不是bash无法跟随的Finder别名),ln -s link $HOME/directory现在我希望在Finder中隐藏该链接,因此不必查看它。通常,我会用它chflags hidden link来完成此操作,但是当然会影响目录,而不是链接。我不能使用标准的前导点,因为链接本身的名称对于寻找它的应用程序很重要,而前导点会更改名称。 所以我的问题是,如何隐藏符号链接而不隐藏其链接到的目录或更改其名称? 编辑:我故意使我的问题含糊不清,因为这是使用Finder进行的一个小实验,但是这里有一些更多的细节来明确说明我要做什么。 Finder将$ HOME / Desktop文件夹用于桌面本身,只要是$ HOME目录中的链接,别名还是完全不同的文件夹“ Desktop”(例如主文件夹本身)就没有关系。 。 我做了一个指向我的主目录“ Desktop”的符号链接,以便用我的主文件夹的内容填充Finder桌面的内容(如果尝试此操作,除非再次登录,否则它不会生效。在10.6上)。当然,这也将符号链接放置在我的桌面上,而我既不想在Finder窗口中看到它,也不想在桌面上看到它。如果我将其重命名为“ .Desktop”以隐藏它,它将隐藏,但我的主文件夹和桌面之间的链接也将断开。

3
重定向输出时如何设置特定文件权限?
这可能是重复的,但我的所有搜索都提出了有关权限被拒绝错误的问题。 我在bash shell中运行命令。我想重定向输出以追加到第一次运行时可能不存在的文件。如果输出重定向必须创建此文件,我想设置特定的文件权限模式。有没有办法用一个命令来做到这一点? 例如,我可能会尝试 foo >> /tmp/foo.log 0644 哪里 0644 是我想要的权限 foo.log 结束。我在bash中尝试过的大多数命令最终都会解释 0644 作为一个额外的论据 foo。 我觉得这将是第二个命令 chmod 写入之前或之后的权限。 我正在使用GNU bash 4.2.25和Ubuntu 12.04,如果这有所不同 - 一般答案是首选。



1
终端中显示未知的系统名称
我一直在通过团队查看器与外部开发人员一起进行一些命令行工作,以便与CL交互,我使用OSX上的终端,与开发人员一起工作时,我一直在观察他们在做什么,并且我还拥有所有的bash历史记录。 通常在打开终端时我会得到这样的东西 Last login: Tue Sep 17 21:33:02 on ttys001 You have mail. unknown-5c:00:00:00:00:00:~ sam$ (请注意,我把最后一行中的某些字符替换为00) 但是今天,当我打开终端,我得到了这个 Last login: Mon Oct 21 16:49:35 on ttys000 You have mail. richies-ipad:~ sam$ 注意它现在说的是richies-ipad-为什么知道这是为什么?我不知道有谁叫Richie,更不用说让他们访问我的机器了。这是否值得担心-某人有足够的权限来更改它? 重新启动机器后,我得到这个 Last login: Tue Oct 22 17:15:51 on console You have mail. richies-ipad:~ sam$ 注意richies-ipad仍然存在。 顺便说一句,这是在我的本地计算机上。 另外ttys001,第一行的部分是什么意思?
8 macos  bash  terminal 

4
bash:在cron作业中使用scp失败,但是从命令行运行时成功运行
我试图在cron运行的bash脚本中使用scp(我在Ubuntu 10.0.4 LTS上运行此脚本)。 该脚本运行良好(例如,当我从命令行运行该脚本时,将文件1和文件2传输到远程服务器并从远程服务器复制文件1和文件2。但是,当我将脚本作为cron作业运行时,它会失败。 脚本如下所示: #!/bin/bash cd /home/oompah/scripts/tests/ scp -P 12345 file1 oompah@someserver.com:~/uploads if scp -P 12345 oompah@someserver.com:/path/to/file2.dat local.dat >&/dev/null ; then echo "INFO: transfer OK" ; else echo "ERROR: transfer failed" ; fi 当我将其作为cron作业运行时,收到的错误消息(重定向到日志文件)是: ERROR: transfer failed 我发送到我的邮件收件箱的错误消息是: Permission denied (publickey). lost connection 为什么会发生,如何解决? [编辑] 我用-i命令(如M Jenkins的建议)修改了第一个scp命令,还为调试消息添加了-v。这是完整的调试消息日志。希望它可以阐明正在发生的事情: Executing: program …
8 ubuntu  bash  ssh  cron  scp 

2
Windows上的Ubuntu上的Bash(10)-无法连接到Upstart
使用具有“ Windows上的Ubuntu上的Bash”支持的新Windows Beta发行版运行Ubuntu 14.04.4 LTS发行版(Trusty)。我在运行需要新贵的服务时遇到问题。即: [15:08 root@localhost ~] > start ttyS0 [15:08 root@localhost ~] > start: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: No such file or directory. 看起来新贵守护进程根本没有运行。我已经检查了upstart / var / log / upstart /的日志文件位置,尽管/ etc / init /中有许多upstart配置文件,但那里没有文件。我一直找不到有关如何手动启动/重新启动upstart守护程序本身的任何信息。 感谢您的任何提前帮助。

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.