Linux学习笔记(第四课)

重要的环境变量

linux 一切都是文件
1、路径+名称
2、命令别命
alias 别名=“原始命令”
3、内部命令
4、外部命令

命令 小写
变量 大写

表3-4 Linux系统中最重要的10个环境变量

变量名称 作用
HOME 用户的主目录(即家目录)
SHELL 用户在使用的Shell解释器名称
HISTSIZE 输出的历史命令记录条数
HISTFILESIZE 保存的历史命令记录条数
MAIL 邮件保存路径
LANG 系统语言、语系名称
RANDOM 生成一个随机数字
PS1 Bash解释器的提示符
PATH 定义解释器搜索用户执行命令的路径
EDITOR 用户默认的文本编辑器
-----------------------------------------------------------------
Vim文本编辑器

Vim 的三种模式1
命令模式:控制光标移动,可对文本进行复制、粘贴、删除和查找等工作。
输入模式:正常的文本录入。
末行模式:保存或退出文档,以及设置编辑环境。
------------------------------------------------
Vim 的三种模式2
命令模式(command mode):在这种模式下,你所敲的任何一个键都是命令
左下角没有任何标记提示。你在任何情况下,都可以按下Esc键进入命令模式。为了确保已经
进入命令模式,可以多按几次。

输入模式、插入模式、编辑模式(insert mode):文本记事本,所敲及所得
观察左下右,有“插入”或者“insert”字样。
进入编辑模式的方法:
在命令模式下按下i键:在当前光标前面插入新的字符
在命令模式下按下a键:在当前光标后面插入新的字符
在命令模式下按下o键:在当前光标所在行下面新起一行并进入编辑模式
在命令模式下按下O键:在当前光标所在行上面新起一行并进入编辑模式
如果按两次键盘上的insert键,将进入替换(改写):

末行模式、扩展模式、长命令模式、冒号模式、命令模式(ex mode):在左下角显示出你输入的命令,回车执行。


表4-1 Vim中常用的命令
命令 作用
dd 删除(剪切)光标所在整行
5dd 删除(剪切)从光标处开始的5行
yy 复制光标所在整行
5yy 复制从光标处开始的5行
n 显示搜索命令定位到的下一个字符串
N 显示搜索命令定位到的上一个字符串
u 撤销上一步的操作
p 将之前删除(dd)或复制(yy)过的数据粘贴到光标后面


表4-2 末行模式中可用的命令

命令 作用
:w 保存
:q 退出
:q! 强制退出(放弃对文档的修改内容)
:wq! 强制保存退出
:set nu 显示行号
:set nonu 不显示行号
:命令 执行该命令
:整数 跳转到该行
:s/one/two 将当前光标所在行的第一个one替换成two
:s/one/two/g 将当前光标所在行的所有one替换成two
:%s/one/two/g 将全文中的所有one替换成two
?字符串 在文本中从下至上搜索该字符串
/字符串 在文本中从上至下搜索该字符串

---------------------------------------------------
4.1.2 配置主机名称
/etc/hostname

第1步:使用Vim编辑器修改“/etc/hostname”主机名称文件。

第2步:把原始主机名称删除后追加“linuxprobe.com”。注意,使用Vim编辑器修改主机名称文件后,要在末行模式下执行:wq!命令才能保存并退出文档。

第3步:保存并退出文档,然后使用hostname命令检查是否修改成功。


[root@linuxprobe ~]# vim /etc/hostname
linuxprobe.com
[root@linuxprobe ~]# hostname
linuxprobe.com
---------------------------------------------------
4.1.3 配置网卡信息

第1步:首先切换到/etc/sysconfig/network-scripts目录中(存放着网卡的配置文件)。

第2步:使用Vim编辑器修改网卡文件ifcfg-ens160,逐项写入下面的配置参数并保存退出。由于每台设备的硬件及架构是不一样的,因此请读者使用ifconfig命令自行确认各自网卡的默认名称。

设备类型:TYPE=Ethernet

地址分配模式:BOOTPROTO=static

网卡名称:NAME=ens160

是否启动:ONBOOT=yes

IP地址:IPADDR=192.168.10.10

子网掩码:NETMASK=255.255.255.0

网关地址:GATEWAY=192.168.10.1

DNS地址:DNS1=192.168.10.1

第3步:重启网络服务并测试网络是否联通。


[root@linuxprobe ~]# cd /etc/sysconfig/network-scripts/
[root@linuxprobe network-scripts]# vim ifcfg-ens160
TYPE=Ethernet
BOOTPROTO=static
NAME=ens160
ONBOOT=yes
IPADDR=192.168.10.10
NETMASK=255.255.255.0
GATEWAY=192.168.10.1
DNS1=192.168.10.1

[root@linuxprobe network-scripts]# nmcli connection reload ens160
[root@linuxprobe network-scripts]# ping 192.168.10.10
PING 192.168.10.10 (192.168.10.10) 56(84) bytes of data.
64 bytes from 192.168.10.10: icmp_seq=1 ttl=64 time=0.083 ms
64 bytes from 192.168.10.10: icmp_seq=2 ttl=64 time=0.110 ms
64 bytes from 192.168.10.10: icmp_seq=3 ttl=64 time=0.106 ms
64 bytes from 192.168.10.10: icmp_seq=4 ttl=64 time=0.035 ms
^C
---------------------------------------------------
必考:

4.1.4 配置软件仓库

第1步:进入到/etc/yum.repos.d/目录中(因为该目录存放着软件仓库的配置文件)。

第2步:使用Vim编辑器创建一个名为rhel8.repo的新配置文件(文件名称可随意,但后缀必须为.repo),逐项写入下面的配置参数并保存退出。

仓库名称:具有唯一性的标识名称,不应与其他软件仓库发生冲突。

描述信息(name):可以是一些介绍词,易于识别软件仓库的用处。

仓库位置(baseurl):即软件包的获取方式,可以使用FTP、HTTP与本地file。

是否启用(enabled):设置此源是否被使用,1为使用,0为禁用。

是否检查(gpgcheck):设置此源是否被校验,1为校验,0为禁用。

公钥位置(gpgkey):若上面参数开启了校验功能,则此处为公钥文件位置。若没有开启,此省略不写。

第3步:按配置参数中所填写的仓库位置挂载光盘,并把光盘挂载信息写入到/etc/fstab文件中。

第4步:使用“dnf install httpd -y”命令检查软件仓库是否已经可用。

开始实战!

进入/etc/yum.repos.d目录中后创建软件仓库的配置文件:

[root@linuxprobe ~]# cd /etc/yum.repos.d/
[root@linuxprobe yum.repos.d]# vim rhel8.repo
[BaseOS]
name=BaseOS
baseurl=file:///media/cdrom/BaseOS
enabled=1
gpgcheck=0
[AppStream]
name=AppStream
baseurl=file:///media/cdrom/AppStream
enabled=1
gpgcheck=0
创建挂载点后进行挂载操作,并设置成开机自动挂载(详见第6章):

[root@linuxprobe yum.repos.d]# mkdir -p /media/cdrom
[root@linuxprobe yum.repos.d]# mount /dev/cdrom /media/cdrom
mount: /media/cdrom: WARNING: device write-protected, mounted read-only.
[root@linuxprobe yum.repos.d]# vim /etc/fstab
/dev/cdrom /media/cdrom iso9660 defaults 0 0
尝试使用软件仓库的dnf命令来安装Web服务,软件包名称叫做httpd,安装后出现Complete!则代表配置正确:

[root@linuxprobe ~]# dnf install httpd -y


+++++++++++++++++++++++++++++
yum最简格式
[bing] 仓库名称:具有唯一性的标识名称,不应与其他软件仓库发生冲突。
name= 描述信息(name):可以是一些介绍词,易于识别软件仓库的用处。
baseurl= 仓库位置(baseurl):即软件包的获取方式,可以使用FTP、HTTP与本地file。
gpgcheck= 是否启用(enabled):设置此源是否被使用,1为使用,0为禁用。
enabled= 是否检查(gpgcheck):设置此源是否被校验,1为校验,0为禁用。
+++++++++++++++++++++++++++++
-------------------------------------------------------
4.2 编写Shell脚本
后缀是 .sh 结尾
脚本声明 #!/bin/bash
脚本注释 #巴拉巴拉
脚本命令 #pwd、ls...


三种运行方式
1、./example.sh //当前路径(注意文件权限问题)
2、bash example.sh (sh example.sh) //当前路径
3、./mnt/bing/example.sh //绝对路径(注意文件权限问题)

[root@localhost mnt]# vim bing.sh (pwd、ls -al)
[root@localhost mnt]# bash bing.sh
/mnt
total 6556
drwxr-xr-x. 3 root root 66 Apr 12 09:23 .
dr-xr-xr-x. 17 root root 224 Apr 10 12:19 ..
-rw-r--r--. 1 root root 11 Apr 12 09:23 bing.sh
-rw-r--r--. 1 root root 6701472 Apr 10 12:49 etc.tar.gz
drwxr-xr-x. 4 root root 33 Apr 10 12:31 linux-c
-rw-r--r--. 1 root root 276 Apr 10 13:19 test
[root@localhost mnt]# ./mnt/bing.sh
-bash: ./mnt/bing.sh: No such file or directory
[root@localhost mnt]# ll
total 6556
-rw-r--r--. 1 root root 11 Apr 12 09:23 bing.sh
-rw-r--r--. 1 root root 6701472 Apr 10 12:49 etc.tar.gz
drwxr-xr-x. 4 root root 33 Apr 10 12:31 linux-c
-rw-r--r--. 1 root root 276 Apr 10 13:19 test
[root@localhost mnt]# chm
chmem chmod
[root@localhost mnt]# chmod 777 bing.sh
[root@localhost mnt]# ./bing.sh
/mnt
total 6556
drwxr-xr-x. 3 root root 66 Apr 12 09:23 .
dr-xr-xr-x. 17 root root 224 Apr 10 12:19 ..
-rwxrwxrwx. 1 root root 11 Apr 12 09:23 bing.sh
-rw-r--r--. 1 root root 6701472 Apr 10 12:49 etc.tar.gz
drwxr-xr-x. 4 root root 33 Apr 10 12:31 linux-c
-rw-r--r--. 1 root root 276 Apr 10 13:19 test
[root@localhost mnt]# cd ..
[root@localhost /]# pwd
/
[root@localhost /]# ./mnt/bing.sh
/
total 32
dr-xr-xr-x. 17 root root 224 Apr 10 12:19 .
dr-xr-xr-x. 17 root root 224 Apr 10 12:19 ..
lrwxrwxrwx. 1 root root 7 Aug 12 2018 bin -> usr/bin
dr-xr-xr-x. 6 root root 4096 Apr 9 16:00 boot
drwxr-xr-x. 19 root root 3160 Apr 10 12:24 dev
drwxr-xr-x. 159 root root 12288 Apr 12 08:27 etc
drwxr-xr-x. 3 root root 18 Apr 9 15:47 home
lrwxrwxrwx. 1 root root 7 Aug 12 2018 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 Aug 12 2018 lib64 -> usr/lib64
drwxr-xr-x. 2 root root 6 Aug 12 2018 media
drwxr-xr-x. 3 root root 66 Apr 12 09:23 mnt
drwxr-xr-x. 2 root root 6 Aug 12 2018 opt
dr-xr-xr-x. 291 root root 0 Apr 10 12:24 proc
dr-xr-x---. 15 root root 4096 Apr 12 09:23 root
drwxr-xr-x. 51 root root 1400 Apr 12 08:16 run
lrwxrwxrwx. 1 root root 8 Aug 12 2018 sbin -> usr/sbin
drwxr-xr-x. 2 root root 6 Aug 12 2018 srv
dr-xr-xr-x. 13 root root 0 Apr 10 12:24 sys
drwxrwxrwt. 17 root root 4096 Apr 12 09:28 tmp
drwxr-xr-x. 12 root root 144 Apr 9 15:34 usr
drwxr-xr-x. 23 root root 4096 Apr 9 15:59 var
[root@localhost /]# cd /mnt/
[root@localhost mnt]# sh bing.sh
/mnt
total 6556
drwxr-xr-x. 3 root root 66 Apr 12 09:23 .
dr-xr-xr-x. 17 root root 224 Apr 10 12:19 ..
-rwxrwxrwx. 1 root root 11 Apr 12 09:23 bing.sh
-rw-r--r--. 1 root root 6701472 Apr 10 12:49 etc.tar.gz
drwxr-xr-x. 4 root root 33 Apr 10 12:31 linux-c
-rw-r--r--. 1 root root 276 Apr 10 13:19 test

[root@linuxprobe ~]# vim example.sh
#!/bin/bash
echo "当前脚本名称为$0"
echo "总共有$#个参数,分别是$*。"
echo "第1个参数为$1,第5个为$5。"
[root@localhost mnt]# bash example.sh 1 2 3 4 5 6 7
当前脚本名称为example.sh
总共有7个参数,分别是1 2 3 4 5 6 7。
第1个参数为1,第5个为5。

&&是逻辑“与”,只有当前面语句执行成功的时候才会执行后面的命令。

||是逻辑“或”,只有当前面语句执行失败的时候才会执行后面的命令。

!是逻辑“非”,代表对逻辑测试结果取反值,之前是正确则变错误,错误则变正确。

 

posted @ 2021-04-12 21:59  bing2215  阅读(99)  评论(0编辑  收藏  举报