Linux常用命令

本文深入解析了Linux环境下Shell变量与awk命令的使用技巧,包括NF与$NF的区别、Shell变量的含义及用途、遍历目录与文件操作的方法、调整Linux进程限制的命令以及常用文件查找与系统管理命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

**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~ 1n 添加到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

下面的命令把整个文件中的old的每次出现都改为new:
:1, s / o l d / n e w / g 我 们 知 道 s / old / new / g 我们知道%等价于1, s/old/new/g,所以上行命令也可以这样写:
:% s / old / new / g

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值