Linux常用命令大全
一、前言
重新梳理并回顾一下Linux常用命令,选取贴合工作的进行使用和记录,仅供快速回顾,查漏补缺。
个人博客站—运维鹿: http://www.kervin24.top
CSDN博客—做个超努力的小奚: https://blog.csdn.net/qq_52914969?type=blog
二、常用快捷键
快捷键 | 解释 |
---|---|
tab | 文件补齐 |
ctrl+L | 清屏 |
ctrl+c | 取消当前命令行的编辑 终止命令运行 |
三、目录树结构
颜色表示的文件类型
黑色——TXT
蓝色——文件夹
天蓝色——连接文件(快捷方式)
黄色——块设备文件
绿色——可执行文件
红色——压缩包
四、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
物理内核与逻辑内核概念:
参考文章:
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。请注意,这只是一个很理想的计算方式,实际中的数据往往有较大的误差。
参考文章:
手动清理缓存:
# 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对象。
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、直接推荐百度或者查询
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 | 列出查找到的文件 | |
打印出查找到的文件(默认选项) |
示例:
[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 | 修改更改时间与访问时间 |
参考文章:
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格式的压缩包
作者:做个超努力的小奚&kervin24
个人博客站:http://www.kervin24.top
CSDN博客:https://blog.csdn.net/qq_52914969?type=blog