linux命令收集

Linux命令助手: http://man.linuxde.net/

【查看系统版本信息】
uname -a : 显示电脑以及操作系统的相关信息
例:
Linux iZ2ze52bxik2q7vmhs1m4gZ 2.6.32-642.13.1.el6.x86_64 #1 SMP Wed Jan 11 20:56:24 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
cat /proc/version : 正在运行的内核版本
例:
Linux version 2.6.32-642.13.1.el6.x86_64 (mockbuild@c1bm.rdu2.centos.org) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-17) (GCC) ) #1 SMP Wed Jan 11 20:56:24 UTC 2017
cat /etc/issue : 显示发行版本信息
例:
CentOS release 6.8 (Final)
Kernel \r on an \m

 

【安装软件】:
【方法1】: wget xxurl
wget http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz
解压:
tar -xzvf zookeeper-3.4.6.tar.gz
运行shell脚本:
./zkServer.sh start

【方法2】:yum install xxcomand (安装Nginx)
# 1. 添加一个资源库
vim /etc/yum.repos.d/nginx.repo
# 保存如下内容
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1

# 2. 安装
yum install nginx

# 3. 测试
service nginx status 应该会返回:nginx is stopped (nginx 已停止)


【解压文件】
1. 解压 .tar.gz 包
tar -xzvf zookeeper-3.4.6.tar.gz

tar -zxvf canal.adapter-1.1.2.tar.gz -C canal.adapter   # 解压到指定文件夹

2. 解压 zip 包
unzip elasticsearch-5.5.2.zip

【删除文件或目录】
功能说明:删除文件或目录。
语  法:rm [-dfirv][--help][--version][文件或目录...]
补充说明:执行rm指令可删除文件或目录,如欲删除目录必须加上参数”-r”,否则预设仅会删除文件。
参  数:
 -d或–directory  直接把欲删除的目录的硬连接数据删成0,删除该目录。
 -f或–force  强制删除文件或目录。
 -i或–interactive  删除既有文件或目录之前先询问用户。
 -r或-R或–recursive  递归处理,将指定目录下的所有文件及子目录一并处理。
 -v或–verbose  显示指令执行过程。
linux删除目录及子目录 : rm -rf [目录]

 

【上传|下载】
从服务器下载文件到本地 : sz 文件名
将本地文件拷贝到远程服务上的指定目录 : scp filename username@remotehost:remotedirectory (scp基于SSH协议)
还可以使用 ftp/sftp


【文件校验】
校验文件在传输途中是否被更改,使用相同的加密算法(如:MD5、SHA1等)对文件加密产生的串如果前后一致,则文件没有被更改。
sha1sum elasticsearch-5.5.2.zip


【环境变量】
查看环境变量 : export
环境变量存放位置 : /etc/profile 和 .bash_profile


1. 永久修改
修改 /etc/profile 或者 .bash_profile 中的任何一个。
其中,/etc/profile是全局的环境变量,对所有用户生效,而.bash_profile只对当前用户启作用。

2. 临时修改
使用 export 命令临时修改,只对当前 shell 窗口生效,当前窗口关闭后就失效了。
export PATH=$PATH:/usr/local/MATLAB/R2013b/bin

【内存分析】
查看内存使用情况 : free
查看 CPU 使用状况 : top (能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器)
查看当前正在运行的进程 : ps -ef ps -ef | grep java (查看java的进程)
查看硬盘使用情况: df [-h]
查看目录及文件所占空间:  du -sh *    (当磁盘满了的时候用来分析哪个挂载盘满了)

查看进程的内存使用情况:
ps aux | grep <process_name>
-- 任务虚拟地址空间的大小:VmSize
-- 应用程序正在使用的物理内存的大小:VmRSS

统计所有程序占用的总内存:
ps aux | awk '{mem += $6} END {print mem/1024/1024}'

动态查看进程的内存使用量
top -d 1 -p <pid> [,pid ...]  ## -d设置为delay 1s,默认是delay 3s

查看机器的内存使用情况:  
free -h

@see: https://www.cnblogs.com/varden/p/15178568.html

 


【发送HTTP】
curl -XGET 'localhost:9200/?pretty'
更多 curl 的用法:
http://www.manongjc.com/detail/13-wnepdmpolydiryy.html
http://www.ruanyifeng.com/blog/2019/09/curl-reference.html


【防火墙】
CentOS Linux开启和关闭防火墙命令有两种,一种是临时的,重启即复原;另外一种是永久性的,重启不会复原。
1) 临时生效,重启后复原
开启: service iptables start
关闭: service iptables stop
重启: service iptables restart
2) 永久性生效,重启后不会复原
开启: chkconfig iptables on
关闭: chkconfig iptables off

setenforce 0 关闭防火墙
getenforce 查看防火墙状态


【关机、重启】
reboot 重启

 

【文件查找|查看】

find / -name filename.txt 根据名称查找/目录下的filename.txt文件。
find . -name "*.xml" 递归查找所有的xml文件
find . -name "*.xml" |xargs grep "hello world" 递归查找所有文件内容中包含hello world的xml文件
find ./ -size 0 | xargs rm -f & 删除文件大小为零的文件
grep -H 'spring' *.xml 查找所以有的包含spring的xml文件
grep 'test' d* 显示所有以d开头的文件中包含test的行。
grep 'test' aa bb cc 显示在aa,bb,cc文件中匹配test的行。
grep '[a-z]\{5\}' aa 显示所有包含每个字符串至少有5个连续小写字符的字符串的行。
ls -l | grep '.jar' 查找当前目录中的所有jar文件
head -n 10 example.txt 查看文件头10行
tail -n 10 example.txt 查看文件尾10行
tail -f exmaple.log 显示日志类型文件新增的内容(默认显示10行)

less a.log  显示文件a.log内容
使用less之后,搜索命令:
/ 字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能  (可以配合正则使用。比如: ?13:\d{2}:\d{2}  查看13点的日志)  
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)

 

find 命令有时会碰到权限不足,出现permission denied的错误。使用下面的命令,可以排除错误信息,只看搜索结果:

find / -name "jdk1.8*" 2>/dev/null

 

 

【文件修改】

在不解压压缩包的情况下通过vim命令直接更改文件内容的方法
cd到jar包所在目录,运行命令 vim xxx.jar
vim xxx.jar

此时便可以看到jar包内根目录下的所有文件
可以使用vim命令进行当前目录下的文件查找(?、/)。以log4j.xml文件为例:
1. 输入如下查找命令查找文件
/log4j.xml
2. 光标移动到该文件上之后敲回车,进入编辑界面
3. 更改文件后,使用vim命令保存并退出即可

 vi编辑文件时,临时退出
按ctrl + z 可以让编辑页面在后台运行,干些其他事情后,再输入fg 回车,就可以让后台运行的编辑页面恢复到前台

 显示文件中的空白字符:
vi编辑模式下输入:set list,即可看到空白字符
cat -E file,即可以查看文件file中的所有内容,含空白字符(cat -nE file  显示空白字符和行号) 

 

【其他】

强制关闭一条 tcp 连接
tcpkill  port 20684   (20684 是与客户端建立的连接端口)
此命令需要安装 dsniff  :  yum install dsniff  

cat 创建文件
cat > 1.txt <<EOF

创建软链接: 
ln -s /usr/local/jdk1.8.0_192  /usr/jdk

 

使用工具时(比如:xshell、secureCRT),可以同时操作多个窗口:发送键盘输入的所有会话

 

多个机器,批量停止 java 进程的批量命令:

jps|grep java|awk '{print "kill -9 "$1|"sh"}'

|"sh" : 表示执行管道前面的系统命令。参考:https://www.cnblogs.com/doflamingo/p/13209610.html

 

查看文件句柄数:

上传文件时,流没有关闭时,lsof 可以看到打开的文件数会变多

查看某个进程打开的文件:
lsof -p 28646
lsof -p 28646 | grep -v .m2|wc -l // 统计打开文件数

 

还可以看到打开的 mysql 连接。(一条 tcp 连接占用一个文件句柄)

lsof 可以帮助快速定位打开的进程命令所在的目录
例如:使用 ps -ef|grep redis  看到 ./redis-server  命令的进程是 12345,那么,我们可以使用 lsof -p 12345 来观察进程打开的文件句柄,从而快速定位到 redis-server.sh 命令所在的目录

 

  

tcpdump:

https://mp.weixin.qq.com/s?__biz=MzI1MTIzMzI2MA==&mid=2650581085&idx=3&sn=f5bd16e866032dc429ec91a04bf8e3b8&chksm=f1fe1edec68997c89746170dbbaf07a6def5119a3aa0530afbea8fc3e816d260571bfdcec368#rd

1 监视指定主机的数据包

1)打印所有到达或从主机 sunrise 发出的数据包,host 可以是 IP 地址或主机名。
tcpdump host sunrise

(2)打印主机 A 与 B 或 C 之间来往的所有数据包。
tcpdump host A and \( B or C \)

(3)打印 ace 与任何其他主机之间通信的 IP 数据包,但不包括与 helios 之间的数据包.
tcpdump ip host ace and not helios

 

2 监视指定网络的数据包

1)打印本地主机与 Berkeley 网络上的主机之间的所有通信数据包。
tcpdump net ucb-ether

(2)打印所有通过网关 snup 的 ftp 数据包。注意,表达式被单引号括起来了,这可以防止 Shell 对其中的括号进行错误解析。
tcpdump 'gateway snup and (port ftp or ftp-data)'3)打印不是本地网络的数据包。
tcpdump ip and not net localnet

 

3 监视指定协议的数据包

1)打印 TCP 会话中的的开始和结束数据包,并且数据包的源或目的不是本地网络上的主机。(nt:localnet,实际使用时要真正替换成本地网络的名字)
tcpdump 'tcp[tcpflags] & (tcp-syn|tcp-fin) != 0 and not src and dst net localnet'2)打印长度超过 576 字节,并且网关地址是 snup 的 IP 数据包。
tcpdump 'gateway snup and ip[2:2] > 576'
-- ip[2:2] 表示整个 IP 数据包的长度。
3)打印除’echo request’或者’echo reply’类型以外的 ICMP 数据包
(比如,需要打印所有非 ping 程序产生的数据包时可用到此表达式 。)
tcpdump 'icmp[icmptype] != icmp-echo and icmp[icmptype] != icmp-echoreply'
-- nt: ‘echo reuqest’ 与 ‘echo reply’ 这两种类型的 ICMP 数据包通常由 ping 程序产生

 

4 监视指定主机和端口的数据包

1)抓取主机 100.94.138.110 所有经由接口 eth1 接收的数据包,且端口号是20700。
tcpdump -i eth1 -lnXps0 dst 100.94.138.110 and dst port 20700 -c 10
-- 命令选项说明:lnXps0 请参照上文的命令选项详解,-c 10 表示只捕捉 10 个数据包。

 

 

 

posted on 2015-12-24 15:05  快鸟  阅读(381)  评论(0编辑  收藏  举报