linux常用命令,如获取 pid 为 100 的进程所监听的 tcp 端口?将/usr/local/test目录下大于100K 的文件转移到/tmp 目录下?查找占用端口的进程

linux

对find,xargs,grep和管道的一些深入理解: link.

查看 java 进程 ps -ef | grep java或者ps -aux|grep java

a:显示当前终端下的所有进程信息,包括其他用户的进程。 u:使用以用户为主的格式输出进程信息。x:显示当前用户在所有终端下的进程
linux常用命令,如获取 pid 为 100 的进程所监听的 tcp 端口?将/usr/local/test目录下大于100K 的文件转移到/tmp 目录下?查找占用端口的进程
#屏蔽掉 grep 本身方便 kill java 进程 ps -ef | grep -v grep | grep java

"grep -v grep"的作用 & 使用场景: link.

查看linux中的TCP连接数 netstat -ant | wc -l

netstat的输出结果可以分为两个部分
1、Active Internet connections 有源TCP连接,
2、Active UNIX domain sockets 有源Unix域套接口

1)、查看哪些IP连接本机 netstat -an
linux常用命令,如获取 pid 为 100 的进程所监听的 tcp 端口?将/usr/local/test目录下大于100K 的文件转移到/tmp 目录下?查找占用端口的进程

2)统计80端口连接数 netstat -nat|grep -i “80”|wc -l (http协议默认端口80, https协议默认端口443)
linux常用命令,如获取 pid 为 100 的进程所监听的 tcp 端口?将/usr/local/test目录下大于100K 的文件转移到/tmp 目录下?查找占用端口的进程
3)统计http协议连接数 ps -ef|grep ‘http’|wc -l

4)统计已连接上的,状态为“established netstat -na|grep ESTABLISHED|wc -l

linux常用命令,如获取 pid 为 100 的进程所监听的 tcp 端口?将/usr/local/test目录下大于100K 的文件转移到/tmp 目录下?查找占用端口的进程

Awk是什么方面的

AWK是一种处理文本文件的语言,是一个强大的文本分析工具,

例:9#7#0#0#0#0#127.0.0.1#KBIH8I09CJK09BN89HILIBHKKXZV8OU##-1#null#4.9#null#null#0befb78b1527676906653

这里我想取出文件名为test.log中的ip 127.0.0.1的话 可以使用awk -F ‘#’ ‘{print $7}’ test.log
这里的 -F ‘#’表示将这个字符串按照#分隔 如果不使用-F 则使用默认空格符分隔 分隔后打印第7条
待补充,需要进一步学习练习

如何查看日志abc文件最新写入的一行内容?如何过滤出其中带有hotel字样的日志。

实时显示文件istester.log最新500条内容
tail -500f isTester.log
tail -n 1 abc.log |grep “hotel”

显示文件isTester.ini 的第10至20行的内容
head -n 20 isTester.ini | tail -n 10
倒序显示文件isTester.ini 前10行的内容
head -n 10 isTester.ini|tac
显示文件isTester.ini 前10行的内容,并显示行号
nl isTester.ini | head -n 10

从第3000行开始,显示1000行。即显示3000~3999行
cat filename | tail -n +3000 | head -n 1000
tail -n 1000:显示最后1000行
tail -n +1000:从1000行开始显示,显示1000行以后的
head -n 1000:显示前面1000行

命令参考:
#cat 由第一行开始显示档案内容
#tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写
#more 一页一页的显示档案内容
#less 与 more 类似,但是比 more 更好的是,他可以往前翻页
#head 只看头几行
#tail 只看尾巴几行
#nl 显示的时候,顺道输出 行号

linux命令,问:怎么查找一个日志文件中的某个词

grep ‘error’ isTester/* #在isTester下面的所有子目录或者文件中查找error
grep ERROR test.log #在test.log里面查找ERROR

linux常用命令,如获取 pid 为 100 的进程所监听的 tcp 端口?将/usr/local/test目录下大于100K 的文件转移到/tmp 目录下?查找占用端口的进程

Linux 下的查找Grep find多个文件,

(1)find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间等。

(2)grep是根据文件的内容进行查找,会对文件的每一行按照给定的模式(patter)进行匹配查找。

find /home/hadoop -user hadoop # 在目录/home/hadoop中找出所有者为hadoop的文件

(1)find / -name httpd.conf  #在根目录下查找文件httpd.conf,表示在整个硬盘查找
(2)find /etc -name httpd.conf  #在/etc目录下文件httpd.conf
(3)find /etc -name ‘srm’  #使用通配符*(0或者任意多个)。表示在/etc目录下查找文件名中含有字符串‘srm’的文件
(1)find /tmp -size +10000c -and -mtime +2   #在/tmp目录下查找大于10000字节并在最后2分钟内修改的文件 
(2)find / -user fred -or -user george   #在/目录下查找用户是fred或者george的文件文件
(1)grep ‘test’ d*  #显示所有以d开头的文件中包含 test的行 
(2)grep ‘test’ aa bb cc    #显示在aa,bb,cc文件中包含test的行
(3)grep ‘[a-z]{5}’ aa   #显示所有包含每行字符串至少有5个连续小写字符的字符串的行 
(4)grep magic /usr/src  #显示/usr/src目录下的文件(不含子目录)包含magic的行 
(5)grep -r magic /usr/src  #显示/usr/src目录下的文件(包含子目录)包含magic的行

top 命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器

linux常用命令,如获取 pid 为 100 的进程所监听的 tcp 端口?将/usr/local/test目录下大于100K 的文件转移到/tmp 目录下?查找占用端口的进程
(1)显示了系统的进程总数,后面是相应的状态下的进程 这里是:一共134个进程,1个是running状态,133个sleeping状态,0个stopped,0个zombie

(2)就是cpu的各种信息了 参数说明如下: us:用户空间占cpu百分比 sy:内核空间占cpu百分比 ni:用户进程空间内改变过优先级的进程占用cpu百分比 id:空闲cpu百分比 wa:等待输入输出的cpu时间百分比 hi:硬中断(处理硬件中断的cpu时间) si:软中断(处理软件中断的cpu时间)

(3)、(4):内存使用 第一行:物理内存的使用,第二行:虚拟内存(交换空间)的使用。 每一行的后面四个参数是:总的内存,已经使用的内存,空闲内存,缓冲内存

(5):表头,具体解释如下:
PID: 进程ID进程的唯一标识符
USER:用户
PR:进程调度优先级,一个拥有更高进程优先级的进程拥有更大的机率得到处理器的处理。,”tr”值代表这些进程运行在实时态
NI:进程的nice值(优先值)。越小意味着越高的优先级。
VIRT:系统使用的虚拟内存
RES:驻留内存大小,驻留内存是任务使用的非交换物理内存大小
SHR:是进程使用的共享内存
S:进程状态:

Linux环境下查看占用端口的进程

linux常用命令,如获取 pid 为 100 的进程所监听的 tcp 端口?将/usr/local/test目录下大于100K 的文件转移到/tmp 目录下?查找占用端口的进程
查找哪个进程占用了8080端口 netstat -ntpl | grep 8080,
找出对应pid的进程详细信息 ps -ef | grep 8091 ps 命令显示运行的进程
杀掉该进程 kill -9 8091 kill 命令用于终止进程,参数
linux常用命令,如获取 pid 为 100 的进程所监听的 tcp 端口?将/usr/local/test目录下大于100K 的文件转移到/tmp 目录下?查找占用端口的进程

windows下查看占用端口的进
(1)查找哪个进程占用了8080端口 netstat -ano|findstr 8080
(2)找出对应pid的进程详细信息tasklist |findstr 3168
(3)杀掉该进程 taskkill /pid 3168 /F 或:taskkill /F /PID 3168

linux 默认的文件和文件夹权限是啥,一个文件的访问权限是 755 含义是什么

linux 创建文件夹权限 默认 755 文件是 644

文件权限为 755,rwx 421

第一位 7,代表文件所有者拥有的权限为可读(4)+可写(2)+可执行(1)
第二位 5,代表文件所有者同组用户的权限为可读(4)+不可写(0)+可执行(1)
第三位 5,代表其他用户的权限为可读(4)+不可写(0)+可执行(1)

将/usr/local/test目录下大于100K 的文件转移到/tmp 目录下。

答: find /usr/local/test -type f -size +100k -exec mv {} /tmp ;
find /usr/local/test -type f -size +100k || xargs mv {} /tmp

获取 pid 为 100 的进程所监听的 tcp 端口 netstat -nlpt|grep 100

#netstat -a 显示所有,-n 显示 ip 展示,-t 是显示 tcp,-u 显示 udp,-p 显示 pid
linux常用命令,如获取 pid 为 100 的进程所监听的 tcp 端口?将/usr/local/test目录下大于100K 的文件转移到/tmp 目录下?查找占用端口的进程

linux 中如何从 root 用户切换到普通用户?如何动态查看日志

su 普通用户名 或者 su - 普通用户名 (前者只切换用户身份,shell 环境未变 )

tail -f 日志文件 或者 less +F 日志文件

linux 查看剩余磁盘空间df(disk free),内存,io 状态命令

df -m
du(disk usage 硬盘使用率)

查看目录isTester/ 所占用的空间
//-h:以易读的容量格式显示。-s:只显示总量而不显示个别目录占用容量。
du -sh /usr/isTester/

free -m #查看内存

iostat 2#2 秒输出一次 #io 状态命令

sh脚本中 ./和sh 执行的区别

./需要执行权限,使用脚本文件中第一行#!指定的shell(解释器)来执行命令(譬如常见的/bin/bash),不指定系统会调用默认shell程序

sh不需要执行权限,是使用sh这个shell执行命令,是个软链接,它可能是一个任意的shell,通常默认是bash shel,用type命令可以查看

学习less、head、tail命令

总结:
1.more和less的比较(我个人觉得less比more好用)
a)相同点:
都按页的方式显示内容;
space、enter、q、/的用法相同;
都能向下按页翻、按行翻;
b)不同点:
more是在屏幕上显示内容,退出后内容还可以查看到,向上直接滑动屏幕滚动条即可;
less不是将内容显示在屏幕上,只能查看到一页的内容,可以通过按钮和命令上下翻页,退出后不占用屏幕空间;
more:向下翻页翻到底部会自动退出该模式
less:只能通过q命令退出该模式
向下搜索字符串:more是将该页内容显示出来,less还会将搜索的字符串高亮显示
2.意外发现:操作命令过程中发现了一个提示“You have new mail in /var/sppol/mail/root”,root是一个邮件,可以用less查看其内容。网上百度了下,这邮件内容是一些正常的系统信息或者重要的错误报告,可以不定时看看。
学习环境:
1.在自己电脑上安装的VMare 10
2.在WMare上装的CentOS 6.5

以下部分来自idoxu的Linux21天打卡,

mkdir

1)在/usr/目录下,新建一个文件夹 isTester
mkdir -p /usr/isTester

首先 -p 参数是为了防止因为没有一级目录而创建失败。此处加上应该是为了容错。

2)在/etc/目录下,新建一个文件夹 idoxu
mkdir -p /etc/idoxu

3)在/usr/isTester/目录下,新建三个文件夹 isTester1 isTester2 isTester3
cd /usr/isTester/ && mkdir isTester1 isTester2 isTester3

4)在/usr/目录下,新建一个多层级文件夹 idoxu/istester/2020
mkdir -p /usr/idoxu/istester/2020/

cd

命令 cd
1)进入目录 /usr/idoxu/istester/2020/ (如果没有这个目录,说明前一天的作业没做)
cd /usr/idoxu/istester/2020/

2)进入上级目录
cd …

3)进入上两级目录
cd …/…

4)进入当前用户主目录
cd ~

5)进入当前目录
cd .

创建文件

1)在/etc/idoxu目录,创建文件isTester.ini
touch /etc/idoxu/isTester.ini  

2)在/usr/isTester/目录,创建文件isTester6.ini
echo ‘idoxu test,2020 linux 21 day’  > /usr/isTester/isTester6.ini

3)/usr/idoxu/目录,创建文件isTester8.ini
cp /etc/idoxu/isTester.ini  /usr/idoxu/isTester8.ini

1)在/etc/idoxu目录,同时创建文件 isTester666.ini idoxu666.ini
cd /etc/idoxu && touch isTester6666.ini idoxu666.ini

2)在/usr/isTester/目录,同时创建300个文件  isTester101.ini  - isTester400.ini
touch istester{101..400}.ini

3)更改文件 isTester.ini时间为当前时间
touch isTester.ini

tar

1)压缩/etc/idoxu目录下的文件 isTester.ini 为 istester.tar.gz
tar -zcvf isTester.tar.gz isTester.ini 

2)压缩多个文件 isTester.ini idoxu.ini
tar -zcvf idxou.tar.gz isTester.ini idoxu.ini

3)压缩文件夹  isTester/
tar -zcvf isTester.tar.gz isTester/

4)将当前目录,所有jpg文件打包成isTesterjpg.tar
tar -cvf isTesterjpg.tar *.jpg

5)将当前目录,所有jpg文件打包并压缩成isTesterjpg.tar.gz
tar -zcvf isTesterjpg.tar.gz *.jpg

6)解压 isTesterjpg.tar
tar -xvf isTesterjpg.tar

7)解压 isTesterjpg.tar.gz
tar -zxvf isTesterjpg.tar.gz

mv

1. 进入/usr/idoxu/istester目录,移动当前文件夹2020,到/usr/isTester目录(如果目录找不到,说明前面有作业没做 )
cd /usr/idoxu/istester && mv ./2020/ /usr/isTester

2. 移动/etc/idoxu目录下的文件isTester.ini  ,到/usr/isTester 目录(如果没有文件isTester.ini,说明前面有作业没做 )
mv /etc/idoxu/isTester.ini /usr/isTester

3. 当前目录istester.tar.gz 移动到/usr/isTester  目录,并重命名为istester2020.tar.gz
mv ./isTester.tar.gz /usr/isTester/istester2020.tar.gz

4. 移动当前目录的isTester.tar.gz文件到上级目录
mv ./isTester.tar.gz ../

5. 一条命令,移动两个文件 isTester.tar idoxu.tar 到目录 /usr/isTester 
mv isTester.tar idoxu.tar  -t /usr/isTester

history

命令 history 
1)查看历史命令执行记录 
history 

2)查看命令mkdir 的历史执行记录 
history | grep mkdir 

3)执行历史记录中,序号为178的命令 
!178

cp

命令  cp
1)复制当前目录部署包isTester.tar.gz 到备份目录/APP/istester/idoxu/bak 目录
cp ./isTester.tar.gz  /APP/istester/idoxu/bak

2)复制文件夹 isTester 到部署目录 /APP/istester/idoxu/
cp -r isTester/ /APP/istester/idoxu/

tail

命令 tail
1)实时显示文件istester.log最新内容
tail -f isTester.log

2)实时显示文件istester.log最新500条内容
tail -500f isTester.log

ls

命令 ls
1)列出当前目录中所有的子目录和文件。
ls

2)列出目录下的所有文件(包含隐**件)
ls -a

3)列出文件的详细信息(包括权限、所有者、文件大小等)
ls -l

4)列出当前目录中所有以“isTester”开头的详细内容
ls -l | grep istester

ps

#21天Linux打卡第6期# 0610
1.查看所有进程
ps -a
2.显示所有进程信息,连同命令行
ps -ef
3.查看mysql进程
ps -ef |grep mysql

top

1.显示进程信息
top
2.监控每个逻辑cpu的状况
top
然后再按c
3.高亮显示当前运行进程
top
然后再按b
4.现实完整命令
top
然后再按c
5.退出top程序
q

chmod

1)给文件 isTester.ini 赋予 只读权限
chmod a=r istester.ini
或 chmod 444 istester.ini

2)给文件 isTester.ini 赋予 读写权限
chmod a=rw istester.ini
或 chmod 666 istester.ini

3)给文件 isTester.ini 赋予 执行权限
chmod a=x istester.ini
或 chmod 111 istester.ini

4)给idoxu目录下所有文件和子目录添加执行权限(假定目录结果 ./idoxu/isTester/2020.ini)
chmod +x -R ido/

wget

注:玩wget,需确保服务器能联网,ping istester.com 试试,如果ping不通,先去把网络搞定 ;

Linux系统中的wget是一个下载文件的工具,对于Linux用户是必不可少的工具
经常需要下载各种安装包、各种资源;

假设包地址 http://istester.com/file.php?f=202006/f_c88bd2fd5f...

1)下载isTester包
wget  http://istester.com/file.php?f=202006/f_c88bd2fd5f...

2)下载isTester包,存储名为istester666.tgz
wget -O istester666.tgz http://istester.com/file.php?f=202006/f_c88bd2fd5f...

3)下载isTester包,后台形式下载
wget -b http://istester.com/file.php?f=202006/f_c88bd2fd5f...

find

1)在/root/isTester 目录及其子目录下面查找名字为isTester.ini的文件 
find /root/isTester/ -name isTester.ini

2)在当前目录及其子目录中查找扩展名为“ini”的文件
find . -name "*.ini"

3)在/root/isTester目录下查找更改时间在5日以内的文件 
find /root/isTester/ -mtime -5

4)在/root/isTester目录下查找更改时间在3日以前的文件
find /root/isTester/ -mtime +3

5)在/root/isTester目录下查找所有的目录
find . -type d

6)在/root/isTester目录下查找所有的文件
find /root/isTester/ -type f
1)在当前目录,所有的普通文件中搜索istester这个词
find ./ -type f |xargs grep "istester"

2)在当前目录,移动1天以内的所有内容到 ~/idoxu 目录
find ./* -mtime -1 -print | xargs -p -i mv {} ~/idoxu (# -p 会让你确认)
或
find ./* -mtime -1 -print | xargs -i mv {} ~/idoxu

3)在当前目录,移动10天以前的所有内容到 ~/idoxu 目录
find ./ -mtime +10 -print | xargs -i mv {} ~/idoxu

4)在/usr/isTester目录,移动文件大小为零的文件到~/idoxu目录下的 0size/ 文件夹
find /usr/isTester -type f -size 0 | xargs -i mv {} ~/idoxu/0size

5)在/usr/isTester目录,移动大于200M的文件到 ~/idoxu目录下的 200size/ 文件夹
find /usr/isTester -type f -size +200M | xargs -i mv {} ~/idoxu/200size

rm


1)删除/root/isTester/目录下的文件isTester.ini (系统会询问是否删除)
rm /root/isTester/isTester.ini

2)强行删除/root/isTester/目录下的文件isTester.ini(直接删除,系统不会提示)
rm -f /root/isTester/isTester.ini

3)删除/root/isTester/目录下的所有.log文件
rm -f /root/isTester/*.log

4)删除/root/isTester/目录下的 idoxu文件夹
rm -r /root/isTester/idoxu/

5)强行删除/root/isTester/目录下的 idoxu文件夹
rm -rf /root/isTester/idoxu/

6)删除/root/isTester/目录下的所有内容
rm -rf /root/isTester/*

cat

1. 查看文件 isTester.ini的内容
cat isTester.ini
 
2. 看文件 isTester.ini前20行内容
head -n 20 isTester.ini
 
3. 看文件 isTester.ini最后30行内容
tail -n 30 isTester.ini
 
4. 显示文件isTester.ini 的第10至20行的内容
head -n 20 isTester.ini | tail -n 10
 
5. 倒序显示文件isTester.ini 前10行的内容
tac isTester.ini | head -n 10
 
6. 显示文件isTester.ini 前10行的内容,并显示行号
nl isTester.ini | head -n 10

yum & scp


1)Linux下安装scp命令(假设是centos服务器,命令用yum)
yum install openssh-clients 

2)从Linux服务器192.168.1.22 拷贝文件 isTester.ini 到你当前操作的服务器
scp root@192.168.1.22:/root/idoxu/isTester.ini /root/idoxu 

3)从Linux服务器192.168.1.22 拷贝目录 isTester/ 到你当前操作的服务器
scp -r root@192.168.1.22:/root/idoxu/isTester/ /root/idoxu

延伸思考:如果是把「当前操作的服务器」的文件拷贝到远程服务器呢 ?
scp /root/idoxu/isTester.ini  root@192.168.1.22:/root/idoxu/

df等

1)查看当前服务器内网IP 
ifconfig

2)查看当前服务器外网IP 
curl cip.cc 

3)查看当前服务器硬盘空间
df -h

4)查看目录isTester/ 所占用的空间
du -sh isTester

5)清空当前终端屏幕
clear

6)查看你的Linux服务器的版本号
注:题目是查看Linux版本,不是内核版本

如下两个命令,使用所有Linux发行版;当然,还有一些其他的查找方式,自己试试
lsb_release -a
或
cat /etc/issue

chmod

1)创建文件 isTester666.ini
vi isTester666.ini

2)更新文件内容为“21 day Linux Learn ,I'm Idolaoxu,in shenzhen .
”
输入 i ,进入编辑模式,输入内容,esc进入命令模式 :wq 保存 。

3)将文件 isTester666.ini 设为所有人皆可读取
chmod a+r isTester666.ini

4)将isTester.ini 设定为只有该文件拥有者可以执行
chmod a-x,u+x isTester666.ini

5)给文件 isTester666.ini 设置所有权限
chmod 777 isTester666.ini 
或
chmod a=rwx isTester666.ini

6)将文件 isTester666.ini 设为所有人,只读权限
chmod 444 isTester666.ini
或
chmod a=r isTester666.ini


d

上一篇:20200606~linux 简单命令


下一篇:Linux 线上练习