Administrator
Published on 2026-01-08 / 8 Visits
0
0

linux学习笔记

1.Linux概述

linux:嵌入式系统

分类:

一般来说linux系统基本上分两大类:

RedHat系列:Redhat、Centos、Fedora等

Debian系列:Debian、Ubuntu等

1.1.RedHat 系列

RedHat系列:Redhat、Centos、Fedora等

常见的安装包格式 rpm包,安装rpm包的命令是“rpm -参数”

包管理工具 yum

支持tar包

1.2.Debian系列

Debian系列:Debian、Ubuntu等

常见的安装包格式 deb包,安装deb包的命令是“dpkg -参数”

包管理工具 apt-get

支持tar包

1.3.linux系统目录介绍

/etc:存放系统管理所需的配置文件

/bin:Binary的缩写,存放经常用到的命令

/boot:存放Linux开机启动的核心文件

/dev:Device的缩写,存放linux的外部设备,在linux中访问设备的方式和访问文件的方式是一样的

/home:里面目录是以系统中存在的普通用户的名称来命名的,每当创建一个用户,这个目录就会多一个以该用户名称命令的目录·

/lib:存放系统最基本的动态连接共享库

/media:linux系统自动识别的设备,例如u盘、光驱等,当识别后,linux会将识别的设备挂载到这个目录之下。

/mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将u盘挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。

/opt:额外安装软件所存放的目录,比如安装oracle数据库则就可以放到这个目录下,默认是空。

/proc:这个目录是一个虚拟的目录,它是系统内存的映射.我们可以通过直接访问这个目录来获取系统信息。这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:

/root:该目录为系统管理员目录,也称之为超级管理员的用户目录。

/sbin:s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。

/selinux:这个目录是Redhat/CentOS所特有的目录, Selinux是一一个安全机制,
类似于windows的防火墙,但是这套机制比较复杂,这目就是存放selinux相关的文件的。
/srv:存放服务启动之后需要提取的数据

/sys:这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统sysfs。,sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devts文件系统以及针对伪终端的devpts文件系统。该文件系统是内核设备树的一个直观反映。当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统种被创建。

/usr:这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows下的program files目录。

/usr/bin:系统用户使用的应用程序

/usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序

/usr/src:内核源代码默认放置目录

/var:这个目录中存放著在不断扩充着的东西.我们习惯将那些经常被惨改的目录放在这个目录下。包括各种日志文件。

1.4.更改软件下载源

RedHat 系列

1、进入yum源文件夹 cd /etc/yum.repos.d

2、将原来的源进行备份 mv CentOS-Base.repo CentOS-Base.repo.bak

3、将阿里的yum源文件进行下载 wget http://mirrors.aliyun.com/repo/Centos-7.repo

4、将阿里的yum源替换为原来的yum文件 mv Centos-7.repo CentOS-Base.repo

5、清理yum缓存 yum clean all

6、创建yum缓存 yum makecache

2.基础操作

2.1.基础命令

●history 作用:显示所有历史操作命令

2.2.快捷键

#控制回显历史命令#

●ctrl+b、ctrl+n、方向键上下

作用:回退前进历史操作命令

#控制光标#

●ctrl+b、ctrl+f、方向键左右

作用:光标左右移动一个 ●ctrl+a、ctrl+e

作用:光标移动到行首和行尾

#自动补全智能提示#

●tab键

作用:单击时可以补全命令或者文件名称和目录,双击时可以列出这个命令类似的其他命令,也可以列举出目录下的内容 例子: 双击tab键,列举出home下的子目录内容

2.3.概念

#管道#

作用:可以将命令的输入转换为另一个命令的输入。一般配合grep查找命令使用。

用法 命令1 | 命令2 例子:

[root@localhost /]# ps -aux | grep top
root     2235766  0.1  0.3   8724  6260 pts/1    S+   21:07   0:02 top
root     2372617  0.0  0.1   6380  2008 pts/0    S+   21:37   0:00 grep --color=auto top

3.目录操作

3.1.列举目录内容

ls命令,列举文件及其目录

用法:ls [OPTION]... [FILE]... 常用OPTION有 -l -a -al

例子:

[root@localhost /]# ls -l
total 28
dr-xr-xr-x.   2 root root    6 Oct 29  2024 afs
lrwxrwxrwx.   1 root root    7 Oct 29  2024 bin -> usr/bin
dr-xr-xr-x.   5 root root 4096 Apr 10  2025 boot
drwxr-xr-x.  20 root root 3260 Dec 28 19:01 dev
drwxr-xr-x.  92 root root 8192 Jan  7 21:17 etc

image-20260107214847379

红色框中从左到右

第1位:d是目录,-则是文件,I是连接文档,b为块设备,c为字符设备,例如键盘、鼠标(一次性读取装置),s为socket文件,p为管道

第2~4为:所有者的权限,-为无权限r:读 w:写 x:执行

第5~7为:文件所属组的用户的权限,-为无权限 r:读 w:写 x:执行

第8~10为:其他人的权限,-为无权限r:读 w:写 x:执行

蓝色框从左到右

第1组:该文件或目录硬链接的数量

第2组:该文件或目录的所有者用户名称

第3组:该文件或目录所属组的组名

第4组:该文件或目录占用的空间,不包括目录中文件的空间。

第5~7组:文件或目录最后修改的时间,分别是月日年

第8组:文件或目录的名称,一般情况下可以通过名称颜色区分,如下图所示,具体是什么类型的文件,需要通过红色框中的第一位来判断

image-20260107215205775

3.2.目录切换

命令 命令作用
pwd 显示当前所在目录
cd目录名 切换到该目录
cd .. 返回上级目录
cd / 返回根目录
cd ./ 切换到当前目录
cd ~ 切换到当前账户的家目录
cd 切换到当前账户的家目录
cd - 两个临近目录相互切换

3.3.创建目录

命令 命令作用
mkdir 文件夹名字 创建文件夹
mkdir -p 目录名/目录名/... 创建多级文件夹

3.4.删除目录

命令 命令作用
rm 文件名 删除文件
rm -r -f 目录或文件 递归删除目录或文件
rmdir 目录名 删除空文件夹
rmdir -p 目录名 删除非空文件夹

3.5.查看目录占用大小

#du命令#

说明:查看目录占用空间的大小,包括了目录中的文件

例子:

[root@localhost ~]# du -h
0       ./.ssh
0       ./.config/procps
0       ./.config
101M    ./docker/halo/mysql/#innodb_redo
800K    ./docker/halo/mysql/#innodb_temp
32K     ./docker/halo/mysql/mysql
1.7M    ./docker/halo/mysql/performance_schema
112K    ./docker/halo/mysql/sys
9.0M    ./docker/halo/mysql/halo
208M    ./docker/halo/mysql

4.文件操作

4.1.基本操作

创建普通文件

touch 文件名:创建文件

创建软链接(快捷方式)

#ln命令 创建一个软连接#

●说明: 用于创建一个快捷方式,创建快捷方式时,请使用绝对路径进行创建,否则当软链接文件变换位置时,快捷方式就会失效。编辑软连接和直接编辑源文件是一样的,可以位文件和目录创建软连接。 具体参数使用 ln –help参看

●例子:

image-20260107221005126

创建硬链接

#ln命令 创建一个硬连接#

●说明: 硬链接不是创建快捷方式,而是相当于一个备份文件,类似复制一个相同大小的文件,但是实际的空间并没有被开辟。 目录不能创建硬链接,只有文件可以创建硬链接

●例子:

image-20260107221106607

复制操作

cp 文件名 目录路径:复制文件到指定路径:

cp -r 文件夹/* 目录路径:复制该目录下的所有东西到指定路径

移动操作/重命名

mv 文件名 目录路径

删除文件

删除文件:rm 文件名

删除文件:rm -f文件名

删除目录或文件:rm -r -f目录和文件

4.2.查看编辑操作

查看文件属性

stat 文件名:查看文件属性

查看文件内容(不可更改)

cat 文件名:小文件

more 文件名:小文件

less 文件名:大文件

q:退出

N:加入行号

tail –f:大文件 动态显示末尾10行文字

ctrl+c:停止

vi/vim查看编辑

命令模式(r) i 进入编辑模式(w) esc 返回命令模式 : 进入末行模式(s) 两下esc退后到命令模式

vim 文件名:打开文件/创建文件

末行模式下/命令模式

:q 未对文件更改 直接q退出

:q! 为文件更改后不想保存退出

:wq 正常保存退出

:wq! 强制保存退出,只针对root或文件所有人

行标定位

vim 文件名 行数:定位到该行

4.3.查找

根据文件属性查找

#find命令#

●说明:该命令可以根据文件的名称、大小、类型等进行查找,功能和参数非常多

●用法:find [路径] -name “文件名称” 文件名称支持通配符 其他参数:-size通过文件大小查找 具体参数可以使用 find –help参看

●例子:

[root@localhost ~]# find -name "dow*"
./dowload

根据文件内容查找

#grep 命令#

●说明:该命令可以根据文件内容来进行查找,通过不同参数可以显示不同内容,该命令可以配合管道来使用。。

●用法:grep -r “内容” [路径|文件名] -r表示输出文件名称 -n 表示输出内容在文件中的行 更多参数使用说明使用 grep --help参看

●例子:列举出包含“a”内容的文件名称

image-20260107221735146

●例子:列举出包含“a”内容在某个文件的哪一行

grep –n –e “搜索内容1” –e “搜索内容2”:显示查找的内容输在的行号

image-20260107221833040

4.4.压缩包操作

gzip解压缩

#gzip命令#

说明:用于压缩打包文件,且这个命令不能将多个文件打包到同一个压缩文件中。这个命令不能对目录进行压缩,不会保留原始文件。 后缀为:.gz

用法:gzip [选项] 文件名称 选项 -d:解压 文件名称可以使用通配符

例子:

image-20260107222325413

#gunzip命令#

●说明 用于解压.gz压缩包

●用法 gunzip 文件名称 文件名称可以使用通配符

例子:

image-20260107222412793

bzip2解压缩

压缩 占用更少 耗时长

#bzip2命令#

●说明 用于压缩打包文件,且这个命令不能将多个文件打包到同一个压缩文件中。这个命令不能对目录进行压缩,会保留原始文件。 后缀为:.bz2

●用法 bzip2 [选项] 文件名称 选项 -d:解压 -k:保留原始文件 文件名称可以使用通配符

例子

#bunzip2命令#

●说明 用于解压.gz压缩包

●用法 bunzip2 文件名称 文件名称可以使用通配符

例子:

tar解压缩

#tar命令#

●说明:用于压缩打包文件,所有文件将被打包进一个压缩文件中 格式为:.tar 格式为:.tar.gz 格式为:.tar.bz2

●用法

tar [选项...] 文件|目录

选项
-c:创建压缩
-x:释放解压
-z:使用gzip方式压缩,后缀为.tar.gz
-j:使用bzip2方式压缩,后缀为.tar.bz2
-f:设置创建的压缩包名称
-v:显示操作详细信息,可以省略
-C:解压到指定目录 文件|目录 可以使用通配符

例子1,打包.tar压缩文件

image-20260107222918861

例子1-1,解压.tar压缩文件到指定目录TT

image-20260107223000994

例子2,打包.tar.gz压缩文件

image-20260107223520418

例子2-2,解压.tar.gz压缩文件到指定目录TT

image-20260107223540858

例子3,打包.tar.bz2压缩文件

image-20260107223738670

例子3,解压.tar.bz2压缩文件到指定目录

image-20260107223751421

rar解压缩

#rar命令#

●说明:对文件或者目录进行打包压缩,rar命令需要自己安装

●用法:rar 指令 压缩包名称 文件|目录
指令:
a:压缩
x:解压 文件|目录 支持通配符

例子:

image-20260107223856301

zip解压缩

#zip#

●说明:对文件或者目录进行打包压缩,zip命令需要自己安装

●用法:zip [指令] 压缩包名称 文件|目录
指令: -r:递归操作 文件|目录 支持通配符

例子

image-20260107224108121

#unzip#

●说明:对.zip文件进行解压

●用法:unzip [选项] 压缩包名称 目录 指令 -d:解压到指定目录

例子:

image-20260107224129753

应用程序相关操作

4.5.下载文件

#wget命令#

●说明:通过下载地址来下载网络上的文件

●用法: wget网络下载地址

例子:

image-20260107224405478

5.应用程序相关操作

5.1.RedHat系列安装程序

RedHat系列:Redhat、Centos、Fedora等

yum包管理工具安装

#yum命令#

说明 该命令是用于管理和安装Redhat系列linux的应用程序的,通过它可以查找软件、安装软件、删除软件等操作。

用法 yum [选项..] 命令 程序名称 选项: -y:全部自动确定 命令: update:更新程序列表 search | list:搜索软件 install:安装软件 remove | erase:卸载删除软件 更多选项和命令 使用yum --help参看

例子,搜索tree程序

image-20260107224627775

例子,安装tree软件

image-20260107224655689

dnf包管理工具安装

#dnf命令#

说明 dnf (全称为Dandified yum)是新一代的rpm软件包管理器,他首先出现在 Fedora 18 这个发行版中。而最近,它取代了yum,正式成为 Fedora 22 的包管理器。

用法:

dnf [options] COMMAND List of Main

Commands: install 安装软件 remove 删除软件 search 搜索软件 General DNF options: -y:全部自动确定

rpm软件包安装

#rpm命令#

●说明 用于安装,卸载rpm程序包

●用法 rpm [选项...] rpm包名称|程序名称 选项: -i:安装rpm程序包 -r:卸载rpm程序

例子

image-20260107224923091

因为QQ需要以下依赖,但是当前系统并没这些依赖,要想运行QQ必须先安装好提示中出现的依赖,可以通过包管理工具进行安装。

源码安装

image-20260107224943687

5.2.Debian系列安装程序

Debian系列:Debian、Ubuntu等

apt-get包管理工具安装

#apt-get命令#

说明: 该命令是用于管理和安装Debian系列linux的应用程序的,通过它可以查找软件、安装软件、删除软件等操作。

用法:

apt-get [选项..] 命令 程序名称

选项: -y:全部自动确定

命令: update:更新程序列表 install:安装软件 remove | purge:卸载删除软件 更多选项和命令 使用apt-get --help参看

例子,安装tree软件

image-20260107225623406

#apt-cache#

**说明:**用于检索软件列表中的程序

用法:

apt-cache [选项] 指令

选项 暂无

指令 Search:搜素软件列表中的程序

例子

image-20260107225800317

deb软件包安装

#dpkg命令#

●说明 用于安装,卸载deb程序包

●用法 dpkg [选项...] dpkg包名称|程序名称 选项: -i:安装dpkg程序包 -r:卸载dpkg程序

例子

源码安装

5.3.卸载源码安装

  • 停止运行的进程 ./nginx -s -stop 或者 使用top查看进程用kill停止进程
  • 删除安装的软件 rm -rf 软件的安装的路径 其中软件安装的路径可以使用whereis命令查看
  • 清除编译环境 make clean

5.4.查看系统安装了哪些软件

  • rpm -qa //列举出系统所有的包
  • yum list installed //列举出系统所有的包

5.5.查看软件所有路径

  • whereis 软件名称

image-20260107230345322

5.6.配置软件为系统服务(后台启动)

第一步

在/usr/lib/systemd/system目录下创建nginx.service文件
或者
在/etc/systemd/system`目录下创建一个nginx.service文件

第二步

在nginx.service文件中添加以下内容

[Unit]
# 服务名称,可自定义
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target

[Service]
Type=forking
PIDFile=/var/run/nginx.pid
# 启动nginx的命令,需修改为您的nginx的安装路径
ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf
ExecReload=/bin/sh -c "/bin/kill -s HUP $(/bin/cat /var/run/nginx.pid)"
ExecStop=/bin/sh -c "/bin/kill -s TERM $(/bin/cat /var/run/nginx.pid)"

[Install]
WantedBy=multi-user.target

解释说明

详细说明参考链接:

https://cloud.tencent.com/developer/article/1516125

[Unit]:配置的是一些说明信息

[Service]:配置的是系统环境具体执行的命令

[Install]:配置的目标模块通常是特定运行目标的 .target 文件

第三步

image-20260107230729073

5.7.配置软件命令到系统环境变量

传统的应用启动都需要进入到软件的二进制可执行文件的目录来运行程序执行相关命令

第一步

修改/etc/profile文件

image-20260107230909846

image-20260107231112645

第二步

使用source命令让配置生效

image-20260107231125923

第三步

可以在任意目录直接执行命令

image-20260107231144735

6.系统管理

6.1系统基本命令

关机命令

shutdown:关机命令

shutdown:取消关机

reboot:重启

输出系统相关信息

uname -a (Linux查看版本当前操作系统内核信息)

cat /proc/version (Linux查看当前操作系统版本信息)

cat /etc/issue 或cat /etc/redhat-release(Linux查看版本当前操作系统发行版信息)

cat /proc/cpuinfo或者lscpu (Linux查看cpu相关信息,包括型号、主频、内核信息等)

6.2.用户相关操作

查看用户

who:看还有哪些用户正在使用这台服务器

whoami:查看当前命令终端(bash)的用户

logname:显示当前会话账户的用户

id:查看当前会话账号的信息(uid、gid、组)

getent passwd:显示当前系统所用存在的用户

用户管理

https://blog.csdn.net/u011323949/article/details/79046883/

创建添加用户

#useradd或adduser命令#

说明 添加创建用户, useradd或adduser命令是一样的,都是创建用户的命令,使用哪一个都可以

用法

useradd 用户名称

useradd 选项

选项

-s:指定shell -g:所属组 -d:家目录路径 -m:家目录名称

例子

image-20260107231437499

修改更改用户密码

#passwd命令 #

说明 直接在当前账户输入passwd,是更改当前用户的密码,修改其他用户的密码需要加上对用的用户名

使用

passwd

passwd 用户名

例子

image-20260107231616096

#usermod命令#

说明 对用户进行操作

使用 usermod 选项 用户名

选项

-d:设置新的家目录 -L:锁定用户 -U:解锁用户

例子

image-20260107231702570

删除用户

#userdel#

说明 删除已经存在的用户

用法 userdel [选项] 用户名

选项: -r:删除当前帐账户所有东西

例子

image-20260107232019266

用户切换

普通用户和超级用户区分 超级管理员红色框中的地方是“#“号 普通用户红色框中的地方是“$“号

sudo:提高当前权限操作

su:切换到超级管理员

su 用户名:切换到指定用户

exit:退出当前账号

su –c:使用root权限操作

用户组管理(group)

groupadd 组名字:创建用户组

groupmod:修改用户组

groups:查询当前账户所属的组

groupdel 名字:删除

gpasswd:将创建的用户添加到组中

6.3.权限管理

权限介绍

通过:(ls –l) 或者 (stat 文件名) 可以查看

具体可以参看目录操作章节的列举文件及其目录的小节

权限更改

# chmod 命令#

●说明: 用于更改所有者、同组的所有用户、其他用户的文件或目录的访问权限。目录必须具备执行权限,否则无法进入目录。

更改权限有以下两种方式来更改 1.文本设定法 2.数字设定法

●文字设定法 chmod [who][do][mod] 文件名称

who说明: u:文件所有者 g:所有者同组用户 o:其他人用户 a:所有的用户,相当于不写who参数 do说明: +:添加权限 -:减少权限 =:覆盖原有权限 mod说明: r:读 w:写 x:执行

例子

image-20260107232254454

●数字设定法

chmod [n1][n2][n3] 文件名称

n1,n2,n3占位说明:

n1:文件所有者
n2:所有者同组用户
n3:其他人用户

n1,n2,n3填写说明:

4:r读
2:w写
1:x执行
0:-无权限

数字设定法解释: 数字设定法使用三位数字来设置权限,每位数字表示一类用户(所有者,同组,其他),数字的的大小表示设定的具体权限,例如赋予读和执行权限,即rx,数字大小就是r+x=4+1=5,其他具体权限以此类推。

例子:

image-20260107232637076

# chown 命令#

●说明 该命令用于更改文件或者目录的所有者或文件所在的组,一个文件或者目录所有者可以和文件所属组不为同一个。

例子,更改文件所有者:

image-20260107232658139

例子,更改文件所有者和文件所在组:

image-20260107232718645

6.4.进程管理

查看进程

#ps命令#

说明 用于查看进程相关信息

用法 ps [选项]

选项

-a:列举所有用户
-u:显示用户自己的信息
-x:查看没有终端(tty)的应用程序,tty0~7,命令和界面
-e:查看所有进程
-f:参看进程类型

例子

image-20260107233355356

PID 进程ID

USER 进程所有者的用户名,例如root

PR 进程调度优先级

NI 进程nice值(优先级),越小的值代表越高的优先级

VIRT 进程使用的虚拟内存

RES 进程使用的物理内存(不包括共享内存)

SHR 进程使用的共享内存

CPU 进程使用的CPU占比

MEM 进程使用的内存占比

TIME 进程启动后到现在所用的全部CPU时间

COMMAND 进程的启动命令(默认只显示二进制,top -c能够显示命令行和启动参数)

按进程的内存使用率排序

运行top命令后,键入大写M。

按进程的CPU使用率排序

运行top命令后,键入大写P。

例子,使用管道进行筛选信息

#top命令#

说明 类似window中的任务管理器,但是top命令只能查看

用法 Top

进程相关操作

#kill命令#

说明 用于关闭进程

用法 kill [选项] 进程id(pid)

选项 - SIGKILL:通过进程id来关闭进程 进程id(pid) 可以通过ps或者top命令查看 可以通过kill -l来查看相关选项

例子

image-20260107233619218

#pidof命令#

说明:根据程序名称杀死进程

用法:pidof <程序名称>

例子

6.5.网络管理

查看本机ip

#ifconfig命令#

说明 查看本机网卡信息

用法 ifconfig

例子

image-20260107233852758

配置静态ip

RedHat 系列配置静态ip:Redhat、Centos、Fedora等

●修改网络配置

通过修改/etc/sysconfig/network-scripts/ifcfg-ens33配置文件来配置静态ip

内容如下

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static  # 更改为static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=62602a4e-6dca-4b30-b1e3-bcf10c0b0f44
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.72.8  # 静态ip
        NETMASK=255.255.255.0 # 子网掩码
        GATEWAY=192.168.72.2 # 网关
        DNS1=114.114.114.114 # dns

●重启网络管理

systemctl restart network

Debian系列配置静态ip:Debian、Ubuntu等

Ubuntu18.04以后不再支持ifupdown配置网络,而改用 Netplan

Unbuntu18.04之前版本设置

●修改网络配置

通过修改/etc/netplan/01-network-manager-all.yaml配置文件来配置静态ip

内容如下

network:
 version: 2
 ethernets:
  ens33:
   addresses: [192.168.72.7/24] # 设置静态ip
   dhcp4: no # 关闭dhcp
   dhcp6: no # 关闭dhcp
   gateway4: 192.168.72.2 # 设置网关
   nameservers:
addresses: [8.8.8.8,114.114.114.114] # 设置dns

●重启网络管理

sudo  netplan apply

Unbuntu18.04版本之后的设置

修改/etc/network/interface 配置文件

内容如下

# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto ens32
iface ens32 inet static #更改为static
address 192.168.159.130 #静态IP地址
netmask 255.255.255.0 #子网掩码
gateway 192.168.2.1 #网关

设置dns

修改/etc/resolvconf/resolv.conf.d/base配置文件

内容如下

nameserver 8.8.8.8

nameserver 8.8.4.4

刷新配置文件

resolvconf -u

重启网络

/etc/init.d/networking restart

测试IP地址

#ping命令#

说明 测试ip的连接情况

用法 ping ip地址|域名

例子

[root@localhost ~]# ping baidu.com
PING baidu.com (111.63.65.103) 56(84) bytes of data.
64 bytes from 111.63.65.103: icmp_seq=1 ttl=51 time=35.3 ms
64 bytes from 111.63.65.103: icmp_seq=2 ttl=51 time=35.2 ms
64 bytes from 111.63.65.103: icmp_seq=3 ttl=51 time=35.2 ms

#nslookup命令#

说明 查看域名对应的ip地址,需要安装

用法 nslookup域名

例子

image-20260107234722513

防火墙管理

启动:systemctl start firewalld

关闭:systemctl stop firewalld

查看状态:systemctl status firewalld

开机禁用:systemctl disable firewalld

开机启用:systemctl enable firewalld

查看版本:firewall-cmd --version

查看帮助:firewall-cmd --help

显示状态:firewall-cmd --state

查看所有打开的端口:firewall-cmd --zone=public --list-ports

更新防火墙规则: firewall-cmd --reload

查看区域信息: firewall-cmd --get-active-zones

查看指定接口所属域: firewall-cmd --get-zone-of-interface=eth0

拒绝所有包:firewall-cmd --panic-on

取消拒绝状态: firewall-cmd --panic-off

查看是否拒绝: firewall-cmd --query-panic

开启防火墙端口2888和3888然后更新防火墙规则 firewall-cmd --add-service=http --permanent sudo firewall-cmd --add-port=2888/tcp --permanent sudo firewall-cmd --add-port=3888/tcp –permanent firewall-cmd --reload

关闭防火墙端口2888和3888然后更新防火墙规则 firewall-cmd --zone=public --remove-port=2888/tcp –permanent firewall-cmd --zone=public --remove-port=3888/tcp –permanent firewall-cmd --reload

6.6.磁盘分区挂载管理

查看磁盘情况

#lsblk命令#

●说明 查看磁盘分区情况

例子

image-20260107235003955

红线位置显示的是外部磁盘设备

#fdisk命令#

●说明 查看磁盘分区情况

例子

image-20260107235038349

其中红线的位置显示的是外部磁盘设备

#df命令#

●说明 查看目前系统目前所有的挂载点信息

例子

image-20260107235058407

其中红线的位置显示的是外部磁盘设备的挂载点

挂载、卸载磁盘分区

当设备自动挂载之时,会直接显示在/media目录中

当设备不能自动挂载时,需要自己手动挂载,一般挂载到/mnt目录中,当然你也可以在/mnt中创建具体的路径,这不是强制要求的。

#mount 命令#

●说明 该命令用于挂载外部设备

●用法 mount设备路径 挂载点路径

例子

image-20260107235146642

# umount 命令#

●说明 该命令用于卸载挂载分区

●用法 umount挂载点路径

例子

image-20260107235219926

操作磁盘分区

# cfdisk命令#

说明 用于磁盘进行分区操作,

6.7.环境变量

查看命令存放的位置

#which命令#

●说明 用于查看命令具体存放在哪一个位置,该命令只能查找外部命令,不能查找到系统自带命令

例子

image-20260107235343481

#env命令#

说明 查看当前进程的环境变量

用法 env

例子

image-20260107235404338

6.8.日期管理

date 选项

date –help

date:输出系统时间

矫正服务器时间、时区:

timedatectl:选项

timedatectl set-ntp true:启用同步时间

6.9.远程基础服务

文件传输

FTP传输

说明

SCP、SFTP传输

说明 SCP、SFTP传输技术都是基于SSH文件传输协议

目录共享

NFS

远程连接

SSH

7.Shell脚本

概述

Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。

Shell 脚本(shell script),是一种为 shell 编写的脚本程序。

Linux 的 Shell 种类众多,常见的有:

Bourne Shell(/usr/bin/sh或/bin/sh)

Bourne Again Shell(/bin/bash)

C Shell(/usr/bin/csh)

K Shell(/usr/bin/ksh)

Shell for Root(/sbin/sh)

Bash 是大多数Linux 系统默认的 Shell。

变量

  • 变量名只能字母数字下划线组成,多字母下划线分割,尽量用全大写。
  • 变量值赋值其他变量时,最好是使用花括号 {} 来明确变量的边界,包含语句时需要使用()来赋值,如果需要进行运算需要使用(())
  • 引用变量时,需要在变量前加上美元符号 $
  • 可以直接引用赋值也可以使用语句进行赋值
#基本赋值
NAME="Shuai";
#引用变量
echo "My name is $NAME"
LOG_PATH="/var/log/mytest";
#引用语句
NOW_TIME="$(date +%Y%m%d_%H%M%S)"
for file in $(ls /etc)
#引用运算表达式
COUNT_NUM=$((1+1))
#引用变量
LOG_FILE="$COUNT_NUM${LOG_PATH}/start_${NOW_TIME}.log"
echo "当前日志将写入文件:${LOG_FILE}"

输入输出

read命令

printf命令


Comment