命令不用就忘记,大脑🧠短路,特此记录 持续更新...

由于centos7后开始收费,替代centos发行版:

centos stream
AlmaLinux
Rocky Linux
Springdale Linux
Oracle Linux

以下语雀笔记:

htop监视系统资源的交互式命令行
apt-get install htop	#Debian/Ubantu
dnf install htop -y 	#centos

交互操作:

•使用方向键上下滚动以查看不同的进程。

•F1:帮助菜单。

•F2:打开设置界面,可以自定义显示选项。

•F3:搜索进程(按名称)。

•F4:按进程名称进行过滤。

•F5:切换到树状视图,显示父子进程关系。

•F6:更改排序方式(如按 CPU、内存、PID 等)。

•F9:终止一个选中的进程,类似于 kill 命令。

htop 自身也会消耗少量系统资源,尤其在资源极为紧张的情况下,在生产环境中使用时应谨慎

dnf与yum关系
DNF 的主要特性包括:
1. 改进的依赖解析:比 YUM 更高效,减少了冲突和复杂依赖问题。
2. 更快的性能:使用 C 和 Python 编写,提升了速度。
3. 清晰的 API:为开发者提供了更简单的编程接口。
4. 更好的内存管理:在处理大规模包时表现更好。
## 推荐使用dnf命令代替yum
dnf常用命令
dnf update
dnf upgrade
dnf install package_name					#安装指定软件包
dnf remove package_name						#卸载指定软件包
dnf info package_name							#查看包信息
dnf list installed								#查询已安装的包
dnf list installed package_name		#检查指定包是否已经安装
dnf clean all											#清理缓存
查看rpm安装的软件
rpm -qa	#查看全部
rpm -q name.rpm #查看是否安装了指定的rpm包
直接安装rpm包
rpm -i name.rpm
更新 rpm 包
rpm -Uvh 包文件名.rpm

• -U:升级或安装指定的 RPM 包。

• -v:显示详细的信息。

• -h:显示进度条。

卸载rpm包
rpm -e name.rpm
查看jar文件内容
jar tf example.jar
jar tf example.jar com/example #列出example.jar中 com/example 目录下的所有文件和子目录
查看系统
查看CPU:cat /proc/cpuinfo | grep 'model name' |uniq
查看内存:cat /proc/meminfo
(https://blog.csdn.net/qq_36154886/article/details/108994911)


查看硬盘:smartctl /dev/sda -a
                  smartctl -a -d megaraid,0 /dev/sda
查看操作系统:cat /etc/redhat-release

开机启动:cat /etc/rc.local

查看磁盘:lsblk(可查看挂载情况)

vim /etc/pam.d/login

yum install sysstat -y
yum install -y smartmontools

查看目录下有多少个文件及文件夹需在终端输入:
ls | wc -w
查找文件中是否包含指定字符
grep -rn "特定字符串" ./

说明:
-r  :  递归查找
-n :  显示行号
-R : 查找所有文件包含子目录
-i  : 忽略大小写
find ./ -name "*.*" | xargs grep "Hello"
或者
find . | xargs grep -ri "Hello" -l  #-l 表示只显示文件名
find / -type f -name "*.txt" | xargs grep "Hello"
查询运行程序目录
ps -ef|grep {进程名称}
ll	/proc/{进程号}/cwd
HISTSIZE参数设置,history命令显示历史命令条数:

/etc/profile下查找参数HISTSIZE=1000(默认1000)

Linux更改时间:
$ date -s                  # 设置当前时间,只有root权限才能设置,其他只能查看 
$ date -s 20120523         # 设置成20120523,这样会把具体时间设置成空00:00:00 
$ date -s 01:01:01         # 设置具体时间,不会对日期做更改 
$ date -s "01:01:01 2012-05-23"         # 这样可以设置全部时间 
$ date -s "01:01:01 20120523"           # 这样可以设置全部时间 
$ date -s "2012-05-23 01:01:01"         # 这样可以设置全部时间 
$ date -s "20120523 01:01:01"           # 这样可以设置全部时间
less命令

交互指令

功能

/字符串

向下搜索“字符串”的功能。

?字符串

向上搜索“字符串”的功能。

n

重复*前一个搜索(与 / 成 ? 有关)。

N

反向重复前一个搜索(与 / 或 ? 有关)。

b

向上移动一页。

d

向下移动半页。

h 或 H

显示帮助界面。

q 或 Q

退出 less 命令。

y

向上移动一行。

空格键

向下移动一页。

回车键

向下移动一行。

【PgDn】键

向下移动一页。

【PgUp】键

向上移动一页。

Ctrl+f

向下移动一页。

Ctrl+b

向上移动一页。

Ctrl+d

向下移动一页。

Ctrl+u

向上移动半页。

j

向下移动一行。

k

向上移动一行。

G

移动至最后一行。

g

移动到第一行。

ZZ

退出 less 命令。

v

使用配置的编辑器编辑当前文件。

[

移动到本文档的上一个节点。

]

移动到本文档的下一个节点。

p

移动到同级的上一个节点。

u

向上移动半页。

netstat命令常用参数:
-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态
-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。
yum报错不能用
备份yum仓库
mkdir backup && mv CentOS-Linux-*.repo backup

下载阿里yum源仓库:如果wget不能用就用curl,下列命令二选一
wget -O /etc/yum.repos.d/CentOS-Linux-Base-ali.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
curl -o /etc/yum.repos.d/CentOS-Linux-Base-ali.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo

直接尝试yum安装
yum install -y ***

服务器中发送POST请求:
curl -X POST http://10.**/uri -d "参数"

ex: curl -d "platform=MCS&type=manual&subPlatform=120云服务&content=【广安120急救中心】测试短信服务切换&phones=18189871938" -X POST http://121.40.90.136:7070/SMS/interface/batchSendList

Linux中文乱码:

常用字符集:

中文:LANG="zh_CN.UTF-8"

英文:LANG="en_US.UTF-8"

或:LANG=C

查看字符集:

locale

查看系统当前字符集:

echo $LANG

查看系统是否安装了中文字符集:

locale -a |grep zh

修改字符集:

export LANG="zh_CN.UTF-8"   zh_TW.utf8
echo "export LANG="zh_CN.UTF-8" >> /etc/profile
source /etc/profile

Linux 设置代理
export http_proxy=ip地址:端口
export https_proxy=ip地址:端口
unset http_proxy
unset https_proxy
cd /etc/profile
export http_proxy=ip地址:端口
export https_proxy=ip地址:端口

source /etc/profile

查看指定进程所在目录:
ps -ef|grep 进程名
ll /proc/进程ID

cwd符号链接的是进程运行目录;

exe符号连接就是执行程序的绝对路径;

cmdline就是程序运行时输入的命令行命令;

environ记录了进程运行时的环境变量;

fd目录下是进程打开或使用的文件的符号连接

Linux网卡解析:
TYPE=Ethernet                               网卡类型:以太网
PROXY_METHOD=none                           代理方式:关闭状态
BROWSER_ONLY=no                             只是浏览器(yes|no)
BOOTPROTO=static                            设置网卡获得ip地址的方式(static|dhcp|none|bootp)
DEFROUTE=yes                                设置为默认路由(yes|no)
IPV4_FAILURE_FATAL=no                       是否开启IPV4致命错误检测(yes|no)
IPV6INIT=yes                                IPV6是否自动初始化
IPV6_AUTOCONF=yes                           IPV6是否自动配置
IPV6_DEFROUTE=yes                           IPV6是否可以为默认路由
IPV6_FAILURE_FATAL=no                       是不开启IPV6致命错误检测
IPV6_ADDR_GEN_MODE=stable-privacy           IPV6地址生成模型
NAME=eth0                                   网卡物理设备名称
UUID=6e89ea13-f919-4096-ad67-cfc24a79a7e7   UUID识别码
DEVICE=eth0                                 网卡设备名称
ONBOOT=no                                   开机自启(yes|no)
IPADDR=192.168.103.203                      IP地址
NETNASK=255.255.255.0                       子网掩码,也可使用掩码长度表示(PREFIX=24)
GATEWAY=192.168.103.1                       网关
DNS1=114.114.114.114                        首选DNS
DNS2=8.8.8.8                                备用DNS
查看已安装包
rpm -qa 包名
配置JDK
JAVA_HOME=/home/jdk/jdk1.8.0_191
CLASSPATH=%JAVA_HOME%/lib:%JAVA_HOME%/jre/lib
PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
export PATH CLASSPATH JAVA_HOME
升级glibc遇到的坑
LD_PRELOAD=/lib64/libc-2.12.so ln -s /lib64/libc-2.12.so /lib64/libc.so.6    // libc-2.12.so 此项是系统升级前的版本

升级过程见:https://cnodejs.org/topic/56dc21f1502596633dc2c3dc

解决升级后中文乱码见:https://blog.csdn.net/guitar___/article/details/77651983

cd:更改目录

cd /path/to/directory   # 切换到指定目录
cd ~                    # 切换到用户主目录
cd ..                   # 返回上一级目录

pwd:显示当前工作目录

pwd   # 显示当前目录的绝对路径

cp:复制文件或目录

cp file1 file2   # 将 file1 复制为 file2
cp -r dir1 dir2  # 递归复制目录 dir1 到 dir2

mv:移动或重命名文件或目录

mv file1 file2   # 将 file1 重命名为 file2 或移动到新路径
mv /path/file1 /new/path/   # 将 file1 移动到 /new/path/

mkdir:创建目录

mkdir new_directory   # 创建新目录
mkdir -p /path/to/directory   # 递归创建父目录

rmdir:删除空目录

rmdir empty_directory   # 删除空目录

touch:创建空文件或更新文件的时间戳

touch file   # 创建一个新文件或更新现有文件的访问时间
文件内容查看与编辑

cat:连接并显示文件内容。

cat file   # 显示文件内容

moreless:分页查看文件内容。

more file   # 按页显示文件内容
less file   # 类似 more,但可以向前翻页

headtail:查看文件的开头和结尾部分。

head file   # 查看文件的前 10 行
tail file   # 查看文件的最后 10 行
tail -f file   # 实时显示文件的末尾,常用于查看日志文件

nanovimvi:文本编辑器。

nano file   # 使用 nano 编辑文件(简易编辑器)
vim file    # 使用 vim 编辑文件(高级编辑器)
vi file     # 使用 vi 编辑文件

chmod:更改文件或目录的权限。

chmod 755 file   # 设置文件权限为 rwxr-xr-x
chmod u+x file   # 给文件的拥有者增加执行权限

chown:更改文件或目录的所有者。

chown user file   # 将文件的所有者改为指定用户
chown user:group file   # 同时更改文件的所有者和组

chgrp:更改文件或目录的组。

chgrp group file   # 改变文件的所属组
系统管理

ps:显示当前运行的进程。

ps         # 显示当前用户的进程
ps aux     # 显示所有进程的详细信息

tophtop:实时显示系统资源和进程的使用情况。

top        # 实时显示进程信息,系统资源消耗
htop       # 更直观的进程监控工具(需要安装)

kill:终止进程。

kill PID   # 发送信号终止指定进程(通过进程 ID)
kill -9 PID   # 强制终止进程

df:查看文件系统的磁盘空间使用情况。

df -h   # 显示磁盘使用情况(人类可读格式)
du:查看文件或目录的磁盘使用情况。
du -h file_or_directory   # 显示文件或目录的磁盘使用大小
du -sh *                  # 显示当前目录下所有文件和目录的总大小

free:查看内存使用情况。

free -h   # 显示系统内存和交换分区的使用情况(人类可读格式)

uname:显示系统信息。

uname -a   # 显示操作系统的详细信息

uptime:显示系统运行时间和负载信息。

uptime   # 显示系统的运行时间和负载
网络相关

ifconfig:查看和配置网络接口(较旧)。

ifconfig   # 显示网络接口信息

ip:查看和配置网络接口(替代 ifconfig)。

ip addr   # 显示网络接口的 IP 地址信息

ping:测试网络连通性。

ping example.com   # 测试与某个地址的连通性

netstat:显示网络连接、路由表、接口统计信息等(现在推荐使用 ss)。

netstat -an   # 显示所有网络连接

ss:显示网络连接信息,替代 netstat。

ss -tuln   # 显示监听的 TCP 和 UDP 端口

curl:命令行工具,用于发送 HTTP 请求并查看返回结果。

curl http://example.com   # 获取网页内容

wget:命令行下载工具。

wget http://example.com/file.zip   # 下载文件
压缩与解压缩

tar:打包和解压缩文件。

tar -czvf archive.tar.gz file_or_directory   # 将文件或目录打包并压缩为 tar.gz 格式
tar -xzvf archive.tar.gz   # 解压 tar.gz 文件

zipunzip:压缩和解压缩 ZIP 文件。

zip -r archive.zip directory   # 压缩目录为 zip 文件
unzip archive.zip   # 解压 zip 文件
查找与搜索

find:在文件系统中查找文件或目录。

find /path -name "filename"   # 查找指定目录下名为 "filename" 的文件

grep:在文件中搜索匹配的字符串。

grep "pattern" file   # 在文件中搜索匹配 "pattern" 的行
grep -r "pattern" directory   # 递归搜索目录下的文件内容

locate:根据数据库快速查找文件。

locate filename   # 查找文件名中包含 "filename" 的文件
用户与权限管理

useradduserdel:添加和删除用户。

sudo useradd username   # 添加新用户
sudo userdel username   # 删除用户

passwd:更改用户密码。

sudo passwd username   # 为用户设置密码
历史记录与快捷操作

history:查看命令历史记录。

history   # 显示所有执行过的命令

快捷键:

Ctrl + C:终止当前运行的命令。

Ctrl + Z:将当前进程挂起到后台。

Ctrl + D:退出终端。

Tab:自动补全命令或文件名。