您的位置:首页 > 运维架构 > Shell

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 bash