首页 > 代码库 > Linux 的 Shell

Linux 的 Shell


一:Shell 概念

shell 这个词都不陌生,意思是 “壳” 是介于OS 核心与用户之间的一层交互,在linux系统中,用户可以通过命令终端,使用shell 命令向下传达自己的意愿,

驱使kernel 调动硬件实现自己的目的!

鸟哥私房菜中的图片:

通俗的理解就是一个文本命令集合,可以更加直观有效的操控Kernel来实现我们的目的,其中shell script更是许多项目实践中常用的脚本语言!


二:Shell 管理

shell的种类有很多,对linux系统而言会有一个管理,那些种类的shell才是合法,能够被识别执行,定义在/etc/shells中:

jscese@jscese-H61M-S2P:~$ cat /etc/shells 
# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash

可以看到我的ubuntu 13.04有效的shell类型就这四种。其中sh代表 Bourne SHell,现在的增强版本为Bourne Again SHell 也就是bash

目前linux预设的shell 类型!

对于当前用户使用的到底是哪一种类型的shell,可在/etc/passwd中查看到:

jscese:x:1000:1000:jscese,,,:/home/jscese:/bin/bash

三:Bash 功能


1.history——保存上次注销系统前的命令,保存在~/.bash_history文件中


2.Tab 补全,提示


3.alias,unalias——命令的封装和移除,alias ll =‘ls -al’ 代表用ll 来代替 ls -al ,用简单的字符来代表复杂的指令,方便使用!  unalias ll 移除 ll 这个命令。


4.echo——输出变量  echo $PATH  ,    ADDPATH=$PATH:ADD     unset ADDPATH   , $ -PID,  ?-回传值


5.对变量的删除取代通过  ${PATH 表达式 } 规则如下(鸟哥的归总): ${PATH ##/*/}  删除掉变量PATH 中从头开始的 在两个斜杠之间最长的内容


6.设定变量,规则如下:



7./dev/null——垃圾桶黑洞装置


8.逻辑指令,多个逻辑一起时,回传值向右有传递性:



9.管线命令 (pipe)

cut  切某一部分,grep 获取符合要求的一行 ,sort 进行排序 ,uniq 重复的只显示一个 , wc 显示文件多少行.字  ,tee 双向重导 既输出又可以保存 

字符转换命令: tr, col, join, paste, expand