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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/186658.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

测试用例的缝缝补补

&#x1f4d1;打牌 &#xff1a; da pai ge的个人主页 &#x1f324;️个人专栏 &#xff1a; da pai ge的博客专栏 ☁️山水速疾来去易&#xff0c;襄樊镇固永难开 ☁️定位页面的元素 参数:抽象类By里…

四、防火墙-NAT Server

学习防火墙之前&#xff0c;对路由交换应要有一定的认识 NAT Server1.1.基本原理1.2.多出口场景下的NAT Server1.3.源进源出 —————————————————————————————————————————————————— NAT Server 一般对用户提供一些可访问的…

apipost接口200状态码,浏览器控制台500状态码

后端 url 登录login方法 login(){this.$refs.loginForm.validate(async valid > {if (!valid) return// 由于data属性是一个json对象&#xff0c;需要进行解构赋值{data:result}&#xff0c;进行状态码判断const {data: result} await this.$http.post(/api/doLogin,this.…

普通程序员 VS 高级程序员!

见字如面&#xff0c;我是军哥&#xff01; 最近有读者朋友问我&#xff0c;普通程序员和高级程序员到底有什么区别&#xff1f;我说最关键的3点&#xff0c;你看看是否认同哈&#xff5e; 1、需求评审的能力 普通程序员&#xff0c;就是根据产品经理提的需求细节&#xff0c;开…

vue2:mixin混入的使用

前言 在使用vue2开发业务时,难免会遇到一些多组件公用的方法和基础的数值。 比如你的页面里面有很多相似的列表展示,分页器都是默认1页10行,都需要调用某个公共的接口,或者某一个操作函数很多页面都需要调用。 这个时候,就可以使用mixin和extend这两个api,将公共的数据和代码…

【鸿蒙应用ArkTS开发系列】- 云开发入门实战二 实现省市地区三级联动地址选择器组件(下)

文章目录 概述端云调用流程端侧集成AGC SDK端侧省市地区联动的地址选择器组件开发创建省市数据模型创建省市地区视图UI子组件创建页面UI视图Page文件 打包测试总结 概述 我们在前面的课程&#xff0c;对云开发的入门做了介绍&#xff0c;以及使用一个省市地区联动的地址选择器…

【点云surface】无序点云快速三角化

1 介绍 GreedyProjectionTriangulation 是一种基于局部二维投影的三维点贪婪三角剖分算法的实现。它假定局部表面光滑&#xff0c;不同点密度区域之间的过渡相对平滑。 GreedyProjectionTriangulation算法的基本思想是通过逐步投影点云数据到一个三角化网格上来进行重建。它首…

python-opencv轮廓检测(外轮廓检测和全部轮廓检测,计算轮廓面积和周长)

python-opencv轮廓检测&#xff08;外轮廓检测和全部轮廓检测&#xff0c;计算轮廓面积和周长&#xff09; 通过cv2.findContours&#xff0c;我们可以进行轮廓检测&#xff0c;当然也有很多检测模式&#xff0c;我们可以通过选择检测模式&#xff0c;进行外轮廓检测&#xff…

Redis与Mysql的数据强一致性方案

目的 Redis和Msql来保持数据同步&#xff0c;并且强一致&#xff0c;以此来提高对应接口的响应速度&#xff0c;刚开始考虑是用mybatis的二级缓存&#xff0c;发现坑不少&#xff0c;于是决定自己搞 要关注的问题点 操作数据必须是唯一索引 如果更新数据不是唯一索引&#…

极智项目 | 实战实时、多人2D人体姿态识别之OpenPose

欢迎关注我的公众号 [极智视界]&#xff0c;获取我的更多经验分享 大家好&#xff0c;我是极智视界&#xff0c;本文来介绍 实战实时、多人2D人体姿态识别之OpenPose。 本文介绍的 实战实时、多人2D人体姿态识别之OpenPose&#xff0c;提供完整的可以一键执行的项目工程源码&…

2023 hnust 湖南科技大学 信息安全管理课程 期中考试 复习资料

前言 ※老师没画重点的补充内容★往年试卷中多次出现或老师提过的&#xff0c;很可能考该笔记是奔着及格线去的&#xff0c;不是奔着90由于没有听过课&#xff0c;部分知识点不一定全&#xff0c;答案不一定完全正确 题型 试卷有很多题是原题 判断题&#xff08;PPT&#xff…

人机交互2——任务型多轮对话的控制和生成

1.自然语言理解模块 2.对话管理模块 3.自然语言生成模块

Swagger在php和java项目中的应用

Swagger在php和java项目中的应用 Swagger简介Swagger在java项目中的应用步骤常用注解 Swagger在php项目中的应用 Swagger简介 Swagger 是一个规范和完整的框架&#xff0c;用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。 总体目标是使客户端和文件系统作为服务器以…

鸿蒙开发之android开发人员指南《基础知识》

基于华为鸿蒙未来可能不再兼容android应用&#xff0c;推出鸿蒙开发系列文档&#xff0c;帮助android开发人员快速上手鸿蒙应用开发。 1. 鸿蒙使用什么基础语言开发&#xff1f; ArkTS是鸿蒙生态的应用开发语言。它在保持TypeScript&#xff08;简称TS&#xff09;基本语法风…

Android相机性能提高50%

文章目录 应用举例&#xff08;可以不看这一part&#xff0c;直接跳过看具体怎么做&#xff09;&#xff1a;Snapchat 通过 Camera2 Extensions API 将新相机功能的集成速度提高了 50%**Camera2 扩展 API 可以访问高级功能更多设备上的更多机会 正文&#xff1a;开始使用扩展架…

Swing程序设计(6)边界布局,网格布局

文章目录 前言一、布局介绍 1.边界布局2.网格布局3.网格组布局.总结 前言 Swing程序中还有两种方式边界布局&#xff0c;网格布局供程序员使用。这两种布局方式更能体现出软件日常制作的排列布局格式。 一、布局介绍 1.BorderLayout边界布局 语法&#xff1a;new BorderLayout …

2023亚马逊云科技re:Invent引领科技新潮流:云计算与生成式AI共塑未来

2023亚马逊云科技re:Invent引领科技新潮流&#xff1a;云计算与生成式AI共塑未来 历年来&#xff0c;亚马逊云科技re:Invent&#xff0c;不仅是全球云计算从业者的年度狂欢&#xff0c;更是全球云计算领域每年创新发布的关键节点。 2023年亚马逊云科技re:Invent大会在美国拉斯…

实验室信息管理系统源码,LIS系统源码,lis源码

医学检验(LIS)管理系统源码&#xff0c;云LIS系统全套商业源码 随着全自动生化分析仪、全自动免疫分析仪和全自动血球计数器等仪器的使用&#xff0c;检验科的大多数项目实现了全自动化分析。全自动化分析引入后&#xff0c;组合化验增多&#xff0c;更好的满足了临床需要&…

某软件商店app抓包分析与sign加密算法实现

文章目录 1. 写在前面2. 抓包配置3. 抓包分析4. 接口测试5. sign加密算法6. 数据效果展示 【作者主页】&#xff1a;吴秋霖 【作者介绍】&#xff1a;Python领域优质创作者、阿里云博客专家、华为云享专家。长期致力于Python与爬虫领域研究与开发工作&#xff01; 【作者推荐】…

2022年MathorCup大数据竞赛B题北京移动用户体验影响因素研究求解全过程文档及程序

2022年MathorCup高校数学建模挑战赛—大数据竞赛 B题 北京移动用户体验影响因素研究 原题再现&#xff1a; 移动通信技术飞速发展&#xff0c;给人们带来了极大便利&#xff0c;人们也越来越离不开移动通信技术带来的各种便捷。随着网络不断的建设&#xff0c;网络覆盖越来越…