脚本的编写
所有在 Linux 命令行环境下的命令都可放在.sh脚本文件中,比如 hadoop 的一系列文件操作,如hadoop fs -put ...
,甚至 hadoop jar /** / **
未必在 Linux 命令行环境下的命令,如hive>
hive 中的相关命令和操作也可置于.sh脚本中,需要在命令之前增加 hive -e
。
type:查看命令是否为 bash 的内置命令
[root@zch ~]# type -t name
file: 表示为外部命令;
alias: 表示该命令为命令别名所设置的名称;
builtin:表示该命令微 bash 内置的命令功能;
[root@zch ~]# type -t ls
alias
[root@zch ~]# type -t cd
builtin
如果命令串过长,如何使用两行输出
使用 \ 对回车(Enter)进行转义
[root@zch ~]# cp /var/spool/mail/root /etc/crontab \
> /etc/fstab /root
上面这个命令的功能就是将三个文件赋值到 /root 目录,因命令过长,使用 \[Enter]
对 [Enter]
进行转义,让[Enter]
不再具有“开始执行”的功能,以让命令可以继续在下一行输入。需要注意的是,\
和[Enter]
之间没有空格,否则\
转义的就是空格,而不是[Enter]
了;
变量与变量的内容/设置或修改变量
(1)查看变量的内容
[root@zhang ~]# echo $HOME /root [root@zhang ~]# echo ${HOME}
(2)设置或修改变量
使用
=
赋值运算符(=
前后没有空格)[root@zhang ~]# echo $myname [root@zhang ~]# myname=zhang [root@zhang ~]# echo $myname zhang
变量与环境变量
若该变量需要在其他子进程执行,则需要以 export 来使变量变为环境变量 。
何谓“子进程”呢?就是说在我目前这个 shell 的情况下,去打开另一个新的 shell,新的那个 shell 就是子进程。在一般的状态下,父进程的自定义变量是无法在子进程内使用的,但是通过 export 将变量设为环境变量后,就能够在子进程下面应用了。
内核的模块目录
[root@zhang ~]# cd /lib/modules/`uname -r`/kernel
[root@zhang ~]# cd /lib/modules/$(uname -r)/kernel
在一串命令中,在` 之内的命令会先被执行,而其执行的结果将会作为外部的输入信息。
每个 Linux 都能够拥有多个内核版本,且几乎 distribution 的所有内核版本都不相同。