-
pstree
#设置环境变量
export 变量名=变量值
#查看变量 查看环境变量
set env
删除变量
unset 变量名
常用环境变量
HOSTNAME:主机名
SHELL:当前shell
TERM:终端环境
HISTSIZE:历史命令条数SSH_CLIENT:ssh客户端的IP
SSH_TTY:ssh链接终端时pts/1
USER:当前登录的用户
查看全部 -
变量追加
x=123
x="$x"456
x=${x}789
#调用未声明的变量是会报错
set -u
变量删除
unset name
查看全部 -
Bash中默认变量类型都是字符串
变量类型
用户自定义变量 可更改名称和值
环境变量 部分不可更改名称,可更改值
预定义变量 不可更改名称,可更改值
查看全部 -
pstree
exit
环境变量
export 变量名=变量值
变量名=变量值
export 变量名
env 查看环境变量
常用环境变量
HOSTNAME:主机名
SHELL:当前的shell
TERM:终端环境
HISTSIZE:历史命令条数
SSH_CLIENT:当前操作环境是用ssh连接的,这里记录客户端ip
SSH_TTY:ssh连接的终端时pts/1
USER:当前登录的用户
PATH变量:系统查找命令的路劲
查看PATH环境变量
echo $PATH
增加PATH变量的值
PATH="$PATH":/root/sh
查看全部 -
read学习
查看全部 -
PS1环境变量
查看全部 -
位置参数变量和预变量差不多
查看全部 -
预定义变量
预定义变量 作用
$? #最后一次所执行命令的返回状态。 0为成功。非0为失败。
$$ #当前进程PID
$! #后台运行的最后一个进程的进程号(PID)
举例:
ls 1dsa #文件没找到 echo $? 返回2
dsadas #命令没找到 echo $? 返回127
vi /root/as.sh #以下时脚本内容
#!/bin/bash
echo "dang qian : $$"
find /root -name hello.sh &
echo "hou tai : $!"
接收键盘输入
read [选项] [变量名]
选项:
-p "提示信息":在等待read输入时,输出提示信息
-t 秒数 read命令会一直等待用户输入,使用此选项可以指定等待时间
-n 字符数 read 命令只接受指定的字符数,就会执行
-s 隐藏输入的数据,适用于机密信息的输入
read.shell脚本
#!/bin/bash
read -p "Please input your name:" -t 30 name
echo $name
read -p "Please input your passwd:" -s passwd
echo -e "\n" #换行
echo $passwd
read -p "input your sex [M/F]" -n 1 sex
echo -e "\n"
echo $sex
查看全部 -
位置参数变量
位置参数变量 作用
$n n为数字,$0代表命令本身,$1~$9代表第一个到第九个参数,十以上的参数需要用大括号包含,如${10}
$* 这个变量代表命令行中的所有参数,$*把所有的参数看成一个整体
$@ 这个变量代表命令行中的所有参数,不过$@把每个参数区分别对待。
$# 这个变量代表命令行中的所有参数个数
举例1
vi sum.sh #以下时脚本内容
#!/bin/bash
num1=$1
num2=$2
sum=$(($num1 + $num2)) #变量sum的和是num1+num2 加法+左右有空格 其他亦同
echo$(10 + 20)
echo $sum #打印变量sum的值
调用
hello.shell 10 11
chmod 755 sum.sh #赋予sum.sh权限
./sum.sh 45 67 #参数1为45,参数2为67
举例2
vi canshu2.sh
#!/bin/bash
echo "\$* can shu shi : $*"
echo "\$@can shu ye shi : $@"
echo "\$# can shu ge shu shi : $#"
举例3
vi canshu3.sh
#!/bin/bash
for i in 1 2 3 4
do
echo $i
done
举例4 #$*与$@的区别
vi canshu4.sh
#!/bin/bash
for i in "$*"
#$*中的所有参数看成是一个整体,所以这个for循环只会循环依次
do
echo "The parameters are: $i"
done
for y in "$@"
#$@中的的每个参数看成是独立的,所以"$@"中有几个参数,就会循环几次
do
echo "parameter: $y"
done
chmod 755 canshu4.sh
./canshu4.sh 1 2 3 4 5
查看全部 -
环境变量中的语系变量
当前语系查询
locale #查询当前系统语系,LANG:定义系统主语系的变量,LC_ALL:定义整体语系的变量
echo $LANG #查看系统当前语系
echo $LC_ALL #查看整体语系的变量
locale -a | more #查看Linux支持的所有语系
cat /etc/sysconfig/i18n #查看默认语系
LANG="en_US.UTF-8" #默认语系为英文语系UTF-8编码
LANG="zh_CN.UTF-8" #将默认语系改为中文语系UTF-8编码
Linux中文支持
前提条件,正确安装的中文字体和中文语系
如果有图形界面,可以正确支持中文显示
如果使用第三方远程工具,只要语系设定正确,可以支持中文显示
如果使用纯字符界面,必须使用第三方插件(如zhcon等)
查看全部 -
1、环境变量与用户自定义变量的区别
环境变量是全局变量,用户自定义变量是局部变量。
用户自定义变量只在当前的 Shell 界面中生效,环境变量在当前 Shell 和这个 Shell 的所有子 Shell 中生效。
变量可以自定义,但是对系统生效的环境变量名和变量作用是固定的。
bash 命令进入子shell
exit 退出子shell进入父shell
设置环境变量
export 变量名=变量值
$ 变量名=变量值;export 变量名
pstree #display a tree of processes
3、查看环境变量
set #查看所有变量
env #查看环境变量
4、删除环境变量
unset 环境变量名
5、常用的环境变量 #建议大写
HOSTNAME:主机名
SHELL:当前的 shell
TERM:终端环境
HISTSIZE:历史命令条数
SSH_CLIENT:当前操作环境是用 ssh 连接的,这里记录客户端 ip
SSH_TTY:ssh 连接的终端是 pts/1
USER:当前登录的用户
PATH变量:系统搜索命令的路径
要想直接通过脚本名执行自己的脚本:
(1)将脚本拷贝至 PATH 中的任意目录下(不建议这样做),例如:
cp hello.sh /bin/
rm -rf /bin/hello.sh
(2)将脚本所在目录添加到 PATH 变量中,例如:
PATH="$PATH":/root/sh #但系统重启后失效
PS1环境变量 echo $PS1
PS1:命令提示符设置
\d:显示日期,格式为"星期 月 日"
\H:显示完整的主机名
\t:显示 24 小时制时间,格式为"HH:MM:SS"
\A:显示 24 小时制时间,格式为"HH:MM"
\u:显示当前用户名
\w:显示当前所在目录的完整名称
\W:显示当前所在目录的最后一个目录
\$:提示符。root 用户为"#",普通用户为"$"
PS1='[\u@\h \w]]\$ '
PS1='[\u@\h \W]]\$ ' #默认命令提示符
查看全部 -
定义变量
变量名=变量值
例如:
x=5
name="jie cao" #=号左右不可有空格""会解析特殊符号,例如$,''不会解析特殊符号
变量调用
echo $变量名
例如:
echo $x
echo $name
a=1;x=6
z=$a+$x
echo $z #定义变量的时候不需要加$符 在调用变量的时候需要加$符,输出的是字符所有变量默认的值都是字符串类型,不可做Math运算
变量叠加
x=123
y="$x"123 或者 y=${x}123
查看变量
set #会列出系统中所有的变量,包括环境变量和自定义变量
set -u $变量名 #设定当调用不存在变量时,会提示错误
删除变量
unset 变量名
例如:
unset x
查看全部 -
什么是变量
变量是计算机内存的单元,其中存放的值可以改变
变量让你能够把程序中准备使用的每一段数据都赋给一个简短、易于记忆的名字,因此他们十分有用
变量命名规则
变量名必须以字母或下划线开头,名字中间只能有字母、数字和下划线组成
变量的长度不超过255个字符
变量名在有效的范围内必须是唯一的
在Bash中,变量的默认类型都是字符串型
变量按照存储数据分类
字符串型
整型
浮点型
日期型
变量的分类
用户自定义变量 #变量自定义的
环境变量 #这种变量中主要保存的是和系统操作环境相关的数据。变量可以自定义,但是对系统生效的环境变量名和变量作用是固定的
位置参数变量 #预定义变量的一种,这种变量主要是用来向脚本当中传递参数或数据的,变量名不能自定义,变量作用是固定的
预定义变量 #是Bash中已经定义好的变量,变量名不能自定义,变量作用也是固定的
查看全部 -
SHELL编程课程简介
不管是PHP ,还是JAVA ,它是用来编写应用程序的,或是网站; JAVA主要是实现服务端程序。 而shel编程,它是一个脚本语言(所见即所得)。它不需要执行编译过程之后再执行;它是编译过程放在执行过程中,所以,执行起来要慢得多
SHELL,主要是帮助管理员,简化管理操作。 比如,批量增加用户,定时备份脚本,批量记录什么LOG.....
查看全部 -
预定义变量
查看全部
举报