概述
OS
1、 立刻关机
halt
2、 centos安装yum
apt-get install yum
3、 查找文件夹
find / - name 需要查找文件名称
4、 vi里面 查找字符串
“/”,后面跟要查找的字符串,再按回车。vi将光标定位在该串下一次出现的地方上。键入n跳到该串的下一个出现处,键入N跳到该串的上一个出现处。
要查找一个以search为行首的行,则键入/^search ,要查找一个以search为行尾的行,则键入/search$。
5、 解压
tar -zxvf archive_name.tar.gz
unzip elasticsearch-head-master.zip
unzip -oq elastic-job-lite-console.war -d elastic-job-lite-console
//unzip 命令详解
http://www.2cto.com/os/201308/239355.html
6、 压缩
tar czvf robot4.tar robot4
7、 查看文件修改时间
stat 555.txt
8、 查看当前目录下所有文件夹及文件
tree
如果想把内容输出到文本
tree > file.txt
9、 读取标准输入的数据,并将其内容输出成文件
tee
例如:
bin/logstash -f config/logstash-hdy.conf --debug | tee debug.log
将调试日志输入到文本中
10、 显示当前所有Java进程pid的命令
jps
11、 查看文件大小(后缀是m)
du -sh alarm.log | sort -rn
12、 linux 端口占用
netstat -anp | grep 80
lsof -i:17428
13、 Ubuntu内存cpu监控
sudo apt-get install htop
安装完成后执行命令:htop即可
14、远程拷贝文件
scp monitor-kafka-consumer-0.0.1-SNAPSHOT.jar root@10.119.37.115:/usr/local
15、放开所有端口
iptables -I IN_public_allow 1 -j ACCEPT
16、java后台启动jar包 后台启动,并且不记录日志输出
nohup java -jar jarfilename.jar >/dev/null &
nohup java -jar jarfilename.jar >log.txt &
17、Centos版本查看
cat /etc/redhat-release
18、移除当前目录下非war结尾的文件
find . ! -name "*.war" -exec rm -rf {} ;
19、war 解压
//解压 到activiti-app文件夹中(没有会自动创建)
unzip activiti-app.war -d activiti-app
20、linux java安装路径查看
http://www.cnblogs.com/kerrycode/p/4762921.html
21、查看文件的第5行到第10行
sed -n '5,10p' /etc/passwd
22、查找过滤文本文件内容
//查看cockpit-schedule-task.log日志中包含CustomDayCounterThread关键字
//忽略大小写,可以用-i参数
grep -i CustomDayCounterThread cockpit-schedule-task.log
23、根据进程号 查找程序所在文件夹
ll /proc/PID
比如:ll /proc/12132
24、更改用户的密码过期时间
比如:给jiankunking延期3000天
sudo chage -M 3000 jiankunking
查看jiankunking过期时间信息
chage -l jiankunking
25、查询当前文件夹下文件数量
ls -l | grep "^-" | wc -l
查询某个文件夹下所有文件(包含文件夹中的文件)
find ./monitor-cockpit -type f | wc -l
wc是(Word Count)的缩写,即统计单词数。 -l 统计行数
xargs用作替换工具,读取输入数据重新格式化后输出
26、查找某个文件夹下 包含error的内容
find ./monitor-cockpit -type f | xargs cat | grep -i error
27、ssh登陆
ssh jiankunking@10.138.40.221
28、回到你操作过的上一个目录去
只需敲入 cd – 就会返回到你操作过的上一个目录中去。
29、kill -HUP pid
pid 是进程标识。如果想要更改配置而不需停止并重新启动服务,请使用该命令。在对配置文件作必要的更改后,发出该命令以动态更新服务配置。
30、tcpdump
tcpdump -i ens160 host 10.119.37.147 and port 17428
//-X表示解码
tcpdump -i ens160 host 10.119.37.147 -X
31、判断当前主机是物理机还是虚拟机
dmidecode -s system-product-name
32、通过命令监听端口
nc -l 1211
33、Linux快速查询到历史输入命令
ctrl+r
按下这个快捷键后,进入了反向搜索状态,这时你输入一个字符,系统会找到最近一个包含这个字符的命令,如果不是你想要的命令,你可以继续输入,系统继续查找最近一个包含你所输入的字符串的命令,直到找到你要的命令。
找到你想要的命令后,你可以按回车执行这条命令,还可以按上下键查找该命令前后的命令,按左右键移动光标并修改这条命令。
为了提高查找效率,你应该输入该条命令中最特别的字符(别的命令不包含的字符)
34、ssh 调试模式
ssh -v jiankunking@10.119.37.199
35、linux查询某个关键字附近几行
grep -C 40 AlarmThread_run_error cockpit-schedule-task-2017-11-17.3.log
36、杀掉所有含有关键字"ansible"的进程
ps -ef|grep ansible|grep -v grep|cut -c 9-15|xargs kill -9
https://www.cnblogs.com/lichkingct/archive/2010/08/27/1810463.html
37、linux时间排序
//按照时间升序
ls -lrt
//按照时间降序(最新修改的排在前面)
ls -lt
38、临时配置java环境
export JAVA_HOME=/usr/local/java/jdk1.7.0_79
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
39、将当前时间以Unix时间戳表示
date +%s
40、Ubuntu /etc/hosts 生效
sudo /etc/init.d/networking restart
41、~
当前用户的根目录
比如:jiankunking用户 ~代表:/home/jiankunking
比如:root用户 ~代表:/root
42、查找当前目录下所有包含sshd_config字符串的文件
find .|xargs grep -ri "sshd_config"
43、使用env命令显示所有的环境变量
env
44、linux命令查看开放哪些端口
netstat -nupl (UDP类型的端口)
netstat -ntpl (TCP类型的端口)
45、su sudo
su - root(或者其他用户名)这里加了"-"后表示也切换的当前的环境变量到新用户的环境变量,
su root(或者其他用户名)表示不切换环境变量到当前用户下。
46、查看IP连接数状况
netstat -nat|grep ":80"|awk '{print $5}' |awk -F: '{print $1}' | sort| uniq -c|sort -n
47、查看连接的各种状态
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
48、Linux 快速清空文件内容
> test.txt(文件大小被截为0字节)
//文件内容清空
echo > filebeat.yml
https://my.oschina.net/open1900/blog/99061
49、文件赋予执行权限
u:表示文件所有者
g:表示同组用户
o:表示其它用户
a:表示所有用户
opt则是代表操作,可以为:
+:添加某个权限
-:取消某个权限
=:赋予给定的权限,并取消原有的权限
50、将/data/hlht/data/elasticsearch赋给elsearch用户组中的elsearch用户
chown -R elsearch:elsearch /data/hlht/data/elasticsearch
chmod 777 /data/hlht/data/elasticsearch
查看当前用户所属组:groups
51、查看进程启动及运行时间
# ps -eo lstart 启动时间
# ps -eo etime 运行多长时间
ps -eo pid,lstart,etime | grep 5176
52、查看某个目录下文件资源占用大小
du -sh /var/log/*
53、查看文件夹下文件排序并显示
du -sh ./*| sort -k1 -n
54、某个进程内存占用
top -p 进程号
显示内存单位是K
55、CentOS7使用firewalld打开关闭防火墙与端口
https://www.cnblogs.com/moxiaoan/p/5683743.html
56、添加具有root权限用户
useradd es
vi /etc/sudoers
es ALL=(ALL) NOPASSWD:ALL
测试
su es -
sudo su -
56、查看磁盘空间大小命令(linux系统以磁盘分区为单位查看文件系统)
df -hl
57、查看已经挂载的分区和文件系统类型
df -T
58、0.0.0.0
一个非常特殊的IP:0.0.0.0
这个IP相当于java中的this,代表当前设备的IP。
59、服务重新加载
systemctl daemon-reload
60、Linux下 查看哪些进程占用的CPU内存资源最多
linux下获取占用内存资源最多的10个进程,可以使用如下命令组合:
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head
linux下获取占用CPU资源最多的10个进程,可以使用如下命令组合:
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head
或者
在命令行提示符执行top命令
输入大写P,则结果按CPU占用降序排序。输入大写M,结果按内存占用降序排序。(注:大写P可以在capslock状态输入p,或者按Shift+p)
61、磁盘io利用率
iostat -xdm 1
%util 代表磁盘繁忙程度。100% 表示磁盘繁忙, 0%表示磁盘空闲。但是注意,磁盘繁忙不代表磁盘(带宽)利用率高
https://www.cnblogs.com/quixotic/p/3258730.html
进程级IO监控 iotop
iotop 顾名思义, io版的top
62、多U多核CPU监控
在top基本视图中,按键盘数字“1”,可监控每个逻辑CPU的状况
第三行:cpu状态
6.7% us — 用户空间占用CPU的百分比。
0.4% sy — 内核空间占用CPU的百分比。
0.0% ni — 改变过优先级的进程占用CPU的百分比
92.9% id — 空闲CPU百分比
0.0% wa — IO等待占用CPU的百分比
0.0% hi — 硬中断(Hardware IRQ)占用CPU的百分比
0.0% si — 软中断(Software Interrupts)占用CPU的百分比
63、centos查看安装了某个包
yum方法安装的,可以用yum list installed查找,如果是查找指定包,命令后加 | grep “软件名或者包名”;
64、swap
关闭
swapoff -a
在关闭的时候,可以通过free -mh查看swap内存占用,swapoff -a会逐渐将swap内存转移到内存中
打开
swapon -a
echo "vm.swappiness = 1">> /etc/sysctl.conf
sysctl -p (执行这个使其生效,不用重启)
65、软连接
将/data/blog/wordpress/nginx_conf/2_jiankunking.com.key(真实存在) 软连接到/etc/nginx/目录下
ln -s /data/blog/wordpress/nginx_conf/2_jiankunking.com.key /etc/nginx/
66、移动到文件末尾
可以按 shift+g 即可跳到文件底部
要返回文件顶部的时候 按 gg即可
shift+$是移动到行尾,0是移动到行首
67、字符替换
86替换成 214
sed -i "s/10.133.0.86/10.138.25.214/g" lishan.txt
68、 粗暴安装openjdk
yum install java-1.8.0-openjdk* -y
sudo apt-get install default-jdk -y
69、 CentOS7 查看开机启动项和程序服务
systemctl list-unit-files (查看开机启动项)
systemctl list-unit-files | grep 程序名称 (查看某些服务开机启动状态)
systemctl list-unit-files | grep enable (查看哪些为开机启动服务)
70、ldd
ldd命令 用于打印程序或者库文件所依赖的共享库列表。
可以用来查看golang编译的二进制程序的依赖。
Golang 在编译的时候,可以关闭CGO(CGO_ENABLED=0),从而移除依赖。
71、iptables 放开某个端口
/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
72、pmap
pmap命令用于显示一个或多个进程的内存状态。其报告进程的地址空间和内存状态信息。
语法或用法:
pmap PID
pmap [options] PID
在输出中它显示全部的地址,kbytes,mode还有mapping。
选项
- -x extended显示扩展格式
- -d device显示设备格式
- -q quiet不显示header/footer行
- -V 显示版本信息
扩展进程内存
[root@info ~]# pmap -x 1013
1013: /usr/sbin/sshd
Address Kbytes RSS Dirty Mode Mapping
00110000 1480 92 0 r-x- libcrypto.so.1.0.0
00282000 80 80 80 rw-- libcrypto.so.1.0.0
00296000 12 8 4 rw-- [ anon ]
00299000 36 0 0 r-x- libkrb5support.so.0.1
002a2000 4 4 4 rw-- libkrb5support.so.0.1
002a3000 16 0 0 r-x- libplc4.so
002a7000 4 4 4 rw-- libplc4.so
002ab000 88 4 0 r-x- libaudit.so.1.0.0
002c1000 4 4 4 r--- libaudit.so.1.0.0
002c2000 4 4 4 rw-- libaudit.so.1.0.0
002c3000 216 4 0 r-x- libgssapi_krb5.so.2.2
002f9000 4 4 4 rw-- libgssapi_krb5.so.2.2
002fa000 808 4 0 r-x- libkrb5.so.3.3
003c4000 24 24 24 rw-- libkrb5.so.3.3
003ca000 152 4 0 r-x- libk5crypto.so.3.1
003f0000 4 4 4 rw-- libk5crypto.so.3.1
003f1000 92 0 0 r-x- libnssutil3.so
00408000 12 12 12 rw-- libnssutil3.so
0040b000 12 0 0 r-x- libplds4.so
0040e000 4 4 4 rw-- libplds4.so
--- --- --- --- ---
total kB 8232 - - -
这里的Address,Kbyte,Dirty,RSS,mode还有mapping的说明如下
扩展和设备格式区域
- Address: 内存开始地址
- Kbytes: 占用内存的字节数(KB)
- RSS: 保留内存的字节数(KB)
- Dirty: 脏页的字节数(包括共享和私有的)(KB)
- Mode: 内存的权限:read、write、execute、shared、private (写时复制)
- Mapping: 占用内存的文件、或[anon](分配的内存)、或[stack](堆栈)
- Offset: 文件偏移
- Device: 设备名 (major:minor)
73、lsof
lsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口。
在终端下输入lsof即可显示系统打开的文件,因为 lsof 需要访问核心内存和各种文件,所以必须以 root 用户的身份运行它才能够充分地发挥其功能。
直接输入lsof部分输出为:
每行显示一个打开的文件,若不指定条件默认将显示所有进程打开的所有文件。
lsof输出各列信息的意义如下:
- COMMAND:进程的名称 PID:进程标识符
- USER:进程所有者
- FD:文件描述符,应用程序通过文件描述符识别该文件。如cwd、txt等 TYPE:文件类型,如DIR、REG等
- DEVICE:指定磁盘的名称
- SIZE:文件的大小
- NODE:索引节点(文件在磁盘上的标识)
- NAME:打开文件的确切名称
FD 列中的文件描述符cwd 值表示应用程序的当前工作目录,这是该应用程序启动的目录,除非它本身对这个目录进行更改,txt 类型的文件是程序代码,如应用程序二进制文件本身或共享库,如上列表中显示的 /sbin/init 程序。
其次数值表示应用程序的文件描述符,这是打开该文件时返回的一个整数。如上的最后一行文件/dev/initctl,其文件描述符为 10。u 表示该文件被打开并处于读取/写入模式,而不是只读 ® 或只写 (w) 模式。同时还有大写 的W 表示该应用程序具有对整个文件的写锁。该文件描述符用于确保每次只能打开一个应用程序实例。初始打开每个应用程序时,都具有三个文件描述符,从 0 到 2,分别表示标准输入、输出和错误流。所以大多数应用程序所打开的文件的 FD 都是从 3 开始。
与 FD 列相比,Type 列则比较直观。文件和目录分别称为 REG 和 DIR。而CHR 和 BLK,分别表示字符和块设备;或者 UNIX、FIFO 和 IPv4,分别表示 UNIX 域套接字、先进先出 (FIFO) 队列和网际协议 (IP) 套接字。
74、根据进程号查看某个进程文件的启动位置
ls -al /proc/进程id
输出
注意:
- cwd符号链接的是进程运行目录;
- exe符号连接就是执行程序的绝对路径;
- cmdline就是程序运行时输入的命令行命令;
- environ记录了进程运行时的环境变量;
- fd目录下是进程打开或使用的文件的符号连接。
75、linux 查看进程启动命令
先通过ps找到进程pid,再在/proc/进程pid/cmdline查看启动命令
cat /proc/进程pid/cmdline
可使用 tr 或者 strings命令将命令分割成可读方式(推荐第二种)
cat /proc/进程pid/cmdline | tr "