美文网首页
mac上的终端bash命令

mac上的终端bash命令

作者: 代码移动工程师 | 来源:发表于2018-07-20 14:51 被阅读2062次

    (一) Bourne-Again Shell简介

    mac上的终端使用的是Bourne-Again Shell命令,简称bash

    bash是GNU组织开发和推广的一个项目,是对Bourne shell的扩展

    Bourne shell是 UNIX 最初使用的 Shell,作者Steven Bourne

    bash是许多Linux平台的内定Shell,传统UNIX上还有许多Shell,包括tcsh、csh、ash、bsh、ksh

    Shell Script大致都类同,一个Shell Script通常可以在很多种Shell上使用

    狭义的Shell指的就是命令行终端

    shell的作用:用户输入指令,通过Shell和内核沟通,控制硬件正常工作

    (二)基础

    打开终端,在里面输入命令,一般终端已经帮你输入了“$”符号,只要输入具体命令就可以了

    1.$echo

    命令echo 表示:输出文本

    $ echo"hello world"

    输入结果:hello world

    2.$cd

    命令cd表示:进入某文件夹目录,或返回某目录

    1)进入根目录

    $ cd /

    2)进入某目录(如下:进入bin目录)

    $ cd bin 

    3)返回到上层目录

    $ cd ..

    3)返回上上层目录(中间没用空格)

    $ cd ../ ../

    4)进入用户目录(~)

    $ cd ~

    3.$ls

    命令ls表示:显示本层目录的所有文件和文件夹

    $ ls

    当ls后面加上具体的目录时直接输入该文件夹的详细目录信息(比如bin目录如下)

    $ ls bin

    4.$whereis

    命令whereis表示:查找某程序的路径(比如gcc如下)

    $ whereis gcc

    输入结果:/usr/bin/gcc

    5.命令记忆功能:

    按上下键,可以查看使用过的所有命令

    这些命令存储在用户目录.bash_history文件中:~/.bash_history

    6.自动补全功能:

    1)按tab键,当再一串指令的第一个词后面,自动补全命令

    2)按tab键,当再一串指令的第二个词后面,自动补全文件名或文件目录

    3)连按两次tab键,(上面两种情况中,若再按一次tab键),则显示所有某些字母开头的命令,或本目录下的所有文件名

    7.命令别名功能:$alias

    当一条命令太长,可以用alias命令为其他命令设置别名

    例如,要查看本目录下的所有文件,包括隐藏文件,用命令:

    $ ls -al

    为了方便记忆,可以为上面的命令取一个别名lsall,操作如下:

    $ alias lsall='ls -al'

    之后就可以用$lsall命令,来查看本目录下的所有文件

    8.$man

    命令man用于查看某命令的详细说明文件,(比如查看ls命令说明如下)

    $ man ls   

    退出时用输入q

    9.$type

    命令type用于判断某命令是不是bash内置命令,或是来自外部(例如cd命令和ls命令如下:)

    $ type cd

    输出"cd is a shell builtin",表示cd是bash内建命令

    $ type ls

    输出"ls is hashed (/bin/ls)",表示ls是外部命令,后面是程序路径

    如果定义了一个命令的别名为lsall,此时用$type命令查看lsall

    $ type lsall

    输出"lsall is aliased to `ls -al'",表示lsall是ls命令的别名

    10.跨行命令,转义命令执行键(转义回车键)

    当输入一行太长的命令时,为了更清楚,可以先输入"\",然后输入回车键,跳到下一行

    下一行前面会出现">"符号,然后可以继续写没写完的命令

    用两行输入完整的命令,例如:

    $ cd /Users/xiaoa \回车

    回车替换为回车符,会在下一样出现">",继续输入"/test"

    > /test

    两行命令等于如下一行:

    $ cd /Users/xiaoa/test

    11.在bash中输入$bash命令,将启动一个子bash程序,用$exit命令退出子程序

    12.命令组合,与优先执行

    用反单引号(就是键盘上方数字键1左边的键,不是单引号)包裹命令:`命令`

    或$(命令),来优先执行某个命令,然后把返回的内容作为其他命令的输入,例子如下:

    $ echo `ls -a`

    $ echo $(ls -a)

    上面的命令语句都有同样的作用:先用$ls命令获得本路径的所有文件名包括.的文件,然后把返回的结果用$echo命令打印出来

    一般用 $(命令) 先执行一段指令的比较多,因为反单引号太容易引起歧义

    (三)变量

    1.什么是变量

    x=200

    等号左边的就是变量,等号右边的就是变量的内容

    变量具有可变性

    2.变量的作用

    用简单的字符,来替代复杂的易于变动的内容

    3.变量定义

    $ testdata="is test"

    这样就定义了一个变量testdata

    使用变量时必须加上"$"符

    $ echo$testdata

    输出"is test"

    输出时,需要附加其他的字符串,可以用${变量}

    $ echo this is${testdata}

    输出"this is test"

    4.取消变量设置

    用$unset命令取消变量设置

    $ unset testdata

    命令unset后边直接跟变量名,注意没有"$"符号

    5.变量定义规则

    1)等号的左右两边都不能有空格

    2)变量初始化的时候必须赋值,未赋值过的变量为空,但echo未赋值过的变量不会报错,没有任何输出

    3)变量名只能由英文字母、数字和短下划线"_"组成,且开头字符不能是数字

    4)当变量内容里有空白字符时,可用用双引号",或单引号',把内容包含起来

      但双引号内的特殊字符如$等保留原有特性,比如

    $ testdata="home is $HOME"

    $ echo$testdata

    输出"home is /Users/a"

    而单引号内的特殊字符则变为纯文本,比如

    $ testdata='home is$HOME'

    $ echo$testdata

    输出"home is $HOME"

    5)可以用"\"符来转义特色字符(比如回车符enter,$,\,空白字符,等)为一般字符

    $ testdata=home\ is\ home

    $ echo$testdata

    上面转义了空白字符,所以不会报错,输出"home is home"

    6.环境变量

    1)用$env命令,查看所有已经定义过的环境变量,env是environment(环境)的缩写

    $ env

    用$export也可以查看

    2)用$set命令,查看所有环境变量和自定义变量

    $ set

    3)区别于自定义变量,环境变量通常用大写字母表示,比如:PATH, HOME, MAIL, SHELL等 

    查看环境变量PATH

    $ echo$PATH

    PATH:是可执行文件路径,目录与目录之前用":"隔开,当执行某个命令或程序时,依据PATH定义的目录来搜索程序,排前的先搜索

    RANDOM:代表随机数,介于0~32767之间

    相关文章

      网友评论

          本文标题:mac上的终端bash命令

          本文链接:https://www.haomeiwen.com/subject/fffqmftx.html