美文网首页
day2-Bash Shell

day2-Bash Shell

作者: 恩楠 | 来源:发表于2019-07-25 18:00 被阅读0次

    1. 什么是Shell?

    Shell

    命令解释器,将用户输入的命令翻译给内核,内核处理完成之后,将结果返回Bash。Shell充当的是人与内核之间的翻译官。

    Linux系统的内核负责完成对硬件资源的分配、调度等管理任务。

    2. Bash Shell能做什么?

    Bash Shell几乎能完成所有的操作,例如:

    • 文件管理 (创建、移动、复制、删除、编辑等)
    • 用户管理 (创建、删除等)
    • 磁盘管理
    • 网络管理
    • 进程管理
    • ……

    3. 平时我们是如何使用Bash Shell ?

    1. 单条命令执行,效率低,适合少量的工作。
    2. 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常用特性

    1. Tab补全
      可通过Tab键补全命令、路径、选项。
      补全选项可能需要安装扩展程序,然后退出当前shell,重新登陆,具体命令如下:
    [root@node2 ~]# yum install bash-completion
    
    1. 常用快捷键
    组合键 作用
    ctrl + c 终止当前正在运行的程序*
    ctrl + l 清屏*
    crtl + w 按单词或者空格进行向前删除*
    ctrl + <- 光标向左移动一个单词*
    ctrl + -> 光标向右移动一个单词*
    ctrl + a 光标跳转至行首
    ctrl + e 光标跳转至行尾
    ctrl + z 暂停放入后台
    ctrl + u 删除光标以前的所有内容
    ctrl + k 删除光标以后的所有内容
    ctrl + r 搜索此前执行过的命令
    1. 历史命令History,追溯之前发送的情况。(查找执行的命令历史纪录)

    history常用参数及说明

    选项 解释
    -w 保存名利历史到历史文件
    -c 清空命令历史纪录,但不会清空已保存的文件
    -d 删除命令历史的第N条

    举例

    将本次登陆的历史命令写入到历史文件中,即~/.bash_history文件。

    [root@node2 ~]# history -w
    
    1. 命令别名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
    

    相关文章

      网友评论

          本文标题:day2-Bash Shell

          本文链接:https://www.haomeiwen.com/subject/tjuhrctx.html