一、Linux系统介绍
1.常见的Linux系统:Ubuntu、Debian、Redhat、CentOS等
2.Linux操作系统是操作系统的核心,也称为内核,内核的主要功能为:
①内存管理
②多任务管理
③文件系统管理
④多任务间的通信
⑤网络管理
⑥硬件设备管理
3.shell是操作系统的外壳,主要作用为:
保护Linux内核,防止用户直接操作内核导致的异常问题
命令解释器的作用,用户可以通过命令给到shell,并转换为对应的内核代码实现功能

shell命令的执行:

二、shell命令
1.文件查看命令
(1)cat:查看文件中的内容
cat 文件名
(2) head:查看文件开头内容
head -n 行数 文件名
3. tail:查看文件末尾内容
tail -n 行数 文件名1
3. 通配符:多用来搭配shell命令使用,操作多个文件
(1) * 匹配任意长度、任意字符的文件名
ls file*.txt1
(2) ?匹配一位长度、任意字符的文件名
ls file_??.txt1
(3) []:匹配一位长度、指定字符的文件名
ls file_[1-5].txt (指定1-5)
ls file_[^3].txt (除3以外)
ls file_[1,3,5].txt (指定1,3,5)
4. 管道:将前面命令的输出作为后续命令的输入
./a.out | grep "字符串"
ls file* | grep ".sh"
5. 重定向:将原本要输出在终端的内容定向到文件中
覆盖重定向(将原来内容覆盖)
echo "hello world" > file.txt1
追加重定向(在原内容末尾添加新内容)
echo "hello world" >> file.txt
6. 文件查找命令
(1)find命令:
①查找文件
find . -name 文件名
②查找包含某个字符串的文件
find . -type f -print0 | xargs -0 grep -l "字符串"
(2)whereis命令:查找二进制可执行程序
whereis valgrin
7. 常见命令
(1)echo命令:在终端上显示内容
echo "hello world" > file.txt1
(2) grep命令:查找包含字符串对应的行并显示
grep "字符串" 文件名
8.压缩和解压命令
(1).tar.gz格式
压缩
tar -zcvf 文件名.tar.gz 目录名/*1
解压
tar -zxvf 文件名.tar.gz1
(2).tar.bz2格式
压缩
tar -jcvf 文件名.tar.bz2 目录名/*1
解压
tar -jxvf 文件名.tar.bz21
三、shell脚本
1.shell是解释型语言
2.编程步骤
(1)编写脚本文件
vim filename.sh1
(2)使用chmod命令为脚本加上执行权限
chmod +x filename.sh
(3) 运行脚本
./filename.sh1
2. 指定脚本对应的运行shell
#!/bin/bash1
3. shell脚本的输入和输出
(1)输入
#从终端接收用户输入放入filename变量中
read filename
(2) 输出
#将变量filename中的内容打印在屏幕上
echo $filename
4. shell脚本中的引号
(1)单引号
原封不动打印引号中的内容
echo '$filename
(2)双引号
将双引号中的变量替换成对应的值打印
echo "$filename"
(3) 倒引号
将引号中的内容当做命令来处理
echo `seq 10`
5. shell中的变量
(1)环境变量
shell自带的一些变量,在程序运行时已经存在了
echo "$HOME"
echo "$PWD"
echo "$PATH"
(2)位置变量
$0 :脚本的名称
$1 :执行脚本时传入的参数1
$2 :执行脚本时传入的参数2
..
$# :传入参数的个数
$? :上一条shell语句的执行结果
$$ :脚本运行的进程编程
(3) 自定义变量
value=0
$valu
6. 分支结构:
(1)if 分支
①基本结构:
if 表达式
then
语句块
else
语句块
fi
②表达式可以由test命令实现
-gt #大于
-lt #小于
-ge #大于等于
-le #小于等于
-eq #等于
-ne #不等于
-b #检测文件是否存在,并判断是否为块设备
-c #检测文件是否存在,并判断是否为字符设备
-d #检测文件是否存在,并判断是否为目录文件
-e #检测文件是否存在
-f #检测文件是否存在,并判断是否为普通文件
-L #检测文件是否存在,并判断是否为链接文件
-p #检测文件是否存在,并判断是否为管道文件
-S #检测文件是否存在,并判断是否为套接字文件
test可以通过[]来替代
(2)case 分支
case 变量名 in
常量1)语句
;;
常量2)语句
;;
常量3)语句
;;
*)语句
;;
esac
7.循环结构
(1)while循环
while 表达式
do
句块
done
(2)until(与while相反,满足条件就结束循环)
until 表达式
do
语句块
done
(3) for
for i in 数据集
do
语句块
done
8.数组
#!/bin/bash
array=("hello" "world" "how" "are" "you")
i=0
for ((i = 0; i < 5; i++))
do
echo ${array[$i]}
done
echo "${array[*]} //打印所有元素
9.函数
#!/bin/bash
add()
{
sum=`expr $1 + $2`
echo "$sum"
return $sum
}
read num1
read num2#获得函数内输出的字符串
ret=`add $num1 $num2`#打印函数的运行的值
echo "$?"#打印函数内输出的字符串
echo "ret = $ret"
5428

被折叠的 条评论
为什么被折叠?



