标签:参数 date ctrl 1年 lov 变量 帮助 提示符 type
shell程序是linux/unix操作系统与用户交互的接口
内建命令:shell程序本身可以接收并处理的指令
外部命令:从path路径中搜索,创建一个当前shell的子进程,子进程执行
type -a 指令
[root@iZjrkzhzhrquk8Z ~]# type -a pwd
pwd 是 shell 内建
pwd 是 /usr/bin/pwd
pwd既有内建版本,也有外部命令版本
logout
exit
ctrl+D
历史命令记录:
history
1000 export LANG="en_US";export LANGUAGE="en_US";export LC_ALL="en_US";top
1001 ls
1002 clear
1003 type -a pwd
1004 history
自定义shell:
[root@iZjrkzhzhrquk8Z ~]# alias hh=‘ls -l‘
[root@iZjrkzhzhrquk8Z ~]# hh
总用量 4
drwxr-xr-x 4 root root 154 5月 6 21:59 gocqhttp
drwxr-xr-x 8 root root 207 5月 6 22:08 rebot
drwxr-xr-x 2 root root 4096 5月 6 15:48 rpm
永久生效,将shell写入用户目录下的初始化文件.bashrc,此文件每次登录会自动执行,修改后重新登录即可生效
命令行提示符通过内建变量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则为#否为 $ |
可以不加路径直接执行命令,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)
help help
,只能用于内建命令[18:16]~#help for
for: for 名称 [in 词语 ... ] ; do 命令; done
为列表中的每个成员执行命令。
`for‘ 循环为列表中的每个成员执行一系列的命令。如果没有
`in WORDS ...;‘则假定使用 `in "$@"‘。对于 WORDS 中的每
个元素,NAME 被设定为该元素,并且执行 COMMANDS 命令。
退出状态:
返回最后执行的命令的状态。
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] 张泽.Linux Shell编程艺术[M]. 北京:电子工业出版社,2014.1
标签:参数 date ctrl 1年 lov 变量 帮助 提示符 type
原文地址:https://www.cnblogs.com/deyout/p/14753063.html