shell学习1

时间:2021-05-24 04:51:08   收藏:0   阅读:0

shell脚本1

1.脚本基础

shell程序是linux/unix操作系统与用户交互的接口

1.1 内建命令

内建命令:shell程序本身可以接收并处理的指令

外部命令:从path路径中搜索,创建一个当前shell的子进程,子进程执行

type -a 指令

[root@iZjrkzhzhrquk8Z ~]# type -a pwd
pwd 是 shell 内建
pwd 是 /usr/bin/pwd

pwd既有内建版本,也有外部命令版本

1.2 退出登录

logout

exit

ctrl+D

1.3 自定义shell
1.4 修改命令行提示符

命令行提示符通过内建变量PS1和PS2定义的,通过修改二者即可改变其显示

[root@iZjrkzhzhrquk8Z ~]# export PS1=‘<love>[\w]‘
<love>[~]ls
gocqhttp  rebot  rpm
<love>[~]cd rebot/
<love>[~/rebot]ls

PS2一般使用于命令行里较长命令的换行提示信息

PS1特殊字符

参数 作用
\H 主机名
@ 12小时制时间
\A 24小时制时间
\! 命令历史列表编号
\W 当前工作目录名
\$ 如是root则为#否为 $
1.5 PATH环境变量

可以不加路径直接执行命令,path定义了执行外部命令时bash的搜索路径,有先后次序。

[17:49]~#echo $PATH
/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[17:57]~#export PATH=~/bin:${PATH}
[17:58]~#echo $PATH
/root/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[18:04]~#ls bin/
hello.py  hello.sh
[18:04]~#hello.sh
hello world

如上图,添加root目录下bin到环境变量,可以直接执行其下的脚本(需要chmod+x)

1.6 获取帮助
[18:16]~#help for
for: for 名称 [in 词语 ... ] ; do 命令; done
    为列表中的每个成员执行命令。
    
    `for‘ 循环为列表中的每个成员执行一系列的命令。如果没有
    `in WORDS ...;‘则假定使用 `in "$@"‘。对于 WORDS 中的每
     个元素,NAME 被设定为该元素,并且执行 COMMANDS 命令。
    
    退出状态:
    返回最后执行的命令的状态。
1.7 shell 脚本

vim hello

#!/bin/bash
# 注释,以上指定了shell程序/bin/bash来执行程序
cal #显示日历
date #显示当前时间和日期
echo ‘Hello World!‘ 
[18:30]~#hello
      五月 2021     
日 一 二 三 四 五 六
                   1
 2  3  4  5  6  7  8
 9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31               
2021年 05月 10日 星期一 18:30:17 CST
Hello World!

执行脚本的方法,filename为绝对路径

1.8 注释

# 单行注释

:<<!
#注释内容块
!

参考书目:
[1] 张泽.Linux Shell编程艺术[M]. 北京:电子工业出版社,2014.1

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!