常用命令
基础命令
查看当前工作目录
pwd
用户主目录
- 进入用户主目录
cd ~
- 查看用户主目录
ls ~
查看文件
cat /data/test.conf
修改或者创建文件
vi /data/test.conf
注:详细的vi命令可参考网络上的教程
快速创建一个文件
echo 'test' > test.conf
删除文件或文件夹
rm -rf /data/test
注:-f参数标识无提示的删除,操作需谨慎;-r表示循环递归删除所有文件及文件夹
查看文件的详细信息
- 当前目录
ls -l
- 指定目录
ls /data -l
查看文件大小
- 当前目录
du -h --max-depth=1
- 指定目录
du -h --max-depth=1 /data
或
du -sh /data/*
复制文件
- 拷贝到某个文件夹下
cp -rf source.conf /data
- 拷贝到某个文件下并重命名
cp source.conf source_bak.conf
- 将某个目录下的所有文件拷贝到另一个文件夹中
cp -rf /data/* /bak
- 拷贝多个文件
cp test.conf test1.conf /target
移动文件
- 重命名文件
mv source.conf rename.conf
注:mv命令大体和cp命令雷同,这里不再详述
有进度信息的拷贝目录/文件
rsync -avh --progress <sourceDirectory> <destinationDirectory>
系统信息
查看系统版本相关命令
uname -a # 查看系统,主机名,内核版本,系统架构等命令
top # 总览系统全面信息命令,Ctrl + C 退出界面
hostname # 查看服务器主机名命令
cat /etc/issue # 查看 Ubuntu Debian 系发行版版本命令
cat /etc/redhat-release # 查看 CentOS RedHat 系发行版版本命令
cat /etc/os-release # 查看通用 Linux 发行版版本命令
查看CPU相关命令
lscpu #查看系统cpu信息
cat /proc/cpuinfo # 查看 CPU 核心数,架构,名字,频率,缓存,指令集等命令
grep name /proc/cpuinfo # 查看 CPU 名字命令
grep cores /proc/cpuinfo # 查看 CPU 核心数命令
grep MHz /proc/cpuinfo # 查看 CPU 频率命令
查看内存相关命令
cat /proc/meminfo # 查看内存硬件相关信息命令
free -m # 查看内存总量,使用量,swap 信息等命令
swapon -s # 查看 swap 交换分区的路径,大小命令
查看硬盘分区相关系统命令
df -h # 查看硬盘分区以及占用情况命令
du -sh [指定路径] # 查看指定路径文件或目录大小命令
fdisk -l # 查看硬盘大小,数量,类型命令
注:大写E可切换统计类单位;小写e可切换列表单位
df -h | head -n11
- 查询Linux设备是固态磁盘还是机械磁盘方法
lsblk -d -o name,rota
NAME ROTA
sda 0 #sda是固态硬盘(SDD)
因为SSD是非转动盘,如果返回结果为0说明是SSD硬盘,如果返回结果为1,说明是转动盘HDD类的硬盘。
查看系统时间负载相关情况命令
uptime # 查看开机时间,系统用户数,平均负载命令
cat /proc/loadavg # 查看系统负载命令
w # 查看系统时间,负载,登入用户,用户使用资源情况命令
top # 总览系统全面信息命令,Ctrl + C 退出界面
查看网络相关情况命令
ifconfig # 查看网卡及本机 ip 情况命令(需要系统安装了 net-tools 工具)
ip addr show # 功能同上,新的 Linux 发行版已经逐渐用 ip 命令替代 ifconfig 相关功能命令
iptables -L # 查看防火墙等相关情况命令
netstat -s # 查看系统网络连接情况统计信息命令
netstat -tunlp # 查看服务器端口监听使用情况命令
netstat -auntp # 查看已经建立连接的端口情况命令
lsof -i:[端口] # 查看指定端口占用情况命令
route -n # 查看路由表命令
查看进程相关命令
ps -aux # 列出所有进程以及相关信息命令
kill -9 [进程PID] # 从上命令取到相关进程的PID后,高权限kill杀死进程命令命令
top # 总览系统全面信息命令,Ctrl + C 退出界面
netstat -tunlp|grep 8443
ps -ef |grep 8443
查看用户相关命令
w # 查看系统时间,负载,登入用户,用户使用资源情况命令
cut -d: -f1 /etc/passwd # 查看系统所有用户命令
last # 查看系统前几次登陆情况
crontab -l # 查看用户计划任务情况命令
crontab -e # 编辑计划任务命令
查看开机启动相关命令
chkconfig # 查看开机启动服务命令
ls /etc/init.d # 查看开机启动配置文件命令
cat /etc/rc.local # 查看 rc 启动文件
软件安装
查找需要安装的包
yum list *nginx*
查看已安装的包
yum list installed
安装软件包
yum install docker-ce-18.09.9
卸载
yum remove docker-ce-18.09.9
rpm安装(支持离线)
- 安装包并在安装过程中显示正在安装的文件信息及安装进度
rpm -ivh example.rpm ```
### rpm卸载
rpm -e example ```
常用运维命令
查看服务器之间的网络通信
ping 主机地址
如 :ping 10.10.10.52
telnet 主机地址 端口
如 :telnet 10.10.10.52 3306
查看服务器时间及同步更新
1. 查看系统时间
执行date命令可以查看当前系统的时间
2. 手动修改系统时间
(1)执行如下命令可以设置一个新的系统时间:
date -s "20230915 16:09:00"
(2)设置完后还要执行如下命令保存一下设置:
hwclock --systohc
(3)当然我们也可以将上面两个操作合二为一:
date -s "20200723 18:30:50"&&hwclock --systohc
3. 通过网络同步时间
安装时钟服务器NTP或使用现有的
top命令
Linux top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。
详细讲解:https://www.cnblogs.com/niuben/p/12017242.html
查看主机的DNS服务器
cat /etc/resolv.conf
查看主机的host
cat /etc/hosts
查看虚拟机Centos 7.9的MAC地址
打开Centos 7.9虚拟机。
登录到虚拟机的终端命令行界面。
在命令行中键入ifconfig
命令,按下回车键。
找到虚拟机的网络适配器,通常以 eth0 或 enp0s3 命名。
在网络适配器的信息中找到 HWaddr 或 ether,后面跟着的就是虚拟机的MAC地址。
例如,输出可能会类似于下面的内容:
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.10 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::250:56ff:feab:9cef prefixlen 64 scopeid 0x20<link>
ether 00:50:56:ab:9c:ef txqueuelen 1000 (Ethernet)
RX packets 1553 bytes 292909 (286.0 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1017 bytes 166866 (163.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
在这种情况下,MAC地址是 00:50:56🆎9c:ef。
tar 打包、压缩及解压缩
单文件或文件夹打包
tar -zcvf index.tar.gz index.html
此时的结果是将index.html 打包为tar并压缩为gz了,如果后缀名不加 .gz 则不压缩,只打包。
多文件或文件夹 混合打包
tar -zcvf index.tar.gz index.html css/ js/ images/
此时则将多个文件及文件夹打包到一个包里并压缩 , index.html css/ js/ images/ 打包并压缩为 index.tar.gz
如我们打包presto服务,我们需要去掉logs目录
tar -zcvf index.tar.gz --exclude=index/logs index
解压 index.tar.gz 到当前目录下
tar -zxvf xf1706.tar.gz
解压 index.tar.gz 到/usr/local目录下
tar -zxvf xf1706.tar.gz -C /usr/local
du:查询文件或文件夹的磁盘使用空间
du -h --max-depth=1 /data/app
find 查找
find /data/mysql/backup -type d -mtime +7 -exec rm -rf {} \\;
find /data/mysql/backup -type f -name "\*.tar.gz" -mtime +30 -exec rm -rf {} \\;
grep
全拼:Global search REgular expression and Print out the line.
从grep的全称中可以了解到,grep是一个可以利用”正则表达式”进行”全局搜索”的工具,grep会在文本文件中按照指定的正则进行全局搜索,并将搜索出的行打印出来。
grep的语法格式:
grep -option(参数) ‘word’(关键词) file(文本文件)
包含**的前后10行
grep -B 10 -A 10 '钉钉' log/bpm-api-status-2024-04-09.log
sed
使用 sed 或者 awk 命令来从 catalina.out.2024-04-09 文件中提取出 4 月 9 号 10 点到 12 点之间的日志。
sed -n ‘/2024-04-09 10:00:00/,/2024-04-09 12:00:00/p’ catalina.out.2024-04-09 > catalina_10_to_12.log
awk
防火墙
- 查看防火状态
#CentOS
systemctl status firewalld
#Ubuntu
sudo ufw status
- 暂时关闭防火墙
#CentOS
systemctl stop firewalld
#Ubuntu
sudo ufw stop
- 永久关闭防火墙
- #CentOS
systemctl disable firewalld
#Ubuntu
stop关闭后再用disable(有效)
systemctl stop ufw
sudo ufw disable
- 设置自启动防火墙
#CentOS
systemctl enable firewalld
#Ubuntu
先开启防火墙
sudo start ufw
然后开机自启防火墙
systemctl ufw enable
开放8080端口
firewall-cmd --permanent --add-port=8080/tcp
添加一个新的防火墙规则,允许指定 IP 地址访问指定端口:
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="指定IP地址" port port="指定端口" protocol="tcp" accept'
检查已开放的端口
firewall-cmd --list-all
对于docker环境下调整防火墙策略后:
systemctl restart firewalld
systemctl daemon-reload
systemctl restart docker