初识Shell
Shell
就是终端程序的统称,它充当了人与内核(硬件)之间的翻译官,将用户输入的命令翻译给内核,内核处理完成之后,将结果返回。现在许多主流Linux
系统默认使用的终端是Bash(Bourne-Again SHell)
解释器。
Shell
与Bash
是包含与被包含的关系。举例来说,在社会中有翻译官这个职业,它是由许多从业者共同组成的职业名称,而Bash
则是其中一个出色的成员,是Shell
终端程序中的一份子。
Bash Shell登陆后的提示符
登陆后,默认提示符格式为:
格式说明:
字符 |
解释 |
root |
当前登陆系统的用户。 |
@ |
分隔符。 |
localhost |
主机名。 |
~ |
当前所在的位置,~表示用户的家目录。 |
# |
一般情况下,#表示超级管理员,$表示普通用户。 |
Bash Shell的基础语法
Bash Shell
语法为 命令 [参数] [对象]
,如
1
|
[root@localhost ~]# ls -a /tmp/
|
命令:主体,如ls
。
参数:用来调节输出效果,如 -a
。
对象:文件或者路径。
Bash Shell常用特性
Tab补全
可通过Tab
键补全命令、路径、选项。为了使用更强大的补全功能,需要安装扩展程序,然后退出当前shell
,重新登陆,具体命令如下:
1
|
[root@localhost ~]# yum install bash-completion
|
快捷键
常用快捷键如下:
组合键 |
作用 |
ctrl + c |
终止当前正在运行的程序 |
ctrl + l |
清屏 |
crtl + w |
按单词或者空格进行向前删除 |
ctrl + < (方向键⬅️) |
光标向左移动一个单词 |
ctrl + > (方向键➡️) |
光标向右移动一个单词 |
ctrl + a |
光标跳转至行首 |
ctrl + e |
光标跳转至行尾 |
ctrl + z |
暂停放入后台 |
ctrl + u |
删除光标以前的所有内容 |
ctrl + k |
删除光标以后的所有内容 |
ctrl + r |
搜索此前执行过的命令 |
历史命令
在CentOS
中,可以使用history
命令来查看和管理命令历史记录。history
命令的参数如下:
参数 |
解释 |
-w |
保存历史命令到文件 |
-c |
清空命令历史纪录,但不会清空已保存的文件 |
-d |
删除命令历史的第N条 |
如将本次登陆的历史命令写入到历史文件中,即~/.bash_history
文件。
1
|
[root@localhost ~]# history -w
|
通过!命令序号
可直接调用历史命令。
命令别名
查看系统内置的别名。
1
2
3
4
5
6
7
8
9
10
11
|
[root@localhost ~]# 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'
|
一次性设置别名。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
[root@localhost ~]# alias wk='cat /etc/sysconfig/network-scripts/ifcfg-ens32'
[root@localhost ~]# wk
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens32
UUID=0e24ffd7-3fe6-4383-a28c-d8704cf3b373
DEVICE=ens32
ONBOOT=yes
IPADDR=10.0.0.201
PREFIX=24
GATEWAY=10.0.0.254
DNS1=114.114.114.114
IPV6_PRIVACY=no
|
取消别名(一次性)
1
|
[root@localhost ~]# unalias wk
|
永久设置或者取消别名需要修改~/.bashrc
文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
[root@localhost ~]# cat .bashrc
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
#添加或删除别名。
alias wk='cat /etc/sysconfig/network-scripts/ifcfg-ens32'
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
|