Linux学习笔记

该博客围绕Linux系统展开,涵盖VIM编辑器操作、网络配置、系统管理、常用基本命令等内容。介绍了VIM不同模式的操作,如复制、粘贴、删除等;讲解了网络连接模式、服务管理、运行级别设置等系统管理知识;还涉及Shell编程,包括变量、运算符、流程控制等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.VIM编辑器

  1.vim一般模式常见操作

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

vim的一般模式主要能做的操作就是:删除、复制和粘贴

常用语法:

yy  复制光标当前一行

y数字y  或者  数字yy  复制一段,从光标当前行到后n行

p   箭头移动到目的行粘贴 应该说是当前光标在哪里,按p之后就粘贴到哪里吧

u   撤销上一步

dd  删除光标当前行

d数字d  或者 数字dd    删除光标(含)后多少行

x 剪切一个字符(当前光标),相当于del

X 剪切一个字符(当前光标的前一个),相当于Backspace

yw 复制一个词

dw  删除一个词

shift+6(^)   移动到行头

shift+4($)   移动到行尾

w  移动到下一个词(词头位置)

e  移动到当前词尾

b 移动到上一个词的词头

1+G    移动到第一行的行头

数字+G    跳转到某一行的行头

gg  或者 shift+H 移动到整篇文档的开头  

G 或者  L    移动到最后一行的行尾

进入命令模式     :set nu   使用此命令后会显示出文档的行号

:set nonu  不再显示行号

2.编辑模式常见操作

1)进入编辑模式常用语法

i   当前光标前    在普通模式按 i  进入插入模式,会插入到当前光标之前

a   当前光标后 

o   当前光标的下一行,而且是新增一个空行相当于在当前光标行的末尾按了回车

I   光标所在行最前

A  光标所在行最后

O  当前光标行的上一行

delete键会删除光标后面的字符

2)退出编辑模式

按[esc] 键

3.指令模式

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

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

        也可以认为命令模式是在一般模式下执行的特殊操作。

        注意:在编辑模式是没办法执行命令的,会认为输入的命令是要添加的字符,需要按esc回退到普通模式,再从普通模式 输入命令。

基本语法:

:w   保存

:q    退出

:wq    保存并退出

:q!    不保存强制退出 (加上感叹号的意思是强制执行)

/要查找的词     n查找下一个,N往上查找

:noh   取消高亮限制

:set nu   显示行号

:set nonu   关闭行号 

:s/old/new   替换当前行匹配到的第一个old为new

:s/old/new/g    替换当前行匹配到的所有old为new  

:%s/old/new   替换文档中每一行匹配到的第一个old为new

:%s/old/new/g   替换文档中每一行匹配到的所有old为new

二.网络配置

1.查看网络配置  ifconfig

VMware提供了三种网络连接模式:

1)桥接模式

        虚拟机直接连接外部物理网络的模式,主机起到了网桥的作用。这种模式下,虚拟机可以直接访问外部网络,并且对外部网络是可见的。

2)NAT模式

        虚拟机和主机构建一个专用网络,并通过虚拟网络地址转换(NAT)设备对IP进行转换。虚拟机通过共享主机IP可以访问外部网络,但外部网络无法访问虚拟机。

3)仅主机模式

        虚拟机只与主机共享一个专用网络,与外部网络无法通信。

三.系统管理

1.linux中的进程和服务

        计算机中,一个正在执行的程序或命令,呗叫做“进程”(process)

        启动之后一直存在、常驻内存的进程,一般被叫做“服务”(service)。

2.service服务管理(centos6版本 简单了解)

1)基本语法

        service 服务名 start|stop|restart|status

2)经验技巧

        查看服务的方法:/etc/init.d/服务名   ,发现只有两个服务保留在service,是守护进程

3.systemctl (Centos7 版本  重点掌握)

1)基本语法

        systemctl  start|stop|restart|status  服务名

2)经验技巧

        查看服务的方法:/usr/lib/systemd/system 

4.服务运行级别

①查看默认级别:vi/etc/inittab

Linux系统有7种运行级别(runlevel):常用的是级别3和5

1)运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动

2)运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登录

3)运行级别2:多用户状态(没有NFS),不支持网络

4)运行级别3:完全的多用户状态(有NFS),登录后进去控制台命令行模式

5)运行级别4:系统未使用,保留

6)运行级别5:X11控制台,登录后进入图形GUI模式

7)运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动

②CentOS7的运行级别简化为:

multi-user.target 等价于原运行级别3(多用户有网,无图形界面)

graphical.target 等价于原运行级别5  (多用户有网,无图形界面)

③查看当前运行级别

systemctl get-default

④修改当前运行级别

systemctl set-default TARGET.target (这里TARGET取multi-user 或者graphical)

查看当前linux系统版本 cat /etc/os-release

5.关机重启命令

在linux领域内大多用在服务器上,很少会遇到关机的操作。毕竟服务器上跑一个服务是永无止境的,除非特殊情况下,不得已才会关机。

1)基本语法

        (1)sync   功能描述:将数据由内存同步到硬盘中

        (2)halt  功能描述:停机,关闭系统,但不断电

        (3)poweroff 功能描述:关机,断电

        (4)reboot  功能描述:就是重启,等同于 shutdown -r now 

        (5)shutdown[选项]时间  不写时间的话默认1分钟后关机 

                选项         功能

                -H          相当于--halt,关机

                -r           -r=reboot 重启

                参数        功能

                now       立刻关机

                时间       等待多久后关机(时间单位是分钟)

        (6)shutdown -c  取消关机

2)经验技巧

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

3)案例实操

        (1)将数据由内存同步到硬盘中  sync

        (2) 重启  reboot

        (3)停机(不断电)

        (4)计算机将在1分钟后关机,并且会显示在登录用户的当前屏幕中 shutdown -h 1

        (5)立马关机(等同于 poweroff)shutdown -h now

        (6)系统立马重启(等同于reboot) shutdown -r now

四.常用基本命令(重要)

Shell(Linux中默认的shell就是 Bourne-Again Shell  ,bash就是这么来的。 Debian系列的工具叫dash 每个版本不一样)可以看作是一个命令解释器,为我们提供了交互式的文本控制台界面。我们可以通过终端控制台来输入命令,由shell进行解释并最终交给内核执行。本章就将分类介绍常用的基本shell命令。

1.帮助命令

(1)man 获得帮助信息 (manual  手册的意思)

1)基本语法

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

获取文档后翻页操作 pageup,pagedown都可以用  上下箭头是按行来 ,空格直接翻到下一页。f 向下翻页,b向上翻页。

2)显示说明

        信息                                功能

        NAME                         命令的名称和单行描述

        SYNOPSIS                 怎样使用命令

        DESCRIPTION           命令功能的深入讨论

        EXAMPLES                用例

(2)help 获得shell内置命令的帮助信息

        一部分基础功能的系统命令是直接内嵌在shell中的,系统加载启动之后会随着shell一起加载,常驻系统内存中,这部分命令被称为“内置(built-in)命令”;相应的其他命令被称为“外部命令”。 可以用 type 区分一个命令是内部命令还是外部命令,例如 type cd  会提示cd是shell内置命令 . 可以用--help 查看外部命令的帮助信息

1)基本语法

        help 命令  (功能描述:获得shell内置命令的帮助信息)

2)案例实操

        查看cd命令的帮助信息

        help cd 

(3) 常用快捷键

        常用快捷键                        功能

        ctrl+c                                停止进程

        ctrl+l  (小写的L)           清屏,等同于clear;彻底清屏是reset

        善用于tab键                        提示(更重要的是可以防止敲错)

        上下键                                查找执行过的命令

2.文件目录类

(1)pwd显示当前工作目录的绝对路径

        pwd:print working directory 打印工作目录

        1)基本语法

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

        2)案例实操

                (1)显示当前工作目录的绝对路径

(2)ls 列出目录的内容

ls:List

1)选项说明

                选项                        功能

        -a                                全部的文件,连同隐藏档(开头为.的文件),一起列出来(常用)

        -l                                长数据串列出,包含文件的属性与权限等等数据;(常用)等价于“ll”

2)显示说明

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

(3)cd  切换目录

change directory

        参数                        功能

        cd 绝对路径       切换路径

        cd 相对路径        切换路径

        cd ~ 或者 cd       回到自己家的目录/按当前登录的用户分

        cd ..                    回到当前目录的上一级目录

        cd -                     返回刚才所在的目录

        cd -P                跳转到实际物理路径,而非快捷方式路径

(4)mkdir创建一个新的目录

mkdir:Make directory 建立目录

(5)touch 创建空文件

1)基本语法

touch 文件名称

2)实操案例

使用vim命令也可以创建文件,但是如果直接:q的话不能创建空文件,使用:wq退出就可以保存空文件成功。touch创建的是空文件

(6)cp复制文件或目录

1)基本语法

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

2)选项说明

-r     递归复制整个文件夹(recursion   英/rɪˈkɜːʃn/   美/rɪˈkɜːrʒn/)

3)参数说明

source    源文件

dest    目标文件,可以是路径,给路径下新增这个文件;也可以是一个具体的文件,覆盖目标文件

4)经验技巧

        强制覆盖不提示的方法:  \cp

5)案例实操

(7)rm 删除文件或目录

1)基本语法

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

rm -rf deleteFile       就是递归删除目录中所有内容,并且强制指定不弹出提示进行确认

2)选项说明

                选项                        功能

                -r                   递归删除目录中所有内容

                -f                  强制执行删除操作,而不提示用于进行确认

                -v                 显示指令的详细执行过程

mv   移动文件

(8)cat 查看文件内容

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

1)基本语法

cat [选项] 要查看的文件             (是catch这个单词  和猫没关系)           

2)选项说明

-n     显示所有行的行号,包括空行

3)经验技巧

一般查看比较小的文件,一屏幕能显示全

4)案例实操

查看文件内容并显示行号  cat -n houge.txt

        (9)文件内容分屏查看器

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

1)基本语法

more  要查看的文件

2)操作说明

                操作                                        功能说明

空白键(space)                                代表向下翻一页

Enter                                                   代表向下翻一行

q                                                        代表立刻离开more,不再显示该文件内容

Ctrl+F                                               向下滚动一屏

Ctrl+B                                                返回上一屏

=                                                         输出当前行的行号

:f                                                        输出文件名和当前行的行号

      (10)less 分屏显示文件内容

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

1)基本语法

        less  要查看的文件

2)操作说明

操作                        功能说明

空白键                向下翻动一页

pagedown                向下翻动一页

pageup                向上翻动一页

/字串                向下搜寻[字串]的功能;n:  向下查找;N:  向上查找;

?字串                向上搜寻[字串]的功能;n:  向上查找;N:  向下查找;

        (11)echo

echo输出内容到控制台

1)echo [选项] [输出内容]

选项:

-e:             支持反斜线控制的字符转换

控制字符                        作用

\\                                 输出\本身

\n                                换行符

\t                                制表符 也就是tab键

        (12)> 输出重定向和 >> 追加

1)基本语法       

        (1)ls -l > 文件        (功能描述:列表的内容写入文件a.txt中 (覆盖写))

        (2)ls -al >> 文件                (功能描述:列表的内容追加到文件aa.txt的末尾)

        (3)cat 文件1 > 文件2                (功能描述:将1的文件内容覆盖到文件2)

        (4)echo    “内容” >> 文件                

  2)

        (13)head 显示文件头部内容

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

1)基本语法

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

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

2)选项说明

-n <行数>                        指定显示头部内容的行数

        (14)tail输出文件尾部内容

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

1)基本语法

        (1)  tail 文件        (功能描述:查看尾部10行内容)

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

        (3)  tail -f 文件        (功能描述:实时追踪该文档的所有更新 follow  追踪日志用这个)

ctrl + s 是暂停   ctrl+q是继续

        (15)ln 软链接

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

1)基本语法

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

2)经验技巧

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

        如果使用 rm -rf 软链接名/ 删除,会把软链接对应的真实目录下内容删掉

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

        可以通过pwd查看路径。如果使用 pwd -P  显示实际路径。

        可以通过 rm  删除软链接。

        (16)history查看已经执行过的历史命令

        1)基本语法  

        history    (功能描述:查看已经执行过的历史命令)

        history 10 显示过去输入过的10条命令

        history !1156    重复调用历史命令,1156是显示的历史命令的编号

        history -c        清空历史命令

3.时间日期类

1)基本语法

        date [OPTION]...[+FORMAT]

2)选项说明

        -d<时间字符串>                显示指定的“时间字符串”表示的时间,而非当前时间

        -s<日期时间>                设置系统日期时间

3)参数说明

        <+日期格式>                指定显示时使用的日期时间格式

(1)date显示当前时间

1)基本语法

        (1)date                                                        显示当前时间

        (2)date +%Y                                                显示当前年份

        (3)date +%m                                                显示当前月份

        (4)date +%d                                                 显示当前是哪一天

                date +%s                                                小写s 显示当前 时间戳

        (5)date "+%Y-%m-%d %H:%M:%S"                显示年月日时分秒

(2)date显示非当前时间

1)基本语法

        (1)date -d '1 days ago'                显示前一天时间

        (2)date -d '-1 days ago'                显示明天时间

(3)date 设置系统时间

date -s "2024-04-11 08:09:00"

同步网络时间   ntpdate 服务器名称

(4)cal 查看日历

cal [选项]                不加选项显示本月日历

选项可以写具体某一年,显示这一年的日历

4.用户管理命令

(1)useradd  添加新用户

1)基本语法

useradd 用户名                添加新用户

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

exist 退出当前用户,返回上一个用户

2)案例实操

(2)passwd设置用户密码

(3)id 用户名  可以查看是否存在该用户

(4)cat /etc/passwd 查看创建了哪些用户

        也可以用less查看   less /etc/passwd

(5) su 切换用户

        su:switch user

1)基本语法

su 用户名称                切换用户,只能获得用户的执行权限,不能获得环境变量

su - 用户名称                       切换到用户并获得该用户的环境变量及执行权限

(6)who am i    我是谁 查看当前用户 查看罪原始进程的用户

whoami 查看当前会话具体使用的用户是谁

(7)userdel删除用户

        userdel -r 用户                      在删除用户的时候一起删除用户对应的文件夹

(8)sudo 设置普通用户具有root权限

(9)usermod 修改用户信息

 5.用户组管理命令

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

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

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

(1)groupadd 新增组

1)基本语法

        groupadd 组名 

(2)groupdel  删除组

(3)groupmod  修改组的信息

6.文件权限类

(1)文件属性

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

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

(1)0首位表示类型

在Linux中第一个字符代表这个文件是目录,文件或链接文件等等

- 代表文件

d 代表目录

l 链接文档(link file)

(2)第1-3位确定属主(该文件的所有者)拥有该文件的权限。 --User

(3)第4-6位确定属组(所有者的同组用户)拥有该文件的权限,--Group

(4)第7-9位确定其他用户拥有该文件的权限  --Other

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

(1)作用到文件:

        [r] 代表可读read:可以读取,查看

        [w]代表可写:可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除文件(删除文件内容相当于修改文件本身,删除文件相当于修改当前文件所在目录)

        [x]代表可执行execute:可以被系统执行  进入该目录

(2)作用到目录:

        [r] 代表可读read,可以读取,ls查看目录内容

        [w] 代表可写write:可以修改,目录内创建+删除+重命名目录

        [x] 代表可执行execute:可以进入该目录 

(新建目录内也有一个叫“.”的硬链接指向新建的目录。指的是新建一个目录之后,目录本身市指向自身inode的一个硬链接,所以新建目录的硬链接数目是2)

(2)chmod改变属性

1)基本语法

第一种方式变更权限

        chmod [{ugoa} {+-=} {rwx}] 文件或目录

                u:所有者  g:所有组   o:其他人    a:所有人(u、g、o的总和)

                第一个{}里的值选一个; 

                第二个{}选一个,+表示增加,-表示删除,=表示覆盖(指定权限,并清除原有设定); 

                第三个{}可以多选;

        示例见下图

第二种方式变更权限

        chmod [mode=421 ] [文件或目录]

chmod后面的三位数字分别代表u、g、o 使用示例见下图

常用的有chmod 777  和chmod 644

r=4 w=2 x=1    rwx=4+2+1=7   其实是用二进制表示三个权限,转换成十进制就是下面的数字

操作目录权限时 可以使用 chmod -R 777 目录/       使目录内所有子文件夹都有相同的权限  

1-   --x        001

2-   -w-        010

3-   -wx        011

4-   r--          100

5-   r-x          101

6-   rw-          110

7-   rwx          111

(3)chown 改变所有者

(4)chgrp 改变所属组

7.搜索查找类

(1)find查找文件或者目录

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

        1)基本语法  find [搜索范围] [选项]

       2) 选项说明

        -name<查询方式>                按照指定的文件名查找模式查找文件

        -user<用户名>                查找属于指定用户名所有文件

        -size<文件大小>                按照指定的文件大小查找文件,单位为

                                                        b---块(512字节)

                                                        c---字节

                                                        w--字

                                                        k---千字节

                                                        M---兆字节

                                                        G-----吉字节

(2)locate快速定位文件路径

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

1)locate搜索文件

2)由于locate指令是基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate数据库

(3)grep过滤查找及“|”管道符

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

1)基本语法

grep 选项 查找内容 源文件

2)选项说明

-n                显示匹配行及行号

3)案例实操

查找某文件在第几行,按行显示

ls | grep -n test

wc  命令 ---- wordcount   返回的数字分别代表 行数、单词数、字节大小

grep -n boot initial-setup-ks.cfg | wc             查找initial-setup-ks.cfg文件里的boot关键字,显示行数,得到的这些行进行统计

8.压缩和解压类

(1)gzip/gunzip 压缩

(2)zip/unzip 压缩

(3)tar 打包

9.磁盘分区类

(1)du查看文件和目录占用的磁盘空间

(2)df查看磁盘空间使用情况

(3)lsblk查看设备挂载情况

(4)mount/umount 挂载/卸载

(5)fdisk分区

10.进程线程类

(1)ps查看当前系统进程状态

(2)kill 终止进程

(3)pstree 查看进程树

(4)top 查看系统健康状态

(5)netstat显示网络统计信息和端口占用

3)参数说明

crontab -e 

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

*****执行的任务(5个*号 分时日月星期)

项目                                含义                                        范围

第一个*                一小时当中的第几分钟                0-59

第二个*                一天当中的第几小时                        0-23

第三个*                 一个月当中的第几天                        1-31

第四个*                一年当中的第几个月                        1-12

第五个*                一周当中的星期几                        0-7(0和7都代表星期日)

(2)特殊符号

特殊符号                        含义

*                        代表任何时间。比如第一个*就代表一小时中每分钟都执行一次的意思

,                        代表不连续的时间。比如"0 8,12,16 * * *",就代表在每天的8点0分,12点0分,16                                                                                             点0分,都执行一次命令

-                        代表连续的时间范围。比如"0 5 * * 1-6命令",代表在周一到周六的凌晨5点0分执行命令

*/n                        代表每隔多久执行一次,比如"*/10 * * *命令",代表每隔10分钟就执行一遍命令

(3)特定时间执行命令

11.软件包的管理

(1)RPM 

RPM,Rethat软件包管理工具,类似windows里面的setup.exe 是Linux这系列操作系统里面的打包安装工具,她虽然是RetHat的标志,但理念是通用的。

(1)RPM查询命令 rpm -qa

查看所安装的所有rpm软件包

由于软胶包比较多,一般都会采取过滤。rpm -qa | grep rpm软件包

(2)卸载命令 rpm -e

基本语法

rpm -e 软件包名字                卸载软件包

rpm -e --nodeps 软件包名字                卸载软件时,不检查依赖。这样的话,那些使用该软件包的软件在此之后可能就不能正常工作了。

(3)RPM安装命令

1)基本语法

rpm -ivh 软件包全名

2)选项说明

        选项                        功能

 -i                                install 安装

-v                                --verbose,显示详细信息

-h                                --hash,进度条

--nodeps                   安装前不检查依赖

(2)YUM仓库配置

YUM概述

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

YUM的常用命令

1)基本语法

yum 选项  参数

2)选项说明

-y                对所有提问都回答"yes"

3)参数说明

                参数                        功能

        install                                安装rpm软件包

        update                                更新rpm软件包

        check-update                      检查是否有可用的更新rpm软件包

        remove                                删除指定的rpm 软件包

        list                                        显示软件包信息

        clean                                清理yum过期的缓存

        deplist                                显示yum软件包的所有依赖关系

        

五.shell编程

1.Shell概述

Shell是一个命令行解释器,它接受应用程序/用户命令,然后调用操作系统内核。

(linux系统内核可以直接操作硬件,但是对于用户不够友好,用户使用的是外层的应用程序,包括文本编辑器、数据库、浏览器、图形化桌面等。但是用户的操作没有办法被内核直接理解,外层应用程序和linux内核之间语言不同,需要一个翻译官来联系两者之间搭起交流的桥梁。所以出现了中间的解释层,就是所谓的Shell,是底层Linux内核和外部应用的接口,有了shell就可以把外部操作的命令解释成内核可以执行的指令。)

Shell还是一个功能相当强大的编程语言,易编写、易调试、灵活性强。

2.Shell脚本入门

1)脚本格式

        脚本以#!/bin/bash 开头(指定解析器)

2)第一个Shell脚本:hellowWorld.sh

还可以用“source”命令和“.”命令执行脚本。

        前两种方式是都是在当前shell中打开一个子shell来执行脚本内容,当脚本内容结束,则子shell关闭,回到父shell中。

        第三种,也就是使用在脚本路径前加“source”和“.”的方式,额可以使脚本内容在当前shell里执行,而无需打开子shell!这也是为什么我们每次修改完/etc/profile文件以后,需要source一下的原因。

        开子shell与不开子shell的区别就在于,环境变量的继承关系,如在子shell中设置的当前变量,父shell是不可见的

3.变量

1.系统预定义变量

2.自定义变量

3.特殊变量

(1)$n

1)基本语法

$n(功能描述:n为数字,$0代表该脚本名称,$1-$9代表第一到第九个参数,十以上的参数需要用大括号包含,比如${10})

单引号里面的$符号不会被认为是变量,双引号会,需要注意

(2)$#

  

示例中输出了脚本名称和两个参数,又输出了参数个数

(3)$*、$@

1)基本语法

$* (功能描述:这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体

$@(功能描述:这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待

可以类比成*的输出值是把所有参数都拼接成一个字符串,但是@是把参数都放进一个数组里,还可以进行下一步操作

(4)$?

1)基本语法

        $?(功能描述:最后一次执行的命令的返回状态。如果这个变量的值为0,证明上一个命令正确执行;如果这个变量的值为非0(具体是哪个数,由命令自己来决定),则证明上一个命令执行不正确了。)

4.运算符

expr  加号两边需要空格,数值和加号减号等中间都需要空格,都当做入参传进去。乘号需要转译,使用\*

还可以使用$(()) 或 $[]

1)基本语法

        “$((运算式)) ”或 “$[运算式]”

2)案例实操

计算(2+3)*4

        s=$[(2+3)*4]

        echo $s

5.条件判断

1)基本语法

(1)test condition

(2)[ condition ]  (注意condition前后要有空格,如果是判断两个字符串是否相等的话,等号两边也需要有空格

注意:条件非空即为true,[ atguigu ]返回true,  [  ]返回false

2)常用判断条件

(1)两个整数之间比较

-eq 等于(equal)                -ne 不等于(not equal)

-lt 小于(less than)              -le 小于等于(less equal)

-gt 大于 (greater than)        -ge 大于等于(greater equal)

注:如果是字符串之间的比较,用等号“=”判断相等;用“!=”判断不等。

(2)按照文件权限进行判断

-r        有读的权限 read

-w        有写的权限 write

-x        有执行的权限 execute

(3)按照文件类型进行判断

-e 文件存在(exeistence)

-f  文件存在并且是一个常规的文件(file)

-d 文件存在并且是一个目录(directory)

6.流程控制

1.if判断

2.case语句

3.for循环

4.while循环

7.read读取控制台输入 

8.函数

1.系统函数

2.自定义函数

9 正则表达式入门

10 文本处理工具

1.cut

2.awk

                        

完结撒花,以后用到的时候再回来复习~

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值