快速入门-Linux常用命令汇总

奥黛丽·逐爱者
2025-06-23 / 0 评论 / 0 阅读 / 正在检测是否收录...

linux服务器系统信息

# 显示系统的基本信息
uname -a
# 查看内核版本    
uname -r                   

# 显示有关发行版的信息-操作系统的详细信息
lsb_release -a
# liunx 版本
cat /etc/issue
cat /etc/os-release   
more /etc/redhat-release
hostnamectl
cat /proc/version

# cpu 信息
cpu
more /proc/cpuinfo                      
moer /proc/cpuinfo | grep "model name"
# cpu 位数
getconf LONG_BIT

# 内存信息
grep memtotal /proc/meminfo
free -m

# 查看时区
date -R              

#  已经安装的软件包
rpm -qa | wc -l
yum list installed | wc -l

# 命令帮助信息查询
man

# 显示在线登入用户
who

# 显示用户自己的身份
whoami

# 显示当前系统中耗费资源最多的进程
top

# 显示瞬间的进程状态  
ps

# 显示文件系统磁盘空间的使用情况
df

# 显示指定的文件(目录) 已使用的磁盘空间总量
du

# 显示当前内存和交换空间的使用情况
free

# 显示网络接口信息
ifconfig
cat /etc/sysconfig/network

# 测试网络的连通性
ping

# 显示网络的状态信息
netstat  
    
# 查看软件安装目录
whereis

# 查看软件的运行路径
which    

# 域名解析
nslookup 

# 清屏
clear

# 杀死进程
kill

# 服务器关机
shutdown -h now 
shutdown -r now


文件夹结构说明

# 在 Linux 系统中一切都属于文件(软件,硬件,文档都是)
# 常用目录:
  目录名称         说明
  /          Linux系统根目录

  /bin      系统启动时需要的执行文件(二进制)

  /boot           存放的是启动 linux 时使用的一些核心文件

  /dev      设备文件目录(linux 的外部设备)

  /etc      操作系统的配置文件目录(防火墙,启动项)

  /home        用户信息存放的目录,用户的默认工作目录

  /lib            Library 库文件存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件

  /lost+found     系统非法关机后,存放的一些文件

  /media          自动识别的一些设备,U盘,光驱等

  /mnt            临时挂载别的文件系统

  /opt            opt 是 optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录

  /proc           proc 是 Processes(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器

    /root           该目录为系统管理员,也称作超级权限者的用户主目录

    /sbin           Superuser Binaries (超级用户的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序

  /usr      usr 是 unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录

  /usr/src        内核源代码默认的放置目录

  /var      包含在正常操作中被改变的文件:假脱机文件,记录文件,枷锁文件,临时文件和页格式文件等。
  (日志文件)


Linux 目录与文件操作命令

# 查看当前所在目录
pwd    

################################
cd     打开目录
cd.     打开下级目录
cd..    打开上级目录

################################
ls -a    查看目录下的文件「隐藏的」
ll     以列的方式显示目录下的文件列表

################################
mkdir      文件名  创建文件目录

rm -rf   删除文件或目录
rm -rf /   绝对路径
rm -ri   删除文件前询问用户

################################
touch      文件名 创建空白文件
echo     生成一个带内容的文件

################################
cp    复制文件命令
cp -rf / 复制的文件绝对路径 / 复制到的绝对路径

mv    移动文件或修改文件名
mv / 路径旧名称 / 路径新名称
mv / 移动的文件绝对路径 / 移动到的绝对路径
clear   清空屏幕

         

################################
# 查找文件
-find -name     文件名

################################
# 显示文本文件的内容
[cat, tac, more, tail] 

head      从文件开始显示文件内容

head -n    显示指定文件开始的n行数据。比如:head -3 shadow
      
cat        文件名称:查看所有内容

tail    从文件结尾显示文件内容

tail -f    动态加载某个文件的内容。比如:tail -f message: 用于监测查看日志
      
tail -n    查看某个文件结尾n行的内容


Linux 权限管理

# (用户/用户组)

 用户:  是指操作系统的实际操作者
 用户组:是具有相同特征的用户的集合体
 UID:  用户唯一标识
 GID:  用户分组唯一标识
 root用户:Linux 系统权限最高的用户

#######################################
# 切换到指定用户
su[用户名]    

# 查看当前登入用户
whoami     

# 查看当前用户所属分组
groups     

# 查看当前用户UID 和 GID
id        

# 添加用户
useradd[用户名]  

# 用户名   添加用户并且指定UID
-useradd -u[UID] 

#######################################
/etc/passwd 这个文件存放的是用户的信息
/etc/group  这个文件存放的是组的信息

# 修改用户密码
passwd[用户名]   

# 删除用户
userdel[用户名]  

# 修改用户登入名
usermod -|[新用户名][旧用户名]     

# 修改用户所属分组
usermod -g[新组名称][用户名]  

# 添加分组
groupadd[组名]    

# 添加分组并且指定GID
groupadd -g[组GID][组名] 

# 举例:groupadd -g 601 test1


Linux 用户赋权

# 描述:d rwx r-x r-x 2   root   root  4096 Sep 23 2011 etc

 -d   :   d表示的是目录而不是文件
 -rwx  :   拥有者具有读,写,执行的权力
 -r-x :   同组用户具有读,执行的权力,没有写权力
 -r-x  :   其他组用户具有读,执行的权力,没有写的权力

# 权限模式:
  u, g, o, a : 拥有着, 同组用户, 其他组用户, 所有人

  -, +, =    : 赋予, 删除, 设置

  r, w, x    : 读, 写, 执行权限

# 数字模式
# 使用3位10进制数表示权限操作
   r = 4
   w = 2
   x = 1

 r+w+x=7    r+x=5      w+x=3
 拥有着      同组用户    其他组用户

# 权限组合的数字表示:

 ---:0
 --x:1
 -w-:2
 -wx:3
 r--:4
 r-x:5
 rw-:6
 rwx:7

############################ chmod ##############################
# chmod(change mode)命令用于更改文件或目录的权限

chmod [选项] 模式 文件名

# 比如:
chmod u+x filename
chmod U+X,G+W filename
chmod g-w filename

# 设置权限为 rwxr-xr--:
chmod 754 filename

# -R:递归更改目录及其内容的权限
chmod -R 755 directoryname

   
############################ chown ##############################
# chown (change owner)命令用于改变文件的所有者和/或所属组。基本语法如下:

chown [选项] 用户:组 文件名

# -R:递归更改目录及其内容的所有者和组
chown -R newuser:newgroup filename


常用设置

防火墙firewalld和端口设置

# 防火墙 firewalld
systemctl start firewalld   开启
systemctl status firewalld  状态
systemctl stop firewalld    关闭
systemctl disable firewalld 禁止firewall开机启动

firewall-cmd --reload       重启防火墙

# 开放指定端口        
firewall-cmd --zone=public --add-port=80/tcp --permanent
# 移除指定端口   
firewall-cmd --zone=public --remove-port=2375/tcp --permanent

# 注:firewall依赖本机python版本,如果自己升级了python版本,需要修改firewall配置文件
# vim /usr/bin/firewall-cmd, 将#!/usr/bin/python -Es 改为 #!/usr/bin/python2.7 -Es
# vim /usr/sbin/firewalld, 将#!/usr/bin/python -Es 改为 #!/usr/bin/python2.7 -Es

端口

# 查看端口情况
netstat -tunlp

netstat -tunlp | grep 端口号
# netstat -ntulp | grep 80   //查看所有80端口使用情况·

进程

# 查看端口情况
ps -aux
ps -ef

# 查看特定进程
ps pid

监控类 IO,CPU,内存,磁盘


############## 查看总体情况 ##########
top
htop

# top 命令动态查看一个进程的内存使用,设置为delay 1s,默认是delay 3s
top -d 1 -p pid [,pid ...]

# pmap 命令静态查看一个进程的内存使用
# pmap命令可以显示一个或多个进程所使用的内存数量。你可以使用这个工具来了解服务器上的某个进程分配了多少内存,并以此来判断这是否是导致内存瓶颈的原因。要得到更加详细的信息,使用pmap -d选项。
pmap pid

################# 磁盘IO #################
iostat -xd

################# 网络IO #################
iftop -n

ifstat

dstat -nt

################# 磁盘容量 #################
df -h

################# 内存 #################
free -m


文件解压和压缩


#####################################################################
################################ 压缩 ################################
#####################################################################

# tar 是一个用于创建和处理归档文件的工具,通常与 gzip 或 bzip2 配合使用。

# 创建 .tar.gz 文件
# 压缩单个文件
tar -zcvf archive.tar.gz /path/to/file
# 压缩文件夹
tar -zcvf archive.tar.gz /path/to/directory

c:创建新的归档文件。
z:使用 gzip 压缩。
v:显示处理过程中的文件。
f:指定归档文件的名称。

# 创建 .tar.bz2 文件:
tar -cjvf archive.tar.bz2 /path/to/directory

j:使用 bzip2 压缩。

#####################################################################
################################ 解压 ################################
#####################################################################

# 解压 .tar.gz 文件
tar -zxvf archive.tar.gz

# 解压 .tar.bz2 文件
tar -xjvf archive.tar.bz2

#####################################################################
######################## gzip 和 gunzip #############################
#####################################################################

# 压缩文件
gzip filename

# 解压文件
gunzip filename.gz

gzip -d filename.gz


磁盘设置

# 查看磁盘总体情况
df -h

# 查看文件夹的空间占用情况
du -sh *
du -sh /path
# 排序
du -ah /path/to/directory | sort -rh

# 查看磁盘挂载情况
lsblk
lsblk -f
fdisk -l

# 普通卸载, 卸载/home/data对应挂载的磁盘
umount /home/data
# 强制卸载
umount -l /home/data

# 假设你已经在云服务提供商(如 AWS、Azure 等)控制台中增加了 /dev/sdb 磁盘的大小,现在你需要在系统中进行分区和文件系统的调整
# 分区磁盘 使用 fdisk 或 parted 工具来删除并重新创建分区
# 警告:使用这些工具时要非常小心,因为错误的操作可能会导致数据丢失

# https://www.ywbj.cc/?p=712
# https://blog.csdn.net/qq_39766779/article/details/140787071

# 检查物理卷(PV)使用情况
fdisk 
 m    获取帮助信息
 n    创建新分区
 选择分区类型p是主分区,e是扩展分区
 指定分区号(如果这是第一个分区,通常是 1)
  指定起始和结束的扇区或者以 +SIZEM 或 +SIZEG 指定分区大小(例如,+500M 表示500MB的分区)
  输入 w 写入更改并退出

# 1.启动 fdisk 工具
sudo fdisk /dev/nvme0n1

# 3. 使用 growpart 扩展分区
sudo growpart /dev/xvda 1

# 4. 分区调整后,扩展文件系统以使用新的磁盘空间

# 扩展 ext4 文件系统 
# 检查和修复文件系统(可选)
 sudo e2fsck -f /dev/xvda1
# 扩展文件系统
 sudo resize2fs /dev/xvda1

################################################################
##################### 不同的文件系统有不同的扩展命令 ################

# 对于 ext4, ext3, 或 ext2 文件系统,使用 resize2fs 命令
sudo resize2fs /dev/xvda1

# 对于 XFS 文件系统,使用 xfs_growfs 命令。需要注意的是,XFS 文件系统必须挂载才能扩展。
sudo xfs_growfs /mount/point

# 对于 Btrfs 文件系统,使用 btrfs filesystem resize 命令
sudo btrfs filesystem resize max /mount/point


网络相关

# 配置固定ip

### 在 CentOS 或 RHEL 系统中,网络接口配置通常存储在 /etc/sysconfig/network-scripts/ifcfg-<interface> 文件中
### 如果 ens160 是你的网络接口名称,配置该接口的文件路径为 /etc/sysconfig/network-scripts/ifcfg-ens160。

# 编辑配置文件

 sudo vi /etc/sysconfig/network-scripts/ifcfg-ens160

# 内容

 TYPE=Ethernet
 BOOTPROTO=static
 NAME=ens160
 DEVICE=ens160
 ONBOOT=yes
 IPADDR=192.168.179.137
 NETMASK=255.255.255.0
 GATEWAY=192.168.179.1
 DNS1=8.8.8.8
 DNS2=8.8.4.4

 配置项说明:
  TYPE: 网络接口的类型。Ethernet 表示这是一个有线网络接口。
  BOOTPROTO: 设置为 static 表示使用静态 IP 地址配置。如果你使用 DHCP,应该设置为 dhcp。
  NAME: 网络接口的名称(ens160)。
  DEVICE: 网络接口的设备名称(ens160)。
  ONBOOT: 是否在系统启动时启用此接口。设置为 yes 表示启动时启用该接口。
  IPADDR: 配置的静态 IP 地址(例如 192.168.179.137)。
  NETMASK: 子网掩码(通常是 255.255.255.0,如果是 /24 子网)。
  GATEWAY: 默认网关的 IP 地址(例如 192.168.179.1)。
  DNS1 和 DNS2: 配置 DNS 服务器地址(例如 Google 的公开 DNS 地址 8.8.8.8 和 8.8.4.4,你也可以使用其他 DNS 服务)。

# 重启网络服务
sudo systemctl restart network
sudo systemctl restart NetworkManager

# 验证网络配置
ip addr show ens160


软件安装

rpm、yum和apt是与Linux软件包管理系统相关的工具,它们在不同的Linux发行版中执行类似的功能,但有一些关键的区别。

rpm(Red Hat Package Manager): rpm 是 Red Hat 及其衍生发行版(如CentOS、Fedora等)使用的软件包管理工具。 主要功能: rpm 主要用于安装、升级、卸载和查询软件包。它管理的是单个软件包,而不涉及软件包之间的依赖关系。

yum: yum(Yellowdog Updater, Modified)是基于rpm的包管理工具,用于简化rpm的使用,并解决软件包之间的依赖关系。 主要功能: yum可以自动解决依赖关系,通过从指定的软件仓库中下载并安装软件包。它可以处理依赖关系、升级和卸载软件包,并且可以在本地缓存软件包以提高效率。

apt(Advanced Package Tool): apt 是用于 Debian 及其衍生发行版(如Ubuntu)的软件包管理工具。 主要功能: apt 提供了一组高级工具,用于管理 Debian 系统中的软件包。apt会自动解决依赖关系,通过从指定的软件仓库中下载并安装软件包,类似于yum的功能。apt也可以升级系统中的所有软件包。

支持发行版: rpm 主要用于 Red Hat 及其衍生发行版。 yum 是在rpm基础上的扩展,专门为 Red Hat 系统设计。 apt 主要用于 Debian 及其衍生发行版。

依赖解决: rpm 本身不解决依赖关系,而用户通常需要手动解决依赖问题。 yum 和 apt 都具备自动解决依赖关系的能力,使得安装和升级软件包更为方便。

软件仓库: rpm 操作的是本地的软件包文件,而不是通过软件仓库进行管理。 yum 和 apt 使用软件仓库,通过在线仓库管理软件包的安装、升级和卸载。 总体而言,这些工具为Linux系统提供了便捷的软件包管理方式,其中yum和apt更加高级和用户友好,尤其是在处理依赖关系方面。

包管理

# Ubuntu/Debian 系统

 sudo apt update

# CentOS/RHEL 系统

 sudo yum install epel-release 

安装方式

# 1.tar 解压安装

  -安装包格式 : tar , tar.gz , tar.bz
  -安装软件包 : tar -zxvf [包名]

# 2.rpm 直接安装

  -安装包格式 :rpm
  -安装软件包 :rpm -ivh 软件包路径
  -卸载软件包 :rpm -e 软件包全名

# 3. yum 在线安装

  -安装软件包 : yum -y install subversion
  -卸载软件包 : yum -y remove subversion


安装示例

安装JDK

# 更新软件包
sudo yum update

# 安装
sudo yum install java-1.8.0-openjdk
# sudo yum install java-1.8.0-openjdk-devel
# sudo yum install java-17-openjdk-devel

java -version

安装 Nginx

sudo yum update
sudo yum install nginx
sudo systemctl start nginx

安装 Apache-Tomcat

 下载地址: archive.apache.org

 步骤:
  1.下载tomcat

  2.解压安装包
   -tar -zxvf tomcat7.0.tar.gz -C /usr/build     【c 大写 ,后面加解压的路径 】

  3.ok

  4.启动在bin目录下
   -sh startup.sh

  5.开启端口号
   - 先关闭防火墙
   - 查看ip
   - 这时候就可以通过其他主机,通过访问ip地址和端口 就可以访问。 


Swap分区使用

# 1. 新建 swap 分区
sudo dd if=/dev/zero of=/var/swapfile bs=1M count=2048
sudo dd if=/dev/zero of=/var/swapfile bs=1G count=8
sudo fallocate -l 8G /var/swapfile

# 2. 授权文件
sudo chmod 600 /var/swapfile

# 3. 通过mkswap命令将上面新建出的文件做成swap分区
sudo mkswap /var/swapfile

# 4. 开启 swap
sudo swapon /var/swapfile

## 关闭 swap 
 sudo swapoff /var/swapfile   
## 注:若想永久修改,则编辑/etc/sysctl.conf文件
 echo "/var/swapfile swap swap defaults 0 0" >> /etc/fstab

# 5. 查看分区
swapon -s
swapon --show

#######
# 设置swappiness值:swappiness是一个Linux内核参数,它控制系统在内存不足时,
# 倾向于使用swap而不是杀死进程。你可以使用sysctl命令调整swappiness值。
# 例如,将swappiness值设置为60

sudo sysctl vm.swappiness=60

# 释放服务器缓存

sync && echo 3 > /proc/sys/vm/drop_caches

# 或者

sudo sysctl -w vm.drop_caches=3

## 支持docker

# 编辑 grub 配置: 打开 /etc/default/grub 文件

# Linux buff/cache 过高吃掉物理内存

drop_caches的值可以是0-3之间的数字,代表不同的含义:
        0:不释放(系统默认值)
        1:释放页缓存
        2:释放dentries和inodes
        3:释放所有缓存
 echo 3 > /proc/sys/vm/drop_caches,即可清空buff/cache,目前此设备内存已恢复正常



致谢

希望这篇文章对您有所帮助!如果有任何问题,欢迎交流讨论。更多内容欢迎关注 [ 小巫编程室 ] 公众号。也希望您能点赞和转发支持,您的喜欢与支持是小编最大的鼓励,小巫编程室感谢您的关注与支持。🎉🎉🎉🚀🚀🚀





0

评论 (0)

取消