Linux 频繁使用命令


Linux 频繁使用命令

date

参数作用
%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

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

less

选项含义
-N显示每行的行号
-S行过长时将超出部分舍弃
-m显示类似 more 命令的百分比

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 [参数] 文件名称”

参数作用
-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 文件名称”。


文章作者: Alex
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Alex !
评论
  目录