mac bash
2015-11-22 00:00
387 查看
摘要: mac bash
mac上的终端使用的是Bourne-Again Shell命令,简称bash,是对Bourne shell的扩展
Bourne shell是 UNIX 最初使用的 Shell,作者Steven Bourne
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之间
配置
那么应该怎样来配置成我喜欢的颜色呢?下面我们就来详细说一些这些配置。
~/.bash_profile是bash shell中当前登录用户的配置文件。bash是“终端”中默认的shell。
alias ls=”ls -G”是给”ls -G”起了一个别名,当执行ls时,就相当于执行了ls -G。
CLICOLOR是用来设置是否进行颜色的显示。CLI是Command Line Interface的缩写。
LSCOLORS是用来设置当CLICOLOR被启用后,各种文件类型的颜色。LSCOLORS的值中每两个字母为一组,分别设置某个文件类型的文字颜色和背景颜色。
LSCOLORS中一共11组颜色设置,按照先后顺序,分别对以下的文件类型进行设置:
directory
symbolic link
socket
pipe
executable
block special
character special
executable with setuid bit set
executable with setgid bit set
directory writable to others, with sticky bit
directory writable to others, without sticky bit
LSCOLORS中,字母代表的颜色如下:
a黑色
b红色
c绿色
d棕色
e蓝色
f洋红色
g青色
h浅灰色
A黑色粗体
B红色粗体
C绿色粗体
D棕色粗体
E蓝色粗体
F洋红色粗体
G青色粗体
H浅灰色粗体
x系统默认颜色
所以,如果我们想把目录显示成红色,就可以把LSCOLORS设置为bxfxaxdxcxegedabagacad就可以了。
自定义提示符
默认的提示符又长又别扭,还是喜欢改成Ubuntu的那种风格。在~/.bash_profile(不是.bashrc了)中添加:
export PS1="\u@\h:\w $"
需要另外设置颜色的话可以参考这个和那个。
ls和grep的高亮
向~/.bash_profile中加入
export CLICOLOR=1
export GREP_OPTIONS="--color=auto"
设置终端的主题
到这里就已经有了一个彩色的终端了,然而光有颜色还是不够的。只有精美的字体和搭配良好的颜色才能使命令行显得不是那么的枯燥乏味,因此还需要一个好的主题。这里推荐使用Solarized。
对于Lion的用户,只需下载两个terminal文件,双击安装就可以了。然后只要在终端的Preferences中选择相应的主题为默认。
Vim
作为终端用户,Vim肯定是另一件不可缺少的神器。我们同样可以使用Solarized主题让它变得更华丽些。
下载安装Pathogen。
$ mkdir -p ~/.vim/autoload ~/.vim/bundle; \
> curl -so ~/.vim/autoload/pathogen.vim \
> http://raw.github.com/tpope/vim-pathogen/master/autoload/pathogen.vim
并向~/.vimrc中添加:
call pathogen#infect()
下载安装主题
$ cd ~/.vim/bundle
$ git clone git://github.com/altercation/vim-colors-solarized.git
修改~/.vimrc
syntax enable
set background=dark
colorscheme solarized
更多关于终端的设置,见这里。
Tmux
在命令行下tmux的好处就不多说了,谁用谁知道。
sudo port install tmux
Git
Mac OS X中默认是没有Git的,所以需要自行安装。至少有以下三种方式可供选择:
选择GUI的git.app。有图形化界面,安装和操作非常简单。
使用MacPort下载安装。MacPort是一个开源的在Mac OS中用于编译、安装、升级开源软件的包管理工具,类似apt和yum。
sudo port selfupdate
port search git
sudo port install git-core
从源码安装,详细见这里。
MacPort
MacPort只需从其主页上下载相应的pkg进行安装即可。
Xcode
利用MacPort编译git-core需要xcode。
将Apple ID注册为开发者。
下载安装Xcode 4.3.3 for Lion。
下载安装Command Line Tools for Xcode。
切换当前的xcode
sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer/
mac上的终端使用的是Bourne-Again Shell命令,简称bash,是对Bourne shell的扩展
Bourne shell是 UNIX 最初使用的 Shell,作者Steven Bourne
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之间
配置
那么应该怎样来配置成我喜欢的颜色呢?下面我们就来详细说一些这些配置。
~/.bash_profile是bash shell中当前登录用户的配置文件。bash是“终端”中默认的shell。
alias ls=”ls -G”是给”ls -G”起了一个别名,当执行ls时,就相当于执行了ls -G。
CLICOLOR是用来设置是否进行颜色的显示。CLI是Command Line Interface的缩写。
LSCOLORS是用来设置当CLICOLOR被启用后,各种文件类型的颜色。LSCOLORS的值中每两个字母为一组,分别设置某个文件类型的文字颜色和背景颜色。
LSCOLORS中一共11组颜色设置,按照先后顺序,分别对以下的文件类型进行设置:
directory
symbolic link
socket
pipe
executable
block special
character special
executable with setuid bit set
executable with setgid bit set
directory writable to others, with sticky bit
directory writable to others, without sticky bit
LSCOLORS中,字母代表的颜色如下:
a黑色
b红色
c绿色
d棕色
e蓝色
f洋红色
g青色
h浅灰色
A黑色粗体
B红色粗体
C绿色粗体
D棕色粗体
E蓝色粗体
F洋红色粗体
G青色粗体
H浅灰色粗体
x系统默认颜色
所以,如果我们想把目录显示成红色,就可以把LSCOLORS设置为bxfxaxdxcxegedabagacad就可以了。
自定义提示符
默认的提示符又长又别扭,还是喜欢改成Ubuntu的那种风格。在~/.bash_profile(不是.bashrc了)中添加:
export PS1="\u@\h:\w $"
需要另外设置颜色的话可以参考这个和那个。
ls和grep的高亮
向~/.bash_profile中加入
export CLICOLOR=1
export GREP_OPTIONS="--color=auto"
设置终端的主题
到这里就已经有了一个彩色的终端了,然而光有颜色还是不够的。只有精美的字体和搭配良好的颜色才能使命令行显得不是那么的枯燥乏味,因此还需要一个好的主题。这里推荐使用Solarized。
对于Lion的用户,只需下载两个terminal文件,双击安装就可以了。然后只要在终端的Preferences中选择相应的主题为默认。
Vim
作为终端用户,Vim肯定是另一件不可缺少的神器。我们同样可以使用Solarized主题让它变得更华丽些。
下载安装Pathogen。
$ mkdir -p ~/.vim/autoload ~/.vim/bundle; \
> curl -so ~/.vim/autoload/pathogen.vim \
> http://raw.github.com/tpope/vim-pathogen/master/autoload/pathogen.vim
并向~/.vimrc中添加:
call pathogen#infect()
下载安装主题
$ cd ~/.vim/bundle
$ git clone git://github.com/altercation/vim-colors-solarized.git
修改~/.vimrc
syntax enable
set background=dark
colorscheme solarized
更多关于终端的设置,见这里。
Tmux
在命令行下tmux的好处就不多说了,谁用谁知道。
sudo port install tmux
Git
Mac OS X中默认是没有Git的,所以需要自行安装。至少有以下三种方式可供选择:
选择GUI的git.app。有图形化界面,安装和操作非常简单。
使用MacPort下载安装。MacPort是一个开源的在Mac OS中用于编译、安装、升级开源软件的包管理工具,类似apt和yum。
sudo port selfupdate
port search git
sudo port install git-core
从源码安装,详细见这里。
MacPort
MacPort只需从其主页上下载相应的pkg进行安装即可。
Xcode
利用MacPort编译git-core需要xcode。
将Apple ID注册为开发者。
下载安装Xcode 4.3.3 for Lion。
下载安装Command Line Tools for Xcode。
切换当前的xcode
sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer/
相关文章推荐
- 什么是Mac OS X?跟Linux有什么区别
- mac下安装mysql(转载)
- mysql 修改编码 Linux/Mac/Unix/通用(杜绝修改后无法启动的情况!)
- Linux vs Mac:Linux 比 Mac 好的 7 个原因
- 苹果mac OS X上安装metasploit
- Validation of viewstate MAC failed.的解决方法
- Mac平台中编译安装Lua运行环境及Hello Lua实例
- 在Mac OS中安装Lua的教程
- vbs Windows系统改变或修改网卡的MAC地址的脚本与软件第1/2页
- MAC官方菜单纯CSS实现灰色会换色
- mac系统OS X10.10版本安装最新5.7.9mysql的方法
- 在Mac OS下使用Node.js的简单教程
- 一波实用的Bash Shell整理
- Mac环境下php操作mysql数据库的方法分享
- PHP中获取内网用户MAC地址(WINDOWS/linux)的实现代码
- jQuery根据用户电脑是mac还是pc加载对应样式的方法
- 在MAC OS X上安装MYSQL
- bash脚本输入密码不回显问题的解决方法
- Shell脚本获取本地网卡IP、mac地址、子网掩码、dns IP、外网IP
- bash 编程中循环语句用法