认识与学习BASH
Table of Contents
1 认识Bash
- 通过Shell将输入的指令与Kernel沟通,让Kernel控制硬件工作
- 查看Shell:cat /etc/shell
- 登录后预设的shell类型记录在/etc/passwd中,与账户相关
- 命令别名:alias lm='ls -al' #注意有无空格
- 帮助:man bash
- 命令类型:type
- type ls # ls is aliased to `ls –color=auto'
- type cat # cat is hashed (/bin/cat)
- type cd # cd is a shell builtin
- 命令执行:
- \[Enter]:将[Enter]转义,按下后不执行,而是另起一行
2 Shell的变量功能
- 概念:同一变量,不同用户可以有不同值,所以可以用变量来代表此值,而不用将具体的值 写入程序,如$PATH
- 显示变量:echo $PATH
- 设定变量:PATH=xxx #注意空格有无
- 扩充变量:PATH=$PATH:xxx
- 取消变量:unset MAIL
- 查看环境变量:env
- 查看环境变量及自定义变量:set
- PS1:提示字符设定
- 自定义变量转环境变量:export
- 为什么要转成环境变量:因为子程序会继承父程序的环境变量
- 语系支持
- 查看系统支持的语系:locale -a
- 查看与语系有关的变量:locale
- 键盘读取用户输入read: read atest #将用户输入读入atest变量
- 声明变量类型 declare: declare -i sum=100+50
3 命令别名与历史命令
- 别名
- alias lm='ls -al | more'
- unalias lm
- 历史命令
- history
4 Bash shell的操作环境
- 指令执行时查找顺序
- 相对/绝对路径 -> alias -> bash内建 -> $PATH
- bash配置文件
- login shell/non-login shell
- login shell: 进入shell时需要输入账号密码
- non-login shell: 通过图形界面登录,再启动shell时无需输入账号密码
- 配置文件
- login shell:
- /etc/profile :系统整体设定
- 以下三个文件按顺序,如果存在,就读取,后面的就不再读取
- ~/.bash_profile
- ~/.bash_login
- ~/.profile
- login shell:
- 通配符
- * : 0到无穷个字符
- ? : 一个字符
- []: [abc] # a or b or c
- [-]: [0-9] # 0 到 9
- [^]: [^abc] # 不是a,b,c的一个字符
- login shell/non-login shell
5 数据流重导向
- > :覆盖
- >>:累加
- /dev/null:接收信息但不显示
- 依次执行:cmd1,cmd2,cmd3
- 根据上一条执行结果确定下一条
- cmd1 && cmd2
- cmd1 || cmd2
6 管线命令
- ls | less
- cut:同一行数据分割
- echo $PATH | cut -d ':' -f 5 #以':'分割,第5个数据
- grep:如果一行里有需要的信息,就返回这一行
- sort:排序
- uniq:重复内容只显示一次
- wc:统计单词数
- tee:双向重定向
- tr:删除或替换数据
- col:转化为纯文本
- join:将两个文件中相关信息放在一起
- paste:将两行并在一起,中间用[Tab]分开
- expand:将[Tab]转为空格
- split:将大文件传为小文件
作者:on_1y 发表于2013-2-13 12:46:28 原文链接
阅读:79 评论:0 查看评论