Linux基础学习(centos 7.9)(更新中)

一、重置root用户密码

1.位于系统引导界面时,按下键盘上“e”键,进入内核编辑界面。

aa3c3ea272ea4f7981a28c3567d72c5f.png

2.内核编辑界面无法使用鼠标,所以使用方向键找到linux16这一行,在行尾打一个空格后,加上rd.break参数,并按下CTRL+X的组合键来运行修改后的内核程序。

d9fa4ef230834b8d9474c496758d74eb.png

3.进入系统紧急救援模式后输入以下命令,密码输入时,屏幕上是不显示的。

mount -o remount,rw /sysroot
chroot /sysroot
passwd
新密码
再次输入新密码
touch /.autorelabel
exit
reboot

 

7e4010529e464b30aafd11089965c0d5.png

4.登录修改过密码的root用户,开始linux之旅

二、虚拟机实现登录内、外网

注意:

1.如果步骤正确,但是连接不了网络,可以尝试关闭防火墙或者修改成另一种模式来连接。

内网连接需要两台主机的ip地址位于同一网段下,外网连接则要求主机拥有ip地址和网关。

 修改虚拟机的模式

右键虚拟机,打开设置

6cd96ce2bc0c455ab0b6f5f1ea1d15a3.png

df80b0ff385d40c5a2f7f0b2626283fe.png

桥接模式

虚拟机拥有一个独立的ip地址,直接来连接外网

1.打开主机的CMD命令提示符,并查看主机ip地址、子网掩码、网关。

ipconfig

 

1d845ba7f10e4a27a4b56d12f000ea50.png

2.进入linux系统,打开终端,如果仅需要内网连接,则只需要设置一个临时ip地址就可以实现。

ifconfig ens33 ip地址    #这里的ip地址不能与主机和网关地址相同
ping 主机ip地址        #测试通信

如果出现下图中长时间无反应的情况,关闭windows的防火墙就可以解决。

788207ab20334e7c9f70e2ffc1836800.png

3.如果需要连接外网,则需要打开路径为/etc/sysconfig/network-scripts/ifcfg-ens33的文件,并如图进行修改。

vim /etc/sysconfig/network-scripts/ifcfg-ens33         #vim命令用于编辑文件
#打开文件后 按下 i 键开启编辑模式,编辑结束后按下ESC键退出编辑模式,然后输入:wq退出并保存文件
systemctl restart network        #每次修改配置文件后都需要重启服务

e427f81118bf4b8cb255d78fedc61a1a.png

BOOTPROTO是ip地址的分配方式,static指手动配置。

ONBOOT指是否启动网卡,yes启动,no关闭。

4.测试与外网的通信

NAT模式

NAT模式下,虚拟机和主机共用一个外网ip地址

1.启用VMnet8网络

右键主机桌面任务栏wifi图标,打开高级网络设置,启用VMnet8网络。

d3d48faa6118450abf0bb51b49404afd.png

 2.打开主机的CMD命令提示符,并查看主机ip地址、子网掩码。

ipconfig

fc9d5a11b10a4d3da0cc16563e4601c8.png

打开VMware的编辑选项卡->虚拟网络编辑器,获取网关地址。

37d94e174fdc448ca80e3d1429e0ddc5.png

 3.进入linux系统,打开终端,如果仅需要内网连接,则只需要设置一个临时ip地址就可以实现。

ifconfig ens33 ip地址    #这里的ip地址不能与主机和网关地址相同
ping 主机ip地址        #测试通信

如果出现下图中长时间无反应的情况,关闭windows的防火墙就可以解决。

788207ab20334e7c9f70e2ffc1836800.png

 4.如果需要连接外网,则需要打开路径为/etc/sysconfig/network-scripts/ifcfg-ens33的文件,并进行修改。

vim /etc/sysconfig/network-scripts/ifcfg-ens33         #vim命令用于编辑文件
#打开文件后 按下 i 键开启编辑模式,编辑结束后按下ESC键退出编辑模式,然后输入:wq退出并保存文件
systemctl restart network        #每次修改配置文件后都需要重启服务

e427f81118bf4b8cb255d78fedc61a1a.png

5.测试与外网的通信

ping www.baidu.com

三、服务的安装与配置

在线安装

yum -y install 服务名

四、根目录构造

/bin 存放二进制文件

/sbin 存放系统二进制文件

/etc 存放配置文件

/usr 存放用户程序

/home 用户家目录

五、常用命令

1.文件处理命令

命令格式:

命令 [选项] [参数]

ls

ls [选项] [文件或目录]            #列出目录下文件和目录

选项:

        -a 显示所有文件,包括隐藏文件

        -l 显示详细信息

        -h 人性化显示文件大小

下图第一列代表文件类型(-普通文件;d目录;l符号链接;)

第二列是所属用户权限(r读权限;w写权限;x执行权限;-无对应权限)

第三列所属组权限

第四列其他用户权限

第五列硬链接次数

第六列所属者名称

第七列所属组名称

第八列文件大小

第九列上一次修改日期

第十列文件名

297d92f421594dc082f3d155a6149053.png

pwd

pwd        #显示当前所在目录

下图中,

root是用户名;

localhost是主机名;

home是当前所在目录名;

#指当前为特权用户($为普通用户)。

70891c802db8459a97fa26fd33c6bac2.png

cd

cd [目录名]            #目录跳转

快捷操作:
    cd ~    #切换到用户目录
    cd     #切换到用户目录
    cd -    #切换到上一访问目录
    cd ..    #切换到上一级目录
    cd .    #切换到当前目录

touch

touch [文件名]        #创建一个文件

mkdir

mkdir [选项] [目录名]            #创建目录

选项:
    -p    递归创建(允许创建多级文件夹)


快捷操作:
    mkdir 文件夹名
    mkdir -p aa/bb/cc

rmdir

rmdir 目录名        #删除目录(不允许删除非空目录)

rm

rm [选项] [文件名或目录名]        #删除文件或目录

选项:
    -r    递归删除目录,有提示
    -f    强制删除文件
    -rf    强制删除文件或目录,无提示

快捷操作:
    rm -rf /*    #删库跑路,去世命令

cp

cp [选项] [源文件名或目录名] [目标文件名或目录名]    #复制文件

选项:
    -r    复制目录

mv

mv [源文件或目录] [目标目录]        #剪切文件命令

快捷操作:
mv 源文件 目标文件夹    #剪切
mv 源文件 不存在的文件名    #重命名文件
mv 源文件 目标文件夹/不存在的文件名    #剪切并重命名源文件到目标目录

history

history         #查询历史命令
选项参数:
    -c    删除历史记录
    -r    恢复历史记录
================================================================
其他命令:
echo $HISTFILE            #输出命令历史记录存储的文件路径
echo $HISTSIZE            #输出命令历史记录的条数
!历史记录ID                #执行该ID的命令
!!                        #执行上一命令

2.命令搜索命令

whereis 命令名        #查询此命令所在路径
which    命令名        
$PATH            #查看环境变量路径

3.文件搜索命令 find

find 文件名[通配符]


通配符:
    *    匹配任意内容
    ?    匹配一个字符
    []    匹配范围内的一个内容

例子:
    find abc*    #查询所有名字前三个字符为abc的所有文件
    find a?    #查询所有名字首字符为a,长度为2的所有文件
    find a[b,c]    #插叙所有名字首字符为a,第二个字符为b或c的所有文件
========================================================================
find [搜索范围] [搜索条件]

搜索条件例子:
按照名字:
    find / -name abc    #按照名字,查询根目录下所有名字为abc的文件或目录(-iname 不区分大小写)
    find / -user root    #按照用户,查询根目录下所有root用户拥有的的文件
    find / -nouser     #查询没有所有者的文件
按照时间:
    find / -atime +10    #查找10天前访问的文件
    find / -ctime -10    #查找10天内修改文件属性的文件
    find / -mtime 10    #查找10天当天修改文件内容的文件
按照大小:
    find / -size +25k    #查找大于25kb的文件(-25小于25kb;25等于25kb;+25大于25kb;M是mb)
========================================================================
复合条件:
    find [搜索范围] [搜索条件1] [逻辑符号] [搜索条件2] ...

逻辑符号:
    -a    #and 逻辑与
    -o    #or  逻辑或

例子:
    find / -name abc -a -ctime +10    # 查询名叫abc且创建时间是10天前的文件
    find / -exec ls -lh {} \;        #固定格式,在末尾加上(-exec ls -lh {} \;),显示详细信息

find / -exec 命令名  {} \;  对搜索到的数据进行操作

4.字符串搜索命令

grep [选项] 字符串 文件名    #查询文件中条件符合的字符串

选项:
    -i 忽略大小写
    -v 排除指定字符串

例子:
    ps -ef | grep java    #查询运行进程中名叫java的进程

#ps -ef 列举所有正在运行的进程
#| 管道命令,将左侧输出的结果输入右侧命令

5.帮助命令

man 命令名  
命令名 --help



f,b键翻页,q退出

6.压缩命令

zip

需要安装zip服务

zip 压缩文件名 源文件        #压缩文件
zip -r 压缩文件名 源文件夹   #递归压缩,不加参数-r则仅仅压缩文件夹本身,不包含其中的文件

例子:
    zip abc.zip abc

unzip 压缩文件名        #解压缩

gzip

gzip 文件名        #压缩文件,并删除源文件
gzip -r 目录名        #压缩该目录中所有文件

例子:
    gzip abc    

gunzip 压缩文件名        #解压压缩文件
gunzip -r 目录名            #解压该目录中所有压缩文件

tar

tar -cvf 打包文件名 源文件    #打包文件
选项:
    -c    打包
    -v    显示过程
    -f    指定打包后的名称
例子:
    tar -cvf abc.tar abc


tar -cvf 打包文件名    #解包
选项:
    -x    解包
========================================================================================
tar -zcvf 压缩包名.tar.gz 源文件名       #压缩打包

#加上-C 指定目录
tar -zcvf 压缩包名.tar.gz -C 指定目录

tar -zxvf .tar.gz文件 -C 指定目录        #解压解包

7.关机与重启命令

shutdown [选项] 时间        #关机重启命令

选项:
    -h     关机
    -c     取消前一个关机命令
    -r     重启
时间:
    now     立刻
========================================================================
init [参数]

参数:
    0    关机
    6    重启
    3    切换字符界面(CTRL+ALT+F2)
    5    切换可视化界面(CTRL+ALT+F1)

8.系统信息查询

查看用户登录信息

w 用户名            #查看用户登录信息

命令输出:
    USER        登录的用户名
    TTY        登录终端
    FROM        登录IP
    LOGIN@      登录时间
    IDLE        用户闲置时间
    JCPU        该终端连接的所有进程所占时间,
    PCPU        当前进程所占用时间
    WHAT        当前正在运行的命令

查看当前和过去登录用户信息

last            #查看历史登录用户信息

命令输出:
    用户名
    登录终端
    登录IP
    最后一次登录的时间

lastlog        #查看上一个登录的用户信息(默认读取/var/log/lastlog文件内容)

命令输出:
    用户名
    登录终端
    登录ip
    最后一次登录时间

磁盘使用情况

df -h            #查看磁盘使用情况

命令输出:
    文件系统
    容量
    可用空间
    已用空间
    可用百分率
    挂载点(主要看这个)

查看任务进程

top         #查看命令进程(CTRL+Z 退出进程界面)

命令输出解释:Linux系统中top命令详解_linux top-CSDN博客

查看内存占用

free        #查看内存占用情况

查看历史操作

history        #查看登录以来所有历史操作

打印命令

echo 字符串或变量            #打印信息到屏幕

文件查看命令

cat 文件名        #查看文件内容
========================================================
tail [选项] 文件名        #默认显示文件末尾10行

选项:
    -f         显示文件新追加内容
    -行数        显示文件末尾n行信息

9.vim编辑器

下图转载自哔哩哔哩浪飞yes老师。

2074843484e3461d8ea8bed75fc4cfd3.jpeg

vi 文件名        #编辑文件内容

10.系统服务管理

systemctl start <服务名>    #启动服务
systemctl stop  <服务名>    #关闭服务
systemctl restart <服务名>    #重启服务
systemctl status <服务名>    #查看服务状态
systemctl enable <服务名>    #添加开机启动项
systemctl disable <服务名>    #静止开机启动项
systemctl list-unit-files    #查看服务

11.进程查看与杀死进程

ps -ef    #查看所有进程详细信息
ps -ef | grep 关键字    #查询特定进程信息
==============================================================
kill -9 进程PID        #杀死进程

12用户管理操作

useradd 用户名            #添加新用户
useradd -G 组名 用户名        #添加新用户并分配到已有组

#查看系统用户 /etc/passwd
    1.用户名
    2.用户密码,用x代替
    3.用户uid
    4.用户gid
    5.用户账户说明解释
    6.用户家目录
    7.用户使用的shell
=============================================================================
groupadd 组名        #新增组

#查看组 /etc/group    
=============================================================================
usermod -G [组名] [用户名]    #将用户分配到另一个组
=============================================================================
userdel [选项] 用户名        #删除用户

选项:
    -r    删除用户所有相关文件
    -f    强制删除
=============================================================================
groupdel 组名        #删除已有组
=============================================================================
passwd 用户名            #修改用户密码
su 用户名                #切换用户

13.文件权限修改

chmod [选项] 模式 文件名            #修改文件权限

选项:
    -R 递归
模式:
    [guoa] [+-=] [rwx]                #字符模式
    [mode=421]                        #数字模式

字符模式:
    chmod u+w /share            #給所有者/share文件的写权限
    chmod a+rwx 文件            #給所有者,所属组,其他用户该文件的读、写和执行权限

数字模式:
    权限的数字表现
        r 4 r-- 100        #4代表只读
        w 2 -w- 010        #2代表只写
        x 1 --x 001        #1代表只执行
        
        0 ---
        1 --x
        2 -w-
        3 -wx
        4 r--
        5 r-x
        6 rw-
        7 rwx
例子:
    chmod 755 /share        

    所有者权限 所属组权限 其他用户权限
        7        5            5
       111      101          101
       rwx      r-x          r-x

该文件,所有者拥有读写执行权限,所属组拥有读和执行权限,其他用户拥有读和执行权限

14.sudo授权命令

#修改配置文件修改用户权限
vim /etc/sudoers

root ALL=(ALL)ALL
#用户名 被管理主机的地址=(可使用的身份)授权命令的绝对地址
%wheel ALL=(ALL)ALL
#%组名 被管理注解的地址=(可使用的身份)授权命令的绝对地址

例子:
    給abc用户关机命令的权限
    abc ALL=(ALL) /user/sbin/shutdown        #修改配置文件的参数
    sudo shutdown -h now                    #使用sudo 命令关机

15.重定向

重定向符说明
<输入重定向
>或>>输出重定向(>覆盖源文件,>>追加源文件后),将标准输出到终端界面上的内容重定向输出到文件中
2>或2>>错误内容输出重定向(同上)
&>同时实现输出重定向和错误输出重定向
命令操作 重定向符号 文件名            

例子:
#将当前目录中包含的文件信息重定向输出到out.txt文件中
ls -la >out.txt

#将错误信息重定向输出到error.txt文件中
la >error.txt

六、防火墙

防火墙开启时,主机与外界隔绝,可以开放端口来与外界通信。

centos7的防火墙服务为firewalld

防火墙配置命令:firewall-cmd
防火墙帮助:firewall-cmd --help

查看防火墙状态:
firewall-cmd --zone=public --list-ports

开启端口:
firewall-cmd --zone=public --add-port=端口号/tcp --permanet   #--permanet参数为永久生效,去掉则重启后失效

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

删除端口:
firewall-cmd --zone=public --remove-port=端口号/tcp --permanet

关闭防火墙
systemctl stop firewalld
systemctl disable firewalld

 七、shell脚本

Shell脚本以行为单位,一行一行执行,脚本中主要包含:注释、命令、Shell变量和流程控制语句。

1.执行一个shell脚本

在执行一个脚本文件时,就会生成一个子进程去执行文件,因此子进程中的参数无法在父进程中使用。

bash 脚本文件            #在子进程执行脚本文件,该文件必须有执行权限(chmod u+x 文件名)
bash ./脚本文件            #在父进程执行脚本文件
./脚本文件                #当脚本文件中已经有shebang指定了解释器后使用

2.shebang

shebang指shell脚本第一行以#!的语句,用于指定该脚本的默认解释器,

#如下,默认使用bash解释器执行该脚本
#!/usr/bin/bash            
#使用方法:
#!解释器的绝对路径

3.变量

shell脚本语言是弱类型语言,使用前无需定义,数据类型为字符类型。

命名规则:

  • 仅允许数字,下划线,字母,且不可数字开头。
  • 见名知意。
  • 区分大小写。
#变量的定义(单引号不识别特殊语法和符号,双引号识别)
变量名="变量值"
变量名='变量值'

#变量的使用(简写和完全体)
$变量名
${变量名}

本地变量

本地变量包括父子shell,父子shell的变量不共享。本地变量针对本地shell,只能在当前shell中使用。

环境变量

环境变量也叫全局变量,在父子进程都能使用。

局部变量

局部变量针对shell脚本,只能在脚本中使用。

特殊变量-状态变量

$?        #判断上一次命令是否成功,成功返回0,不成功返回1-255

4.反引号

`变量或linux命令`            #保留运行的结果

c6d05f8593164ecd9cad4f66b87762ed.png
 

待整理

环境变量的设置

PATH=$PATH:绝对路径

 

修改文件所有者所有组的命令chown

更新日期

2024.3.11 密码修改和外网连接

2024.3.29 文件处理命令

2024.3.30 搜索命令

2024.4.1 其他命令-进程查看与杀死进程

 

 

 

 

 

 

 

 

 

 

 

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值