文章目录
1 磁盘损坏解决方法
-
查看系统磁盘:Checking filesystems,FAILED表示损坏
-
由于磁盘有损坏,在continue):后面输入root密码,fsck /dev/sdb2,哪个盘符损坏就fsck哪个盘符
-
在Fix?后面加yes
-
reboot即可
2 Shell编程
- shell介绍及基本案例
-
介绍:以文件形式存放批量的Linux命令集合,该文件能够被Shell解释执行,这种文件就是Shell脚本程序
-
通常由一段Linx命令,Shell命令,控制语句以及注释语句构成
-
Shell脚本的编写:Shell脚本是纯文本文件,可以使用任何文本编辑器编写
Shell脚本通常是以sh作为后缀名 -
第一行:指定用哪个程序来编译和执行脚本
#!/bin/bash
#! /bin/sh
sh指向的就是bash,所以总结下,用来指向脚本的程序就是bash -
注释行:使用 # 符号(除了第一行的#外,其他的都为注释)
- 变量,控制,循环基本语法
-
变量命名:变量名必须用字母或下划线开头,后面可以跟字母,数字或下划线,任何其它字符都表只变量名的结束
变量名关于大小写敏感
变量赋值时name=haah,左边为变量,右边为值,且与等号不能有空格 -
变量类型:
根据变量的作用域:可分为本地变量和环境变量
本地变量只在创建他们的shell程序中可用,而环境变量则在shell中的所有用户进程中可用,也称为全局变量
在用户主目录下有一个.bash_profile文件,他为用户的环境变量,此处定义的环境变量除了root用户和本身用户能访问外,其他用户不能访问 - 变量赋值:等号两边不能有空格,如果要给变量赋空值,可以在等号后面跟一个换行符
windows下的换行符\r\n,linux下的换行符:\n
-
显示变量:echo $variable或echo ${variable}或echo " $variable",清除变量 :unset variable,显示所有变量:set
-
环境变量称为全局变量,按照惯例需要写大写export LANG ,可被所有的shell环境访问,如果父shell进程产生了子shell进程,则环境变量可被继承
-
位置参量 :是一组特殊的内置参量,通常被shell脚本用来从命令行接受参数,或被就按书用来保存传递给它的参数
执行shell脚本时,用户可以通过命令行向脚本传递信息,跟在脚本名后面的用空格隔开的每个字符串都称为位置参量
在脚本中使用参数时,需要通过位置参量来引用,例如$1表示第一个参数,$2表示第二个,$9以后需要用花括号把数字括起来,如:第10个位置为 ${10} -
状态码:任何命令进行时都会返回一个退出状态,$?显示前面最后一个命令的退出状态
程序控制返回码:exit N
退出状态为0成功,无错误
退出状态大于1,失败,某处有错误
执行脚本当前目录:./test.sh或者sh test,sh
-
定义数组:数组的定义,遍历,输出数组长度,赋值
-
date命令:查看当前日期date
格式输出时间:date +%Y-%m-%d
输出前一天:date --date=‘1 days ago’ +%Y-%m-%d
后一天:date --date=’-1 days ago’ +%Y-%m-%d -
cal命令:查看日历
3 条件控制语句
- 判断
test可以用[]替代,[-z string]
- if判断
单层判断
只有一个判断时,可以写成这样
有多个判断语句时,可以用多个中括号,每个中括号之间使用&&或||来隔开
&& 代表AND,|| 代表OR
多层判断:
- for循环
第一种写法
var为变量,con1,con2,con3为值,do为每次执行的语句,done为结束条件
第二种写法:
num=10
s=0
for((i=0;i<
n
u
m
;
i
=
i
+
1
)
)
d
o
s
=
{num};i=i+1)) do s=
num;i=i+1))dos=((
s
+
{s}+
s+{i}))
done
echo ${s}
- while循环
例子:
cat file | while read line
do
echo $line
done
${test1:-test2} :-表示前面变量的不存在时执行后面变量的值