第四章 Bash Shell 的简单应用
一、Bash Shell 的简单介绍
1.什么是bash shell?
是一个命令解释器 它在操作系统的最外面
负责用户与内核进行交互的一种接口 将用户输入的命令翻译给操作系统,并将处理后的结果输出到屏幕
2.bash shell作用:
实现对linux系统进行管理,包含:
文件管理 权限管理 用户管理 磁盘管理 网络管理 软件管理 等等
3.Bash shell的执行方式
命令方式 效率低 适合少量的工作
脚本方式 效率高 适合复杂的工作
4.远程连接之后的命令行:
Last login: Wed Jun 10 19:50:59 2020 from 10.0.0.1
[root@jindada ~]#
二、命令提示符的介绍
1.[root@jindada ~]# #超级管理员命令行提示符
[ ] #没有什么特殊的含义 就是起到一个括号的作用 把里面的内容看做是一个整体
root #表示当前登录的用户 我是谁 root本身又是超级管理员 拥有最大的权限
@ #分隔符
jindada #主机名 系统主机名 可以修改,但是是唯一的 所有用户的主机名都是他
~ #表示当前的所在位置 我在哪里 目录 ~ 本身表示当前用户的家目录 /root /home/xx
# #命令行结尾提示符 # 表示是超级管理员的命令行提示符 $ 是普通用户命令行提示符
2.[user@jindada ~]$ #普通用户命令行提示符
注:Linux命令行提示符都是有PS1的变量所控制的
3.#给命令行加上颜色
[root@jindada ~]# echo 'PS1="\[\e[37;40m\][\[\e[32;1m\]\u\[\e[37;40m\]@\h \[\e[36;40m\]\w\[\e[0m\]]\[\e[32;1m\]\\$ \[\e[0m\]"' >>/etc/profile
[root@jindada ~]# source /etc/profile
三、Linux命令的组成结构
1.命令在命令行上面的操作语法:
命令 [选项] [参数/路径]
command options arguments
注:中括号中的内容是可有可无的,不是必须要有的
命令 #每个命令都有自己的功能 你要干什么 你要针对谁做些什么 最主要的,是整条命令的主体
选项 #表示命令的其他的扩展功能 单独指定的命令的其他功能 实现命令的具体功能
参数 #文件 目录 你要对谁操作 文件或者目录都是用路径来表示的
示例:
[root@jindada ~]# ls #命令 没有指定参数时,默认针对是当前所在目录
anaconda-ks.cfg
[root@jindada ~]# ls -l #命令+选项
total 4
-rw-------. 1 root root 1497 Jun 9 20:00 anaconda-ks.cfg
[root@jindada ~]# ls -l /root #命令+选项+参数
total 4
-rw-------. 1 root root 1497 Jun 9 20:00 anaconda-ks.cfg
[root@jindada ~]# ls /root #命令+参数
anaconda-ks.cfg
#选项:
以短横岗 “-” 短格式选项 单个字符 例如: -l
以长横岗 “--” 长格式选项 多个一组字符 例如: --all 这组字符串是一个整体 有些特殊含义
多个短横岗 指定多个功能 -a -l -i ==== -ali 使用一个短横岗
注意:
1. 中括号表示可选,命令的选项和参数是可选的,不是必须要有的
2. 选项表示的是命令的不同功能
3. 参数是命令要操作的对象,这个对象可以是文件或者目录
4. 命令、选项、参数两两之间至少要有一个空格,一个完整的命令或者选项和参数不能有空格的
5. 命令必须要放在开头,选项和参数在有些命令的时候,位置是可以发生变化的
2.执行命令的时候报错
[root@jindada ~]# l s
-bash: l: command not found #命令找不到
#命令写错了,根本没有这个命令
#系统中没有安装这个命令,需要安装才能使用
[root@jindada ~]# ls /roo
ls: cannot access /roo: No such file or directory #没有这个文件或者目录
#文件或者目录名写错了
#路径写错了
#相信电脑,电脑是不会出错的,如果电脑的出现结果跟你想象的不一样,那么一定是你错了,不要那么固执认为自己就是对的
三、bash shell 特性
1. Tab键补全
命令补全
[root@jindada ~]# user
useradd userdel usermod usernetctl users
[root@jindada ~]# s
Display all 220 possibilities? (y or n) #有很多命令,一页显示不全
选项补全 #需要安装一个特定软件
参数补全 路径补全
[root@jindada ~]# ls /r
root/run/
2.命令行常用快捷键
| 命令行常用快捷键 | 特殊含义 |
|---|---|
| Ctrl键 + c | #取消当前的操作 |
| Ctrl键 + d | #退出当前用户的登录 |
| Ctrl键 + a | #把光标从当前位置移动到命令行的行首 |
| Ctrl键 + e | #把光标从当前位置移动到命令行的行尾 |
| Ctrl键 + u | #把光标从当前位置到行首的内容进行剪切或者删除 |
| Ctrl键 + k | #把光标从当前位置到行尾的内容进行剪切或者删除 |
| Ctrl键 + y | #粘贴你所剪切的内容 |
| delete键 | #从前往后删除一个字符 |
| Ctrl键 + w | #删除当前位置至上一个空格的字符 删除一组字符串 |
| Ctrl键 + 左方向键 | #向左移动一组单词 以空格或者特殊字符作为分隔符 |
| Ctrl键 + 右方向键 | #向右移动一组单词 |
| Ctrl键 + l | #清屏 clear 清除当前的窗口内容 |
| Ctrl键 + r | #查找历史命令 搜索最近的一次命令 |
| Ctrl键 + s | #锁屏 锁屏之后,也是可以继续输入命令和操作命令,只是你看不到 |
| Ctrl键 + q | #解锁 |
| Esc键 + . | #获取上一条命令最后的参数 或者最后面的内容 以空格分隔符 |
| !! | #执行上一条执行过的命令 |
| !ls | #执行最近一次以ls开头的命令 |
3. 历史记录
history #显示所有执行过的命令
!id #历史记录中某个命令的历史ID 执行这个id所对应的命令
选项:
-d ID #删除指定的ID信息
-w #将你当前shell窗口执行的命令保存到默认的文件 ~/.bash_history
-c #清除所有命令的历史记录
4. 命令别名
#系统自带的别名
[root@jindada ~]# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
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 which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
ll == ls -l
#如何设置别名
别名的名称不能跟系统中命令名称有冲突
[root@jindada ~]# alias network='ping -c1 baidu.com'
#检查别名
[root@sh-qls ~]# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias network='ping -c1 baidu.com'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
#验证别名
[root@jindada ~]# network
PING baidu.com (39.156.69.79) 56(84) bytes of data.
64 bytes from 39.156.69.79 (39.156.69.79): icmp_seq=1 ttl=128 time=31.2 ms
--- baidu.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 31.235/31.235/31.235/0.000 ms
[root@jindada ~]#
#取消别名
[root@jindada ~]# unalias network
[root@jindada ~]# network
-bash: network: command not found
四、常用获取命令帮助
| 获取命令 | |
|---|---|
| man | 获取指定命令的帮助 |
| help | 只能查看系统内置命令 |
| 命令 +‘--help' | 获取命令选项的帮助 |
| info |
六、互联网模式查找命令
1.https://man.linuxde.net/
2.https://liunx.web3.xin/
3.http://linux.51yip.com/
第四章 Bash Shell 的简单应用的更多相关文章
- Linux Bash Shell j简单入门
BASH 的基本语法 最简单的例子 —— Hello World! 关于输入.输出和错误输出 BASH 中对变量的规定(与 C 语言的异同) BASH 中的基本流程控制语法 函数的使用 2.1 ...
- Linux就该这么学 20181003(第四章Vim/shell/测试条件)
参考链接https://www.linuxprobe.com/ vim文本编辑器 命令模式:控制光标移动,可对文本进行复制,黏贴,删除和查找工作 输入模式:正常的文本录入 末行模式:保存或退出文档,以 ...
- 【第四章】Shell 条件测试表达式
shell中条件测试的三种格式: 格式1: test 条件表达式格式2: [ 条件表达式 ]格式3: [[ 条件表达式 ]] 使用test: [root@host- ~]# test -f file ...
- 编译原理-第四章 语法分析-4.6 简单LR技术
简单LR分析方法 一.LR语言分析器模型与算法 1.输入.输出.栈和方法 2.LR语法分析表 3.LR分析程序 4.例 例1: 例2: 二.LR语法分析算法 1.LR语法分析算法的定义和概念 定义: ...
- bash shell + python简单教程,让你的mac/linux终端灰起来~
前提条件:已经安装python,命令行支持bash 在bash_profile中添加 function ccolor { python /Users/xirtam/Documents/tools/cc ...
- 【Linux】-- 认识bash shell
一.前言 我们知道管理整个计算机硬件的其实是系统的内核,这个内核是需要被保护的,所以我们一般用户就只能通过shell来跟内核通信,以让内核达到我们所想要达到的工作.那么Linux系统有多少shell可 ...
- bash shell学习-shell基础 (笔记)
When you hoist the sails to cross the sea, you willride the wind and cleave the waves. "长风破浪会有时 ...
- 第四章:更多的bash shell命令
第四章:更多的bash shell命令 监测程序 ps (其他ps内容见#1 ) Unix风格的ps命令参数 参数 描述 -A 显示所有进程 -N 显示与指定参数不符的所有进程 -a 显示除控制进程( ...
- 鸟哥的Linux私房菜——第十四章:Bash Shell
视频链接:http://www.bilibili.com/video/av10094012/ 本章目录: 1. Bash shell1.1 什么是 shell ? (我们通过shell与Kernel核 ...
随机推荐
- Kubernetes中的Helm和修改证书有效时间(八)
一.Helm的介绍 1,概念 Helm 把 k8s 资源(比如 deployments.services 或 ingress 等)打包到一个 chart 中,而 chart 被保存到 chart 仓库 ...
- vue2.5开发去哪儿了流程
初始化项目 在 src/assets 中添加样式初始化文件 reset.css ; border.css 本地引入取消延迟300毫秒的控件 cnpm i fastclick -S 在mian.js中引 ...
- hystrix总结之缓存
通过实现HystrixCommand或者HystrixObservableCommand的getCacheKey方法,可以启动缓存. public class CommandUsingRequestC ...
- pytest自学第二期
2.1 通过python解释器调用 pytest 我不知道有什么用:-) 以后就这样,如果有自己学过但是不知道的东西,就挂在那里晒着鞭尸,一直不会就一直鞭尸,直到自己参透了其中的道理再回到这里补全 在 ...
- 关于KeePass实现ssh协议的自动登录
本文主要介绍一下,在keepass中如何实现linux主机的ssh方式的自动登录 keepass版本:KeePass 2.45 在keepass的URL中,其实默认也是内置了ssh的,其原理是调用pu ...
- 【Python】数据结构
列表的更多特性 list.append(x) 在列表的末尾添加一个元素.相当于 a[len(a):] = [x] . list.extend(iterable) 使用可迭代对象中的所有元素来扩展列表. ...
- 063 01 Android 零基础入门 01 Java基础语法 08 Java方法 01 无参无返回值方法
063 01 Android 零基础入门 01 Java基础语法 08 Java方法 01 无参无返回值方法 本文知识点:无参无返回值方法 无参无返回值方法 案例 为什么使用方法?--方便复杂问题调用 ...
- Opencv的imread用法
所有参考来自网上仅仅做学习记录用,具体正确性需要在具体项目各自验证,不涉及具体错误代码处理调试等问题,欢迎发现发现问题~ 参考: 1. https://blog.csdn.net/LiheZhu/ar ...
- Java面试题系列 ----- Java基础面试题(91道)
更多详情点击查看,点这里!这里!!这里!!! 文末获取所有面试PDF文档! Java概述 1. 何为编程 编程就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果的过程. 为了 ...
- 二进制K8S集群使用Bootstrap Token 方式增加Node
TLS Bootstraping:在kubernetes集群中,Node上组件kebelet和kube-proxy都需要与kube-apiserver进行通信,为了增加传输安全性,采用https方式, ...