Linux学习笔记《Linux命令行与shell脚本》
Linux命令行与shell脚本编程大全学习笔记
起风了で
三思方举步,百折不回头
展开
-
8.1、管理文件系统之一(创建新的分区)
0:Linux中的3种广泛使用的日志方法:数据模式:索引节点和文件都会被写入日志,丢失数据风险低,但性能差。有序模式:只有索引节点数据会被写入日志,但只有数据成功写入后才删除;在性能和安全性之间取得了良好的折中。回写模式: 只有索引节点数据会被写入日志,但不控制文件数据何时写入;丢失数据风险高,但仍比不用日志好。1:创建分区:fdisk命令的使用此命令需要在root用户下使用[chen...原创 2019-09-26 19:45:32 · 203 阅读 · 0 评论 -
8.2、管理文件系统之二(删除分区)
首先,我们先查看一下分区:[root@CHENDAJIE ~]# lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTsda 8:0 0 20G 0 disk ├─sda1 8:1 0 200M 0 part /boot├─sda2 8:2 0 2G 0 part [SWAP]├─sda3 ...原创 2019-09-26 20:30:18 · 286 阅读 · 0 评论 -
8.3、管理文件系统之三(创建文件系统)
不同文件系统中创建文件系统的命令:mkefs #创建一个ext文件系统mke2fs #创建一个ext2文件系统mkfs.ext3 #创建一个ext3文件系统mkfs.ext4 #创建一个ext4文件系统mkreiserfs #创建一个ReiserFS文件系统jfs_mkfs #创建一个JFS文件系统mkfs.xfs #创建一个XFS文件系统mkfs.zf...原创 2019-09-26 21:17:13 · 1960 阅读 · 0 评论 -
8.4、管理文件系统之四(文件系统的检查与修复fsck命令)
使用格式:fsck [options] [filesystem]你可以列出多个要检查的文件系统。文件系统可以通过设备名、在虚拟目录中的挂载点以及分配给文件系统的唯一的UUID值来引用。下面列出fsck的命令行选项:-a #如果监测到错误,自动修复文件系统-A #检查/etc/fstab文件中列出的所有文件系统-C #给支持进度条功能的文件系统显示一个进度条(只有ext2和ex...原创 2019-09-26 21:46:20 · 238 阅读 · 0 评论 -
8.5、管理文件系统之五(逻辑卷管理)
逻辑卷管理逻辑卷管理分布Linux中的LVM快照条带化镜像使用Linux LVM定义物理卷创建卷组创建逻辑卷创建文件系统修改LVM1、逻辑卷管理布局:逻辑卷管理器( logical volume manager, LVM)可以动态的添加存储空间。逻辑卷管理的核心在于如何处理安装在系统上的硬盘分区。在逻辑管理的世界里,硬盘分区称为物理卷****( physical vol...原创 2019-09-27 18:01:49 · 228 阅读 · 0 评论 -
10、vim 编辑器
因为第九章主要讲的是安装程序,但是并没有讲如何配置本地yum源。所以我就不多做介绍了。顺带提一下,我的另一个博客里面写了如何配置本地yum源。书上第十章主要讲的是如何使用编辑器,主要介绍了nano,emacs,KWrite,Kate,gedit这几个编辑器。此处我就不介绍了,推荐大家使用vim官方教程操作。首先我们启动虚拟机,连接远程登录工具:输入以下代码,打开vim官方教程。[chend...原创 2019-10-08 09:11:20 · 74 阅读 · 0 评论 -
11.1、构建基本脚本之一(创建一个简单的shell脚本文件及echo命令)
一、使用多个命令shell脚本的关键在于输入多个命令并处理每个命令的结果,甚至将一个命令的结果传给另一个命令。如果想要几个命令一起执行,可以使用分号将其隔开。[chendajie@CHENDAJIE my_test]$ date ; who2019年 10月 08日 星期二 09:19:11 CSTchendajie pts/0 2019-10-08 08:42 (172....原创 2019-10-08 10:18:46 · 2567 阅读 · 0 评论 -
11.2、构建基本的shell脚本之二(使用变量)
写在前面的话:博客中所有的脚本文件执行之前都要加上此命令:chmod u+x <文件名> #给文件的属主添加执行权限一、环境变量在脚本中,你可以在环境变量名称之前加上美元符号( $ )来使用这些环境变量。[root@CHENDAJIE sh.test]# cat test2.sh #!/bin/bash# display user information from th...原创 2019-10-08 21:10:11 · 146 阅读 · 0 评论 -
11.3 构建基本的shell脚本之三(重定向输入和输出)
一、输出重定向>输出重定向>>追加重定向最基本的重定向将命令的输出发送到一个文件中。bash shell 用大于号( > )来完成这项功能。command > outputfile例如:输出重定向[root@CHENDAJIE sh.test]# date > a #此时创建了一个新的文件a[root@CHENDAJIE ...原创 2019-10-08 21:56:05 · 144 阅读 · 0 评论 -
11.4 构建基本的shell脚本之四(管道)
管道连接:直接将一个命令重定向到另一个命令。command1 | command2Linux系统会同时运行这俩个命令,在系统内部将他们连接起来。在第一个命令产生输出的同时,输出会被立即送给第二个命令。数据的传输不会用到任何中间文件或缓冲区。例如:[root@CHENDAJIE ~]# rpm -qa | sort | more这行命令会先执行rpm命令,将它的输出通过管道传给sort...原创 2019-10-09 10:02:16 · 141 阅读 · 0 评论 -
11.5 构建基本的shell脚本之五(执行数学运算及退出脚本:涉及到expr、bc、exit等命令)
一、执行数学运算1、expr命令例:[root@CHENDAJIE ~]# expr 1 + 56expr 命令可以识别少数的数学和字符串操作符,如下图:书上列出的表格里面还有一些字符串匹配的,但是我现在并不是很了解,所以暂时没有列出来(详情请见223面)如上图所示,expr已经足够支持大多数运算,但是在脚本或命令行使用是仍有时会出现问题。例如:[root@CHENDAJI...原创 2019-10-09 18:58:54 · 198 阅读 · 0 评论 -
12.1 使用结构化命令之一( if-then语句 )
使用 if–then语句格式如下:if commandthen commandfi或者:if command;then commandsfibash shell的if语句会运行后面的那个命令。如果该命令的退出状态码为0时,将会执行then后面的语句。如果退出状态码不为0,则then后面的语句不会执行,bash shell会继续执行脚本中的下一个命令。fi语句用来表示if-t...原创 2019-10-14 09:32:20 · 1227 阅读 · 0 评论 -
12.2 使用结构化命令之二(if-then-else语句)
if-then-else语句在if-then语句中,不管命令是否成功执行,你都只有一种选择。如果命令返回一个非零的状态退出码,bash shell会继续执行脚本中的下一条命令。而if-then-else语句则可以提供另一组命令。格式:if commandthen commandselse commandsfi当if语句中的命令返回退出状态码0时,then部分中的命令会被执行,这...原创 2019-10-14 10:21:32 · 669 阅读 · 0 评论 -
12.3 使用结构化命令之三(嵌套if)
嵌套if例1:[root@CHENDAJIE neted-ifs]# cat test1 #!/bin/bash# Testing nested ifs#testuser=NoSuchUser#if grep $testuser /etc/passwdthen echo "The user $testuser exits on this system."else...原创 2019-10-14 15:07:08 · 170 阅读 · 0 评论 -
12.4 使用结构化命令之四(test命令)
test 命令到目前为止,在if语句中看到的都是普通shell命令。那么if–then语句能否测试命令退出状态码之外的条件?答案是:不能。我们需要借助test命令来提供if–then语句中测试不同条件的途径。如果test命令中列出的条件成立,test命令就会返回退出并返回状态码0.这样if-then语句就与其他编程语言中的if–then语句以类似的方式工作了。如果条件不成立,test命令就会...原创 2019-10-14 15:59:41 · 519 阅读 · 0 评论 -
12.5 使用结构化命令之五(复合条件测试)
if–then语句运行你使用布尔逻辑来组合测试。有两种布尔运算符可用:1、[ condition1 ] && [ condition2 ]2、[ condition1 ] || [ condition2 ]第一种布尔运算使用AND布尔运算符来组合两个条件,要让then部分的命令执行,两个条件都必须满足。【注意】:布尔逻辑是一种能够将可能的返回值简化为TURE或FALSE的...原创 2019-10-16 19:13:38 · 157 阅读 · 0 评论 -
12.6 使用结构化语句之六(if--then的高级特性及case命令)
一、if–then的高级特性bash shell提供了两项可在if–then语句中使用的高级特性:1、用于数字表达式的双括号2、用于高级字符串处理功能的双方括号1、使用双括号双括号命令允许你在比较过程中使用高级数学表达式。test命令只能在比较中使用简单的算术操作。双括号命令提供了更多的数学符号。双括号命令的格式如下:(( expression ))expression可以是任意的...原创 2019-10-16 20:28:01 · 814 阅读 · 0 评论 -
13.1 for命令
for命令重复执行一系列命令在编程中很常见。通常你需要重复一组命令直至达到魔偶个特定条件,比如处理某个目录下的所有文件、系统上的所有用户或是某个文本文件中的所有行。bash shell提供了for命令,允许你创建一个遍历一些列值的循环。每次迭代都使用其中一个值来执行已定义好的一组命令,下面是bash shell中for命令的基本格式。for var in listdo commands...原创 2019-10-17 15:11:45 · 177 阅读 · 0 评论 -
13.2 C语言风格的for命令、while命令和until命令
C语言风格的for命令在C语言中,for循环通常定义ige变量,然后这个变量会在每次迭代时自动改变。c语言的for命令C语言的for命令有一个用来指明变量的特定方法,一个必须保持成立才能继续迭代的条件,以及另一个在每个迭代中改变变量的方法,当条件不成立时,for循环就会停止。条件等式通过标准的数学符号定义。如下:[chendajie@CHENDAJIE for]$ cat for.c #...原创 2019-10-18 17:25:04 · 3099 阅读 · 1 评论 -
13.3 嵌套循环
嵌套循环循环语句可以在循环内使用任意类型的命令,包括其他循环命令。这种循环叫做嵌套循环(nested loop)在使用嵌套循环时,你是在迭代中使用迭代,与命令运行的次数是乘积关系。[chendajie@CHENDAJIE Nest_loop]$ cat test1#!/bin/bash# Nesting for loopsfor (( a = 1; a <= 3; a++ ))...原创 2019-10-19 21:15:01 · 184 阅读 · 0 评论 -
13.4循环处理文件数据
循环处理文件数据循环处理文件数据时通常必须遍历存储在文件中的数据,这要求结合已经讲过的两种技术:1、使用嵌套循环2、修改IFS环境变量通过修改IFS环境变量,就能强制for命令将文件中的每行都当成单独的一个条目来处理,即便数据中有空格也是如此。一旦从文件中提取出了单独的行,可能需要再次利用循环来提取行中的数据。典型的例子是处理/etc/passwd文件中的数据。这要求你逐行遍历/etc/...原创 2019-10-20 19:37:22 · 213 阅读 · 0 评论