1、Bash Shell
一、什么是Bash shell
BashShell是一个命令解释器,它在操作系统的最外层,负责用户程序与内核进行交互操作的一种接口,将用户输入的命令翻译给操作系统,并将处理后的结果输出至屏幕。
当我们使用远程连接工具连接linux服务,系统则会给打开一个默认的shell,我们可在这个界面执行命令、比如:获取系统当前时间,创建一个用户等等
二、Bash shell 能做什么?
使用Shell实现对Linux系统的大部分管理,例如:
- 文件管理
- 权限管理
- 用户管理
- 磁盘管理
- 网络管理
- 软件管理
- 等等
三、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”
参数:命令操作的对象,如文件、目录名等
#以 “-”引导短格式选项(单个字符),例如“-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的特性
- Tab键补全支持
命令补全 选项补全 参数补全
命令补全 选项补全 参数补全
命令补全: 按一下tab键没有任何反应,因为以user开头的命令有很多,系统并不知道你需要使用哪一个
[root@www ~]# user
useradd userdel userhelper usermod usernetctl users
路径补全:/etc/sysconfig/network-scripts/ifcfg-ens32
- 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工具提供的号符: 注释(代表不执行)
- 历史记录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
- 命令别名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的更多相关文章
- bash shell学习-shell基础 (笔记)
When you hoist the sails to cross the sea, you willride the wind and cleave the waves. "长风破浪会有时 ...
- Linux的Bash Shell详解
一.Bash Shell概述 1.什么是bash bash是Bourne Again Shell的简称,是从unix系统中的sh发展而来的,是用户和Linux内核交互的工具,用户通过b ...
- 配置和启动脚本(bash shell学习01)
bash是 Bourne Again Shell简称 ,从unix系统的sh发展而来 查看当前shellecho $SHELL查看系统支持的shellcat /etc/shells cd /binls ...
- 【Linux】-- 认识bash shell
一.前言 我们知道管理整个计算机硬件的其实是系统的内核,这个内核是需要被保护的,所以我们一般用户就只能通过shell来跟内核通信,以让内核达到我们所想要达到的工作.那么Linux系统有多少shell可 ...
- 第四章 Bash Shell 的简单应用
一.Bash Shell 的简单介绍 1.什么是bash shell? 是一个命令解释器 它在操作系统的最外面 负责用户与内核进行交互的一种接口 将用户输入的命令翻译给操作系统,并将处理后的结果输出到 ...
- 第十一章、认识与学习 BASH Bash Shell 的操作环境
bash中的变量动不动就说环境变量,真是奇怪,bash只是一个c语言编写的程序而已,跟环境变量有什么关系?如果知道dos的历史的话就知道有个时代是只有命令行界面而没有图形用户界面,这只小小的程序就包揽 ...
- linux(4) vi编辑/删除、复制、粘贴 /bash shell 环境变量设置/数据流重定向 | 的用法
一.vi文字处理器1.vi与vimvi:文字处理器vim:程序开发工具2.vi介绍三种模式:一般模式(vi刚进入的,不可编辑),编辑模式(按i后,左下方是insert)和命令行模式(按esc退出,:w ...
- 你可能不知道的shell、bash二三事(Centos 7)
个人.bashrc: ~/.bashrc: # .bashrc # User specific aliases and functions alias rm='rm -i' alias cp='cp ...
- 终端(terminal)、tty、shell、控制台(console)、bash之间的区别与联系
1.终端(terminal) 终端(termimal)= tty(Teletypewriter, 电传打印机),作用是提供一个命令的输入输出环境,在linux下使用组合键ctrl+alt+T打开的就是 ...
随机推荐
- Python3 编程第一步_斐波纳契数列_连续赋值
# Fibonacci series: 斐波纳契数列 # 两个元素的总和确定了下一个数 a, b = 0, 1 while b < 10: print(b) a, b = b, a+b # 1 ...
- 【Linux】部署NTP时间同步服务器
1. 查看机器的Linux版本 查看集群内所有服务器的linux版本,确保相同,不要跨大版本. [root@bigdata111 ~]# cat /etc/redhat-release CentOS ...
- 第九组 通信3班 063 自反ACL
一.拓扑图 R4为外网,R2和R3为内网. 二.地址表 Device Interface IP address R1 F 0/0 10.1.63.1 F 0/1 14.1.63.1 R2 F 0/0 ...
- android#编写一个聊天界面
摘自<第一行代码>——郭霖 既然是要编写一个聊天界面,那就肯定要有收到的消息和发出的消息.上一节中我们制作的message_left.9.png可以作为收到消息的背景图,那么毫无疑问你还需 ...
- 安装keystone
在控制节点上执行 controllerHost='controller' MYSQL_PASSWD='m4r!adbOP' RABBIT_PASSWD='0penstackRMQ' ADMIN_PAS ...
- dfs入门-cogs1640[黑白图像]
题目链接:http://cogs.pro:8081/cogs/problem/problem.php?pid=vxSmxkeqa [题目描述] 输入一个n×n的黑白图像(1表示黑色,0表示白色),任务 ...
- 关于keildownload键变为灰色不能使用的问题
有时候 有些朋友可能会遇到这样的问题 突然间download键变成灰色,导致不能将程序下载到芯片中 遇到中问题如果不是软件卡了 那就是可能一不小心点错了,关掉了下载条件“约定” 可以点“魔术棒” ...
- poj3162(树形dp+线段树求最大最小值)
题目链接:https://vjudge.net/problem/POJ-3162 题意:给一棵树,求每个结点的树上最远距离,记为a[i],然后求最大区间[l,r]满足区间内的max(a[i])-min ...
- [转帖]Dockerfile 中 ENTRYPOINT 与 CMD 的区别
Dockerfile 中 ENTRYPOINT 与 CMD 的区别 https://it.baiked.com/system/docker/1975.html 简单区别 Dockerfile 有两个启 ...
- OpenCV-图像处理
直方图比较方法-概述 对输入的两张图像计算得到直方图H1与H2,归一化到相同的尺度空间 然后可以通过计算H1与H2的之间的距离得到两个直方图的相似程度进 而比较图像本身的相似程度.Opencv提供的比 ...