Shell 基础

Shell 是一个命令解释器

和内核进行交互的界面

Shell还是一个功能强大的编程语言

再Shell中可以直接调用linux的编程命令

 

Shell 的起源

Bourne Shell 1979 Unix就开始使用 也就是现在的sh

C Shell 

 

Bash :Bash与sh兼容,现在使用的Linux就是使用Bash作为用户基本的Shell 

 

.sh 文件执行方式

1.给予权限 chmod 然后运行

2.bash + 文件运行

 

! Linux和windows的回车符不同,所以别再windows中编辑文件放到linux中

 

Bash基本功能

- 历史命令和命令补全

history [历史命令保存文件] #默认保存在家目录下

查看历史命令

-c 清空历史命令

-w 把缓存中的命令写入文件 ~/.bash_history

/etc/profile 可以修改历史记录保存条数 HISTSIZE 

 

!n 会执行历史记录中的第n条

!! 重复执行上一条命令

!字串 重复执行上一条以该字串开头的命令

 

tab键补全  在输入中可以使用

 

-命令别名与常用快捷键

 

alias #查看别名

unalias #删除别名

命令执行顺序

1.绝对路径和相对路径

2.执行别名

3.执行Bash内部命令

4.$PATH环境变量目录查找顺序第一个命令

 

别名永久生效文件

./root/.bashsrc

快捷键

ctrl + u 删除光标前的所有内容

ctrl + k 删除光标后的所有内容

ctrl + r 历史命令的搜索

ctrl + d 退出当前终端

 

输入输出重定向

设备文件描述符类型
键盘0标准输入
显示器1标准输出
显示器2标准错误输出

 

 

 

 

 

 

输出重定向 (必须有输出的命令才能使用)

命令>文件 覆盖文件

命令>>文件 追加文件

错误命令 2> 文件覆盖,错误文件写入  ##注意 ! 2和> 间不能有空格

错误命令 2>> 文件追加,错误文件写入

 

例: ls > abc #把ls的结果保存到abc文件中

 

命令 > 文件 2>&1 覆盖方式,正确输出,错误输出都放入文件中

命令> > 文件 2>&1 追加方式,正确输出,错误输出都放入文件中

----------------------------------------------------------------

命令 &> 文件 

命令 &> >文件 # 功能和?相同

 

命令 >> 文件1 2>> 文件2  命令正确放入文件1,错误的放入文件2

 

多命令顺序执行和管道符

 

:命令1:命令2多个命令顺序执行,没有任何关系
&&命令1&&命令2逻辑与,命令1执行正确命令2才会执行
||命令1||命令2逻辑或,命令1执行错误命令2才会执行

 

 

 

 

管道符 "|"

命令1的正确输出作为命令2的输出

 

通配符和其他特殊符号

 

? 匹配一个字符

* 匹配任意0或多个字符

[] 匹配中括号中任意一个字符 例:[efg] , [a-z]

[^] 逻辑非,表示匹配不是一个中括号的字符

 

'' 单引号内容中特殊符号没有含义
"" 双引号中"$" , "`", "\" 有特殊含义
··

反引号指系统变量

 

例 abc = ·date·   

echo $abc

$(内容)

和反引号用法相同



 

 

 

 

 

 

Bash 变量

 

用户自定义变量

-----只在当前的shell生效

变量不能以数字开头,在bash中变量默认类型都是字符串型

aa=123 

set #查看系统中的所有变量 

unset

 

环境变量

设置环境变量

export 变量名=变量值 #申明变量

env #查询变量

unset #删除变量

 

$PATH 系统查找命令的路径

PS1 #起始符

 

位置参数变量

$n n为数字,$0表示命令本身,$1-$9代表1-9个参数,10以上参数要用{}包含

$* 这个变量代表命令行中所有的参数,把所有参数当作一个整体

$@ 这个变量也表示命令行中的所有参数, 不过把每个参数区别对待

$# 这个变量表示命令行中所有参数的个数

 

预定义变量

$? 最后一次执行的命令返回状态,返回0表示正确

$$ 当前进程的进程号(PID)

$! 后台运行的最后一个进程的进程号(PID)

 

接受键盘收入

read [选项][变量名]

-p #提示信息

-t #秒数,等待时间,到时间就终止

-n 字符数 # 输入的字符数和字符数相同时 就执行了

 -s #隐藏

 

Bash的运算符

Linux的shell当中默认都是字符串类型所以不能直接相加

declare [+/-][选项][变量名]

- 给变量设置类型

+ 取消变量属性

-i 将变量设置为整数型

-x 将变量设置为环境变量

-p 显示指定变量被声明的类型 

 

expr 或 let 

dd = $(expr $aa + $bb)

 

$((运算式))
$(($a+$b)
)
 

环境变量配置文件

source [配置文件] 或 . [配置文件]

#生效当前配置文件

/etc/profile

/etc/profile.d/*.sh

~/.bash_profile # 对当前用户生效

~/.bashrc #对当前用户生效

/etc/bashrc 

 

其他配置文件

~/.bash_logout  #注销是执行

~/.bash_history  #执行命令

/etc/issue # 登陆欢迎信息,对本地终端生效

/etc/issue.net

# 远程登陆欢迎信息,由ssh的配置文件/etc/ssh/sshd_config中配置Banner /etc/issue.net

# 再重启ssh服务service sshd restart

/etc/motd # 不管远程登陆还是本地都会生效,但是是登陆之后才会有信息

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值