Linux开车—Shell命令
——Shell常用命令
——shell变量
shell变量不同于JAVA变量,需要指定类型,在Linux中,shell变量是不用指定变量类型的,
可直接输入变量名即可为其赋值。例:y=5;x=‘qwe’,这里面“y”与“x”即为变量。
——变量的读取
变量的读取,也可理解为变量的打印。通过echo命令完成:
调取变量,在变量前加 “$”符号
举例
读取登录用户名:echo $LOGNAME
读取用户home目录:echo $HOME
读取当前系统默认的shell:echo $SHELL
其中LOGNAME 、HOME、SHELL即为变量。
为了区分变量与字符串,通常用{}隔开,例:${HOME}
——环境变量
env或set:查看环境变量
如何将普通的变量变为环境变量?
一:export 变量名=值
export JAVA_HOME=/usr/lib/jvm/java-1.8.0
export HADOOP_HOME=/usr/local/hadoop
二:变量名1=值1 变量名2=值2
export 变量名1 变量名2
配置环境变量的地址:/etc/profile
1、变量与变量内容以一个等号“=”连接(name=value) [root@localhost ~]#name=tedu
2、等号两边不能直接接空格符;
3、变量名称只能是英文字母、数字、下划线,但开头不能是数字;
4、变量内容若有空格符可使用双引号或单引号将变量内容结合起来;
双引号中的特殊字符保有原本的特性:例如:[**] #var= “lang is $LANG”,则#echo $var为lang is en_US.UTF-8
单引号中的特殊字符仅为一般字符(纯文本) 例如:[**] #var=‘lang is $LANG’,则#echo $var为lang is $LANG
5、可用转义字符“\”将特殊符号(如$、\、!等)变为一般字符;
——命令赋值变量
变量的设置不仅仅是直接设置值,还可以通过命令的形式完成变量赋值。
变量内容由其他命令提供,使用$(其他命令)
例:[root@localhost ~]#version=$(uname)
[root@localhost ~]#echo $version
Linux
多个变量组合为赋值变量:
[root@localhost ~]#version=$(uname)
[root@localhost ~]#version=$version-$(uname –p)
• 通常变量名大写为系统默认变量,自己定义变量可以使 用小写,方便区分。
• 取消变量的定义:unset 变量名(如果取消系统环境变 量的话,修改/etc/profile文件,否则重启后该变量还存 在)
例如:unset version
• 把一个命令定义成一个变量 例如: (反引号`为tab键上方的按键)
两种方式 [root@localhost ~]# cmd=`date +%F`(反引号易被误解,不推荐)
[root@localhost ~]# cmd=$(date +%F) 推荐方式
• 数据重定向
标准输入(stdin):编号为0
标准输出(stdout):编号为1
标准错误输出(stderr):编号为2
1>:以覆盖的方法,将正确的数据输出到文件; •
1>>:以累加的方法,将正确的数据输出到文件; •
2>:以覆盖的方法,将错误输出的数据输出到文件; •
2>>:以累加的方法,将错误输出的数据输出到文件; •
• 命令执行判断
ᅳ $?:命令回传值
ᅳ cmd1&&cmd2:若cmd1执行完毕且正确执行($?=0),则开始执行 cmd2,若cmd1执行完毕且为错误($? ≠ 0),则cmd2不执行。
ᅳ ||:若cmd1执行完毕且正确执行($?=0),则cmd2不执行。 若cmd1执行完毕且为错误($?≠0),则开始执行cmd2
ᅳ举例:如果/tmp/test存在,则创建/tmp/test/jinxf ls /tmp/test && • touch • /tmp/test/jinxf
——find命令
命令格式: ᅳ find • [path...] • [-option] •
name :按照文件名查找文件。
find / • -name • demo 在/目录及其子目录下面查找名字 为 demo的文件
find . • -name • "*.java" 在当前目录及其子目录(用“.” 表示) 中查找任何扩展名为“java”的文件
perm 按照文件权限来查找文件。
find • . • -perm • 755 • [–print] • 在当前目录下查找文件权限位为 755的 文件,即文件所有者可以读、写、执行,组与其他用户可以 读、 执行的文件
user按照文件所有者来查找文件。
find • ~ • -user • root• [–print] 在$HOME目录中查找文件属 主为root的文件
group 按照文件所属的组来查找文件。
find • / • -group • root• [–print] 在/目录下查找属于root用户组的 文件

浙公网安备 33010602011771号