1、查看端口
netstat + 参数
参数如下:
-a (all) 显示所有选项,默认不显示LISTEN相关。
-t (tcp) 仅显示tcp相关选项。
-u (udp) 仅显示udp相关选项。
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服务状态。
-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。
LISTEN和LISTENING的状态只有用-a或者-l才能看到。
-tulnp 查看udp、tcp端口
2、文件内容处理
说明 | 命令 |
---|---|
在文件 ‘/tmp/test’ 中查找 “str“ | grep str /tmp/test |
在文件 ‘/tmp/test’ 中查找以 “str“开头的行 | grep ^str /tmp/test |
在文件 ‘/tmp/test’ 中查找 包含数字的行 | grep [0-9] /tmp/test |
在文件 /tmp/以及其子目录 中查找 “str“ | grep str -r /tmp/* |
找出两个文件不同之处 | diff file1 file2 |
以对比的方式比较两文件不同 | sdiff file1 file2 |
查找文件内容包含aa | strings /usr/sbin/ntpd |
将文件内容aa替换为bb | sed -i ‘s/aa/bb/g’ /usr/sbin/ntpd |
修改root用户密码:passwd root
3、防火墙相关
1、查看防火墙状态:
firewall-cmd --state
2、关闭防火墙
systemctl stop firewalld.service
3、永久关闭/禁止开机启动
systemctl disable firewalld.service
4、其他常用命令
1、临时添加环境变量
export LD_LIBRARY_PATH=路径: $LD_LIBRARY_PATH:
2、设置环境变量为空
echo $LD_LIBRARY_PATH
LD_LIBRARY_PATH=
3、查看系统信息
# uname -a # 查看内核/操作系统/CPU信息
# cat /etc/issue
# cat /etc/redhat-release # 查看操作系统版本
# cat /proc/cpuinfo # 查看CPU信息
# hostname # 查看计算机名
# lspci -tv # 列出所有PCI设备
# lsusb -tv # 列出所有USB设备
# lsmod # 列出加载的内核模块
# env # 查看环境变量
4、scp上传文件
# 上传文件
scp file_path root@192.168.1.104:/usr/local/nginx/html/webs
# 上传文件夹
scp -r file_path root@192.168.1.104:/usr/local/
5、实时查看日志信息
tail -f filename
其他参数:
-f 循环读取
-q 不显示处理信息
-v 显示详细的处理信息
-c<数目> 显示的字节数
-n<行数> 显示的行数
--pid=PID 与-f合用,表示在进程ID,PID死掉之后结束.
-q, --quiet, --silent 从不输出给出文件名的首部
-s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒
6、查看进程
根据进程id查询进程信息
top -H -p 进程id
7、查看文件夹所占大小
du -sh 文件夹
8、查看磁盘使用情况
df -h
9、创建链接
/usr/bin:下面的都是系统预装的可执行程序,会随着系统升级而改变
/usr/local/bin:目录是给用户放置自己的可执行程序的地方,推荐放在这里,不会被系统升级而覆盖同名文件
以cmake为例
# 创建软连接
ln -s /usr/local/bin/cmake /usr/bin/cmake
# 替换
ln -snf /usr/local/bin/cmake /usr/bin/cmake
10、清空文件
> a.txt
11、查看cpu型号
cat /proc/cpuinfo
12、查看网卡型号
lspci | grep Ethernet
5、awk命令/管道|/xargs
1、管道 |
将多个Linux命令连接起来,从左至右,前一个命令结果作为后一个命令结果的输入
ps -ef | grep python3 | awk '{print $2}'
2、xargs
xargs将其标准输入中的内容以空白(包括空格、Tab、回车换行等)分割成多个之后当作命令行参数传递给其后面的命令
echo "test" | xargs echo
-d “e”
以字符串e对输入流进行分割
echo "test" | xargs -d "e" echo
3、awk
可以用来过滤文件输出流
ps -ef | grep python3 | awk ‘{print $2}’
6、ps命令(进程查看工具)
参数:
参数 | 含义 |
---|---|
-A | 显示所有终端下的执行程序 |
-e | 和“-A”一样 |
e | 列出所有程序并显示每个程序所使用的环境变量。 |
-f | 显示程序的UID,PID,PPID,C与STIME等信息。 |
f | 与“-f”类似,只显示当前终端所有程序,展示的数据少一点 |
a | 显示现行终端下的所有程序,包括其他用户的程序 |
-a | 显示所有终端机下执行的程序,除了阶段作业领导者之外。 |
u | 以用户为主的格式来显示程序状况 |
x | 显示所有程序,不以终端机来区分 |
常用: | |
1、查看所有进程 |
ps aux
2、根据进程名查询进程
ps -ef | grep 进程名
7、grep命令
grep会对匹配一个或多个正则表达式的文本进行搜索,并只输出匹配(或者不匹配)的行或文本
grep + 参数 +正则表达式/字符串 + 文件
参数 | 含义 |
---|---|
-n | 显示匹配行数 |
-i | 忽略大小写 |
-v | 返回不包含某字符串的文本 |
-l | 多文件查找时只返回包含字符串的文件名 |
-E | 匹配后面的正则规则 |
-o | 只保留匹配到的数据 |
查找以log结尾的文件中包含work的文件
grep -l-i work *.log
查找文件中的关键字
grep "password" /var/log/mysqld.log
正则匹配
echo 'Nmap version 7.70 ( https://nmap.org )' | grep -Eo 'Nmap.*([0-9]{1,3}\.{1}[0-9]{1,3})'
8、shell脚本部分语法
# 1、获取当前路径
#!/bin/bash
project_path=$(cd `dirname $0`; pwd)
echo $project_path
# 2、拼接路径
echo $project_path/test/