SHELL初级(二)
来源:互联网 发布:oracle数据库导出数据 编辑:程序博客网 时间:2024/05/19 20:42
2 使用!应用事件
(1)!! 重新执行前一个事件 等同于fc -s
# drcomc logout
Logout Succeeded
You have used 3382 minutes, and 2085200K bytes
# !!
drcomc logout
Error, Already logged out
(2)!$ 前一个命令行中的最后一个字
在!前面加/,或者用 ' ',可以 将!转义 ,使其成为一个普通字符
1 事件标识符
(3)!n 整数,可正可负
root@yaozhangjun-desktop:/home/yaozhangjun# PS1="[/u@/h /W /!]$"
[root@yaozhangjun-desktop yaozhangjun 218]$!216
drcomc logout
Error, Already logged out
如果n为负,表示执行从当前命令往前第n个事件
(4)!string :shell搜索并执行最近的以该文本串开头的事件
!?string?:shell将执行最近的包含该文本串的事件
#history 5
216 drcomc logout
217 PS1="[/u@/h /W /!]$"
218 drcomc logout
219 PS1="[/u@/h /W /!]#"
220 history 5
#!d
drcomc logout
Error, Already logged out
#!?logout?
drcomc logout
Error, Already logged out
(5)
#!#ls 当前命令
ls
Desktop Examples Music Public Vedio 桌面
Document Model Picture Software yzj
9.6.3 Readline 库
1READERLINE命令补全:使用TAB来补全字(completion)路径名,文件名,变量名都可以按TAB补全,对于有相同的,还有再按一次才能显示目前相同的名称
2#bind -P :显示所有Readline命令列表
abort is not bound to any keys
accept-line can be found on "/C-j", "/C-m".
alias-expand-line is not bound to any keys
3#bind -q kill-whole-line :查看某个命令绑定到哪个按键序列
kill-whole-line is not bound to any keys.
4.键绑定
(1)Keyname :command_name
e.g. control-u:kill-whole-line
(2)"Keystroke_sequence":command_name
9.7 别名(alias):将一个较长的名字换成一个较短的名字,这些别名放在~/.bashrc中。其中名字可以是命令行,可以是带有变量名
alias[name[=value]]
别名不接受value中来自命令行的参数。别名不代替自己
如 alias ls='ls -F'
别名可以嵌套。在非交互式shell(shell脚本)中别名是被禁止的
#alias :列出已经定义别名的列表
alias ls='ls --color=auto'
alias ll='ls -l'
9.7.1 别名中的单引号和双引号
如果别名中包含变量,选择单引号还是双引号非常重要
“value”:当创建该别名时,value中的任何变量都将展开
#echo $PWD
/home/yaozhangjun
#alias dirA="echo Working directory is $PWD"
#alias dirA
alias dirA='echo Working directory is /home/yaozhangjun'
‘value’:在使用该别名之前变量都不会展开
#alias dirB='echo Working directory is $PWD'
#alias dirB
alias dirB='echo Working directory is $PWD'
#cd yzj
[root@yaozhangjun-desktop yzj 243]#dirA
Working directory is /home/yaozhangjun
#dirB
Working directory is /home/yaozhangjun/yzj
9.8 函数
shell将函数存放在RAM中,而不是放在磁盘文件中,所以shell访问函数的速度比访问脚本的速度快
shell函数的声明放在~/.bash_profile初始化文件,可以使用unset删除函数。
[function] function-name()
{
commands
]
可以在break中中断函数执行
[root@yaozhangjun-desktop yaozhangjun 251]#unset whoson
[root@yaozhangjun-desktop yaozhangjun 252]#function whoson()
> {
> date
> echo "Users Currently Logged On"
> who
> }
[root@yaozhangjun-desktop yaozhangjun 253]#whoson
2009年 09月 24日 星期四 22:25:37 CST
Users Currently Logged On
yaozhangjun tty7 2009-09-24 20:59 (:0)
yaozhangjun pts/0 2009-09-24 20:59 (:0.0)
[root@yaozhangjun-desktop yaozhangjun 254]#
如果希望whoson函数总是有用,而不用每一次登录时都重新键入,可以将起定义放在~/.bash_profile中。然后用.(dot)命令运行.bash_profile,使其修改起效
调用函数时可以指定参数。在函数内部可以通过位置参数访问这些参数
$ arg1(){
> echo "$1"
> }
$ arg1 yaozhangjun
yaozhangjun
$ arg2(){
> echo '$1'
> }
$ arg2 miyase
$1
- SHELL初级(二)
- Shell编程小记 初级(二)
- Swift初级(二)
- 初级汇编程序(二)
- Ibatis初级应用(二)
- 初级排序算法(二)
- 《python初级爬虫》(二)
- SHELL初级(三)+ 文件操作
- sed初级使用-------shell学习(7)
- awk初级使用-------shell学习(6)
- 初级排序算法(选择、插入、Shell)
- 初级二
- shell初级编程
- shell初级编程(续)
- shell脚本初级入门
- Shell 编程小记 --- 初级
- 初级 Java I/O 综述(二)
- SOAP协议初级指南(二)
- 实例介绍删除数据库中重复数据的几个方法
- mysql索引的使用及语句优化
- (转)AS及Flex常识100条(1)
- 安装APACHE PHP
- XLSReadWriteII3.x读写unicode的bug
- SHELL初级(二)
- (转)AS及Flex常识100条(2)
- 我的第一个比较完善的系统
- XPS文件转换PDF小工具,集成了界面,方便大家使用
- 用WinFlash工具更新BIOS版本
- C++语言
- 2009-09-24
- c 语言新标准
- 汇编语言