Chiriri's blog Chiriri's blog
首页
  • Java

    • JavaSE
    • JavaEE
    • 设计模式
  • Python

    • Python
    • Python模块
    • 机器学习
  • Golang

    • Golang
    • gRPC
  • 服务器

    • Linux
    • MySQL
    • NoSQL
    • Kubernetes
  • 项目

    • 传智健康
    • 畅购商城
  • Hadoop生态

    • Hadoop
    • Zookeeper
    • Hive
    • Flume
    • Kafka
    • Azkaban
    • Hbase
    • Scala
    • Spark
    • Flink
  • 大数据项目

    • 离线数仓
  • 青训营

    • 第四届青训营
  • HTML

    • HTML
    • JavaScript
  • Vue

    • Vue2
    • TypeScript
    • Vue3
    • Uni-APP
  • 数据结构与算法
  • C语言
  • 考研数据结构
  • 计算机组成原理
  • 计算机操作系统
  • Java基础

    • Java基础
    • Java集合
    • JUC
    • JVM
  • 框架

    • Spring
    • Dubbo
    • Spring Cloud
  • 数据库

    • MySQL
    • Redis
    • Elasticesearch
  • 消息队列

    • RabbitMQ
    • RocketMQ
  • 408

    • 计算机网络
    • 操作系统
    • 算法
  • 分类
  • 标签
  • 归档
  • 导航站
GitHub (opens new window)

Iekr

苦逼后端开发
首页
  • Java

    • JavaSE
    • JavaEE
    • 设计模式
  • Python

    • Python
    • Python模块
    • 机器学习
  • Golang

    • Golang
    • gRPC
  • 服务器

    • Linux
    • MySQL
    • NoSQL
    • Kubernetes
  • 项目

    • 传智健康
    • 畅购商城
  • Hadoop生态

    • Hadoop
    • Zookeeper
    • Hive
    • Flume
    • Kafka
    • Azkaban
    • Hbase
    • Scala
    • Spark
    • Flink
  • 大数据项目

    • 离线数仓
  • 青训营

    • 第四届青训营
  • HTML

    • HTML
    • JavaScript
  • Vue

    • Vue2
    • TypeScript
    • Vue3
    • Uni-APP
  • 数据结构与算法
  • C语言
  • 考研数据结构
  • 计算机组成原理
  • 计算机操作系统
  • Java基础

    • Java基础
    • Java集合
    • JUC
    • JVM
  • 框架

    • Spring
    • Dubbo
    • Spring Cloud
  • 数据库

    • MySQL
    • Redis
    • Elasticesearch
  • 消息队列

    • RabbitMQ
    • RocketMQ
  • 408

    • 计算机网络
    • 操作系统
    • 算法
  • 分类
  • 标签
  • 归档
  • 导航站
GitHub (opens new window)
  • JavaSE

  • JavaEE

  • Linux

    • Linux
      • Linux目录结构
      • 帮助命令
        • man
        • help
      • 文件目录类
        • ls 列出目录的内容
        • pwd 显示当前工作目录的绝对路径
        • cd 切换目录
        • mkdir 创建一个新的目录
        • touch 创建空文件
        • rmdir 删除一个空的目录
        • rm 删除文件或目录
        • cp 复制文件或目录
        • mv 移动文件与目录或重命名
        • cat 查看文件内容
        • more 文件内容分屏查看器
        • less 分屏显示文件内容
        • head 显示文件头部内容
        • tail 输出文件尾部内容
        • ln 软、硬连接
        • 清屏
        • echo 打印字符
        • > 输出重定向和 >> 追加
        • 重定向(覆盖文本中的内容)
        • 追加
      • 文件权限类
        • chmod 改变权限
        • chown 改变所有者(所属用户,所属主)
        • chgrp 改变所属组
      • cat命令
        • cat > 重定向(覆盖写入)
        • cat >>追加写入
        • 用cat -A命令显示所有不可显字符
        • 用cat -T命令显示TAB键的字符^I
        • 用cat -E命令显示行尾的结束字符$
      • 用户管理命令
        • 用户管理
        • 用户组管理命令
      • history 历史命令
      • 日期
        • date 显示当前时间
        • date 显示非当前时间
        • date 设置系统时间
        • cal 查看日历
      • VIM
        • 一般模式
        • 编辑模式
        • 指令模式
        • iptables
      • 网络配置和系统管理操作
        • ifconfig 配置网络接口
        • 修改IP地址
        • 配置主机名
        • 修改hosts映射文件
        • systemctl
        • 开放端口
        • 防火墙
        • 关机重启命令
      • 查看系统版本
      • 后台运行
      • 磁盘分区类
        • df 查看磁盘空间使用情况
        • du 文件和目录的磁盘使用空间
        • fdisk 查看分区
        • lsblk 查看设备挂载情况
        • mount/umount 挂载/卸载
        • 添加新的硬盘并挂载
      • 搜索
        • find 查找文件或者目录
        • locate 快速定位文件路径
        • grep 过滤查找及“|”管道符
      • 压缩和解压类
        • gzip/gunzip 压缩
        • zip/unzip 压缩
        • tar 打包
        • bzip2
      • 进程线程类
        • ps 查看当前系统进程状态
        • kill 终止进程
        • pstree 查看进程树
        • top 查看系统健康状态
        • netstat 显示网络统计信息和端口占用情况
      • crontab 系统定时任务
        • crond 启动定时服务
        • crontab
        • * 执行的任务
      • 安装软件
        • rpm
        • 查询
        • 卸载
        • 安装
        • yum
      • centos7跳过首次登陆创建普通用户步骤
        • 找回root密码
    • shell
    • 常用的组件安装
  • MySQL

  • NoSQL

  • Python

  • Python模块

  • 机器学习

  • 设计模式

  • 传智健康

  • 畅购商城

  • 博客项目

  • JVM

  • JUC

  • Golang

  • Kubernetes

  • 硅谷课堂

  • C

  • 源码

  • 神领物流

  • RocketMQ

  • 短链平台

  • 后端
  • Linux
Iekr
2021-08-08
目录

Linux

# Linux

# Linux 目录结构

image-20231208105159415

  • /bin :是 Binary 的缩写,这个目录存放着最经常使用的命令

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

  • /home :存放普通用户的主目录,在 Linux 中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。

  • /root :该目录为系统管理员,也称作超级权限者的用户主目录。

  • /lib :系统开机所需要最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。

  • /lost+found :这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。

  • /etc :所有的系统管理所需要的配置文件和子目录。

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

  • /boot :这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件,自己的安装别放这里。

  • /proc :这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。

  • /srv :service 缩写,该目录存放一些服务启动之后需要提取的数据。

  • /sys :这是 linux2.6 内核的一个很大的变化。该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs 。

  • /tmp :这个目录是用来存放一些临时文件的。

  • /dev :类似于 windows 的设备管理器,把所有的硬件用文件的形式存储。

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

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

  • /opt :这是给主机额外安装软件所摆放的目录。比如你安装一个 mysql 数据库则就可以放到这个目录下。默认是空的。

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

  • /selinux :SELinux 是一种安全子系统,它能控制程序只能访问特定文件。

# 帮助命令

# man

man [命令或配置文件] (功能描述:获得帮助信息)

信息 功能
NAME 命令的名称和单行描述
SYNOPSIS 怎样使用命令
DESCRIPTION 命令功能的深入讨论
EXAMPLES 怎样使用命令的例子
SEE ALSO 相关主题(通常是手册页)

如:

man ls
1

按 Q 退出

# help

针对内部命令帮助,help 命令获得 shell 内置命令的帮助信息

如:

help cd
1

同时我们也可以使用指定命令,带上 - help 参数来查看该命令内部的帮助文档

ls –help
1

# 文件目录类

# ls 列出目录的内容

ls:list 列出目录内容

列出当前目录中的文件和目录

ls [选项] [目录或是文件]

选项 功能
-a 全部的文件,连同隐藏档 (开头为。的文件) 一起列出来 (常用)
-l 长数据串列出,包含文件的属性与权限等等数据;(常用)
ls
ls -a # 显示所有文件和目录包括隐藏的
ls -l  # 所有文件和隐藏文件的 详细信息   可以缩写为 ll
ll # 为ls -l缩写
1
2
3
4

每行列出的信息依次是: 文件类型与权限 链接数 文件属主 文件属组 文件大小用 byte 来表示 建立或最近修改的时间 名字

[atguigu@hadoop101 ~]$ ls -al
总用量 44
drwx------. 5 atguigu atguigu 4096 5月  27 15:15 .
drwxr-xr-x. 3 root    root    4096 5月  27 14:03 ..
drwxrwxrwx. 2 root    root    4096 5月  27 14:14 hello
-rwxrw-r--. 1 atguigu atguigu   34 5月  27 14:20 test.txt
1
2
3
4
5
6

# pwd 显示当前工作目录的绝对路径

pwd:print working directory 打印工作目录

pwd (功能描述:显示当前工作目录的绝对路径)

pwd
1

# cd 切换目录

cd:Change Directory 切换路径

cd [参数]

参数 功能
cd 绝对路径 切换路径
cd 相对路径 切换路径
cd ~ 或者 cd 回到自己的家目录
cd - 回到上一次所在目录
cd .. 回到当前目录的上一级目录
cd -P 跳转到实际物理路径,而非快捷方式路径
cd /  # 返回到root根目录
cd ../  # 返回上一级目录
cd - # 回到上一次所在目录 
cd ~ # 返回家目录
1
2
3
4

# mkdir 创建一个新的目录

mkdir:Make directory 建立目录

mkdir [选项] 要创建的目录

选项 功能
-p 创建多层目录
mkdir a # 创建a目录
mkdir -p xiyou/dssz/meihouwang # 创建多级目录
1
2

# touch 创建空文件

touch 文件名 如:

touch test.txt
touch a{1..10}.txt  # 创建 a1-a10的文件
stat 文件名   # 查看文件的详细信息
1
2
3

# rmdir 删除一个空的目录

rmdir:Remove directory 移动目录

rmdir 要删除的空目录

rmdir a  
rmdir a/b/c -p # 删除多级目录
1
2

# rm 删除文件或目录

rm [选项] deleteFile (功能描述:递归删除目录中所有内容)

选项 功能
-r 递归删除目录中所有内容
-f 强制执行删除操作,而不提示用于进行确认。
-v 显示指令的详细执行过程
rm 目录名  -r   # 层叠递归的询问方式删除目录
rm 目录名 -rf   # 以递归删除并且不询问
1
2

# cp 复制文件或目录

cp [选项] source dest (功能描述:复制 source 文件到 dest)

选项 功能
-r 递归复制整个文件夹
cp 文件名 文件目录
cp 文件名 文件目录/重命名文件名  (如果不指定则为原名称)
cp xxx.txt ./home
cp -r /a /b # 复制该文件夹下的子目录和文件
1
2
3
4

# mv 移动文件与目录或重命名

mv oldNameFile newNameFile (功能描述:重命名)

mv (move) 文件名 目录

mv test.txt ./a 

# 移动并重命名
mv 文件名 目录重命名名字 		
mv test.txt ../qaq.txt

# 重命名
mv 原文件名  重命名文件名
mv test.txt  qaq
1
2
3
4
5
6
7
8
9

# cat 查看文件内容

查看文件内容,从第一行开始显示。

cat [选项] 要查看的文件

选项 功能描述
-n 显示所有行的行号,包括空行。
cat test.txt   # 一次性显示所有内容
cat -n houge.txt # 查看文件内容并显示行号
1
2

# more 文件内容分屏查看器

more 指令是一个基于 VI 编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。more 指令中内置了若干快捷键,详见操作说明。

more 要查看的文件

操作 功能说明
空白键 (space) 代表向下翻一页;
Enter 代表向下翻『一行』;
q 代表立刻离开 more ,不再显示该文件内容。
Ctrl+F 向下滚动一屏
Ctrl+B 返回上一屏
= 输出当前行的行号
:f 输出文件名和当前行的行号
more test.txt # 当按下回车后展示下一行,按q退出,按空格展示下一屏
1

# less 分屏显示文件内容

less 指令用来分屏查看文件内容,它的功能与 more 指令类似,但是比 more 指令更加强大,支持各种显示终端。less 指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。

less 要查看的文件

操作 功能说明
空白键 向下翻动一页;
[pagedown] 向下翻动一行
[pageup] 向上翻动一行;
/ 字串 向下搜寻『字串』的功能;n:向下查找;N:向上查找;
? 字串 向上搜寻『字串』的功能;n:向上查找;N:向下查找;
q 离开 less 这个程序;
less test.txt # 一页一页展示文本内容,用paup和padn进行翻页
1

# head 显示文件头部内容

head 用于显示文件的开头部分内容,默认情况下 head 指令显示文件的前 10 行内容。

head 文件 (功能描述:查看文件头 10 行内容)

head -n 5 文件 (功能描述:查看文件头 5 行内容,5 可以是任意行数)

选项 功能
-n <行数> 指定显示头部内容的行数
head 文件名 -n X # 只看该文件前面的X行
head test.txt -n 2    # 只看该文件前面的2行
1
2

# tail 输出文件尾部内容

tail 用于输出文件中尾部的内容,默认情况下 tail 指令显示文件的后 10 行内容

tail [选项] 文件 (功能描述:查看文件尾部 10 行内容)

选项 功能
-n <行数> 输出文件尾部 n 行内容
-f 显示文件最新追加的内容,监视文件变化
tail 文件名 -n X  # 只看该文件最后的X行
tail test.txt -n 2   # 只看该文件最后的2行
tail 文件名 -f  # 可以动态查看文件变化,实时追踪该文档的所有更新
1
2
3

# ln 软、硬连接

软链接也成为符号链接,类似于 windows 里的快捷方式,有自己的数据块,主要存放了链接其他文件的路径。

ln -s [原文件或目录] [软链接名] (功能描述:给原文件创建一个软链接)

删除软链接: rm -rf 软链接名,而不是 rm -rf 软链接名 /

查询:通过 ll 就可以查看,列表属性第 1 位是 l,尾部会有位置指向。

ln 源文件名 自定义名字    # 硬连接
ln -s 源文件名  自定义名字  # 加上-s参数 创建为软连接
1
2

# 清屏

clear 或者 ctrl+l

# echo 打印字符

echo 输出内容到控制台

echo [选项] [输出内容]

控制字符 作用
\ 输出 \ 本身
-e 支持反斜线控制的字符转换
\n 换行符
\t 制表符,也就是 Tab 键
echo “abc”
echo -e “abc \t cd\n”     # 包含特殊字符 加上-e参数
1
2

# > 输出重定向和 >> 追加

  • ls -l > 文件 (功能描述:列表的内容写入文件 a.txt 中(覆盖写))
  • ls -al >> 文件 (功能描述:列表的内容追加到文件 aa.txt 的末尾)
  • cat 文件 1 > 文件 2 (功能描述:将文件 1 的内容覆盖到文件 2)
  • echo “内容” >> 文件

# 重定向 (覆盖文本中的内容)

echo “字符串”  > 文件名(可写入文件) # 将字符串写入到文本中
ls -l>houge.txt # 将ls查看信息写入到文件中
1
2

# 追加

echo “字符串”  > >文件名(可写入文件) # 将字符串插入到文本中
ls -l>>houge.txt # 将ls查看信息追加到文件中
1
2

cat 不存在的目录 &>> error.log 将命令的失败结果 追加到 error.log 中

# 文件权限类

Linux 系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux 系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。在 Linux 中我们可以使用 ll 或者 ls -l 命令来显示一个文件的属性以及文件所属的用户和组。

从左到右的 10 个字符表示

image-20231208115113276

如果没有权限,就会出现减号 [-] 而已。从左至右用 0-9 这些数字来表示:

  • 0 首位表示类型,在 Linux 中第一个字符代表这个文件是目录、文件或链接文件等等
    • - 代表文件
    • d 代表目录
    • l 链接文档 (link file);
  • 第 1-3 位确定属主(该文件的所有者)拥有该文件的权限。---User
  • 第 4-6 位确定属组(所有者的同组用户)拥有该文件的权限,---Group
  • 第 7-9 位确定其他用户拥有该文件的权限 ---Other

rxw 作用文件和目录的不同解释

作用到文件:

  • [r] 代表可读(read): 可以读取,查看
  • [w] 代表可写(write): 可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件.
  • [x] 代表可执行(execute): 可以被系统执行

作用到目录:

  • [r] 代表可读(read): 可以读取,ls 查看目录内容
  • [w] 代表可写(write): 可以修改,目录内创建 + 删除 + 重命名目录
  • [x] 代表可执行(execute): 可以进入该目录

image-20231208115312772

# chmod 改变权限

chown 用户名 文件名 更改文件拥有者

chown 用户名:用户组 文件名 更改文件拥有者和用户组

chmod 用户组操作权限文件

image-20231208115450186

用户组:u g o a u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体 (group) 者,o 表示其他以外的人,a 表示这三者皆是。

操作: + - = + 表示增加权限、- 表示取消权限、= 表示唯一设定权限。

权限:r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。

如 chmod u-rw aa

chmod 可以使用数字代替 chmod abc aa

如 chmod 777 aa 代表 u rwx g rwx o rwx

其中 a,b,c 各为一个数字,分别表示 User、Group、及 Other 的权限。

r=4,w=2,x=1

  • 若要 rwx 属性则 4+2+1=7;
  • 若要 rw- 属性则 4+2=6;
  • 若要 r-x 属性则 4+1=5。
chmod  [{ugoa}{+-=}{rwx}] 文件或目录 # 字母权限
chmod  [mode=421 ]  [文件或目录] # 数字权限
1
2

# chown 改变所有者(所属用户,所属主)

chown [选项] [最终用户] [文件或目录] (功能描述:改变文件或者目录的所有者)

选项 功能
-R 递归操作
chown atguigu houge.txt  # 修改文件所有者
chown -R atguigu:atguigu xiyou/ # 递归改变文件所有者和所有组
1
2

# chgrp 改变所属组

chgrp [最终用户组] [文件或目录] (功能描述:改变文件或者目录的所属组)

chgrp root houge.txt # 修改文件的所属组
1

# cat 命令

# cat > 重定向 (覆盖写入)

cat > 1.txt <<EOF
> 1
>
> EOF

# 再执行一次
cat > 1.txt <<EOF
> 2
> EOF

# 查看1.txt
cat 1.txt
2
1
2
3
4
5
6
7
8
9
10
11
12
13

cat>>file<<eof 重定向用于创建文件或在文件内追加内容,主要用于分行写入文件,结束时需要写个 eof

EOF 为结束的标记,可以自定义如

# cat >> 追加写入

cat >> 1.txt <<END
> 3
> 4
> end
> END

# 查看1.txt
cat 1.txt
2
3
4
end
1
2
3
4
5
6
7
8
9
10
11
12

# 用 cat -A 命令显示所有不可显字符

$ cat -A /tmp/testing.txt 
testing$ 
^I^Itesting^L^H$ 
more testing$ 
^I^@^K^@even more testing$ 
^I^I^I$
1
2
3
4
5
6

# 用 cat -T 命令显示 TAB 键的字符 ^I

$ cat -T /tmp/testing.txt 

testing 

^I^Itesting
 
 more testing 

^I 

even more testing 

^I^I^I 

1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 用 cat -E 命令显示行尾的结束字符 $

$ cat -E /tmp/testing.txt 

testing$ 

testing 

$ 

more testing$ 
 
 even more testing$ 

$
1
2
3
4
5
6
7
8
9
10
11
12
13

# 用户管理命令

# 用户管理

useradd  用户名  # 添加新用户
useradd -g 组名 用户名 # 添加新用户到某个组

passwd   新用户名   # 为新用户添加密码

id 用户名 	# 查看指定用户是否存在
cat /etc/passwd  #查看该centos中所有用户和组

su 用户名   # 切换用户
su  -  用户名   # 切换用户并进入该用户家目录

userdel 用户名		# 删除该用户
userdel 用户名 -r  # 删除该用户和该用户家目录

whoaimi  # 显示自身用户名称
who am i # 显示登录用户的用户名
logname  # 当前登录用户信息

sudo #临时 设置普通用户具有root权限
usermod -l 新用户名 老用户名 # 改变用户名
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

# 用户组管理命令

每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同 Linux 系统对用户组的规定有所不同。

如 Linux 下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。

用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对 /etc/group 文件的更新。

groupadd (选项)  用户组名  #	创建用户组
groupmod (选项) 用户组名  #   修改用户组
groupmod -n 新组名 老组名 # 指定工作组的新组名
grops 用户名   # 查询用户所属组
gropdel  用户组名  #  删除用户组
gpasswd (选项)  组名  #  管理指定组的用户
gpasswd  -a 用户名 用户组  # 将用户加入指定组
usermod  -g  root(欲要加入的组)  用户名  # 修改用户组
1
2
3
4
5
6
7
8

# history 历史命令

history # 查看已经执行过的历史命令
1

# 日期

date [OPTION]... [+FORMAT]

选项 功能
-d <时间字符串> 显示指定的 “时间字符串” 表示的时间,而非当前时间
-s <日期时间> 设置系统日期时间
参数 功能
<+ 日期时间格式> 指定显示时使用的日期时间格式
timedatectl  # 根据时区校正时间
timedatectl list-timezones   # 查看当前国家下的时区
timedatectl set-timezone "Asia/Shanghai"  # 设置指定时区
timedatectl set-ntp true  # 关闭ntp同步时间
1
2
3
4

# date 显示当前时间

date # 显示当前时间
date +%Y  年 # 显示当前年份
date +%m  月 # 显示当前月份
date +%d  日 # 显示当前是哪一天
date +%Y-%m-%d 年月日 # 显示年月日时分秒
date +%H  时  M分  S秒 # 显示年月日时分秒
1
2
3
4
5
6

# date 显示非当前时间

date -d '1 days ago' # 显示前一天时间
date -d '-1 days ago' # 显示明天时间
1
2

# date 设置系统时间

date -s "2021-04-19"  # 更改系统时间
1

# cal 查看日历

cal [选项] (功能描述:不加选项,显示本月日历)

选项 功能
具体某一年 显示这一年的日历
cal # 当月日历
cal 2021  # 当前年日历
1
2

# VIM

vim 文件名 + 指定行数 进入 vim 并光标在指定行数 如:

vim a.txt  +5
1

# 一般模式

以 vi 打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中, 你可以使用『上下左右』按键来移动光标,你可以使用『删除字符』或『删除整行』来处理档案内容, 也可以使用『复制、贴上』来处理你的文件数据。

语法 功能描述
yy 复制光标当前一行
y 数字 y 复制一段(从光标当前行到后 n 行)
p 箭头移动到目的行粘贴
u 撤销上一步
dd 删除光标当前行
d 数字 d 删除光标(含)后多少行
x 剪切一个字母 (当前光标),相当于 del
X 剪切一个字母 (当前光标的前一个),相当于 Backspace
yw 复制一个词
dw 删除一个词
shift+6(^) 移动到行头
shift+4($) 移动到行尾
1+shift+g 移动到页头,数字
shift+g 移动到页尾
数字 N+shift+g 移动到目标行

image-20231208105833050

# 编辑模式

在一般模式中可以进行删除、复制、粘贴等的动作,但是却无法编辑文件内容的!要等到你按下『i, I, o, O, a, A』等任何一个字母之后才会进入编辑模式。

注意了!通常在 Linux 中,按下这些按键时,在画面的左下方会出现『INSERT 或 REPLACE』的字样,此时才可以进行编辑。而如果要回到一般模式时, 则必须要按下『Esc』这个按键即可退出编辑模式。

按键 功能
i 当前光标前
a 当前光标后
o 当前光标行的下一行
I 光标所在行最前
A 光标所在行最后
O 当前光标行的上一行

# 指令模式

在一般模式当中,输入『 : / ?』3 个中的任何一个按钮,就可以将光标移动到最底下那一行。

在这个模式当中, 可以提供你『搜寻资料』的动作,而读取、存盘、大量取代字符、离开 vi 、显示行号等动作是在此模式中达成的!

命令 功能
:w 保存
:q 退出
:! 强制执行
/ 要查找的词 n 查找下一个,N 往上查找
:noh 取消高亮显示
:set nu 显示行号
:set nonu 关闭行号
:%s/old/new/g 替换内容 /g global 替换匹配到的所有内容

image-20231208110154483

# iptables

netstat -tnl #查看服务器目前开放端口

iptables -I INPUT -p tcp --dport 8000 -j ACCEPT #开启8000端口

iptables -L -n -v #查看已添加的iptables规则 查询编号id

iptables -D INPUT 编号id #删除指定编码的规则

iptables -F #一键清空所有规则

iptables -A INPUT -p tcp --dport 80 -j DROP #封指定的端口

1
2
3
4
5
6
7
8
9
10
11
12

# 网络配置和系统管理操作

# ifconfig 配置网络接口

ifconfig :network interfaces configuring 网络接口配置,ifconfig(功能描述:显示所有网络接口的配置信息)

ifconfig
1

# 修改 IP 地址

vim /etc/udev/rules.d/70-persistent-ipoib.rules   # 修改mac
vim /etc/sysconfig/network-scripts/ifcfg-ens33  #一般为ens33 修改ip地址
1
2
#修改内容
BOOTPROTO="static"   #IP的配置方法[none|static|bootp|dhcp](引导时不 使用协议|静态分配IP|BOOTP协议|DHCP协议)
ONBOOT="yes"   #系统启动的时候网络接口是否有效(yes/no)

#添加内容
#IP地址
IPADDR=192.168.10.100  
#网关  
GATEWAY=192.168.10.2      
#域名解析器
DNS1=114.114.114.114
DNS2=8.8.8.8
1
2
3
4
5
6
7
8
9
10
11
12

修改完成后需要重启网络

systemctl restart network
1

# 配置主机名

hostname # 查看主机名
hostname 主机名:修改主机名   # 重启后恢复 临时更改  如:hostname admin
1
2

如要永久修改需要 更改 /etc/sysconfig/network 文件

vim /etc/sysconfig/network #  修改主机名称
vim /etc/hostname  # 修改主机名
1
2

# 修改 hosts 映射文件

vim /etc/hosts
1

# systemctl

systemctl start | stop | restart | status 服务名

查看服务的方法

ls /usr/lib/systemd/system
1

案例

systemctl status firewalld # 查看网络服务的状态
systemctl stop firewalld # 停止网络服务
systemctl start firewalld # 启动网络服务
systemctl restart firewalld	# 重启网络服务

systemctl list-unit-files # 查看服务开机启动状态
systemctl disable 服务名 # 关掉指定服务的自动启动
systemctl enable 服务名 # 开启指定服务的自动启动
systemctl is-enabled 服务名 # 查看服务是否允许开机自启
1
2
3
4
5
6
7
8
9

# 开放端口

firewall-cmd --zone=public --add-port=8888/tcp --permanent
# 命令含义:
--zone #作用域
--add-port=1935/tcp  #添加端口,格式为:端口/通讯协议
--permanent  #永久生效,没有此参数重启后失效
#重启
firewall-cmd --reload
1
2
3
4
5
6
7
# 查询端口是否开放
firewall-cmd --query-port=8080/tcp
# 开放80端口
firewall-cmd --permanent --add-port=80/tcp
# 移除端口
firewall-cmd --permanent --remove-port=8080/tcp
#重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload #ubuntu 重启
service iptables stop #停止
1
2
3
4
5
6
7
8
9

开放所有端口

iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -F
iptables-save
#建议删除 iptables
sudoapt-get remove iptables
1
2
3
4
5
6
7

# 防火墙

service iptables status # 防火墙状态
service iptables stop # 关闭防火墙
service iptables start # 启动防火墙

chkconfig iptables off # 禁止防火墙自启
netstat -nltp # 查看聆听的端口
1
2
3
4
5
6

# 关机重启命令

正确的关机流程为:sync > shutdown、reboot 、halt

  • sync:将数据由内存同步到硬盘中
  • halt:关闭系统,等同于 shutdown -h now 和 poweroff
  • reboot:就是重启,等同于 shutdown -r now
  • shutdown [选项] 时间
    • -h:-h=halt 关机
    • -r:-r=reboot 重启
    • now:立刻关机
    • 时间:等待多久后关机(时间单位是分钟)。

Linux 系统中为了提高磁盘的读写效率,对磁盘采取了 “预读迟写” 操作方式。当用户保存文件时,Linux 核心并不一定立即将保存数据写入物理磁盘中,而是将数据保存在缓冲区中,等缓冲区满时再写入磁盘,这种方式可以极大的提高磁盘写入数据的效率。但是,也带来了安全隐患,如果数据还未写入磁盘时,系统掉电或者其他严重问题出现,则将导致数据丢失。使用 sync 指令可以立即将缓冲区的数据写入磁盘。

sync # 将数据由内存同步到硬盘中
reboot
1
2

# 查看系统版本

getconf LONG_BIT
1

# 后台运行

nohup 命令 用途:执行命令,忽略挂起指令,可用于后台运行,关闭 shell 不受影响 语法: nohup COMMAND [ARG]

nohup 运行文件名/命令名 &
1

# 磁盘分区类

# df 查看磁盘空间使用情况

df: disk free 空余硬盘

df 选项 (功能描述:列出文件系统的整体磁盘使用量,检查文件系统的磁盘空间占用情况)

选项 功能
-h 以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
df -h # 查看磁盘使用情况
1

# du 文件和目录的磁盘使用空间

du 目录 / 文件(功能描述:显示每个目录 / 文件的磁盘使用空间)

选项 功能
-a 显示当前目录下所有的文件目录及子目录大小
-h 以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
du -a jinyong
du -h
1
2

# fdisk 查看分区

fdisk -l (功能描述:查看磁盘分区详情)

选项 功能
-l 显示所有硬盘的分区列表

Linux 分区

  • Device:分区序列
  • Boot:引导
  • Start:从 X 磁柱开始
  • End:到 Y 磁柱结束
  • Blocks:容量
  • Id:分区类型 ID
  • System:分区类型
fdisk -l # 查看系统分区情况
1

# lsblk 查看设备挂载情况

lsblk (功能描述:查看设备挂载情况)

选项 功能
-f 查看详细的设备挂载情况,显示文件系统信息
lsblk -f
1

# mount/umount 挂载 / 卸载

对于 Linux 用户来讲,不论有几个分区,分别分给哪一个目录使用,它总归就是一个根目录、一个独立且唯一的文件结构。

Linux 中每个分区都是用来组成整个文件系统的一部分,它在用一种叫做 “挂载” 的处理方法,它整个文件系统中包含了一整套的文件和目录,并将一个分区和一个目录联系起来,要载入的那个分区将使它的存储空间在这个目录下获得。

mount [-t vfstype] [-o options] device dir (功能描述:挂载设备)

umount 设备文件名或挂载点 (功能描述:卸载设备)

参数 功能
-t vfstype 指定文件系统的类型,通常不必指定。mount 会自动选择正确的类型。常用类型有: 光盘或光盘镜像:iso9660 DOS fat16 文件系统:msdos Windows (opens new window) 9x fat32 文件系统:vfat Windows NT ntfs 文件系统:ntfs Mount Windows 文件网络 (opens new window)共享:smbfs UNIX (opens new window) (LINUX) 文件网络共享:nfs
-o options 主要用来描述设备或档案的挂接方式。常用的参数有: loop:用来把一个文件当成硬盘分区挂接上系统 ro:采用只读方式挂接设备 rw:采用读写方式挂接设备   iocharset:指定访问文件系统所用字符集
device 要挂接 (mount) 的设备
dir 设备在系统上的挂接点 (mount point)
mount -t iso9660 /dev/cdrom /mnt/cdrom/ # 设备/dev/cdrom挂载到 挂载点:/mnt/cdrom中
umount /mnt/cdrom   # 卸载光盘镜像文件
1
2

# 添加新的硬盘并挂载

我将使用 VM 来进行模拟

先使用 df 看下我的电脑硬盘信息:

df -h
1

img

可以看到只有一个 sda1 分区装载 /boot , 还有一个扩展分区

查看 dev 下的硬盘:

img

只有一个硬盘(两个分区)

注意:

如果你是 IDE 接 口 硬 盘 :/dev/dh [a-z],这里的硬盘名字应该是 dh [a-z] 开头

如果你是 SCSI 接 口 硬 盘 : /dev/[a -z], 这里的硬盘名字应该是 sd [a-z] 开头

接下来将进行另一块硬盘的安装:

1. 将硬盘装在电脑上,重启电脑,后查看 /dev/ 下有没多了一块硬盘

img

ls /dev/sd
1

img

2. 用 fdisk 对这块硬盘分区

fdisk /dev/sdb
1

img

按下 m 显示菜单:

img

因为要新建分区选择 n

img

这里是问你是要建立主分区还是扩展分区,这里是第一次建立选择主分区 p

img

因为是 MBR 分区只能有 4 个分区,这里建立第一个分区,输入 1

img

这里问你个分区的起始扇区,这里直接回车(默认),相当于输入了 2048

img

这里问你的结束扇区,这里不需要计算,直接输入 + 1G 加号后面为这个分区的大小

img

此时第一个分区已经建立,但还是在内存中并没有写到硬盘 sdb 中,所以直接输入 w

注意这里可以继续创建分区,完了再输入 w,我这里只建立一个分区

img

经过以上步骤后分区的建立已经完成,但是此时系统还无法识别分区表

3. 内核重新读取分区表

partprobe /dev/sdb
1

img

注意:这里是整个磁盘 sdb,不是磁盘分区 sdb1

4. 创建文件系统(格式化分区)

Linux 中的主流的文件系统有:ext4 和 xfsd 等

img

这里我建立 ext4 文件系统

mkfs.ext4 /dev/sdb1

注意:这里是磁盘分区 sdb1,不是整个磁盘 sdb

img

5. 挂载

在挂载之前你需要确定挂载的目录,我这里是 /mnt/sdb1-zhi   , 没有目录的自己 mkdir, 这里目录最好建立在 /mnt 下,这个目录是专门挂载的,可以任意。

将来这个分区就会与这个 /mnt/sdb1-zhi 目录建立联系

手动挂载

mount /dev/sdb1 /mnt/sdb1-zhi/
1

img

df 一下:

img

这里已经挂载成功,但是这只是一次性的,重启后就会消失

永久挂载:

要对 /etc/fstab 文件编辑

vim /etc/fstab
1

img

比如第一行中

 硬盘路径                         文件路径(挂载点)    文件系统类型    设备的自定义选项  是否转存  fsck的顺序
1
 /dev/mapper/CentOS-root                   /          xfs         defaults    0      0
1
 UUID=e4ef36e1-0840-4a58-a4f7-c26f52ead6f1         /boot         xfs         defaults     0      0
1
我们要在最后一行写入自己的分区与文件路径,可以仿照上面的写
1
  /dev/sdb1                         /mnt/sdb1-zhi      ext4         defaults     0      0
1

img

这里第一列也可以写入 UUID

UUID 的查询:

blkid
1

img

转存:0 不转存,不备份  1 转存,备份

fsck:开机检查磁盘的顺序  0 表示不检查  1234.... 为检查顺序

以上步骤完成后,还需要判断是否正确

mount -a
1

img

如果没有其他信息出现,表示你插入的正确,否则错误。

如果错误且没有检查,开机后将进入紧急模式,无法开机

最后开机重启后 df 一下,看看是否正常

img

最后总结一下

1.fdisk /dev/sdb

2.partprobe  /dev/sdb

\3. mkfs.ext4   /dev/sdb1

4. 挂载  mount   /dev/sdb1  /mnt/sdb1-zhi

vim /etc/fstab

5.mount -a

# 搜索

# find 查找文件或者目录

find 指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件显示在终端。

find [搜索范围] [选项]

选项 功能
-name <查询方式> 按照指定的文件名查找模式查找文件
-user <查询方式> 查找属于指定用户名所有文件
-size <文件大小> 按照指定的文件大小查找文件,单位为: b —— 块(512 字节) c —— 字节 w —— 字(2 字节) k —— 千字节 M —— 兆字节 G —— 吉字节
-ctime 文件时间
# 查询指定文件:
find -name 文件名
find -name 文件名* # (匹配包含此名字的文件)

# 文件大小
find -size +1k # (大于1k的文件)
find -size -1k # (小于1k的文件)
find -size 1k # 等于1k的文件
1
2
3
4
5
6
7
8

# locate 快速定位文件路径

locate 指令利用事先建立的系统中所有文件名称及路径的 locate 数据库实现快速定位给定的文件。Locate 指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新 locate 时刻,注意 locate 这个命令不能搜索 /tmp 目录下的文件。

locate 搜索文件,由于 locate 指令基于数据库进行查询,所以第一次运行前,必须使用 updatedb 指令创建 locate 数据库。

updatedb # 创建locate数据库初始化
locate 文件名
1
2

# grep 过滤查找及 “|” 管道符

管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理。

grep 选项 查找内容 源文件

  • -n (显示指定行号可省略)
  • --color 高亮显示关键字
  • -An 显示后面的 n 行
  • -Bn 显示前面的 n 行
  • -c 统计个数
  • -v 查询不包含该关键字的
  • -i 忽略大小写
grep - n 123 abc.txt
1

管道符 | 将前一个命令的结果传递给后一个命令

如:

ll | grep ini #    (会根据ll的结果查找指定内容)
1

# 压缩和解压类

# gzip/gunzip 压缩

gzip 文件 (功能描述:压缩文件,只能将文件压缩为 *.gz 文件)

gunzip 文件.gz (功能描述:解压缩文件命令)

只能压缩文件不能压缩目录,不保留原来的文件

gzip 文件名
gunzip 文件名.gz  # 解压gz文件
gzip -dv 压缩文件 #  解压gz文件
1
2
3

# zip/unzip 压缩

zip [选项] XXX.zip 将要压缩的内容 (功能描述:压缩文件和目录的命令)

zip 选项 功能
-r 压缩目录

unzip [选项] XXX.zip (功能描述:解压缩文件)

unzip 选项 功能
-d <目录> 指定解压后文件的存放目录

zip 压缩命令在 window/linux 都通用,可以压缩目录且保留源文件。

zip -r 文件名.zip 要压缩的内容  #  压缩zip文件
unzip -d 压缩文件.zip    # 解压zip文件
unzip -l  压缩文件.zip  # 查看zip里面的文件
1
2
3

# tar 打包

tar [选项] XXX.tar.gz 将要打包进去的内容 (功能描述:打包目录,压缩后的文件格式.tar.gz)

  • -c 产生.tar 打包文件
  • -v 显示详情信息
  • -f 指定压缩后的文件名
  • -z 打包同时压缩
  • -x 解包.tar 文件
  • -C 解包目录
tar -cvf xxx.tar ./* # 打包:
tar -zcvf xxx.tar.gz ./* # 打包并压缩:
tar -ztvf xxx.gz # 查看压缩包的文件
tar -xvf xxx.tar # 解压
tar -zxvf xxx.tar.gz  -C  ./* # 解压到指定路径
1
2
3
4
5

备份 /home, /etc ,但不要 /home/dmtsai

tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc
1

在 /home 当中,比 2010/06/01 新的文件才备份

tar -N '2010/06/01' -zcvf home.tar.gz /home
1

# bzip2

bzip2  文件    # 压缩成.bz2文件  并删除原来的文件
bunzip2 -v 文件.bz2  #  解压
1
2

# 进程线程类

进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。

# ps 查看当前系统进程状态

ps:process status 进程状态

ps -aux | grep xxx (功能描述:查看系统中所有进程)

ps -ef | grep xxx (功能描述:可以查看子父进程之间的关系)

选项 功能
-a 选择所有进程
-u 显示所有用户的所有进程
-x 显示没有终端的进程
ps -aux    # 查看所有进程
1
  • USER:该进程是由哪个用户产生的
  • PID:进程的 ID 号
  • % CPU:该进程占用 CPU 资源的百分比,占用越高,进程越耗费资源;
  • % MEM:该进程占用物理内存的百分比,占用越高,进程越耗费资源;
  • VSZ:该进程占用虚拟内存的大小,单位 KB;
  • RSS:该进程占用实际物理内存的大小,单位 KB;
  • TTY:该进程是在哪个终端中运行的。其中 tty1-tty7 代表本地控制台终端,tty1-tty6 是本地的字符界面终端,tty7 是图形终端。pts/0-255 代表虚拟终端。
  • STAT:进程状态。常见的状态有:R:运行、S:睡眠、T:停止状态、s:包含子进程、+:位于后台
  • START:该进程的启动时间
  • TIME:该进程占用 CPU 的运算时间,注意不是系统时间
  • COMMAND:产生此进程的命令名
ps -ef
1
  • UID:用户 ID
  • PID:进程 ID
  • PPID:父进程 ID
  • C:CPU 用于计算执行优先级的因子。数值越大,表明进程是 CPU 密集型运算,执行优先级会降低;数值越小,表明进程是 I/O 密集型运算,执行优先级会提高
  • STIME:进程启动的时间
  • TTY:完整的终端名称
  • TIME:CPU 时间
  • CMD:启动进程所用的命令和参数

# kill 终止进程

kill [选项] 进程号 (功能描述:通过进程号杀死进程)

killall 进程名称 (功能描述:通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用)

选项 功能
-9 表示强迫进程立即停止
kill -9 进程号 # 强制结束进程
killall 进程名 # 结束多个相同名称进程
1
2

# pstree 查看进程树

pstree [选项]

选项 功能
-p 显示进程的 PID
-u 显示进程的所属用户
pstree -p # 显示进程pid
pstree -u # 显示进程所属用户
1
2

# top 查看系统健康状态

top [选项]

选项 功能
-d 秒数 指定 top 命令每隔几秒更新。默认是 3 秒在 top 命令的交互模式当中可以执行的命令:
-i 使 top 不显示任何闲置或者僵死进程。
-p 通过指定监控进程 ID 来仅仅监控某个进程的状态。

在 top 命令执行完后我们可以按以下按键执行以下功能

操作 功能
P 以 CPU 使用率排序,默认就是此项
M 以内存的使用率排序
N 以 PID 排序
q 退出 top
top  # 显示所有进程信息
top -c  # 显示进程的详细路径
top -p PID  # 显示指定的进程信息
1
2
3

第一行信息为任务队列信息

内容 说明
12:26:46 系统当前时间
up 1 day, 13:32 系统的运行时间,本机已经运行 1 天 13 小时 32 分钟
2 users 当前登录了两个用户
load average: 0.00, 0.00, 0.00 系统在之前 1 分钟,5 分钟,15 分钟的平均负载。一般认为小于 1 时,负载较小。如果大于 1,系统已经超出负荷。

第二行为进程信息

Tasks: 95 total 系统中的进程总数
1 running 正在运行的进程数
94 sleeping 睡眠的进程
0 stopped 正在停止的进程
0 zombie 僵尸进程。如果不是 0,需要手工检查僵尸进程

第三行为 CPU 信息

Cpu(s): 0.1%us 用户模式占用的 CPU 百分比
0.1%sy 系统模式占用的 CPU 百分比
0.0%ni 改变过优先级的用户进程占用的 CPU 百分比
99.7%id 空闲 CPU 的 CPU 百分比
0.1%wa 等待输入 / 输出的进程的占用 CPU 百分比
0.0%hi 硬中断请求服务占用的 CPU 百分比
0.1%si 软中断请求服务占用的 CPU 百分比
0.0%st st(Steal time)虚拟时间百分比。就是当有虚拟机时,虚拟 CPU 等待实际 CPU 的时间百分比。

第四行为物理内存信息

Mem: 625344k total 物理内存的总量,单位 KB
571504k used 已经使用的物理内存数量
53840k free 空闲的物理内存数量,我们使用的是虚拟机,总共只分配了 628MB 内存,所以只有 53MB 的空闲内存了
65800k buffers 作为缓冲的内存数量

第五行为交换分区(swap)信息

Swap: 524280k total 交换分区(虚拟内存)的总大小
0k used 已经使用的交互分区的大小
524280k free 空闲交换分区的大小
409280k cached 作为缓存的交互分区的大小

# netstat 显示网络统计信息和端口占用情况

netstat -anp |grep 进程号 (功能描述:查看该进程网络信息)

netstat -nlp | grep 端口号 (功能描述:查看网络端口号占用情况)

选项 功能
-n 拒绝显示别名,能显示数字的全部转化成数字
-l 仅列出有在 listen(监听)的服务状态
-p 表示显示哪个进程在调用
netstat -anp | grep 3115 # 通过进程号查看该进程的网络信息
netstat -nlp | grep 20670 # 查看某端口号是否被占用
1
2

# crontab 系统定时任务

# crond 启动定时服务

service crond restart # 重新启动
systemctl start crond # 启动
systemctl status crond # 查看状态
1
2
3

# crontab

crontab [选项]

选项 功能
-e 编辑 crontab 定时任务
-l 查询 crontab 任务
-r 删除当前用户所有的 crontab 任务
crontab -e  # 编辑定时任务
crontab -l # 查询任务
crontab -r # 删除当前用户所有任务
1
2
3

# * * * * * 执行的任务

进入 crontab 编辑界面。会打开 vim 编辑你的工作。

crontab -e 
1

img

  1. * 一小时当中的第几分钟 0-59
  2. * 小时 0-23
  3. * 当月第几天 1-31
  4. * 几月 1-12
  5. * 星期几 0-7 (0 和 7 代表星期日)

* 代表任何时间。如第一个星则为 每分钟执行

, 代表不连续时间 0 8,12,16 * * * 代表每天 8 点 12 点 16 点执行一次

- 代表连续时间 0 5 * * 1-6 代表周一到周六 5 点执行

*/x 代表每隔多久执行一次 */10 * * * * 代表每隔 10 分钟执行一次

30 * * * * /root/qb.sh > /dev/null 2>& &
1

# 安装软件

# rpm

RPM(RedHat Package Manager),RedHat 软件包管理工具,类似 windows 里面的 setup.exe

是 Linux 这系列操作系统里面的打包安装工具,它虽然是 RedHat 的标志,但理念是通用的。

RPM 包的名称格式

Apache-1.3.23-11.i386.rpm

  • “apache” 软件名称
  • “1.3.23-11” 软件的版本号,主版本和此版本
  • “i386” 是软件所运行的硬件平台,Intel 32 位微处理器的统称
  • “rpm” 文件扩展名,代表 RPM 包

# 查询

rpm -qa   # 查询所有rpm软件包
rpm -qa | grep rmp软件包   # 查看指定软件是否安装
1
2

# 卸载

rpm -e rpm软件包 #  卸载指定软件包
rpm -e --nodeps 软件包 #  卸载rpm时不检测依赖
1
2

# 安装

rpm -ivh RPM 包全名

选项 功能
-i -i=install,安装
-v -v=verbose,显示详细信息
-h -h=hash,进度条
--nodeps --nodeps,不检测依赖进度
rpm -ivh  软件包名
1

# yum

YUM(全称为 Yellow dog Updater, Modified)是一个在 Fedora 和 RedHat 以及 CentOS 中的 Shell 前端软件包管理器。基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

yum [选项] [参数]

选项: -y 对所有提问都回答 yes

参数 功能
install 安装 rpm 软件包
update 更新 rpm 软件包
check-update 检查是否有可用的更新 rpm 软件包
remove 删除指定的 rpm 软件包
list 显示软件包信息
clean all 清理 yum 过期的缓存
makecache 将当前 yum 源里的 rpm 包列表缓存到本地
deplist 显示 yum 软件包的所有依赖关系

如安装 mysql:

  1. 检测是否安装了 mysql:rpm -qa | grep mysql
  2. 下载 mysql 的 repo 源 wget http..... 下载地址
  3. rpm -ivh mysql 软件包名
  4. yum install 软件

# centos7 跳过首次登陆创建普通用户步骤

安装完成 centos7 之后总会提示新增普通用户,如何跳过:

首先 ctrl+alt+f2 进入命令行界面

yum remove gnome-initial-setup.x86_64
init 3
init 5
1
2
3

执行完成后

再 ctrl+alt+f1 进入图形化界面就会跳过此步骤

# 找回 root 密码

重启 Linux,见到下图,通过键盘上下方向键选择第一个

image-20231208142131677

按 e,出现如下的界面

image-20231208142142100

定位到 LANG=zh_CN.UTF-8,后面追加 init=/bin/sh

image-20231208142156161

键盘 ctrl+x 进行引导启动,进入如下界面

image-20231208142205918

挂载根目录

image-20231208142217503

选择要修改密码的用户名,passwd root,然后输入两次一致的密码,依次回车。 注意:输入密码不显示,一定要确认输入正确。

image-20231208142228466

更新系统信息 touch /.autorelabel

image-20231208142238029

最后输入 exec /sbin/init 命令重启系统即可

image-20231208142247653

编辑 (opens new window)
上次更新: 2025/01/01, 10:09:39
ElasticSearch 高级
shell

← ElasticSearch 高级 shell→

最近更新
01
k8s
06-06
02
进程与线程
03-04
03
计算机操作系统概述
02-26
更多文章>
Theme by Vdoing | Copyright © 2022-2025 Iekr | Blog
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式