**1.**linux awk中NF与$NF的区别
NF 表示的是字段的个数
$NF 表示的最后一个字段
例如:一个文件a中内容为:are you ok
awk -F’ ’ ‘{print NF}’ a
结果为4
awk -F’ ’ ‘{print $NF}’ a
结果为ok
2.$0 Shell本身的文件名
1 ~ 1~ 1~n 添加到Shell的各参数值。$1是第1参数、$2是第2参数…
$$ Shell本身的PID(ProcessID)
$! Shell最后运行的后台Process的PID
$? 最后运行的命令的结束代码(返回值)
$- 使用Set命令设定的Flag一览
∗ 所 有 参 数 列 表 。 如 " * 所有参数列表。如" ∗所有参数列表。如"*“用「”」括起来的情况、以"$1 $2 … $n"的形式输出所有数。
@ 所 有 参 数 列 表 。 如 " @ 所有参数列表。如" @所有参数列表。如"@“用「”」括起来的情况、以"$1" “ 2 " … " 2" … " 2"…"n” 的形式输出所有参数。
$# 添加到Shell的参数个数
3.#跳转到当前脚本所在目录的上一级目录
cd $(dirname $0)/…
例如:analytics脚本在/home/warmDay/2.3.4/analyticsa/bin目录下,当执行cd $(dirname $0)/…之后,会跳转到/home/warmDay/2.3.4/analyticsa目录
4.
#遍历这个目录下的所有jar包
for f in
A
N
A
L
Y
T
I
C
S
H
O
M
E
/
l
i
b
/
∗
.
j
a
r
;
d
o
i
f
[
"
ANALYTICS_HOME/lib/*.jar; do if [ "
ANALYTICSHOME/lib/∗.jar;doif["LIBJARS" = “” ]; then
LIBJARS=$f
else
#将这个目录下的所有jar附值给LIBJARS
#/home/a.jar,/home/b.jar
#/home/a.jar,/homeb.jar,/home/c.jar
LIBJARS=$LIBJARS,$f
fi
done
5.
#如果ANALYTICS_PID_DIR存在则输出,不存在则输出
A
N
A
L
Y
T
I
C
S
H
O
M
E
/
t
m
p
A
N
A
L
Y
T
I
C
S
P
I
D
D
I
R
=
ANALYTICS_HOME/tmp ANALYTICS_PID_DIR=
ANALYTICSHOME/tmpANALYTICSPIDDIR={ANALYTICS_PID_DIR:-"$ANALYTICS_HOME/tmp"}
6.
#ulimit -a 用来显示当前的各种用户进程限制
Linux对于每个用户,系统限制其最大进程数,为提高性能,可以根据设备资源情况,
设置个Linux用户的最大进程数,一些需要设置为无限制:
数据段长度:ulimit -d unlimited
最大内存大小:ulimit -m unlimited
堆栈大小:ulimit -s unlimited
我们在用这个命令的时候主要是为了产生core文件,就是程序运行发行段错误时的文件:
ulimit -c unlimited
生成core文件,
#######################################################
以下来自baidu 的
查看限制情况 ulimit -a
可以看到如下信息
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
pending signals (-i) 1024
max locked memory (kbytes, -l) 32
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 4096
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
而我们需要修改的是open files (-n) 1024的值,linux允许打开的最大文件数
于是命令就是limit -n 2048(随各自需要设置)
要想永久生效:修改以下参数
参考:
http://blog.youkuaiyun.com/fdipzone/article/details/34588803
7.查找某个文件,或安装包路径
以tomcat为例:
从根目录下查找所有的startup.sh命令
find / -name startup.sh
从根目录下查找所有bootstrap.jar
find / -name bootstrap.jar
显示所有进程的位置
jps -v
7.查看hfds使用磁盘情况
hadoop dfsadmin -report
8.格式化namenode(需要先删除namenode,跟datanode地址)
sudo -u hdfs hdfs namenode -format
9.全局替换:s
:s / old / new / g
把当前行old的每次出现改为new,而不只是该行的第一个old。:s命令允许替换串后面带有选项,上面语法中的g代表全局(g选项影响一行中的每个模式,不要把它与影响文件中所有行的:g命令混淆)
通过在:s命令前加上地址前缀,可以把它的范围扩展到多行。例如下面命令把50行到100行的old的每次出现都改为new:
:50, 100 s / old / new / g