zoukankan      html  css  js  c++  java
  • bash初识,特性,用法/网站

    一、Bash初识

    Bash Shell介绍

    Bash Shell是一个命令解释器,它在操作系统的最外层,负责用户程序与内核进行交互操作的一种接口,把用户输入的命令翻译给操作系统,并将处理后的结果输出至屏幕。

    Bash Shell的作用

    使用shell实现对linux系统的大部分管理,例如:date

    1. 文件管理

    2. 用户管理

    3. 权限管理

    4. 磁盘管理

    5. 网络管理

    6. 软件管理

    7. 应用管理

    ​ ...

    Bash 两种方式

    1.输入命令方式:

    ​ 效率低,适合少量工作

    2. shell script (脚本方式):

    ​ 效率高,适合大量工作

    命令方式:
    [root@centos7 ~]# date          #获取当前时间
    2019年 06月 14日  星期五 15:47 CST
        
    [root@centos7 ~]# useradd gjy      #增加用户名
    

    bash -version命令:

    (GNU GPL标示,如下图)

    1560499330904

    用脚本方式:
    例如:如果要创建100个用户,使用shell script
    for n in `seq100`;do
            useradd oldboy$n && 
            echo "用户 oldboy$n 已创建成功"
    done
    
    [root@centos7 ~]#  bash user.sh
    表示100个0ldboy用户已创建成功
    

    命令提示符

    例如:[root@centos7 ~]# 
     [root         @     centos7    ~   ]#     #超级管理员
     [oldboy       @     centos7    ~   ]#      #普通用户
    #当前登录的用户       主机名      当前登录的位置
    #后是注释,不执行
    
    home/oldboy:普通用户家目录
    /root:root用户的家目录
    
    查看当前命令解释符
    [root@centos7 ~]# echo $ps1
    [u@h w]$
    echo:在bash shell中调用变量 $
    
    查看当前用户(whoamai:查看当前登录的用户)
    [root@centos7 ~]# whoamai
    root
    
    root:超级系统用户名,也是当前系统的用户
    

    PS1的常用参数以及含义:(了解)

    d: 代表日期,date
    H: 完整的主机名称
    h: 仅取主机名中的第一个名字
    	: 显示时间为24小时格式  如:HH:MM:SS
    T: 显示时间为12小时格式
    A: 显示时间为24小时格式:HH:MM
    u: 当前用户的账号名称
    v: BASH的版本信息
    w: 完整的工作目录名称
    W: 利用bashname取得工作目录名称,只显示最后一个目录名
    #: 下达的第几个命令
    $: 提示字符,如果是root用户,提示符为#,普通用户则为$
      
    颜色:
    30 40黑色
    31 41红色
    ......
    

    固定改变颜色的格式:(了解)

    PS1='[e[32;40m] [[u@h w 	]$ [e[0m]'
    
    PS1="[e[37;40m][[e[32;40m]u[e[37;40m]@h [e[36;40m]w[e[0m]]\$ "
    
    PS1="[e[37;40m][[e[32;40m]u[e[37;40m]@[e[35;40m]h[e[0m] [e[36;40m]w[e[0m]]\$ "
    

    二、Shell的基本语法

    命令          选项        参数
    command   [-options]  [arguments]     中括号可有可无
    
    [root@centos7 ~]# ls            //命令
    [root@centos7 ~]# ls -l       //命令+选项   
    [root@centos7 ~]# ls -l /home/   //命令+选项+参数
    命令:整条shell命令的主体
    选项:用于调节命令的具体功能
    参数:如文件、目录等
    命令必须开头,选项和参数位置可以发生变化
    
    echo:所见即所得,输出echo后面参数的内容
    -e  :识别换行符等特殊符号
      :转义符
    $  :调用变量
    echo 'gjy'
    echo -e 'gjy
    123'    
    

    三、Shell的基本特性

    1.命令补全 tab

    当使用windows查找一个目录层级特别多的文件时,打开的效率会非常的慢,linux查找这样文件时,可以用tab键快速补全。

    1. 命令补全

    2. 参数补全:yum install -y bash-completion

    3. 选项补全:主要是补全路径

    备注:tab键可以实行命令补全,路径补全,在实际生产中tab补全用的最多,可以减少执行命令以及路径出错率,还能提高输入效率。

    例如:、
    [root@centos7 ~]# ifc  
      #按下tab键会自动补全,若按一下tab没反应,就需要按两下tab键,列出所有if开头的命令
    ifcfg   ifcconfig
    [root@centos7 ~]# ifconfig
    
    [root@centos7 ~]# ls /etc/sysconfig/network-scripts/ifcfg-eth0
    

    如果无法补全选项,那么需要一个安装一个扩展包

    [root@centos7 ~]# yum install -y bash-completion
    -y是确定执行,不加'-y',系统会发送指令给你再确定下
    

    2. Linux的快捷键

    ctrl + a:将光标跳转到行首
    ctrl + e:将光标跳转到行末
    Ctrl + w:以空格为单位,将当前光标位置之前的内容删除
    ctrl + u:将当前光标位置之前的内容全部删除
    ctrl + l:清屏
    ctrl + c:终止当前命令
    ctrl + d:退出,断开当前连接(exit,logout)
    ctrl + z:挂起,放后台执行
    ctrl + r:搜索历史命令
    ctrl + s:锁屏
    ctrl + q:解锁
    ctrl +左右:按照单词跳转光标
    esc + . :瞬间显示出上一条命令,最后的内容,以空格分隔
    
    

    3.历史命令history

    历史命令的作用:追溯之前的发生情况,记录历史命令,非常重要,也就是日志审计

    -w : 保存历史命令到文件中write

    -d : 删除历史命令中的 第n行 delete(删除)

    -c : 清空命令历史记录,不会清空文件 clear(清除)

    历史命令保存到文件,当前用户的家目录下有一个隐藏文件:.bash_history

    查看历史记录:
    [root@gong ~]# history
    
    清空历史记录
    [root@gong ~]# history -c
    
    指定一条历史记录删除
    [root@gong ~]# history -d 23
    
    保存历史命令
    [root@gong ~]# history -w
    
    执行上一条命令
    [root@gong ~]# !!
    
    执行上一条ls相关命令
    [root@gong ~]# !ls
    
    执行历史命令中的第23条命令
    [root@gong ~]# !23
    

    4.命令的别名alias

    命令别名就是把用户经常使用的复杂命令简单化,创建出属于自己的命令别名

    创建语法:alias 别名=“命令”
    取消语法:unlias 别名
    
    定义临时别名,查看网络是否可以通,ping 百度,只对当前shell 生效
    [root@gong ~]# alias tong="ping baidu.com"         #需用双引号,单引号输出的结果是引号内的字符串
    PING baidu.com (123.125.114.144) 56(84) bytes of data.
    64 bytes from 123.125.114.144: icmp_seq=1 ttl=128 time=44.2 ms
    64 bytes from 123.125.114.144: icmp_seq=2 ttl=128 time=47.5 ms
    64 bytes from 123.125.114.144: icmp_seq=3 ttl=128 time=46.3 ms
    ......
    
    
    查看所有定义的别名
    [root@gong ~]# alias
    alias cp='cp -i'
    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 tong='ping baidu.com'
    alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde' 
    
    取消别名
    [root@gong ~]# unalias oldboy
    [root@gong ~]# oldboy
    -bash: tong: command not found
            
    永久生效
    [root@gong ~]# vim /etc/bashrc
    alias oldboy="ping baidu.com"
    

    5.获取命令帮助help

    获取ls命令的帮助
    [root@gong ~]# ls --help
    用法:ls[选项]...[文件]...
    
    ls常见选项
    -a  #查看目录下的所有文件,包括隐藏文件
    -l  #以长格式的方式显示文件的详细内容
    -h  #以人性化的方式显示内容,配合 -l 使用
    -d  #只列出目录名,不列出目录以下的内容
    -t  #按修改时间进行排序
    -i  #显示文件的inode(该文件在该分区的一个编号)
    -r  #倒叙
    
    [root@gong ~]# man ls
    
    

    查看Linux命令的网站:

    http://linux.51yip.com/

  • 相关阅读:
    ASP.NET2.0中GridView加入CheckBox实现全选!
    恢复误删数据(SQL Server 2000)--Log Explorer
    url传递中文的解决方案总结
    JavaScript : Tip提示框。
    合并GridView中某列相同信息的行
    ASP.NET 2.0服务器控件与form runat=server标记 !!
    实现天气预报类···························
    正则抓取SINA天气预报数据!!!
    ASP.NET 2.0中将 GridView 导出到 Excel 文件中
    GridView控件修改、删除示例(修改含有DropDownList控件)
  • 原文地址:https://www.cnblogs.com/gongjingyun123--/p/11024376.html
Copyright © 2011-2022 走看看