linux常用命令 和shell脚本(必知)

从工作中总结了一些非常实用的linux命令如下:

命令实例功能
curl -I http://127.0.0.1:8088/index.jsp

curl -I  http://127.0.0.1:8088/index.jsp
返回200确认服务正常
sudo mv healthcheck  healthcheck.bak摘掉healthcheck
sudo vi  xxx修改文件
cd 目录
less / cat / tac  文件名
shift+g

less 文件名 |tail -200

cat 文件 |  grep  -i 'error' 不分大小写 

cat 文件 |  grep  -v 'error' 不包含

cat /etc/hosts 查看host文件
查看文件
看结尾
ls -al 目录显示目录
lsattr -a test

-a:显示所有文件属性 
-d:仅显示目录属性 
-R:递归显示
显示加锁文件内容
查看文件的隐藏属性
sudo chattr -i filename对文件加锁
sudo  chattr +i filename解锁
history 100历史
tail -200f  文件末尾查看
ps aux | grep nginx

ps -aux|grep tomcat
显示所有程序
netstat -an | grep ':80'
找出运行在指定端口的进程

wgethttp://blog.zyan.cc/soft/linux/webbench/webbench-1.5.tar.gz

tar zxvf webbench-1.5.tar.gz

cd webbench-1.5

make && make install

安装

cat /proc/cpuinfo|grepcores


查看cpu核数

cat/proc/meminfo |grep MemTotal

查看内存大小
df -hl磁盘
sudo 

find / -name http.conf

 查找文件

sudo vim startenv.sh

注释掉原来的:

添加下面的

exportJAVA_OPTS="-Xms2048m -Xmx2048m -XX:NewSize=256m -XX:PermSize=256m-server  -Xdebug -Xnoagent-Djava.compiler=NONE-Xrunjdwp:transport=dt_socket,suspend=n,server=y,address=23455"

重启tomcat
开启tomcat的debug模式
参考:http://edu.cnzz.cn/201008/649705bb.shtml
方法一: 想要让特定任务运行一次 ,可以使用at
方法二:crontab
cron是一个linux下 的定时执行工具,可以在无需人工干预的情况下运行作业。
由于Cron 是Linux的内置服务,但它不自动起来


/sbin/service crond start//启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload//重新载入配置
/sbin/service crond status//查看服务状态

crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
crontab -l //列出某个用户cron服务的详细内容
crontab -r //删除某个用户的cron服务
crontab -e //编辑某个用户的cron服务比如说root查看自己的cron设置:crontab -u root -l
再例如,root想删除fred的cron设置:crontab -u fred -r


ps -ax | grep cron 查看服务是否已经运行

*****command(例如/bin/sh /home/start.sh)


分  时  日  月  周  命令


第1列表示分钟1~59 每分钟用*或者 */1表示

第2列表示小时1~23(0表示0点)

第3列表示日期1~31

第4列表示月份1~12

第5列标识号星期0~6(0表示星期天)

第6列要运行的命令crontab文件的一些例子:

#每晚的21:30重启apache。
30 21 * * * /usr/local/etc/rc.d/lighttpd restart

#每月1、10、22日
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart

#每天早上6点10分
10 6 * * * date

#每两个小时
0 */2 * * * date
定时任务设置
chmod +x nusers 
执行权限
sudo rm -rf 目录名字
强制递归删除
du -h --max-depth=1 /home/*
查看文件及文件夹的详细大小

测试NG

cd /home/nginx/

 sudo ./sbin/nginx -t

启动NG 

cd /home/nginx/

sudo./sbin/nginx -s reload


sudo /home/tools/bin/restart_tomcat.sh tomcat名称


重启tomcat
sudo sz +  文件名
下载

sudo rz -bey

上传
atnodes 'grep 'xception'  error.log  若干机器
批量查看
version.sh
查tomcat版本号
  


命令描述
cat/proc/meminfo内存

这个动态更新的虚拟文件实际上是许多其他内存相关工具(如:free / ps / top)等的组合显示。/proc/meminfo列出了所有你想了解的内存的使用情况。

进程的内存使用信息也可以通过 /proc/<pid>/statm 和 /proc/<pid>/status 来查看。


内存:http://9iphp.com/linux/1247.htmlfree-h


free -b -s5
每5秒更新一次




ps aux--sort-rss

sudo smem --pie name -c "pss"



top




vmstat -s




pmap -d 5647





free命令是一个快速查看内存使用情况的方法,
它是对 /proc/meminfo 收集到的信息的一个概述

free命令是用来查看内存使用情况的主要命令。和top命令相比,它的优点是使用简单,并且只占用很少的系统资源。通过-S参数可以使用free命令不间断地监视有多少内存在使用,这样可以把它当作一个方便实时监控器。


ps命令可以实时的显示各个进程的内存使用情况
可以使用 “–sort”选项对进程进行排序,例如按RSS进行排序:






smem命令允许你统计基于/proc信息的不同进程和用户的内存使用情况。
内存使用情况的分析可以导出图表(条形图和饼图)。



top命令提供了实时的运行中的程序的资源使用统计。你可以根据内存的使用和大小来进行排序。




vmstat命令显示实时的和平均的统计,覆盖CPU、内存、I/O等内容。例如内存情况,不仅显示物理内存,也统计虚拟内存。




可以根据进程查看进程相关信息占用的内存情况,(进程号可以通过ps查看)如下所示
top -d 2 ---两秒刷新一次

 top -d 2 -p 2955 ---只输出指定进程的信息

它的缺点是会消耗很多系统资源

它将显示系统中CPU最“敏感”的任务列表.该命令可以按CPU使用.内存使用和执行时间对任务进行排序;
参考:

top常用参数如下:

-d :后面可以接秒数,就是整个程序画面更新的秒数。预设是 5 秒;
-b :以批次的方式执行 top ,还有更多的参数可以使用喔!
通常会搭配数据流重导向来将批次的结果输出成为档案。
-n :与 -b 搭配,意义是,需要进行几次 top 的输出结果。
-p :指定某些个 PID 来进行观察监测而已。
在 top 执行过程当中可以使用的按键指令:
? :显示在 top 当中可以输入的按键指令;
P :以 CPU 的使用资源排序显示;--%CPU
M :以 Memory 的使用资源排序显示;--%MEM
N :以 PID 来排序--从大到小
T :由该 Process 使用的 CPU 时间累积 (TIME+) 排序。
k :给予某个 PID 一个讯号 (signal)
r :给予某个 PID 重新制订一个 nice 值
ln -s /home/tomcat    /tomcat



















ln  a b 是建立硬链接
建立软链接---linux下的软链接类似于windows下的快捷方式

ln -s a b 中的 a 就是源文件,b是链接文件名,其作用是当进入b目录,实际上是链接进入了a目录

注意的是:
执行命令的时候,应该是a目录已经建立,目录b没有建立。我最开始操作的是也把b目录给建立了,结果就不对了





软硬链接区别:

1)软连接可以 跨文件系统 ,硬连接不可以 。
实践的方法就是用共享文件把windows下的 aa.txt文本文档连接到linux下/root目录 下 bb,cc . ln -s aa.txt
/root/bb 连接成功 。ln aa.txt /root/bb 失败 。

(2)关于 I节点的问题 。硬连接不管有多少个,都指向的是同一个I节点,会把 结点连接数增加 ,只要结点的连接数不是 0,文件就一直存在 ,不管你删除的是

源文件还是 连接的文件 。只要有一个存在 ,文件就 存在 (其实也不分什么 源文件连接文件的 ,因为他们指向都是同一个 I节点)。 当你修改源文件或者连接文件

任何一个的时候 ,其他的 文件都会做同步的修改 。软链接不直接使用i节点号作为文件指针,而是使用文件路径名作为指针。所以 删除连接文件 对源文件无影响,但

是 删除 源文件,连接文件就会找不到要指向的文件 。软链接有自己的inode,并在磁盘上有一小片空间存放路径名.

(3)软连接可以对一个不存在的文件名进行连接 。

(4)软连接可以对目录进行连接。


rm -rf  b  


注意不是rm -rf  b/

删除软链接

 

[oracle@Linux]$ touch f1          #创建一个测试文件f1
[oracle@Linux]$ ln f1 f2          #创建f1的一个硬连接文件f2
[oracle@Linux]$ ln -s f1 f3       #创建f1的一个符号连接文件f3
[oracle@Linux]$ ls -li            # -i参数显示文件的inode节点信息
total 0
9797648 -rw-r--r--  2 oracle oinstall 0 Apr 21 08:11 f1
9797648 -rw-r--r--  2 oracle oinstall 0 Apr 21 08:11 f2
9797649 lrwxrwxrwx  1 oracle oinstall 2 Apr 21 08:11 f3 -> f1


结论:
当删除原始文件f1后,硬连接f2不受影响,但是符号连接f1文件无效


参考:
http://www.cnblogs.com/itech/archive/2009/04/10/1433052.html
总结
依此您可以做一些相关的测试,可以得到以下全部结论:
1).删除符号连接f3,对f1,f2无影响;
2).删除硬连接f2,对f1,f3也无影响;
3).删除原文件f1,对硬连接f2没有影响,导致符号连接f3失效;
4).同时删除原文件f1,硬连接f2,整个文件会真正的被删除。
jstat

jmap

jconsole

JVM:查看java内存情况命令

参考:
 getconf LONG_BIT

或者 file /sbin/init
或者uname -a
linux是32位还是64位

mysql 环境变量配置:

vi .bash_profile 

export MYSQL_HOME=../mysql-5.7.13-osx10.11-x86_64/bin

PATH=$PATH:$MYSQL_HOME

source ~/.bash_profile--让以上所做的配置生效

mysql添加环境变量
free -m  显示free是显示的当前内存的使用,-m的意思是M字节来显示内容
方法一:  

lsof -i:8080


查看:
lsof -i:port
杀进程:
kill -9 processId

方法二:

netstat -tunlp |grep 8080

查看端口号占用
  
  
  
  
  
  
  
  
  
  
  
  
  

linux 性能


vmstat 1 5


简单shell脚本

  • web java 项目 打成war包, 并直接拷贝到tomat下: run.sh  test myProject(结果将myProject.war部署)
if [ ! $# == 2 ]; then
  echo "the length_in_params is 2"
  exit
fi

jenkinspath=$1
warname=$2

cd /xxx/$jenkinspath/
/yyy/software/apache-maven-3.5.0/bin/mvn clean
/yyy/software/apache-maven-3.5.0/bin/mvn install -Pdev
cp /xxx/$jenkinspath/target/${warname}.war /xxx/apache-tomcat-8.5.15/webapps/





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

多则惑少则明

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值