1. 复制一份备份文件 cp /etc/sysconfig/iptables{,.back}
2. 重命名 mv /etc/sysconfig/iptables{,.back}
3. 追加内容到文件尾 echo "123" >> /path/file
4. 树形查看目录大小 du -h --max-depth=1
5. 指定源搜索软件 yum repo-pkgs REPO list
yum repo-pkgs epel list | grep nginx
ANOTHER WAY TO yum --disablerepo "*" --enablerepo REPO list
yum --disablerepo "*" --enablerepo REPO list | grep nginx
6. MySQL 5.7.37 password
—> authentication_string
7. 挂载磁盘设备 fdisk /dev/vdb1
{n, p, size, type, w}
mkfs.ext4 /dev/vdb1
mount /dev/vdb1 /data
8. 使用代理 curl -–socks5 127.0.0.1:10808 https://www.google.com
wget -e http_proxy=127.0.0.1:10808 http://www/google.com
wget -e https_proxy=127.0.0.1:10808 https://www/google.com
8.1 测试是否使用代理 curl cip.cc
8.2 设置临时代理 export http_proxy="http://username:password@proxyServer:port/" export https_proxy="http://username:password@proxyServer:port/" export ftp_proxy="http://username:password@proxyServer:port/" export no_proxy="127.0.0.1,192.168.124.0/16,*.example.com"
8.3 取消代理 unset http_proxyunset https_proxyunset ftp_proxyunset no_proxy
8.4 永久代理 cat >> /etc/profile << EOF export http_proxy="http://username:password@proxyServer:port/" export https_proxy="http://username:password@proxyServer:port/" export ftp_proxy="http://username:password@proxyServer:port/" export no_proxy="127.0.0.1,192.168.124.0/16,*.example.com" EOF
source /etc/profile
9. 清空正在使用的文件 /usr/bin/cp /dev/null /path2yourFILE
> /path2yourFILE
cp使用绝对路径, 避免出现cp提示是否覆盖文件 对正在使用的文件,如果直接rm -rf 文件是没了, 但是占用的空间还在.
10. 图形化配置网络ip nmtui
nmtui 是 NetworkManager 工具的一部分,它为你提供了一个漂亮的用户界面来配置网络。这是 NetworkManager-tui 包的一部分,当你完成最小服务器的安装时它应该默认安装。
11. 删除某个目录下除了某个文件之外 rm -rf /pathtoyourdir/(!xx.txt)
12. 不重启系统识别新添加的硬盘 for i in 0 1 2; do echo "- - -" > /sys/class/scsi_host/host$i/scan; done
13. 删除乱码文件 ls -i
find -inum xxxx -delete
14. 查找已删除但正在使用的文件 lsof +L1
lsof | grep deleted
+L
启用文件链接计数
-L
关闭文件链接计数
+L1
列出已打开但是被取消链接的文件 (一般指deleted)
15. Windows切换samba用户
查看当前链接net use
删除链接 net use * /del
16. 判断口段是否开放 nc -zv <ip> <port>
17. 99-sysctl.conf
99-sysctl.conf 是一个在 /etc/sysctl.d/ 目录中的文件,它是用来配置系统内核参数的。文件名中的数字 99 表示它的优先级较高,因为数字越大,优先级越高。在应用 sysctl 设置时,系统会按照文件名的字典序来顺序加载这些文件,较高优先级的文件会覆盖较低优先级的文件中相同参数的设置。
在 99-sysctl.conf 文件中,您可以指定各种系统内核参数的设置,比如网络参数、内存参数等。这些参数的设置可以影响系统的性能、安全性和行为
18. I/O读写情况 pidstat -d | sort -k 5 -n -r | head -n 10 pidstat -d : 查看磁盘I/O sort: -k : 第五列 -n : 数值大小 -r : 逆序
19. 查看 MySQL 各个数据库的大小
查看所有数据库大小
SELECT table_schema AS `Database`, ROUND(SUM (data_length + index_length) / 1024 / 1024 , 2 ) AS `Size (MB)` FROM information_schema.tables GROUP BY table_schema;
查看某个数据库的所有表
SELECT table_name AS `表名`, ROUND((data_length + index_length) / 1024 / 1048576 , 2 ) AS `表大小(GB)` FROM information_schema.tables WHERE table_schema = 'your_dbname' ORDER BY (data_length + index_length) DESC ;
20. MySQL一些初始测试 CREATE database IF NOT EXISTS rand_db character SET utf8 collate utf8_general_ci;CREATE user IF NOT EXISTS 'admin' @'%' identified BY 'admin123' ; GRANT all privileges ON rand_db.* TO 'admin' @'%' ;flush privileges; CREATE TABLE IF NOT EXISTS rand_db.rand_table ( id INT AUTO_INCREMENT PRIMARY KEY, column1 VARCHAR (255 ), column2 INT , column3 DATETIME );
21. pve 去除订阅弹窗 编辑文件 /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
Ext.Msg.show
–> Ext.Msg.noshow
22. firewalld public不生效 public区域没有指定接口的时候, 相关public的设置不一定生效
firewall-cmd --zone=public --add-interface=eth0 --permanent
23. Linux 终端快捷键
快捷键
功能
Ctrl + A
切换光标至行首
Ctrl + E
切换光标至行尾
Ctrl + U
删除光标至行首
Ctrl + K
删除光标至行尾
Ctrl + W
删除光标前一个词
Ctrl + L
清屏
Ctrl + C
停止正在执行的进程或命令
Ctrl + D
注销或退出终端
Ctrl + Z
暂停正在执行的进程(fg
恢复)
Ctrl + R
在命令历史中进行逆向搜索
!!
重复执行上一条命令
!n
重复执行命令历史中的第 n 条命令
24. yum 撤回安装操作 某些情况下,为了安装某些软件需要安装大量依赖,比如下面
yum install cmake3 glib2-devel libpcap libpcap-devel libgcrypt-devel glib2-devel qt-devel qt5-qtbase-devel qt5-linguist qt5-qtmultimedia-devel qt5-qtsvg-devel libcap-devel libcap-ng-devel gnutls-devel krb5-devel libxml2-devel lua-devel lz4-devel snappy-devel spandsp-devel libssh2-devel bcg729-devel libmaxminddb-devel sbc-devel libsmi-devel libnl3-devel libnghttp2-devel libssh-devel libpcap-devel c-ares-devel redhat-rpm-config rpm-build gtk+-devel gtk3-devel desktop-file-utils portaudio-devel rubygem-asciidoctor docbook5-style-xsl docbook-style-xsl systemd-devel python34 cmake3 git gcc gcc-c++ flex bison doxygen gettext-devel libxslt cmake
某些包已经存在, 会直接跳过安装, 安装依赖后发现软件还是无法安装, 这个时候我们打算撤回依赖安装 此时yum remove的话,会删除关键依赖
yum remove cmake3 glib2-devel libpcap libpcap-devel libgcrypt-devel glib2-devel qt-devel qt5-qtbase-devel qt5-linguist qt5-qtmultimedia-devel qt5-qtsvg-devel libcap-devel libcap-ng-devel gnutls-devel krb5-devel libxml2-devel lua-devel lz4-devel snappy-devel spandsp-devel libssh2-devel bcg729-devel libmaxminddb-devel sbc-devel libsmi-devel libnl3-devel libnghttp2-devel libssh-devel libpcap-devel c-ares-devel redhat-rpm-config rpm-build gtk+-devel gtk3-devel desktop-file-utils portaudio-devel rubygem-asciidoctor docbook5-style-xsl docbook-style-xsl systemd-devel python34 cmake3 git gcc gcc-c++ flex bison doxygen gettext-devel libxslt cmake
正确做法:
yum history查看yum操作记录
[root@pve-centos7 ~]# yum history Loaded plugins: fastestmirror, langpacks ID | Login user | Date and time | Action(s) | Altered ------------------------------------------------------------------------------- 168 | root <root> | 2024-05-24 14:46 | Install | 84 167 | root <root> | 2024-05-24 14:09 | Erase | 1 166 | root <root> | 2024-05-24 10:55 | Install | 2 165 | root <root> | 2024-05-24 10:09 | Update | 7 164 | root <root> | 2024-05-16 09:25 | Install | 1 163 | root <root> | 2024-05-15 16:48 | Install | 46 162 | root <root> | 2024-05-14 09:51 | Install | 1 161 | root <root> | 2024-05-08 08:46 | Update | 2 P< 160 | <dev> | 2024-05-06 15:36 | Install | 1 > 159 | <dev> | 2024-05-06 15:36 | Install | 2 P< 158 | <dev> | 2024-05-06 11:21 | I, U | 26 >< 157 | root <root> | 2024-04-29 10:39 | Erase | 1 > 156 | root <root> | 2024-04-26 16:37 | Install | 9 155 | root <root> | 2024-04-26 13:25 | Update | 7 154 | root <root> | 2024-04-24 10:19 | Install | 9 EE 153 | root <root> | 2024-04-24 09:09 | Install | 1 152 | root <root> | 2024-04-15 15:39 | Update | 5 < 151 | root <root> | 2024-04-07 16:50 | Install | 8 > 150 | root <root> | 2024-04-07 16:49 | Install | 2 history list
撤回刚才的操作直接 yum history undo 168
即可
25. vim 常见快捷键
快捷键
功能
x
向右删除光标所在的文本
X(大写)
向左删除光标所在的文本
y
复制选中的文本
i
在当前光标位置前插入
I
在当前行首插入
a
在当前光标位置后插入
A(大写)
在当前行尾插入
0
切换至行首
26. 端口检测 某些情况下系统可能没有安装 telnet
,nc
, nmap
等端口检测工具, 可以利用一下常见的命令变相检测端口的连通性.
参数解释:-v
标识详细模式-p
指定端口
输出内容中看到 Connection established
表示该端口是开放的
27. 容器检测nginx进程 检测所有容器是否包含某个进程,并返回该容器的容器名
#!/bin/bash containers=$(docker ps -q) for container in $containers ; do container_name=$(docker inspect --format '{{.Name}}' $container | sed 's/^\/\([^/]*\)$/\1/' ) if docker exec $container pgrep -x nginx > /dev/null 2>&1; then echo "Container $container_name is running Nginx" fi done
28. 基于TCP的时间同步 基于 TCP端口37的时间同步
服务端:
yum install xinetd
配置文件:
vim /etc/xinetd.d/time-stream
disable = yes
—> disable = no
客户端:
yum install rdate
rdate -s server_ip
29. 查看非空行和非注释行 grep -E '^\s*[^#]' example.txt
egrep -v "^$|^#" example.txt
30. docker镜像便捷传输 docker save mysql:5.7.44 | gzip | ssh [email protected] 'gunzip | docker load'
31. docker 配置代理 docker 不支持socks代理,请使用http代理
more /etc/systemd/system/docker.service.d/http-proxy.conf [Service] Environment="HTTP_PROXY=http://127.0.0.1:10809" Environment="HTTPS_PROXY=http://127.0.0.1:10809/" Environment="NO_PROXY=localhost,127.0.0.1,10.0.0.0/16,192.168.0.0/16"
Environment="HTTP_PROXY=socks://127.0.0.1:10809"
Environment="HTTPS_PROXY=socks://127.0.0.1:10809/"
32. 下载rpm包 rpm -aq | grep boost | xargs yumdownloader --destdir=./
--destdir=./
: 指定下载路径- -resolve
: 下载依赖
33. Linux 终端命令提示符 # 设置颜色 USER_COLOR="\[\e[0;32m\]" # 绿色 HOST_COLOR="\[\e[0;34m\]" # 蓝色 PATH_COLOR="\[\e[0;33m\]" # 黄色 RESET_COLOR="\[\e[0m\]" # 重置颜色 # 设置提示符 if [ "$EUID" -eq 0 ]; then PS1="[${USER_COLOR}\u@\h${RESET_COLOR} ${PATH_COLOR}\w${RESET_COLOR}]# " else PS1="[${USER_COLOR}\u@\h${RESET_COLOR} ${PATH_COLOR}\w${RESET_COLOR}]$ " fi
34. git 代理
http/https代理 git config --global http.https://github.com.proxy socks5://127.0.0.1:10808
ssh 代理 vim ~/.ssh/config
Host github.com Hostname ssh.github.com Port 443 User git ProxyCommand nc -v -x 127.0.0.1:10808 %h %p IdentityFile ~/.ssh/id_rsa TCPKeepAlive yes
35. 任务后台运行 yum install screen -y
启动新会话 screen -S $SESSION_NAME
将会话放入后台 Ctrl + A, D
查看后台运行的会话 screen -ls
重新连接会话 screen -r $SESSION_NAME
或者 screen -r SESSION_ID
结束会话 Ctrl + D
或者 会话中执行 exit
强制终止会话 screen -X -S SESSION_NAME quit
36. 不借助 netstat, ss, lsof 命令查看进程监听的端口 某些情况, 比如容器内, 没有netstat, ss, lsof这些命令的情况下查看端口监听情况
cat /proc/net/tcp
查看所有进程的监听情况cat /proc/1121/net/tcp
查看进程id为1121的端口监听情况
cat /proc/net/tcp | awk 'NR>1 { split($2,local,":"); split($3,remote,":"); printf("Local: %d.%d.%d.%d:%d Remote: %d.%d.%d.%d:%d\n", strtonum("0x"substr(local[1],7,2)), strtonum("0x"substr(local[1],5,2)), strtonum("0x"substr(local[1],3,2)), strtonum("0x"substr(local[1],1,2)), strtonum("0x"local[2]), strtonum("0x"substr(remote[1],7,2)), strtonum("0x"substr(remote[1],5,2)), strtonum("0x"substr(remote[1],3,2)), strtonum("0x"substr(remote[1],1,2)), strtonum("0x"remote[2])) }'