++1.初始化CentOS和配置yum源++
------如果使虚拟机CentOS以上两步配置完成后,拍摄快照(后期虚拟机出现问题,可恢复快照)
1).进行初始化(安装好CentOs后):
------使自己搭建的服务可以被外部访问
- 关闭防火墙 :
systemctl disable --now firewalld
- 临时关闭selinux(计算机重启后selinux依然开启状态):
setenforce 0
- 永久关闭selinux:
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux /config
SELinux 主要作用就是最大限度地减小系统中服务进程可访问的资源(最小权限原则)
2).配置yum源:
------由于本地YUM源提供的软件包版本过低,不能满足大多数软件安装的依赖需求,配置在线YUM源
- 备份原有本地YUM源
mv /etc/yum.repos.d/* /opt/
- 下载阿里云在线源
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo
- 修改阿里云YUM源地址,默认官方源提供的地址是云主机内部使用的地址,替换为公共地址。
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
- 生成新的YUM缓存(相当于使修改后的yum源文件生效)
yum makecache
++2.Linux终端介绍、Shell、基本命令操作++
1).Linux终端:
--用户跟系统交互的窗口
- 终端:tty 真终端((tty1图形界面,tty2-tty6字符界面)),/dev/pts/0 伪终端
- tty终端:tty1 就是图形界面。 tty2-6是字符界面(ctl + Alt +1~6)
- 两种终端仿真器:1、GNOME桌面的GNOME Terminal ; 2、KDE桌面的Konsole Terminal
远程连接终端的工具: Xshell , CRT
查看当前登录所有用户信息:w
查看当前用户终端:tty
不同终端之间通讯:
- 和不同终端发消息(例:给/dev/pts/2发hello):
echo hello > /dev/pts/2
- 给伪终端发消息:
wall "hello"
2).Shell:
--Shell俗称壳,它提供了用户与内核进行交互操作的一种接口,它接收用户输入的命令并把它送入内
核去执行
--Shell实际上是一个命令解释器,它通过解释用户输入的命令并把它传输给系统内核去执行。
--Shell有自己的编程语言,它允许用户编写由shell命令组成的程序。Shell编程语言具有普通编程语
言的很多特点,比如它也有循环结构和分支控制结构等。
(若从行程(process)角度来说,我们在shell所下达的命令,均是shell所产生的子行程。 这现象,我们暂可称之为fork。 如果是执行脚本(shell script)的话,脚本中的命令则是由另外一个非互动模式的子shell(sub shell)来执行的。 也就是primary shell产生sub shell的行程,sub shell再产生script中所有命令的行程)
--内部命令其实是SHELL程序的一部分,其中包含的是一些比较简练和日常经常会被用到的命令
--外部命令通常是系统的软件功能,该部分程序功能通常较为强大,但包括的程序量也很大,因此并不随系统启动一并加载,只在用户需要时才从硬盘中读入内存
-
查看命令类型:
type [-a | -t | -p] name
-t对应-type,它将会显示alias、 keyword、function、builtin或file
-a对应-all,显示所有可执行name的可能路径
-p对应-path,会显示该命令的完整档名(外部指令)或显示为内建指令,找不到的话,不显示任何东西
-
输出(PATH)系统环境变量:
echo $PATH
--根据PATH环境变量找所输入的命令在哪儿
-
查看所有shell类型:
cat /ect/shells
--具体你使用的是哪一个,取决于你的用户配置
-
显示当前用户信息:
id
(uid = 0时即为root权限) -
查找id命令位置:
which id
--> 输出:/usr/bin/id
总结: 通过SHELL,我们可以对LINUX实现哪些操作或管理:
- 对文件的管理(创建、删除、复制、修改)
- 对用户的管理(添加、删除)
- 相关权限的管理(授权用户对相关文件的管理,比如增删改查)
- 对磁盘的管理(分区、raid、lvm)
- 对软件的管理
- 对网络的管理
2.1).shell提示符"#"和"$"
[root@tcx ~]#
#表示是root用户登录,管理员账号登陆(因为uid=0,所以拥有管理员权限)
[root@tcx ~]# su - tcx
#切换到mk普通用户
有横杠" - ":用户切换,更改工作目录,加载所有用户环境配置。
无横杠" - ":用户切换,但是工作目录不会切换到该用户所在工作目录,也不会加载该用户设置的环境变量
[mk@tcx ~]$
#表示普通用户登录(因为uid=1000,所以拥有用户权限)--若讲uid设为0,此用户也将拥有管理员权限
3).基本命令操作
--命令 【选项】 【参数】
1.基础命令(查看目录内容、路径切换、查看文件内容):
-
ls命令:
查看当前目录下的文件;概要信息
ls
(查看详细信息:ls -l
)查看当前目录下的所有文件(包括隐藏文件):
ls -a
-d 查看目录(不查看里面的内容):
ls -ld /root/
d:目录文件
-:普通文件
l:链接文件
c:字符设备文件
b:块设备文件
p:管道文件
s:套接字文件
-
cd 命令:
切换命令:
cd /opt/
切换上一级:
cd ..
默认切换到当前目录的家目录:
cd
-
cat命令(tab键可补全路径名):
cat命令查看文件内容:
cat /etc/passwd
2.系统时间管理命令
- 查看时间:
查看硬件时间:hwclock
查看系统时间:date
/date "+%F %T"
- 修改时间:
修改系统时间:date -s "2025-05-21 21:30"
以硬件时间为基准,修改系统时间:hwclock -s
- %F 完整日期格式,等价于 %Y-%m-%d
%T 完整时间格式
3.man手册和find的使用
man手册的常见用法:
find命令常见用法(1-4基础类,5-10微难度类):
-
在
/etc
目录下查找名为passwd
的文件:find /etc -name passwd
-
查找指定文件类型
查找 /home 目录下的所有普通文件:
find /home -type f
查找var目录下的所有目录:
find /var -type d
-
按文件大小查找:
查找 /tmp 目录下大于 10MB 的文件:
find /tmp -size +10M
查找 /home 目录下小于 1KB 的文件:
find /home -size -1k
-
按修改时间查找:
查找 /var/log 目录下过去 7 天内修改过的文件:
find /var/log -mtime -7
查找 /etc 目录下超过 30 天未修改的文件:
find /etc -mtime +30
-
递归查找并执行操作
查找 /home 目录下所有 .log 文件并删除它们:
find /home -name "*.log" -exec rm {} \;
查找 /var/www 目录下所有文件并更改其权限为 644:
find /var/www -type f -exec chmod 644 {} \;
-
查找空文件或目录
查找
/home
目录下的空文件:find /home -type f -empty
查找
/var
目录下的空目录:find /var -type d -empty
-
查找并排除某些文件
查找 /etc 目录下所有 .conf 文件,但排除 /etc/hosts:
find /etc -name "*.conf" ! -name "hosts"
-
查找并统计文件数量
统计 /home 目录下所有 .txt 文件的数量:
find /home -name "*.txt" | wc -l
-
查找并显示详细信息
查找
/var/log
目录下所有文件并显示详细信息(如权限、所有者、大小等):
find /var/log -exec ls -l {} \;
-
查找并备份文件
查找
/etc
目录下所有配置文件并复制到/backup
目录:find /etc -name "*.conf" -exec cp {} /backup/ \;
*find的常用选项*
-name "pattern"
:按文件名查找(支持通配符,如*.log
)。-type c
:按文件类型查找(f
表示普通文件,d
表示目录,l
表示符号链接)。-size n
:按文件大小查找(+n
表示大于,-n
表示小于,n
表示等于)。-mtime n
:按修改时间查找(+n
表示超过 n 天前,-n
表示 n 天内)。-empty
:查找空文件或空目录。-exec command {} \;
:对找到的文件执行指定命令({}
表示当前文件,\;
表示命令结束)。-prune
:跳过某个目录的搜索。
注意事项:
find
命令会递归搜索指定目录及其子目录,可能会消耗较多资源。- 使用
-exec
时,注意命令的结束符\;
,否则可能无法正确执行。 - 如果需要排除某些文件或目录,可以使用
! -name "pattern"
或-prune
。
通过灵活组合这些选项,find
命令可以满足大多数文件搜索需求
4.开关机命令及7个启动级别
开关机命令:
- 切换启动级别:
init [级别]
启动级别:0(关机),6(重启) - 关机:
shutdown
shutdown -h +10
--10分钟之后关机
shutdown -h 23:30
--指定具体的时间点进行关机
shutdown -r 20:30
--22:22 以后重启
shutdown -h now
--立即关机 - 重启:
reboot
- 关机:
poweroff
- 断电:
halt
--(慎用!!!!)
5.Linux 7个启动级别:
- 0 系统停机模式,系统默认运行级别不能设置为0,否则不能正常启动,机器关的
- 1 单用户模式,root权限,用于系统维护,禁止远程登陆,就像Windows下的安全模式登录(单用户模式仅加载最基本的系统服务和进程,不启动网络服务)
- 2 多用户模式,没有NFS网络文件系统(Network File System)和网络支持(无网络)
- 3 完整的多用户文本模式,有NFS和网络,登陆后进入控制台命令行模式(有网络)--字符界面
- 4 系统未使用,++保留一般不用++,在一些特殊情况下可以用它来做一些事情。例如在笔记本电脑的电池用尽时,可以切换到这个模式来做一些设置
- 5 图形化模式,登陆后进入图形GUI模式,X Window系(有网络)--图形界面
- 6 重启模式,默认运行级别不能设为6,否则不能正常启动。运行init 6机器就会重启
设置默认启动级别:
systemctl set-default multi-user.target
#设置默认++第三++启动级别systemctl set-default runlevel3.target
#设置默认++第三++启动级别systemctl set-default graphical.target
#设置默认第五启动级别systemctl set-default runlevel5.target
#设置认++第五++启动级别systemctl isolate graphical.target
#切换级别为图形界面systemctl isolate runlevel5.target
#切换级别为++图形++界面