文章目录
-
- 第一章 Linux命令
-
-
-
- 一、常用的系统工作命令
-
- 1、echo命令
- 2、date命令
- 3、timedatectl命令
- 4、wget命令
- 5、ps命令
- 6、pstree命令
- 7、top命令
- 8、nice命令
- 9、pidof命令
- 10、kill命令
- 11、killall命令
- 二、系统状态检测命令
-
- 1、uname命令
- 2、uptime命令
- 3、free命令
- 4、who命令
- 5、last命令
- 6、tracepath命令
- 7、netstat命令
- 8、history命令
- 9、sosreport命令
- 三、查找定位文件命令
-
- 1、find命令
- 2、locate命令
- 3、whereis命令
- 4、which命令
- 四、文本文件编辑命令
-
- 1、head命令
- 2、tail命令
- 3、tr命令
- 4、wc命令
- 5、stat命令
- 6、grep命令
- 7、diff命令
- 8、uniq命令
- 9、sort命令
- 五、文件目录管理命令
-
- 1、touch命令
- 2、dd命令
- 3、file命令
- 4、tar命令
-
-
第一章 Linux命令
一、常用的系统工作命令
1、echo命令
echo命令用于在终端设备上输出字符串或变量提取后的值。
语法格式:echo [字符串]
echo [$变量]
//把指定的字符串“www.baidu.com”并输出到终端屏幕
[root@centos ~]# echo www.baidu.com
www.baidu.com
//使用“$变量”的方式提取变量出SHELL的值并输出到终端屏幕
[root@centos ~]# echo $SHELL
/bin/bash
2、date命令
date命令用于显示或设置系统的时间与日期。
语法格式: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 | 完整的年份(例如:2022) |
%d | 本月中的第几天 |
%j | 今年中的第几天 |
%n | 换行符 |
%t | 跳格 |
//按照默认格式查看当前系统时间
[root@centos ~]# date
2023年 04月 11日 星期二 15:41:27 CST
3、timedatectl命令
timedatectl命令用于设置系统的时间,英文全称:“time date control”。
语法格式:timedatectl [参数]
参数 | 作用 |
---|---|
status | 显示状态信息 |
list-timezones | 列出已知时区 |
set-time | 设置系统时间 |
set-timezone | 设置生效时区 |
//查看系统时间与时区
[root@centos ~]# timedatectl status
Local time: 二 2023-04-11 15:49:51 CST
Universal time: 二 2023-04-11 07:49:51 UTC
RTC time: 二 2023-04-11 07:49:51
Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
4、wget命令
wget命令用于在终端命令行里下载网络文件,英文全称:“web get”。
语法格式:wget [参数] URL
参数 | 作用 |
---|---|
-b | 后台下载模式 |
-P | 下载到指定目录 |
-t | 最大尝试次数 |
-c | 断点续传 |
-p | 下载页面所有资源,包括图片、视频等 |
-r | 递归下载 |
//下载电子文档
[root@centos ~]# wget https://www.linuxprobe.com/docs/LinuxProbe.pdf
--2023-04-11 15:57:51-- https://www.linuxprobe.com/docs/LinuxProbe.pdf
正在解析主机 www.linuxprobe.com (www.linuxprobe.com)... 39.98.160.175
正在连接 www.linuxprobe.com (www.linuxprobe.com)|39.98.160.175|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:23335661 (22M) [application/pdf]
正在保存至: “LinuxProbe.pdf”
LinuxProbe.pdf 100%[=======================================================================>] 22.25M 375KB/s 用时 80s
2023-04-11 15:59:12 (284 KB/s) - 已保存 “LinuxProbe.pdf” [23335661/23335661])
//递归下载www.linuxprobe.com网站中所有页面数据以及文件
[root@centos ~]# wget -r -p https://www.linuxprobe.com
--2023-04-11 15:59:58-- https://www.linuxprobe.com/
正在解析主机 www.linuxprobe.com (www.linuxprobe.com)... 39.98.160.175
正在连接 www.linuxprobe.com (www.linuxprobe.com)|39.98.160.175|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:未指定 [text/html]
正在保存至: “www.linuxprobe.com/index.html”
www.linuxprobe.com/index.html [ > ] 66.78K 421KB/s 用时 0.2s
2023-04-11 15:59:59 (421 KB/s) - “www.linuxprobe.com/index.html” 已保存 [68382]
5、ps命令
ps命令用于查看系统中的进程状态,英文全称:“processes”。
语法格式:ps [参数]
参数 | 作用 |
---|---|
-a | 显示所有进程(包括其他用户的进程) |
-u | 用户以及其他详细信息 |
-x | 显示没有控制终端的进程 |
状态 | 作用 |
---|---|
R | 运行:进程正在运行或在运行队列中等待 |
S | 中断:进程处于休眠中,当某个条件形成后或者接收到信号时,则脱离该状态 |
D | 不可中断:进程不响应系统异步信号,即使用kill命令也不能将其中断 |
Z | 僵死:进程已经终止,但进程描述符依然存在,直到父进程调用wait4()系统函数后将进程释放 |
T | 停止:进程收到停止信号后停止运行。 |
最高优先级 | |
N | 最低优先级 |
L | 被锁进内存 |
s | 包含子进程 |
I | 多线程 |
英文名称 | 中文名称 |
---|---|
USER | 进程的所有者 |
PID | 进程ID号 |
%CPU | 运算器占用率 |
%MEM | 内存占用率 |
VSZ | 虚拟内存使用量(KB) |
RSS | 占用的固定内存量(KB) |
TTY | 所在终端 |
STAT | 进程状态 |
START | 被启动的时间 |
TIME | 实际使用CPU的时间 |
COMMAND | 命令名称与参数 |
//查看当前进程状态
[root@centos ~]# ps -aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.3 176680 15056 ? Ss 14:51 0:05 /usr/lib/systemd/systemd --switched-root --system --deserialize 18
root 2 0.0 0.0 0 0 ? S 14:51 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? I 14:51 0:00 [rcu_gp]
root 11 0.0 0.0 0 0 ? R 14:51 0:00 [rcu_sched]
root 25 0.0 0.0 0 0 ? SN 14:51 0:00 [ksmd]
root 734 0.0 0.3 106256 12496 ? Ss 14:51 0:00 /usr/lib/systemd/systemd-journal
root 877 0.0 0.0 150812 2488 ? Ssl 14:51 0:00 /sbin/auditd
root 879 0.0 0.0 48560 2168 ? S 14:51 0:00 /usr/sbin/sedispatch
rtkit 907 0.0 0.0 193812 3684 ? SNsl 14:51 0:00 /usr/libexec/rtkit-daemon
root 908 0.0 0.0 17512 1620 ? SNs 14:51 0:00 /usr/sbin/alsactl -s -n 19 -c -E ALSA_CONFIG_PATH=/etc/alsa/alsactl.conf --initfile
root 924 0.0 0.3 366292 11668 ? Ssl 14:51 0:06 /usr/bin/vmtoolsd
6、pstree命令
pstree命令用于以树状图的形式展示进程之间的关系,英文全称:“process tree”。
语法格式:pstree
//查看当前进程状态
[root@centos ~]# pstree
systemd─┬─ModemManager───2*[{ModemManager}]
├─sshd
├─sssd─┬─sssd_be
│ └─sssd_nss
├─sssd_kcm
├─systemd─┬─(sd-pam)
│ ├─at-spi-bus-laun─┬─dbus-daemon───{dbus-daemon}
│ │ └─3*[{at-spi-bus-laun}]
│ ├─at-spi2-registr───2*[{at-spi2-registr}]
└─wpa_supplicant
7、top命令
top命令用于动态地监视进程活动及系统负载等信息。
语法格式:top
第一行:系统时间、运行时间、登陆终端数、系统负载(三个数值分别为1分钟、五分钟、15分钟内的平均值,数值越小意味着负载越低)。
第二行:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数。
第三行:用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比等。其中数据均为CPU数据并以百分比格式显示,例如”95.2id“意味着有95.2%的CPU处理器资源处于空闲。
第四行:物理内存总量、内存空闲量、内存使用量、作为内核缓存的内存量。
第五行:虚拟内存总量、虚拟内存空闲量、虚拟内存使用量、已被提前加载的内存量。
//查看当前系统状态
[root@centos ~]# top
top - 17:38:31 up 2:47, 1 user, load average: 0.00, 0.00, 0.00
Tasks: 232 total, 2 running, 230 sleeping, 0 stopped, 0 zombie
%Cpu(s): 2.7 us, 1.4 sy, 0.0 ni, 95.2 id, 0.0 wa, 0.7 hi, 0.0 si, 0.0 st
MiB Mem : 3709.5 total, 593.8 free, 1225.6 used, 1890.1 buff/cache
MiB Swap: 2048.0 total, 2047.2 free, 0.8 used. 2173.3 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2269 root 20 0 751056 95044 57956 R 2.0 2.5 0:25.62 Xorg
2403 root 20 0 3097972 323256 135528 S 2.0 8.5 1:16.71 gnome-shell
3768 root 20 0 952184 68916 45288 S 1.3 1.8 0:11.32 gnome-terminal-
2568 root 20 0 1123740 29772 21896 S 0.3 0.8 0:00.28 gsd-media-keys
1 root 20 0 176680 15056 8888 S 0.0 0.4 0:05.74 systemd
8、nice命令
nice命令用于调整进程的优先级。数字越低,级别越高。取值范围:-20到19。
语法格式:nice -n 优先级数字 服务名称
//将bash服务的优先级调整到最高
root@centos ~]# nice -20 bash
9、pidof命令
pidof命令用于查询某个指定服务进程的PID号。
语法格式:pidof [参数] 服务名称
//查询sshd服务程序的PID
[root@centos ~]# pidof sshd
1101
10、kill命令
kill命令用于终止某个指定PID值的服务进程。
语法格式:kill [参数] 进程的PID
//停止sshd服务
[root@centos ~]# kill 15841
//使用最高级别强制杀死sshd服务
[root@centos ~]# kill -9 15841
11、killall命令
killall命令用于终止某个指定名称的服务所对应的全部进程。
语法格式:killall [参数] 服务名称
//停止httpd的全部服务
[root@centos ~]# pidof httpd
13581 13580 13579
[root@centos ~]# killall httpd
[root@centos ~]# pidof httpd
[root@centos ~]#
二、系统状态检测命令
1、uname命令
uname命令用于查看系统内核版本与系统架构等信息,英文全称:“Unix name”。
语法格式:unmae -a
//查看系统当前的内核名称、主机名、内核发行版本、节点名、压制时间、硬件名称、处理器类型以及操作系统名称等信息
[root@centos ~]# uname -a
Linux centos 4.18.0-348.el8.x86_64 #1 SMP Tue Oct 19 15:14:17 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
//查看系统版本的详细信息
[root@centos ~]# cat /etc/redhat-release
CentOS Linux release 8.5.2111
2、uptime命令
uptime命令用于查看系统的负载信息。可以显示当前系统时间、系统以运行时间、启动终端数量以及平均负载值等信息。负载值越低越好。
语法格式:uptime
//查看当前系统的负载信息
[root@centos ~]# uptime
11:14:09 up 3:46, 1 user, load average: 0.14, 0.03, 0.01
3、free命令
free命令用于显示当前系统中内存的使用量信息。
语法格式:free -h
英文 | 中文 |
---|---|
total | 内存总量 |
used | 已用量 |
free | 空闲量 |
shared | 进程共享的内存量 |
buffers | 磁盘缓存的内存量 |
buff/cache | 缓存的内存量 |
available | 可用量 |
//查看当前系统中内存的使用量
total used free shared buff/cache available
Mem: 3.6Gi 1.3Gi 450Mi 27Mi 1.9Gi 2.1Gi
Swap: 2.0Gi 0.0Ki 2.0Gi
4、who命令
who命令用于查看当前登入主机的用户终端信息。可以快速显示出左右正在登录本机的用户名称以及他们正在开启的终端信息,如果有远程用户,还会显示出来访者的IP地址。
语法格式:who
第一列:登录的用户名
第二列:终端设备
第三列:登录到系统的时间
//查看当前登入主机的用户终端信息
[root@centos ~]# who
root :0 2022-11-15 19:28 (:0)
5、last命令
last命令用于调取主机的被访记录。系统会将每次登陆信息都记录到日志文件中。
语法格式:last
//调取当前主机的被访记录
[root@centos ~]# last
root :0 :0 Tue Nov 15 19:28 gone - no logout
reboot system boot 4.18.0-348.el8.x Tue Nov 15 19:27 still running
root tty3 tty3 Sun Nov 13 19:26 - down (00:00)
centos tty2 tty2 Sun Nov 13 19:24 - down (00:02)
reboot system boot 4.18.0-348.el8.x Sun Nov 13 19:23 - 19:27 (00:03)
wtmp begins Sun Nov 13 19:23:15 2022
6、tracepath命令
tracepath命令用于显示数据包达到目的主机途中所经过的路由信息。当两台主机之间无法正常ping通时,要考虑是否中间有错误的路由信息,导致数据被某一台设备错误弄丢了,这是便可以使用tracepath命令追踪以下所有途径的路由信息,一边分析出是哪台设备出了问题。
语法格式:tracepath [参数] 域名
//查看主机到百度途中所经过的路由信息
[root@centos ~]# tracepath www.baidu.com
1?: [LOCALHOST] pmtu 1500
1: router.ctc 4.120ms
1: router.ctc 11.614ms
2: router.ctc 2.136ms pmtu 1480
2: 192.168.1.1 5.767ms
3: 100.92.0.1 11.423ms
4: 58.216.41.65 7.388ms
5: 58.216.44.5 8.856ms
6: 58.213.95.218 13.397ms
7: no reply
8: 58.213.96.66 12.001ms asymm 10
9: no reply
7、netstat命令
netstat命令用于显示如网络连接、路由表、接口状态等网络相关信息,英文全称:“network status”。
语法格式:netstat [参数]
参数 | 作用 |
---|---|
-a | 显示所有连接中的Socket |
-p | 显示正在使用的Socket |
-t | 显示TCP协议的连接状态 |
-u | 显示UDP协议的连接状态 |
-n | 显示IP地址,不适用域名 |
-l | 仅列出正在监听的服务状态 |
-i | 显示网卡列表信息 |
-r | 显示路由表信息 |
//显示详细的网路状况
[root@centos ~]# netstat -a
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags Type State I-Node Path
unix 3 [ ] STREAM CONNECTED 31806 /run/systemd/journal/stdout
Active Bluetooth connections (servers and established)
Proto Destination Source State PSM DCID SCID IMTU OMTU Security
l2cap b0:fc:36:5f:73:6a * LISTEN 25 0x0000 0x0000 672 0 MEDIUM
Proto Destination Source State Channel
rfcomm b0:fc:36:5f:73:6a * LISTEN 3
//显示网卡列表信息
[root@centos ~]# netstat -i
Kernel Interface table
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
ens160 1500 53116 0 0 0 25533 0 0 0 BMRU
lo 65536 486 0 0 0 486 0 0 0 LRU
virbr0 1500 0 0 0 0 0 0 0 0 BMU
8、history命令
history命令用于显示执行过的命令历史。执行history命令能显示当前用户在本地计算机中执行过的最近1000条命令记录。如果觉得不够,可以自定义/etc/profile/文件中的HISTSIZE变量值。使用-c参数可以清除所有历史记录,使用“!编码数字”可以重复执行某一次的命令。历史记录通常被保存在.bash_history文件中。
语法格式:history [参数]
//查看历史记录
[root@centos ~]# history
1 ifc
2 ifconfig
3 vi yum.txt
4 cd
5 ls
6 cat yum.txt
7 vim yum.txt
8 cd
//执行第二条命令
[root@centos ~]# !2
ifconfig
ens160: flags=4163 mtu 1500
inet 192.168.2.38 netmask 255.255.255.0 broadcast 192.168.2.255
inet6 fe80::20c:29ff:fe0d:c62e prefixlen 64 scopeid 0x20
inet6 240e:3a1:3a80:1ab1:20c:29ff:fe0d:c62e prefixlen 128 scopeid 0x0
ether 00:0c:29:0d:c6:2e txqueuelen 1000 (Ethernet)
RX packets 53136 bytes 73865461 (70.4 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 25538 bytes 1426333 (1.3 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
//清空历史记录
[root@centos ~]# history -c
9、sosreport命令
sosreport命令用于收集系统配置及架构信息并输出诊断文档。
语法格式:sosreport
[root@centos ~]# sos report
sosreport (version 4.1)
This command will collect diagnostic and configuration information from
this CentOS system and installed applications.
An archive containing the collected information will be generated in
/var/tmp/sos.wlqyj4ct and may be provided to a CentOS support
representative.
Any information provided to CentOS will be treated in accordance with
the published support policies at:
Community Website : https://www.centos.org/
The generated archive may contain data considered sensitive and its
content should be reviewed by the originating organization before being
passed to any third party.
No changes will be made to system configuration.
按 ENTER 键继续,或者 CTRL-C 组合键退出。
Please enter the case id that you are generating this report for []: //此处按下回车键进行确认
Setting up archive ...
Setting up plugins ...
Running plugins. Please wait ...
Finishing plugins [Running: selinux]
Finished running plugins
生成压缩归档......
Your sosreport has been generated and saved in:
/var/tmp/sosreport-centos-2023-04-12-qzuqsed.tar.xz
Size 15.51MiB
Owner root
sha256 e388aa23cb17273d7f4cd1239ffc11a2668f718e597d6f846660d6096e6890e1
Please send this file to your support representative.
三、查找定位文件命令
1、find命令
find命令用于按照指定条件来查找文件所对应的位置。
语法格式: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 | 匹配比文件file1新但比file2旧的文件 |
–type b/d/c/p/l/f | 匹配文件类型(后面的字幕字母依次表示块设备、目录、字符设备、管道、链接文件、文本文件) |
-size | 匹配文件的大小(+50KB为查找超过50KB的文件,-50KB为查找小于50KB的文件) |
-prune | 忽略某个目录 |
-exec …{}; | 后面可跟用于进一步处理搜索结果的命令 |
//搜素整个系统中权限包括SUID权限的所有文件
[root@centos ~]# find / -perm -4000
/usr/bin/fusermount
/usr/bin/fusermount3
/usr/bin/chage
/usr/bin/gpasswd
/usr/bin/newgrp
/usr/bin/mount
/usr/bin/su
/usr/bin/umount
/usr/bin/pkexec
/usr/bin/crontab
/usr/bin/sudo
/usr/bin/vmware-user-suid-wrapper
2、locate命令
locate命令用于按照名称快速搜索文件所对应的位置。loacte命令是将一些常用的目录做成一个索引库文件,一般是叫做“/var/lib/mlocate/mlocate.db”,后续在搜索文件的时候是根据这个数据库中所包含的路径进行查找。
语法格式:locate 文件名称
//生成索引数据库
[root@centos ~]# updatedb
[root@centos ~]# ls -l /var/lib/mlocate/mlocate.db
-rw-r-----. 1 root slocate 3091703 4月 12 15:38 /var/lib/mlocate/mlocate.db
//搜索出所有包含“whereis”名称的文件所在位置
[root@centos ~]# locate whereis
/usr/bin/whereis
/usr/share/bash-completion/completions/whereis
/usr/share/man/man1/whereis.1.gz
3、whereis命令
whereis命令用于按照名称快速搜索二进制程序(命令)、源代码、帮助手册所对应的位置。
语法格式:whereis 命令名称
//查找ls命令所在的位置
[root@centos ~]# whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
4、which命令
which命令用于按照指定名称快速搜索二进制程序(命令)所对应的位置。which命令是在PATH变量所指定的路径中,按照指定条件搜索命令所在的路径,也就是说如果我们既不关心同名文件也不关心所对应的源代码和帮助文件,仅仅是想找到命令本身所在的路径,那么这个命令太适合了。
语法格式:which 命令名称
//查找whereis命令所对应的路径
[root@centos ~]# which whereis
/usr/bin/whereis
四、文本文件编辑命令
1、head命令
head命令用于查看纯文本文件的前N行。
语法格式:head [参数] 文件名称
//查看文本前10行
[root@centos ~]# head -n 10 initial-setup-ks.cfg
#version=RHEL8
# License agreement
eula --agreed
# Use graphical install
graphical
# Network information
network --bootproto=dhcp --device=ens160 --ipv6=auto --activate
network --bootproto=dhcp --hostname=centos
ignoredisk --only-use=nvme0n1
# Use CDROM installation media
2、tail命令
tail命令用于查看纯文本文件的后N行或持续刷新文件的最新内容。
语法格式:tail [参数] 文件名称
//查看文本后10行
[root@centos ~]# tail -n 10 initial-setup-ks.cfg
rootpw --iscrypted $6$wZWEEs8wPK7HNEyS$9.P48RJI77u2jI9bl0JeEAmI/GA3nz0HM8E2Ushi3lEcRSUDoHtxDgSkrBHUaMZzE/3zABKixpY1KdUtDvilj/
%addon ADDON_placeholder --enable --reserve-mb=auto
%end
%anaconda
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
%end
//实时查看最新日志文件
[root@centos ~]# tail -f /var/log/messages
Apr 12 15:38:08 centos dbus-daemon[911]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher'
Apr 12 15:38:08 centos systemd[1]: Started Network Manager Script Dispatcher Service.
Apr 12 15:38:18 centos systemd[1]: NetworkManager-dispatcher.service: Succeeded.
Apr 12 15:51:07 centos systemd[1]: Starting dnf makecache...
Apr 12 15:51:07 centos dnf[25681]: CentOS-8.5.2111 - Base - mirrors.aliyun.com 13 kB/s | 3.9 kB 00:00
Apr 12 15:51:08 centos dnf[25681]: CentOS-8.5.2111 - Extras - mirrors.aliyun.com 5.7 kB/s | 1.5 kB 00:00
Apr 12 15:51:08 centos dnf[25681]: CentOS-8.5.2111 - AppStream - mirrors.aliyun.co 16 kB/s | 4.3 kB 00:00
Apr 12 15:51:08 centos dnf[25681]: 元数据缓存已建立。
Apr 12 15:51:08 centos systemd[1]: dnf-makecache.service: Succeeded.
Apr 12 15:51:08 centos systemd[1]: Started dnf makecache.
3、tr命令
tr命令用于替换文本内容中的字符,英文全称:“translate”。
语法格式:tr [原始字符] [目标字符]
//将anaconda-ks.cfg中的英文全部换成大写
[root@centos ~]# cat anaconda-ks.cfg | tr [a-z] [A-Z]
#VERSION=RHEL8
# USE GRAPHICAL INSTALL
GRAPHICAL
REPO --NAME="APPSTREAM" --BASEURL=FILE:///RUN/INSTALL/SOURCES/MOUNT-0000-CDROM/APPSTREAM
%PACKAGES
@^GRAPHICAL-SERVER-ENVIRONMENT
KEXEC-TOOLS
%END
4、wc命令
wc命令用于统计指定文本文件的行数、字数或字节数,英文全称:“word counts”。
语法格式:wc [参数] 文件名称
参数 | 作用 |
---|---|
-l | 只显示行数 |
-w | 只显示单词数 |
-c | 只显示字节数 |
//查看系统中有多少个用户
[root@centos ~]# wc -l /etc/passwd
46 /etc/passwd
5、stat命令
stat命令用于查看文件的具体存储细节和时间等信息,英文全称:“status”。
语法格式:stat 文件名称
第一种时间状态:Access Time,最后一次内容被访问的时间,简称“Atime”
第二种时间状态:Modify Time,最后一次内容被修改的时间,简称“Mtime”
第三种时间状态:Change Time,文件属性最后一次被修改的时间,简称“Ctime”
//查看文件信息
[root@centos ~]# stat anaconda-ks.cfg
文件:anaconda-ks.cfg
大小:1086 块:8 IO 块:4096 普通文件
设备:fd00h/64768d Inode:33575045 硬链接:1
权限:(0600/-rw-------) Uid:( 0/ root) Gid:( 0/ root)
环境:system_u:object_r:admin_home_t:s0
最近访问:2023-04-12 16:08:57.532365451 +0800
最近更改:2022-11-13 19:10:24.059863927 +0800
最近改动:2022-11-13 19:10:24.059863927 +0800
创建时间:2022-11-13 19:10:23.995863851 +0800
6、grep命令
grep命令用于按行提取文本内容。
语法格式:grep [参数] 文件名称
参数 | 作用 |
---|---|
-b | 将可执行文件当作文本文件来搜索 |
-c | 仅显示找到的行数 |
-i | 忽略大小写 |
-n | 显示行号 |
-v | 反向选择——仅列出没有“关键词”的行 |
//查找当前系统中不允许登陆系统的所有用户信息
[root@centos ~]# grep /sbin/nologin /etc/passwd
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
7、diff命令
diff命令用于比较多个文件之间内容的差异,英文全称:“different”。
语法格式:diff [参数] file1 file2
参数 | 作用 |
---|---|
–brief | 确认两个文件是否不同 |
-c | 详细比较出文件的差异之处 |
//查看anaconda-ks.cfg的内容
[root@centos ~]# cat anaconda-ks.cfg
#version=RHEL8
# Use graphical install
graphical
repo --name="AppStream" --baseurl=file:///run/install/sources/mount-0000-cdrom/AppStream
%packages
@^graphical-server-environment
kexec-tools
%end
# Keyboard layouts
keyboard --xlayouts='cn
//查看initial-setup-ks.cfg的内容
[root@centos ~]# cat initial-setup-ks.cfg
#version=RHEL8
# License agreement
eula --agreed
# Use graphical install
graphical
# Network information
network --bootproto=dhcp --device=ens160 --ipv6=auto --activate
network --bootproto=dhcp --hostname=centos
ignoredisk --only-use=nvme0n1
# Use CDROM installation media
//判断文件是否相同
[root@centos ~]# diff --brief anaconda-ks.cfg initial-setup-ks.cfg
文件 anaconda-ks.cfg 和 initial-setup-ks.cfg 不同
//显示具体的不同之处
[root@centos ~]# diff -c anaconda-ks.cfg initial-setup-ks.cfg
*** anaconda-ks.cfg 2022-11-13 19:10:24.059863927 +0800
--- initial-setup-ks.cfg 2022-11-13 19:23:45.297668267 +0800
***************
*** 1,8 ****
--- 1,23 ----
#version=RHEL8
+ # License agreement
+ eula --agreed
# Use graphical install
graphical
+ # Network information
+ network --bootproto=dhcp --device=ens160 --ipv6=auto --activate
8、uniq命令
uniq命令用于去除文本中连续的重复行,中间不能夹杂其他文本行,英文全称:“unique”。
语法格式:uniq [参数] 文件名称
//去除file1文本中重复的内容,并比对两次文本的内容
[root@centos ~]# cat file1.txt
welcome to www.baidu.com
welcome to www.baidu.com
welcome to www.baidu.com
welcome to www.baidu.com
welcome to www.baidu.com
Red Hat certified
Free Linux Lessons
Linux Course
[root@centos ~]# uniq file1.txt
welcome to www.baidu.com
Red Hat certified
Free Linux Lessons
Linux Course
9、sort命令
sort命令用于对文本内容进行排序。
语法格式:sort [参数] 文件名称
参数 | 作用 |
---|---|
-f | 忽略大小写 |
-b | 忽略缩进与空格 |
-n | 以数值型排序 |
-r | 反向排序 |
-u | 去除重复行 |
-t | 指定间隔符 |
-k | 设置字段范围 |
//按照默认顺序排序并比较文本内容
[root@centos ~]# cat fruit.txt
banana
pear
apple
orange
raspaberry
[root@centos ~]# sort fruit.txt
apple
banana
orange
pear
raspaberry
//去除文本内重复内容默认排序后并比较文本内容
[root@centos ~]# cat file1.txt
welcome to www.baidu.com
Red Hat certified
welcome to www.baidu.com
Free Linux Lessons
Linux Coure
[root@centos ~]# sort -u file1.txt
Free Linux Lessons
Linux Coure
Red Hat certified
welcome to www.baidu.com
//将顺序从小打大排序
[root@centos ~]# cat number.txt
45
12
3
98
82
67
24
56
9
[root@centos ~]# sort -n number.txt
3
9
12
24
45
56
67
82
98
//将/etc/passwd文件中最后五个字段内容进行混乱排序,以第三个字段中的数字作为排序依据,并比较两个文本内容
[root@centos ~]# cat passwd
clevis:x:976:976:Clevis Decryption Framework unprivileged user:/var/cache/clevis:/sbin/nologin
gnome-initial-setup:x:975:975::/run/gnome-initial-setup/:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
centos:x:1000:1000:centos:/home/centos:/bin/bash
[root@centos ~]# sort -t : -k 3 -n passwd
tcpdump:x:72:72::/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
gnome-initial-setup:x:975:975::/run/gnome-initial-setup/:/sbin/nologin
clevis:x:976:976:Clevis Decryption Framework unprivileged user:/var/cache/clevis:/sbin/nologin
centos:x:1000:1000:centos:/home/centos:/bin/bash
五、文件目录管理命令
1、touch命令
touch命令用于创建空白文件或设置文件的时间。
语法格式:touch [参数] 文件名称
参数 | 作用 |
---|---|
-a | atime,仅修改“读取时间” |
-m | mtime,仅修改“修改时间” |
-d | 同时修改atime和mtime |
//同时修改时间
[root@centos ~]# ls -l anaconda-ks.cfg
-rw-------. 1 root root 1086 11月 13 19:10 anaconda-ks.cfg
[root@centos ~]# touch -d "2023-4-12 18:34" anaconda-ks.cfg
[root@centos ~]# ls -l anaconda-ks.cfg
-rw-------. 1 root root 1086 4月 12 18:34 anaconda-ks.cfg
2、dd命令
dd命令用于按照指定大小的数据块个数来复制或转换文件。
语法格式:dd if=参数值 of=参数值 count=参数值 bs=参数值
参数 | 作用 |
---|---|
if | 输入的文件名称 |
of | 输出的文件名称 |
bs | 设置每个块的大小 |
count | 设置要复制块的个数 |
//从/dev/zero设备文件中去除一个大小为560MB的数据块,然后保存成560_file的文件
[root@centos ~]# dd if=/dev/zero of=560_file count=1 bs=560M
记录了1+0 的读入
记录了1+0 的写出
587202560 bytes (587 MB, 560 MiB) copied, 355.916 s, 1.6 MB/s
//将光盘制作成iso镜像
记录了21082112+0 的读入
记录了21082112+0 的写出
10794041344 bytes (11 GB, 10 GiB) copied, 829.71 s, 13.0 MB/s
3、file命令
file命令用于查看文件的类型。
语法格式:file 文件名称
//查看anaconda-ks.cfg的文件类型
[root@centos ~]# file anaconda-ks.cfg
anaconda-ks.cfg: ASCII text
4、tar命令
far命令用于对文件进行打包压缩或解压。
语法格式:tar [参数] 文件名称 文件路径
参数 | 作用 |
---|---|
-c | 创建压缩文件 |
-x | 解开压缩文件 |
-t | 查看压缩包内有哪些文件 |
-z | 用gzip压缩或解压 |
-j | 用bzip2压缩或解压 |
-v | 显示压缩或解压的过程 |
-f | 目标文件名 |
-p | 保留原始的权限与属性 |
-P | 使用绝对路径来压缩 |
-C | 指定解压到的目录 |
//将/etc目录用过gzip格式进行打包压缩,并重命名为etc.tar.gz
root@centos ~]# tar czvf etc.tar.gz /etc/
tar: 从成员名中删除开头的“/”
/etc/
/etc/mtab
/etc/fstab
/etc/crypttab
/etc/resolv.conf
/etc/dnf/
//将打包压缩好的文件指定解压到/root/etc目录中
[root@centos ~]# tar xzvf etc.tar.gz -C /root/etc/
etc/
etc/mtab
etc/fstab
etc/crypttab
etc/resolv.conf
etc/dnf/
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net