Skip to content

Latest commit

 

History

History
213 lines (173 loc) · 5.71 KB

变量.md

File metadata and controls

213 lines (173 loc) · 5.71 KB
变量 备注
用户自定义变量
环境变量
位置参数变量
预定义变量
变量名=变量值
echo $变量名

e.g.

x=123
x="$x"456
x=${x}789
set
# 查看所有变量

选项

选项 备注
-u 调用未声明变量时报错(默认无提示)
echo $a
set -u
echo $a

设置环境变量

export 变量名=变量值
#
变量名=变量值
export 变量名
set
# 查看所有变量
env
# 查看环境变量

删除环境变量

# 如果在子shell中需要执行exit
pstree
unset 变量名

PATH 环境变量

echo $PATH
# 查看PATH环境变量
PATH="$PATH":/root/sh
# 增加PATH变量的值

PS1 环境变量

备注
\d 显示日期,格式为"星期 月 日"
\H 显示完整的主机名。如默认主机名"localhost.localdomain"
\t 显示 24 小时制时间。格式为"HH:MM:SS"
\A 显示 24 小时制时间。格式为"HH:MM"
\u 显示当前用户名
\w 显示当前所在目录的完整名称
\W 显示当前所在目录的最后一个目录
$ 提示符。如果是 root 用户会显示提示符为"#",如果是普通用户会显示提示符为"$"
locale
# 查询当前系统语系
# LANG 定义系统主语系的变量
# LC_ALL 定义整体语系的变量
echo $LANG
cat /etc/sysconfig/i18n
echo $LC_ALL
locale -a | more
# 查询linux支持的所有语系
位置参数变量 作用
$n n 为数字,$0 代表命令本身,$1-$9 代表第一到第九 个参数,十以上的参数需要用大括号包含,如${10}
$* 这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体
$@ 这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待
$# 这个变量代表命令行中所有的参数的个数
#!/bin/bash
num1=$1
num2=$2
sum=$(($num1+$num2))
# 变量sum是num1+num2的和
echo $sum
# 打印变量sum的值
预定义变量 作用
$? 最后一次执行的命令的返回状态。为零则上条命令正确执行,非零则非正确执行
$$ 当前进程的进程号(PID)
$! 后台运行的最后一个进程的进程号(PID)
read [选项] [变量名]

选项

选项 备注
-p "提示信息" 在等待 read 输入时,输出提示信息
-t 秒数 read 命令会一直等待用户输入,使用此选项可以指定等待时间
-n 字符数 read 命令只接受指定的字符数,就会执行
-s 隐藏输入的数据,适用于机密信息的输入
#!/bin/bash
read -p "please input your name: " -t 5 name
echo $name
read -p "please input your age"

source 命令

source 配置文件
. 配置文件

环境变量配置文件

/etc/profile
/etc/profile.d/*.sh
~/.bash_profile
~/.bashrc
/etc/bashrc
/etc/profile 作用
USER 变量
LOGNAME 变量
MAIL 变量
PATH 变量
HOSTNAME 变量
HISTSIZE 变量
umask
调用/etc/profile.d/*.sh 文件

注销时生效的环境变量配置文件

~/.bash_logout

其他配置文件

~/.bash_history

shell 登录信息

本地终端欢迎信息

转义符 作用
\d 显示当前系统日期
\s 显示操作系统名称
\l 显示登录的终端号,这个比较常用
\m 显示硬件体系结构,如 i386,i686 等
\n 显示主机名
\o 显示域名
\r 显示内核版本
\t 显示当前系统时间
\u 显示当前登录用户的序列号

远程终端欢迎信息

/etc/issue.net
# 修改ssh的配置文件
/etc/ssh/sshd_config
# 加入
Banner /etc/issue.net
# 重启sshd
service sshd restart
# 重开一个系统窗口生效
# 不能识别转义符

登录后欢迎信息

/etc/motd