bash脚本中‘-b -u -p’‘$# -eq’‘#!/bin/bash’‘sed -i “s/\r//“ $1’的用法说明

bash 复制代码
#!/bin/bash

#!/bin/bash: 这是 Bash 脚本的开头,指定了要使用的解释器,即 Bash。

bash 复制代码
if [ $# -eq 0 ]; then

if [ $# -eq 0 ]; then: 检查脚本是否被调用时提供了参数。$# 表示参数的数量,-eq 0 表示等于 0,即无参数。

bash 复制代码
echo "please xxx"

echo "please xxx": 输出提示信息,用法类似于print()/printf()

bash 复制代码
sed -i "s/\r//" $1

sed -i "s/\r//" $1: 使用 sed 命令将参数(文件名)中的 Windows 格式的换行符(^M)替换为空字符,从而去除它们。

  • $1 表示第一个参数,即文件名;
  • sed: 是一个流编辑器,用来处理文本流;
  • -i: 这个选项表示直接修改文件内容,而不是在标准输出上显示结果;
  • "s/\r//": 这是替换的操作模式
    s 表示替换;
    /\r// 表示将 \r(Carriage Return,回车符)替换为空字符,即删除回车符。
  • ^M : 表示回车符(Carriage Return),它在文本文件中通常以 \r 表示。
    Unix/Linux 系统中,换行通常由换行符LF\n)表示,而在 Windows 系统中,则是由回车符换行符CRLF\r\n)组成。
    但在 Unix/Linux 系统中查看由 Windows 系统创建的文本文件时,你可能会看到 ^M 字符,它是回车符的显示方式。
bash 复制代码
bash ~/test/miniconda.sh -b -u -p ~/miniconda3
  • ~/test/miniconda.sh:指定了 Miniconda 安装脚本的路径。
  • -b:这个选项代表"批处理模式(batch mode)",意味着安装程序将在不需要用户交互的情况下运行。
  • -u:这个选项代表"更新(update)",如果发现已有安装,则更新它。
  • -p ~/miniconda3:指定了 Miniconda 的安装目录。
bash 复制代码
~/miniconda3/bin/conda init bash
  • 这行命令用于初始化bash shell以使miniconda可用。执行此命令后,miniconda相关的路径将会添加到bash的配置文件中,以便在每次打开终端时自动启用miniconda
bash 复制代码
~/miniconda3/bin/conda init zsh
  • 这行命令用于初始化zsh shell以使miniconda可用。执行此命令后,miniconda相关的路径将会添加到zsh的配置文件中,以便在每次打开终端时自动启用miniconda
  • zshz shell)是一种命令行解释器(shell),类似于 bash shell,但具有更丰富的功能和配置选项。zshUnix 系统中的一种交互式 shell,它是 bourne shellsh)的扩展和改进版本。
  • zsh 提供了许多强大的特性,包括:
    • 丰富的自动补全功能zsh 提供了强大的自动补全功能,可以根据命令、文件路径、变量等自动补全输入,极大地提高了命令行的使用效率。
    • 可定制性强zsh 允许用户通过配置文件(例如 ~/.zshrc)来定制 shell 的外观、行为和功能。用户可以轻松地配置提示符、别名、函数、键绑定等。
    • 模块化zsh 支持模块化加载功能,可以通过插件来扩展其功能,例如安装 oh my zsh 等框架可以快速扩展 zsh 的功能。
    • 强大的历史记录功能zsh 提供了更强大和灵活的历史记录功能,例如通过模糊搜索快速检索历史命令。
    • 拓展性:zsh 支持扩展功能,可以编写自定义插件、主题和功能模块,以适应个人需求和习惯。
bash 复制代码
# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).

if [ "${PS1-}" ]; then
  if [ "${BASH-}" ] && [ "$BASH" != "/bin/sh" ]; then
    # The file bash.bashrc already sets the default PS1.
    # PS1='\h:\w\$ '
    if [ -f /etc/bash.bashrc ]; then
      . /etc/bash.bashrc
    fi
  else
    if [ "`id -u`" -eq 0 ]; then
      PS1='# '
    else
      PS1='$ '
    fi
  fi
fi

if [ -d /etc/profile.d ]; then
  for i in /etc/profile.d/*.sh; do
    if [ -r $i ]; then
      . $i
    fi
  done
  unset i
fi
  • 这是系统范围的 bourne shellsh)、bash shellbash)、korn shellksh)、almquist shellash)等的配置文件 /etc/profile。它定义了系统级别的默认环境变量和配置选项

  • 此文件的主要功能包括:

    • 设置命令提示符(PS1),根据当前用户和 shell 类型来确定。
    • 如果系统中存在 /etc/bash.bashrc 文件,则加载该文件。
    • 加载 /etc/profile.d 目录下的所有以 .sh 结尾的脚本文件,以进一步定制系统环境。
  • 所以,/etc/profile 文件用于为系统中的所有 shell 提供全局的默认配置和环境设置。

  • PS1shell 提示符(Prompt String 1)的环境变量,在 bourne shell 和其衍生的 shell 中(如 bashzsh 等)中都有这个环境变量。它定义了在命令行中显示的提示符的格式和内容。

    • 通过设置 PS1,用户可以自定义命令行提示符的外观,以显示有用的信息,如当前用户名、主机名、当前工作目录等。可以包含各种转义字符和特殊字符,以显示所需的信息。

    • 例如,常见的提示符设置可能包括:
      \u:当前用户名。
      \h:主机名。
      \w:当前工作目录。
      \n:换行符。
      \d:日期。
      一个简单的 PS1 设置可以是:

      bash 复制代码
      PS1='\u@\h:\w\$ '

      这将在命令行上显示当前用户名、主机名和当前工作目录,后面跟着 $ 符号作为命令提示符

bash 复制代码
echo y|~/miniconda3/bin/conda create -n xxx python=3.9
  • 这个命令用于创建一个名为 "xxx" 的 conda 环境,并指定 Python 版本为 3.9。它的意思是在执行命令时自动选择 "yes" 选项,无需用户手动确认。

    • echo y|:这部分命令用于向命令行输出 "y",相当于在执行命令时自动输入 "yes"。
    • ~/miniconda3/bin/conda:这是 Conda 包管理工具的路径。
    • create -n xxx:表示创建一个名为 "xxx" 的新环境。
    • python=3.9:指定要在环境中安装的 Python 版本为 3.9。
相关推荐
创作小达人几秒前
家政服务|基于springBoot的家政服务平台设计与实现(附项目源码+论文+数据库)
开发语言·python
郭二哈3 分钟前
C++——list
开发语言·c++·list
杨荧4 分钟前
【JAVA开源】基于Vue和SpringBoot的洗衣店订单管理系统
java·开发语言·vue.js·spring boot·spring cloud·开源
ZPC821010 分钟前
Python使用matplotlib绘制图形大全(曲线图、条形图、饼图等)
开发语言·python·matplotlib
镜花照无眠12 分钟前
Python爬虫使用实例-mdrama
开发语言·爬虫·python
aaasssdddd9623 分钟前
python和c
c语言·开发语言·python
星星法术嗲人37 分钟前
【Java】—— 集合框架:Collections工具类的使用
java·开发语言
黑不溜秋的1 小时前
C++ 语言特性29 - 协程介绍
开发语言·c++
一丝晨光1 小时前
C++、Ruby和JavaScript
java·开发语言·javascript·c++·python·c·ruby
天上掉下来个程小白1 小时前
Stream流的中间方法
java·开发语言·windows