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

    requestLibrary API Keyword Arguments Documentation Create Ntlm Session alias, url, auth, headers={}, ...

  2. Fiddler抓取https设置详解(图文)

    本文主要说明了自己在设置fiddler抓取https过程中所遇到的问题及解决步骤,特别是fiddler在设置证书的环节遇到的各种奇葩问题,特此分享! 声明:本文为原创文章,转载请注明来源:https: ...

  3. COALESCE关键字的使用

    COALESCE是sql标准里面的一个关键字,我们可以和聚合函数sum,count,max等一起使用完成一些特殊的功能. 以下sql语句基于mysql 1.查询某一个列总和,如果没有数据或者NULL返 ...

  4. Linux开机启动过程分析

    开机过程指的是从打开计算机电源直到LINUX显示用户登录画面的全过程.分析LINUX开机过程也是深入了解LINUX核心工作原理的一个很好的途径. 启动第一步--加载BIOS 当 你打开计算机电源,计算 ...

  5. 线程池小结(JDK8)

    1.线程池的好处 降低资源消耗(重复利用已创建的线程减少创建和销毁线程的开销) 提高响应速度(无须创建线程) 提高线程的可管理性 2.相关类图 JDK5以后将工作单元和执行机制分离开来,工作单元包括R ...

  6. NFS PersistentVolume

    一.部署nfs服务端: k8s-master 节点上搭建了 NFS 服务器 (1)安装nfs服务: yum install -y nfs-utils rpcbind vim /etc/exports ...

  7. 【转帖】Linux的桌面环境gnome、kde、xfce、lxde 等等使用比较

    Linux的桌面环境gnome.kde.xfce.lxde 等等使用比较 https://www.cnblogs.com/chenmingjun/p/8506995.html 文章目录 图形界面架起用 ...

  8. [ZJOI2010]数字计数 题解

    题面 这道题是一道数位DP的模板题: 因为窝太蒟蒻了,所以不会递推,只会记忆化搜索: 首先,咋暴力咋来: 将一个数分解成一个数组,这样以后方便调用: 数位DP的技巧:(用1~b的答案)-(1~a的答案 ...

  9. PAT A1036 Boys vs Girls(25)

    AC代码 #include <cstdio> #include <algorithm> using namespace std; const int max_n = 11000 ...

  10. Coloring Edges(有向图环染色)-- Educational Codeforces Round 72 (Rated for Div. 2)

    题意:https://codeforc.es/contest/1217/problem/D 给你一个有向图,要求一个循环里不能有相同颜色的边,问你最小要几种颜色染色,怎么染色? 思路: 如果没有环,那 ...