Linux常用命令大全

Linux常用命令大全

一、前言

重新梳理并回顾一下Linux常用命令,选取贴合工作的进行使用和记录,仅供快速回顾,查漏补缺。

个人博客站—运维鹿: http://www.kervin24.top

CSDN博客—做个超努力的小奚: https://blog.csdn.net/qq_52914969?type=blog

二、常用快捷键

快捷键 解释
tab 文件补齐
ctrl+L 清屏
ctrl+c 取消当前命令行的编辑 终止命令运行

三、目录树结构

1644905797876

颜色表示的文件类型

  1. 黑色——TXT

  2. 蓝色——文件夹

  3. 天蓝色——连接文件(快捷方式)

  4. 黄色——块设备文件

  5. 绿色——可执行文件

  6. 红色——压缩包

四、Linux命令基本操作——主机运维

Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核 linux默认使用的shell是bash 文件位置:/bin/bash

 命令 【选项】 参数
 -------------
 举例:【root@localhost ~!】#ls -1 /root
 
 命令:整条shell命令的主体
 选项:执行的功能,通常以-,--
 参数:执行的对象,如文件、目录

4.1、No1——起底Linux服务器

4.1.1、shutdown、reboot--关机与重启

拿到新服务器,学会关机与重启

命令 解释
shutdown 立即关闭服务器
reboot 立即重启服务器

4.1.2、date--查日期

date查看系统当前时间

参数 作用
%Y 完整年份(例如:2025)
%m 月份(1~12)
%d 本月中的第几天
%H 小时(00~23)
%M 分钟(00~59)
%S 秒(00~59)
 [root@localhost ~]# date
 2024年 07月 18日 星期四 17:26:05 CST
 
 [root@localhost ~]# date "+%Y-%m-%d %H:%M:%S "
 2025-01-11 20:19:58 

4.1.3、uname--查操作系统

查看服务器的操作系统相关信息

uname -a

参数 作用
-a 显示系统所有相关信息
 [root@localhost ~]# uname -a
 Linux localhost 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
 ---------------------------------------
 系统名:Linux      主机名称:localhost
 操作系统的发行版号:3.10.0-957.21.3.el7.x86_64
 命名规则:主版本号:3
          次版本号:10【奇数为开发版本,偶数为稳定版本】
          修订版本号:0【修改的次数】
          此次版本的第N次修改:693
          el7:redhat enterprise linux 7
          x86_64:编译框架(64位)
 内核版本:#1 SMP Tue Aug 22 21:09:27 UTC 2017
 硬件平台:x86_64   机器硬件名:x86_64    系统处理器的体系结构:x86_64    操作系统:GNU/Linux

4.1.3、lscpu--查cpu

查看服务器cpu信息

lscpu 【cat /proc/cpuinfo】

 [root@localhost ~]# lscpu 
 
 #查看物理内核数
 [root@localhost ~]# cat /proc/cpuinfo  |grep "physical id" | wc -l
 4

物理内核与逻辑内核概念:

参考文章:性能基础之CPU、物理核、逻辑核概念与关系-腾讯云开发者社区-腾讯云 (tencent.com)

4.1.4、free--查内存

查看服务器内存信息

free -mh 【cat /proc/meminfo】

参数 作用
-m 设置显示单位为MB
-h 自动调整合适的显示单位
 [root@localhost ~]# free -mh
               total        used        free      shared  buff/cache   available
 Mem:           1.8G        452M        947M        9.1M        422M        1.1G
 Swap:          4.0G          0B        4.0G
 
 Mem 行(第二行)是内存的使用情况。
 Swap 行(第三行)是交换空间的使用情况。
 total 列显示系统总的可用物理内存和交换空间大小。
 used 列显示已经被使用的物理内存和交换空间。
 free 列显示还有多少物理内存和交换空间可用使用。
 shared 列显示被共享使用的物理内存大小。
 buff/cache 列显示被 buffer 和 cache 使用的物理内存大小。
 available 列显示还可以被应用程序使用的物理内存大小。

对于内核来说,buffer 和 cache 都属于已经被使用的内存。一般来说,当物理空间不足时,当应用程序需要内存时,如果没有足够的 free 内存可以用,内核就会从 buffer 和 cache 中回收内存来满足应用程序的请求。所以从应用程序的角度来说,available = free + buffer + cache。请注意,这只是一个很理想的计算方式,实际中的数据往往有较大的误差。

参考文章:linux下free命令详解 - 哪是什么大佬 - 博客园 (cnblogs.com)

手动清理缓存:/proc/sys/vm/drop_caches 清理缓存 - Hello-World3 - 博客园 (cnblogs.com)

 # echo 1 > /proc/sys/vm/drop_caches; //清除页式对象;
 # echo 2 > /proc/sys/vm/drop_caches; //清除slab对象(dentries 和 inodes);
 # echo 3 > /proc/sys/vm/drop_caches; //同时清理页式对象和slab对象。

img

4.1.5、hostname--查看主机名

查看服务器主机名信息

hostname 【cat /etc/hostname】

 [root@localhost vm]# hostname
 localhost.localdomain

4.1.6、ifconfig--查看网卡和IP

查看服务器网络和ip信息

ifconfig 【cat /etc/sysconfig/network-scripts/ifcfg-ens33】

 RHEL 4 5 6  eth0 eth1 eth2 eth3
 RHEL 7 en0
 REHL 8 9  ens33
 ---------------------------------------
 [root@localhost vm]# ifconfig 
 ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
         inet 192.168.80.88  netmask 255.255.255.0  broadcast 192.168.80.255
         inet6 fe80::8c6c:bd2f:d076:1105  prefixlen 64  scopeid 0x20<link>
         ether 00:0c:29:19:cb:b7  txqueuelen 1000  (Ethernet)
         RX packets 2675  bytes 299438 (292.4 KiB)
         RX errors 0  dropped 0  overruns 0  frame 0
         TX packets 1565  bytes 203616 (198.8 KiB)
         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
 
 lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
         inet 127.0.0.1  netmask 255.0.0.0
         inet6 ::1  prefixlen 128  scopeid 0x10<host>
         loop  txqueuelen 1  (Local Loopback)
         RX packets 0  bytes 0 (0.0 B)
         RX errors 0  dropped 0  overruns 0  frame 0
         TX packets 0  bytes 0 (0.0 B)
         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
 
 virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
         inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
         ether 52:54:00:42:06:fa  txqueuelen 1000  (Ethernet)
         RX packets 0  bytes 0 (0.0 B)
         RX errors 0  dropped 0  overruns 0  frame 0
         TX packets 0  bytes 0 (0.0 B)
         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

4.2、No2——进程和端口管理

4.2.1、help、man--获取帮助

1、help命令

判断命令: type 命令
内部命令: help 命令
外部命令: 命令 ——help

2、man命令

man man

3、info命令

示例
[root@localhost /]#info ls

4、直接推荐百度或者查询Linux命令大全(手册) – 真正好用的Linux命令在线查询网站 (linuxcool.com)

4.2.2、echo--输出字符串

echo命令用于在终端设备上输出字符串或变量提取后的值

[root@localhost vm]# echo $HOME
/root

4.2.4、ps和pstree--查进程

ps查询进程,配合ps -ef |grep,中文译为“进程”,其功能是显示当前系统的进程状态。

pstress 树状显示进程之间的关系

参数 作用
-a 显示所有进程(包括其他用户的进程)
-u 用户以及其他详细信息
-x 显示没有控制终端的进程
-e 显示环境变量信息
-f 用ASCII字符显示树状结构
[root@localhost vm]# ps -ef |grep java
root       3567   1777  0 22:42 pts/0    00:00:00 grep --color=auto java

4.2.6、top--查进程状态

top命令的功能是实时显示系统运行状态,包含处理器、内存、服务、进程等重要资产信息。

按P,按照cpu使用率(从高到低)对进程进行排序

按a,按照内存使用率(从高到低)对进程进行排序


在Linux系统中有5种常见的进程状态,分别为运行、中断、不可中断、僵死与停止,其各自含义如下所示。

R(运行):进程正在运行或在运行队列中等待。

S(中断):进程处于休眠中,当某个条件形成后或者接收到信号时,则脱离该 状态。

D(不可中断):进程不响应系统异步信号,即便用kill命令也不能将其中断。

Z(僵死):进程已经终止,但进程描述符依然存在, 直到父进程调用wait4()系统函数后将进程释放。

T(停止):进程收到停止信号后停止运行

top - 22:44:33 up  2:32,  1 user,  load average: 0.00, 0.01, 0.04
Tasks: 164 total,   1 running, 163 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1867048 total,   851004 free,   524820 used,   491224 buff/cache
KiB Swap:  4194300 total,  4194300 free,        0 used.  1108904 avail Mem 
USER	PID	%CPU	%MEM	VSZ	RSS	TTY	STAT	START	TIME	COMMAND

第1行:系统时间、运行时间、登录终端数、系统负载(3个数值分别为1分钟、5分钟、15分钟内的平均值,数值越小意味着负载越低)。
第2行:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数。
第3行:用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比等。其中数据均为CPU数据并以百分比格式显示,例如“99.9 id”意味着有99.9%的CPU处理器资源处于空闲。
第4行:物理内存总量、内存空闲量、内存使用量、作为内核缓存的内存量。
第5行:虚拟内存总量、虚拟内存空闲量、虚拟内存使用量、已被提前加载的内存量。

4.2.7、uptime--查询负载

ptime命令能够显示系统已经运行了多长时间、当前登入用户的数量,以及过去1分钟、5分钟、15分钟内的负载信息

[root@localhost vm]# uptime 
 22:54:13 up  2:42,  1 user,  load average: 0.00, 0.01, 0.04

4.2.8、kill--杀进程

kill杀死进程,kill -9强制杀死

[root@localhost vm]# kill -9 544    最后数字为PID号

4.2.9、who--查登录用户

[root@localhost vm]# who
root     pts/0        2025-01-11 20:12 (192.168.80.1)

4.2.10、ping和telnet--查网络连通

ping,测试到主机网络的连通 telnet,测试到主机端口的连通

4.2.11、netstat和lsof--查端口信息

netnet显示各种网络相关信息 lsof 查看文件的进程信息,-i指定端口

[root@localhost vm]# lsof -i:80
COMMAND  PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
nginx   1077  root    6u  IPv4  22914      0t0  TCP *:http (LISTEN)
nginx   1094 nginx    6u  IPv4  22914      0t0  TCP *:http (LISTEN)

4.2.12、history--查历史命令

查看历史命令

4.3、No3——文件与路径查询

4.3.1、wget--远程获取文件

[root@localhost vm]# wget https://www.linuxprobe.com/docs/LinuxProbe.pdf

4.3.2、pwd-查询路径

(print working directory)打印当前工作路径

4.3.3、cd--改变目录

(change directory)改变目录 解释
cd 切换到家目录
cd .. 上级路径
cd ~ 切换到root下的家目录

4.3.4、ls--列出文件内容

(list)列出文件内容 解释
ls -a all,显示全部包括隐藏文件
ls -h human,以人性化方式列出(友好显示磁盘大小)
ls -i inode,显示文件索引节点号
ls -l 等于 ll long显示常格式属性
ls -S 按照从大到小排序
ls -t time,以时间排序(由新到旧)

4.3.5、tree--路径树

[root@localhost ~]# yum install tree -y  tree      树命令安装
[root@localhost kervin24]# tree
.
├── a
├── aaa
│   └── bbb
│       └── ccc
├── b
├── c
└── d
7 directories, 0 files

4.3.6、find、locate、whereis--文件查询

命令查找

which  命令 : 找出命令的绝对路径
whereis命令 : 找出命令的路径以及文档手册信息

find 路径 选项 关键字 动作

选项 含义
-name 按照文件名查找文件
-type 按照文件类型来查找
-size 按照文件大小来查找
-user 按照是否属于目标用户来查找
-ctime 按照文件创建时间来查找
-perm 按照文件权限来查找
常见动作 说明 备注
-exec 对查找到的文件直接执行该参数后的shell命令 \ ; 结尾
-ok 对查找到的文件询问时执行该参数后的shell命令 \ ; 结尾
-delete 删除查找到的文件
-ls 列出查找到的文件
-print 打印出查找到的文件(默认选项)

示例:

[root@test1 opt]# find /etc/ -name passwd    #查找名字叫 passwd的文件
[root@test1 opt]# find /etc/ -name *.conf    #查找所有.conf 结尾的 
-----------------------------------------------------------------------------------------
[root@test1 opt]# find /mnt -user root       #查找用户为root的用户
-----------------------------------------------------------------------------------------
[root@test1 opt]# find -size 1k              #查找文件大小0.1字节 到 1k
[root@localhost boot]# find ./ -name "vm*"   #查找当前路径下vm开头的
[root@localhost boot]# find /boot/ -size -10M -a -name "*img"   #查找并显示小于10M的img文件

4.3.4、xargs参数替换

  • 用于不支持管道|来传递参数的命令

  • 常与find经行组合

五、Linux命令基本操作——文件编辑

5.1、No4——增

5.1.1、mkdir--创建目录

mkdir [选项] 目录位置及名称

make directory创建目录 解释
mkdir dir 在当前目录下创建dir1
mkdir -p 递归创建文件夹

示例:

[root@localhost kervin24]# mkdir a b c d  创立文件夹 a b c d
[root@localhost kervin24]# ls
a  b  c  d
--------------------------------------------------------------------------------------
[root@localhost kervin24]# mkdir -p ./aaa/bbb/ccc   递归创建文件夹及子目录
[root@localhost kervin24]# ls
a  aaa  b  c  d

5.1.2、touch--创建空文件

  • Linux下文件的命名规则

1、文件名严格区分大小写 file FILE

2、文件名不能包含特殊符号,如/ *

3、文件名最多达到255个字符

文件的三个时间戳

  • access time 访问时间

  • modify time 更改时间

  • change time 改变时间

创建一个新的空文件

touch命令(创建修改文件) 解释
touch file1 一次创建/二次修改文件file1
stat file1 查看文件file1详细信息
touch -a 修改访问时间(access)
touch -m 修改更改时间(modify)
touch -d 修改更改时间与访问时间

参考文章: 点击并拖拽以移动 Linux - 文件的三种时间之atime、ctime、mtime的区别和简单用法 - 小菠萝测试笔记 - 博客园 (cnblogs.com)

点击并拖拽以移动

点击并拖拽以移动 点击并拖拽以移动 点击并拖拽以移动

5.1.3、 ln--硬连接与软连接

软连接 ln [-s] 源文件或目录… 链接文件或目标位置

对比项 硬连接 软连接
对比源文件 同一个文件 不是同一个文件(快捷方式)
inode 相同 不同
连接数 创建新的硬链接,链接数会增加,删除硬链接,链接数减少 删除新建不会改变
文件夹 不支持 支持
删除源文件 只是链接数减一,但链接文件的访问不受影响 无法访问连接文件
文件大小 和源文件相同 源文件的路径的长度

示例:

给/etc/sysconfig/network-scripts/ifcfg-ens33 这个文件建立一个软连接到 /opt目录下

ln -s /etc/sysconfig/network-scripts/ifcfg-ens33   /opt/soft

创建/etc/local文件的软连接到/usr/sbin

ln -s /etc/local /usr/sbin

5.2、No5——删

5.2.1、rm--删除

参数 解释
-f 忽略不存在的文件,不好出现警告信息
-r 递归删除

5.3、No6——改

5.3.1、mv--移改文件

  • 移动文件用法(不同路径下);

    mv /需要移动的文件 /移动到新的路径下

  • 重命名文件用法(相同路径下);

    mv /原来文件的名字 /新文件的名字

示例:

写出把在自己家目录中的abc.txt文件移动到/opt目录中,并把文件名修改成123.txt的命令
mv ~/abc.txt /opt/123.txt

5.3.2、rename--批量改文件名

rename /旧字符 /新字符

示例:

[root@localhost kervin24]# ls
a    c       fc.log  ff.log  fi.log  fl.log  fo.log  fr.log  fu.log  fx.log
aaa  d       fd.log  fg.log  fj.log  fm.log  fp.log  fs.log  fv.log  fy.log
b    fb.log  fe.log  fh.log  fk.log  fn.log  fq.log  ft.log  fw.log  fz.log
[root@localhost kervin24]# rename log txt *    把所有log文件改为txt文件  
------------------------------------------------------------------------------
[root@localhost kervin24]# ls
a    c       fc.txt  ff.txt  fi.txt  fl.txt  fo.txt  fr.txt  fu.txt  fx.txt
aaa  d       fd.txt  fg.txt  fj.txt  fm.txt  fp.txt  fs.txt  fv.txt  fy.txt
b    fb.txt  fe.txt  fh.txt  fk.txt  fn.txt  fq.txt  ft.txt  fw.txt  fz.txt

5.3.3、cp--复制文件或目录

cp [选项] 需要拷贝的文件 拷贝到哪里去

cp命令--(copy)(拷贝文件) 解释
cp -r 递归拷贝目录(复制包括所有子文件,必须使用)

5.4、No7——查

5.4.1、file--查看类型

  • 常见文件类型

文件类型 描述
字符设备(c) character,所有输入输出的设备
块设备(b) block,所有存储设备称之为块设备文件,硬盘
软连接文件(l) 类似与windows下的快捷方式
目录文件(d) 相当于windows下的的文件夹
普通文件(f或-) 类似windows下的记事本、word等,可以使用相关命令进行编辑,查看文件内容
管道文件(p) pipe,管道文件
套接字文件(s) socket,套接字文件
  • 用file命令来判断文件类型

选项 解释
-l 以常格式显示文件和目录列表

示例:

[root@localhost /]# file etc   
etc: directory
-----------------------------------------------------------------------------------------
[root@localhost /]# file -1 etc
file: invalid option -- '1'
Usage: file [-bchikLlNnprsvz0] [--apple] [--mime-encoding] [--mime-type]
            [-e testname] [-F separator] [-f namefile] [-m magicfiles] file ...
       file -C [-m magicfiles]
       file [--help]

5.4.2、alias--设置别名

设置指令的别名

alias 别名=原来名字

unalias 别名 (删除)

补充:绝对路径>别名>内部>hash>外部命令

示例:

定义别名命令backup,将/boot文件夹下的文件备份至/data目录中

alias backup='cp -arv /boot/* /data/'

5.4.3、cat--查看内容

5.4.4、more、less --查看大内容

区别: more只支持向前浏览,less命令允许向前或向后浏览文件

less [选项] 文件名

  • 可以使用/ 查找 n向下 N向上查找

  • Page Up 向上翻页,Page Down 向下翻页

5.4.5、head、tail--查看头和尾内容

参数 解释
head -n 文件名 (不加默认开头十行)
tail -n 文件名 (不加默认结尾十行)
tail -f 文件名 实时跟踪最后十行

5.4.6、grep--文本搜索工具

grep [选项]… 查找条件 目标文件

基本格式

  • 要查找的字符串以双引号括起来单引号也可以

  • “^……”表示以……开头,“……$”表示以……结尾

  • “^$”表示空行

示例:

1、显示/etc目录下以m,n,r,p开头的文件或目录列表

ls /etc/|grep ^[mnrp]

2、显示/etc下非字母开头的文件或目录

ls /etc|grep ^[^[:alpha:]]
ls /etc|grep [^[:alpha:]]*

5.4.7、du--查看空间

du (Disk Usage磁盘用法)

du 统计的是指定目录或文件所占用磁盘空间大小

选项 解释
du -a all,统计磁盘空间占用时包含的所有文件
du -h human,人性化方式
du -s summary(总结),只统计每个参数所占用空间总的大小,不统计子目录
du -d 打印目录(或文件,带 --all)的总计

示例:

du -d 1 /var    写出查看 /var 目录中第一层子目录占用磁盘空间大小的命令
du -hs /root    查看/root目录的磁盘统计大小(以人性化方式)

5.4.8、tar--打包和备份

压缩工具 说明 解压缩工具
zip 可以压缩多个文件或目录 unzip
gzip 压缩单个文件,压缩率<bzip2,cpu开销相对低
bzip2 压缩单个文件,压缩率>gzip,cpu开销相对高

tar [选项] ... 归档文件名(压缩包名字) 源文件或目录 tar [选项] ... 归档文件名 [-C 目标目录]

选项 解释
-c 创建(Create).tar 格式的包文件
-x 解开.tar 格式的包文件
-C </解压时指定释放的目标文件夹 指定目录
-f 表示使用归档文件(一般都要带上表示使用tar)
-v 输出详细信息(Verbose)
-j 调用 bzip2 程序进行压缩或解压
-z 调用 gzip 程序进行压缩或解压

示例:

tar -jxvf ~/abc123.tar.bz2 -C /opt   把家目录中的abc123.tar.bz2  文件解压缩到 /opt 目录中的命令
tar -zcvf ~/abc123.tar.gz abc.txt 123把家目录中的abc.txt和123.txt文件压缩成abc123.tar.gz的命令
tar -jcvf  .tar.bz2             创建一个bzip2格式的压缩包
tar -jxvf  .tar.bz2             解压一个bzip2格式的压缩包
tar -zcvf  .tar.gz              创建一个gzip格式的压缩包
tar -zxvf  .tar.gz              解压一个gzip2格式的压缩包

阅读剩余
THE END