当前位置: 首页 > news >正文

Bash初识

Bash初识
1.简介:
一.什么是shell?
用过计算机的人知道,我只要点点鼠标计算机就能按照我们的要求来进行相应的操作,那么,你有没有想过计算机为什么能够识别我们的操作呢?俗话说,人有人语,机有机语,人说的话机器怎么会懂呢?不懂改咋办?找翻译啊!对了,shell就是充当人与计算机之间的翻译官。

因为在Linux中图形界面不是很强,一般都只是直接通过命令窗口来进行系统控制的,所以shell就显得特别重要。你也可以简单的将shell理解为命令行,与之相关的还有shell脚本,就是shell能识别的一连串命令行。说了那么多,来看个官方定义:

Unix shell:一种壳层与命令行界面,是Unix操作系统下传统的用户和计算机的交互界面。普通意义上的shell就是可以接受用户输入命令的程序。它之所以被称作shell是因为它隐藏了操作系统低层的细节。Unix操作系统下的shell既是用户交互的界面,也是控制系统的脚本语言。

二、什么是bash?
bash是shell的一种,在早年的UNIX年代,发展者众多,所以就有许多不同的版本,例如Bourne shell(sh),这也是必然的,每种shell都有其应用的需求,很难说孰好孰坏。而在Linux中默认的shell就是Bourne-Again shell(简称bash),所以学习linux就必须要掌握bash的用法。另外一个是伯克利分校比尔▪乔伊写的C Shell(csh),因为类似C语言,故此得名。而由这两种又发展出很多其它的版本,不过根基都在这里。

三、总结
shell是一种语言名称, 充当人与计算机之间沟通的桥梁。具体的语法则遵循bash或csh的规定. 而具体的bash又有很多的语法,就像是一门编程语言.

2.Bash shell的作用:
使用shell实现对Linux系统的大部分管理,例如:

文件管理
权限管理
用户管理
磁盘管理
网络管理
软件管理
应用管理
…等等管理

3.如何使用Bash shell
执行方式:
#一.输入命令方式 ===> 效率低 ===>适合少量工作
eg:获取当前时间:
[root@localhost ~]# date
Wed Mar 16 22:43:13 CST 2022
创建用户:
[root@localhost ~]# useradd lw

#二.shell script(脚本) ===> 效率高 ===>适合复杂的工作eg:创建100个用户:
for n in `seq 100`;douseradd lw && \echo "用户 lw 已创建成功"
done

shell提示符

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

#查看当前用户
[root@localhost ~]# whoami
root

#查看当前命令提示符
[root@lw ~]# echo $PS1
[\u@\h \W]$
‘root:当前系统用户 lw:当前系统主机名 ~:当前所在位置’
PS1的常用参数以及含义

\d :代表日期,格式为weekday month date,例如:“Mon Aug 1”

\H :完整的主机名称

\h :仅取主机名中的第一个名字

\t :显示时间为24小时格式,如:HH:MM:SS

\T :显示时间为12小时格式

\A :显示时间为24小时格式:HH:MM

\u :当前用户的账号名称

\v :BASH的版本信息

\w :完整的工作目录名称

\W :利用basename取得工作目录名称,只显示最后一个目录名

# :下达的第几个命令

$ :提示字符,如果是root用户,提示符为 # ,普通用户则为 $
  
  
#颜色
30 40 黑色
31 41 红色
32 42 绿色
33 43 黄色
34 44 蓝色
35 45 紫红色
36 46 青蓝色
37 47 白色
{1

基础语法

#命令 选项 参数
command [-options] [arguments]

[root@lw ~]# ls //命令
[root@lw ~]# ls -l //命令+选项
[root@lw ~]# ls -l /home/ //命令+选项+参数
#命令:整条shell命令的主体
#选项:用于调节命令的具体功能
#以’-‘引导段个事选项(单个字符),例如”-a“
#以’–'引导长格式选项(多个字符),例如”–all“
#多个短格式选项可以卸载一起,只用一个”-“引导,例如”-la“
#参数:命令操作与偶的对象,如文件、目名等
#命令必须开头,选项和参数位置可以发生变化
命令快捷键

Ctrl + a #光标跳转至正在输入的命令行的首部
Ctrl + e #光标跳转至正在输入的命令行的尾部
Ctrl + w #按照空格来删除bash内容
Ctrl + c #终止前台运行的程序
Ctrl + d #在shell中,ctrl-d表示退出当前shell。(logout、exit)
Ctrl + z #将任务暂停,挂至后台
Ctrl + l #清屏,和clear命令等效。
Ctrl + k #删除从光标到行末的所有字符
Ctrl + u #删除从光标到行首的所有字符
Ctrl + r #搜索历史命令, 利用关键字
Ctrl + s #锁屏
Ctrl + q #解锁
Ctrl + 左右 #按照单词快速跳转光标(Xshell提供的)
ESC + . #获取最后的指令
#在命令行前加面加 “#” 则该命令不会被执行
历史命令

在linux系统使用的时候,我们往往进行很多命令的输入,有时需要重复输入历史命令

-w:保存命令历史到文件 write
-c:清空命令历史记录,不会清空文件 clear
-d:删除命令历史的第N行 delete
#查看历史记录
[root@lw ~]# history

#清空历史记录
[root@lw ~]# history -c

#指定一条历史记录删除
[root@lw ~]# history -d 110

#保存历史命令
[root@lw ~]# history -w

#执行上一条命令
[root@lw ~]# !!

#执行上一条ls相关命令
[root@lw ~]# !ls
ls /etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth0

#执行历史命令中的第74条命令
[root@lw ~]# !74

命令的别名

命令别名讲用户经常使用的复杂命令简单化,创建出属于自己的命令别名

创建语法:alias 别名=“命令”

取消语法: unalias 别名

获取命令帮助

#获取ls命令的帮助
[root@db04 ~]# ls --help
用法:ls [选项]… [文件]…

#ls常见选项
-a //查看目录下的所有文件,包括隐藏文件
-l //以长格式的方式显示文件的详细内容
-h //以人性化的方式显示内容,配合-l使用
-d //只列出目录名,不列出目录以下的内容
-t //按修改时间进行排序
-i //显示文件的inode(该文件在该分区的一个编号)
-r //倒叙

[root@db04 ~]# man ls
命令执行的流程

判断命令是否通过绝对路径执行
判断命令是否存在别名
判断用户输入的是内部命令还是外部命令
内部命令直接执行,外部命令检测是否存在缓存
检测PATH路径,有执行,无报错
内部命令:shell程序自带的命令

外部命令:在系统PATH变量的某个路径下的可执行程序

使用type命令检测用户输入的命令属于内部命令还是外部命令。
#cd命令属于shell内部命令
[root@db04 ~]# type -a cd
cd is a shell builtin
cd is /usr/bin/cd

#ping属于外部命令, 同时会打印当前命令路径
[root@db04 ~]# type -a  ping
ping is /bin/ping

修改命令提示符的步骤:

编辑文件: vi .bashrc
进入编辑模式: 按i键进入insert编辑模式
保存文件:按住Shift+ZZ
立即生效: source.bashrc

相关文章:

Bash初识

Bash初识 1.简介: 一.什么是shell? 用过计算机的人知道,我只要点点鼠标计算机就能按照我们的要求来进行相应的操作,那么,你有没有想过计算机为什么能够识别我们的操作呢?俗话说,人有人语,机有机…...

ElasticSearch Script 操作数据最详细介绍

文章目录ElasticSearch Script基础介绍基础用法List类型数据新增、删除nested数据新增、删除根据指定条件修改数据根据指定条件修改多个字段数据-查询条件也使用脚本根据指定条件删除nested中子数据数据根据条件删除数据删除之后结果创建脚本,通过脚本调用根据条件查…...

【黑盒模糊测试】路由器固件漏洞挖掘实战--AFL++ qemu_mode

前言 很久之前就想写AFL++的qemu_mode了,只是模糊测试专题的文章有些过于耗费时间,加上工作原因导致一直搁置。最近需要出差会用到黑盒模糊测试,所以就当做复习一遍,我记得Fuzzing 101也有一个qemu_mode的练习,有空的话下一篇文章更新吧~ 编写不易,如果能够帮助到你,希望…...

【java实现Word模板导出】Xdocreport和Freemaker

如果只是生成简单的word文件的话可以使用 Hutool 上手简单使用方便。 但如果需要导出内容比较复杂的word文件的话用那个就不合适了,这时候就需要Xdocreport这玩意了。 制作模板 新建一个word文档在需要插入变量的地方使用快捷键 Crtl F9 来生成一个域 然后右键单…...

Stable-Baselines 3 部分源代码解读 3 ppo.py

Stable-Baselines 3 部分源代码解读 ./ppo/ppo.py 前言 阅读PPO相关的源码,了解一下标准库是如何建立PPO算法以及各种tricks的,以便于自己的复现。 在Pycharm里面一直跳转,可以看到PPO类是最终继承于基类,也就是这个py文件的内…...

[业务逻辑] 订单超时怎么处理

文章目录1.订单的过程分析2.JDK自带的延时队列 (单机)3.RabbitMQ的延时消息 (消息队列方案)4.RocketMQ的定时消息 (消息队列方案)5.Redis过期监听 (Redis方案)6.定时任务分布式批处理 (扫表轮训方案)7.总结1.订单的过程分析 一个订单流程中有许多环节要用到超时处理 买家超时未…...

iOS上架及证书最新创建流程

目前使用uniapp框架开发app,大大节省了我们兼容多端应用的工作量和人手,所以目前非常缺乏ios上架和证书创建流程流程的文档假如你没有任何的打包或上架经验,参考本文有很大的收益。通常申请ios证书和上架ipa应用,是需要MAC电脑的&…...

python入门

Python是一种高级编程语言,由荷兰计算机科学家Guido van Rossum于1991年发明。Python语言具有简洁、清晰和易于阅读的语法,同时也拥有广泛的应用领域,包括Web开发、数据分析、人工智能、科学计算等。Python的特点是能够快速开发原型和简单易读…...

Linux部署java项目

Linux部署java项目启动虚拟机这部分的操作之前学习虚拟机时已经做过,可以参照之前的笔记即可推荐大家重新解压纯净版的RockyLinux来实现启动后登录rockylinuxsudo su -修改root用户密码passwd下面就切换到客户端软件连接虚拟机ifconfigifconfig | more查看ip地址使用Bvssh软件连…...

elisp 从简单实例开始.

elisp 从简单实例开始. 我们怎样用elisp 与电脑交互,先从简单实例开始, 逐渐掌握它的几个对象. 与电脑交互,总要有输入,输出,先看两个简单例子. 输入从minibuffer,输出可以是minibuffer 或者缓冲区. 一: 从minibuffer 中输入, 在指定缓冲中插入文字(insert)x ;;;;;;;;;;;;;;;;…...

ThreeJS加载geojson数据实现3D地图

ThreeJS加载geojson数据实现3D地图,主要通过借助geojson地理信息数据转摩托尔坐标实现,中间借助了d3.js的地图处理方法,最后通过threejs渲染到页面上: 通过平台获取GeoJson格式的行政区域借助d3的方法,将坐标系转摩托尔坐标利用ThreeJS中的自定义Shape,绘制地图利用Three…...

深度学习无监督磁共振重建方法调研(二)

深度学习无监督磁共振重建方法调研(二)Self-supervised learning of physics-guided reconstruction neural networks without fully sampled reference data(Magnetic Resonance in Medicine 2020)模型设计实验结果PARCEL: Physi…...

蓝桥杯入门即劝退(十九)两两交换链表

-----持续更新蓝桥杯入门系列算法实例-------- 如果你也喜欢Java和算法,欢迎订阅专栏共同学习交流! 你的点赞、关注、评论、是我创作的动力! -------希望我的文章对你有所帮助-------- 一、题目描述 给你一个链表,两两交换其中…...

【Java 面试合集】接口以及抽象类

接口以及抽象类 1. 概述 嗨,【Java 面试合集】又来了,今天给大家分享的内容是接口以及抽象类。一看这个概念很多人都知道,但是方方面面的细节不一定知道哦,今天我们就从方方面面的细节来讲讲 2. 相同点: 都是上层的抽…...

LeetCode 2391. 收集垃圾的最少总时间

给你一个下标从 0 开始的字符串数组 garbage ,其中 garbage[i] 表示第 i 个房子的垃圾集合。garbage[i] 只包含字符 ‘M’ ,‘P’ 和 ‘G’ ,但可能包含多个相同字符,每个字符分别表示一单位的金属、纸和玻璃。垃圾车收拾 一 单位…...

【PMP考试最新解读】第七版《PMBOK》应该如何备考?(含最新资料)

PMP新版大纲加入了ACP敏捷管理的内容,而且还不少,敏捷混合题型占到了 50%,前不久官方也发了通知8月启用第七版《PMBOK》,大家都觉得考试难度提升了,我从新考纲考完下来,最开始也被折磨过一段时间&#xff0…...

金三银四软件测试面试如何拿捏面试官?【接口测试篇】

九、接口测试 9.1 接口测试怎么测 (jmeter版本) 首先开发会给我们一个接口文档,我们根据开发给的接口文档,进行测试点的分析,主要是考虑正常场景与异常场景,正常场景,条件的组合,…...

Hive基操

数据交换 //hive导出到hdfs /outstudentpt 目录 0: jdbc:hive2://guo146:10000> export table student_pt to /outstudentpt; //从hdfs导入到hive 0: jdbc:hive2://guo146:10000> import table studentpt from /outstudentpt; 数据排序 Order by会对所给的全部数据进行…...

CSS(配合html的网页编程)

续上一篇博客,CSS是前端三大将中其中的一位,主要负责前端的皮,也就是负责html的装饰.一、基本语法规则也就是:选择器若干属性声明(选中一个元素然然后进行属性声明)CSS代码是放在style标签中,它可以放在head中也可以放在body中 ,可以放到代码的任意位置.color也就是设置想要输入…...

MATLAB/Simulink 通信原理及仿真学习(三)

文章目录MATLAB/Simulink 通信原理及仿真学习(三)3. 通信信号与系统分析3.1 离散信号和系统3.1.1 离散信号3.1.2 离散时间信号3.1.3 信号的能量和功率3.2 傅里叶(Fourier)分析3.2.1 连续时间信号的Fourier变换3.2.2 离散时间信号的…...

DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径

目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来

一、破局:PCB行业的时代之问 在数字经济蓬勃发展的浪潮中,PCB(印制电路板)作为 “电子产品之母”,其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透,PCB行业面临着前所未有的挑战与机遇。产品迭代…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望

文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...

【入坑系列】TiDB 强制索引在不同库下不生效问题

文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

【解密LSTM、GRU如何解决传统RNN梯度消失问题】

解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)

骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术,它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton):由层级结构的骨头组成,类似于人体骨骼蒙皮 (Mesh Skinning):将模型网格顶点绑定到骨骼上,使骨骼移动…...

SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)

上一章用到了V2 的概念,其实 Fiori当中还有 V4,咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务),代理中间件(ui5-middleware-simpleproxy)-CSDN博客…...

VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP

编辑-虚拟网络编辑器-更改设置 选择桥接模式,然后找到相应的网卡(可以查看自己本机的网络连接) windows连接的网络点击查看属性 编辑虚拟机设置更改网络配置,选择刚才配置的桥接模式 静态ip设置: 我用的ubuntu24桌…...

【网络安全】开源系统getshell漏洞挖掘

审计过程: 在入口文件admin/index.php中: 用户可以通过m,c,a等参数控制加载的文件和方法,在app/system/entrance.php中存在重点代码: 当M_TYPE system并且M_MODULE include时,会设置常量PATH_OWN_FILE为PATH_APP.M_T…...

【 java 虚拟机知识 第一篇 】

目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...