mac上的终端bash命令
(一) 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命令相关推荐
- Mac上的终端Shell命令总结(初级)
/ 根目录 - home目录(当前用户的目录) 进入目录 cd /usr/local 返回目录 cd ../ 新建文件 touch 123.txt 或 touch abc 新建文件夹("/& ...
- 【转】【Mysql学习】之Mac上用终端使用mySQL
收藏了几篇文章,以供查阅: 在此感谢: m0_38017925:<Mac上用终端使用mySQL> xiamu03:<在MacOS上使用终端操作数据库> 转载于:https:// ...
- mac 上iterm终端显示中文为乱码解决方案
mac 上iterm终端显示中文为乱码解决方案 参考文章: (1)mac 上iterm终端显示中文为乱码解决方案 (2)https://www.cnblogs.com/ansonz/p/5409183 ...
- 如何在mac终端运行python程序_如何在mac上的终端上运行python?
First, the lesson said to simply type, python, into terminal to start coding in python (I don't know ...
- mac在终端打开mysql_如何在Mac上打开终端
mac在终端打开mysql While using a Mac, sometimes you need to dig deep into settings or perhaps pull off so ...
- xampp mysql mac_如何在mac上用终端打开XAMPP自带的MySQL
注:1.本文未经博主同意,不得转载! 2.所有终端语句都分行显示,以免大家看错: 直接开始,过程中对每一步可能出现的错误都进行了说明. 1.安装好xampp,然后打开终端,输入: mysql -u r ...
- Mac 上的“终端”键盘快捷键
使用"终端"时,使用这些快捷键来节省时间. (一)使用"终端"窗口和标签页 操作 快捷键 新建窗口 Command-N 使用相同命令新建窗口 Control-C ...
- mac上使用终端生成RSA公钥和密钥
0,安装openssl 1.生成RSA私钥: openssl genrsa -out rsa_private_key.pem 1024 2,把RSA私钥转换成PKCS8格式 openssl pkcs8 ...
- mac 上双击终端执行sh文件
1 chmod +x xxx.sh修改文件权限 2 右键.sh文件 ->显示简介 ->打开方式->拉动到最下面选择其他 ->底部启用右边的 推荐的应用程序更改为 所有应用程序 ...
最新文章
- C/C++:*(p++)慎用!!!!!
- wget,curl 下载文件
- 程序员50题(JS版本)(九)
- 手动建立规则方式创建stream环境
- 使用I/O 系统调用--copy.c
- 机器学习算法与Python实践之(二)k近邻(KNN)
- 男生学计算机哪专业好,男生学计算机科学与技术专业好不好有前途吗
- Redis配置文件常用配置消息解说--版本5.0.9
- 萌宠主题页面设计灵感
- mysql tx read only_DB为何大量出现select @@session.tx_read_only 详解
- python英语培训_学习Python语言一定要英语好嘛?
- 禁用驱动程序强制签名(终极办法)
- 普元EOS在运算逻辑里面调用HttpServletRequest ,HttpServletResponse
- 2021牛客暑期多校训练营10 F题: Train Wreck
- rust怎么传送坐标_这几天很多人问我传奇到底该怎么玩,有没有攻略什么的
- BAPI_GOODSMVT_CREATE移库操作(WMS TO SAP)
- bzoj5185 [Usaco2018 Jan]Lifeguards(dp+单调队列优化)
- 前端Q知识体系梳理与面试准备直播回顾
- 懂得爱――在亲密关系中成长
- 【Arduino使用旋转编码器模块】
热门文章
- QIIME 2教程. 11元数据Metadata(2020.11)
- 2019微生物组—宏基因组分析技术研讨会第六期
- NAR:UNITE真菌鉴定ITS数据库——处理未分类和并行分类(数据库文章阅读模板)
- QIIME1.9.1-1虚拟机安装配置及挂载外部目录
- 删除 此电脑 文件夹
- pandas使用replace函数和正则表达式移除dataframe字符串数据列中头部指定模式字符串(Removing leading substring in dataframe)
- R语言使用ggplot2包使用geom_boxplot函数绘制基础分组箱图(配置数据点显示)实战
- R语言rep函数重复向量或者列表元素实战
- R语言eval函数评估表达式或者字符串实战
- pandas dataframe缺失值(np.nan)处理:识别缺失情况、删除、0值填补、均值填补、中位数填补、加缺失标签、插值填充详解及实例