shell基本命令

news2024/10/7 16:19:42

shell基本命令

echo:

-n:取消输出后行末的换行符号
-e:支持反斜线控制的字符转换
echo -e "\a":输出警告声
echo -e "\e[1;31m abcd \e[0m":输出带颜色的信息

bash执行方法:

给bash文件添加执行权限,然后通过绝对路径来执行
给bash文件添加执行权限,然后通过相对路径来执行
通过 bash命令来执行bash文件

history:历史命令

-c:清空历史命令
-w:把系统缓存中的历史命令写入文件中,默认的历史命令保存文件:~/.bash_history中。(在用户注销时,系统会默认将历史命令写入文件中)
/etc/profile里设置了历史文件命令保存的条数

历史命令调用:

!n 重复第n条历史命令
!! 重复执行上一条命令
!字串 重复执行最后一条命令以该字符串为开头的命令
!$ 重复上一条命令的最后的参数

命令别名:

alias 查询命令别名
alias 别名=‘原命令’
别名永久生效:写入~/bashrc
命令执行优先级
	使用绝对路径或相对路径
	别名
	Bash的内部命令
	$PATH环境变量定义的目录去查找

source:

使shell读入指定的Shell程序文件并依次执行文件中的所有语句。(.)点命令,只是简单地读取脚本里面的语句依次在当前shell里面执行,没有建立新的子shell。

Bash常用快捷键:

ctrl+A:光标移动到命令行开头
ctrl+E:光标移动到命令行结尾
ctrl+U:删除或剪切光标之前的命令
ctrl+K:删除或剪切光标之后的命令
ctrl+Y:粘贴
ctrl+R:在历史命令中搜

重定向:

> 正确输出
>>正确输出追加
2> 错误输出
2>> 错误输出追加
< 输入重定向
<< 输入重定向,指定一个分界符号

多命令执行符号:

多命令执行符号格式作用
命令1;命令2多个命令顺序执行,命令之间没有任何逻辑联系
&&命令1&&命令2当命令1正确执行,命令2才会执行,当命令1不正确执行,则命令2不会执行
||命令1||命令2当命令1正确执行,命令2不会执行,当命令1不正确执行,则命令2才会执行

wc:统计文本行数 字数 字符数

-c显示字符的个数
-w显示单词的个数
-l显示文件文本的行数

grep:grep [选项] “搜索内容” 文件名

-A 数字:列出符合条件的行,并列出后续的n行
-B 数字:列出符合条件的行,并列出前面的n行
-C 数字:列出符合添加的行,并列出前面后续的n行
-c :统计找到符合条件的字符串的次数
-i :忽略大小写
-n :输出行号
-v :反向查找
--color=auto 搜索出的关键字用颜色显示

find:在系统中搜索符合添加的文件名,用法:find 目录 选项 [-exec/-ok] command {} ;
-exec execute执行,直接执行后面的command,不用询问是否执行

-ok 执行后面的command会询问Y/N


{}  表示要执行的命令的参数即为找到的文件,命令末尾必须以 ; 结尾分号不能少


-name 按照文件名称查找


-perm 按照权限查找:-perm 755


-prune 使用此选项可以使find命令不在当前指定的目录中查找】


-type 查找某一类型的文件

	type的选项
	b 块设备文件
	d 目录
	c 字符设备文件
	f 普通文件
	p 管道文件
	l 符号链接文件



-amin n 查找系统中最后n分钟访问的文件


-atime n 查找系统中最后n个24小时{即n天前}访问的文件


-cmin n  查找系统中最后n分钟被改变文件状态的文件


-ctime n 查找系统中最后n个24小时{即n天前}被改变文件状态的文件


-mmin n  查找系统中最后n分钟被改变文件数据的文件


-mtime n 查找系统中最后n个24小时{即n天前}被改变文件数据的文件

Bash中的特殊符号

在这里插入图片描述
pstree:查看系统进程树

Bash的变量和运算符

Bash中变量的默认类型都是字符串类型,若要进行数值运算,则必须指定变量类型为数值型
变量用等号连接值,等号两边不能加空格,若值字符串有空格,用单引号或双引号包括。
变量的叠加:test="demo"1234或test={demo}1234

变量分类

用户自定义的变量,只在当前shell中生效
环境变量:保存了和系统操作环境相关的数据,便于与命令区分,一般环境变量为大写。可以在子shell中生效
位置参数变量:主要用于向脚本当中传递参数或数据
预定义便变量:是Bash中已经定义好的变量,变量名不能自定义,作用也是固定的。

set:设置当前所使用 shell 的执行方式,同时也可以用来设置或显示 shell 变量的值。set [选项]

set -u 当执行时使用到未定义过的变量,则显示错误信息
set -x 在执行命令之前,会先将命令输出一次
set 查看变量的值,也可以查看用于自定义的命令
unset 删除变量名,unset -v 删除变量 unset -f 删除函数

PS1变量:命令提示符设置

\d 显示日期
\h 显示简写的主机名
\t 显示24小时制时间,格式”HH:MM:SS“
\u 显示当前用户名
\v 显示Bash版本的信息
# 执行的第几个命令
\w 显示当前所在目录的完整名称
$ 示符,root显示#,普通用户显示$

LANG 语系变量,定义了Linux系统的主语系环境。locale 可以查询当前系统支持的语系。

位置参数变量

在这里插入图片描述
预定义变量

在这里插入图片描述

接收键盘输入 read [选项] [变量名]

-p "提示信息" :在等待read输入时,输出提升信息
-t 秒数:read命令一直等待用户输入,使用此选项可以指定等待时间
-n 字符数:read命令只接受指定的字符数,就会执行
-s 隐藏输入的数据,适用于机密信息的输入

数值运算方法

使用declare声明变量类型,**declare [+/-][选项] 变量名

	-:给变量设定类型属性
	+:取消变量的类型属性
	-a:将变量声明为数组类型
	-i:将变量声明为整数类型
	-r:将变量声明为只读变量。
	-x:将变量声明为环境变量
	-p:显示指定变量的被声明的类型


使用expr命令或let命令

	dd=$(expr $1 + $2) +号两边必须有空格
	dd=let b


$(())或$[] 括号里的内容要进行数学运算
	
	dd=$(($1+$2))

export 可新增,修改或删除环境变量,供后续执行的程序使用。export 的效力仅限于该次登陆操作。最终还是使用declare -x 实现。

变量测试与内容置换

在这里插入图片描述
登录时相关的环境变量配置文件

配置文件

	/etc/profile
	/etc/profile.d/*.sh
	~/.bash_profile
	~/.bashrc
	/etc/bashrc
	
启动过程

	正常登录文件顺序加载过程

在这里插入图片描述

	不正常启动(su命令切换用户)

在这里插入图片描述

其他配置文件

注销时生效的配置文件:用户退出登录时,会调用~/.bash_logout,这个文件默认没有写入任何内容
Shell登录信息:/etc/issue是Linux系统开机启动时在命令行界面弹出的欢迎语句文件,/etc/issue.net是ssh远程登录时在命令行界面弹出的欢迎语句文件。

定义Bash的快捷键

stty -a 查询所有的快捷键
stty 关键字 快捷键 更改快捷键

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/45582.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《龙湖地产》企业门户网站前端设计(Html,CSS,JavaScript,jQuery)

目 录 引言 1 一、企业网站建设方案 2 &#xff08;一&#xff09;搭建网站的必要性和可行性 2 &#xff08;二&#xff09;网站建设的目的 2 &#xff08;三&#xff09;网站设计原则 2 二、企业网站开发工具的选择和介绍 4 &#xff08;一&#xff09; HTML概述 4 &#xff0…

上市公司共同机构所有权数据-附顶刊《管理世界》数据应用示例

1、数据来源&#xff1a;见数据说明文件 2、时间跨度&#xff1a;2003-2020 3、区域范围&#xff1a;所有上海、深圳证券交易所A股主板、中小企业板、科创板、创业板上市公司 4、指标说明&#xff1a; 具体计算方式详见分享文件夹文本文档 描述性统计如下&#xff1a; 部分…

Docker容器学习笔记(看了狂神视频)

狂神的笔记更加系统详细&#xff0c;推荐大家可以去看狂神的视频教程和笔记。我这里仅根据我自己的需求写的笔记&#xff0c;对于需要快速掌握docker的使用的朋友可以参考学习。 Docker 背景需求 之前&#xff0c;开发一套环境&#xff0c;上线一套环境&#xff0c;环境配置十…

STM32滴答定时器SysTick精准延时,兼容HAL库和标准库

STM32手册资料下载&#xff1a;STM32资料Github链接&#xff1b;STM32资料Gitee链接&#xff1b; 注意&#xff1a;Github是国外的&#xff0c;要翻墙&#xff0c;Gitee是国内的&#xff0c;无需翻墙。 目录 滴答定时器的功能 模块化思想 什么叫做模块化 如何利用keil实现…

用 Wireshark 让你看见 TCP 到底是什么样!

本文为掘金社区首发签约文章&#xff0c;14天内禁止转载&#xff0c;14天后未获授权禁止转载&#xff0c;侵权必究&#xff01; 莫听穿林打叶声&#xff0c;何妨吟啸且徐行。 前言 当你看到这篇文章时&#xff0c;你只能看到已经渲染好的文字和图像&#xff0c;而网络数据的交…

rk3588硬件构成-rock5b

前言 rk3588是瑞芯微的一套新的arm64的板子&#xff0c;上一代用的比较多的是rk3399&#xff0c;新的硬件设备比之前更强大&#xff0c;接口更多&#xff0c;本系列就是介绍相关的硬件软件的一些资料&#xff0c;后面会根据不同的使用进行分篇的介绍 很多资料官网有提供&…

深度学习与总结JVM专辑(四):类文件结构(图文+代码)

类文件结构概述无关性的基石Class类文件结构前言字节码文件结构属性魔数与Class文件的版本号魔数版本号常量池反编译软件访问标志类索引&#xff0c;父类索引与接口索引集合字段表集合方法表集合属性表集合Code属性attribute_name_indexmax_stackmax_localscode_length和codeja…

视频卡顿率测试方法

一、背景介绍 视频流畅性测试是视频质量评估一个重要的指标。一般的获取方法是在渲染前增加统计信息。不过这种方法需要增加额外工作量&#xff0c;并且也不是用户直接的体验数据。 这里介绍一种基于时域运动指标/平均相关位置像素差&#xff08;TI&#xff1a;temporal info…

Android Camera性能分析 第24讲 录像Buffer Path帧率统计

​ 本讲是Android Camera性能分析专题的第24讲&#xff0c;我们介绍录像Buffer Path帧率统计&#xff0c;包括如下内容&#xff1a; 从GraphicBufferSource统计录像Buffer Path帧率Video Codec角度统计视频帧率Video Codec2角度统计视频帧率 视频在线观看&#xff1a; 极客笔…

Nacos Discovery--服务治理

目录 一&#xff0c;服务治理介绍 二&#xff0c;nacos简介 nacos实战入门 搭建nacos环境 第1步: 安装nacos 第2步: 启动nacos 第3步: 访问nacos 将商品微服务注册到nacos 1 在shop-common模块的pom.xml中添加nacos的依赖 注意在父模块中是否导入了alibaba 2 在主类上添加E…

Altium Designer智能粘贴命令的使用教程

怎么样等间距的复制很多过孔&#xff1f;怎么带网络的复制走线&#xff1f;又或者是怎么样把元件的位号及网络从当前的这个PCB调用到另一个PCB板中呢&#xff1f;PCB设计当中经常会遇到这些问题&#xff0c;可以使用特殊粘贴也可以称为智能粘贴法来实现。 1、选中需要复制的元素…

微信小程序 视频列表滑动无限循环(仿抖音)

一、写在前面&#xff1a; 1:安卓ios表现基本一致&#xff0c;不是swiper组件实现&#xff0c;滑动效果流畅不卡顿&#xff0c;实现了列表无限循环。不是使用官方的腾讯视频播放组件&#xff0c;完整代码在下面 2:实现功能&#xff1a;支持位置导航、拨打电话、复制微信号、分…

如何实现fastdds的topic调试工具

在使用fastdds进行实际的开发调试中发现&#xff0c;常常需要对已经发布的话题进行进一步的调试&#xff0c;比如话题存在&#xff0c;话题内容&#xff0c;话题频率等等信息都需要确认&#xff0c;尤其是话题内容。这时候就需要一个能进行这项操作的调试工具。可能对于用过ros…

hit_os_lab2 操作系统启动

前置知识 1.1 基础概念 入理论课程的学习。 如果网易云上的课程无法查看&#xff0c;也可以看 Bilibili 上的 操作系统哈尔滨工业大学李治军老师。 L2 开始揭开钢琴的盖子L3 操作系统启动 同济大学赵炯博士的《Linux 内核 0.11 完全注释&#xff08;修正版 V3.0&#xff09…

防火墙练习实验

♥️作者&#xff1a;小刘在C站 ♥️每天分享云计算网络运维课堂笔记&#xff0c;一起努力&#xff0c;共赴美好人生&#xff01; ♥️夕阳下&#xff0c;是最美的&#xff0c;绽放。 目录 二. 实验命令 一.实验图纸 二. 实验命令 ciscoasa> en Password: ciscoasa# co…

DJ12-2-4 串操作指令

目录 1. REP 重复前缀 2. 串操作指令的基本概念 3. 串操作指令的指令类型 &#xff08;1&#xff09;串传送指令 MOVS &#xff08;2&#xff09;串传送指令 CMPS &#xff08;3&#xff09;串扫描指令 SCAS &#xff08;4&#xff09;串装入指令 LODS &#xff08;5&a…

如果把网络原理倒过来看,从无到有,一切如此清晰(下)

人生若只如初见。 前言 当我在台灯下&#xff0c;听着远隔17年前五月天的歌&#xff0c;而在数日后&#xff0c;我的文字也会纵使相隔万里远的来到你的屏幕前&#xff0c;就觉得这一切妙不可言。 OSI 网络七层模型 《如果把网络原理倒过来看&#xff0c;从无到有&#xff0c…

Metabase学习教程:仪表盘-5

如何进行时间段比较 我们通过不同的方法来比较一个指标在不同日期范围内的表现。 我们将研究不同的策略来比较两个不同时期的指标&#xff0c;比如将本周与上周、去年同期与上一周进行比较。我们将使用Metabase附带的示例数据库&#xff0c;这样您就可以继续学习了。这个示例…

【Android App】Vulkan实现宇宙中旋转雷达动画效果(附源码和原始视频 超详细必看)

需要源码请点赞关注收藏后评论区留言私信~~~ 一、Vulkan简介 Vulkan是一个跨平台的图形绘制接口&#xff0c;被称为下一代OpenGL&#xff0c;因为尽管OpenGL提供了丰富的图形API&#xff0c;但他在底层实现的C代码早已封装起来&#xff0c;由于开发者修改不了底层代码&#xf…

社区系统项目复盘-5

文章目录Kafka消息队列实现系统通知功能什么是Kafka&#xff1f;Spring是怎么整合Kafka的&#xff1f;发送系统通知显示系统通知Kafka消息队列实现系统通知功能 阻塞队列 可以用阻塞队列来实现消息队列&#xff0c;阻塞队列是一个接口&#xff1a;BlockingQueue&#xff0c;可以…