变量 |
备注 |
用户自定义变量 |
|
环境变量 |
|
位置参数变量 |
|
预定义变量 |
|
e.g.
x=123
x="$x"456
x=${x}789
选项 |
备注 |
-u |
调用未声明变量时报错(默认无提示) |
export 变量名=变量值
# 或
变量名=变量值
export 变量名
set
# 查看所有变量
env
# 查看环境变量
# 如果在子shell中需要执行exit
pstree
unset 变量名
echo $PATH
# 查看PATH环境变量
PATH="$PATH":/root/sh
# 增加PATH变量的值
|
备注 |
\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) |
选项 |
备注 |
-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"
/etc/profile
/etc/profile.d/*.sh
~/.bash_profile
~/.bashrc
/etc/bashrc
/etc/profile 作用 |
USER 变量 |
LOGNAME 变量 |
MAIL 变量 |
PATH 变量 |
HOSTNAME 变量 |
HISTSIZE 变量 |
umask |
调用/etc/profile.d/*.sh 文件 |
转义符 |
作用 |
\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
# 重开一个系统窗口生效
# 不能识别转义符