设为首页 收藏本站
查看: 939|回复: 0

Mac上的终端bash命令 Bourne-Again Shell简介

[复制链接]

尚未签到

发表于 2018-8-29 09:12:50 | 显示全部楼层 |阅读模式
  mac上的终端使用的是Bourne-Again Shell命令,简称bash
  Bourne-Again Shell简介 一
  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和内核沟通,控制硬件正常工作
  mac上的终端bash命令(二)基础
  打开终端,在里面输入命令,一般终端已经帮你输入了“$”符号,只要输入具体命令就可以了
  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命令打印出来
  一般用 $(命令) 先执行一段指令的比较多,因为反单引号太容易引起歧义
  mac上的终端bash命令(三)变量
  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之间



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-557982-1-1.html 上篇帖子: wdcp的环境搭建shell脚本分析--install.sh 下篇帖子: Mac文件权限管理(shell命令)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表