hincky的主页 hincky的主页
  • 学习笔记

    • Vue笔记
    • Vuepress
    • nginx
  • 语言类

    • java
    • go
    • python
    • 设计模式
  • 框架类

    • Spring
    • Spring Security
    • Mybatis
  • 容器技术

    • docker
    • k8s
    • helm
    • prometheus
    • grafana
    • jenkins
  • 命令集合

    • linux命令
    • docker命令
    • git命令
    • vim命令
    • k8s命令
  • 数据库

    • sql
    • mysql
  • 协议

    • 网络模型
    • http/1.1
    • WebSocket
    • http/2
    • TLS/SSL
    • tcp
    • IP
    • tcpdump抓包命令
    • wireshark抓包工具
  • 通用

    • Git
  • 技术分享

    • git push/pull总是超时怎么办
    • idea debug技巧
    • postman使用
    • 问题总结
    • idea使用技巧
  • Oauth2

    • Oauth2原理
  • 项目列表

    • redis项目
    • 微服务项目
  • 分类
  • 标签
  • 归档
  • 随笔
GitHub (opens new window)

Hincky

当有趣的人,做想做的事
  • 学习笔记

    • Vue笔记
    • Vuepress
    • nginx
  • 语言类

    • java
    • go
    • python
    • 设计模式
  • 框架类

    • Spring
    • Spring Security
    • Mybatis
  • 容器技术

    • docker
    • k8s
    • helm
    • prometheus
    • grafana
    • jenkins
  • 命令集合

    • linux命令
    • docker命令
    • git命令
    • vim命令
    • k8s命令
  • 数据库

    • sql
    • mysql
  • 协议

    • 网络模型
    • http/1.1
    • WebSocket
    • http/2
    • TLS/SSL
    • tcp
    • IP
    • tcpdump抓包命令
    • wireshark抓包工具
  • 通用

    • Git
  • 技术分享

    • git push/pull总是超时怎么办
    • idea debug技巧
    • postman使用
    • 问题总结
    • idea使用技巧
  • Oauth2

    • Oauth2原理
  • 项目列表

    • redis项目
    • 微服务项目
  • 分类
  • 标签
  • 归档
  • 随笔
GitHub (opens new window)
  • 容器技术

  • 命令集合

    • linux命令
      • shell特殊变量
      • linux换源、centos换源
      • 创建用户、密码
      • 文件和目录列表
        • 查看占用cpu/内存的进程,并找到进程运行位置
        • 查看文件以及查找文件
        • 查找文本或内容
      • 防火墙相关命令
        • 防火墙端口
      • 网络端口相关命令
        • 查看端口通不通
      • 随系统自启动服务
      • 文件拷贝
      • 日志
      • sed
        • sed进阶
      • gawk
        • gawk进阶
    • docker命令
      • docker容器内换源
      • 文件拷贝
    • git命令
      • 创建仓库命令
      • 分支命令
      • 提交与修改
      • 提交日志
      • 远程操作
      • git打tag
      • git 配置
      • git 回滚
    • vim命令
      • vim命令
    • k8s命令-kubectl
      • 通用
      • 创建/删除资源
      • node
      • pod
      • deployment
      • service
      • proxy
      • namespace
      • replication controller
      • replica set
    • crictl命令
      • pod
      • image 镜像
      • container 容器
      • log 日志
    • 防火墙命令
      • linux数据包过滤软件iptables
        • iptables的表格和链
  • 软路由

  • 容量保障技术

  • 运维
  • 命令集合
hincky
2022-11-02
目录

linux命令

  • shell特殊变量
  • linux换源、centos换源
  • 创建用户、密码
  • 文件和目录列表
    • 查看占用cpu/内存的进程,并找到进程运行位置
    • 查看文件以及查找文件
    • 查找文本或内容
  • 防火墙相关命令
    • 防火墙端口
  • 网络端口相关命令
    • 查看端口通不通
  • 随系统自启动服务
  • 文件拷贝
  • 日志
  • sed
    • sed进阶
  • gawk
    • gawk进阶
linux命令查询页 (opens new window)

# shell特殊变量

# 前一个命令的参数,比如创建目录并打开 mkdir -p a/b/c && cd $_
$_

1
2
3

# linux换源、centos换源

centos7

sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
sudo yum clean all
sudo yum makecache
sudo yum update -y # 验证是否换源成功
1
2
3
4
5

非阿里云服务器,其他厂商云服务器使用阿里云镜像

sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
sudo yum clean all
sudo yum makecache
sudo yum update -y # 验证是否换源成功
1
2
3
4
5
6

# 创建用户、密码

useradd es # 创建用户es
echo "password" | passwd --stdin es # 设定es用户的密码是password

passwd docker # 隐式修改docker密码

passwd -l es # 锁定es用户
passwd -u es 	# 解除对es的锁定
passwd -d docker # 清除docker用户的密码
passwd -S docker # 显示docker用户的密码状态

1
2
3
4
5
6
7
8
9
10

# 文件和目录列表

# -F区分文件和目录,以/结尾就是目录,以*结尾就是可执行文件;
ls -F

# -a列出所有文件,以.开头就是隐藏文件
ls -a 

# -l展示更多信息,-h显示容量,带上具体大小单位
ls -lh

# 过滤器,?代表单个,*代表零个或多个
ls -l my_sc?pt
ls -l my_sc*pt

# 通配符 [ai]代表a或者i;[a-i]代表a到i;[!a]代表不是a的都选上
ls -l my_scr[ai]pt
ls -l my_scr[a-i]pt

# 创建多级目录并打开
mkdir -p a/b/c && cd $_

# 或者在bashrc里面添加自定义函数
vim ~/.bashrc

mkcd () {
mkdir -p "$"
cd "$"
}

source ~/.bashrc

# 创建多个目录
mkdir -p a b c && ls -F

# 创建文件
touch new_file

# 改变文件的修改时间
touch -a new_file && ls -l

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39

# 查看占用cpu/内存的进程,并找到进程运行位置

top # shift+p,按照cpu占用排序,找到pid
ls -l /proc/[pid]/exe

top # shift+m,按照内存占用排序,找到pid
ls -l /proc/[pid]/exe
1
2
3
4
5

# 查看文件以及查找文件

# 查看文件类型
file my_file

# 查看文件,给所有行都加上行号
cat -n text1

# 只给有文本的行加上行号(非空行加上行号)
cat -b text1

# 根据名字查找文件,在/目录下查找名字是tong的文件
find / -name tong

# 查找根目录下大于1G的文件
find / -type f -size +1G
find / -type f -size +100M

# 在查询大于1G文件的同时,显示创建者、size(以b为单位)、修改日期、路径;
find / -type f -size +1G  -print0 | xargs -0 ls -l

# 查询大文件并排序,显示文件大小和路径,如需查看详情信息,将 du -h 改为 ls -l 即可
find / -type f -size +1G  -print0 | xargs -0 du -h | sort -nr

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

# 查找文本或内容

# 查找一个字符串在多个文件中的出现情况:
grep "search_string" file1 file2 file3

#其中,search_string是您要查找的字符串,file1、file2和file3是您要在其中查找字符串的文件名。

如果您要在一个目录中查找所有文件中的字符串,则可以使用grep命令的-r选项,如下所示:

bash
Copy code
grep -r "search_string" /path/to/directory
这将在/path/to/directory目录中递归搜索并打印所有包含search_string的行。

如果您希望在查找结果中显示匹配行所在的文件名和行号,则可以使用grep命令的-n和-H选项,如下所示:

bash
Copy code
grep -rnH "search_string" /path/to/directory
这将在/path/to/directory目录中递归搜索并打印所有包含search_string的行,同时显示每个匹配行所在的文件名和行号。

除了grep命令之外,还有其他一些工具可以帮助您查找文本内容,如ack和ag等。这些工具通常比grep命令更快和更灵活。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

# 防火墙相关命令

sudo systemctl status firewalld
sudo systemctl start firewalld
sudo systemctl stop firewalld
1
2
3

# 防火墙端口

sudo firewall-cmd --list-ports

sudo firewall-cmd --add-port=端口号/协议 --permanent

sudo firewall-cmd --add-port=80/tcp --permanent

sudo firewall-cmd --add-rich-rule='rule family="ipv4" source address="59.42.120.160" port protocol="tcp" port="15027" accept' --permanent

sudo firewall-cmd --remove-port=端口号/协议 --permanent

sudo firewall-cmd --remove-port=80/tcp --permanent

sudo firewall-cmd --reload
1
2
3
4
5
6
7
8
9
10
11
12
13

# 网络端口相关命令

# netstat命令用于显示网络连接、路由表和网络接口等信息。下面是一些常用的netstat命令及其用法:
# 用来自查的,查询本机的
netstat -a:显示所有连接和监听端口。
netstat -t:显示TCP连接。
netstat -u:显示UDP连接。
netstat -n:以数字形式显示地址和端口号。
netstat -p:显示进程名称和进程ID。
netstat -l:显示监听端口。
netstat -s:显示各种网络统计信息。

# 列出正在监听的网路服务
netstat -tunl

# 列出已连接的网络连接状态
netstat -tun

# 删除已建立或正在监听的连接
netstat -tunp
kill -9 pid

# 关闭某个端口的服务
# 1.找端口对应的服务
netstat -tnlp | grep 111 # 比如找到的是LISTEN 990/rpcbind
# 2.找服务对应的文件
which rpcbind # 比如找到的是/sbin/rpcbind
# 3.找文件对应的软件
rpm -qf /sbin/rpcbind # 比如找到的是rpcbind-0.2.0-8.e16.x86_64
# 4.查找时候有关闭方式
rpm -qc rpcbind | grep init # 比如找到的是/etc/rc.d/init.d/rpcbind
# 5.关闭
/etc/rc.d/init.d/rpcbind stop



# nmap命令用于扫描网络上的主机和端口,以便发现安全漏洞。下面是一些常用的nmap命令及其用法:
# 用来查非本机的设备
nmap IP地址:扫描指定IP地址上的所有端口。
nmap -p 端口号 IP地址:扫描指定IP地址上的指定端口。
# 扫描类型
nmap -sT IP地址:扫描TCP数据包已建立的连接。
nmap -sS IP地址:使用TCP数据包带有 SYN 卷标的数据。
nmap -sP IP地址:以Ping 的方式进行扫描。
nmap -sU IP地址:以UDP 的数据包格式进行扫描。
nmap -sO IP地址:以IP 的协议进行主机的扫描。
# 扫描参数
nmap -O IP地址:识别指定IP地址上的操作系统类型。
nmap -sV IP地址:识别指定IP地址上的服务和版本号。

# tcpdump命令用于捕获网络流量并分析协议。下面是一些常用的tcpdump命令及其用法:

tcpdump -i 网络接口:捕获指定网络接口上的所有流量。
tcpdump -n:以数字形式显示地址和端口号。
tcpdump -X:以十六进制和ASCII码显示数据包。
tcpdump -r 文件名:读取指定文件中的数据包。

# telnet命令用于测试网络连接和远程登录。下面是一些常用的telnet命令及其用法:

telnet IP地址 端口号:测试指定IP地址上的指定端口是否可用。
telnet IP地址:在指定IP地址上开启一个telnet会话。
telnet -l 用户名 IP地址:使用指定用户名登录指定IP地址。

# ping命令用于测试网络连接和检测网络延迟。下面是一些常用的ping命令及其用法:

ping IP地址:测试与指定IP地址的连接是否正常。
ping -c 次数 IP地址:指定测试次数。
ping -s 数据包大小 IP地址:指定数据包大小。
ping -i 时间间隔 IP地址:指定发送数据包的时间间隔。

# traceroute命令用于跟踪数据包在网络上的路径。下面是一些常用的traceroute命令及其用法:

traceroute IP地址:跟踪到指定IP地址的路径。
traceroute -n IP地址:以数字形式显示地址。
traceroute -w 延迟时间 IP地址:指定等待响应的最大时间。
traceroute -m 最大跳数 IP地址:指定最大跳数。

# iptables命令用于配置Linux系统的网络防火墙。下面是一些常用的iptables命令及其用法:

iptables -L:显示当前的防火墙规则。
iptables -A INPUT -p tcp --dport 端口号 -j ACCEPT:允许指定端口的TCP连接。
iptables -A INPUT -p udp --dport 端口号 -j ACCEPT:允许指定端口的UDP连接。
iptables -A INPUT -s IP地址 -j DROP:拒绝指定IP地址的连接。
iptables -A INPUT -i 网络接口 -j DROP:拒绝指定网络接口的连接。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82

# 查看端口通不通

# 随系统自启动服务

# 查看rpcbind是否有开机自启动
chkconfig --list | grep rpcbind
# 将其设置为不随系统自启动
chkconfig --level 35 rpcbind off
# 关闭现在已启动的服务
/etc/init.d/rpcbind stop


1
2
3
4
5
6
7
8

# 文件拷贝

# linux如何将文件稳定地拷贝到远程的机子上
scp [可选参数] [源文件或目录] [目标地址]
# -r:递归拷贝整个目录。
# -P:指定远程服务器的端口号。
# -p:保留原文件的修改时间、访问时间和权限

# 将本地的文件 localfile.txt 拷贝到远程机器 192.168.1.100 的 /home/user 目录下
scp localfile.txt username@192.168.1.100:/home/user/

# 要递归拷贝整个目录,可以加上 -r 参数
scp -r localdir/ username@192.168.1.100:/home/user/
1
2
3
4
5
6
7
8
9
10
11

# 日志

  • tail
  • head
  • cat
  • tac
  • echo
# 从第3000行开始,显示1000行。即显示3000~3999行
cat test.log | tail -n +3000 | head -n 1000

# >意思是创建,>>是追加

1
2
3
4
5

# sed

sed编辑器不会修改文本文件的数据,只会将修改后的数据发送到stdout;查看原理的文本文件,依然时原始数据

# s命令用于替换,将前者用后者替换
echo "this is a dog" | sed 's/dog/cat/' 

# 所有brown替换成green,但是实际上不生效,cat查看还是brown
sed 's/brown/green/' demo.txt

# -i 生效,cat查看变成green
sed -i 's/brown/green/' demo.txt

# 如果要执行多个sed命令,要用-e;下面就是将文件中所有brown和dog替换掉
sed -e 's/brown/green/; s/dog/cat/' demo.txt

# 如果要从文件中读取命令,要用-f;

sed -e 's/brown/green/; s/dog/cat/' demo.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

# sed进阶



1
2

# gawk



1
2

# gawk进阶



1
2
编辑 (opens new window)
#命令集合
自动化持续集成
docker命令

← 自动化持续集成 docker命令→

最近更新
01
人生前期重要的能力
05-17
02
防火墙命令
04-11
03
docker-compose部署mysql主从集群
03-22
更多文章>
Theme by Vdoing | Copyright © 2022-2023 Hincky | MIT License | 粤ICP备2022120427号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式