104-127-linux-vim-shell基础
创始人
2024-04-21 12:05:16
0

104-linux-shell:

1.shell基础

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TimrhwkR-1670680591839)(png/1644373423077.png)]

分类:linux使用Bash,可通过vi /etc/shells查看linux支持的shell类型。

1、echo

[root@localhost ~]#echo	[选项]	[输出内容]
选项:-e:支持反斜线控制的字符转换(具体百度吧)-n:取消输出后行末的换行符号(就是内容输出后不换行)
举例:
[root@localhost ~]# echo -e "\l la"\
[root@localhost ~]# echo -e "ab\bc"ac
[root@localhost ~]#	echo -e "a\tb\tc\nd\te\tf"

2、脚本的执行

vim test.sh
chmod 755 test.sh

3、历史命令查看

[root@localhost~]# history	[选项]	[历史命令保存文件]:
-c:	清空历史命令
一w: 把历史命令写入文件。不指定历史命令保存文件,默认保存文件~/.bash_history 中历史命令的调用(了解即可):
上、下箭头调用以前的历史命令,“!n”重复执行第n条历史命令,“!!”重复执行上一条命令,“!字串”重复执行最后一条以该字串开头的命令,“!$”重复上一条命令的最后一个参数

4、Bash常用快捷键

ctrl+A 	把光标移动到命令行开头。
ctrl+E	把光标移动到命令行结尾。
ctr1+C	强制终止当前的命令。
ctr1+L	清屏,相当于clear命令。
ctr1+U	删除或剪切光标之前的命令。一行很长的命令,不用退格键一个一个的删除
ctr1+K	删除或剪切光标之后的内容。
ctr1+Y	粘贴ctrl+U或ctrl+K剪切的内容。
ctr1+R	在历史命令中搜索,ctr1+R后会出现搜索界面,只要输入搜索内容,就会从历史命令中搜索。
ctr1+D	退出当前终端。
ctr1+Z	暂停,并放入后台。这个快捷键牵扯工作管理的内容,我们在系统管理章节详细介绍。。。暂不了解
ctrl+S	暂停屏幕输出。
ctrl+Q	恢复屏幕输出。

5、输入输出重定向

​ 1).Bash标准输入输出

设备设备文件名文件描述符类型
键盘/ dev/stdin0标准输入
显示器/dev/stdout1标准输出
显示器/dev/stderr2标准错误输出
#输出重定向
命令 > 文件,以覆盖(>>追加)方式吧命令正确输出输出到指定文件或设备当中
错误命令 2> 文件,以覆盖(>>追加)方式吧命令错误输出输出到指定文件或设备当中
命令 > 文件2 > &1,以覆盖(文件  >> 命令 追加)方式正确输出和错误输出都保存在同一个文件当中(等同于 命令 &>文件    命令 &>>文件)
命令>>文件 1 2>>文件2,正确的输出追加到文件1,错误输出追加到文件2

6.多命令执行顺序

#wc统计行数
[root@localhost~]# wc[选项][文件名]选项:
-C	统计字节数		-w	统计单词数		-l	统计行数
#命令执行顺序
命令1;命令2(顺序执行,无关)	命令1&&命令2(并且) 命令1||命令2(或)

7、管道符|

[root@localhost~]#grep[选项]"搜索内容”文件名选项:
-A数字:列出符合条件的行,并列出后续的n行
-B数字:列出符合条件的行,并列出前面的n行
-C:统计找到的符合条件的字符串的次数
-i:忽略大小写
-n:输出行号
一V:反向查找
--color=auto搜索出的关键字用颜色显示
例如:
[root@localhost ~]# grep " /bin/bash"/etc/passwd
[root@localhost~]# grep -A 3 "root" /etc/passwd#查找包含有“root”的行,并列出后续的3行
[root@localhost~]# grep -n "/bin/bash"/etc/passwd#查找可以登录的用户,并显示行号
[root@localhost~]# netstat -an | grep "ESTABLISHED" | wc -1#如果想知道具体的网络连接数量,就可以再使用wc命令统计行数

8、通配符

通配符作用
?匹配一个任意字符
*匹配О个或任意多个任意字符,也就是可以匹配任何内容
[]匹配中括号中任意一个字符。例如:[abc]代表一定匹配一个字符,或a,或b,或c。
[-]匹配中括号中任意一个字符,-代表一个范围。例如:[a-z]代表匹配一个小写字母。
[^]逻辑非,匹配不是中括号内的一个字符。例如:[ ^0-9 ]代表匹配一个不是数字的字符。

9、Bash中其他特殊符号的含义

符号作用
’ ’单引号中所有的特殊符号,如“$”和“”(反引号)都没有特殊含义。
" "在双引号中特殊符号都没有特殊含义,但是“$”、“~”和“\”是例外,拥有“调用变量的值”、“引用命令”和“转义符”的特殊含义
``系统命令,在 Bash中会先执行它。和()作用一样,不过推荐使用()作用一样,不过推荐使用()作用一样,不过推荐使用(),因为反引号非常容易看错。
$ ()和反引号作用一样,用来引用系统命令。
()用于一串命令执行时,()中的命令会在子Shell中运行
{}用于一串命令执行时,0中的命令会在当前Shell中执行。也可以用于变量变形与替换。
[]用于变量的测试。
#注释
$用于调用变量的值,如需要调用变量name 的值时,需要用$name的方式得到变量的值。
\转义符,跟在\之后的特殊符号将失去特殊含义,变为普通字符。如$将输出“$”符号,而不当做是变量引用。

2、Bash变量和运算符

变量查看

[root@localhost~]# set	[选项]
-u:	如果设定此选项,调用未声明变量时会报错(默认无任何提示)
-X:	如果设定此选项,在命令执行之前,会把命令先输出一次
#删除变量
unset 变量名
#环境变量查看
env | grep 变量名

1).变量:命名规则,等号两边无空格,特殊含义需加单/双引号。单引号是普通字符,双引号有特殊含义。

2).变量分类:

​ 用户自定义变量(x,y): 名称:自定义 作用:自定义 内容:自定义(name=“ceshi”)

​ 环境变量:
​ 用户自定义环境变量(java): 名称:自定义 作用:自定义 内容:自定义(export age=“19”)
​ 系统自带环境变量(path): 命令:确定 作用:确定 内容:自定义(env)(echo PATH),添加PATH="PATH),添加PATH="PATH),添加PATH="PATH":/root/sh
​ 位置参数变量($1): 名称:确定 作用:确定 内容:自定义

位置参数变量作用
$nn为数字,$0代表命令本身,$1-9代表第一到第九个参数,十以上的参数需要用大括号包含,如9代表第一到第九个参数,十以上的参数需要用大括号包含,如9代表第一到第九个参数,十以上的参数需要用大括号包含,如{10}.
$*这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体
$@这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待
$#这个变量代表命令行中所有参数的个数

预定义变量($?); 名称:确定 作用:确定 内容:自定义

预定义变量作用
$ ?最后一次执行的命令的返回状态。值为0,上一个命令正确执行;如果这个变量的值为非0(具体是哪个数,由命令自己来决定),则证明上一个命令执行不正确了。
$ $当前进程的进程号(PID)
$ !后台运行的最后一个进程的进程号(PID)

1、接受键盘输入

[root@localhost~]#read	[选项]	[变量名]
-p“提示信息”:在等待read输入时,输出提示信息
-t秒数:read命令会一直等待用户输入,使用此选项可以指定等待时间
-n字符数:read命令只接受指定的字符数,就会执行
-S:隐藏输入的数据,适用于机密信息的输入read -t 30 -p "Please input your name: " name
read -n 1 -t 30 -p "Please select your gender[M/F]: " 

2、Shell运算符

数值运算的方法

#方法一使用declare(不常用) declare --help

#数值变量
[root@localhost~]#declare 	[+/-]	[选项]	变量名:declare -i cc=$aa+$bb
-:设定类型属性
+:取消变量的类型属性
-a:将变量声明为数组型
-i:将变量声明为整数型(integer)
-r:讲变量声明为只读变量。注意,一旦设置为只读变量,既不能修改变量的值,也不能删除变量,甚至不能通过+r取消只读属性
-X:将变量声明为环境变量
-p:显示指定变量的被声明的类型#数组变量类型
[root@localhost ~]# name [0]="shen chao"
[root@localhost ~]# name[1]="li ming"
[root@localhost ~]# echo $ {name}
shen chao#输出数组的内容,如果只写数组名,那么只会输出第一个下标变量
[root@localhost ~]#echo $ {name[*]}
shen chao li ming #输出数组所有的内容#环境变量,可以使用declare将变量声明为环境变量。同export命里一样。
[root@localhost~]# declare -x test=123	#把变量test声明为环境变量

方法二,使用expr 或let数值运算工具

[root@localhost ~]# dd=$(expr $aa + $bb)#注意“+”号左右两侧必须有空格
[root@localhost ~]# let ee=$aa+$bb		#let比expr要求宽松一些

方法三,使用“((运算式))”或“((运算式))”或“((运算式))”或“[运算式]”方式运算

[root@localhost~]# ff=$(( $aa+$bb ))
[root@localhost ~]# gg=$[ $aa+$bb ]

3、Shell常用运算符

优先级运算符说明
13-,+单目负、单目正
12!,~逻辑非、按位取反或补码
11*,/ ,%乘、除、取模
10+,-加、减
9<<, >>按位左移、按位右移
8<=,> =,<, >小于或等于、大于或等于、小于、大于
7=,!=等于、不等于
6&按位与
5^按位异或
4|按位或
3&&逻辑与
2||逻辑或
1=,十=,一—,*=,/=,%=,&=,^=,l=,<<=,>>=赋值运算且赋值

4、变量的测试与内容置换(知道有这个东西,记一个就行,用的时候使用一下就好)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vrOC2uxA-1670680591840)(png/1644397169576.png)]

3、环境变量配置文件

source 配置文件或者 . 配置文件

环境变量配置文件

  1. 、登录时生效的环境变量配置文件
    Linux登录时主要生效的环境变量配置文件有以下:

/etc/profile
/etc/profile.d/*.sh

~/.bash_profile

~/.bashrc

4、变量的测试与内容置换(知道有这个东西,记一个就行,用的时候使用一下就好)

[外链图片转存中...(img-vrOC2uxA-1670680591840)]

3、环境变量配置文件

source 配置文件或者 . 配置文件

环境变量配置文件

  1. 、登录时生效的环境变量配置文件
    Linux登录时主要生效的环境变量配置文件有以下:

/etc/profile
/etc/profile.d/*.sh

~/.bash_profile

~/.bashrc
/etc/bashrc

学习路径:https://space.bilibili.com/302417610/,如有侵权,请联系q进行删除:3623472230

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
客厅放八骏马摆件可以吗(家里摆... 今天给各位分享客厅放八骏马摆件可以吗的知识,其中也会对家里摆八骏马摆件好吗进行解释,如果能碰巧解决你...
苏州离哪个飞机场近(苏州离哪个... 本篇文章极速百科小编给大家谈谈苏州离哪个飞机场近,以及苏州离哪个飞机场近点对应的知识点,希望对各位有...