zoukankan      html  css  js  c++  java
  • macOS中的终端命令

    1、由macOS配置环境变量引申的问题

    通常在macOS上配置环境变量,比如配置maven的环境变量,是这样的操作的。在用户的目录下面,找到或者新建 .bash_profile 文件,然后按照如下配置:

    export MAVEN_HOME=/Users/name/downloads/apache-maven-3.8.1
    export PATH=$PATH:$MAVEN_HOME/bin
    export PATH=$PATH:/usr/local/mysql/bin
    export PATH=$PATH:/opt/homebrew/bin

    使用source命令重新载入一下,

    source .bash_profile

    这样这终端输入 mvn 命令,即可执行对应的maven命令了。过了一段时间发现,每次启动终端时候,都需要重载一下 .bash_profile 文件才能使环境变量生效。解决方法:找到或者新建文件 .zshrc ,添加下面一段:

    source ~/.bash_profile

    每次终端启动时,就会自动重载。

    实际上遇到这类问题,是因为对操作系统和Bash的不熟悉,零零碎碎的“解决方法”,只能短暂的解决问题。这里总结下macOS终端上常用的Bash命令,旨在熟悉常见的cv脚本的配置原理。

    2、Bash 简介

    Bash是Linux 和 Unix系统的一种命令行环境(cli),解释输入的命令,具有完整的变量赋值、条件判断、循环操作等语法。命令行环境有很多,使用macOS查看支持的命令行环境:

    cat /ect/shells
    # List of acceptable shells for chpass(1).
    # Ftpd will not allow users to connect who are not using
    # one of these shells.
    
    /bin/bash
    /bin/csh
    /bin/dash
    /bin/ksh
    /bin/sh
    /bin/tcsh
    /bin/zsh

    其中Bash是大多数Linux发行版的默认的命令行环境。在macOS中,从Catalina 版开始,Mac 将使用 zsh 作为默认命令行环境。zsh 与 Bourne Shell (sh) 高度兼容,并且与 bash 基本兼容,但存在一些差别。具体参见

    查看当前的环境使用命令:

    echo $SHELL
    /bin/zsh

    3、常用的Bash命令

     1、输入与输出

    echo命令用于打印一行或一段文本。

    bash-3.2$ echo hi
    hi

    read命令用于获取用户的输入内容。

    bash-3.2$ read i && echo $i
    hi  //输入内容
    hi  //输出内容
    bash-3.2$ 

    2、语句操作符

    分号 ; 是命令的结束符,同行表示紧接着执行下一条命令:(无论第一条命令是否成功,下一条都会执行与之不同的是 && ||)

    read i;echo $i

    与&& ,与编程汇总的布尔操作符类似,第一条命令执行成功后,执行第二条命令;

    read i && echo $i

    或|| ,表示第一条命令执行失败后,执行第二条命令;

    read i || echo $i

    3、区分命令类型

    有些命令是系统自带的,有些命令是在外部程序添加到环境变量后运行的,使用type命令区分内置命令和外部程序。

    bash-3.2$ type echo
    echo is a shell builtin
    bash-3.2$ type mysql
    mysql is /usr/local/mysql/bin/mysql

    4、Bash变量

    变量分为环境变量与系统变量。使用env命令显示环境变量,

    env

    创建变量直接申明变量名即可,注意赋值操作不可加空格,

    i=1
    echo $i  //1

    读取变量使用 $+变量名即可,如上所示。

    export 命令 用于向不同的终端之间传递变量。在 zsh 下定义变量,使用export命令在bash也能获取到。

    export MAVEN_HOME=/Users/name/downloads/apache-maven-3.8.1

    可以看到环境变量脚本中定义的 MAVEN_HONE 变量使用了export。

    5、bash历史记录

    bash会记录命令的历史记录,在macOS系统中保存在隐藏的文件 .bash_history文件中。并且对应的命令行环境均有对应记录文件。

     history 命令同样显示使用过的命令记录,

    history   
    .
    .
    .
    98  echo $i
    99  history

     6、source 命令

    source命令用于重新加载一个配置文件,

    source ~/.bash_profile

    表示重新加载.bash_profile中配置的环境变量。

    4、macOS中环境变量的生效顺序

    使用交互式命令行环境时,每次启动一次命令行环境,都会开启一次Session对话,按照登录的状态可分为登录的Session和非登录的Session。

    在Linux中登录的session会初始化系统环境,初始化的顺序依次为:(注意用户级的配置脚本,第一个加载成功后,不再加载后续脚本文件。)

    • 系统级:/etc/profile 、/etc/paths ;
    • 用户级:~/.bash_profile 、~/.bash_login 、~/.profile 、~/.bashrc 。

    Linux中非登录的Session,不会进行环境的初始化。初始化的脚本加载顺序为:

    • /etc/bash.bashrc:对全体用户有效。
    • ~/.bashrc:仅对当前用户有效。

    在macOS中,我们打开的终端均为非登录的Session。因此每次启动终端,都会加载.bashrc 或 .zshrc文件, 这也是上述为何将重载命令source ~/.bash_profile 写入 .zshrc 的原因。 

    参考链接:

    1、https://support.apple.com/zh-cn/HT208050

    2、https://wangdoc.com/bash/index.html

  • 相关阅读:
    vc 获得文件相对路径
    C#关闭MessageBox消息框(转)
    ip地址及地理位置查询
    WinDbg关联dump文件
    国外程序员推荐:每个程序员都应读的书
    [转]史上最全的C位域总结201036 2:58:00
    android 屏幕保持唤醒 不锁屏
    [转]win7如何共享
    一些DirectUI方面的资料
    计算器程序,可以计算正实数范围内的任何数据的加减乘除括号,混合运算
  • 原文地址:https://www.cnblogs.com/engeng/p/15624400.html
Copyright © 2011-2022 走看看