《Linux就该这么学》课堂学习笔记_05
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了《Linux就该这么学》课堂学习笔记_05,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5807字,纯文字阅读大概需要9分钟。
内容图文
![《Linux就该这么学》课堂学习笔记_05](/upload/InfoBanner/zyjiaocheng/942/67550d5f2d7343a59834130682195e33.jpg)
Linux值得学习的原因绝不仅仅是因为开源,而是因为Linux系统是一款非常优秀的产品
vim编辑器
vim编辑器共有三种模式,在不同的模式下使用不同的命令
命令模式:控制光标移动,可对文本进行复制、粘贴、删除和查找等工作。
输入模式:正常的文本录入。
末行模式:保存或退出文档,以及设置编辑环境。
在每次运行Vim编辑器时,默认进入命令模式,此时需要先切换到输入模式后再进行文档编写工作,而每次在编写完文档后需要先返回命令模式,然后再进入末行模式,执行文档的保存或退出操作。在Vim中,无法直接从输入模式切换到末行模式。
vim中命令模式下的常用命令
vim中末行模式下常用命令
vim中编辑简单的文档
[root@linuxprobe ~]# vim linux.txt
配置主机名称
为了便于在局域网中查找某台特定的主机,或者对主机进行区分,除了要有IP地址外,还要为主机配置一个主机名
第1步:使用Vim编辑器修改“/etc/hostname”主机名称文件。
第2步:把原始主机名称删除后追加“linuxprobe.com”。注意,使用Vim编辑器修改主机名称文件后,要在末行模式下执行:wq!命令才能保存并退出文档。
第3步:保存并退出文档,然后使用hostname命令检查是否修改成功。
[root@linuxprobe ~] vim /etc/hostname [root@linuxprobe ~]linuxprobe.com
[root@linuxprobe ~]hostname [root@linuxprobe ~]linuxprobe.com
4.2 编写Shell脚本
可以将Shell终端解释器当作人与计算机硬件之间的“翻译官”,它作为用户与Linux系统内部的通信媒介,除了能够支持各种变量与参数外,还提供了诸如循环、分支等高级编程语言才有的控制结构特性。要想正确使用Shell中的这些功能特性,准确下达命令尤为重要。
Shell脚本命令的工作方式有两种:交互式和批处理。
交互式(Interactive):用户每输入一条命令就立即执行。
批处理(Batch):由用户事先编写好一个完整的Shell脚本,Shell会一次性执行脚本中诸多的命令。
查看SHELL变量可以发现当前系统已经默认使用Bash作为命令行终端解释器了:
[root@linuxprobe ~]# echo $SHELL /bin/bash
4.2.1 编写简单的脚本
编写一个简单的Bash脚本,查看当前目录并检查该当前位置所有文件
[root@linuxprobe ~]# vim example.sh #!/bin/bash 脚本声明(使用bash解释器) #For Example BY linuxprobe.com 脚本注释(可有可无) pwd 脚本命令 ls -al
接下来运行bash脚本
[root@linuxprobe ~]# bash example.sh /root/Desktop total 8 drwxr-xr-x. 2 root root 23 Jul 23 17:31 . dr-xr-x---. 14 root root 4096 Jul 23 17:31 .. -rwxr--r--. 1 root root 55 Jul 23 17:31 example.sh
可以看到当前目录为/root/Desktop,该目录下共3个文件
4.2.2 接收用户的参数
Linux系统中的Shell脚本语言内设了用于接收参数的变量,变量之间可以使用空格间隔。
例如:$0对应的是当前Shell脚本程序的名称,$#对应的是总共有几个参数,$*对应的是所有位置的参数值,$?对应的是显示上一次命令的执行返回值,而$1、$2、$3……则分别对应着第N个位置的参数值
编辑脚本example.sh
[root@linuxprobe ~]# vim example.sh #!/bin/bash echo "当前脚本名称为$0" echo "总共有$#个参数,分别是$*。" echo "第1个参数为$1,第5个为$5。"
接下来运行运行脚本
[root@linuxprobe ~]# bash example.sh one two three four five six 当前脚本名称为example.sh 总共有6个参数,分别是one two three four five six。 第1个参数为one,第5个为five。
4.2.3 判断用户的参数
Shell脚本中的条件测试语法可以判断表达式是否成立,若条件成立则返回数字0,否则便返回其他随机数值。
按照测试对象来分类,条件测试语句可分为4种
文件测试语句;
逻辑测试语句;
整数值比较语句;
字符串比较语句。
文件测试即使用指定条件来判断文件是否存在或权限是否满足等情况的运算符
下面使用文件测试语句来判断/etc/fstab是否为一个目录类型的文件,然后通过Shell解释器的内设$?变量显示上一条命令执行后的返回值。如果返回值为0,则目录存在;如果返回值为非零的值,则意味着目录不存在
[root@linuxprobe ~]# [ -d /etc/fstab ] [root@linuxprobe ~]# echo $? 1
再使用文件测试语句来判断/etc/fstab是否为一般文件,如果返回值为0,则代表文件存在,且为一般文件
[root@linuxprobe ~]# [ -f /etc/fstab ] [root@linuxprobe ~]# echo $? 0
逻辑语句用于对测试结果进行逻辑分析,根据测试结果可实现不同的效果。例如在Shell终端中逻辑“与”的运算符号是&&,它表示当前面的命令执行成功后才会执行它后面的命令,因此可以用来判断/dev/cdrom文件是否存在,若存在则输出Exist字样。
[root@linuxprobe ~]# [ -e /dev/cdrom ] && echo "Exist" Exist
除了逻辑“与”外,还有逻辑“或”,它在Linux系统中的运算符号为||,表示当前面的命令执行失败后才会执行它后面的命令,因此可以用来结合系统环境变量USER来判断当前登录的用户是否为非管理员身份:
[root@linuxprobe ~]# echo $USER root [root@linuxprobe ~]# [ $USER = root ] || echo "user" [root@linuxprobe ~]# su - linuxprobe [linuxprobe@linuxprobe ~]$ [ $USER = root ] || echo "user" user
第三种逻辑语句是“非”,在Linux系统中的运算符号是一个叹号(!),它表示把条件测试中的判断结果取相反值。也就是说,如果原本测试的结果是正确的,则将其变成错误的;原本测试错误的结果则将其变成正确的。
[linuxprobe@linuxprobe ~]$ exit logout [root@linuxprobe root]# [ ! $USER = root ] || echo "administrator" administrator
当前我们正在登录的即为管理员用户—root。下面这个示例的执行顺序是,先判断当前登录用户的USER变量名称是否等于root,然后用逻辑运算符“非”进行取反操作,效果就变成了判断当前登录的用户是否为非管理员用户了。最后若条件成立则会根据逻辑“与”运算符输出user字样;或条件不满足则会通过逻辑“或”运算符输出root字样,而如果前面的&&不成立才会执行后面的||符号。
[linuxprobe@linuxprobe ~]# [ ! $USER = root ] && echo "user" || echo "admin"
整数比较运算符仅是对数字的操作,不能将数字与字符串、文件等内容一起操作,而且不能想当然地使用日常生活中的等号、大于号、小于号等来判断。因为等号与赋值命令符冲突,大于号和小于号分别与输出重定向命令符和输入重定向命令符冲突。因此一定要使用规范的整数比较运算符来进行操作。
测试一下10是否大于10以及10是否等于10(通过输出的返回值内容来判断)
[root@linuxprobe ~]# [ 10 -gt 10 ] [root@linuxprobe ~]# echo $? 1 [root@linuxprobe ~]# [ 10 -eq 10 ] [root@linuxprobe ~]# echo $? 0
字符串比较语句用于判断测试字符串是否为空值,或两个字符串是否相同。它经常用来判断某个变量是否未被定义(即内容为空值),理解起来也比较简单。
接下来通过判断String变量是否为空值,进而判断是否定义了这个变量
[root@linuxprobe ~]# [ -z $String ] [root@linuxprobe ~]# echo $? 0
内容总结
以上是互联网集市为您收集整理的《Linux就该这么学》课堂学习笔记_05全部内容,希望文章能够帮你解决《Linux就该这么学》课堂学习笔记_05所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。