1. 什么是Shell?
Shell命令解释器,将用户输入的命令翻译给内核,内核处理完成之后,将结果返回Bash。Shell充当的是人与内核之间的翻译官。
Linux系统的内核负责完成对硬件资源的分配、调度等管理任务。
2. Bash Shell能做什么?
Bash Shell几乎能完成所有的操作,例如:
- 文件管理 (创建、移动、复制、删除、编辑等)
- 用户管理 (创建、删除等)
- 磁盘管理
- 网络管理
- 进程管理
- ……
3. 平时我们是如何使用Bash Shell ?
- 单条命令执行,效率低,适合少量的工作。
- Shell Script,效率高,适合复杂且重复性高的工作。
例如通过脚本创建100个用户:
[root@node2 ~]# cat user.sh
#!/bin/bash
for i in {1..100}
do
useradd test$i
echo "Create test$i Is Ok!"
done
4. Bash Shell登陆后的提示符是什么意思?
登陆后,默认提示符格式为:
[root@node2 ~]#
root: 当前登陆系统的用户。
@:分隔符。
node2:当前的主机名。
~:当前所在的位置,~表示用户的家目录。
#:一般情况下,#表示超级管理员;$表示普通用户。
5. Bash Shell的基础语法?
[root@node2 ~]# ls -a /tmp/
命令 [选项] [参数]
命令:主体。
选项:用来调节输出效果。
参数:文件或者路径。
6.Bash Shell常用特性
- Tab补全
可通过Tab键补全命令、路径、选项。
补全选项可能需要安装扩展程序,然后退出当前shell,重新登陆,具体命令如下:
[root@node2 ~]# yum install bash-completion
- 常用快捷键
组合键 | 作用 |
---|---|
ctrl + c | 终止当前正在运行的程序* |
ctrl + l | 清屏* |
crtl + w | 按单词或者空格进行向前删除* |
ctrl + <- | 光标向左移动一个单词* |
ctrl + -> | 光标向右移动一个单词* |
ctrl + a | 光标跳转至行首 |
ctrl + e | 光标跳转至行尾 |
ctrl + z | 暂停放入后台 |
ctrl + u | 删除光标以前的所有内容 |
ctrl + k | 删除光标以后的所有内容 |
ctrl + r | 搜索此前执行过的命令 |
- 历史命令History,追溯之前发送的情况。(查找执行的命令历史纪录)
history常用参数及说明
选项 | 解释 |
---|---|
-w | 保存名利历史到历史文件 |
-c | 清空命令历史纪录,但不会清空已保存的文件 |
-d | 删除命令历史的第N条 |
举例
将本次登陆的历史命令写入到历史文件中,即~/.bash_history文件。
[root@node2 ~]# history -w
- 命令别名alias unalias
查看系统内置的别名
[root@node2 ~]# 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'
[root@node2 ~]#
一次性设置别名
[root@node2 ~]# alias wk='cat /etc/sysconfig/network-scripts/ifcfg-ens32'
[root@node2 ~]# 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
取消别名(一次性)
[root@node2 ~]# unalias wk
永久设置或者取消别名需要修改~/.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
网友评论