文章目录
- 具体字段统计次数
- 模糊搜索文档
- 查看进程信息和线程信息
- 数字-进制转化
- 查看指定端口的进程号
- connection closed by foreign host
- 增加系统文件连接数
- 查看系统设置的句柄数
- 安装 lsof
- 查看某端口的进程
- 根据进程号查看该进程占用的连接数
- 根据进程号查看该进程所有的连接详情
- 将结果输出到文件
- 查询系统信息
- 用户获得sudo权限
- 用户获得文件夹权限
- root 修改其他用户密码
- Linux 查看 ip:端口 通不通的四种方式
- 忘记root密码
- ws 和 linux 文件路径不同
- 文件操作和指定文件搜索
- 模糊搜索文档
- ```/```表示根目录
- ```..```表示上级目录
- ```.```表示本级目录自己
- ```ls -la ```可以查看空文件夹
- 移动文件到指定路径
- 删除文件-(*是通配符匹配)
- drwxr-xr-x 3 root root 4096 Oct 9 11:57 jdk
- linux 查看文件夹中的所有文件-(包含隐藏文件)
- Linux 模糊搜搜端口号
- 新建文件夹
- SSH 登陆远程服务
- SSH无法登陆-/usr/sbin/sshd -t
- linux 远程登陆设置
- VMware CentOS Ctrl+Alt+F1/F2/F3
- 强制退出当前进程
- 文件操作
- 查看线程
- 杀掉线程
- 关闭tomcat
- 启动tomcat
- 返回上个目录
- 打开某个目录
- 快捷键自动补全文件名
- 本地文件和远程文件通过 scp 传输
具体字段统计次数
约定日志格式
这个需要知道文档的格式,然后区分哪一个字段作为统计标准
比如 日志内容如下:
192.168.1.1,111,222
192.168.1.2,111,222
192.168.1.2,111,222
192.168.1.3,111,222
192.168.1.1,111,222
192.168.1.1,111,222
统计每个ip(某列)出现的次数
统计每个ip出现的次数——即按照 ,分割,然后分类统计每一行的数字,$1表示分割后第一列,$0表示一整行
cat a.txt|awk -F"," ‘{print $1}’|sort -n |uniq -c
3 192.168.1.1
2 192.168.1.2
1 192.168.1.3
cat a.txt|awk -F"," ‘{print $0}’|sort -n |uniq -c
3 192.168.1.1,111,222
2 192.168.1.2,111,222
1 192.168.1.3,111,222
统计ip(某列)出现次数大于等于2的数据
$ cat a.txt|awk -F"," ‘{print $0}’|sort -n |uniq -c |awk ‘{if ($1>=2) print $0}’
3 192.168.1.1,111,222
2 192.168.1.2,111,222
统计出现次数前2名
cat a.txt|awk -F"," ‘{print $0}’|sort -n |uniq -c | head -n 2
模糊搜索文档
使用 less 和 / 精确搜索
less 文件名
/字符串
N下一页
统计 ‘xxx’ 在file中出现的次数
cat app.log | grep -c ‘xxx’
grep 模糊搜索 “xxx”
grep '字符串' 日志名.log
####### 变体:展示行号
grep -rn '字符串' 日志名.log
####### 变体:展示上线文内容
上面的搜索结果是不展示上下文内容的,下面指定具体数字,比如-5,就会展示上下文5行的内容
grep -5 '字符串' 日志名.log
查看进程信息和线程信息
查看占用cpu比例较高的进程信息
top
top
PID COMMAND %CPU TIME #TH #WQ #PORTS MEM PURG CMPRS PGRP PPID STATE BOOSTS %CPU_ME %CPU_OTHRS UID FAULTS
38303 java 79.1 01:36.21 17/1 1 72 24M 0B 0B 33545 36683 running *0[1] 0.00000 0.00000 501 11337+ 379 132 43
查看指定 进程的 信息
top -pid < pid值>
如果需要同时展示线程信息,在命令行中增加 -H
top -H -p < pid>
查看进程的线程信息
这里有平台特性,一般mac也适用linux命令,但是mac环境无法展示 进程的线程信息
详细的可以查看 https://www.cnblogs.com/EasonJim/p/8098217.html
这里按照平台兼容性推荐排序
- 进程号为< pid>的进程创建的所有线程
ps -T -p <pid>
- 查看指定进程的线程信息 top -H -p < pid>
需要linux 环境支持
top -H -p < pid>
- htop
https://www.cnblogs.com/lazyfang/p/7650010.html
数字-进制转化
echo $[base#number] 或 echo $((base#number]))
该命令会统一将 base进制的数字 number 转为 10进制的数字
echo $[2#1010]
10
echo $[16#a]
10
或者
echo $((2#1010))
10
echo $((16#a))
10
printf %d 0xAA 或 printf %x 100
这个命令转化10进制和16进制非常方便
printf %d 0xaa
170
printf %x 170
aa
echo “obase=进制;ibase=进制;number” | bc
这个交bc 命令,是最复杂的一种
obase 必须在前,如果是16进制,number中字母必须大写
默认进制都是10
进制值为 2,10,16,8
echo 'obase=10;ibase=16;A' |bc
10
查看指定端口的进程号
PID就是进程号
$ lsof -i tcp:8080
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 57314 name-pc 220u IPv6 0x8e6ef53edc5af677 0t0 TCP *:http-alt (LISTEN)
$ kill -9 57314
$
connection closed by foreign host
一般是网络环境不稳定造成的,你肉眼根本分辨不出来,ip冲突了等。换个网络环境试试。
增加系统文件连接数
https://blog.youkuaiyun.com/roy_70/article/details/78423880
查看系统设置的句柄数
具体某种连接 ulimit -[看下面命令结果]
ulimit -a
安装 lsof
lsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。
yum install lsof
查看某端口的进程
lsof -n -P -t -i :8080
根据进程号查看该进程占用的连接数
lsof -p 3418 | wc -l
根据进程号查看该进程所有的连接详情
lsof -p 3418
将结果输出到文件
lsof -p 3418 > openfiles.log
查询系统信息
lsb_release -a
用户获得sudo权限
找到 root ALL=(ALL) ALL
在下面添加
visudo
用户名 ALL=(ALL) ALL
#:test
用户获得文件夹权限
登陆本用户
sudo chmod -R 777 /文件夹路径
-rw------- (600) 只有拥有者有读写权限。
-rw-r–r-- (644) 只有拥有者有读写权限;而属组用户和其他用户只有读权限。
-rwx------ (700) 只有拥有者有读、写、执行权限。
-rwxr-xr-x (755) 拥有者有读、写、执行权限;而属组用户和其他用户只有读、执行权限。
-rwx–x--x (711) 拥有者有读、写、执行权限;而属组用户和其他用户只有执行权限。
-rw-rw-rw- (666) 所有用户都有文件读、写权限。
-rwxrwxrwx (777) 所有用户都有读、写、执行权限。
root 修改其他用户密码
su root 切换到root用户
passwd 用户名
输入新密码
再次输入新密码
Linux 查看 ip:端口 通不通的四种方式
更多信息请移步 http://www.jb51.net/article/78082.htm
telnet ip 端口
wget ip:port
忘记root密码
更多信息请移步 https://jingyan.baidu.com/article/7e440953f87f4a2fc0e2ef90.html
ws 和 linux 文件路径不同
windows用的是""
linux用的是"/"
文件操作和指定文件搜索
在本文件夹路径中搜索指定文件名的文件
find -name 文件名
模糊搜索文档
/字符 + Emter ,搜搜下一处,继续按Enter
/
表示根目录
Linux中,
/
表示根目录,比如 cd /
..
表示上级目录
Linux中,
..
表示根目录,比如 cd …
.
表示本级目录自己
Linux中,
.
表示本级目录自己,比如 cd .
ls -la
可以查看空文件夹
… 表示上级目录,.表示本级目录,一个空文件夹的连接数是2
drwxr-xr-x 2 root root 4096 Oct 10 09:44 .
drwxr-xr-x 10 root root 4096 Dec 26 17:41 …
移动文件到指定路径
mv 文件1 文件路径/
移动文件到根目录的文件名下,如果指定根目录下不存在则创建新文件夹
mv 文件1 /文件名
重命名(或者修改路径)
mv 文件1 文件2
删除文件-(*是通配符匹配)
模糊删除
比如同时删除 a 和 a.jar rm -rf a*/
rm -rf 文件名*/
删除文件夹自己含内部文件
rm -rf 文件名/ 删除文件以及内部文件
仅删除文件夹内部保留自己
rm -rf 文件名/*
drwxr-xr-x 3 root root 4096 Oct 9 11:57 jdk
使用命令
ll
可以得到下面的信息
d是目录文件,l是链接文件,-是普通文件,p是管道文件
2、3、4位表示文件所有者对该文件的权限,r是可读,w是可写,x是可执行,本例是rwx,即可读可写可执行
5、6、7位表示文件所有者同组的用户对该文件的权限,r是可读,w是可写,x是可执行,本例是r-x,即可读,不可写,可执行
8、9、10位表示文件所有者非同组用户对该文件的权限,r是可读,w是可写,x是可执行,本例是r-x,即可读,不可写,可执行
3是链接数,具体来说是显示的文件和隐藏的链接,隐藏的链接包括文件本身 . 和上一个目录 …,使用命令 ls -la 查看
第一个root 是用户名
第二个root 是用户所在的组名
4096是文件大小
Oct 9 11:57 是创建时间
jdk 是文件名
ll
drwxr-xr-x 3 root root 4096 Oct 9 11:57 jdk
linux 查看文件夹中的所有文件-(包含隐藏文件)
… 和 . 是两个隐藏文件,分别表示本目录的直接上级和本级目录
查看文件内所有非隐藏文件名
ls
查看文件内所有文件(隐藏与非隐藏)名
ls -a
查看文件内所有非隐藏文件详情
ll
查看文件内所有文件(隐藏与非隐藏)文件详情
ls -la
仅显示隐藏文件的文件名
l.
当进入一个空文件夹时,执行
l.
得到
. …
cd .仍留在本文件夹
cd …则会返回上一级文件夹
所有,被隐藏的两个文件 . 表示文件本身,… 表示上级文件
/是跟目录
Linux 模糊搜搜端口号
netstat -anp|grep 80
netstat -anp|grep 80
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 29825/java
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 29630/nginx: master
新建文件夹
mkdir name
SSH 登陆远程服务
输入用户名对应的密码
ssh 用户名@ip
SSH无法登陆-/usr/sbin/sshd -t
修改完 /etc/ssh/sshd_config 文件使用 service sshd restart 发现无法重启,报错 failed to start openssh server daemon
后来查询资料,使用 命令 /usr/sbin/sshd -t 测试信息提示 第一行有分发字符G,原来是我之前测试G跳转到页面最下端时不小心在编辑状态下输入的
删除后这个命令就正常了
linux 远程登陆设置
设置是否允许登陆的位置
vi /etc/ssh/sshd_config,将PermitRootLogin的值改成yes,允许远程登陆,no不允许远程登陆
设置立即生效需要运行下面的命令
service sshd reload
或者
service sshd restart
VMware CentOS Ctrl+Alt+F1/F2/F3
CentOS Ctrl+Alt+F1 进入 视窗模式
CentOS Ctrl+Alt+F2/F3 进入命令行模式,
F2需要从新输入密码,F3是返回上一次操作
Ctrl+Alt 跳回到Windows
#####无法解析域名
编辑etc下的resoly.conf文件(如果没有就新建一个)
vi /etc/resolv.conf
添加一行
nameserver 8.8.8.8
保存后重启网络服务
service network restart
强制退出当前进程
ctrl + c
文件操作
查看文件内容
cat 文件名 会打开整个文件
vi 文件名
编辑文本(vi之后,i(insert))
i 目前光标所在行插入文字
a 目前光标所在的下一个字开始插入文字
o 从下一行开始,下一行行首插入文字
将文件保存为指定文件名
:w fielname
将保存修改或写入的内容,离开vi
一般先按 Esc 键
:wq
如果当前用户没有写权限,则可以使用强制保存命令
:wq!
或者
:w !sudo tee %
放弃编辑的内容,并离开文件
一般先按一下 Esc 键
:q!
查看线程
有两种命令行格式,ps -ef 或者 ps -aux
ps aux
ps aux 是最常用的 BSD 风格选项组合,
a 简单的说,表示所有关联到终端的进程,如果同时使用 x 则代表所有进程;
u 表示列出进程的用户。
ps -elf
ps -elf 的 -e 代表列出所有进程.
-l 代表长格式,
-f 代表完整的格式,
有时候也用 -F 代表超完整的格式。
ps -ef | grep java
$ ps -elf
UID PID PPID F CPU PRI NI SZ RSS WCHAN S ADDR TTY TIME CMD STIME
$ ps aux
USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND
杀掉线程
kill -9 123456
关闭tomcat
./shutdown.sh
启动tomcat
./startup.sh
返回上个目录
cd ..
打开某个目录
cd 文件名
快捷键自动补全文件名
tab键
本地文件和远程文件通过 scp 传输
更多请移步 https://blog.youkuaiyun.com/ludongdong/article/details/78524653
将远程服务器文件传输到本地
scp 用户名@ip:/服务器文件全路径 /本地文件夹路径
将本地文件传输到远程服务器
scp /本地文件全路径 用户名@ip:/远程服务器文件夹路径
将 class 文件 添加到 jar
linux 向jar 添加 .class 文件
Jar 和 com开始对文件夹位于统一目录下,需要保证添加文件的目录结构和jar包内目录结构一致
比如:
jar -uf name.jar com/aaa/bbb/Demo.class