工作中高频使用的一些 Linux 命令,值得收藏!!!

Linux 时时刻刻在操作的命令

命令目录

date

timedatectl

reboot

poweroff

wget

ps

pstree

nice

pidof

kill

killall

uname

uptime

free

who

last

ping

tracepath

netstat

history

sosreport

find

locate

whereis

which

cat

more

less

head

tail

tr

wc

stat

grep

cut

diff

uniq

sort

touch

cp

rm

dd

file


留个关注,后期继续分享IT知识♥

date

参数作用
%s查看当前时间戳
%S秒(00~59)
%M分钟(00~59)
%H小时(00~23)
%I小时(00~12)
%m月份(1~12)
%p显示出AM或PM
%a缩写的工作日名称(例如:Sun)
%A完整的工作日名称(例如:Sunday)
%b缩写的月份名称(例如:Jan)
%B完整的月份名称(例如:January)
%q季度(1~4)
%y简写年份(例如:20)
%Y完整年份(例如:2020)
%d本月中的第几天
%j今年中的第几天
%n换行符(相当于按下回车键)
%t跳格(相当于按下Tab键)
# 查看当前系统时间
date
# Sat Sep 5 09:13:45 CST 2020

# 按照“年-月-日 小时:分钟:秒”的格式查看当前系统时间的 date
date "+%Y-%m-%d %H:%M:%S"
# 2020-09-05 09:14:35

# 将系统的当前时间设置为 2020 年 11 月 1 日 8 点 30 分
date -s "20201101 8:30:00"
# Sun Nov 1 08:30:00 CST 2020
date
# Sun Nov 1 08:30:08 CST 2020

# date 命令中的参数 %j 可用来查看今天是当年中的第几天。这个参数能够很好地区分备份时间的早晚,即数字越大,越靠近当前时间。
date "+%j"
# 305

# 当前时间的时间戳
# output:1650428766
date +%s

# 查看指定时间的时间戳
# output:1650427279
# linux 下:
date -d "2022-04-20 12:01:19" +%s
# mac 下:
date -jf "%Y-%m-%d %H:%M:%S" "2022-04-20 12:01:19" "+%s"

# 时间戳转时间
# output:2022-04-20 12:01:19
# linux 下:
date "+%Y-%m-%d %H:%M:%S" -d@1650427279
# mac 下:
date -r 1650427279 "+%Y-%m-%d %H:%M:%S"

timedatectl

time date control

timedatectl 命令用于设置系统的时间,发现电脑时间跟实际时间不符?如果只差几分钟的话,我们可以直接调整。但是,如果差几个小时,那么除了调整当前的时间,还有必要检查一下时区了。

参数作用
status显示状态信息
list-timezones列出已知时区
set-time设置系统时间
set-timezone设置生效时区
# 修改时区
timedatectl set-timezone Asia/Shanghai

# 修改系统日期
timedatectl set-time 2021-05-18

# 修改系统时间
timedatectl set-time 9:30

reboot

重启系统

poweroff

关闭系统

wget

web get

wget 命令用于在终端命令行中下载网络文件

参数作用
-b后台下载模式
-P下载到指定目录
-t最大尝试次数
-c断点续传
-p下载页面内所有资源,包括图片、视频等
-r递归下载
# 递归下载 www.linuxprobe.com 网站内的所有页面数据以及文件,下载完后会自动保存到当前路径下一个名为 www.linuxprobe.com 的目录中
wget -r -p https://www.linuxprobe.com

ps

processes

用于查看系统中的进程状态

参数作用
-a显示所有进程(包括其他用户的进程)
-u用户以及其他详细信息
-x显示没有控制终端的进程

pstree

process tree

用于以树状图的形式展示进程之间的关系

nice

用于调整进程的优先级,语法格式为“nice优先级数字 服务名称”

在 top 命令输出的结果中,PR 和 NI 值代表的是进程的优先级,数字越低(取值范围是-20~19),优先级越高。在日常的生产工作中,可以将一些不重要进程的优先级调低,让紧迫的服务更多地利用 CPU 和内存资源,以达到合理分配系统资源的目的。

# 将 bash 服务的优先级调整到最高
nice -n -20 bash

pidof

用于查询某个指定服务进程的 PID 号码值,语法格式为 “pidof [参数] 服务名称”

# 每个进程的进程号码值(PID)是唯一的,可以用于区分不同的进程。例如,执行如下命令来查询本机上 sshd 服务程序的 PID:
pidof sshd
# 2156

kill

# 有时系统会提示进程无法被终止,此时可以加参数 -9,表示最高级别地强制杀死进程
kill -9 2156

killall

用于终止某个指定名称的服务所对应的全部进程,语法格式为 “killall [参数] 服务名称”

pidof httpd
# 13581 13580 13579 13578 13577 13576

killall httpd

# 再次查看
pidof httpd

uname

uname 命令用于查看系统内核版本与系统架构等信息,英文全称为 “unix name”,语法格式为 “uname [-a]” 。在使用 uname 命令时,一般要固定搭配上 -a 参数来完整地查看当前系统的内核名称、主机名、内核发行版本、节点名、压制时间、硬件名称、硬件平台、处理器类型以及操作系统名称等信息。

uname -a

如果要查看当前系统版本的详细信息,则需要查看 redhat-release 文件

cat /etc/redhat-release

uptime

建议负载值保持在 1 左右,在生产环境中不要超过 5 就好。

uptime 命令用于查看系统的负载信息。它可以显示当前系统时间、系统已运行时间、启用终端数量以及平均负载值等信息。平均负载值指的是系统在最近 1分钟、5分钟、15分钟内的压力情况,负载值越低越好。

uptime
#  0:16  up 5 days, 14:47, 8 users, load averages: 1.41 1.44 1.56

free

free 命令用于显示当前系统中内存的使用量信息

free -h

who

who 命令用于查看当前登入主机的用户终端信息。

who

# 登录的用户名 终端设备 登录到系统的时间
# pudongping console  Sep  6 09:29

last

last 命令用于调取主机的被访记录,Linux 系统会将每次的登录信息都记录到日志文件中,如果哪天想翻阅了,直接执行这条命令就行。

ping

ping 命令用于测试主机之间的网络连通性。

参数作用
-c总共发送次数
-l指定网卡名称
-i每次间隔时间(秒)
-W最长等待时间(秒)
ping -c 4 www.baidu.com

tracepath

tracepath 命令用于显示数据包到达目的主机时途中经过的所有路由信息。当两台主机之间无法正常 ping 通时,要考虑两台主机之间是否有错误的路由信息,导致数据被某一台设备错误地丢弃。这时便可以使用 tracepath 命令追踪数据包到达目的主机时途中的所有路由信息,以分析是哪台设备出了问题。

tracepath www.baidu.com

netstat

netstat 命令用于显示如网络连接、路由表、接口状态等的网络相关信息,英文全称为 “network status”

参数作用
-a显示所有连接中的Socket
-p显示正在使用的Socket信息
-t显示TCP协议的连接状态
-u显示UDP协议的连接状态
-n使用IP地址,不使用域名
-l仅列出正在监听的服务状态
-i现在网卡列表信息
-r显示路由表信息

history

默认会显示出用户在本地计算机中执行过的最近 1000 条命令记录,可以通过修改 /etc/profile 文件中的 HISTSIZE 变量值来改变默认数量。历史命令都会被记录到 ~/.bash_history 文件中。

# 清空命令历史记录
history -c

sosreport

sosreport 命令用于收集系统配置及架构信息并输出诊断文档。

find

参数作用
-name匹配名称
-perm匹配权限(mode为完全匹配,-mode为包含即可)
-user匹配所有者
-group匹配所有组
-mtime -n +n匹配修改内容的时间(-n指n天以内,+n指n天以前)
-atime -n +n匹配访问文件的时间(-n指n天以内,+n指n天以前)
-ctime -n +n匹配修改文件权限的时间(-n指n天以内,+n指n天以前)
-nouser匹配无所有者的文件
-nogroup匹配无所有组的文件
-newer f1 !f2匹配比文件f1新但比f2旧的文件
--type b/d/c/p/l/f匹配文件类型(后面的字幕字母依次表示块设备、目录、字符设备、管道、链接文件、文本文件)
-size匹配文件的大小(+50KB为查找超过50KB的文件,而-50KB为查找小于50KB的文件)
-prune忽略某个目录
-exec …… {};后面可跟用于进一步处理搜索结果的命令
# 获取 /etc 目录中所有以 host 开头的文件列表
find /etc -name "host*" -print

# 搜索整个系统中包含 SUID 权限的所有文件
find / -perm -4000 -print

# 在整个系统中找出所有归属于 alex 用户的文件,并复制到 /home/alex/findresults 目录中
find / -user alex -exec cp -a {} /home/alex/findresults/\;
# 其中的 `{}` 表示 find 命令搜索出的每一个文件,并且命令的结尾必须是 `\;`

locate

locate 命令用于按照名称快速搜索文件所对应的位置。使用 find 命令进行全盘搜索虽然更准确,但是效率有点低。如果仅仅是想找一些常见的且又知道大概名称的文件,可以使用 locate 命令。在使用 locate 命令时,先使用 updatedb 命令生成一个索引库文件,这个库文件的名字是 /var/lib/mlocate/mlocate.db ,后续在使用 locate 命令搜索文件时就是在该库中进行查找操作,速度会快很多。

updatedb
ls -l /var/lib/mlocate/mlocate.db

# 使用 locate 命令搜索出所有包含 alex 名称的文件所在的位置
locate alex

whereis

whereis 命令用于按照名称快速搜索二进制程序(命令)、源代码以及帮助文件所对应的位置,语法格式为 “whereis 命令名称”。

简单来说,whereis 命令也是基于 updatedb 命令所生成的索引库文件进行搜索,它与 locate 命令的区别是不关心那些相同名称的文件,仅仅是快速找到对应的命令文件及其帮助文件所在的位置。

which

which 命令用于按照指定名称快速搜索二进制程序(命令)所对应的位置,语法格式为 “which 命令名称”。

which 命令是在 PATH 变量所指定的路径中,按照指定条件搜索命令所在的路径。也就是说,如果我们既不关心同名文件(find 与 locate),也不关心命令所对应的源代码和帮助文件(whereis),仅仅是想找到命令本身所在的路径,那么这个 which 命令就太合适了。

cat

cat 是 concatenate(连接、连续)的简写

  • 连接合并文件

echo 11 > a.txt
echo 22 > b.txt

# 合并 a.txt 和 b.txt 文件中所有的内容到 c.txt 文件中
cat a.txt b.txt > c.txt

# 查看 c.txt 文件中的内容
cat c.txt  # 11 22

# -n 参数可以显示行号
cat -n c.txt
# 1 11
# 2 22

more

more 进入交互界面时的指令及功能

交互指令功能
=输出当前行的行号
!调用 shell,并执行命令
v使用配置的编辑器编辑当前文件

less

# 查看日志的常用方法,也可以同时查看多个文件
less -mNi log2022.log log2021.log

# 还可以按 `G` 直接到文件尾部

选项含义
-N显示每行的行号
-S行过长时将超出部分舍弃
-m显示类似 more 命令的百分比
-i忽略搜索时的大小写

less 进入交互界面时的指令及功能

交互指令功能
/字符串向下搜索“字符串”的功能
?字符串向上搜索“字符串”的功能
n重复*前一个搜索
N反向重复前一个搜索
k向上移动一行
j向下移动一行
u向上移动半页
d向下移动半页
b向上移动一页
空格键向下移动一页
g移动到第一行
G移动至最后一行
h 或 H显示帮助界面
q 或 Q 或 ZZ退出 less 命令
v使用配置的编辑器编辑当前文件
# 只想查看文本中前 10 行的内容
head -n 10 test.log

tail

# 只想查看文本内容的最后 10 行
tail -n 10 test.log

# 实时查看文本
tail -f test.log

tr

tr 命令用于替换文本内容中的字符,英文全称为 “translate”,语法格式为 “tr [原始字符] [目标字符]”

# 把文本内容中的英文全部替换成大写
cat test.log | tr [a-z] [A-Z]

wc

wc 命令用于统计指定文本文件的行数、字数或字节数,英文全称为 “word counts”,语法格式为 “wc [参数] 文件名称”

参数作用
-l只显示行数
-w只显示单词数
-c只显示字节数
# 统计当前系统中有多少个用户
wc -l /etc/passwd

stat

stat 命令用于查看文件的具体存储细节和时间等信息,英文全称为 “status”,语法格式为 “stat 文件名称”。除了修改时间之外,Linux 系统中的文件包含 3 种时间状态,分别是 Access Time(内容最后一次被访问的时间,简称为 Atime),Modify Time(内容最后一次被修改的时间,简称为 Mtime)以及Change Time(文件属性最后一次被修改的时间,简称为 Ctime)。

stat test.log

grep

grep 命令用于按行提取文本内容,语法格式为 “grep [参数] 文件名称”

过滤空行 grep -v ^$

参数作用
-b将可执行文件(binary)当作文本文件(text)来搜索
-c仅显示找到的行数
-i忽略大小写
-n显示行号
-v反向选择——仅列出没有“关键词”的行。
# 找出当前系统中不允许登录系统的所有用户信息
grep /sbin/nologin /etc/passwd

cut

cut 命令用于按 “列” 提取文本内容,语法格式为 “cut [参数] 文件名称”,按“列”搜索,不仅要使用 -f 参数设置需要查看的列数,还需要使用 -d 参数来设置间隔符号。

# 提取 /etc/passwd 文件中的用户名信息,即提取以冒号为间隔符号的第一列内容
cut -d : -f 1 /etc/passwd
# 或者(只提取前 5 个用户信息)
cat /etc/passwd | grep -v '#' | head -n 5 | cut -d : -f 1

diff

diff 命令用于比较多个文件之间内容的差异,英文全称为 “different”,语法格式为 “diff [参数] 文件名称A 文件名称B”。

在使用 diff 命令时,不仅可以使用 --brief 参数来确认两个文件是否相同,还可以使用 -c 参数来详细比较出多个文件的差异之处。

# 判断两个文件是否相同
diff --brief a.txt b.txt

# 查看文件内容的具体不同
diff -c a.txt b.txt

uniq

uniq 命令用于去除文本中连续的重复行,英文全称为 “unique”,语法格式为“uniq [参数] 文件名称”。中间不能夹杂其他文本行(非相邻的默认不会去重)

uniq alex.txt

sort

sort 命令用于对文本内容进行再排序,语法格式为 “sort [参数] 文件名称”。

参数作用
-f忽略大小写
-b忽略缩进与空格
-n以数值型排序
-r反向排序
-u去除重复行
-t指定间隔符
-k设置字段范围
# 将文本中的内容按照字母顺序进行排序
sort alex.txt

# 将文本内容进行去重操作
sort -u alex.txt

# 以第 3 个字段中的数字作为排序依据,以冒号 : 指定分隔符,以数字规则进行排序
sort -t : -k 3 -n alex.txt

touch

touch 命令用于创建空白文件或设置文件的时间,语法格式为 “touch [参数] 文件名称”。

参数作用
-a仅修改“读取时间”(atime)
-m仅修改“修改时间”(mtime)
-d同时修改 atime 与 mtime
# 修改文件的读取时间和修改时间
touch -d "2021-09-12 15:44" alex.txt

cp

cp 命令用于复制文件或目录,英文全称为 “copy”,语法格式为 “cp [参数] 源文件名称 目标文件名称”。

参数作用
-p保留原始文件的属性
-d若对象为“链接文件”,则保留该“链接文件”的属性
-r递归持续复制(用于目录)
-i若目标文件存在则询问是否覆盖
-a相当于 -pdr(p、d、r为上述参数)

rm

参数作用
-f强制执行
-i删除前询问
-r删除目录
-v显示过程

dd

dd 命令用于按照指定大小和个数的数据块来复制文件或转换文件,语法格式为 “dd if=参数值of=参数值count=参数值bs=参数值”。

参数作用
if输入的文件名称
of输出的文件名称
bs设置每个“块”的大小
count设置要复制“块”的个数
# 从 /dev/zero 设备文件中取出 1 个大小为 560M 的数据块,保存成名为 560_file 的文件
dd if=/dev/zero of=560_file count=1 bs=560M

# 将光驱设备中的光盘制作成 iso 格式的镜像文件
dd if=/dev/cdrom of=RHEL.iso

file

file 命令用于查看文件的类型,语法格式为 “file 文件名称”。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值