Shell-- 基础知识
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shell-- 基础知识相关的知识,希望对你有一定的参考价值。
1、Shell脚本运行方式
创建Shell脚本文件,一般以.sh结尾(如:example.sh)
Shell脚本运行方式如下:
- 添加 ‘x’ 执行权限(相对或绝对路径执行)
- 使用bash或source(.)命令调用脚本文件
2、Bash的基本功能
(1)、历史命令history
-c:清空历史命令
-w:将缓存中的历史命令保存到配置文件当中(~/.bash_history)
调用历史命令的方法:
①、使用上、下键调用
②、使用“!n”重复执行第n条历史命令
③、使用“!!”重复执行上一条命令
④、使用“!字符”重复执行最近一条以此字符开头的命令
(2)、命令别名alias
格式:alias 别名=‘原命令’ [选项]
例:alias ls=‘ls -l’
配置文件:
单个用户:~/.bashrc
所有用户:/etc/bashrc
(对此处两个配置文件不太明白同学,可以理解为一个为全局变量,一个为局部变量。)
不同类型的命令执行优先级:
No.1、相对或绝对路径的方式执行命令
No.2、别名命令
No.3、bash内置命令
No.4、根据环境变量定义的目录查询到的命令
(3)、Bash常用快捷键
3、输入输出重定向
(1)、Bash的标准输入输出
设备 设备文件名 文件描述符 类型
键盘 /dev/stdin 0 标准输入
显示器 /dev/stdout 1 标准正确输出
显示器 /dev/stderr 2 标准错误输出
(2)、输出重定向
(3)、输入重定向
命令:wc 【选项】 【文件名】
-c:统计字数(字符)
-w:统计单词数(字符串)
-l :统计行数
例如:
wc < 文件(统计文件中的字数,单词数,行数)
wc << 字符(统计从开始字符到结束字符中的单词,字,行数)
4、多命令顺序执行
5、管道符
格式:命令1 | 命令2(将命令1的标准输出作为命令2的标准输入)
xargs实现将命令1的标准输出作为命令2的选项
例如:
echo “--help” | cat
echo “--help” | xargs cat
6、通配符
7、Bash中其他特殊符号
父Shell和子Shell(使用pstree查看)
使用Shell不影响父Shell,在()中执行的命令,在新开启Shell中执行,不影响本Shell
8、变量
(1)、变量规范
可以由字母、数字和下划线组成,但是不能以数字开头,变量中间不能有空格。
(2)、注意事项
v 在Bash中,变量的默认类型都是字符串型,如果需要进行数值运算,则需要转换为数值型
v 变量用等号链接值,等号左右两侧不能有空格
v 变量若有空格,需要使用单引号或双引号包括
v 双引号“”括起来的$、|、``都有特殊含义
v 单引号括起来的都是普通字符
v 如果需要增加变量值,进行变量值叠加,”$变量名”或”${变量名}”,eg:PATH=$PATH:/sh
v 变量名建议大写,易于区分
(3)、变量分类
v 用户自定义变量
v 环境变量
v 位置参数变量
v 预定义变量
- 用户自定义变量
a) 调用:
echo $变量名
例如:echo $PATH
b) 查看:
set [选项] ---- 直接回车显示系统中所有变量
-u 调用没有声明的变量时会报错(建议使用)
-x 命令执行前,先将命令输出一次
c) 删除:
unset 变量名
2、环境变量
a) 设置:
export 变量名=值------(声明~/.bash_profile)
#export声明的是环境变量
b) 查看:
env
常用格式: env | grep 变量
#set中包括env,env查询环境变量,set查询所有变量
c) PS1变量:定义命令提示符
PS1可支持以下选项:
v \\d:显示日期,格式为“星期月日”?
v \\H:显示完整的主机名。如默认主机名“localhost.localdomain”
v \\h:显示简写主机名。如默认主机名“localhost”
v \\t:显示24小时制时间,格式为“HH:MM:SS”
v \\T:显示12小时制时间,格式为“HH:MM:SS”
v \\A:显示24小时制时间,格式为“HH:MM”
v \\@:显示12小时制时间,格式为“HH:MM am/pm”
v \\u:显示当前用户名
v \\v:显示Bash的版本信息
v \\w:显示当前所在目录的完整名称
v \\W:显示当前所在目录的最后一个目录
v \\#:执行的第几个命令
v \\$:提示符。如果是root提示符为“#”,如果是普通用户提示符为“$”
3、调用格式:
d) LANG语系变量----定义主语系环境变量
i.查看Linux支持的语系
locale –a | more
ii.当前使用可用语系
locale
iii.查询默认语系
cat /etc/sysconfig/i18n
iv.修改桌面版中文为英文
- 将当前语系改为en_US,默认是zh_CN
export LANG=en_US.UTF-8
- 执行命令进行文件名转换
xdg-user-dirs-gtk-update
4、位置参数变量
v $*显示所有参数(作为整体接收)
v [email protected]显示所有参数(分开接收)
v $#显示参数个数
预定义变量
v $? 判断上一条命令是否正常执行
错误数值非0,正确的是0
v $$ 当前进程的PID
v $!最后一个后台执行的命令的进程
注意事项:
v 变量名可以自定义,如果不指定变量名,会把输入保存入默认变量REPLY
v 如果只提供了一个变量名,则整个输入行赋予该变量
v 如果提供了一个以上的变量名,则输入行分为若干字,一个接一个地赋予各个变量,而命令行上的最后一个变量取得剩余的所有值
5、接受键盘输入
格式:read [选项] [变量名]
选项:-p “提示信息”:在read等待时输入的信息
-t 秒数 :read等待的秒数(到达秒数自动跳转下一条)
-n 字符数 :read最多能接收的字符数
-s :隐藏输入的信息
注:若特殊选项不换行,使用\\n控制转换符
以上是关于Shell-- 基础知识的主要内容,如果未能解决你的问题,请参考以下文章