我是靠谱客的博主 紧张山水,最近开发中收集的这篇文章主要介绍Shell基础,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一. Shell概述

        1.1Shell是什么

        Shell是一个命令解释器,他为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动,挂起,停止甚至编写程序;

Shell还是一个功能相当强大的编程语言,易调试,灵活性较强,Shell是解释执行的语言脚本,在Shell中可以直接调用LInux系统命令;

1.2 查看Linux支持什么Shell

 vim /etc/shells

主流的shell是sh和bash(bash属于sh),还有其他的shell版本,例如csh(语法和c语言类似);

二. Shell脚本的执行方式

2.1 echo 输出命令(相当于c语言中的printf  )

echo [选项] [输出内容]
-e: 支持反斜杠控制的字符转换 

  2.2  编写第一个Shell程序

touch sh
cd sh    #之后写的shell脚本都存放在根目录下的sh文件中
vim hello.sh

#!/bin/bash

echo "hello Linux"

  这里使用的vim可以看Vim使用教程

  2.3  脚本的执行

#赋予执行权限,直接运行
chmod 755 hello.sh

#相对路径执行
./hello.sh    

#绝对路径执行
/root/sh/hello.sh
可以先pwd命令查看文件的绝对路径

        通过Bash调用执行脚本

bash hello.sh

三. Bash的基本功能

3.1  历史命令与命令补全

history [选项] [历史命令保存文件]
-c  清空历史命令;
-w  把缓存中的历史命令写入历史命令保存文件中;

1.用上下箭头调用之前使用过的命令;
2.用“!n ”重复执行第n条历史命令;
3.用“!!”重复执行上一条命令;
4.使用“!字符串”重复执行以最后一条以该字符串开头的命令;
使用'Tab'进行命令补全
按一下如果没出
再按一下列出全部

3.2命令别名与常用快捷键

alias  别名=‘原命令’

alias查看别名

删除别名
alias [别名]
让别名永久生效
vim /root/.bashrc

 

3.3输入输出重定向

#输出重定向

把命令执行的结果覆盖到文件中
例如
ls &>  [文件名]

把命令执行的结果追加到文件中
例如
ls &>> [文件名]
#输入重定向
wc [选项] [文件名]
-c  统计字节数
-w  统计单词数
-l  统计行数

3.4多命令顺序执行与管理符

管道符
命令1  |  命令2
命令1 的正确输出作为 命令2的操作对象
颜色显示

3.5通配符与其他管理符号

四. Bash的变量

4.1用户自定义变量

设置变量
name=123

输出变量
echo $name
需要加$

查看系统中的变量
set

删除变量
unset [变量名]

4.2环境变量

        用户自定义变量只在当前的Shell中生效,而环境变量会在当前Shell和这个Shell 的所有子Shell中生效。如果把环境变量写入相应的配置文件中,那么环境变量就会在所有的Shell 中生效;

设置环境变量
export  变量名=变量值(类似c中的全局变量)

将已经存在的变量设置为环境变量
export  变量名

PATH路径:系统查找命令的路径           使用  :  分割每一个路径

之前在根下创建过sh目录来存放脚本
第一个 Shell 脚本 hello.sh 存放在 sh 下
我们要执行需要绝对路径或者相对路径,这样重复执行写命令太麻烦
而例如 ls 这样的命令不需要绝对路径就可以执行,就是因 PATH 存放了 ls 的路径
所以如果想要让 hello.sh 也直接执行
可以将它的路径写入PATH
PATH="$PATH":/root/sh  (这是前面的变量叠加)
临时生效,重启消失,如果想要永久生效,还需要将写入相应的配置文件中

PS1:定义系统提示符的变量

        系统提示符

查看当前的PS1变量
echo $PS1

可自定义系统提示符
例如
PS1 = '[u@tw]$'
这个显示的就是绝对路径

4.3位置参数变量

#例如:
cd sh

vim canshu1.sh

#进入到vim模式按 i 进入插入模式

echo $0
echo $1
echo $2
echo $3

#按‘Ecs‘退出插入模式  :wq保存

#修改文件权限
chmod 755 canshu1.sh

#查看绝对路径执行
pwd 
/root/sh/canshu1.sh 11 22 33

执行结果: 


#加法
vim add.sh

#!/bin/bash

num1=$1
num2=$2
sum=$(($num1+$num2))
echo $sum

#使用bash执行
bash add.sh 1 2

执行结果

 

4.4预定义变量

#接受键盘输入

read [选项] [变量名]

-p    "提示信息":   等待read输入时 输出提示信息
-t    表示read 的等待时间
-n    指定read读入几个字符,读入完成后执行命令
-s    输入隐藏数据,
#例如:
#!/bin/bash

read -t 30 -p "please input your name: " name
read -t 30 -p "please input your age: " age 
read -n 1 -t 30 -p "input your sex[F/W] :" sex 
echo -e "n"
echo $name 
echo $age
echo $sex

五. Bash的运算符

5.1  数值运算与运算符

#声明变量的类型
declare [+/-] [选项] [变量名]
-    给变量设定类型
+    取消变量设定类型
-i   将变量声明为数值型
-x   将变量声明为环境变量
-p   显示变量的类型
#数值运算
#1
sum=$(( $num1+$num2 ))

#2
sum=$[$num1+$num2]

 5.2  变量测试与内容替换

六. 环境变量配置文件

6.1 环境变量配置文件简介

          环境变量配置文件中主要是对系统的操作环境生效的系统默认环境变量,例如PATH,HISTSIZE,PSI,HOSTNAME等默认的环境变量;

#配置文件强制生效

source [配置文件名]

or

. [配置文件名]

6.2  环境变量配置文件作用

6.3  其他配置文件和登陆信息

最后

以上就是紧张山水为你收集整理的Shell基础的全部内容,希望文章能够帮你解决Shell基础所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(71)

评论列表共有 0 条评论

立即
投稿
返回
顶部