当前位置: 首页 > article >正文

Linux加强篇002-部署Linux系统

目录

前言

1. shell语言

2. 执行命令的必备知识

3. 常用系统工作命令

4. 系统状态检测命令

5. 查找定位文件命令

6. 文本文件编辑命令

7. 文件目录管理命令


前言

悟已往之不谏,知来者之可追。实迷途其未远,觉今是而昨非。舟遥遥以轻飏,风飘飘而吹衣。问征夫以前路,恨晨光之熹微。

本系列依照《Linux就该这么学》第二版随书学习练习操作,将一些课本上不顺畅的地方,全部以最简方式免费开源展示给大家,资源大家可以自行百度,学习起来我们既要多巴胺也要内啡肽。

第一章写完感觉挺简单的,没想到第二章直接爆炸,居然写了两天,怕大家看不下去,推荐一首天王的歌,边听边学:<周杰伦 - 夜曲>,虽然大家做着一样的事情,但是不同的阶段还是会有不一样的感受的,希望这段学习的旅程能给大家一些思考,不要麻木做事,问师参学今何解,云在青天水在瓶。

1. shell语言

英文中的壳叫作Shell,我们在行业中也将用户终端程序称之为Shell,方便好记。Shell就是终端程序的统称,它充当了人与内核(硬件)之间的翻译官,用户把一些命令“告诉”终端程序,它就会调用相应的程序服务去完成某些工作。现在包括红帽系统在内的许多主流Linux系统默认使用的终端是Bash(Bourne-Again SHell)解释器,这个Bash解释器主要有以下4项优势:通过上下方向键来调取执行过的Linux命令;命令或参数仅需输入前几位就可以用Tab键补全;具有强大的批处理脚本;具有实用的环境变量功能。

2. 执行命令的必备知识

常见的执行Linux命令的格式是:命令名称     [命令参数]     [命令对象]

命令名称:就是语法中的“动词”,表达的是想要做的事情,例如创建用户、查看文件、重启系统等操作。

命令参数:用于对命令进行调整,让“修改”过的命令能更好地贴合工作需求,达到事半功倍的效果。

Linux命令参数的长格式与短格式示例

长格式man --help
短格式man -h

切换到root用户下,体验一下man命令

[centos8@localhost root]$ su -

Password:  

Last login: Mon Nov  6 16:58:17 PST 2023 on pts/0

[root@localhost ~]#  

[root@localhost ~]# man man

image.png

man命令中常用按键

按键作用
空格键向下翻一页
PaGe down向下翻一页
PaGe up向上翻一页
home直接前往首页
end直接前往尾页
/从上至下搜索某个关键词,如“/linux”
?从下至上搜索某个关键词,如“?linux”
n定位到下一个搜索到的关键词
N定位到上一个搜索到的关键词
q退出帮助文档

man命令中帮助信息结构和意义

结构名称代表意义
NAME命令的名称
SYNOPSIS参数的大致使用方法
DESCRIPTION介绍说明
EXAMPLES演示(附带简单说明)
OVERVIEW概述
DEFAULTS默认的功能
OPTIONS具体的可用选项(带介绍)
ENVIRONMENT环境变量
FILES用到的文件
SEE ALSO相关的资料
HISTORY维护历史与联系方式

Tab键:实现对命令、参数或文件的内容补全,两次tab可以调出所有可能的命令

image.png

Ctrl+C组合键:终止当前进程的运行

以下命令执行效果是每1s刷新一次系统负载情况,直到按下Ctrl+c组合键时才停止运行。

[root@localhost ~]# watch -n 1 uptime

image.png

+

Ctrl+D组合键:键盘输入结束。

Ctrl+L组合键:清空当前终端中已有的内容。

3. 常用系统工作命令

echo命令:用于在终端设备上输出字符串或变量提取后的值,语法格式为“echo [字符串] [$变量]”

字符串

[root@localhost ~]# echo weihongbin

weihongbin

$变量

[root@localhost ~]# echo $SHELL

/bin/bash

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完整年份(例如:2020)
%d本月中的第几天
%j今年中的第几天
%n换行符(相当于按下回车键)
%t跳格(相当于按下Tab键)

默认格式

[root@localhost ~]# date

Mon Nov  6 17:27:55 PST 2023

“年-月-日 小时:分钟:秒”

[root@localhost ~]# date "+%Y-%m-%d %H:%M:%S"

2023-11-06 17:29:16

设置为2020年11月1日8点30分

[root@localhost ~]# date -s "20231107 9:34:00"

Tue Nov  7 09:34:00 PST 2023

参数%j可用来查看今天是当年中的第几天

[root@localhost ~]# date "+%j"

311

timedatectl命令:用于设置系统的时间,语法格式为“timedatectl [参数]”

timedatectl命令参数以及作用

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

查看系统时间与时区

[root@localhost ~]# timedatectl status  

              Local time: Tue 2023-11-07 10:59:14 PST

          Universal time: Tue 2023-11-07 18:59:14 UTC

                RTC time: Tue 2023-11-07 03:06:47

               Time zone: America/Los_Angeles (PST, -0800)

System clock synchronized: no

             NTP service: active

         RTC in local TZ: no

时区不是上海(Asia/Shanghai),可以手动进行设置

[root@localhost ~]# timedatectl set-timezone Asia/Shanghai  

网络授时NTP:编辑文件 "/etc/ntp.conf",根据情况修改文件内容为:

driftfile  /var/lib/ntp/drift

pidfile   /var/run/ntpd.pid

logfile /var/log/ntp.log

restrict    default kod nomodify notrap nopeer noquery

restrict -6 default kod nomodify notrap nopeer noquery

restrict 127.0.0.1

server 127.127.1.0

fudge  127.127.1.0 stratum 10

server ntp.aliyun.com iburst minpoll 4 maxpoll 10

restrict ntp.aliyun.com nomodify notrap nopeer noquery

查看一下时间是否准确:date

reboot命令:用于重启系统

[root@localhost ~]# reboot

poweroff命令:用于关闭系统

[root@localhost ~]# poweroff

wget命令:用于在终端命令行中下载网络文件,语法格式为“wget [参数] 网址”

wget命令中的参数以及作用

参数作用
-b后台下载模式
-P下载到指定目录
-t最大尝试次数
-c断点续传
-p下载页面内所有资源,包括图片、视频等
-r递归下载

递归下载并存到指定网址目录

[root@localhost ~]# wget -r -p https://**

ps命令:用于查看系统中的进程状态,语法格式为“ps [参数]”

ps命令中的参数以及作用

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

Linux系统中有5种常见的进程状态,分别为运行、中断、不可中断、僵死与停止

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

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

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

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

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

高优先级(<)、低优先级(N)、被锁进内存(L)、包含子进程(s)多线程(l)5种补充形式

执行ps aux命令

USERPID%CPU%MEMVSZRSSTTYSTATSTARTTIMECOMMAND
进程的所有者进程ID号运算器占用率内存占用率虚拟内存使用量(单位是KB)占用的固定内存量(单位是KB)所在终端进程状态被启动的时间实际使用CPU的时间命令名称与参数
root10.00.524474010636?Ss07:540:02

root20.00.000?S07:540:00

root30.00.000?I<07:540:00

root40.00.000?I<07:540:00

root50.00.000?I<07:540:00

root60.00.000?I<07:540:00

root70.00.000?S07:540:00

root80.00.000?I07:540:00

root90.00.000?S07:540:00

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

[root@localhost ~]# pstree

systemd─┬─ModemManager───2*[{ModemManager}]

       ├─NetworkManager───2*[{NetworkManager}]

       ├─VGAuthService

       ├─3*[abrt-dump-journ]

       ├─abrtd───2*[{abrtd}]

       ├─alsactl

       ├─anacron

       ├─atd

       ├─auditd─┬─sedispatch

       │        └─2*[{auditd}]

       ├─avahi-daemon───avahi-daemon

top命令:用于动态地监视进程活动及系统负载等信息

image.png

第1行:系统时间、运行时间、登录终端数、系统负载(3个数值分别为1分钟、5分钟、15分钟内的平均值,数值越小意味着负载越低)。

第2行:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数。

第3行:用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比等。其中数据均为CPU数据并以百分比格式显示,例如“99.9 id”意味着有99.9%的CPU处理器资源处于空闲。

第4行:物理内存总量、内存空闲量、内存使用量、作为内核缓存的内存量。

第5行:虚拟内存总量、虚拟内存空闲量、虚拟内存使用量、已被提前加载的内存量。

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

PR和NI值代表的是进程的优先级,数字越低(取值范围是-20~19),优先级越高

-g 匹配进程组ID

-n 设置优先级别

-p 匹配进程ID

-u 匹配用户ID

[root@bogon ~]# nice -n -20 bash

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

每个进程的进程号码值(PID)是唯一的,可以用于区分不同的进程

[root@bogon ~]# pidof sshd

1861 1843 1046

kill命令:用于终止某个指定PID值的服务进程,语法格式为“kill [参数] 进程的PID”

使用kill命令把上面用pidof命令查询到的PID所代表的进程终止掉

[root@bogon ~]# kill 2156

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

[root@bogon ~]# kill -9 2156

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

[root@bogon ~]# pidof sshd

1861 1843 1046

[root@bogon ~]# killall sshd

[root@bogon ~]# pidof sshd

4. 系统状态检测命令

ifconfig命令:用于获取网卡配置与网络状态等信息,语法格式为“ifconfig [参数] [网络设备]”主要查看的就是网卡名称、inet参数后面的IP地址、ether参数后面的网卡物理地址(又称为MAC地址),以及RX、TX的接收数据包与发送数据包的个数及累计流量(即下面红色的信息内容):

[root@bogon ~]# ifconfig  

ens160: flags=4163  mtu 1500

       inet 192.168.227.134  netmask 255.255.255.0  broadcast 192.168.227.255

       inet6 fe80::20c:29ff:fe57:4d51  prefixlen 64  scopeid 0x20

       ether 00:0c:29:57:4d:51  txqueuelen 1000  (Ethernet)

       RX packets 2178  bytes 194630 (190.0 KiB)

       RX errors 0  dropped 0  overruns 0  frame 0

       TX packets 1286  bytes 855375 (835.3 KiB)

       TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

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

[root@bogon ~]# uname -a

Linux bogon 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@bogon ~]# cat /etc/redhat-release  

CentOS Linux release 8.5.2111

uptime命令:用于查看系统的负载信息,显示当前系统时间、系统已运行时间、启用终端数量以及平均负载值等信息。平均负载值指的是系统在最近1分钟、5分钟、15分钟内的压力情况(下面红色的信息部分),负载值越低越好(负载值保持在1左右,在生产环境中不要超过5就好):

[root@bogon ~]# uptime  

10:01:39 up  1:09,  1 user,  load average: 0.00, 0.00, 0.00

free命令:用于显示当前系统中内存的使用量信息,语法格式为“free [-h]”在使用free命令时,可以结合使用-h参数以更人性化的方式输出当前内存的实时使用量信息:

[root@bogon ~]# free -h

内存总量已用量空闲量共享使用的内存量缓存的内存量可用量

             total        used        free      shared  buff/cache   available

Mem:          1.7Gi       335Mi       1.0Gi       9.0Mi       432Mi       1.3Gi

Swap:         2.0Gi          0B       2.0Gi

who命令:用于查看当前登入主机的用户终端信息,有远程用户,还会显示出来访者的IP地址

[root@bogon ~]# who

登陆的用户名终端设备

登陆到系统的时间(远程IP)

root     pts/0        2023-11-08 08:54 (192.168.227.1)

last命令用于调取主机的被访记录

[root@bogon ~]# last

root     pts/0        192.168.227.1    Wed Nov  8 08:54   still logged in

reboot   system boot  4.18.0-348.el8.x Wed Nov  8 08:52   still running

root     pts/0        192.168.227.1    Tue Nov  7 08:57 - crash  (23:54)

root     tty1                          Tue Nov  7 08:57 - crash  (23:55)

ping命令:用于测试主机之间的网络连通性,语法格式为“ping [参数] 主机地址”ping一下自己(上方红色ip)

ping命令中参数及作用

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

[root@bogon ~]# ping -c 2 192.168.227.134

PING 192.168.227.134 (192.168.227.134) 56(84) bytes of data.

64 bytes from 192.168.227.134: icmp_seq=1 ttl=64 time=0.055 ms

64 bytes from 192.168.227.134: icmp_seq=2 ttl=64 time=0.072 ms

--- 192.168.227.134 ping statistics ---

2 packets transmitted, 2 received, 0% packet loss, time 1004ms

rtt min/avg/max/mdev = 0.048/0.049/0.050/0.001 ms

tracepath命令:用于显示数据包到达目的主机时途中经过的所有路由信息,语法格式为“tracepath [参数] 域名”使用tracepath命令追踪数据包到达目的主机时途中的所有路由信息,以分析是哪台设备出了问题:

[root@bogon ~]# tracepath www.baidu.com

1?: [LOCALHOST]                      pmtu 1500

1:  bogon                                                 0.284ms  

1:  bogon                                                 0.246ms  

2:  no reply

netstat命令:用于显示如网络连接、路由表、接口状态等的网络相关信息,语法格式为“netstat [参数]”可以查看到网络状态的方方面面信息:

netstat命令中参数及作用

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

显示详细的网络状况:

[root@bogon ~]# 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:sunrpc          0.0.0.0:*               LISTEN      

tcp        0      0 bogon:domain            0.0.0.0:*               LISTEN      

tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN      

tcp        0      0 localhost:ipp           0.0.0.0:*               LISTEN      

tcp        0      0 localhos:x11-ssh-offset 0.0.0.0:*               LISTEN      

tcp        0    172 bogon:ssh               bogon:57126             ESTABLISHED

tcp6       0      0 [::]:sunrpc             [::]:*                  LISTEN      

tcp6       0      0 [::]:ssh                [::]:*                  LISTEN      

tcp6       0      0 localhost:ipp           [::]:*                  LISTEN      

tcp6       0      0 localhos:x11-ssh-offset [::]:*                  LISTEN      

udp        0      0 bogon:domain            0.0.0.0:*                          

udp        0      0 0.0.0.0:bootps          0.0.0.0:*  

显示网卡列表:

[root@bogon ~]# 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     3820      0      0 0          1913      0      0      0 BMRU

lo              65536       26      0      0 0            26      0      0      0 LRU

virbr0           1500        0      0      0 0             0      0      0      0 BMU

history命令:用于显示执行过的命令历史,语法格式为“history [-c]”

[root@bogon ~]# history  

   1  ll

   2  pidof sshd

   3  ifconfig  

   4  uname -a

   5  cat /etc/redhat-release  

历史命令会被保存到用户家目录中的.bash_history文件中。Linux系统中以点(.)开头的文件均代表隐藏文件

[root@bogon ~]# cat ~/.bash_history

ll

清空当前用户在本机上执行的Linux命令历史记录信息:

[root@bogon ~]# history -c

“!编码数字”的命令格式重复执行某一次的命令记录:

[root@bogon ~]# history

 106  ll

[root@bogon ~]# !106

ll

total 2167564

-rw-r--r--.   1 root    root     587202560 Nov  8 15:53 560

-rw-------.   1 root    root          2788 Nov  9  2023 anaconda-ks.cfg

sosreport命令:用于收集系统配置及架构信息并输出诊断文档,简单收集系统的运行状态和服务配置信息,红色的部分是收集好的资料压缩文件以及校验码,将其发送给技术支持人员即可:

[root@bogon ~]# sosreport  

Please note the 'sosreport' command has been deprecated in favor of the new 'sos' command, E.G. 'sos report'.

Redirecting to '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.wasb39e_ 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.

Press ENTER to continue, or CTRL-C to quit.

此处按下回车键进行确认

Please enter the case id that you are generating this report for []:  此处按下回车键进行确认

Setting up archive ...

Setting up plugins ...

...

Your sosreport has been generated and saved in:

/var/tmp/sosreport-bogon-2023-11-08-xvluhty.tar.xz

Size 15.10MiB

Owner root

sha256 83cef5b4398ad35aa4c06c3a0cbcfb2bacefc0faa2c03beb6df84220a34832d6

Please send this file to your support representative.

5. 查找定位文件命令

pwd命令:用于显示用户当前所处的工作目录

[root@bogon ~]# pwd

/root

cd命令:用于切换当前的工作路径,语法格式为“cd [参数] [目录]”“cd -”命令返回到上一次所处的目录,使用“cd ..”命令进入上级目录,以及使用“cd ~”命令切换到当前用户的家目录,使用“cd ~username”命令切换到其他用户的家目录

[root@bogon ~]# cd /etc/

[root@bogon etc]# cd -

/root

[root@bogon ~]# cd ..

[root@bogon /]# cd ~

[root@bogon ~]#  

ls命令:用于显示目录中的文件信息,语法格式为“ls [参数] [文件名称]”使用ls命令的-a参数可以看到全部文件(包括隐藏文件),使用-l参数可以查看文件的属性、大小等详细信息,使用-d参数可以查看目录属性信息

[root@bogon ~]# ls -al

total 48

dr-xr-x---.  5 root root  280 Nov  8 11:06 .

dr-xr-xr-x. 17 root root  245 Nov  6 14:39 ..

-rw-------.  1 root root 2788 Nov  6 11:37 anaconda-ks.cfg

-rw-------.  1 root root    3 Nov  7 17:21 .bash_history

tree命令:用于以树状图的形式列出目录内容及结构

[root@bogon ~]# tree

.

├── anaconda-ks.cfg

└── original-ks.cfg

0 directories, 2 files

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匹配比文件f1新但比f2旧的文件
-type b/d/c/p/l/f匹配文件类型(后面的字幕字母依次表示块设备、目录、字符设备、管道、链接文件、文本文件)
-size匹配文件的大小(+50KB为查找超过50KB的文件,而-50KB为查找小于50KB的文件)
-prune忽略某个目录
-exec …… {}\;后面可跟用于进一步处理搜索结果的命令

获取该目录中所有以host开头的文件列表

[root@bogon ~]# find /etc -name "host*" -print

/etc/host.conf

/etc/hosts

/etc/nvme/hostnqn

/etc/nvme/hostid

/etc/avahi/hosts

/etc/hostname

搜索权限中包括SUID权限的所有文件

[root@bogon ~]# find / -perm -4000 -print

/usr/bin/fusermount

/usr/bin/chage

/usr/bin/gpasswd

/usr/bin/newgrp

/usr/bin/mount

找出所有归属于子用户的文件并复制到/root/findresults目录中

先查一下自己的子用户

[root@bogon ~]# cat /etc/passwd

centos8:x:1000:1000:centos_8:/home/centos8:/bin/bash

[root@bogon ~]# find / -user centos8 -exec cp -a {} /root/findresults/ \;

[root@bogon ~]# ll

total 20

-rw-------.   1 root    root    2788 Nov  6 11:37 anaconda-ks.cfg

drwx------. 116 centos8 centos8 8192 Nov  8 14:32 findresults

-rw-------.   1 root    root    2106 Nov  6 11:37 original-ks.cfg

locate命令:用于按照名称快速搜索文件所对应的位置,语法格式为“locate文件名称”使用locate命令时,先使用updatedb命令生成一个索引库文件,这个库文件的名字是/var/lib/mlocate/mlocate.db,后续在使用locate命令搜索文件时就是在该库中进行查找操作

[root@bogon ~]# updatedb

[root@bogon ~]# ll /var/lib/mlocate/mlocate.db  

-rw-r-----. 1 root slocate 3764716 Nov  8 14:48 /var/lib/mlocate/mlocate.db

[root@bogon ~]# locate whereis

/usr/bin/whereis

/usr/share/bash-completion/completions/whereis

/usr/share/man/man1/whereis.1.gz

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

[root@bogon ~]# whereis ls

ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz

which命令:用于按照指定名称快速搜索二进制程序(命令)所对应的位置,语法格式为“which命令名称”主要为了找到命令本身所在的路径

[root@bogon ~]# which locate

/usr/bin/locate

[root@bogon ~]# which whereis

/usr/bin/whereis

6. 文本文件编辑命令

cat命令:用于查看内容较少纯文本文件,语法格式为“cat [参数] 文件名称”-n参数表示展示行数

[root@bogon ~]# cat -n anaconda-ks.cfg  

    1 #version=RHEL8

    2 # Reboot after installation

    3 reboot

    4 # Use graphical install

    5 graphical

more命令:用于查看内容较多纯文本文件,语法格式为“more [参数] 文件名称”more命令会在最下面使用百分比的形式来提示您已经阅读了多少内容;还可以使用空格键或回车键向下翻页

[root@bogon ~]# more anaconda-ks.cfg  

    #version=RHEL8

    # Reboot after installation

    reboot

    # Use graphical install

    graphical

...

--More--(60%)

head命令:用于查看纯文本文件的前N行,语法格式为“head [参数] 文件名称”

查看文本中前3行的内容:

[root@bogon ~]# head -n 3 anaconda-ks.cfg  

#version=RHEL8

# Reboot after installation

reboot

tail命令:用于查看纯文本文件的后N行或持续刷新文件的最新内容,语法格式为“tail [参数] 文件名称”

查看文本中后3行的内容(最新):

[root@bogon ~]# tail -n 3 anaconda-ks.cfg  

%addon com_redhat_kdump --enable --reserve-mb='auto'

%end

持续刷新一个文件的内容:

[root@bogon ~]# tail -f /var/log/messages

Nov  8 14:44:42 bogon systemd[1]: Started Network Manager Script Dispatcher Service.

Nov  8 14:44:42 bogon systemd[1]: systemd-tmpfiles-clean.service: Succeeded.

Nov  8 14:44:42 bogon systemd[1]: Started Cleanup of Temporary Directories.

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

把某个文本内容中的英文全部替换为大写:

[root@bogon ~]# cat anaconda-ks.cfg | tr [a-z] [A-Z]

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

wc命令中参数及作用

参数作用
-l只显示行数
-w只显示单词数
-c只显示字节数

统计当前系统中有多少个用户

[root@bogon ~]# wc -l /etc/passwd

47 /etc/passwd

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

使用state命令查看文件的这3种时间状态信息:

[root@bogon ~]# stat anaconda-ks.cfg

 File: anaconda-ks.cfg

 Size: 2788       Blocks: 8          IO Block: 4096   regular file

Device: 10303h/66307d Inode: 35912821    Links: 1

Access: (0600/-rw-------)  Uid: (    0/    root)   Gid: (    0/    root)

Context: system_u:object_r:admin_home_t:s0

Access: 2023-11-08 11:05:37.154849436 +0800

Modify: 2023-11-06 11:37:22.053500992 +0800

Change: 2023-11-06 11:37:22.053500992 +0800

Birth: 2023-11-06 11:37:21.963500146 +0800

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

-n参数用来显示搜索到的信息的行号

-v参数用于反选信息(即没有包含关键词的所有信息行)

grep命令中参数及其作用

参数作用
-b将可执行文件(binary)当作文本文件(text)来搜索
-c仅显示找到的行数
-i忽略大小写
-n显示行号
-v反向选择——仅列出没有“关键词”的行。

使用grep命令查找出当前系统中不允许登录系统的所有用户的信息:

[root@bogon ~]# 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

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

提取出passwd文件中的用户名信息,即提取以冒号(:)为间隔符号的第一列内容:

[root@bogon ~]# cut -d : -f 1 /etc/passwd

root

bin

daemon

diff命令:用于比较多个文件之间内容的差异,语法格式为“diff [参数] 文件名称A 文件名称B”使用--brief参数来确认两个文件是否相同,使用-c参数来详细比较出多个文件的差异之处

做俩文件,复制一样的内容,稍微改一行

[root@bogon ~]# vim test1

[root@bogon ~]# vim test2

[root@bogon ~]# diff --brief test1 test2

Files test1 and test2 differ

[root@bogon ~]# diff -c test1 test2

*** test1 2023-11-08 15:24:51.300664734 +0800

--- test2 2023-11-08 15:25:20.331739086 +0800

***************

*** 2,8 ****

 bin

 daemon

 adm

! lp

 sync

 shutdown

 halt

--- 2,8 ----

 bin

 daemon

 adm

! LP

 sync

 shutdown

 halt

uniq命令:用于去除文本中连续的重复行,语法格式为“uniq [参数] 文件名称”

[root@bogon ~]# uniq test2

root

bin

daemon

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

sort命令中参数及作用

参数作用
-f忽略大小写
-b忽略缩进与空格
-n以数值型排序
-r反向排序
-u去除重复行
-t指定间隔符
-k设置字段范围

默认会按照字母顺序进行排序:

[root@bogon ~]# sort test1

-u参数进行去重操作:

[root@bogon ~]# sort -u test1

-n参数进行数字排序操作:

[root@bogon ~]# sort -n test1

用-t参数指定间隔符:,用-k参数指定第3列,用-n参数进行数字排序/etc/passwd文件:

[root@bogon ~]# sort -t : -k 3 -n /etc/passwd

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

7. 文件目录管理命令

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

touch命令中参数及作用

参数作用
-a仅修改“读取时间”(atime)
-m仅修改“修改时间”(mtime)
-d同时修改atime与mtime

用touch命令把修改后的文件时间设置成修改之前的时间(隐藏文件修改事实):

[root@bogon ~]# touch -d "2023-11-09 15:44" anaconda-ks.cfg

[root@bogon ~]# ls -l anaconda-ks.cfg  

-rw-------. 1 root root 2788 Nov  9  2023 anaconda-ks.cfg

mkdir命令:用于创建空白的目录,语法格式为“mkdir [参数] 目录名称”

-p参数来递归创建出具有嵌套层叠关系的文件目录:

[root@bogon ~]# mkdir -p /a/b/c

[root@bogon ~]# tree /a

/a

└── b

   └── c

2 directories, 0 files

cp命令:用于复制文件或目录,语法格式为“cp [参数] 源文件名称 目标文件名称”目标文件是目录,则会把源文件复制到该目录中;目标文件也是普通文件,则会询问是否要覆盖它;目标文件不存在,则执行正常的复制操作

 cp命令中参数及作用

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

[root@bogon ~]# ll test1

-rw-r--r--. 1 root root 48 Nov  8 15:24 test1

[root@bogon ~]# cp -a test1 test2

cp: overwrite 'test2'?  

[root@bogon ~]# ll test2

-rw-r--r--. 1 root root 48 Nov  8 15:25 test2

mv命令:用于剪切或重命名文件,语法格式为“mv [参数] 源文件名称 目标文件名称”默认会把源文件删除,只保留剪切后的文件。如果在同一个目录中将某个文件剪切后还粘贴到当前目录下,其实也就是对该文件进行了重命名操作:

[root@bogon ~]# mv test1 test3

[root@bogon ~]# ll test3

-rw-r--r--. 1 root root 48 Nov  8 15:24 test3

rm命令:用于删除文件或目录,语法格式为“rm [参数] 文件    名称”

rm命令中参数及作用

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

rm命令后-f参数来强制删除。-r参数删除目录:

[root@bogon ~]# rm -rf test3

[root@bogon ~]# ll test3

ls: cannot access 'test3': No such file or directory

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

 dd命令中参数及作用

参数作用
if输入的文件名称
of输出的文件名称
bs设置每个“块”的大小
count设置要复制“块”的个数

dd命令从/dev/zero设备文件中取出一个大小为560MB的数据块,然后保存成名为560的文件:

[root@bogon ~]# dd if=/dev/zero of=560 count=1 bs=560M

1+0 records in

1+0 records out

587202560 bytes (587 MB, 560 MiB) copied, 3.56762 s, 165 MB/s

[root@bogon ~]# ls -hl 560

-rw-r--r--. 1 root root 560M Nov  8 15:53 560

使用dd命令来压制出光盘镜像文件(首先确保虚拟机设置设备连接且使用iso映像文件):

image.png

(时间太长我直接ctrl+c终止了,需要打包的可以试试应该是10.1G)

[root@bogon ~]# dd if=/dev/cdrom of=RHEL-server-8.5.iso

3188193+0 records in

3188192+0 records out

1632354304 bytes (1.6 GB, 1.5 GiB) copied, 541.769 s, 3.0 MB/s

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

使用file命令来查看文件类型:

[root@bogon ~]# file anaconda-ks.cfg  

anaconda-ks.cfg: ASCII text

tar命令:用于对文件进行打包压缩或解压,语法格式为“tar参数 文件名称”Linux系统中,主要使用的是.tar、.tar.gz或.tar.bz2格式

tar命令中参数及作用

参数作用
-c创建压缩文件
-x解开压缩文件
-t查看压缩包内有哪些文件
-z用Gzip压缩或解压
-j用bzip2压缩或解压
-v显示压缩或解压的过程
-f目标文件名
-p保留原始的权限与属性
-P使用绝对路径来压缩
-C指定解压到的目录

“tar -czvf压缩包名称.tar.gz要打包的目录”命令把指定的文件进行打包压缩;解压命令为“tar -xzvf压缩包名称.tar.gz”

[root@bogon ~]# tar -zcvf test.tar.gz test2  

test2

[root@bogon ~]# tar -zxvf test.tar.gz

test2

上一章把多用户图形改成了文本,有好多人不适应,所以我们也可以通过软链换回来,命令如下:

[root@bogon ~]# ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target


http://www.kler.cn/a/149681.html

相关文章:

  • Redis高可用-主从复制
  • 网页版五子棋——对战模块(服务器端开发②)
  • 【Rust练习】21.动态数组 Vector
  • 想租用显卡训练自己的网络?AutoDL保姆级使用教程(PyCharm版)
  • Day 63 || 拓扑排序、dijkstra
  • 统信UOS开发环境支持Electron
  • SimpleDateFormat在多线程下的安全问题
  • 392. 判断子序列
  • 【JavaScript】3.3 JavaScript工具和库
  • 【开题报告】基于深度学习的驾驶员危险行为检测系统
  • WebSocket--1.协议解析
  • Pt100 和 Pt1000 传感器:重要事实和差异
  • 纯前端实现导入excel数据
  • 【解决视觉引导多个位置需要标定多个位置的问题】
  • C++ cmake脚本链接Boost库
  • 网关路由器双栈配置中的IPv6相关选项解析
  • 【学习记录】从0开始的Linux学习之旅——编译linux内核
  • OpenAI 画图工具 DALL E 相关分享
  • python:类中静态方法,类方法和实例方法的使用与区别
  • 拼多多刷新Q3财报纪录,大涨18%股价直逼阿里
  • 网络篇---第五篇
  • uniapp基础-教程之HBuilderX配置篇-01
  • 数据结构:哈希表讲解
  • 《大话设计模式》(持续更新中)
  • MSI Center,XBox从任务栏取消固定
  • 基于ssm亚盛汽车配件销售业绩管理系统