一 关机 1.1 关机重启相关操作命令 1 2 3 4 5 6 7 shutdown -h now shutdown -h 5 poweroff # 重启 shutdown -r now shutdown -r 5 reboot
二 目录操作命令 2.1 增删改查 1 2 3 4 5 6 7 8 9 10 11 cd # 进入 ls # 查看 mkdir # 增 创建 rm -rf # 删除 mv [选项] [源文件路径][目标文件路径]#源目录 #新目录 #还有重命名 移动功能 cp [选项] [源文件路径][目标文件路径] #源文件 #目标目录文件 scp [选项] [源文件路径][目标文件路径] scp user@remote:/path/on/remote /path/to/local/directory # 远程到本地 加-r是递归 scp /path/to/local/file user@remote:/path/on/remote # 从本地复制文件到远程主机: find [目录] [参数] [文件名称] find /usr/tmp -name 'a*' 查找/usr/tmp目录下的所有以a开头的目录或文件
三 文件操作命令 3.1 增删改查 1 2 3 toch 文件名 # 创建,不过一般用vim创建 rm -rf [文件名] # 删 vim 改
3.1.2 vim
3.1.3 文件查看
3.2 权限的解读跟修改及用户管理 查看详情:ll或者 ls -l
1 2 3 4 5 6 7 8 9 10 11 ll # 或者ls -l -rw-r--r-- 1 user group 4096 Jan 1 10:00 file.txt drwxr-xr-x 2 user group 4096 Jan 1 10:00 directory d # 代表是目录 rwx #第一组(rwx) 表示所有者的权限,r读 w写 x执行 xr # 第二组(xr)同组用户的权限 x # 第三组(x) 表示其他用户,非同组用户的权限 user # 所属用户 group # 用户所属组 chmod +x # 添加执行权限 chmod 777 # 添加所有权限
添加管理用户
1 2 3 4 5 6 useradd user1 # 添加用户1 id user1 # 查看用户所属信息 uid=1001(user1) gid=1001(user1) 组=1001(user1),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),122(lpadmin),135(lxd),1000(wang),136(sambashare) useradd -g root user2 # 为新添加的用户添加组 useradd -d /etc/nologin -g apache -s /bin/false user1 passwd user3 # 更改或者设置用户密码
四、压缩文件操作 4.1 打包和压缩 linux 中一般都是打包tar 文件 压缩就是gz文件
而一般情况下打包盒压缩是一起进行的,打包并且压缩后的文件的后缀名一般是.tar.gz
1 2 3 4 5 6 7 8 9 tar -zcvf [打包后的文件名.tar] [要打包的文件] # 打包 -z # z就是gz 调用gzip 压缩命令进行压缩 -c # 打包文件 就是tar的作用 -v # 显示打包运行的过程(跑代码) -f # 指定文件名 tar -zcvf test.tar test.py# 解压 tar -zxvf [压缩文件名] -x # x 就是解压缩质量
五、查找命令及三剑客【重点】 5.1 grep 强大的文本搜索工具 5.2 sed (Stream Editor)简单介绍 Stream Editor 流编辑器 ,用于对文本进行转换、替换、删除、插入和打印
1 2 3 4 5 6 7 8 9 10 11 # sed 有两种模式 -e 不修改生产新文本 -i修改文件内容 sed -e '旧内容 新内容' xx文件 # 不修改文件内容 用-e sed -i '旧内容 新内容' xx文件 # 修改文件内容 用-i sed -e 后面可以接指令 a # 新增 c # 取代 d # 删除 i # 插入 p # 打印 Reading the configuration file, at line 416 'locale-collate ""'
5.3 awk 切片,强大的文本处理【重点】 主要用来将数据进行切片输出的
1 2 3 4 5 6 awk '{print $1}' # 用awk对内容进行进行切片,每一行,取第一个字段,以空格进行分隔 address: cosmos1g920yuxdmqtfxg4w8a0j9sgaazfryr2cx0d755# 取出address的值 awk ‘/address/{print $2}’ #得到cosmos1g920yuxdmqtfxg4w8a0j9sgaazfryr2cx0d755 原理是:其中 `/address/` 表示匹配包含 `address` 的行,`{print $2}` 表示输出该行的第二个字段。输出结果为 `cosmos1g920yuxdmqtfxg4w8a0j9sgaazfryr2cx0d755`$ 2 里面的2可以换成1、3、4等任何数字,数字表示你匹配到的字段的后几位开始的数据,例如你匹配到的cosmosxxxxxx是在address的后面的3个字符后才出现的,那就是$3 第四个字符出现的就是$4 ,以此类推
比如:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a7a584dfd04a django-vue-admin_dvadmin-django "/backend/docker_sta…" 13 days ago Up Less than a second 0.0.0.0:8000->8000/tcp, :::8000->8000/tcp dvadmin-django 286cc8be5d9f mysql:5.7 "docker-entrypoint.s…" 13 days ago Up Less than a second 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp dvadmin-mysql 1cb7df749dec mysql:8.0.30 "docker-entrypoint.s…" 2 weeks ago Up Less than a second 33060/tcp, 0.0.0.0:3307->3306/tcp, :::3307->3306/tcp django_mysql 93b06a5f97a1 portainer/portainer-ce:latest "/portainer" 2 weeks ago Up Less than a second 8000/tcp, 9443/tcp, 0.0.0.0:1009->9000/tcp, :::1009->9000/tcp portainer docker ps | awk '{print $1}' # 使用 awk 工具对前一个命令的输出进行处理,提取每行的第一个字段(以空格为分隔符),并将其打印出来 CONTAINER a7a584dfd04a 286cc8be5d9f 1cb7df749dec 93b06a5f97a1 docker ps | awk '{print $1}'|tail +2 # 从第二个开始取 a7a584dfd04a 286cc8be5d9f 1cb7df749dec 93b06a5f97a1 docker stop $(docker ps | awk '{print $1}'|tail +2) # 停止容器
5.4 find 找文件 find命令再目录结构中搜索文件,并对搜索结果进行知道的操作
find 默认搜索当前目录机器子目录,并且不过滤任何结果(也就是返回所有文件) 将它们全部显示再公屏上
所以使用find的时候最好要跟一下目标目录 一般用**-ls查找当前目录**
1 2 3 4 5 find . -name "*.log" -ls 在当前目录查找以.log结尾的文件,并显示详细信息。 find /root/ -perm 600 查找/root/目录下权限为600的文件 find . -type f -name "*.log" 查找当目录,以.log结尾的普通文件 find . -type d | sort 查找当前所有目录并排序 find . -size +100M 查找当前目录大于100M的文件
5.5 which which命令的作用实在PATH变量指定的路径钟,搜索某一个系统命令的位置,并且返回第一个搜索结果一般用于查找某个指令所在的位置
1 2 3 which pwd # 查找pwd 命令所在的路径 which java # 查找PATH中java所在的路径 which python # 查找PATH中python所在的路径
5.6whereis 没用过 whereis命令是定位可执行文件、源代码文件、帮助文件在文件系统中的位置。这些文件的属性应属于原始代码,二进制文件,或是帮助文件
1 whereis ls 将和ls文件相关的文件都查找出来
5.7 locate 没用过 记笔记 六 su 和sudo 七、系统服务 7.1 systemctl systemctl
命令用于管理 systemd 系统和服务管理器。它可以启动、停止、重启、重新加载和查询系统服务的状态。一些常用的 systemctl
命令包括:
1 2 3 4 systemctl start service_name # 启动服务 systemctl stop service_name # 停止服务 systemctl restart service_name # 重启服务 systemctl status service_name # 查看服务信息
也可以用 service ,一样的意思
7.2 service 7.3 ps ps 查看当前正在运行的进程
1 2 3 4 ps -e | grep process_name # 查看指定进程名 ps -ef # 列出当前的所有进程,静态的 ps -aux | grep process_name # aux 显示所有进程及其详情信息包括其他用户的进程,一般配合grep # 三个命令一样的
7.4 端口 netstat
:netstat
命令用于显示网络连接、路由表和网络接口信息。你可以使用不同的选项来过滤和显示特定的网络信息。一些常用的 netstat
命令选项包括:
1 netstat -tuln # 显示所有正在监听的tcp 和 udp 端口 可以配合grep port_number 查找特定端口的监听进程
lsof : losf
命令用于列出打开文件和网络链接的进程 【常用】
1 2 3 lsof -i:8000 # 查看8000端口有没有被占用,谁占用,显示端口详细信息 losf -i TCP:prot_number # 显示对应的TCP端口详情 losf -i UDP:prot_number # 显示对应的UDP端口详情
ss:ss
命令用户显示套接字统计信息,包括监听端口和与之相关的进程。
1 ss -tuln # 显示所有正在监听的TCP和UDP端口
7.4 内存/CPU监控之top或者htop(彩色) top
强大的实时监控系统工具,用于查看和管理正在运行的进程以及系统的性能指标,
解读所展示参数
1 2 3 4 5 6 7 8 9 top 进程号 USER PR NI VIRT RES SHR %CPU %MEM TIME+ COMMAND 87753 wang 20 0 48.8g 240336 79328 R 10.9 0.7 1141:51 com.ali+ VIRT # 虚拟内存占用大小 RES # 物理内存占用大小 SHR # 共享内存占用大小 % TIME+ # 进程累计CPU时间
【重点】top -p PID_number 查看指定的进程的实时占用情况
7.5 内存/CPU监控之free 和vmstat free :free
命令用于显示系统的内存使用情况,它会显示总内存、已使用内存、空闲内存等信息。
可以使用free -h 以更友好的方式显示内存大小(单位用G,默认单位是M)
1 2 3 4 5 6 7 8 9 free total used free shared buff/cache available 内存: 32595208 18936688 1550264 2450668 12108256 10649300 交换: 15999996 2212136 13787860 free -h total used free shared buff/cache available 内存: 31Gi 17Gi 1.5Gi 2.4Gi 11Gi 10Gi 交换: 15Gi 2.1Gi 13Gi
vmstat
:vmstat
命令用于显示虚拟内存的统计信息,包括内存、CPU、磁盘、交换等。运行 vmstat 1
可以每秒更新一次统计信息
1 2 3 4 vmstat -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b 交换 空闲 缓冲 缓存 si so bi bo in cs us sy id wa st 0 0 2212136 1595296 1335748 10787504 0 0 2 14 2 1 3 1 96 0 0
7.6 使用网络流量统计 ifconfig : ifconfig
用于查看网络接口配置信息,也可以查看发送【上传】和接收【下载】数据包的值
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 ifconfig enp4s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.0.120 netmask 255.255.255.0 broadcast 192.168.0.255 inet6 fe80::5a11:22ff:fe47:c52e prefixlen 64 scopeid 0x20<link> ether 58:11:22:47:c5:2e txqueuelen 1000 (以太网) RX packets 22011398 bytes 12495616225 (12.4 GB) RX errors 0 dropped 154785 overruns 0 frame 0 TX packets 11342485 bytes 5780291167 (5.7 GB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 enp4s0 # 网络接口名称,网卡名称 flags=4163<UP,BROADCAST,RUNNING,MULTICAST> # 4163标志 up启动,BROADCAST广播,RUNNING运行,MULTICAST接口支持多广播 inet 192.168.0.120 # 本机ip 也就是接口的IPv4地址 netmask 255.255.255.0 # 接口子望掩码,用于确定网络地址和主机地址的界限 broadcast 192.168.0.255 # 接口的广播地址,用于向同一子网中的所有主机发送广播消息。 ether 58:11:22:47:c5:2e # 本机mac地址,物理地址 txqueuelen 1000(以太网):# 发送队列长度,指定接口发送数据包的队列的最大长度 RX packets 22011398 # RX是接收,接收包的数量 接收就是【下载】 bytes 12495616225 (12.4 GB) # 接受包的字节数,也就是接收包耗流量 【下载】 RX errors 0 # 接收过程中的错误数 dropped 154785 # 接收过程中的丢包数 overruns 0 # 接收过程中的溢出数据包数 frame 0 # 接收过程中的帧错误数量 TX packets 11342485 # TX是发送,发送包的数量 【上传】 bytes 5780291167 (5.7 GB) # 接受包的字节数,也就是接受包耗流量【上传】 TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
netstat -i : netstat -i
用于显示网络接口的统计信息。它会列出系统上所有网络接口的详细信息,包括接口名称、MTU(最大传输单元)、接收和发送的数据包数量、错误数量等【重点】【统计用】
1 2 3 4 5 6 7 8 9 10 11 netstat -i # 这个看的更直观 Kernel Interface table Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg br-0bc39 1500 0 0 0 0 73 0 0 0 BMU br-31a15 1500 0 0 0 0 0 0 0 0 BMU br-701c9 1500 0 0 0 0 0 0 0 0 BMU br-cbf44 1500 0 0 0 0 71 0 0 0 BMU docker0 1500 23665 0 0 0 41823 0 0 0 BMRU enp4s0 1500 22050803 0 155200 0 11352806 0 0 0 BMRU lo 65536 8078343 0 0 0 8078343 0 0 0 LRU veth9712 1500 18992 0 0 0 35983 0 0 0 BMRU
ip a 现在不用ifconfig 这个命令比较老,用ip a 也是一样的,因为ip 集成了很多东西在里面
nethogs : nethogs
可以实时监控网络流量,会像抓包一样实时的显示每个进程的网络使用情况,这个要装的
iftop:iftop
工具可以实时监听当前网络流量和统计发送接收总量
sudo iftop -P -F :实时监听对应进程的网络流量和统计发送接收总量
1 2 sudo iftop # 监听和统计全部流量 sudo iftop -P -F 4785 # 监听和统计单个进程的流程数据
tcpdump :tcpdump
抓包本机所有网络请求接收,如果要抓包筛选的话,可以用Wireshark工具
1 2 tshark -r capture.pcap -Y "<filter_expression>"# 将 `<filter_expression>` 替换为你想要使用的过滤表达式,例如 `http.request` 或 `tcp.port == 80`。你还可以添加进程名称或进程 ID 过滤条件,以限制结果只包含特定进程的流量。
流畅度 【这个要去看一下详解后做笔记】 功耗 【这个要去看一下详解后做笔记】 网络抓包tcpdump【这个要去看一下详解后做笔记】 八、网络管理 九、定时任务 十、其他