标签: osx

如何更改我的 bash 提示以显示我的工作目录?

我可以像这样打印我当前的工作目录

myPrompt$ pwd
/Users/me/myDir
Run Code Online (Sandbox Code Playgroud)

我希望我的外壳看起来像这样

/Users/me/myDir$ pwd
/Users/me/myDir
Run Code Online (Sandbox Code Playgroud)

那可能吗?我该怎么做?

osx bash prompt

51
推荐指数
2
解决办法
14万
查看次数

为什么不能从 OSX 上的 /dev/urandom 读取 tr?

一位同事建议通过以下命令创建一个随机密钥:

tr -dc A-Za-z0-9_\!\@\#\$\%\^\&\*\(\)-+= < /dev/urandom | head -c 32 | xargs
Run Code Online (Sandbox Code Playgroud)

它给了我错误:

tr:非法字节序列

我担心/dev/urandom我的系统上没有。我试着用谷歌搜索找出如何安装这个文件,但我发现是空的。我试过了locate urandom,结果也是空的。(实际上,它找到了手册页,但这无济于事)

如何urandom在我的 Mac OSX 系统上使用?(狮子)

osx random tr

50
推荐指数
3
解决办法
3万
查看次数

git diff 显示颜色不正确

为了从所有 git 命令获得彩色输出,我设置了以下内容:

git config --global color.ui true
Run Code Online (Sandbox Code Playgroud)

但是,这会产生这样的输出git diffgit log

git diff 截图

而像git status显示正常这样的命令

git 状态截图

为什么仅在某些命令中无法识别转义的颜色代码,我该如何解决?

xterm-256color在 OS X 10.8.2 和 zsh 上使用 iTerm 2(终端类型)作为我的外壳

zsh --version
zsh 5.0.0 (x86_64-apple-darwin12.0.0)

git --version                                                                                                                      
git version 1.7.9.6 (Apple Git-31.1)
Run Code Online (Sandbox Code Playgroud)

osx colors pager git

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

为什么默认情况下 OSX 登录 shell 上有交互式 shell?

在 Linux 中,据我所知,在所有 Unix 系统中,终端模拟器默认运行交互式、非登录 shell。这意味着,对于 bash,启动的 shell 将:

当启动非登录 shell 的交互式 shell 时,bash 会从/etc/bash.bashrc和读取并执行命令~/.bashrc(如果这些文件存在)。这可以通过使用--norc 选项来禁止 。

--rcfile 文件选项将强制bash读取和文件,而不是执行命令/etc/bash.bashrc~/.bashrc

对于登录 shell:

当 bash 作为交互式登录 shell 或作为具有--login选项的非交互式 shell 调用时,它首先从文件中读取并执行命令/etc/profile(如果该文件存在)。读取该文件后,它会按该顺序查找~/.bash_profile~/.bash_login、 和~/.profile,并从第一个存在且可读的命令中读取和执行命令。

--noprofile当 shell 启动时可以使用该选项来禁止这种行为。

在OSX上,但是,默认壳(这是bash)的开始在缺省终端(Terminal.app)实际上源~/.bash_profile~.profile等等。换句话说,它的作用就像一个登录shell。

主要问题:为什么默认的交互式 shell 是 OSX 上的登录 shell?为什么 OSX 选择这样做?这意味着所有提及更改内容的基于 shell 的内容的说明/教程~/.bashrc在 OSX 上都将失败,反之亦然~/.profile。尽管如此,尽管可以对 Apple 提出许多指控,但雇用无能或愚蠢的开发人员并不是其中之一。据推测,他们有充分的理由这样做,那为什么呢?

子问题:Terminal.app 是否真的运行了一个交互式登录 shell …

osx bash

50
推荐指数
3
解决办法
2万
查看次数

find &amp; sed(搜索和替换)

我在我的 mac 上使用以下命令:

$find . -name “*.java” -exec sed -i ’s/foo/bar/g’ {} \;
Run Code Online (Sandbox Code Playgroud)

而且似乎没有效果。

我在目录中有两个以 .java 结尾的文件,它们都包含 foo 文本。我错过了什么吗?

编辑:征求意见的结果

[aafghani-03:~/test amirafghani]$ find . -name "*.java" -exec sed -i 's/foo/bar/g' {} \;
sed: 1: "./bar.java": invalid command code .
sed: 1: "./foo.java": invalid command code .
Run Code Online (Sandbox Code Playgroud)

osx sed find

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

find -delete 不删除非空目录

命令

$ find ~ -name .DS_Store -ls -delete
Run Code Online (Sandbox Code Playgroud)

适用于 Mac OS X,但

$ find ~ -name __pycache__ -type d -ls -delete
Run Code Online (Sandbox Code Playgroud)

没有 - 找到目录但未删除。

为什么?

附注。我知道我能做到

$ find ~ -name __pycache__ -type d -ls -exec rm -rv {} +
Run Code Online (Sandbox Code Playgroud)

问题是,为什么 find -delete工作。

osx find

46
推荐指数
2
解决办法
3万
查看次数

运行 dd。为什么资源很忙?

我刚刚格式化了microSD卡,想运行一个dd命令。不幸的是dd命令失败:

$ sudo dd bs=1m if=2016-02-26-raspbian-jessie-lite.img of=/dev/rdisk2
dd: /dev/rdisk2: Resource busy
$
Run Code Online (Sandbox Code Playgroud)

互联网上的每个人都说我需要先卸载磁盘。当然,可以做到这一点并继续前进。但我想了解为什么/在 OS X 中究竟是什么让设备忙碌?我该如何诊断?

到目前为止,我尝试过:

  1. 列出打开的文件:

    $ lsof /dev/disk2
    $ lsof /dev/disk2s1
    $
    
    Run Code Online (Sandbox Code Playgroud)

    还:

    $ lsof /Volumes/UNTITLED
    $
    
    Run Code Online (Sandbox Code Playgroud)
  2. 列出处理文件的用户:

    $ fuser -u /dev/disk2
    /dev/disk2: 
    $ fuser -u /dev/disk2s1 
    /dev/disk2s1:
    $
    
    Run Code Online (Sandbox Code Playgroud)

    还:

    $ fuser -u /Volumes/UNTITLED
    $
    
    Run Code Online (Sandbox Code Playgroud)
  3. 检查系统消息:

    $ sudo dmesg | grep disk
    $
    
    Run Code Online (Sandbox Code Playgroud)

    还:

    $ sudo dmesg | grep /Volumes/UNTITLED
    $
    
    Run Code Online (Sandbox Code Playgroud)

我的环境

  1. 操作系统:

    Darwin Eugenes-MacBook-Pro-2.local 15.3.0 Darwin Kernel Version 15.3.0: Thu …
    Run Code Online (Sandbox Code Playgroud)

osx dd resources sd-card

45
推荐指数
2
解决办法
8万
查看次数

Mac OS X 来自哪里?

与 Mac 用户讨论后,我得到了几个版本的 Mac OS X 来源。众所周知,在 BSD 中有一些根,但是有多少,在哪里?

有人说 Mac OS X 有一个 FreeBSD 内核,上面的所有实用程序使它成为特定于 Mac 的操作系统。(这里不讨论用户应用程序,只讨论所有的initlscd、 和其他人。binutils?

其他人说 Mac OS X 是 Darwin 内核,即纯 Mac,并且 OS 实用程序来自 BSD。

真相在哪里?

osx freebsd bsd

43
推荐指数
2
解决办法
3万
查看次数

是什么让 OSX 程序无法在 Linux 上运行?

我知道 OSX 和 Linux 之间有很多区别,但是是什么让它们如此完全不同,以至于它们根本不兼容?

linux osx compatibility executable

42
推荐指数
3
解决办法
2万
查看次数

如果文件不存在,Shell 脚本会创建一个文件吗?

我需要创建一个 shell 脚本来检查文件是否存在,如果文件不存在,则创建它并继续执行下一个命令,或者只是继续执行下一个命令。我所拥有的不会那样做。

#!/bin/bash

# Check for the file that gets created when the script successfully finishes.
if [! -f /Scripts/file.txt]
then
: # Do nothing. Go to the next step?
else
mkdir /Scripts # file.txt will come at the end of the script
fi

# Next command (macOS preference setting)
defaults write ...
Run Code Online (Sandbox Code Playgroud)

回报是

line 5: [!: command not found
mkdir: /Scripts: File exists
Run Code Online (Sandbox Code Playgroud)

不知道该怎么办。谷歌搜索给我带来的每个地方都表明了一些不同的东西。

osx bash shell-script

41
推荐指数
4
解决办法
13万
查看次数

标签 统计

osx ×10

bash ×3

find ×2

bsd ×1

colors ×1

compatibility ×1

dd ×1

executable ×1

freebsd ×1

git ×1

linux ×1

pager ×1

prompt ×1

random ×1

resources ×1

sd-card ×1

sed ×1

shell-script ×1

tr ×1