Linux加强篇002-部署Linux系统

news2024/12/23 19:02:55

目录

前言

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.coloradmin.cn/o/1249612.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot : ch05 整合Mybatis

前言 随着Java Web应用程序的快速发展&#xff0c;开发人员需要越来越多地关注如何高效地构建可靠的应用程序。Spring Boot作为一种快速开发框架&#xff0c;旨在简化基于Spring的应用程序的初始搭建和开发过程。而MyBatis作为一种优秀的持久层框架&#xff0c;提供了对数据库…

【微服务专题】SpringBoot自动配置源码解析

目录 前言阅读对象阅读导航前置知识笔记正文0、什么是自动配置0.1 基本概念0.2 SpringBoot中的【约定大于配置】0.3 从SpringMVC看【约定大于配置】0.4 从Redis看【约定大于配置】 一、EnableAutoConfiguration源码解析二、SpringBoot常用条件注解源码解析2.1 自定义条件注解2.…

web前端开发基础----标准流布局和非标准流布局

1&#xff0c;标准流布局 标准流&#xff0c;也称文档流或普通流&#xff0c;是所有元素默认的布局方式。 在标准流中&#xff0c;元素按照其在 HTML 中出现的顺序&#xff0c;自上而下依次排列&#xff0c;并占据其父容器内的可用空间。 标准流中的元素按照其自然尺寸和位置进…

Oracle研学-介绍及安装

一 ORACLE数据库特点: 支持多用户&#xff0c;大事务量的事务处理数据安全性和完整性控制支持分布式数据处理可移植性(跨平台&#xff0c;linux转Windows) 二 ORACLE体系结构 数据库&#xff1a;oracle是一个全局数据库&#xff0c;一个数据库可以有多个实例&#xff0c;每个…

【Rust日报】2023-11-22 Floneum -- 基于 Rust 的一款用于 AI 工作流程的图形编辑器

Floneum -- 基于 Rust 的一款用于 AI 工作流程的图形编辑器 Floneum 是一款用于 AI 工作流程的图形编辑器&#xff0c;专注于社区制作的插件、本地 AI 和安全性。 Floneum 有哪些特性&#xff1a; 可视化界面&#xff1a;您无需任何编程知识即可使用Floneum。可视化图形编辑器可…

【数据库篇】关系模式的表示——(1)问题的提出

1、关系模式的表示 R&#xff1a;表示关系的名字比如&#xff1a;sc选课表&#xff0c;student学生表。 U&#xff1a;表示一个关系模式的所有属性&#xff0c;比如student表&#xff1a;U&#xff08;sno&#xff0c;sname&#xff0c;sage&#xff0c;ssex&#xff09;。 …

代码随想录算法训练营第五十四天|392.判断子序列 115.不同的子序列

文档讲解&#xff1a;代码随想录 视频讲解&#xff1a;代码随想录B站账号 状态&#xff1a;看了视频题解和文章解析后做出来了 392.判断子序列 class Solution:def isSubsequence(self, s: str, t: str) -> bool:dp [[0] * (len(t)1) for _ in range(len(s)1)]for i in ra…

mysql 变量和配置详解

MySQL 中还有一些特殊的全局变量&#xff0c;如 log_bin、tmpdir、version、datadir&#xff0c;在 MySQL 服务实例运行期间它们的值不能动态修改&#xff0c;也就是不能使用 SET 命令进行重新设置&#xff0c;这种变量称为静态变量。数据库管理员可以使用前面提到的修改源代码…

吴恩达《机器学习》10-1-10-3:决定下一步做什么、评估一个假设、模型选择和交叉验证集

一、决定下一步做什么 在机器学习的学习过程中&#xff0c;我们已经接触了许多不同的学习算法&#xff0c;逐渐深入了解了先进的机器学习技术。然而&#xff0c;即使在了解了这些算法的情况下&#xff0c;仍然存在一些差距&#xff0c;有些人能够高效而有力地运用这些算法&…

为什么要隐藏id地址?使用IP代理技术可以实现吗?

随着网络技术的不断发展&#xff0c;越来越多的人开始意识到保护个人隐私的重要性。其中&#xff0c;隐藏自己的IP地址已经成为了一种常见的保护措施。那么&#xff0c;为什么要隐藏IP地址&#xff1f;使用IP代理技术可以实现吗&#xff1f;下面就一起来探讨这些问题。 首先&am…

【Qt之QTextDocument】使用及表格显示富文本解决方案

【Qt之QTextDocument】使用 描述常用方法及示例使用QTextList使用QTextBlock使用QTextTable表格显示富文本结论 描述 QTextDocument类保存格式化的文本。 QTextDocument是结构化富文本文档的容器&#xff0c;支持样式文本和各种文档元素&#xff0c;如列表、表格、框架和图像。…

oled的使用 动态的变量 51

源码均在IIC手写程序中 外部中断实现变量加一 #include "reg52.h" #include "main.h" #include <intrins.h> #include "OLED.h" #include "bmp.h" #include "Delay.h" sbit LED1 P1^0; sbit LED2 P1^1; sbit LED3…

项目实战详细讲解带有条件响应的 SQL 盲注、MFA绕过技术、MFA绕过技术、2FA绕过和技巧、CSRF绕过、如何寻找NFT市场中的XSS漏洞

项目实战详细讲解带有条件响应的 SQL 盲注、MFA绕过技术、MFA绕过技术、2FA绕过和技巧、CSRF绕过、如何寻找NFT市场中的XSS漏洞。 带有条件响应的 SQL 盲注 这篇文章的核心要点如下: 漏洞发现:作者在Portswigger提供的实验室中发现了一个盲SQL注入漏洞。这个漏洞存在于一个应…

【前端】数据行点击选择

前言 【前篇文章】说了,我们公司的核心价值就是让人越来越懒,能怎么便捷就怎么便捷,主打一个简单实用又快捷,为了实现这个目标,我看成这个列表陷入了深思在想,要不要子表的数据加载在点击这个行时,就可以展示数据,这样就不用每次都要点那个小圆圈啦。 查资料 这显然…

2、git进阶操作

2、git进阶操作 2.1.1 分支的创建 命令参数含义git branch (git checkout -b)<new_branch> <old_branch>表示创建分支-d <-D>删除分支 –d如果分支没有合并&#xff0c;git会提醒&#xff0c;-D强制删除-a -v查看分支-m重新命名分支commit id从指定的commi…

centos 7.9 下利用miniconda里的pyinstaller打包python程序为二进制文件操作方法

centos 7.9 下利用miniconda里的pyinstaller打包python程序为二进制文件操作方法 一.centos 7.9 操作系统安装 参考&#xff1a;https://blog.csdn.net/qq_46015509/article/details/134572030?utm_sourceminiapp_weixin 安装完成后用后台连接工具连上虚拟机 二.安装python3 …

「Verilog学习笔记」数据串转并电路

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点&#xff0c;刷题网站用的是牛客网 关于什么是Valid/Ready握手机制&#xff1a; 深入 AXI4 总线&#xff08;一&#xff09;握手机制 - 知乎 时序图含有的信息较多&#xff0c;观察时序图需要注意&#xff1a…

【自主探索】基于 rrt_exploration 的单个机器人自主探索建图

文章目录 一、rrt_exploration 介绍1、原理2、主要思想3、拟解决的问题4、优缺点 二、安装环境三、安装与运行1、安装2、运行 四、配置自己的机器人1、Robots Network2、Robots frame names in tf3、Robots node and topic names4、Setting up the navigation stack on the rob…

芯能科技-603105 三季报分析(20231123)

芯能科技-603105 基本情况 公司名称&#xff1a;浙江芯能光伏科技股份有限公司 A股简称&#xff1a;芯能科技 成立日期&#xff1a;2008-07-09 上市日期&#xff1a;2018-07-09 所属行业&#xff1a;电气机械和器材制造业 周期性&#xff1a;1 主营业务&#xff1a;分布式光伏解…

计算机思考与整理

应用程序 虚拟机 windows,linux等操作系统&#xff08;向上层应用程序提供接口&#xff09; x86架构&#xff0c;MIPS&#xff0c;ARM(提供指令集) 硬件组件 硬件组件&#xff08;hardware components&#xff09;是指构成计算机或电子设备的实体部分&#xff0c;它们包括各…