AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 747302
Accepted
Vladimir
Vladimir
Asked: 2023-05-28 07:46:59 +0800 CST2023-05-28 07:46:59 +0800 CST 2023-05-28 07:46:59 +0800 CST

.shrc 和 .profile 有什么区别?

  • 772

我想在 FreeBSD 上试用 Bourne shell,所以我开始设置它供我使用。

在 中.shrc,我设置了提示符,启用了 vi 模式,设置了一些别名,并导出了一些变量。

但是,我看到.profile默认情况下也会导出一些变量。

据我了解,Bourne shell 将.profile在每次启动时提供源代码。.shrc如果是这样,同时拥有和的(历史)原因是什么.profile?

shell-script
  • 1 1 个回答
  • 48 Views

1 个回答

  • Voted
  1. Best Answer
    JdeBP
    2023-05-29T01:19:37+08:002023-05-29T01:19:37+08:00

    最接近 Bourne shell 的东西是 OpenSolaris 的 Heirloom Bourne shell,它不是真正的开源程序,现在几乎没有任何操作系统,它位于 FreeBSD ports 集合中(通常安装在 下shells/heirloom-sh)/usr/ports。

    请注意,这不是 sh。 那是 FreeBSD 上的 Debian Almquist shell(略有改动的版本)。

    Heirloom Bourne shell 安装为jsh. 这没有任何关系~/.shrc。它仅来源~/.profile,并且仅当它作为登录 shell 调用时才来源。它来源的唯一其他文件是/etc/profile.

    Bourne shell 并没有后来发展起来的所有这些复杂性,有很多不同的文件。具有讽刺意味的是,正是 C shell,最初是 BSD 的最爱,开启了所有这些其他rc 文件的趋势。

    Heirloom Bourne shell 并不完全是Bourne shell。例如,它有作业控制命令;Bourne shell 没有,因为它是为没有这种东西的操作系统编写的。OpenSolaris 历史上发生的一些变化意味着这不是原来的 Bourne shell。正如我所说,现在任何操作系统都无法做到这一点;甚至在商业 Unices 上,人们也会从大约 1980 年代后期开始获得 Bourne shell 的更新版本,添加新的 System 5 Release 4 内容,就像这个一样。

    那么,为什么您声称~/.shrc它适用于 Bourne shell 并在评论中指向 sh(1) 手册页?

    基本上,该评论是一个谎言。

    sh在 FreeBSD 和 NetBSD 上是 Almquist shell,FreeBSD 使用Debian Almquist shell的轻微改动版本,这反过来又是 Debian 人员在 21 世纪之交所做的 NetBSD Almquist shell 的轻微改动。

    如果您查看 sh(1) 手册,它会告诉您它是 Kenneth Almquist 编写的 shell,而不是 Stephen R. Bourne 编写的 shell。如果您想试用 Bourne shell,那么sh在 FreeBSD 上运行对您一点帮助都没有。

    该手册还告诉您如何手动设置您的~/.profile交互式 Almquist shell 源文件~/.shrc。这在 Almquist shell 中默认情况下不会发生,这~/.shrc不是标准的事情。

    ~/.shrc只是一个常规文件,/usr/share/skel/当您的主目录由pw useradd. 作为标准,它实际上并没有为任何 shell 做任何事情。

    如果您想尝试一些非常深奥的东西,甚至比 Heirloom Bourne shell 更深奥,FreeBSD 甚至可以使用 Thompson shell,就像shells/osh在 ports 中一样。

    在抓手方面,我可以建议尝试和学习 Almquist shell,而不是(或至少之前)尝试和学习 Heirloom Bourne shell。知道它更有用,因为#!/bin/shFreeBSD 上的所有脚本当然都使用它。

    端口中的Watanabe shellshells/yash是另一个值得体验的。Watanabe 和 Debian Almquist shell 最接近仅具有符合 POSIX 的 shell 行为子集的感觉,尽管它们都具有非标准的emacs命令行编辑模式。☺

    • 1

相关问题

  • 在awk中的两行之间减去相同的列

  • 打印文件行及其长度的脚本[关闭]

  • 通过命令的标准输出以编程方式导出环境变量[重复]

  • 按分隔符拆分并连接字符串问题

  • MySQL Select with function IN () with bash array

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve