1 ps -ef | grep redis
`ps -ef | grep redis` 是一个在 Linux 系统上用于查找与 `redis` 相关的进程的命令。
它的各个部分解释如下:
1. **`ps -ef`**: 列出当前系统上所有正在运行的进程,包括详细的进程信息。
- **`ps`**: 显示当前运行的进程。
- **`-e`**: 显示系统上所有用户的所有进程。
- **`-f`**: 以完整格式(full-format)显示进程信息,通常包括 UID、PID、PPID、C、STIME、TTY、TIME、CMD 等列。
2. **`|`**: 管道符号,将 `ps -ef` 命令的输出传递给后一个命令。
3. **`grep redis`**: `grep` 是一个搜索命令,它会从输入中筛选出包含指定字符串(在此例中是 `redis`)的行。
综合起来,`ps -ef | grep redis` 的作用是从当前运行的所有进程中查找并显示与 `redis` 相关的进程。
它通常用于检查 Redis 服务是否正在运行以及查看其进程信息(如进程 ID、启动命令等)。
2 rpm -qa | grep yum
`rpm -qa | grep yum` 是一个在 Linux 系统上用于查找与 `yum` 相关的软件包的命令。
它的各个部分解释如下:
1. **`rpm -qa`**: 列出系统中所有已安装的 RPM 软件包。
2. **`|`**: 管道符号,将前一个命令的输出传递给后一个命令。
3. **`grep yum`**: `grep` 是一个用于搜索文本的命令,它会从输入中筛选出包含指定字符串(在此例中是 `yum`)的行。
综合起来,`rpm -qa | grep yum` 的作用是从已安装的软件包列表中查找并显示所有包含 "yum" 的软件包。这通常用于检查系统上是否安装了与 `yum` 相关的软件包,以及查看它们的名称和版本信息。
3 重命名文件
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
4 linux常见的命令
- **`ls`**: 列出目录内容。
- 示例: `ls -l`(详细列出文件信息)
- **`cd`**: 更改当前工作目录。
- 示例: `cd /home/user`
- **`cp`**: 复制文件或目录。
- 示例: `cp file.txt /backup/`
- **`mv`**: 移动或重命名文件或目录。
- 示例: `mv oldname.txt newname.txt`
- **`rm`**: 删除文件或目录。
- 示例: `rm -rf /tmp/mydir`
- **`mkdir`**: 创建新目录。
- 示例: `mkdir newdir`
- **`touch`**: 创建一个空文件或更新文件的时间戳。
- 示例: `touch newfile.txt`
- **`find`**: 搜索文件或目录。
- 示例: `find /home -name "*.txt"`
- **`top`**: 动态显示系统中最消耗资源的进程。
- **`htop`**: 类似 `top`,但界面更友好(需要安装)。
- **`df`**: 显示文件系统的磁盘使用情况。
- 示例: `df -h`(以人类可读的格式显示)
- **`du`**: 显示文件和目录的磁盘使用量。
- 示例: `du -sh /var/log`(显示特定目录的总大小)
- **`free`**: 显示系统的内存使用情况。
- 示例: `free -h`
- **`uptime`**: 显示系统的运行时间及当前登录用户数。
- **`ps`**: 显示当前运行的进程。
- 示例: `ps aux`(显示所有用户的所有进程)
- **`ping`**: 测试与主机的网络连通性。
- 示例: `ping google.com`
- **`netstat`**: 显示网络连接、路由表、接口统计等。
- 示例: `netstat -tuln`(显示监听的端口)
- **`curl`**: 发送 HTTP 请求或下载文件。
- 示例: `curl http://example.com`
- **`wget`**: 从网络下载文件。
- 示例: `wget http://example.com/file.zip`
- **`ifconfig`**: 配置或显示网络接口(已被 `ip` 命令替代)。
- 示例: `ifconfig eth0`
- **`ip`**: 显示或配置网络接口、路由等。
- 示例: `ip addr show`
- **`useradd`**: 添加新用户。
- 示例: `useradd username`
- **`passwd`**: 修改用户密码。
- 示例: `passwd username`
- **`su`**: 切换用户。
- 示例: `su - username`
- **`sudo`**: 以超级用户权限执行命令。
- 示例: `sudo apt update`
- **`whoami`**: 显示当前登录用户的用户名。
- **`chmod`**: 更改文件或目录的权限。
- 示例: `chmod 755 script.sh`
- **`chown`**: 更改文件或目录的所有者。
- 示例: `chown user:group file.txt`
- **`chgrp`**: 更改文件或目录的组。
- 示例: `chgrp groupname file.txt`
- **`tar`**: 创建或解压缩 tar 压缩包。
- 示例: `tar -czvf archive.tar.gz /path/to/dir`
- **`gzip`**: 压缩文件。
- 示例: `gzip file.txt`
- **`unzip`**: 解压 zip 压缩包。
- 示例: `unzip archive.zip`
- **`shutdown`**: 关机或重启系统。
- 示例: `shutdown -h now`(立即关机)
- **`reboot`**: 重启系统。
- **`systemctl`**: 管理系统服务(启动、停止、重启服务等)。
- 示例: `systemctl restart nginx`
- **`journalctl`**: 查看系统日志。
- 示例: `journalctl -u nginx`(查看 Nginx 服务的日志)
- **`cat`**: 连接并显示文件内容。
- 示例: `cat file.txt`
- **`less`**: 分页查看文件内容,支持上下滚动。
- 示例: `less file.txt`
- **`more`**: 分页显示文件内容,类似于 `less`,但功能较少。
- 示例: `more file.txt`
- **`head`**: 显示文件的开头部分。
- 示例: `head -n 10 file.txt`(显示前 10 行)
- **`tail`**: 显示文件的末尾部分。
- 示例: `tail -f /var/log/syslog`(实时跟踪日志文件)
- **`grep`**: 搜索文本中的匹配模式。
- 示例: `grep "error" /var/log/syslog`
- **`awk`**: 文本处理工具,用于按列处理文本数据。
- 示例: `awk '{print $1}' file.txt`(打印文件中的第一列)
- **`sed`**: 流编辑器,用于查找和替换文本。
- 示例: `sed 's/old/new/g' file.txt`(将文件中的 "old" 替换为 "new")
- **`cut`**: 剪切文本中的指定部分。
- 示例: `cut -d ':' -f 1 /etc/passwd`(以 `:` 为分隔符,提取第一列)
- **`fdisk`**: 分区表操作工具。
- 示例: `fdisk /dev/sda`(管理 `/dev/sda` 磁盘的分区)
- **`mkfs`**: 创建文件系统。
- 示例: `mkfs.ext4 /dev/sda1`(将 `/dev/sda1` 格式化为 ext4 文件系统)
- **`mount`**: 挂载文件系统。
- 示例: `mount /dev/sda1 /mnt`(将分区 `/dev/sda1` 挂载到 `/mnt`)
- **`umount`**: 卸载文件系统。
- 示例: `umount /mnt`
- **`lsblk`**: 列出系统中所有的块设备。
- 示例: `lsblk`
- **`df`**: 显示文件系统的磁盘空间使用情况。
- 示例: `df -h`
- **`apt-get` / `apt`**: 包管理工具,安装、更新、删除软件包。
- 示例: `sudo apt update`(更新包列表)
- 示例: `sudo apt install package_name`(安装软件包)
- **`dpkg`**: Debian 包管理工具,用于安装、卸载、查看 `.deb` 包。
- 示例: `dpkg -i package.deb`(安装 `.deb` 包)
- **`yum`**: 包管理工具,安装、更新、删除软件包。
- 示例: `sudo yum install package_name`
- **`dnf`**: `yum` 的替代品,更现代化的包管理工具。
- 示例: `sudo dnf install package_name`
- **`rpm`**: RPM 包管理工具,用于安装、卸载、查看 `.rpm` 包。
- 示例: `rpm -ivh package.rpm`(安装 `.rpm` 包)
- **`chmod`**: 更改文件权限。
- 示例: `chmod 755 script.sh`
- **`chown`**: 更改文件所有者。
- 示例: `chown user:group file.txt`
- **`sudo`**: 以超级用户权限执行命令。
- 示例: `sudo command`
- **`usermod`**: 修改用户账户信息。
- 示例: `usermod -aG sudo username`(将用户添加到 `sudo` 组)
- **`uname`**: 显示系统信息。
- 示例: `uname -a`(显示所有系统信息)
- **`hostname`**: 查看或设置系统主机名。
- 示例: `hostname`
- **`dmesg`**: 显示内核消息缓冲区中的系统启动信息。
- 示例: `dmesg | grep error`
- **`uptime`**: 显示系统的运行时间和负载。
- 示例: `uptime`
- **`env`**: 显示当前用户的环境变量。
- 示例: `env`
- **`kill`**: 终止进程。
- 示例: `kill -9 PID`(强制终止进程 `PID`)
- **`pkill`**: 根据进程名终止进程。
- 示例: `pkill -f process_name`
- **`bg`**: 将进程移到后台运行。
- 示例: `bg %1`
- **`fg`**: 将后台进程移到前台运行。
- 示例: `fg %1`
- **`jobs`**: 列出当前会话中的所有后台任务。
- 示例: `jobs`
- **`journalctl`**: 查看 `systemd` 日志。
- 示例: `journalctl -u sshd`(查看 SSH 服务日志)
- **`logger`**: 向系统日志中写入消息。
- 示例: `logger "Custom log entry"`
- **`date`**: 显示或设置系统日期和时间。
- 示例: `date`
- **`cal`**: 显示日历。
- 示例: `cal`
- **`ntpdate`**: 使用 NTP 服务器同步系统时间。
- 示例: `sudo ntpdate pool.ntp.org`
- **`cron`**: 定时任务调度工具,使用 `crontab` 编辑定时任务。
- 示例: `crontab -e`(编辑用户的定时任务)
- **`at`**: 一次性任务调度工具,计划在特定时间运行命令。
- 示例: `echo "backup.sh" | at 02:00`(在凌晨 2 点执行 `backup.sh`)
- **`ssh`**: 通过 SSH 远程登录到另一台机器。
- 示例: `ssh user@remote_host`
- **`scp`**: 通过 SSH 复制文件。
- 示例: `scp file.txt user@remote_host:/path/to/destination`
- **`rsync`**: 高效的文件和目录同步工具。
- 示例: `rsync -avz /source/ user@remote_host:/destination/`
- **`gcc`**: GNU 编译器集合,用于编译 C、C++ 等语言的源代码。
- 示例: `gcc -o output program.c`(编译 `program.c` 并生成可执行文件 `output`)
- **`make`**: 使用 `Makefile` 自动化编译过程。
- 示例: `make all`
- **`gdb`**: GNU 调试器,用于调试程序。
- 示例: `gdb ./program`(调试 `program` 可执行文件)
- **`strace`**: 跟踪系统调用和信号。
- 示例: `strace -p PID`(跟踪进程 `PID` 的系统调用)
- **`lsof`**: 列出打开的文件和相关进程。
- 示例: `lsof | grep filename`
- **`diff`**: 比较文件的差异。
- 示例: `diff file1.txt file2.txt`
- **`patch`**: 应用补丁文件。
- 示例: `patch < fix.patch`
- **`git`**: 分布式版本控制系统,用于跟踪代码版本。
- 示例: `git clone https://github.com/user/repo.git`(克隆代码仓库)
- 示例: `git commit -m "message"`(提交更改)
- **`svn`**: Apache Subversion,集中式版本控制系统。
- 示例: `svn checkout https://url/repo`(签出代码仓库)
- **`docker`**: 容器化平台,用于创建和管理容器。
- 示例: `docker run -it ubuntu`(启动 Ubuntu 容器)
- 示例: `docker ps`(列出所有正在运行的容器)
- **`docker-compose`**: 用于定义和运行多容器 Docker 应用的工具。
- 示例: `docker-compose up`
- **`vagrant`**: 开发环境虚拟化工具。
- 示例: `vagrant up`(启动 Vagrant 虚拟机)
- **`virtualbox`**: 虚拟化平台,用于运行虚拟机。
- 示例: `VBoxManage list vms`(列出所有虚拟机)
- **`iptables`**: 配置 Linux 内核的网络包过滤规则。
- 示例: `iptables -L`(列出当前规则)
- 示例: `iptables -A INPUT -p tcp --dport 22 -j ACCEPT`(允许 SSH 端口的连接)
- **`ufw`**: 简化的防火墙管理工具,适用于 `iptables`。
- 示例: `ufw enable`(启用防火墙)
- 示例: `ufw allow 22`(允许 SSH 端口)
- **`fail2ban`**: 防止暴力破解攻击的工具,通过动态修改防火墙规则限制可疑 IP。
- 示例: `fail2ban-client status`(查看 fail2ban 状态)
- **`openssl`**: 开源的 SSL/TLS 工具包,用于加密、解密和证书管理。
- 示例: `openssl genrsa -out privatekey.pem 2048`(生成 2048 位私钥)
- **`ssh-keygen`**: 生成 SSH 密钥对。
- 示例: `ssh-keygen -t rsa -b 4096`
- **`sar`**: 系统活动报告工具,监控系统性能指标。
- 示例: `sar -u 1 5`(每秒报告一次 CPU 使用率,共 5 次)
- **`vmstat`**: 报告虚拟内存、进程、CPU 活动等。
- 示例: `vmstat 5`(每 5 秒报告一次系统性能)
- **`iostat`**: 显示 CPU 和块设备(如磁盘)I/O 使用情况。
- 示例: `iostat -x`(显示详细的 I/O 统计信息)
- **`iotop`**: 显示实时磁盘 I/O 使用情况。
- 示例: `sudo iotop`
- **`perf`**: Linux 性能分析工具,捕获硬件和软件性能事件。
- 示例: `perf stat ls`(统计 `ls` 命令的性能事件)
- **`nice`/`renice`**: 设置进程的优先级。
- 示例: `nice -n 10 command`(以较低优先级运行命令)
- 示例: `renice 15 -p PID`(更改进程 `PID` 的优先级)
- **`screen`**: 终端会话管理器,允许你在多个终端之间切换。
- 示例: `screen -S session_name`(创建新的会话)
- 示例: `screen -r session_name`(恢复会话)
- **`tmux`**: 终端多路复用器,类似 `screen`,但功能更强大。
- 示例: `tmux new -s session_name`(创建新的 tmux 会话)
- 示例: `tmux attach -t session_name`(恢复 tmux 会话)
- **`nc`** (Netcat): 用于读取和写入网络连接的数据,适合调试网络服务。
- 示例: `nc -l -p 1234`(在端口 1234 上监听连接)
- 示例: `echo "message" | nc host 1234`(发送消息到指定主机端口)
- **`mysql`**: 管理 MySQL 数据库。
- 示例: `mysql -u root -p`(以 root 用户登录 MySQL)
- **`mysqldump`**: 备份 MySQL 数据库。
- 示例: `mysqldump -u root -p database_name > backup.sql`
- **`psql`**: 管理 PostgreSQL 数据库。
- 示例: `psql -U username -d database_name`
- **`pg_dump`**: 备份 PostgreSQL 数据库。
- 示例: `pg_dump -U username -F c -b -v -f backup.pgsql database_name`
- **`mongo`**: MongoDB 的命令行客户端。
- 示例: `mongo`(连接到本地 MongoDB 实例)
- **`redis-cli`**: Redis 的命令行客户端。
- 示例: `redis-cli`(连接到本地 Redis 实例)
- **`ansible`**: 开源自动化工具,用于配置管理和应用程序部署。
- 示例: `ansible -i inventory all -m ping`(在所有主机上运行 ping 测试)
- **`terraform`**: 基础设施即代码工具,用于管理云资源。
- 示例: `terraform init`(初始化 Terraform 配置)
- **`kubectl`**: Kubernetes 命令行工具,用于管理 Kubernetes 集群。
- 示例: `kubectl get pods`(列出所有 pod)
- **`aws`**: AWS CLI,用于管理 AWS 服务。
- 示例: `aws s3 ls`(列出所有 S3 存储桶)
- **`rsync`**: 高效的文件和目录同步工具。
- 示例: `rsync -avz /source/ /destination/`(同步文件)
- **`scp`**: 通过 SSH 传输文件。
- 示例: `scp file.txt user@remote_host:/path/to/destination`
- **`sftp`**: 通过 SSH 进行文件传输。
- 示例: `sftp user@remote_host`
- **`lftp`**: 功能强大的命令行 FTP 客户端。
- 示例: `lftp -e "mirror /remote/dir /local/dir" ftp://user:password@host`
- **`dd`**: 低级别复制和转换工具,用于备份、恢复和磁盘管理。
- 示例: `dd if=/dev/sda of=/dev/sdb bs=4M`(克隆磁盘)
- **`md5sum`/`sha256sum`**: 生成文件的哈希值,用于验证文件完整性。
- 示例: `md5sum file.txt`
- **`split`**: 将文件拆分为多个小文件。
- 示例: `split -b 10M largefile`(按 10MB 分割文件)
- **`tee`**: 从标准输入读取数据并写入文件,同时输出到标准输出。
- 示例: `echo "data" | tee file.txt`
- **`ping`**: 检查网络连接性,发送 ICMP 回显请求。
- 示例: `ping google.com`(检查与 Google 的连接)
- **`traceroute`**: 跟踪数据包到目标主机的路径。
- 示例: `traceroute google.com`
- **`netstat`**: 显示网络连接、路由表、接口统计等。
- 示例: `netstat -tuln`(显示所有监听的 TCP/UDP 端口)
- **`ss`**: 显示网络套接字信息,类似 `netstat`,但更现代化。
- 示例: `ss -tuln`
- **`ifconfig`**: 配置网络接口,显示网络接口的配置和状态(新系统上通常由 `ip` 工具代替)。
- 示例: `ifconfig eth0`
- **`ip`**: 现代化的网络管理工具,替代 `ifconfig`、`route` 等旧工具。
- 示例: `ip addr show`(显示网络接口和地址)
- 示例: `ip route show`(显示路由表)
- **`tcpdump`**: 网络包捕获工具,用于调试和分析网络流量。
- 示例: `tcpdump -i eth0`(在接口 eth0 上捕获数据包)
- **`nmap`**: 网络扫描工具,用于发现网络设备和服务。
- 示例: `nmap -sP 192.168.1.0/24`(扫描整个子网中的活动设备)
- **`iptables`**: 管理 Linux 内核的网络包过滤规则,控制进出流量。
- 示例: `iptables -A INPUT -p tcp --dport 22 -j ACCEPT`(允许 SSH 流量)
- **`lvcreate`/`lvremove`**: 创建和删除逻辑卷,用于管理 LVM(逻辑卷管理)。
- 示例: `lvcreate -L 10G -n myvolume myvg`(在卷组 `myvg` 中创建一个大小为 10GB 的逻辑卷)
- 示例: `lvremove /dev/myvg/myvolume`(删除逻辑卷)
- **`vgcreate`/`vgremove`**: 创建和删除卷组。
- 示例: `vgcreate myvg /dev/sda1`(在物理卷 `/dev/sda1` 上创建卷组 `myvg`)
- **`pvcreate`**: 初始化物理卷,用于创建 LVM。
- 示例: `pvcreate /dev/sda1`
- **`resize2fs`**: 调整 ext2/ext3/ext4 文件系统的大小。
- 示例: `resize2fs /dev/myvg/myvolume 20G`(将逻辑卷的文件系统调整到 20GB)
- **`fsck`**: 文件系统检查和修复工具。
- 示例: `fsck /dev/sda1`(检查并修复 `/dev/sda1` 上的文件系统)
- **`mount`**: 挂载文件系统。
- 示例: `mount /dev/sda1 /mnt`(将分区 `/dev/sda1` 挂载到 `/mnt`)
- **`umount`**: 卸载文件系统。
- 示例: `umount /mnt`
- **`blkid`**: 显示块设备的属性信息,如 UUID、文件系统类型。
- 示例: `blkid /dev/sda1`
- **`chroot`**: 更改根目录,用于系统恢复和故障排除。
- 示例: `chroot /mnt/rescue`(将根目录更改为 `/mnt/rescue`)
- **`grub-install`**: 安装 GRUB 启动加载程序。
- 示例: `grub-install /dev/sda`
- **`grub-mkconfig`**: 生成 GRUB 配置文件。
- 示例: `grub-mkconfig -o /boot/grub/grub.cfg`
- **`rescue` 模式**: 使用安装介质进入系统救援模式,进行故障排除。
- **`logrotate`**: 日志轮换工具,自动管理日志文件的大小和备份。
- 示例: 配置文件在 `/etc/logrotate.conf` 或 `/etc/logrotate.d/` 目录下。
- **`journalctl`**: 用于查看 `systemd` 的日志。
- 示例: `journalctl -xe`(查看最近的日志条目)
- 示例: `journalctl -u sshd`(查看 SSH 服务日志)
- **`rsyslog`**: 高性能日志记录工具,用于集中日志管理。
- 示例: 配置文件通常位于 `/etc/rsyslog.conf`。
- **`auditd`**: Linux 审计守护进程,用于跟踪和记录系统事件。
- 示例: `auditctl -l`(列出当前的审计规则)
- **`lscpu`**: 显示 CPU 信息。
- 示例: `lscpu`
- **`lsusb`**: 显示 USB 设备信息。
- 示例: `lsusb`
- **`lspci`**: 显示 PCI 设备信息。
- 示例: `lspci`
- **`sensors`**: 显示系统传感器数据,如温度、电压、风扇速度。
- 示例: `sensors`
- **`hdparm`**: 硬盘参数设置和性能测试工具。
- 示例: `hdparm -tT /dev/sda`(测试硬盘性能)
- **`smartctl`**: 监控硬盘的 S.M.A.R.T. 状态,用于检测硬盘健康状态。
- 示例: `smartctl -a /dev/sda`(显示硬盘的所有 S.M.A.R.T. 信息)
- **`rsnapshot`**: 基于 `rsync` 的文件系统快照工具,用于备份。
- 示例: 配置文件通常位于 `/etc/rsnapshot.conf`。
- **`tar`**: 打包和压缩工具。
- 示例: `tar -cvf archive.tar /path/to/directory`(将目录打包成 `.tar` 文件)
- 示例: `tar -xvf archive.tar`(解压 `.tar` 文件)
- **`dd`**: 用于创建磁盘镜像、备份或恢复。
- 示例: `dd if=/dev/sda of=/backup/sda.img bs=4M`(创建 `/dev/sda` 的镜像)
- **`btrfs`**: 用于管理 Btrfs 文件系统的快照和子卷。
- 示例: `btrfs subvolume snapshot /mnt/source /mnt/backup`(创建快照)
- **`htop`**: 交互式进程监视工具,类似 `top`,但更友好。
- 示例: `htop`
- **`ncdu`**: 交互式磁盘使用分析工具,类似 `du`。
- 示例: `ncdu`
- **`mc`**: Midnight Commander,图形化文件管理器。
- 示例: `mc`
- **`curl`**: 命令行工具,用于从网络上下载文件或与 API 进行交互。
- 示例: `curl http://example.com`
- **`wget`**: 命令行工具,用于从网络上下载文件。
- 示例: `wget http://example.com/file.zip`
- **`whois`**: 查询域名或 IP 地址的注册信息。
- 示例: `whois example.com`
- **`dig`**: DNS 查询工具,用于解析域名。
- 示例: `dig example.com`
- **`xargs`**: 从标准输入中读取输入并将其传递给命令执行。
- 示例: `find . -name "*.log" | xargs rm -f`(删除所有 `.log` 文件)
- **`cron`**: 定时任务调度器,用于在指定时间运行脚本或命令。
- 示例: `crontab -e`(编辑当前用户的 `cron` 任务)
- 示例: `0 2 * * * /path/to/script.sh`(每天凌晨 2 点执行脚本)
- **`at`**: 一次性任务调度工具,用于在指定时间执行一次性任务。
- 示例: `echo "backup.sh" | at now + 1 hour`(在一小时后执行 `backup.sh`)
- **`anacron`**: 用于执行错过的定时任务,适合不保证长期运行的设备。
- 示例: 配置文件通常位于 `/etc/anacrontab`。
- **`systemd timers`**: 使用 `systemd` 定时器替代 `cron`,支持更灵活的时间调度。
- 示例: `systemctl list-timers`(列出所有定时器)
- **`pyenv`**: 管理多个 Python 版本的工具。
- 示例: `pyenv install 3.9.1`(安装 Python 3.9.1)
- 示例: `pyenv global 3.9.1`(设置全局 Python 版本为 3.9.1)
- **`virtualenv`**: 创建 Python 虚拟环境,用于隔离不同项目的依赖。
- 示例: `virtualenv venv`(创建虚拟环境 `venv`)
- 示例: `source venv/bin/activate`(激活虚拟环境)
- **`rvm`**: Ruby 版本管理器,用于管理多个 Ruby 版本。
- 示例: `rvm install 2.7.1`
- 示例: `rvm use 2.7.1 --default`
- **`nvm`**: Node.js 版本管理器,用于安装和切换不同版本的 Node.js。
- 示例: `nvm install 14.17.0`
- 示例: `nvm use 14.17.0`
- **`sdkman`**: 用于管理 JVM 相关工具(如 Java、Kotlin、Scala)的多版本工具。
- 示例: `sdk install java 11.0.11.hs-adpt`
- 示例: `sdk use java 11.0.11.hs-adpt`
- **`podman`**: 无需守护进程的容器管理工具,与 Docker 类似。
- 示例: `podman run -it alpine`(运行 Alpine 容器)
- 示例: `podman ps`(列出正在运行的容器)
- **`minikube`**: 本地运行 Kubernetes 的工具,适用于开发和测试环境。
- 示例: `minikube start`(启动本地 Kubernetes 集群)
- 示例: `minikube kubectl -- get pods`(使用 `kubectl` 与本地集群交互)
- **`k3s`**: 轻量级 Kubernetes 发行版,适合资源受限的环境。
- 示例: `k3s server`(启动 K3s 服务器)
- **`qemu`**: 开源的虚拟化工具,用于运行虚拟机。
- 示例: `qemu-system-x86_64 -hda disk.img -m 512`(启动一个 512MB 内存的虚拟机)
- **`libvirt`**: 用于管理虚拟化平台(如 KVM)的 API 和工具集合。
- 示例: `virsh list --all`(列出所有虚拟机)
- **`vagrant`**: 虚拟环境管理工具,基于 VirtualBox、Libvirt 等虚拟化平台。
- 示例: `vagrant up`(启动虚拟环境)
- 示例: `vagrant halt`(停止虚拟环境)
- **`nmap`**: 网络扫描工具,用于端口扫描、网络发现等。
- 示例: `nmap -A target.com`(扫描目标并启用高级检测)
- **`wireshark`**: 图形化网络协议分析器,用于捕获和分析网络数据包。
- 示例: 启动 Wireshark GUI 并选择要捕获的网络接口。
- **`tcpdump`**: 命令行网络流量捕获工具。
- 示例: `tcpdump -i eth0`(捕获 `eth0` 接口上的流量)
- **`john the ripper`**: 密码破解工具,用于弱密码检测。
- 示例: `john --wordlist=password.lst /etc/passwd`
- **`hydra`**: 网络登录破解工具,支持多种协议(如 SSH、FTP)。
- 示例: `hydra -l user -P passlist.txt ftp://192.168.1.1`(尝试破解 FTP 登录)
- **`metasploit`**: 渗透测试框架,用于漏洞利用和安全测试。
- 示例: `msfconsole`(启动 Metasploit 控制台)
- **`fail2ban`**: 防止暴力破解攻击的工具,监控日志并动态设置防火墙规则。
- 示例: `fail2ban-client status`(查看 Fail2Ban 状态)
- **`valgrind`**: 内存调试工具,检测内存泄漏和错误。
- 示例: `valgrind --leak-check=yes ./program`(检查 `program` 的内存泄漏)
- **`gdb`**: GNU 调试器,用于调试 C/C++ 程序。
- 示例: `gdb ./program`(调试 `program` 可执行文件)
- **`strace`**: 跟踪系统调用和信号,用于调试进程行为。
- 示例: `strace -p PID`(跟踪进程 `PID` 的系统调用)
- **`ltrace`**: 跟踪动态库调用,用于分析程序对库函数的调用。
- 示例: `ltrace ./program`(跟踪 `program` 的库函数调用)
- **`pstack`**: 打印进程的栈轨迹,用于调试。
- 示例: `pstack PID`(显示 `PID` 进程的栈轨迹)
- **`perf`**: Linux 性能分析工具,用于捕获硬件和软件性能事件。
- 示例: `perf stat ls`(统计 `ls` 命令的性能事件)
- 示例: `perf record -a`(记录整个系统的性能事件)
- **`sar`**: 系统活动报告工具,监控 CPU、内存、I/O、网络等性能指标。
- 示例: `sar -u 1 5`(每秒报告一次 CPU 使用率,共 5 次)
- **`vmstat`**: 报告虚拟内存、进程、CPU 活动等性能指标。
- 示例: `vmstat 5`(每 5 秒报告一次系统性能)
- **`iostat`**: 显示 CPU 和块设备的 I/O 使用情况。
- 示例: `iostat -x`(显示详细的 I/O 统计信息)
- **`iotop`**: 显示实时磁盘 I/O 使用情况,类似 `top`,但专注于 I/O。
- 示例: `sudo iotop`
- **`powertop`**: 电源管理工具,帮助优化笔记本电池使用时间。
- 示例: `sudo powertop`
- **`iptables`**: 管理 Linux 内核的网络包过滤规则,用于 NAT、端口转发等。
- 示例: `iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE`(启用源地址伪装)
- **`ip`**: 用于配置和显示网络接口、路由表、隧道等。
- 示例: `ip link add name br0 type bridge`(创建网桥)
- 示例: `ip addr add 192.168.1.100/24 dev eth0`(配置 IP 地址)
- **`bridge-utils`**: 用于创建和管理网络桥接。
- 示例: `brctl addbr br0`(创建网桥 `br0`)
- **`veth`**: 虚拟以太网接口,用于连接网络命名空间和网桥。
- 示例: `ip link add veth0 type veth peer name veth1`(创建一对 veth 接口)
. **进阶调试与系统分析**
- **`ftrace`**: Linux 内核跟踪工具,用于跟踪内核函数调用。
- 示例: `echo function > /sys/kernel/debug/tracing/current_tracer`(启用函数跟踪)
- 示例: `cat /sys/kernel/debug/tracing/trace`(查看跟踪结果)
- **`bpftrace`**: 动态追踪工具,基于 eBPF 技术,用于监控和分析系统性能。
- 示例: `bpftrace -e 'tracepoint:syscalls:sys_enter_open { printf("open() called\n"); }'`
- **`kexec`**: 在不重启硬件的情况下加载新内核,用于快速系统重启。
- 示例: `kexec -l /boot/vmlinuz --initrd=/boot/initrd.img --reuse-cmdline`
- **`git`**: 版本控制系统,用于代码管理和协作。
- 示例: `git clone https://github.com/example/repo.git`(克隆远程仓库)
- 示例: `git branch`(显示所有分支)
- **`make`**: 构建自动化工具,用于编译和链接程序。
- 示例: `make`(根据 Makefile 构建项目)
- **`cmake`**: 构建自动化工具,适用于跨平台项目。
- 示例: `cmake .`(生成构建文件)
- **`docker`**: 容器管理工具,用于构建、管理和分发容器化应用。
- 示例: `docker run -it ubuntu`(运行一个 Ubuntu 容器)
- 示例: `docker-compose up`(启动基于 docker-compose 的服务)
5 Cannot find a valid baseurl for repo: base/7/x86_64
vi /etc/yum.repos.d/CentOS-Base.repo
5.1 替换
[base]
name=CentOS-$releasever - Base - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
[updates]
name=CentOS-$releasever - Updates - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
[extras]
name=CentOS-$releasever - Extras - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
[centosplus]
name=CentOS-$releasever - Plus - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
5.2 清除并重建缓存
sudo yum clean all
sudo yum makecache
sudo yum update