Linux服务器运维常用命令
概述
这篇文章介绍了 linux 服务器维护中常用的一些命令。
基础命令
cd(切换目录)
1 | cd 目录 |
cd
,命令用于切换目录,参数可是相对路径或绝对路径。
常用示例:
- 切换到当前目录下的xxx目录:
cd xxx
或cd ./xxx
- 切换到home目录:
cd ~
- 切换到上一个目录:
cd -
- 切换到根目录:
cd /
- 切换到上一层目录:
cd ..
或cd ../
ls(显示目录中的文件)
ls
,“list” 显示目录中的文件。
常用命令选项:
-
-l
列表方式显示,可以显示文件的操作权限、归属组、归属用户、文件大小、修改时间 -
-a
显示所有文件,包括隐藏文件(文件名以.
开头的隐藏文件),如当前目录.
、上级目录..
、隐藏的 git 目录.git
。 -
-h
以方便人类阅读的单位输出文件大小,如使用ls -lh
查看当前目录文件时,文件大小超过 1K 但未达到 1M 的将以 K 为单位显示,超过 1M 但未达到 1G 的将以 M 为单位显示。
pwd(显示当前所在目录)
pwd
命令用于显示当前所在目录的绝对路径。
mkdir(创建目录)
mkdir
命令用于创建目录,可添加 -p
选项创建多层目录。
常用示例:
- 创建目录 test :
mkdir test
,如果 test 目录已经存在,执行出错 - 创建多层目录 abc/def :
mkdir -p abc/def
,如果 abc 目录不存在将创建它并在其中创建 def目录;如果目录存在,并不会执行出错
rmdir(删除目录)
rmdir
命令用于删除目录,注意只有目录为空时才能删除,否则将会报错。可以添加 -p
选项删除多层目录。
常用示例:
- 删除目录 test:
rmdir test
- 删除多层目录 abc/def :
rmdir -p abc/def
,相当于执行命令rmdir abc/def abc
touch(创建文件)
touch
命令可用于创建空文件(当参数指定的文件不存在时)或更新文件的访问时间和更新时间。
常用示例:
-
创建文件 abc.txt :
touch abc.txt
,注意:指定命令前 abc.txt 文件不存在 -
更新文件 abc.txt 的访问时间和更新时间:
touch abc.txt
rm(删除文件)
rm
命令用于删除文件,删除文件时会询问是否确认删除。常用选项 -f
强制删除(不再询问),-r
递归删除(删除目录及目录中的内容)。
- 删除文件 test.txt :
rm test.txt
- 删除目录 test 及其中所有内容:
rm -rf test
data(查看和修改日期时间)
data
命令用于显示日期时间,可添加参数输出格式化的时间。
常用示例:
-
打印当前时间:
data
,输出结果:1
Fri Sep 30 21:45:28 CST 2022
-
按格式输出年月日:
date +%Y/%m/%d
,结果:1
2022/09/30
-
按格式输出时间:
date +%H:%M
,结果:1
21:45
cal(显示日历)
cal
,日历(calendar)命令用于显示日历,不带参数时显示本月日历,日期当天回反白显示。可指定参数 月 和 年,以显示指定年月的日历。
常用示例:
-
显示当月日历:
cal
-
显示 2022 年 10 月的日历:
cal 10 2022
,结果如下:1
2
3
4
5
6
7
8October 2022
Su Mo Tu We Th Fr Sa
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
关机与重启
shutdown
、reboot
、halt
、poweroff
都需要管理员权限,这几个命令配合命令的选项,均可达到关机、停止系统和重启系统的功能,可以根据个人习惯使用其中一个。不过,语义化的命令更便于记忆。
reboot
、halt
、poweroff
命令实际上都是调用systemctl
完成关机相关操作,使用--help
选项查看帮助信息,发现这三个命令的参数选项都是一样的。
shutdown(关机)
1 | shutdown [-krhc] [时间] [警告信息] |
命令选项:
-k
仅给用户发送警告信息,不真的关机-r
在将系统服务停止后重启(常用)-h
在系统服务停止后立即关机(常用)-c
取消已在进行的shutdown
命令内容,临时改变主意不想关机时,可以执行命令shutdown -c
命令参数:
- 时间:即执行命令的时间,单位:分钟。如果不指定,默认为 1分钟。
- 警告信息:执行
shutdown
命令后,将立即将警告信息发给所有正在使用的用户
常用示例:
- 立即关机:
shutdown -h now
- 指定时间关机, 22时30分时关机:
shutdown -h 22:30
- 十分钟后关机:
shutdown -h +10
- 立即重启:
shutdown -r now
- 30分钟后关机,并发送警告信息给所有在线使用者:
shutdown -r +30 'System will reboot after 30 minutes'
- 仅发送警告信息,吓吓人:
shutdown -k now 'This system will shutdown'
reboot(重启)
重启系统。
命令选项:
--halt
停止系统-p
或--poweroff
关机--reboot
重启系统-f
或--force
强制执行-w
或--wtmp-only
不执行停止、关机、重启命令,仅写入 wtmp 记录-d
或--no-wtmp
不写入 wtmp 记录--no-wall
不发送消息
halt(系统停止)
halt
命令需要管理员权限才能执行,作用是将数据写入磁盘并停止处理器运行,机器不重新启动。屏幕上可能会保留一些信息。
命令选项:同上
poweroff(关机)
关机。
命令选项:同上
sync(数据同步写入磁盘)
sync
命令用于将内存中的数据写入磁盘,防止文件数据异常。在关机或重启前,可以执行这个命令保证内存中的数据写入磁盘。管理员可同步所有数据,非管理员用户仅同步自己的数据。
systemctl(系统管理工具)
systemctl
是一个强大的系统管理工具,与关机相关的命令:
systemctl halt
进入系统停止模式,屏幕上可能会保留一些信息,与电脑的电源管理模式有关systemctl poweroff
进入系统关机模式,直接关机systemctl reboot
直接重新启动systemctl suspend
进入休眠模式
用户管理
su(切换用户)
1 | su [username] |
注:
[]
表示参数可选
su
命令用于切换到指定用户,切换后可执行命令 exit
返回原用户。如果不带用户名参数,则切换到 root 用户。常用于普通用户切换到管理员用户执行一些需要管理员权限的命令。
useradd(添加用户)
1 | useradd 用户名 |
useradd
命令用于添加一个用户,添加成功后,将在 /home
目录下建立一个用户目录作为该用户的主目录。
命令可选参数:
-d
指定用户目录-m
指定权限-g
指定组号
添加完用户后,一般需要使用 passwd
命令设定用户的密码,用户密码保存在 /etc/passwd
文件中。
passwd(修改密码)
1 | passwd [用户名] |
修改指定用户的密码,只有管理员可以带用户名参数;普通用户只能使用不带参数的 passwd
命令来修改自身的密码。
系统管理
lsb_release/uname(查看系统信息)
lsb_release
命令用于查看系统发行版信息及 LSB (Linux Standard Base) 信息,适用于所有 linux 版本。uname
命令用于查看系统信息,如查看 linux 内核版本、物理架构等。
常用示例:
-
打印系统信息:
lsb_release -a
,输出结果如下:1
2
3
4
5LSB Version: n/a
Distributor ID: HuaweiCloudEulerOS
Description: Huawei Cloud EulerOS release 1.0 (x86_64)
Release: 1.0
Codename: x86_64 -
打印系统信息:
uname -a
,输出结果如下1
Linux hecs-165974 4.19.90-vhulk2107.1.0.h699.hcev1.x86_64 #1 SMP Sat Jul 31 09:58:46 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
-
打印内核版本:
uname -r
ps(查看进程)
常用形式:
1 | ps -aux |
ps
命令用于查看当前的系统进程,结果不是动态连续的,如果需要实时监控进程,应使用 top
命令。
命令的结果:
USER
进程的属主PID
进程的 IDPPID
父进程%CPU
进程占用的CPU百分比%MEM
占用内存的百分比NI
进程的 NICE 值,数值大,表示占用 CPU 时间较少VSZ
进程的虚拟大小RSS
驻留中页的数量TTY
终端 IDWCHAN
正在等待的进程资源stat
进程状态:R(运行)、S(休眠)、Z(僵尸)、T(停止或被追踪)、X(死掉的进程)、N(优先级较低的进程)、<(优先级高的进程)、W(进入内存交换)、D(非中断休眠(常驻IO))START
进程启动的时间COMMAND
命令的名称和参数
top(查看进程)
1 | top |
top
命令用于查看系统中占用资源较多的一些进程,默认按 CPU 占用率排序。
kill(结束进程)
1 | kill -9 进程ID |
kill
命令用于结束指定 PID 的进程,执行命令后将会向指定进程发送 SIGKILL
信号,其中 -9
表示强制终止,可以省略。
注:进程的 PID 号可使用
ps
命令查询获取。
fdisk(磁盘管理工具)
fdisk
是一个磁盘分区管理工具,可用于查看磁盘分区信息和对磁盘分区进行管理,如添加、删除分区。
用法示例:
- 打印磁盘使用情况:
fdisk -l
free(查看内存)
free
命令用于打印系统内存使用情况。
用法示例:
-
打印内存使用情况:
free -h
,结果如下:1
2
3
4total used free shared buff/cache available
Mem: 1.4Gi 205Mi 114Mi 83Mi 1.1Gi 1.0Gi
Swap: 0B 0B 0B
netstat(查看网络状态)
netstat
命令用于打印网络连接、路由表、网络统计等信息。
常用选项:
-a
显示所有socket,包括正在监听的-n
以数字形式显示地址和端口号-r
显示核心路由表-f
显示外部地址的完全限定域名(FQDN)-t
显示当前连接卸载状态-v
显示正在进行的工作-p proto
显示proto指定的协议的连接-b
显示在创建每个连接或侦听端口时涉及的可执行程序-e
显示以太网统计,此选项可以和-s
结合使用-o
显示拥有的与每个连接关联的进程PID-q
显示所有连接、侦听端口和绑定的非侦听 TCP端口-s
显示每个协议的统计-x
显示 NetworkDirect 连接、侦听器和共享端点-y
显示所有连接的 TCP 连接模板,无法与其他选项联用
常用示例:
- 查看 8080 端口占用情况:
netstat -ano | grep 8080
工具
od(查看二进制文件)
od
命令用于读取文件内容,以八进制方式打印输出,可搭配选项输出为指定格式,如十六进制、ASCII等。
常用示例:
-
以ASCII编码方式输出文件
test.txt
的内容:od -c test.txt
-
以十六进制方式输出文件
test.txt
的内容:od -x test.txt
-
同时以ASCII和十六进制方式输出
test.txt
的内容:od -cx test.txt
,文件内容为abcde 12345
,输出结果如下:1
2
30000000 a b c d e 1 2 3 4 5 \n
6261 6463 2065 3231 3433 0a35
0000014