linux shell之bash的特性

1. 命令别名
  • 查看当前用户别名定义:alias

示例:
[root@guox ~]# alias
alias cp=’cp -i’
alias egrep=’egrep –color=auto’
alias fgrep=’fgrep –color=auto’
alias grep=’grep –color=auto’
alias l.=’ls -d .* –color=auto’
alias ll=’ls -l –color=auto’
alias ls=’ls –color=auto’
alias mv=’mv -i’
alias rm=’rm -i’
alias which=’alias | /usr/bin/which –tty-only –read-alias –show-dot –show-tilde’

  • 定义别名:alias NAME=’COMMAND’

示例:
[root@guox mnt]# alias ls=’ls -l’
[root@guox mnt]# ls
总用量 828
dr-xr-xr-x. 4 root root 2048 2月 20 2015 addons
dr-xr-xr-x. 3 root root 2048 2月 20 2015 EFI
-r–r–r–. 1 root root 8266 4月 4 2014 EULA
-r–r–r–. 1 root root 18092 3月 6 2012 GPL
dr-xr-xr-x. 3 root root 2048 2月 20 2015 images
dr-xr-xr-x. 2 root root 2048 2月 20 2015 isolinux
dr-xr-xr-x. 2 root root 2048 2月 20 2015 LiveOS
-r–r–r–. 1 root root 114 2月 19 2015 media.repo
dr-xr-xr-x. 2 root root 790528 2月 20 2015 Packages

  • 撤销别名:unalias NAME

示例:
[root@guox mnt]# unalias ls
[root@guox mnt]# ls
addons images Packages RPM-GPG-KEY-redhat-release
EFI isolinux release-notes TRANS.TBL
EULA LiveOS repodata
GPL media.repo RPM-GPG-KEY-redhat-beta

2.命令历史
  • 查看命令历史列表:history(文件默认存放在~/.bash_history)

示例:
[root@guox mnt]# history
1 alias ls=’ls -l’
2 ls
3 unalias ls
4 ls
5 history

  • 调用历史列表中的命令:

    !#:再一次执行历史列表中的第#条命令;

    !!:再一次执行上一条命令,也可以用向上箭头;

    !STRING:再一次执行命令历史列表最近一个以STRING开头的命令;

示例:
[root@guox mnt]# !162
cd /home/
[root@guox home]# !!
cd /home/
[root@guox home]# !l
ls
a b c guox ln02 ln03 test

  • 其他常用参数:
    -c:清空命令历史;

    -d offset:删除指定命令历史;

    -r : 从文件读取命令历史追加至历史文件中;

    -w:把历史列表中的命令追加至历史文件中;

    histroy #:显示最近的#条命令;

3.快捷键

Ctrl+a:跳转至命令行行首
Ctrl+e:跳转至命令行行尾
Ctrl+u:删除行首至光标所在处之间的所有字符;
Ctrl+k:删除光标所在处至行尾的所有字符;
Ctrl+l:清屏,相当于clear

4.命令补全和路径补全
  • 命令查找和补全机制:
    (1) 查找内部命令;
    (2) 根据PATH环境变量中设定的目录,自左而右逐个搜索目录下的文件名;
    (3) 给定开头的部分字符串如果能惟一标识某命令程序文件,则直接补全;
    不能惟一标识某命令程序文件,再按tab键一次,会给出列表;

  • 路径补全:

    在给定的起始路径的上级目录下,以对应路径下的打头字符串来逐一匹配上级目标下的每个文件:

    (1) 惟一标识:tab补全;

    (2) 不能惟一标识:两次tab给出列表;

    (3) 错误路径:没有响应;

示例:
[root@guox ~]# user
useradd userformat userinfo usermount userpasswd
userdel userhelper usermod usernetctl users
[root@guox ~]# cd /home/
a/ b/ c/ guox/

5.命令行展开

把命令行的给定的特殊符号自动替换为相应字符串的机制;

~: 自动替换为用户家目录;

~USERNAME:自动替换为指定用户的家目录;

{}:可承载一个以逗号分隔的路径列表,能够将其展开为多个独立路径;

示例:
[root@guox home]# cd ~
[root@guox ~]# pwd
/root
[root@guox ~]# cd ~guox
[root@guox guox]# pwd
/home/guox
[root@guox guox]# mkdir -p {a,b,c}
[root@guox guox]# ll
总用量 0
drwxr-xr-x. 2 root root 6 9月 25 10:16 a
drwxr-xr-x. 2 root root 6 9月 25 10:16 b
drwxr-xr-x. 2 root root 6 9月 25 10:16 c

6.命令的执行状态结果
  • 命令的执行状态结果:

    成功:0
    失败:1-255

一个特殊变量来保存最一次执行的命令的状态结果:$?

示例:
[root@guox guox]# echo $HOSTNAME
guox.top
[root@guox guox]# echo $?
0
[root@guox guox]# echoabc $HOSTNAME
bash: echoabc: 未找到命令…
[root@guox guox]# echo $?
127

7.glob
  • 文件名通配;快速引用多个文件;文件名整体匹配度检测;
  • 元字符:基于元字符可编写匹配模式(pattern):
元字符作用
*匹配任意长度的任意字符
?匹配任意单个字符
[ ]匹配指定集合内的任意单个字符
[^ ]匹配指定集合外的任意单个字符
^匹配一行的开头位置
$匹配一行的结束位置
^$匹配空行

示例:
[root@guox bin]# ls w?
wc
[root@guox bin]# ls y*
yelp ypdomainname yum-builddep yum-debug-dump yumdownloader
yes yum yum-config-manager yum-debug-restore yum-groups-manager

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值