常用命令
硬件相关
一:查看 CPU 信息
> more /proc/cpuinfo | grep "model name"
model name : Intel(R) Xeon(R) CPU X3220 @ 2.40GHz
model name : Intel(R) Xeon(R) CPU X3220 @ 2.40GHz
model name : Intel(R) Xeon(R) CPU X3220 @ 2.40GHz
model name : Intel(R) Xeon(R) CPU X3220 @ 2.40GHz
> grep "model name" /proc/cpuinfo
model name : Intel(R) Xeon(R) CPU X3220 @ 2.40GHz
model name : Intel(R) Xeon(R) CPU X3220 @ 2.40GHz
model name : Intel(R) Xeon(R) CPU X3220 @ 2.40GHz
model name : Intel(R) Xeon(R) CPU X3220 @ 2.40GHz
> grep "model name" /proc/cpuinfo | cut -f2 -d:
Intel(R) Xeon(R) CPU X3220 @ 2.40GHz
Intel(R) Xeon(R) CPU X3220 @ 2.40GHz
Intel(R) Xeon(R) CPU X3220 @ 2.40GHz
Intel(R) Xeon(R) CPU X3220 @ 2.40GHz
二:查看内存
> grep MemTotal /proc/meminfo
MemTotal: 3706476 kB
> free -m
total used free shared buff/cache available
Mem: 3619 3384 108 9 127 34
Swap: 3839 3236 603
> free -m |grep "Mem" | awk '{print $2}'
3619
> grep MemTotal /proc/meminfo | cut -f2 -d:
3706476 kB
free -h total used free shared buff/cache available Mem: 3.5G 3.3G 106M 9.6M 124M 30M Swap: 3.7G 3.2G 607M
</details>
<details>
<summary>三:查看 **CPU** 位数(32 or 64)</summary>
```powershell
> getconf LONG_BIT
32
四:查看 Linux 版本
> more /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
> more /etc/issue
\S
Kernel \r on an \m
> more /proc/version
Linux version 3.10.0-1160.108.1.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) ) #1 SMP Thu Jan 25 16:17:31 UTC 2024
查看系统版本
> cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"
五:查看内核版本
> uname -r
2.6.18-92.1.18.el5.028stab060.2PAE
> uname -a
Linux srv.eddiechen.cn 2.6.18-92.1.18.el5.028stab060.2PAE #1 SMP Tue Jan 13 12:31:30 MSK 2009 i686 i686 i386 GNU/Linux
六:查看时区
查看时区
> date -R
Wed, 25 Feb 2009 02:20:50 +0000
配置时区
> mv /etc/localtime /etc/localtime.save
> cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
> date -R
Wed, 25 Feb 2009 10:24:26 +0800
七:主机名
> hostname
srv.eddiechen.cn
八:查看selinux情况
> sestatus
SELinux status: disabled
九:网络
ip 地址
> ifconfig | grep 'inet addr:' | grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}'
207.154.202.216
网关
> cat /etc/sysconfig/network
NETWORKING="yes"
GATEWAY="192.0.2.1"
HOSTNAME="srv.eddiechen.cn"
dns
> cat /etc/resolv.conf
nameserver 208.74.168.131
nameserver 208.74.168.132
nameserver 4.2.2.1
十:已经安装的软件包
> rpm -qa | wc -l
197
> yum list installed | wc -l
198
十一:磁盘和分区
查看磁盘剩余空间
> df -h
Filesystem Size Used Avail Use % Mounted on
/dev/simfs 10G 353M 9.7G 4% /
查看当前目录下文件大小
> du -sh
2.8G .
查看指定目录下文件大小
> du /etc -sh
38M /etc
查看当前目录下文件大小,并按大小排序
> du -sh * | sort -hr
1.9G dockfiles
338M dotnet
336M temp
118M dotnet-sdk-3.1.426-linux-x64.tar.gz
20M nginx-1.24.0
1.1M nginx-1.24.0.tar.gz
4.0K dotnet-sdk.sh
4.0K anaconda-ks.cfg
查看当前目录下文件大小,并按大小排序,并输出文件名
> du -sh * | sort -hr | awk '{print $2}'
dockfiles
dotnet
temp
dotnet-sdk-3.1.426-linux-x64.tar.gz
nginx-1.24.0
nginx-1.24.0.tar.gz
dotnet-sdk.sh
anaconda-ks.cfg
系统相关
一些命令
- 执行.sh 权限不够
> chmod +x *.sh
# 或者
> chmod 755 *.sh
# +x 等价于 775
- 查看程序进程
> ps -aux | grep redis
- 在前 1000 行中查找 包含
getMethodList和f17fbc0a-8039-494f-b322的数据
# 在前1000行中查找对应的字符串
> head -n 10000 /var/log/www/api.out.log | grep -E "getMethodList.*f17fbc0a-8039-494f-b322" -n
# 在文件中搜索对应的字符串
> grep -E '订单.*23' /var/log/www/api.out.log
- 按时间查找并拷贝
# 查找创建时间在 2024-01-01 14:00:00 之后的文件并复制
> find /srv/www/api/ -type f -newermt '2024-01-01 14:00:00' -exec cp '{}' /data/bak/api \;
# 查找创建时间在 2024-01-01 14点至 2024-01-01 15:00:00 之间的文件并复制
#find /srv/www/api/ -type f -newermt '2024-01-01 14:00:00' ! -newermt '2024-01-01 15:00:00' -exec cp -rp '{}' /data/bak/api \;
> find /srv/www/api/ -type f -newermt '2024-01-01 14:00:00' -and ! -newermt '2024-01-01 15:00:00' -exec cp '{}' /data/bak/api \;
- 按时间删除
# 查找创建时间在 2024-01-01 14:00:00 之前的文件压缩为 2023.tar.gz
> find . -type f ! -newermt "2024-01-01 14:00:00" -print0 | tar --null -czvf ../2023.tar.gz --files-from -
# 查找创建时间在 2024-01-01 到 2024-02-01 之间的文件压缩 为 202401.tar.gz
> find . -type f -newermt "2024-01-01" ! -newermt "2024-02-01" -print0 | tar --null -czvf ../202401.tar.gz --files-from -
# 查找创建时间在 2024-01-01 14:00:00 之前的文件并删除
> find /srv/www/api/ -type f ! -newermt '2024-01-01 14:00:00' -exec rm -rf '{}' \;
# 查找创建时间超过 365 天的文件并删除
> find /srv/www/api/ -type f -mtime +365 -exec rm -rf '{}' \;
- 查看文件大小
> du -sh /data/www/api/
- 查看文件大小并排序
> du -sh /data/www/api/* | sort -hr
- 跨服务器拷贝
# 复制本机 /srv/www/web 目录下的所有文件到 192.168.1.124:/data/www/web 的目录下
> scp -rp /srv/www/web/* root@192.168.1.124:/data/www/web
# 查找创建时间在 2024-01-01 14:00:00 之后的文件并复制
> find /srv/www/api/ -type f -newermt '2024-01-01 14:00:00' -exec scp -rp '{}' root@192.168.1.124:/data/www/api \;
# 复制并跳过已存在的文件
> rsync -avz --ignore-existing /srv/www/Api/* root@192.168.1.124:/data/www/api