Questions tagged «bash»

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



1
如何将别名传递给sudo?
我试图把我的别名~/.bash_profile,~/.bashrc,/etc/profile,和/etc/bashrc。 我仍然无法执行以下操作: alias zf2="php public/index.php" 然后执行: sudo zf2 orm:info 问题似乎是我无法使用visudo将别名指定为命令,这会导致语法错误。 因此,我无法致电: sudo zf2 orm:info 但是,我能够在/ usr / share / scripts / zf2中创建一个脚本,其中包含: #!/bin/bash alias zf2="php public/index.php" zf2 $1 并将此脚本添加为visudo中的命令。当此脚本位于最终用户的PATH中时,我可以执行 zf2 orm:info 我有不同的别名zf2,需要向最终用户公开。我希望保留别名而不是脚本集合。
38 bash  sudo  alias 

1
Mac OS X中命令的重击完成
像在Ubuntu中一样,如何在键入命令时获取fink并macports自动完成程序名称apt-get? 例如当我输入 sudo port install ca 然后按tab,我希望终端自动完成或显示可用的命令。 sudo!之后,OS X甚至不会自动完成命令!

7
Bash:创建匿名FIFO
我们都知道mkfifo管道。第一个创建一个命名管道,因此必须选择一个名称,最有可能使用mktemp,后来记得取消链接。另一个创建了一个匿名管道,没有麻烦的名称和删除操作,但是管道的末端与管道中的命令绑定在一起,以某种方式掌握文件描述符并在其余部分中使用它们并不十分方便的脚本。在编译的程序中,我只想做ret=pipe(filedes);在Bash中有exec 5<>file这样的期望- "exec 5<> -"或者"pipe <5 >6"Bash中有类似的东西吗?
38 bash  script  pipe 

3
在Windows上以Bash访问可移动媒体
有没有办法从Windows上的Bash中访问可移动媒体(例如拇指驱动器或SD卡)? Windows上的Bash 使用DriveFs在/mnt文件夹中安装固定驱动器,但它不会自动挂载可移动媒体。它看起来不像是把它们放入/dev其中: Aaron@MYPC:/$ ls /dev block fd kmsg lxss null ptmx pts random shm stderr stdin stdout tty tty0 tty1 urandom zero 有没有办法安装可移动驱动器?有没有办法访问底层块设备?

7
在bash中,如何对带有数字的字符串进行排序?
如果我在目录中有这些文件 cwcch10.pdf cwcch11.pdf cwcch12.pdf cwcch13.pdf cwcch14.pdf cwcch15.pdf cwcch16.pdf cwcch17.pdf cwcch18.pdf cwcch1.pdf cwcch2.pdf cwcch3.pdf cwcch4.pdf cwcch5.pdf cwcch6.pdf cwcch7.pdf cwcch8.pdf cwcch9.pdf 如何在Bash中列出它们,以便它们基于字符串的数字部分以升序排列。因此,结果顺序为cwcch1.pdf, cwcch2.pdf, ..., cwcch9.pdf, cwcch10.pdf,等等。 我最终想要做的是将pdf与pdftk以下内容连接起来 pdftk `ls *.pdf | sort -n` cat output output.pdf 但这不起作用,因为我的排序是错误的。
37 linux  bash  sorting 

8
在命令行中杀死所有Chrome实例?
在某些情况下,杀死单个选项卡/进程无法做到这一点,我需要完全关闭Chrome。由于Chrome具有多个进程,如何才能一次关闭所有进程? 我知道... pgrep chrome返回所有的pid。有什么窍门可以让我通过将它们输入另一个命令或将它们合并到CSV文件或其他内容来关闭所有窗口?



8
在MacOSX中使用-e参数时,为什么不回显支持“ \ e”(转义)
当我尝试通过内置echo命令使用ANSI转义序列打印出一些彩色文本时,似乎\e我提供的字符串中的转义序列是按字面意义解释的,而不是它应该代表的“转义”。这仅在Snow Leopard中发生-以下示例按Leopard的预期工作。 显然echo支持该-e开关,因为它\n在使用时可以正确解释: ~ $ ~ $ echo "\n" \n ~ $ echo -e "\n" ~ $ 但是当我尝试使用时\e,我得到了: ~ $ echo -e "\e[34mCOLORS" \e[34mCOLORS ~ $ 就像我说的那样,在Leopard中,上述内容将为我提供字符串“ COLORS”(彩色)。 有人知道为什么这可能是预期的更改吗?在Snow Leopard上从Bash脚本打印ANSI转义序列的解决方法如何? 我的Leopard机器3.2.17(1)-release和3.2.48(1)-releaseSnow Leopard机器上的Bash shell版本都是。

3
bash_profile或bashrc中的环境变量?
我发现了这个问题[blog] :.bashrc和.bash_profile之间的区别非常有用,但是在看到投票率最高的答案之后(非常好),我还有其他问题。在投票最多的正确答案的结尾,我看到以下陈述: 请注意,您可能会在这里和那里看到将环境变量定义放入〜/ .bashrc或始终在终端中启动登录Shell的建议。两者都是坏主意。 为什么这是个坏主意(我不是想打架,只是想了解)? 如果我想设置一个环境变量并将其添加到PATH(例如JAVA_HOME)中,这将是放置导出条目的最佳位置?在〜/ .bash_profile或〜/ .bashrc中? 如果问题2的答案是〜/ .bash_profile,那么我还有两个问题: 3.1。你会在〜/ .bashrc下放什么?仅别名? 3.2。在非登录shell中,我相信〜/ .bash_profile没有被“拾取”。如果JAVA_HOME条目的导出位于bash_profile中,我可以执行javac和java命令吗?它会在PATH上找到它们吗?这就是为什么某些帖子和论坛建议将JAVA_HOME等设置为〜/ .bashrc的原因吗? 提前致谢。

4
Mac中Alt + Dot的等效项/替代项
我从Linux shell中错过的一件事是Alt + Dot快捷方式。它的作用是插入上一个命令的最后一个参数。这似乎是一项琐碎的技术,但确实很有用。 即,如果您输入以下内容: $ ls /Applications/MAMP/conf/apache/ 下次您只需键入命令+快捷方式,参数将为您完成。 $ cd 'alt+dot' 在Mac上,我知道2种替代方法。按Esc + Dot或使用魔术空间设置输入!$,!*。 但是,尽管这两种选择都确实插入了您使用的最后一个参数,但是它们无法像重复键入Alt + Dot一样在命令历史记录中向后滚动。 我现在可以使用此选项,但是我很想知道是否有人知道更好的方法。
36 linux  mac  bash  terminal  shell 

3
Bash Shebang的假人?
我有一些bash脚本,我的设置大部分使用 #!/bin/bash 但我经常遇到一些看起来像 #!/bin/bash -e #!/bin/bash -x #!/bin/bash -ex 等等。 有人可以解释这些shebang选项的含义和好处,以及它们是否适用于其他shebang?
36 bash  shell  script 


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.