admin管理员组

文章数量:1567915

1.认识Linux

1.1操作系统

操作系统(Operation System, OS),是管理计算机硬件与软件资源的计算机程序,同时也是计算机系统的内核与基石。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入设备与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。

当前主流操作系统的不同划分:

1.桌面操作系统:

        Windows(用户数量众多)

        MacOS(细节处理的较好,但是软件没有Windows丰富,而且价格高)

        Linux(应用软件更少)

2.服务器操作系统:

        Linux(安全,稳定,免费)

        Windows Server(需要付费,使用较少)

3.嵌入式操作系统:

        Linux

4.移动设备操作系统

        IOS(苹果)

        Android(基于Linux)

        华为鸿蒙(基于Linux)

1.2Linux简介

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

Linux是一种自由和开放源码的操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、台式计算机

Linux不仅系统性能稳定,而且是开源软件。其核心防火墙组件性能高效、配置简单,保证了系统的安全。在很多企业网络中,为了追求速度和安全,Linux操作系统不仅仅是被网络运维人员当作服务器使用,Linux既可以当作服务器,又可以当作网络防火墙是Linux的 一大亮点。

1.3Linux的特点

1.两个基本思想:全部都是文件,每个软件都有一定的用途

2.完全免费

3.完全兼容POSIX1.0标准

4.多用户,多任务

5.良好的界面

6.支持多平台操作

7.源代码完全开源,具有非常强大的网络功能,工具链完整

1.4Linux版本CentOS

CentOS,是基于 Red Hat Linux 提供的可自由使用源代码的企业级 Linux 发行版本;是一个稳定,可预测,可管理和可复制的免费企业级计算平台

特点:使用较多,免费,更新方便

2.Linux下载与安装

2.1Vmware虚拟机

先安装Vmware虚拟机在虚拟机上运行CentOS

1.不需要分区或者重新开机就可以在一个电脑端运行两种以上的操作系统

2.完全隔离并且保护不同的操作系统的环境、软件、资料

3.不同操作系统之间可以互动操作

4.复原功能

5.可以设置和随时修改操作系统的环境

2.2虚拟机下载和安装

官网: https://www.vmware/cn.html

在官网选择Workstation Pro下载安装包

安装后,可以 网络连接中多出两个VMnet1和VMnet8,这样就安装成功了

2.3下载CentOS

官网:https://www.centos/download/

下载好后,打开虚拟机,创建新的虚拟机,稍后安装操作系统,版本选择CentOS 7 64位,划分20G,将虚拟磁盘拆分成多个文件,自定义硬件,新CD,使用ISO映像文件,此时选择刚刚下载好的映像文件,完成!!!!

3.Linux操作

3.1启动Linux虚拟机

 点击开启此虚拟机

选择中文

 直接点击完成,等到些许时间,就没有感叹号了

 选择软件选择,选择GNOME桌面,完成,等待感叹号消失,就可以开始安装了

设置Root密码

等待完成后,点击重启

选择未接受许可证,完成之后点击右下角完成配置

选择中文界面 

选择英文(美国)键盘

 关闭隐私服务

 选择上海时区

跳过即可

 设置用户名

设置密码 

 

 配置已经设置完成了

3.2网络配置

 首次打开,没有网络连接,需要配置网络

 

选择虚拟网络配置器

选择到VMnet8,需要更改子网IP,但是没有权限,在更改设置里面修改

 

此时,可以修改子网IP和子网掩码了,然后选择NAT设置

修改网关,点去两次确定即可,此时只是修改了VMware的虚拟机网络配置,还没有修改Linux上的网络配置

选择终端

输入“su root”,然后会让输入密码,直接输就可以,但是密码不会显示出来,输完之后点击回车,就会切换到root用户

 输入修改网卡配置文件“vi /etc/sysconfig/network-scripts/ifcfg-ens33”,点击回车

现在就跳转到了网卡配置文件

在此界面,点击电盘“i”的位置,然后就可以修改了

 将内容修改为上述内容,BOOTPROTO,IPADDR,NETMASK,GATEWAY,ONBOOT进行了修改,然后点击ESC键,退出编辑模式

退出编辑模式后,输入“:wq!”,回车

 

 此时表示,保存成功了已经

输入“systemctl restart network”,重启网络

输入“ifconfig“ ,查看当前网络

也可以通过windows的cmd操作,ping该网,查看是否可以连接成功 

 

如果要访问外网,还需要增加一个net网卡,选择设置

 

可以看到目前只有一个网络适配器,需要再添加一个,点击下面添加

选择网络适配器,然后完成,选择NET模式,就配置成功了

重启之后,再次打开浏览器,就可以上网了

4.SecureCRT操作CentCS

SecureCRT可以支持SSH的终端仿真程序,可以通过CRT登录Linux,并且进行操作

4.1SecureCRT安装与注册

根据系统选择安装包,一直默认选择直接安装,安装好后关闭SecureCRT

然后将注册机复制到CRT软件的安装目录之下

默认目录:C:\Program Files\VanDyke Software\Clients\

打开CRT注册机,剪辑左下角Patch

选择CRT的执行文件

第二次选择文件

打开CRT软件,选择下一步

 

再点击左下角的Enter License Manually。

此时会让你输入name,Company,这些内容都到注册机中找就可以了。注册机中是什么,在这里就输入什么,输入完毕点击下一步,最后一项输入在注册机没有,就不用输入了

这就注册完毕了

4.2SecureCRT配置

 File->Quick Connect,Hostname输入LinuxIP

 打开Linux->应用程序->终端,输入”ifconfig“

第三行后面的inet后面的就是虚拟机IP地址

然后将Username写上,为虚拟机的用户名,然后点击右下角的Connect

此时会弹出一个界面,需要输入Linux系统的密码

在SecureCRT是激昂Options->Appearance

Fonts中选择字体

Current color scheme中选择背景颜色

Character encoding:选择汉字的字符集UTF-8

 5.CentOS操作

5.1CentOS文件目录

bin->user/bin:系统预设执行文件的放置目录

etc:系统中的配置文件

sbin->user/bin:系统预设执行文件的放置目录

user:系统预设执行文件的防止目录

var:/var/log程序运行日志的存放目录

 5.2CentOS时间

如果时间与Windows时间不同步,则执行以下操作

打开Linux选择设置

设置时间同步就可以了

 5.3Linux克隆和快照

1.克隆:占用空间大;原系统不存在,克隆系统还可以使用

克隆前需要先关闭虚拟机!!

 选择克隆后,一直下一步,直至出现克隆类型,选择创建完整克隆,。

克隆位置选择默认的就可以了

 等待完成,就克隆成功了

2.快照:占用空间小;原来系统不存在,快照也就不能继续使用了 

选择拍摄快照

名称写为创建的时间,点击拍摄快照,完成如果没有报错,就拍摄成功了

 

选择快照管理

 选择创建的快照,然后点击下面转到

就将虚拟机转到了快照的位置了 

 6.Linux系统与命令

6.1帐号管理

创建用户:useradd (选项) 用户名

用户口令:passwd (选项) 用户名

修改用户:usermod 选项 用户名

删除用户:userdel (选项) 用户名

1.创建用户和设置密码

useradd常用选项:

  • -c comment 指定一段注释性描述。

  • -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。

  • -g 用户组 指定用户所属的用户组。

  • -G 用户组,用户组 指定用户所属的附加组。

  • -s Shell文件 指定用户的登录Shell。

  • -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。

 passwd可使用的选项:

  • -l 锁定口令,即禁用账号。

  • -u 口令解锁。

  • -d 使账号无口令。

  • -f 强迫用户下次登录时修改口令。

 创建用户由于权限不够,登录root账户,进行创建

 登录root账户后,创建用户”useradd aaa“,切换用户”su aaa“

重写切换到用户root,设置用户aaa密码,输入”passwd aaaa“,输入两次密码,但是密码不能时回文,要重新输入。(密码长度大于8位,并且时英文和数字结合)

切换到Linux账户,然后从Linux账户上切换aaa账户

2.修改用户

切换到root用户,输入”usermod“,查看修改选项

 输入”usermod -l gyc aaa“,修改用户名,但是提示当前aaa用户正在运行

可以直接关闭服务器,也可以选择退出”ctrl+D“可以退出当前用户

多次退出用户,导致用户完全退出,服务器关闭,需要重新开启服务器

 重新开启服务器后,切换到root用户,然后重写修改用户名,未提示错误

然后切换到yan_c702用户,在该用户下切换到gyc用户,输入之前aaa用户的密码,显示登陆成功

3.删除用户

切换到root用户,输入”userdel gyc“,显示当前用户正在运行

再输入”userdel“,查看选项

-f:强制删除用户,即使用户当前已登录;

-r:删除用户的同时,删除与用户相关的所有文件

 重写打开服务器,登录root用户,输入”userdel -r -f gyc“,未出现异常,试着切换gyc用户,切换失败,显示用户不存在

6.2用户组

创建用户组:groupadd(选项) 用户组

 修改用户组:groupmod(选项)用户组

查询用户所属组:groups 用户名

删除用户组:groupdel 用户组

1.创建用户组

使用的选项有:

  • -g GID 指定新用户组的组标识号(GID)。

  • -o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同

由于权限不够,先要切换到root用户,输入”groupadd kaifa“,就可以创建了

 2.修改用户组

将kaifa组改名为kaifazu

3.查询用户所属组

未设置分组时,用户所属的就是自己 

 4.删除用户组

5.用户添加到用户组

gpasswd (可选项)组名

gpasswd:用于将一个用户添加到组或者从组删除

 查看gpasswd的选项

 将user1、user2、user3添加到kaifazu中

 查看”kaifazu“用户组内是否添加成功

 6.3系统管理

6.3.1日期管理

当前日期如果通过date进行设置,在系统重启后不会保存date的设置,常用的只是通过date命令查看日期

语法:date [参数选项]

参数:

        -d<字符串>:显示字符串所指的日期与时间。字符串前后必须加上双引号;

        -s<字符串>:根据字符串来设置日期与时间。字符串前后必须加上双引号;

         -u:显示GMT;

         --help:在线帮助;

        --version:显示版本信息

 6.3.2显示用户

语法:logname

显示目前用户的名称

 6.3.3切换用户

语法:su (选项)用户名

 输入”su -c ls root“,表示切换到root用户,执行ls操作,然后返回到原来的用户

 6.3.4ID命令

语法:id [-g][--help][--version][用户名称]

可以用来查看当前用户id,群组id,所属组

参数说明:

  • -g或--group  显示用户所属群组的ID。

  • -G或--groups  显示用户所属附加群组的ID。

  • -n或--name  显示用户,所属群组或附加群组的名称。

  • -r或--real  显示实际ID。

  • -u或--user  显示用户ID。

  • -help  显示帮助。

  • -version  显示版本信息。

 6.3.5sudo命令

使用普通用户操作用户或者操作用户组、以及修改网卡配置文件的时候,需要切换到root用户才操作,此时我们可以使用sudo命令提高普通用户的操作权限,以达到操作目的

 语法:sudo (命令)

参数:

  • -V 显示版本编号

  • -h 会显示版本编号及指令的使用方式说明

  • -l 显示出自己(执行 sudo 的使用者)的权限

  • -v 因为 sudo 在第一次执行时或是在 N 分钟内没有执行(N 预设为五)会问密码,这个参数是重新做一次确认,如果超过 N 分钟,也会问密码

  • -k 将会强迫使用者在下一次执行 sudo 时问密码(不论有没有超过 N 分钟)

  • -b 将要执行的指令放在背景执行

  • -p prompt 可以更改问密码的提示语,其中 %u 会代换为使用者的帐号名称, %h 会显示主机名称

  • -u username/#uid 不加此参数,代表要以 root 的身份执行指令,而加了此参数,可以以 username 的身份执行指令(#uid 为该 username 的使用者号码)

  • -s 执行环境变数中的 SHELL 所指定的 shell ,或是 /etc/passwd 里所指定的 shell

  • -H 将环境变数中的 HOME 指定为要变更身份的使用者HOME目录(如不加 -u 参数就是系统管理者 root )

  • command 要以系统管理者身份(或以 -u 更改为其他人)执行的指令

提高用户权限查看文件

 

我们使用普通用户修改网卡的配置文件,在进行保存的时候,提示我们【无法打开并写入文件】,那么此时,我们可以通过sudo命令来提升自己的写入权限

直接输入:" vi /etc/sysconfig/network-scripts/ifcfg-ens33",再提交:”:wq!“

产生错误

 使用sudo操作,就可以操作成功

 6.3.6top命令

top命令用于实时显示 process 的动态。

结束监控快捷键:q

 各进程(任务)的状态监控属性解释说明:

PID — 进程id

USER — 进程所有者

PR — 进程优先级

NI — nice值。负值表示高优先级,正值表示低优先级

VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES

RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA

SHR — 共享内存大小,单位kb

S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程

%CPU — 上次更新到现在的CPU时间占用百分比

%MEM — 进程使用的物理内存百分比

TIME+ — 进程使用的CPU时间总计,单位1/100秒

COMMAND — 进程名称(命令名/命令行)

显示完整命令,与top命令不同的就是command属性像是进行了命令补全

语法:top -c

显示指定的进程信息,以下显示进程号为13351的进程信息,CPU、内存占用率等

top -p 13351

6.3.7ps命令

ps命令用于显示当前进程 (process) 的状态信息

ps -A:显示所有进程

ps -u 用户名:显示指定用户信息

ps -ef:显示所有进程的信息

6.3.8kill命令

kill命令用于删除执行中的程序或工作(可强制中断)

kill [-s <信息名称或编号>][程序] 或 kill [-l <信息编号>]

  • l <信息编号>  若不加<信息编号>选项,则-l参数会列出全部的信息名称。

  • -s <信息名称或编号>  指定要送出的信息。

程序可以是程序的PID或是PGID,也可以是工作编号。

删除top列表中 PID为15751的程序

强制删除top列表中PID为15762的程序

 删除该用户下的全部进程(两种方法)

 6.3.9关机命令

语法:shutdown [-t seconds] [-rkhncfF] time [message]

参数说明

  • -t seconds : 设定在几秒钟之后进行关机程序。

  • -k : 并不会真的关机,只是将警告讯息传送给所有使用者。

  • -r : 关机后重新开机。

  • -h : 关机后停机。

  • -n : 不采用正常程序来关机,用强迫的方式杀掉所有执行中的程序后自行关机。

  • -c : 取消目前已经进行中的关机动作。

  • -f : 关机时,不做 fcsk 动作(检查 Linux 档系统)。

  • -F : 关机时,强迫进行 fsck 动作。

  • time : 设定关机的时间。

  • message : 传送给所有使用者的警告讯息。

立即关机:shutdown -h now或者shudown

 ”shotdown -c“:取消关机

延迟关机:shutdown +1 “System will shutdown after 1 minutes” 

延迟重启:shutdown –r +1 “1分钟后关机重启”

 6.3.10重启命令

语法:reboot [-n] [-w] [-d] [-f] [-i]

参数

  • -n : 在重开机前不做将记忆体资料写回硬盘的动作

  • -w : 并不会真的重开机,只是把记录写到 /var/log/wtmp 档案里

  • -d : 不把记录写到 /var/log/wtmp 档案里(-n 这个参数包含了 -d)

  • -f : 强迫重开机,不呼叫 shutdown 这个指令

  • -i : 在重开机之前先把所有网络相关的装置先停止

6.3.11who命令

who命令用于显示系统中有哪些使用者正在上面,显示的资料包含了使用者 ID、使用的终端机、从哪边连上来的、上线时间、呆滞时间、CPU 使用量、动作等等

语法:who - [husfV] [user]

参数说明

  • -H 或 --heading:显示各栏位的标题信息列;

  • -i 或 -u 或 --idle:显示闲置时间,若该用户在前一分钟之内有进行任何动作,将标示成"."号,如果该用户已超过24小时没有任何动作,则标示出"old"字符串;

  • -m:此参数的效果和指定"am i"字符串相同;

  • -q 或--count:只显示登入系统的帐号名称和总人数;

  • -s:此参数将忽略不予处理,仅负责解决who指令其他版本的兼容性问题;

  • -w 或-T或--mesg或--message或--writable:显示用户的信息状态栏;

  • --help:在线帮助;

  • --version:显示版本信息

 6.3.12timedatectl命令

timedatectl是用于控制系统时间和日期。可以用来查询和更改系统时钟于设定,同时可以设定和修改时区信息。

 展示全部时区

 设置为上海时区

关闭ntp时间同步,后自己设置时间状态

 6.3.13clear和exit命令

clear命令用于清除屏幕

exit命令用于退出目前的shell

 7.Linux目录与文件属性权限

在Linux系统下,最顶级的目录为根目录/,所有的文件和目录都在它下面

7.1目录管理

7.1.1常用目录命令

  • ls: 列出目录

  • cd: 切换目录

  • pwd: 显示目前的目录

  • mkdir:创建一个新的目录

  • rmdir:删除一个空的目录

  • cp: 复制文件或目录

  • rm: 移除文件或目录

  • mv: 移动文件与目录或修改文件与目录的名称

1.ls命令

ls:显示不隐藏的文件与文件夹

ls -l:显示不隐藏的文件与文件夹的详细信息

ls -a:显示所有文件与文件夹

ls -al:显示所有文件与文件夹的详细信息

  • 权限, 第一个字符如果是 d 表示目录

  • 硬链接数, 通俗的讲就是有多少种方式, 可以访问当前目录和文件

  • 属主, 文件是所有者、或是叫做属主

  • 属组, 文件属于哪个组

  • 大小:文件大小

  • 时间:最后一次访问时间

  • 名称:文件的名称

7.1.2pwd展示当前所在的目录

 7.1.3cd命令

相对路径和绝对路径

 回退”cd ..“

 7.1.4mkdir命令

mkdir命令用于建立名称为 dirName 之子目录

参数-p 确保目录名称存在,不存在的就建一个

创建一个名为”aaa“的文件夹

 创建多级文件夹,需要使用语法”mkdir -p bbb/ccc“

 7.1.5rmdir命令

rmdir命令删除空的目录

删除单级文件夹,如果非空,则无法删除

 删除多级目录,如果删除文件夹ccc后,bbb也为空,连续删除

 7.1.6rm命令

rm命令用于删除一个文件或者目录。

语法:rm [选项] 文件/目录

参数:

  • -i 删除前逐一询问确认。

  • -f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。

  • -r 将目录及以下之档案亦逐一删除。

rm 文件路径:删除文件

rm -r 目录路径:删除目录和目录内的全部文件

 7.1.7cp命令

cp命令主要用于复制文件或目录。

语法:cp [选项] 数据源 目的地

参数说明:

  • -a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。

  • -d:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。

  • -f:覆盖已经存在的目标文件而不给出提示。

  • -i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖。

  • -p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。

  • -r/R:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。

  • -l:不复制文件,只是生成链接文件。

 cp aaa/a.txt ccc:将aaa文件夹中的a.txt文件,拷贝到ccc文件夹

cp -r aaa/* ccc:将aaa文件夹中的全部内容,包括文件夹和文件,拷贝到ccc文件夹

7.1.8mv命令

mv 命令用来为文件或目录改名、或将文件或目录移入其它位置

语法:mv [选项] 数据源 目的地

参数说明:

  • -i: 若指定目录已有同名文件,则先询问是否覆盖旧文件;

  • -f: 在 mv 操作要覆盖某已有的目标文件时不给任何指示;

移动之后,aaa文件夹为空,ccc文件夹中有之前aaa的全部文件和文件夹

如果为同目录下移动,则相当于更改文件名 

 7.2文件属性及权限

Linux系统是一种典型的多用户系统,不同的用户具有不同的地位和不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。

7.2.1文件基本属性

输入语法:ls -l

显示一个文件的属性以及文件所属的用户和组

  • 当为[ d ]则是目录

  • 当为[ - ]则是文件;

  • 若是[ l ]则表示为链接文档(link file);

  • 若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);

  • 若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。

接下来的字符中,以三个为一组,且均为『rwx』 的三个参数的组合。其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]而已。

2-4位:属主权限

5-7位:属组权限

8-10位:其他用户权限

7.2.2chgrp更改属组

chgrp命令用于变更文件或目录的所属群组。

语法:chgrp [选项参数][所属群组][文件或目录]

直接将aaa目录的所属组改为root

-v的作用是可以显示下面的一行提示

 7.2.3chown更改属主和属组

chown 可以将档案的拥有者加以改变。这个指令只有是由系统管理者(root)所使用

 语法:chown 属主名 文件名    (改属主)

            chown [-R] 属主名:属组名 文件名   (改属主和属组)

 参数-R:将aaa文件夹和里面的所有属主和属组改为root

 7.2.4chmod命令

Linux文件属性有两种设置方法,一种是数字,一种是符号

Linux的文件调用权限分为三级 : 文件属主、属组、其他。利用 chmod 可以控制文件如何被他人所调用。

1.数字设置

读(read):r,序号4

写(write):w,序号2

执行(execute):x,序号1

无权限:-,序号0

语法:chmod [参数选项] 数字权限 文件或目录

参数-R:将同目录及目录一下的全部文件都进行权限修改

 2.符号设置

user->u        group->g        others->0        全部身份->a

+->添加权限        - ->删除权限         =->重新设置权限

r->读        w->写        x->可执行

语法:chmod [选项] [身份 符号 权限]

参数-R:将同目录及目录一下的全部文件都进行权限修改

给aaa文件夹设置权限

 给aaa文件夹删除其他用的全部权限

 8.Linux文件创建及其管理

8.1文件创建

touch命令用于创建文件、修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。

语法:touch [参数选项] 文件名

  • 参数说明

  • a 改变档案的读取时间记录。

  • m 改变档案的修改时间记录。

  • c 假如目的档案不存在,不会建立新的档案。与 --no-create 的效果一样。

  • f 不使用,是为了与其他 unix 系统的相容性而保留。

  • r 使用参考档的时间记录,与 --file 的效果一样。

  • d 设定时间与日期,可以使用各种不同的格式。

  • t 设定档案的时间记录,格式与 date 指令相同。

  • --no-create 不会建立新档案。

  • --help 列出指令格式。

  • --version 列出版本讯息。

创建a.txt

 创建a1-a10,10个文件

 touch已存在的文件,会直接修改文件的访问时间

8.2vi/vim文本编辑器

8.2.1vi/vim简介

vi是 visual interface的简称, 是linux中最经典的文本编辑器。

特点:只能编辑文本内容,不可以对文本的字体和段落进行排版。不支持鼠标操作。没有菜单。只有命令。

vim是从 vi (系统内置命令)发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

8.2.2vi/vim模式

命令模式:vim 文件名       进入命令模式,但是不能输入

编辑模式:命令模式下按i就会进入编辑模式,此时可以写入文本了,再按Esc可以回到命令模式

未行模式:命令模式下按:进入末行模式,左下角会有一个冒号出现,此时可以敲入命令并执行。

 8.2.3创建和打开文件

语法:vim 文件名

如果文件存在,直接打开;如果文件不存在,打开一个临时文件,完成后会创建文件。

编辑模式:

命令英文功能常用
iinsert在当前字符前插入文本常用
Iinsert在行首插入文本较常用
aappend在当前字符后添加文本
Aappend在行末添加文本较常用
o在当前行后面插入一空行常用
O在当前行前面插入一空行常用

末行模式:

:q 当vim进入文件没有对文件内容做任何操作可以按"q"退出

:q! 当vim进入文件对文件内容有操作但不想保存退出

:wq 正常保存退出

:wq! 强行保存退出,只针对与root用户或文件所有人生

命令模式,只阅读

按i,进入编辑模式

写完后按Esc,回到命令模式

按:进入末行模式,然后输入wq!,保存文件

 8.2.4查看文件

序号命令对应英文作用
01cat 文件名concatenate查看小文件内容
02less -N 文件名less分频 显示大文件内容
03head -n 文件名查看文件的前一部分
04tail -n 文件名查看文件的最后部分
05grep 关键字 文件名grep根据关键词, 搜索文本文件内容

1.cat命令/less命令

参数:-n  显示行号

 

2.tail命令

tail 命令可用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件。

显示文件的末尾几行

显示文件的末尾3行

动态显示文件的末尾几行(用ctrl+c退出)

动态显示文件的末尾4行(用ctrl+c退出)

  

 显示文件第二行到末尾

 显示文件的最后45个字符

3.head命令

head命令与tail命令类似

4.grep命令

grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来。

语法:grep [参数选项] 关键字 文件

参数:

        -i:忽略大小写,寻找关键字

        -v:除关键字意外的全部行

 在进程中,查找关键字包含sshd的进程信息

 排除进程中”grep“的进程信息

展示包含”sshd“进程的数量 

 8.2.5vim定位行

语法:vim 文件名 + 行数

打开b.txt直接定位到第六行

 

 8.2.6vim异常处理

当文件在编辑过程中,系统会在当前目录下创建”.txt.swp“的文件进行编辑,需要保持时,再将”.txt.swp“中的内容直接保存到源文件中。但是如果在编辑过程中,突然断开连接,”.txt.swp““五文件还是存在,再次连接系统,查看文件就会发生异常信息

 此时,输入A中止即可,就会自动山区swp文件,可以继续查看和编辑原文本文件

8.3echo命令

echo命令有点类似于我们在java se阶段学习的 System.out.print("hello")但是,echo还有一个功能就是追加文件内容到文件,类似于我们在java se阶段学习的append文件流写入一样。

 语法:echo 字符串                                      展示文本

            echo 字符串>文件名                         将字符串写到文件中(覆盖)

            echo 字符串>>文件名                       将字符串写到文件中(不覆盖)

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

 

 8.4awk命令

AWK是一种处理文本文件的语言,是一个强大的文本分析工具。

语法:awk [参数选项] ‘语法’ 文件

查看zhang和li的成绩

 awk -F ',' '{print $1,$​2, $3}'文件 :操作1.txt文件, 根据 逗号 分割, 打印 第一段 第二段 第三段 内容  

选项英文含义
-F ','field-separator使用 指定字符 分割
$ + 数字获取第几段内容
$0获取 当前行 内容
NFfield表示当前行共有多少个字段
$NF代表 最后一个字段
$(NF-1)代表 倒数第二个字段
NR代表 处理的是第几行

 awk -F ' ' '{OFS="==="}{print ​2, $3}' 1.txt   :操作1.txt文件, 根据 逗号 分割, 打印 第一段 第二段 第三段 内容

选项英文含义
OFS="字符"output field separator向外输出时的段分割字符串

转义序列含义
\b退格
\f换页
\n换行
\r回车
\t制表符

函数名含义作用
toupper()upper字符 转成 大写
tolower()lower字符 转成小写
length()length返回 字符长度

 awk 'BEGIN{初始化操作}{每行都执行} END{结束时操作}' 文件名   

解释:BEGIN{ 这里面放的是执行前的语句 }{这里面放的是处理每一行时要执行的语句}END {这里面放的是处理完所有的行后要执行的语句 }

计算第四列的总分数

 NR表示处理几行数据,类似于计数

 最后一项,计算第四列的平均分

 8.5软连接

软连接其实就类似于我们在Windows中的【快捷方式】

语法:ln -s 目标文件目录 快捷方式路径

8.5find命令

 find命令用来在指定目录下查找文件。

语法:find <指定目录> <指定条件> <指定内容>

查找桌面目录下txt文件

 查找一天内操作的文件

8.6read命令

read 内部命令被用来从标准输入读取单行数据。这个命令可以用来读取键盘输入,当使用重定向的时候,可以读取文件中的一行数据。

语法:read website  

此时website就是输入的变量名

输出:echo ”$website“

 在文件中写如下命令

 下面就执行文件命令,将每行读出

 9.文件压缩

9.1gzip命令

gzip是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多出".gz"的扩展名

语法:gzip [参数][文件或目录]

压缩所有文件, 但是已经压缩的文件无法再次压缩

 解压全部文件(v:显示解压信息)

9.2gunzip命令

gunzip命令用于解压文件。

语法:gzip[参数][文件或者目录]

 

 9.3tar命令

tar的主要功能是打包、压缩和解压文件。tar本身不具有压缩功能。他是调用压缩功能实现的 。

语法:tar [必要参数][选择参数][文件]

参数选择:

        -c:建立新的研所文件

        -v:显示指令执行过程

        -f<备份文件> :指定压缩文件

        -z:通过gzip指令处理压缩文件

        -t:列出压缩文件的内容

        -x:表示解压

1.将文件进行打包,不压缩

 2.将文件进行打包,压缩

 3.压缩文件夹

 4.查看压缩文件中有哪些文件

5.解压文件夹

 9.4zip命令与unzip命令

 zip命令用于压缩文件。

语法:zip[必要参数][选择参数][文件]

参数:-q:不显示指令执行过程

           -r:将指定目录下的所有文件和子目录一并处理

 unzip为.zip压缩文件的解压缩程序

语法:unzip[必要参数][选择参数][文件] 

参数:-l:显示压缩文件内包含的文件

           -d<目录>:指定文件解压后所需要存储的目录

 9.5bzip2命令与bunzip2命令

bzip2命令是.bz2文件的压缩程序。

语法:bzip2 [参数选项] 文件

 bunzip2命令是.bz2文件的解压缩程序。

语法:bunzip2 [参数选项] 文件

10.网络与磁盘 

10.1网络命令

10.1.1ifconfig命令

ifconfig命令用于显示或设置网络设备。 ifconfig可设置网络设备的状态,或是显示目前的设置。

语法:ifconfig

显示网卡

 语法:ifconfig 网卡名 down

关闭网卡

 语法:ifconfig 网卡名 up

启动网卡

语法:ifconfig ens37 192.168.175.199

配置IP地址

语法:ifconfig ens37 192.168.175.199 netmask 255.255.255.0

 配置ip地址和子网掩码

 10.1.2ping命令

ping命令用于检测是否与主机连通。

语法:ping [参数选项]

 语法:ping -c 数字 [参数选项]

ping三次后就自动结束

10.1.3netstat命令

利用netstat指令可让你得知整个Linux系统的网络情况

语法:netstat [参数选项]

参数选项:

        -a:显示所有联想中的Socket

        -i:显示网卡列表

10.2硬盘管理 

10.2.1lsblk命令

使用lsblk命令可以以tree的形式展示所有设备的信息

语法:lsblk [参数选项]

NAME : 这是块设备名。

MAJ:MIN : 本栏显示主要和次要设备号。

RM : 本栏显示设备是否可移动设备。注意,在上面设备sr0的RM值等于1,这说明他们是可移动设备。

SIZE : 本栏列出设备的容量大小信息。

RO : 该项表明设备是否为只读。在本案例中,所有设备的RO值为0,表明他们不是只读的。

TYPE :本栏显示块设备是否是磁盘或磁盘上的一个分区。在本例中,sda和sdb是磁盘,而sr0是只读存储(rom)。

MOUNTPOINT : 本栏指出设备挂载的挂载点。

-f:显示系统信息

NAME表示设备名称

FSTYPE表示文件类型

LABEL表示设备标签

UUID设备编号

MOUNTPOINT表示设备的挂载点

10.2.2df命令

 Linux的df命令类似于在Windows中的【计算机】--【管理】--【磁盘管理】菜单对磁盘的统计情况查看

语法:df [参数选择]

语法:df --total

显示所有的信息

语法:df -h

 显示换算后的内容

10.2.3mount命令

在Linux当中所有的存储设备如u盘、光盘、硬盘等,都必须挂载之后才能正常使用。

mount命令是经常会使用到的命令,它用于挂载Linux系统外的文件。

注意:“挂载点”的目录需要以下几个要求:

(1)目录事先存在,可以用mkdir命令新建目录;

(2)挂载点目录不可被其他进程使用到;

(3)挂载点下原有文件将被隐藏。

 语法:mount -t auto /dev/cdrom eee

 开始挂载,挂载到eee文件夹

 语法:umount eee

卸载CD/DVD

11.shell与安装

11.1yum命令

yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。

yum常用命令

  • 1.列出所有可更新的软件清单命令:yum check-update

  • 2.更新所有软件命令:yum update

  • 3.仅安装指定的软件命令:yum install <package_name>

  • 4.仅更新指定的软件命令:yum update <package_name>

  • 5.列出所有可安裝的软件清单命令:yum list

  • 6.删除软件包命令:yum remove <package_name>

  • 7.查找软件包 命令:yum search <keyword>

  • 8.清除缓存命令:

    • yum clean packages: 清除缓存目录下的软件包

    • yum clean headers: 清除缓存目录下的 headers

    • yum clean oldheaders: 清除缓存目录下旧的 headers

    • yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除缓存目录下的软件包及旧的headers

11.1.1安装tree

用root用户,而且需要连接网络

语法:yum -y install tree 

 等待安装完毕!

11.1.2删除tree

语法:yum remove  tree

11.1.3查找软件 

语法:yum list tom*

查找开头以tom的文件

 11.2yum源

yum需要一个yum库,也就是yum源。 我们安装软件的时候需要下载软件,将很多软件放在一起就是源。软件安装包的来源,所以yum源就是软件安装包来源

11.2.1安装wget

语法:yum install -y wget

语法:cd /etc/yum.repos.d/

语法:mv CentOS-Base.repo CentOS-Base.repo.back

备份原来样本相关配置工具

11.2.2安装阿里yum

 语法:wget -O CentOS-Base.repo http://mirrors.aliyun/repo/Centos-7.repo

下载阿里云的Centos-7.repo文件

语法:yum clean all

 清理缓存文件,并重新加载yum

语法:yum makecache

就是把服务器的包信息下载到本地电脑缓存起来,makecache建立一个缓存,以后用install时就在缓存中搜索,提高了速度。

语法:yum search tomcat

 查找软件,验证阿里云的yum时候可以正常使用

 11.3rpm

rpm 只能安装已经下载到本地机器上的rpm 包. yum能在线下载并安装rpm包,能更新系统,且还能自动处理包与包之间的依赖问题,这个是rpm 工具所不具备的。

安装rpm软件包

rpm -ivh 软件全包名

卸载rpm软件包

rpm -e 软件全包名      

列出所有安装过的包

rpm -qa

查询软件包信息

rpm -qi 软件全包名

查看文件安装位置

rpm -ql 软件全包名

11.4shell使用

11.4.1shell开始

Shell 脚本(shell script),是一种为 shell 编写的脚本程序。是一种计算机程序使用的文本文件,内容由一连串的 shell 命令组成,经由 Unix Shell 直译其内容后运作

Shell 编程跟 JavaScript、php 编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。

shell的两种使用方式:手工方式,脚本方式

先创建a.sh文件,然后写入命令

 然后修改a.sh文件的权限

然后直接执行即可

11.4.2注释

# 开头的行就是注释,会被解释器忽略。

 

 多行注释:(:<<字符{     }字符)

 

 11.4.3变量

 1.定义变量

语法:变量名=变量值        变量值必须是一个整体,中间没有特殊字符

           变量名=‘变量值’      单引号中的内容,原样赋值

           变量名=”变量值“      如果双引号里面有其他变量,会把变量的结果进行拼接,然后赋值

 

 

 

 

 

 

 

 2.命名变量

语法:变量名=`命名`

           变量名=$(命令)

 

3.使用变量

语法:$变量名

           "$变量名"

           ${变量名}

           ”${变量名}“

 

 将result设置为只读变量

 删除变量

 

11.4.4数组

1.定义数组

语法:数组名=(值1 值2 ... 值n)

2.给数组元素赋值

语法:属组名[索引]=值

3.获取元素

语法:$[数组[索引]]

4.获取长度

语法:${#数组名[*]}     ${#数组名[@]}

11.4.5运算符

1.算术运算符

原生 bash 不支持 简单的数学运算,但是可以通过其他命令来实现,例如expr。

表达式和运算符之间要有空格

完整的表达式要被 ` 包含,注意不是单引号。

运算符说明举例
+加法expr $a + $b 结果为 30。
-减法expr $a - $b 结果为 -10。
*乘法expr $a \* $b 结果为 200。
/除法expr $b / $a 结果为 2。
%取余expr $b % $a 结果为 0。
=赋值a=$b 将把变量 b 的值赋给 a。
==相等。用于比较两个数字,相同则返回 true。[ ​b ] 返回 false。
!=不相等。用于比较两个数字,不相同则返回 true。[ ​b ] 返回 true。

 

2.字符串运算符

运算符说明举例
=检测两个字符串是否相等,相等返回 true。[ ​b ] 返回 false。
!=检测两个字符串是否相等,不相等返回 true。[ ​b ] 返回 true。
-z检测字符串长度是否为0,为0返回 true。[ -z $a ] 返回 false。
-n检测字符串长度是否为0,不为0返回 true。[ -n "$a" ] 返回 true。
$检测字符串是否为空,不为空返回 true。[ $a ] 返回 true。

 

3.关系运算符

a=10,b=20

运算符说明举例
-eq检测两个数是否相等,相等返回 true。[ a -eq​ b ] 返回 false。
-ne检测两个数是否不相等,不相等返回 true。[ ​a -ne b ] 返回 true。
-gt检测左边的数是否大于右边的,如果是,则返回 true。[ ​a -gt b ] 返回 false。
-lt检测左边的数是否小于右边的,如果是,则返回 true。[ a -lt ​b ] 返回 true。
-ge检测左边的数是否大于等于右边的,如果是,则返回 true。[ a -ge ​b ] 返回 false。
-le检测左边的数是否小于等于右边的,如果是,则返回 true。[ ​a -le b ] 返回 true。

 

 4.布尔运算符

a=10,b=20

运算符说明举例
!非运算,表达式为 true 则返回 false,否则返回 true。[ ! false ] 返回 true。
-o或运算,有一个表达式为 true 则返回 true。[ ​a -lt 20 -o b -gt 100 ] 返回 true。
-a与运算,两个表达式都为 true 才返回 true。[​ a -lt 20 -a ​b -gt 100 ] 返回 false。

 

 5.逻辑运算符

a=10,b=20

运算符说明举例
&&逻辑的 AND[[ a -lt 100 &&​b -gt 100 ]] 返回 false
||逻辑的 OR[[ ​a -lt 100 || b -gt 100 ]] 返回 true

 11.4.6流程语句

1.if语句

if [语句]
then
    command1 
    command2
fi


if [语句]
then
    command1 
else
    command2
fi


if [语句1]
then
    command1 
elif [语句1]
    command2
else
    command3
fi

 

 2.case语句

case 值 in
模式1)
    语句
    ;;
模式2)
    语句
    ;;
*)
    语句
    ;;
esac

 

 3.for语句

for 循环变量 in 循环序列
do
    循环体
done


for loop in A B C D E F G 
do
    echo "顺序输出字母为: $loop"
done

 

 4.while语句

while 条件
do
    循环体
done

 11.4.7函数

函数名(){
    函数体
}

---------------------------------------------------------------------------------------------------------------------------------

内容有部分存在书籍、课堂、网络记录,如有雷同纯属巧合

本文标签: JavaJavaWebLinux