Note For Linux By Jes(5)-认识与学习 BASH

正确的关机方法:

数据同步写入磁盘:sync

惯用的关机命令:shutdown

重新启动,关机:reboot, halt, poweroff

切换运行等级:init

  • run level 0:关机

  • run level 3:纯文本模式

  • run level 5:含有图形接口模式

  • run level 6:重新启动



认识BASH这个Shell



/etc/shells

  • /bin/sh (已经被/bin/bash 所取代)

  • /bin/bash (就是Linux 默认的shell)

  • /bin/ksh (Kornshell AT&T Bell lab. 发展出来的,兼容于bash)

  • /bin/tcsh (整合C Shell ,提供更多的功能)

  • /bin/csh (已经被/bin/tcsh 所取代)

  • /bin/zsh (基于ksh 发展出来的,功能更强大的shell)

Bash shell 的功能:

命令编修能力(history)

命令与文件补全功能:([tab] 按键的好处)

命令别名配置功能:(alias)

工作控制、前景背景控制:(job control, foreground, background)

程序化脚本:(shell scripts)

通配符:(Wildcard)

Bash shell 的内建命令:type

命令的下达:

如果命令串太长的话,如何使用两行来输出?
[vbird@www ~]# cp /var/spool/mail/root /etc/crontab \
> /etc/fstab /root



Shell的变量功能

变量的取用与配置:echo,变量配置守则,unset

环境变量的功能:用env 观察环境变量与常见环境变量说明,用set观察所有变量(含环境变量与自定义变量)export:自定义变量转成环境变量

影响显示结果的语系变量(locale)

变量键盘读取、数组与宣告:read, array, declare

与文件系统及程序的限制关系:ulimit

变量内容的删除、取代与替换:

变量配置方式

说明

${变量#关键词}
${变量##关键词}

若变量内容从头开始的数据符合『关键词』,则将符合的最短数据删除
若变量内容从头开始的数据符合『关键词』,则将符合的最长数据删除

${变量%关键词}
${变量%%关键词}

若变量内容从尾向前的数据符合『关键词』,则将符合的最短数据删除
若变量内容从尾向前的数据符合『关键词』,则将符合的最长数据删除

${变量/旧字符串/新字符串}
${变量//旧字符串/新字符串}

若变量内容符合『旧字符串』则『第一个旧字符串会被新字符串取代』



变量的测试与内容替换:

变量配置方式

str 没有配置

str 为空字符串

str 已配置非为空字符串

var=${str-expr}

var=expr

var=

var=$str

var=${str:-expr}

var=expr

var=expr

var=$str

var=${str+expr}

var=

var=expr

var=expr

var=${str:+expr}

var=

var=

var=expr

var=${str=expr}

str=expr
var=expr

str 不变
var=

str 不变
var=$str

var=${str:=expr}

str=expr
var=expr

str=expr
var=expr

str 不变
var=$str

var=${str?expr}

expr 输出至stderr

var=

var=$str

var=${str:?expr}

expr 输出至stderr

expr 输出至stderr

 



命令别名与历史命令

命令别名配置:alias, unalias

历史命令:history



Bashshell 的操作环境

bash 的进站与欢迎信息:/etc/issue, /etc/motd

bash 的环境配置文件:




终端机的环境配置:stty, set

通配符与特殊符号:



符号

意义

*

代表『0 个到无穷多个』任意字符

?

代表『一定有一个』任意字符

[ ]

同样代表『一定有一个在括号内』的字符(非任意字符)。例如[abcd] 代表『一定有一个字符,可能是 a, b, c, d 这四个任何一个』

[ - ]

若有减号在中括号内时,代表『在编码顺序内的所有字符』。例如[0-9] 代表0 9 之间的所有数字,因为数字的语系编码是连续的!

[^ ]

若中括号内的第一个字符为指数符号(^) ,那表示『反向选择』,例如[^abc] 代表一定有一个字符,只要是非 a, b, c的其他字符就接受的意思。





符号

内容

#

批注符号:这个最常被使用在script 当中,视为说明!在后的数据均不运行

\

跳脱符号:将『特殊字符或通配符』还原成一般字符

|

管线(pipe):分隔两个管线命令的界定(后两节介绍)

;

连续命令下达分隔符:连续性命令的界定(注意!与管线命令并不相同)

~

用户的家目录

$

取用变量前导符:亦即是变量之前需要加的变量取代值

&

工作控制(job control):将命令变成背景下工作

!

逻辑运算意义上的『非』not 的意思!

/

目录符号:路径分隔的符号

>, >>

数据流重导向:输出导向,分别是『取代』与『累加』

<, <<

数据流重导向:输入导向(这两个留待下节介绍)

' '

单引号,不具有变量置换的功能

" "

具有变量置换的功能!

` `

两个『` 』中间为可以先运行的命令,亦可使用$( )

( )

在中间为子shell 的起始与结束

{ }

在中间为命令区块的组合!



数据流重导向(Redirection)

  • 1>:以覆盖的方法将『正确的数据』输出到指定的文件或装置上;

  • 1>>:以累加的方法将『正确的数据』输出到指定的文件或装置上;

  • 2>:以覆盖的方法将『错误的数据』输出到指定的文件或装置上;

  • 2>>:以累加的方法将『错误的数据』输出到指定的文件或装置上;

/dev/null 垃圾桶黑洞装置与特殊写法

standard input < <<

命令运行的判断依据:; , &&, ||



命令下达情况

说明

cmd1 && cmd2

1. cmd1 运行完毕且正确运行($?=0),则开始运行cmd2
2.cmd1 运行完毕且为错误($?≠0),则cmd2 不运行。

cmd1 || cmd2

1. cmd1 运行完毕且正确运行($?=0),则cmd2 不运行。
2.cmd1 运行完毕且为错误($?≠0),则开始运行cmd2



管线命令(pipe)

撷取命令:cut, grep

排序命令:sort, wc(统计),uniq(仅列出一个显示)

双向重导向:tee

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

分割命令:split

关于减号– 的用途:[root@www ~]# tar -cvf - /home |tar -xvf -




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值