一、什么是Bash shell

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

当我们使用远程连接工具连接linux服务,系统则会给打开一个默认的shell,我们可在这个界面执行命令、比如:获取系统当前时间,创建一个用户等等

二、Bash shell 能做什么?

使用Shell实现对Linux系统的大部分管理,例如:

  1. 文件管理
  2. 权限管理
  3. 用户管理
  4. 磁盘管理
  5. 网络管理
  6. 软件管理
  7. 等等

三、Bash shell执行方式

输入命令方式 --->效率低--->适合少量的工作

shell script --->效率高--->适合复杂的工作

四、了解Bash shell

Bash ---> GNU/Bash

  1. [root@www ~]# bash -version
  2. GNU bash, version 4.2.46(2)-release (x86_64-redhat-linux-gnu)

Bash是默认的shell,其实还用很多的其他shell,例如:csh,sh等

五、shell提示符

$ = 普通用户,# = root用户(超级管理员)

  1. [root@xuliangwei ~]# whoami
  2. root
  3. [root@www ~]# echo $PS1
  4. [\u@\h \W]\$

root:当前登录系统的用户

www:当前系统的主机名称

~:当前所在的位置

:通常情况下,是超级管理员的身份

:只要是普通用户,则为" role="presentation" style="font-size: 100%; display: inline-block; position: relative;">只要是普通用户,则为:只要是普通用户,则为符号

命令行bash shell,为用户提供输入,执行命令的界面

命令 选项 参数

command [-options] [arguments]

  1. [root@xuliangwei ~]# ls #命令
  2. [root@xuliangwei ~]# ls -a #命令+选项
  3. [root@xuliangwei ~]# ls -a /home/ #命令+选项+参数

命令:整条shell命令的主体

选项:用于调节命令的具体功能

  1. #以 “-”引导短格式选项(单个字符),例如“-a”
  2. #以“--”引导长格式选项(多个字符),例如“--all”
  3. #多个短格式选项可以写在一起,只用一个“-”引导,例如“-al”

参数:命令操作的对象,如文件、目录名等

注意: 选项和参数在有些命令的时候时,位置可以发生变化。

注意: 命令必须开头, 选项和参数位置可以发生变化

出错的例子:

  1. [root@www ~]# ls-a
  2. bash: ls-a: command not found... 找不到命令(要么命令写错了,要么就真的没有该命令)
  3. [root@www ~]# ls /.bashrc
  4. ls: cannot access /.bashrc: No such file or directory 没有这个文件或目录

六、Bash shell的特性

  1. Tab键补全支持

    命令补全 选项补全 参数补全

命令补全: 按一下tab键没有任何反应,因为以user开头的命令有很多,系统并不知道你需要使用哪一个

  1. [root@www ~]# user
  2. useradd userdel userhelper usermod usernetctl users

路径补全:/etc/sysconfig/network-scripts/ifcfg-ens32

  1. bash shell常用快捷键

    ctrl +a 跳转光标至本行的首部

    ctrl +e 跳转光标至本行的尾部

    ctrl +u 删除从光标到行首的所有字符

    ctrl +k 删除从光标到行末的所有字符

    ctrl +l 清屏,还可以使用clear命令

    ctrl +c 终止当前的任务

    ctrl +d 退出服务器, 还可以使用logout或exit

    ctrl +w 按空格删除光标之前的内容

    ctrl +z 将当前的任务挂起

    ctrl +r 搜索命令,

    ctrl +s 锁住屏幕,解锁ctrl+c [忽略]

    ctrl + 左右方向键 按照单词快速的跳转光标, Xshell工具提供的

    号符: 注释(代表不执行)

  2. 历史记录history

history 命令直接查看当前shell所执行过的命令

!100 调用history历史命令中编号为100

!! 执行上一次执行过的命令

选项

选项 描述
-w 保存命令历史到历史文件 write #写入到当前用户的家目录下.bash_history
-c 清空命令历史记录,不会清空文件 clear
-d 删除命令历史到第N行 delete

Esc+. 获取上一个命令的参数

  1. 例子:
  2. 保存命令历史到历史文件
  3. [root@liyang-98 ~]# history -w
  4. 查看历史记录
  5. [root@liyang-98 ~]# history
  6. 1 uname -n
  7. 2 man hostname
  8. ...
  9. 清除历史记录
  10. [root@liyang-98 ~]# history -c
  11. [root@liyang-98 ~]# history
  12. 1 history
  13. 删除第二行历史记录
  14. [root@liyang-98 ~]# history
  15. 1 history
  16. 2 ls -al
  17. 3 history
  18. [root@liyang-98 ~]# history -d 2
  19. [root@liyang-98 ~]# history
  20. 1 history
  21. 2 history
  22. 3 history -d 2
  23. 4 history
  1. 命令别名alias

1、如何设置别名

  1. [root@liyang-98 ~]# alias ifnet='vi /etc/sysconfig/network-scripts/ifcfg-ens32'
  2. [root@liyang-98 ~]#
  3. [root@liyang-98 ~]# ifnet
  4. TYPE=Ethernet
  5. PROXY_METHOD=none
  6. BROWSER_ONLY=no
  7. BOOTPROTO=none
  8. DEFROUTE=yes
  9. IPV4_FAILURE_FATAL=no
  10. IPV6INIT=yes
  11. IPV6_AUTOCONF=yes
  12. IPV6_DEFROUTE=yes
  13. IPV6_FAILURE_FATAL=no
  14. IPV6_ADDR_GEN_MODE=stable-privacy
  15. NAME=ens32
  16. UUID=251eb6ed-4bf8-4144-acd1-653f7fa3e908
  17. DEVICE=ens32
  18. ONBOOT=yes
  19. "/etc/sysconfig/network-scripts/ifcfg-ens32" 20L, 357C

2、如何取消别名

  1. [root@liyang-98 ~]# unalias ifnet
  2. [root@liyang-98 ~]# ifnet
  3. -bash: ifnet: command not found

3、为什么系统默认存在一些别名:

防止在执行危险指令时,发生误操作的情况,比如:alias rm='rm -i'

注意:当前的别名全部都是针对当前的Shell生效,临时生效。

4.永久生效{扩展}

将内容写入到 /etc/bashrc 所有的shell都生效

5.命令帮助 --help man

[root@www ~]# ls --help

用法:ls [选项]... [文件]...

ls 常见选项

选项 描述
-a 查看目录下的所有文件,包括隐藏文件
-i 以长格式的方式显示文件的详细内容
-h 以人性化的方式显示内容,配合-l使用
-d 只列出目录名,不列出目录以下的内容
-t 按修改时间进行排序
-i 显示文件的inode号
  1. 例子:
  2. 1、显示当前目录下所有文件
  3. [root@liyang-98 ~]# ls -a
  4. . anaconda-ks.cfg .bash_logout .bashrc .pki
  5. .. .bash_history .bash_profile .cshrc .tcshrc
  6. 2、以长格式显示当前目录下所有文件
  7. [root@liyang-98 ~]# ls -al
  8. total 28
  9. dr-xr-x---. 3 root root 147 Mar 29 10:52 .
  10. dr-xr-xr-x. 17 root root 224 Mar 28 17:17 ..
  11. -rw-------. 1 root root 1440 Mar 28 17:18 anaconda-ks.cfg
  12. -rw-------. 1 root root 1088 Mar 29 14:53 .bash_history
  13. -rw-r--r--. 1 root root 18 Dec 29 2013 .bash_logout
  14. -rw-r--r--. 1 root root 176 Dec 29 2013 .bash_profile
  15. -rw-r--r--. 1 root root 176 Dec 29 2013 .bashrc
  16. -rw-r--r--. 1 root root 100 Dec 29 2013 .cshrc
  17. drwxr-----. 3 root root 19 Mar 29 10:52 .pki
  18. -rw-r--r--. 1 root root 129 Dec 29 2013 .tcshrc
  19. 3、以人性化的方式显示内容
  20. [root@liyang-98 ~]# ls -lh
  21. total 4.0K
  22. -rw-------. 1 root root 1.5K Mar 28 17:18 anaconda-ks.cfg
  23. 4、只列出/etc目录的名字
  24. [root@liyang-98 ~]# ls -d /etc
  25. /etc
  26. 5、按修改时间进行排序
  27. [root@liyang-98 ~]# ls -alt
  28. total 28
  29. -rw-------. 1 root root 1088 Mar 29 14:53 .bash_history
  30. dr-xr-x---. 3 root root 147 Mar 29 10:52 .
  31. drwxr-----. 3 root root 19 Mar 29 10:52 .pki
  32. -rw-------. 1 root root 1440 Mar 28 17:18 anaconda-ks.cfg
  33. dr-xr-xr-x. 17 root root 224 Mar 28 17:17 ..
  34. -rw-r--r--. 1 root root 18 Dec 29 2013 .bash_logout
  35. -rw-r--r--. 1 root root 176 Dec 29 2013 .bash_profile
  36. -rw-r--r--. 1 root root 176 Dec 29 2013 .bashrc
  37. -rw-r--r--. 1 root root 100 Dec 29 2013 .cshrc
  38. -rw-r--r--. 1 root root 129 Dec 29 2013 .tcshrc
  39. 6、显示文件的inode
  40. [root@liyang-98 ~]# ls -li
  41. total 4
  42. 67158083 -rw-------. 1 root root 1440 Mar 28 17:18 anaconda-ks.cfg

1、Bash Shell的更多相关文章

  1. bash shell学习-shell基础 (笔记)

    When you hoist the sails to cross the sea, you willride the wind and cleave the waves. "长风破浪会有时 ...

  2. Linux的Bash Shell详解

    一.Bash Shell概述 1.什么是bash         bash是Bourne Again Shell的简称,是从unix系统中的sh发展而来的,是用户和Linux内核交互的工具,用户通过b ...

  3. 配置和启动脚本(bash shell学习01)

    bash是 Bourne Again Shell简称 ,从unix系统的sh发展而来 查看当前shellecho $SHELL查看系统支持的shellcat /etc/shells cd /binls ...

  4. 【Linux】-- 认识bash shell

    一.前言 我们知道管理整个计算机硬件的其实是系统的内核,这个内核是需要被保护的,所以我们一般用户就只能通过shell来跟内核通信,以让内核达到我们所想要达到的工作.那么Linux系统有多少shell可 ...

  5. 第四章 Bash Shell 的简单应用

    一.Bash Shell 的简单介绍 1.什么是bash shell? 是一个命令解释器 它在操作系统的最外面 负责用户与内核进行交互的一种接口 将用户输入的命令翻译给操作系统,并将处理后的结果输出到 ...

  6. 第十一章、认识与学习 BASH Bash Shell 的操作环境

    bash中的变量动不动就说环境变量,真是奇怪,bash只是一个c语言编写的程序而已,跟环境变量有什么关系?如果知道dos的历史的话就知道有个时代是只有命令行界面而没有图形用户界面,这只小小的程序就包揽 ...

  7. linux(4) vi编辑/删除、复制、粘贴 /bash shell 环境变量设置/数据流重定向 | 的用法

    一.vi文字处理器1.vi与vimvi:文字处理器vim:程序开发工具2.vi介绍三种模式:一般模式(vi刚进入的,不可编辑),编辑模式(按i后,左下方是insert)和命令行模式(按esc退出,:w ...

  8. 你可能不知道的shell、bash二三事(Centos 7)

    个人.bashrc: ~/.bashrc: # .bashrc # User specific aliases and functions alias rm='rm -i' alias cp='cp ...

  9. 终端(terminal)、tty、shell、控制台(console)、bash之间的区别与联系

    1.终端(terminal) 终端(termimal)= tty(Teletypewriter, 电传打印机),作用是提供一个命令的输入输出环境,在linux下使用组合键ctrl+alt+T打开的就是 ...

随机推荐

  1. 一百零三:CMS系统之使用sweetalert提示框优化返回结果

    在base模板中引用 在修改密码的js中使用 $(function () { $('#submit').click(function (evnet) { evnet.preventDefault(); ...

  2. Scala中的列表可以添加元素吗?

    列表或许是Scala程序中最常用到的数据结构了,其与数组非常相似,最重要的两点差别为: 1.列表是不可变的: 2.列表具有递归结构,而数组是连续的. 在实际使用中非常容易这样用: val a = Li ...

  3. PO BAPI "BAPI_PO_CREATE1"

    DATA: poheader LIKE  bapimepoheader,         poheaderx LIKE  bapimepoheaderx,         poitem  LIKE   ...

  4. MySQL常用维护命令和操作

    MySQL数据库安装后,除了包括MySQL服务器进程管理外,还提供了大量工具用于管理和维护MySQL服务器的其它工作.下面PHP程序员雷雪松介绍的这些命令都是在MySQL交互界面以外的命令行中执行的. ...

  5. unmix和conditional average:消混叠和条件均值

    unmix 该程序用来消除“像素混叠”.所谓像素混叠,是值在自然场景的图像中,边缘线成像到cmos的像素上时,某些像素会刚好跨在该边缘线上. 这样的像素特点就是,其R.G.B三色像素梯度值不一致.比如 ...

  6. 今天发现一个Window系统服务增删改查神器:NSSM

    官网地址:https://nssm.cc Win10系统下这个:https://nssm.cc/ci/nssm-2.24-101-g897c7ad.zip 官方的帮助,英语的,可以大概看一下: htt ...

  7. 5分钟了解OWL本体建模语言

    一.概念: 定义:一种定义和实例化web本体的语言   本体:与xml schema不同,是知识表示,而不是一种消息格式   优点:可以推理   开放世界的假设:本体信息只增加,可以存在矛盾冲突的事实 ...

  8. 深入理解JVM(二)JVM内存模型

    一.前言 上文讲过了虚拟机的内存划分,即,我们将内存分为线程共享和线程私有. 线程共享的即java堆,和方法区.java堆大家可能都不会陌生:而方法区中包含了常量池,他也被称为永久代.通常方法区也会被 ...

  9. C学习笔记-运算符

    一些基本概念 数据对象:泛指数据在内存的存储区域 左值:表示可以被更改的数据对象 右值:能赋给左值的量 算数运算符 运算符 描述 实例 + 把两个操作数相加 a + b - 从第一个操作数中减去第二个 ...

  10. Kubernetes 相关镜像pull 不下来问题收集

    1. 可在相关的镜像前添加 keveon 或者 mirrorgooglecontainers 就可以下载镜像, 然后在修改 tag docker pull mirrorgooglecontainers ...