Linux相关常用
命令不用就忘记,大脑🧠短路,特此记录 持续更新...
由于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命令
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 # 显示文件内容
more
和 less
:分页查看文件内容。
more file # 按页显示文件内容
less file # 类似 more,但可以向前翻页
head
和 tail
:查看文件的开头和结尾部分。
head file # 查看文件的前 10 行
tail file # 查看文件的最后 10 行
tail -f file # 实时显示文件的末尾,常用于查看日志文件
nano
、vim
和 vi
:文本编辑器。
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 # 显示所有进程的详细信息
top
和 htop
:实时显示系统资源和进程的使用情况。
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 文件
zip
和 unzip
:压缩和解压缩 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" 的文件
用户与权限管理
useradd
和 userdel
:添加和删除用户。
sudo useradd username # 添加新用户
sudo userdel username # 删除用户
passwd
:更改用户密码。
sudo passwd username # 为用户设置密码
历史记录与快捷操作
history
:查看命令历史记录。
history # 显示所有执行过的命令
快捷键:
Ctrl + C:终止当前运行的命令。
Ctrl + Z:将当前进程挂起到后台。
Ctrl + D:退出终端。
Tab:自动补全命令或文件名。