踏入shell基础使用

目录

一、什么是shell

1.1、用处

例如:

shell的类型:

二、 入门hello word

2.1 echo

2.2、echo命令格式:

控制颜色

 2.3、 第一个脚本

赋权

三、 Bash的基本功能

3.1、 别名

3.2、别名的持久化:

3.3、常见快捷键

3.4、输出输入

3.5、输出重定向

3.6、多命令执行

3.7、管道符

1、more分屏

2、grep 查找文本

3.8、通配符和特殊符号


一、什么是shell

Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程 序设计语言。shell是解释执行的。

Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面(是媒介)访问操作系统内核的服务

Shell脚本是一种用Shell语言编写的脚本文件,用于自动化执行一系列命令和操作。

Shell脚本通常包含一系列命令和控制结构,可以执行文件操作、系统管理、数据处理等任务。Shell脚本可以在命令行中执行,也可以作为一个可执行文件运行。

Shell脚本的文件扩展名通常是.sh,例如script.sh。编写Shell脚本可以提高工作效率,尤其是在需要重复执行一系列命令或操作时。常见的Shell脚本语言包括Bash(Bourne Again Shell)、Zsh(Z Shell)等。

通过编写Shell脚本,用户可以自动化执行各种任务,包括文件管理、系统配置、数据处理、定时任务等。Shell脚本也可以与其他编程语言结合使用,实现更复杂的功能。总的来说,Shell脚本是一种强大的工具,可以帮助用户更高效地管理和操作系统。

1.1、用处

1. 执行命令:用户可以通过shell执行各种命令,例如创建、复制、移动和删除文件,查看文件内容,管理进程等。

2. 脚本编程:用户可以使用shell编写脚本来自动化一系列操作,例如备份文件、定时任务等。

3. 管道和重定向:shell支持管道和重定向操作,可以将一个命令的输出传递给另一个命令,或将输出重定向到文件中。

4. 环境变量管理:shell可以管理系统和用户的环境变量,包括设置、查看和删除环境变量。

5. 用户和权限管理:shell可以用于管理用户和权限,包括创建、删除用户账号,修改文件权限等。

总的来说,shell是一个非常强大的工具,可以帮助用户更高效地管理和操作系统。

例如:

服务状态监控:

tomcat崩(当机),可以监控到,一旦停了就会自启动,如果有shell脚本就不需要开机自动了,系统已设置脚本就启动了,它就会不停的去探测是否在运行,没有运行会立刻会重启(适应情况:本来没有在现场:定时自动开)

shell的类型:

shell有两种主要的语法类型:

Bourne和C,这两种语法是互不兼容的。Bourne主要包括sh,ksh, Bash,psh,zsh,其中Bash在linux中使用最广;C家族主要包括:csh,tcsh。(默认用Bash)

# 查询系统中支持的shell

[lisen@localhost root]$ vi /etc/shells

/bin/sh

/bin/bash

/usr/bin/sh

/usr/bin/bash

二、 入门hello word

2.1 echo

echo在shell编程中经常使用,可以将信息输出到终端,也可以将字符重定向到文件等。

用处:echo命令通常用于打印输出到屏幕上,可以用来显示文本消息、变量值、文件内容等。它也可以用来将文本输出重定向到文件中。

2.2、echo命令格式:

echo [选项] [输出内容]

选项: -e 表示支持反斜杠控制的字符转换

[root@localhost ~]# echo -e "ab\bc"
ac

输入内容:

符号作用
\ 输出\本身
\a输出警告声音
\b退格键,即向左删除键
\c取消输出行末的换行符,与-n作用一致
\eesc键
\f换页符
\n换行符
\r回车符
\ttab键(4隔)
\v垂直制表符
\0nnn按照8进制ASCII码表输出字符
\xhh按照十六进制ASCII码表输出字符

[root@localhost ~]# echo -e '\a'


[root@localhost ~]#

控制颜色

echo -e "\e[1;31m abcd \e[0m" 

错的信息用颜色标出来

解释:

\e[1 表示开启颜色输出

31m为定义颜色

 \e[0m 表示结束颜色输出

颜色数值:

 30m 黑色;31m 红色;32m绿色;33m黄色;34m蓝色; 35m洋红;36m青色; 37m白色

[root@localhost ~]# echo -e "\e[1;31m abcd \e[0m" abcd #字体为红色

 2.3、 第一个脚本


[root@localhost ~]# mkdir sh
[root@localhost ~]# cd sh
[root@localhost sh]# vim hello.sh
[root@localhost sh]# cat hello.sh
#!/bin/bash
#hello.sh 是输出简单语句的测试版本

echo "hello world"
[root@localhost sh]#

创建一个专门放shell脚本的文件夹,切进去,编辑它,编辑完查看内容

赋权

在执行前需要为脚本赋予可执行权限,否则自己创建的脚本都不能用


[root@localhost sh]# ./hello.sh
-bash: ./hello.sh: 权限不够
[root@localhost sh]# ll
总用量 4
-rw-r--r--. 1 root root 79 2月  27 10:44 hello.sh
[root@localhost sh]# chmod 755 hello.sh
[root@localhost sh]# ll
总用量 4
-rwxr-xr-x. 1 root root 79 2月  27 10:44 hello.sh
[root@localhost sh]# ./hello.sh
hello world
[root@localhost sh]#

三、 Bash的基本功能

3.1、 别名

作用: 可以为我们常用的命令指定一个容易记的别名,方便使用。 在命令指定别名后,别名有优先执行权

如何指定别名: alias 别名=‘原命令’

如果查看别名:alias

[root@localhost sh]# alias vi='vim'
[root@localhost sh]#

取的别名只能在这个服务启动有效,重启就没效果了

 关于命令的执行顺序:

  • 如果使用绝对路径或相对路径执行命令,则执行是命令本身
  • 如果没有指定相对或绝对命令,有别名优先执行别名
  • 如果没有指定别名则,执行Bash的内部命令
  • 优先级最后的是按照$PATH环境变量定义的目录查找顺序找到的第一个命令

注意: 原则上在定义别名时不要与原有的命令,这样容易混淆

3.2、别名的持久化:

以命令的方式定义的别名重启之后就不再有效了,如果需要持久化的保持别名在需要在 配置文件中指定。该文件在用户主目录下。

每个当前下的家目录,都会有.bashrc这个隐藏文件


[root@localhost sh]# cd ~
注要切到主目录,不然打开是个新文件
 

[root@localhost ~]# vi .bashrc
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
#在下面定义自己的别名,该别名永久生效
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi

 

3.3、常见快捷键

3.4、输出输入

3.5、输出重定向

3.6、多命令执行

先判断再进入

[root@localhost ~]# ls /home/kkk && cd /home/kkk
ls: 无法访问/home/kkk: 没有那个文件或目录
[root@localhost ~]# ls /home/sha && cd /home/sha
[root@localhost sha]#

 判断是否有,没有就创建

错误信息是第一个命令出的,但是并不影响第二个命令执行


[root@localhost sha]# ls /home/abc || mkdir /home/abc
ls: 无法访问/home/abc: 没有那个文件或目录
[root@localhost sha]# cd /home/
[root@localhost home]# ls
abc  sha
[root@localhost home]#

3.7、管道符

命令格式:命令1 | 命令2 命令1的正确输出作为命令2的操作对象。注意:如果命令1不能正确输出则命令2不能执行。

1、more分屏

当结果比较多,可以分屏显示

ls /etc |more

2、grep 查找文本

查看当前的连接

先下载nett

yum install net-tools

netstat  -an | grep ESTABLISHED

这个命令用于列出所有建立的网络连接,包括TCP和UDP连接。通过使用管道符号"|"和grep命令来筛选出只显示已建立的连接。这样可以帮助用户查看当前系统上已经建立的网络连接。

3.8、通配符和特殊符号

#设置变量
[root@localhost /]# name='zs'
[root@localhost /]# echo $name
zs

#失去变量名效果---单引号
[root@localhost /]# echo '$name'
$name


#输出变量名---双引号
[root@localhost /]# echo "$name"
zs


#把date变量赋值给d

#引号方式
[root@localhost /]# d=`date`
[root@localhost /]# echo  $d
2024年 02月 27日 星期二 11:48:36 CST


#小括号方式
[root@localhost /]# dd=$(date)
[root@localhost /]# echo $dd
2024年 02月 27日 星期二 11:50:39 CST

  • 29
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

桃花坞生动的芒果

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值