- 爱易网页
 
                        - 
                            Linux
 
                        - 【学习札记——Linux】认识与学习BASH 
 
                         
                    
                    
                    日期:2014-05-16  浏览次数:20907 次 
                    
                        
                         【学习笔记——Linux】认识与学习BASH
认识与学习BASH
Table of Contents
- 1 认识Bash
 - 2 Shell的变量功能
 - 3 命令别名与历史命令
 - 4 Bash shell的操作环境
 - 5 数据流重导向
 - 6 管线命令
 
 
 
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
 - 自定义变量转环境变量:export
- 为什么要转成环境变量:因为子程序会继承父程序的环境变量
 
 - 语系支持
- 查看系统支持的语系:locale -a
 - 查看与语系有关的变量:locale
 
 - 键盘读取用户输入read: read atest #将用户输入读入atest变量
 - 声明变量类型 declare: declare -i sum=100+50
 
 
 
3 命令别名与历史命令
- 别名
- alias lm='ls -al | more'
 - unalias lm
 
 - 历史命令
 
 
 
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
 
 
 - 通配符
- * : 0到无穷个字符
 - ? : 一个字符
 - []: [abc] # a or b or c
 - [-]: [0-9] # 0 到 9
 - [^]: [^abc] # 不是a,b,c的一个字符
 
 
 
 
 
5 数据流重导向
- > :覆盖
 - >>:累加
 - /dev/null:接收信息但不显示
 - 依次执行:cmd1,cmd2,cmd3
 - 根据上一条执行结果确定下一条
 
 
 
6 管线命令
- ls | less
 - cut:同一行数据分割
- echo $PATH | cut -d ':' -f 5 #以':'分割,第5个数据
 
 - grep:如果一行里有需要的信息,就返回这一行
 - sort:排序
 - uniq:重复内容只显示一次
 - wc:统计单词数
 - tee:双向重定向
 - tr:删除或替换数据
 - col:转化为纯文本
 - join:将两个文件中相关信息放在一起
 - paste:将两行并在一起,中间用[Tab]分开
 - expand:将[Tab]转为空格
 <
  
                        
                     
                    
                    
                        免责声明: 本文仅代表作者个人观点,与爱易网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。