目录
查看占用端口
- netstat -ano|findstr “8080”
- netstat –tunlp|grep 端口号
- tasklist|findstr 号
- lsof -i:端口号
关闭进程
kill -9 PID号
查看进程
ps -ef|grep tomcat
查看log
tail -n 10 uwsgi.log
linux中最为常用的三大文本(awk,sed,grep)处理工具[find(文件)]
- find作用是在目录中搜索文件,它的使用权限是所有用户。
- grep
grep 匹配条件 处理文件
#查找以leo结尾的行
grep leo$ logs.log
#查找并输出到指定文件
grep leo logs.log > result.log
#在/data/web目录下,递归所有扩展名为.jsp的文件,排除 .git,vendor,log 这三个目录,查找所有包含字符串’link_params’的文件及文件内容(不区分大小写),并展示相应行的上下5行内容,以及行号
grep -rni -C5 ‘link_params’ --include ‘*.jsp’ --exclude-dir={.git,vendor,log} /data/web
- cat
cat -b 文件 | grep 关键字
##默认显示mail所在行 - sed 匹配条件及模式 处理文件
sed -n '/#/p' fstab
##显示#所在行
sed -n '/#/!p' fstab
##显示不带#的行
sed '/^UUID/d' fstab
##删除UUID所在行
sed '/^UUID/!d' fstab
##出UUID行,其他都删除
find和grep的区别
- find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间等。
- grep是根据文件的内容进行查找,会对文件的每一行按照给定的模式(patter)进行匹配查找。
创建目录
mkdir -p 1/2/3
-p 选项递归创建所有目录
创建文件(目录已存在)
touch test1/test2/myNewTest.py
同时创建两个文件
touch test1.txt test2.txt
批量创建文件(如创建2000个文件)
touch test{0001..2000}.txt
cd new111
>1.text
copy null>a.txt
vim 文件名。。。esc :wq 保存
vi
echo ‘11111’>a.txt
删除文件/目录 rm(可多级删除)
-r 就是向下递归,不管有多少级目录,一并删除
-f 就是直接强行删除,不作任何提示的意思
rm -rf test1/test2/myNewTest.py
查看日志文件内容命令tail和head、sed、cat、tac、less
-
head -n 1000:显示前面1000行
-
tail -n 1000:显示最后1000行
-
cat
tail -n 1000:显示最后1000行
tail -n +1000:从1000行开始显示,显示1000行以后的
head -n 1000:显示前面1000行下面的逻辑是通过多个管道实现,多次对上面的处理结果继续进行处理
从第3000行开始,显示1000行。即显示3000~3999行
cat filename | tail -n +3000 | head -n 1000
显示1000行到3000行
cat filename| head -n 3000 | tail -n +1000
把 textfile1 的档案内容加上行号后输入 textfile2 这个档案里
cat -n textfile1 > textfile2
把 textfile1 和 textfile2 的档案内容加上行号(空白行不加)之后将内容附加到 textfile3 里。
cat -b textfile1 textfile2 >> textfile3
cat查看并搜索:
- cat filename | grep -C 5 ‘关键字’ (显示日志里匹配字串那行以及前后5行)
- cat filename | grep -B 5 ‘关键字’ (显示匹配字串及前5行)
- cat filename | grep -A 5 ‘关键字’ (显示匹配字串及后5行)
- cat impression.log | tail -n 10| grep 1679554844363(从后10行中筛选包含x的部分)
vim搜索
- 进入vim编辑模式:vim filename
- 输入“/关键字”,按enter键查找
-
tac 是将 cat 反写过来,所以他的功能就跟 cat 相反, cat 是由第一行到最后一行连续显示在萤幕上,
而 tac 则是由最后一行到第一行反向在萤幕上显示出来! -
sed -n ‘5,10p’ mylog这样你就可以只查看文件的第5行到第10行。
-
less logname.log
less查看时搜索
shift + G 命令到文件尾部 然后输入 ?加上你要搜索的关键字例如 ?1213
按 n 向上查找关键字
shift+n 反向查找关键字
less与more类似,使用less可以随意浏览文件,而more仅能向前移动,不能向后移动,而且 less 在查看之前不会加载整个文件。j 下一行
k 上一行
f 向下滚动一屏幕
b 向上滚动一屏幕
g 定位到文档头部
G 定位到文档最尾部
清空日志文件
> filename
文件权限设定
eg: 将start.sh文件改为可执行权限
chmod u + x filename.sh
chmod的语法格式如下:chmod [who] [opt] [mode] 文件/目录名
其中who表示对象,是以下字母中的一个或组合:
u:表示文件所有者
g:表示同组用户
o:表示其它用户
a:表示所有用户
opt则是代表操作,可以为:
+:添加某个权限
-:取消某个权限
=:赋予给定的权限,并取消原有的权限
而mode则代表权限:
r:可读 4
w:可写 2
x:可执行 1
查找所有名称中包含test的进程并全部杀死;
ps -ef|grep test|grep -v grep|awk '{print $2}'|xargs -r kill -9
其中:
- | 管道符,用来隔开两个命令,管道符左边命令的输出会作为管道符右边命令的输入
- ps 命令用来列出系统中当前运行的进程,ps -ef 显示所有进程信息,连同命令行
- grep 命令用来过滤/搜索特定字符,grep test在这里为搜索过滤所有含有test名称的进程
- grep -v grep 显示不包含匹配文本的所有行,在这里为筛选出所有不包含grep名称的进程,对上一步的进程再做一次筛选(ps -ef列出了所有的进程,包括命令行)
- awk 在文件或字符串中基于指定规则浏览和抽取信息,把文件逐行读入,以空格为默认分隔符将每行切片,然后进行后续处理。这里利用awk ‘{print $2}’ 将上一步中过滤得到的进程进行打印,$2表示打印第二个域(PID, 进程号) $0 表示所有域, 1 表示第一个域, 1表示第一个域, 1表示第一个域,n表示第n个域
- xargs 命令是给命令传递参数的过滤器,善于把标准数据转换成命令行参数。在这里则是获取前一个命令的输出,把它转换成命令行参数传递给后面的kill命令。-r选项表示如果输入为空,则不执行后面的命令
- kill -9 强制关闭进程
替换文件中的内容
sed -i 's/被替换的内容/要替换成的内容/' file
要替换某文件的内容切先复制再替换,以免替换出错
sed 's/被替换的内容/要替换成的内容/g' file > file.out
mv file.out file
在Linux操作系统中,我们可以借助'grep -rl'命令来实现对一些文件的过滤
,比如说过滤含有某些特殊字符串的文件
批量查找并替换当前文件夹下的文件内容
sed -i “s/要找查找的文本/替换后的文本/g” `grep -rl “要找查找的文本” ./`
批量查找并替换任意文件夹下的文件内容
sed -i “s/要找查找的文本/替换后的文本/g” `grep -rl “要找查找的文本” /任意文件夹`
注意这里的 " & " 符号,如果没有 “&”,就会直接将匹配到的字符串替换掉
sed ‘s/^/添加的头部&/g’ #在所有行首添加
sed ‘s/KaTeX parse error: Expected 'EOF', got '&' at position 2: /&̲添加的尾部/g' #…s/原字符串/替换字符串/g’ #替换最后一行
sed ‘2,5s/原字符串/替换字符串/g’ #替换2到5行
sed ‘2,$s/原字符串/替换字符串/g’ #替换2到最后一行
软连接
ln -s 源文件[目录] 目标文件[目录]