一、什么是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

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

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

五、shell提示符

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

 [root@xuliangwei ~]# whoami
root [root@www ~]# echo $PS1
[\u@\h \W]\$

root:当前登录系统的用户

www:当前系统的主机名称

~:当前所在的位置

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

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

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

命令 选项 参数

command [-options] [arguments]

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

命令:整条shell命令的主体

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

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

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

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

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

出错的例子:

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

六、Bash shell的特性

  1. Tab键补全支持

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

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

[root@www ~]# user
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+. 获取上一个命令的参数

例子:
保存命令历史到历史文件
[root@liyang-98 ~]# history -w
查看历史记录
[root@liyang-98 ~]# history
1 uname -n
2 man hostname
...
清除历史记录
[root@liyang-98 ~]# history -c
[root@liyang-98 ~]# history
1 history
删除第二行历史记录
[root@liyang-98 ~]# history
1 history
2 ls -al
3 history
[root@liyang-98 ~]# history -d 2
[root@liyang-98 ~]# history
1 history
2 history
3 history -d 2
4 history
  1. 命令别名alias

1、如何设置别名

[root@liyang-98 ~]# alias ifnet='vi /etc/sysconfig/network-scripts/ifcfg-ens32'
[root@liyang-98 ~]#
[root@liyang-98 ~]# ifnet
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
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=251eb6ed-4bf8-4144-acd1-653f7fa3e908
DEVICE=ens32
ONBOOT=yes
"/etc/sysconfig/network-scripts/ifcfg-ens32" 20L, 357C

2、如何取消别名

[root@liyang-98 ~]# unalias ifnet
[root@liyang-98 ~]# ifnet
-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、显示当前目录下所有文件
[root@liyang-98 ~]# ls -a
. anaconda-ks.cfg .bash_logout .bashrc .pki
.. .bash_history .bash_profile .cshrc .tcshrc
2、以长格式显示当前目录下所有文件
[root@liyang-98 ~]# ls -al
total 28
dr-xr-x---. 3 root root 147 Mar 29 10:52 .
dr-xr-xr-x. 17 root root 224 Mar 28 17:17 ..
-rw-------. 1 root root 1440 Mar 28 17:18 anaconda-ks.cfg
-rw-------. 1 root root 1088 Mar 29 14:53 .bash_history
-rw-r--r--. 1 root root 18 Dec 29 2013 .bash_logout
-rw-r--r--. 1 root root 176 Dec 29 2013 .bash_profile
-rw-r--r--. 1 root root 176 Dec 29 2013 .bashrc
-rw-r--r--. 1 root root 100 Dec 29 2013 .cshrc
drwxr-----. 3 root root 19 Mar 29 10:52 .pki
-rw-r--r--. 1 root root 129 Dec 29 2013 .tcshrc
3、以人性化的方式显示内容
[root@liyang-98 ~]# ls -lh
total 4.0K
-rw-------. 1 root root 1.5K Mar 28 17:18 anaconda-ks.cfg
4、只列出/etc目录的名字
[root@liyang-98 ~]# ls -d /etc
/etc
5、按修改时间进行排序
[root@liyang-98 ~]# ls -alt
total 28
-rw-------. 1 root root 1088 Mar 29 14:53 .bash_history
dr-xr-x---. 3 root root 147 Mar 29 10:52 .
drwxr-----. 3 root root 19 Mar 29 10:52 .pki
-rw-------. 1 root root 1440 Mar 28 17:18 anaconda-ks.cfg
dr-xr-xr-x. 17 root root 224 Mar 28 17:17 ..
-rw-r--r--. 1 root root 18 Dec 29 2013 .bash_logout
-rw-r--r--. 1 root root 176 Dec 29 2013 .bash_profile
-rw-r--r--. 1 root root 176 Dec 29 2013 .bashrc
-rw-r--r--. 1 root root 100 Dec 29 2013 .cshrc
-rw-r--r--. 1 root root 129 Dec 29 2013 .tcshrc
6、显示文件的inode
[root@liyang-98 ~]# ls -li
total 4
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. grep 正则表达式用引号括起来和元字符加反斜杠转义的测试

    grep 正则表达式用引号括起来和元字符加反斜杠转义的测试 实验在 grep 命令中的表达式:不加引号,加单引号,加双引号的区别,以及部分元字符前加与不加 `\’ 进行转义的区别.实验环境为“实验楼( ...

  2. Delphi动态事件深入分析

    [delphi] view plain copy   print? 首先做一个窗体如下 然后单元中如下代码: 在implementation下面声明两个方法如下: //外部方法,只声明一个参数,此时按 ...

  3. CentOS7或CentOS8 安装VirtualBox Guest Addon缺少kernel-headers的解决办法

    CentOS7或CentOS8 在Oracle VM VirtualBox中安装Guest Addon时,如果缺少kernel-headers和相应的编译库,会提示出错. "kernel h ...

  4. 【JVM学习笔记】系统类加载器

    可以通过“java.system.class.loader"属性指定系统类加载器 默认情况下,该属性值为空: public class Test { public static void m ...

  5. LeetCode.1184-公交车站之间的距离(Distance Between Bus Stops)

    这是小川的第次更新,第篇原创 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第265题(顺位题号是1184).公交车有n个从0到n-1的车站,形成一个圆圈.我们知道所有相邻车站对之间的 ...

  6. vue的特点 关键字

    1.对mvvm模式的理解 Model-view-viewmodel Model数据模型 View代表ui组件 Viewmodel监听模型数据的改变和控制视图行为.处理用户交互,简单理解就是一个同步vi ...

  7. 安装networking-sfc

    申明: 主参考:https://docs.openstack.org/networking-sfc/queens/ 辅参考: https://blog.csdn.net/linshenyuan1213 ...

  8. JAVA -----------交互式程序

    2.6交互式程序 如果程序能在执行期间交互地从用户输入中读取数据,就可使程序每执行一次时计算出新结果,并且新结果取决于输入数据.这样的程序才具有实用性. 2.6.1 Scanner类 Scanner类 ...

  9. Spring Boot + Vue 跨域请求问题

    使用Spring Boot + Vue 做前后端分离项目搭建,实现登录时,出现跨域请求 Access to XMLHttpRequest at 'http://localhost/open/login ...

  10. [转帖]华为Mate20 X 5G版拆解:巴龙5000还配备了3GB独立内存!

    华为Mate20 X 5G版拆解:巴龙5000还配备了3GB独立内存! 投递人 itwriter 发布于 2019-07-29 21:35 评论(7) 有1733人阅读 原文链接 [收藏] « » h ...