标签: bash

如何使用“ls -l | more”获取颜色?

ls -l 给我颜色编码的输出。文件夹是蓝色的,可执行文件是绿色的,等等。这些颜色在彻底过滤时消失了| 更多的。无论如何要实现分页输出和颜色?

bash ls

7
推荐指数
1
解决办法
3839
查看次数

将 Linux 符号链接转换为 Windows 符号链接

我注意到 Linux 符号链接在 Windows 中不起作用,反之亦然。有什么方法可以将 Linux 符号链接转换为 Windows 符号链接?具体来说,我想将相对 Linux 符号链接转换为相对 Windows 符号链接(以防带有符号链接的文件夹存储在闪存驱动器上,或从 Linux 文件系统复制到 Windows 文件系统)。

windows linux bash symbolic-link cross-platform

7
推荐指数
1
解决办法
6928
查看次数

无法在 OS X bash 上分配给 PS1

我正在尝试进行设置,PS1以便在 git 上显示分支名称:

user.name:some/repo (master) $

但是,我所做的一切似乎都不起作用。即使我只是尝试PS1直接分配给,它也不起作用:

user.name:~ $ echo $PS1
\u:\w $
user.name:~ $ PS1='oh yeah'
user.name:~ $ echo $PS1
\u:\w $
Run Code Online (Sandbox Code Playgroud)

难道我做错了什么?我没有设置这个 var 的权限吗?我有语法错误吗?

我在 Mac OS X 10.8 上。

我也试过:

user.name:~ $ echo $PS1
\u:\w $
user.name:~ $ export PS1='oh yeah'
user.name:~ $ echo $PS1
\u:\w $
Run Code Online (Sandbox Code Playgroud)

以供参考:

user.name:~ $ $SHELL --version
GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin12)
Copyright (C) 2007 Free Software Foundation, Inc.
Run Code Online (Sandbox Code Playgroud)

显然PS1是只读的。有趣的。

user.name:~ $ readonly PS1
-bash: PS1: …
Run Code Online (Sandbox Code Playgroud)

bash osx-mountain-lion

7
推荐指数
1
解决办法
2082
查看次数

为什么在 Mac 中加载 .bash_profile 返回错误代码 1

每当我打开 bash 终端时,都会返回错误代码 1:

Last login: Tue Jan 15 16:19:53 on ttys000
spam@moss:~ $ echo $?
1
Run Code Online (Sandbox Code Playgroud)

我发现这是由我的最后一行代码引起的.bash_profile

test -f $HOME/.debug && export profile_bash_profile='.bash_profile' || return 0
Run Code Online (Sandbox Code Playgroud)

如果删除此行,则返回错误代码 0。我不明白这一行是如何引起任何问题的,因为我可以.bash_profile使用错误代码 0:

spam@moss:~ $ source .bash_profile
spam@moss:~ $ echo $?
0
Run Code Online (Sandbox Code Playgroud)

更新:

有谁知道 Mac 是如何加载 ~/.bash_profile 的?当登录外壳启动时,我怀疑 Mac 的来源。该return命令似乎没有按预期运行 - 当我将其return 5作为最后一行~/.bash_profile并启动登录 shell 时,它不会返回错误代码 5(我确定~/.bash_profile是加载的最后一个脚本)。

mac bash .bash-profile

7
推荐指数
2
解决办法
2313
查看次数

制作自定义的单字符目录映射,如 ~ > $HOME

我们都知道~映射到$HOME/home/user

是否可以在其他字符(@,_)上进行这样的其他映射?

我想到的一种可能的解决方法是使用变量(至少需要两个字符)...

H=/run/media/user/Storage
cp $H/file.txt .
Run Code Online (Sandbox Code Playgroud)

但是有更好的方法吗?

linux bash

7
推荐指数
1
解决办法
268
查看次数

从命令行打开远程 git 存储库

我在 Mac 上使用 git,我想知道是否有命令可以从终端在浏览器中打开远程存储库(源)。

bash git macos

7
推荐指数
3
解决办法
4761
查看次数

我删除了别名文件,但别名仍在我的 bash 会话中 - 如何恢复它们?

我定义了大量别名并且我一直在使用它们。我现在打开了一个终端会话,其中所有别名都有效且有效。但是,定义它们的 .bash_aliases 文件已被删除。如何从终端会话扩展或恢复我的别名?

terminal bash alias

7
推荐指数
1
解决办法
371
查看次数

shell 脚本 - 如何在没有文件夹本身的情况下压缩文件夹中的内容?

我使用此当前命令将文件夹“folder-root”及其所​​有内容存档到名为“site.zip”的文件中:

zip -r site.zip folder-root/*
Run Code Online (Sandbox Code Playgroud)

问题是 - 我想压缩文件夹的内容而不是文件夹本身。注意:我必须从当前目录发出命令(即 - 不能从文件夹内部发出它)。

我怎么做?

zip bash shell

7
推荐指数
1
解决办法
2万
查看次数

如何从 Git 的 Windows 安装程序附带的 Git Bash 终端中取消/分离进程?

我想从终端(主要是 Python 服务器)运行命令并基本上对它们进行守护进程。我正在运行 Git 的 Windows 安装程序附带的 MinGW 终端“Git Bash”。

尝试过但不起作用的事情:

  • nohup -> 找不到命令
  • setid -> 未找到命令
  • $ script.py & -> 行为不符合预期
  • $ script.py & disown -> 行为不符合预期

我会使用bg,但我的最终目标是在我的服务器全部运行后关闭终端而不是终止进程。

windows bash git mingw git-bash

7
推荐指数
1
解决办法
7337
查看次数

Linux/Bash,如何在 FIFO 队列中调度命令?

我希望能够安排在 FIFO 队列中运行的命令。我不希望它们像“at”命令那样在将来的指定时间运行。我希望它们现在就开始运行,但不是同时运行。只有在第一个命令完成执行后,才应运行队列中的下一个计划命令。或者,如果我可以指定队列中可以同时运行的最大命令数,那就太好了;例如,如果同时命令的最大数量为 2,那么队列中最多只有 2 个调度命令会以 FIFO 的方式从队列中取出来执行,剩余队列中的下一个命令仅在以下命令中的一个时开始当前 2 个正在运行的命令完成。

我听说 task-spooler 可以做这样的事情,但是这个包似乎没有得到很好的支持/测试,并且不在 Ubuntu 标准存储库中(我正在使用 Ubuntu)。如果这是最好的选择,那么请告诉我,我将使用 task-spooler,否则,我有兴趣找出使用 bash 执行此类操作的最佳、最简单、经过最多测试、无错误、规范的方法是什么。

更新:

简单的解决方案,如;或 bash 中的 && 不起作用。当事件发生时,我需要从外部程序安排这些命令。我只是不想让我的命令的数百个实例同时运行,因此需要一个队列。有一个外部程序可以触发事件,我可以在其中运行我自己的命令。我想处理所有触发的事件,我不想错过任何事件,但我也不希望我的系统崩溃,所以这就是为什么我想要一个队列来处理我从外部程序触发的命令。

bash scheduling queue scheduled-tasks

7
推荐指数
1
解决办法
1万
查看次数