linux软件编程学习大纲:
1.IO操作文件
2.多任务编程
3.网络编程
4.数据库编程
5.硬件设备管理
学习目标:
1.学习接口调用(第一层)
2.软件操作流程和思想(第二层)
3.软件设计思想和流程架构(第三层)
Linux系统概述:
世界上第一款操作系统:unix
操作系统为了屏蔽底层不同的硬件平台,为上层提供统一的接口
GNU:GNU's Not Unix 开源 GitHub GPL协议
林纳斯 Linux重写了unix操作系统,类Unix操作系统
Linux应用场景:服务器、嵌入式
GNU:Linux、Apache、Mysql、Python、LAMP
Linux系统简介:
常见的Linux系统:Ubuntu、Deblan、Redhat、CentOS等
Linux操作系统是操作系统的核心、也称为内核,内核的主要功能为:
内存管理
多任务管理
文件系统管理
shell是操作系统的外壳,主要作用为:
保护Linux内核,防止用户直接操作内核导致的异常问题
命令解释器的作用,用户可以通过命令给到shell,并转换为对应的内核代码实现功能
shell命令的执行流程:
shell命令
基本的shell命令:
ls(查看文件)
cd(进入目录)
touch(创建文件)
rm(删除文件)
makdir(创建文件夹)
rmdir(删除文件夹)
cp(拷贝文件)
mv(移动文件)
文件查看命令:
cat:查看文件中的内容
head:查看文件开头内容
tail:查看文件末尾内容
通配符:
多用来搭配shell命令使用,操作多个文件
*:匹配任意长度、任意字符的文件名
ls file*.txt
?:匹配一位长度、任意字符的文件名
ls file_??.txt
[]:匹配一维长度,指定字符的文件名
文件查找命令:
find:
查找文件
find . -name 文件名
查找包含某个字符串的文件
whereis:查找二进制可执行程序
whereis valgrind
管道:
将前面命令的输出作为后续命令的输入
重定向:
将原本输出在终端的内容定向到文件中
覆盖重定向(将原来内容覆盖掉)
追加重定向(再远内容末尾添加新内容)
常见命令
echo:在终端显示内容
grep:查找包含字符串对应的行并显示
练习:使用一条shell命令,实现找到在stdio.h的后200行中找到和extern相关的内容,写入文件record.txt文件中
压缩和解压命令
.tar.gz
压缩
解压
.tar.bz2
压缩
解压
用户管理命令:
useradd:新建用户
userdel:删除用户
passwd:修改密码
su:切换用户
chmod:修改文件权限
chown:修改文件的所属用户
chgrp:修改文件所属组
shell脚本
编程语言分类:
编译型语言:
先编译再运行;
有丰富的数据类型、擅长计算;
执行效率高;
开发效率低;
C、C++、C#、Java;
解释型语言:
边翻译边执行;
擅长对系统管理;
执行效率低;
开发效率高;
shell、Python、JavaScript;
shell脚本编程:
脚本的本质就是一系列shell命令的集合
编程步骤:
①编写脚本文件
vim filename.sh
②使用chmod命令为脚本加上执行权限
chmod +x filename.sh
③运行脚本
./filename.sh
指定脚本对应的运行shell
#!/bin/bash
shell脚本的输入和输出
输入
输出
shell脚本中的引号
单引号:原封不动打印引号中的内容
双引号:将双引号中的变量替换成对应的值打印
倒引号:将引号中的内容当作命令来处理
shell中的变量
环境变量:shell自带的一些变量,在程序运行时已经存在了
位置变量:
自定义变量:
分支结构
if分支:
基本结构:
表达式可以由test 命令实现
test可以通过[]来替代
case分支 :
基本结构:
循环结构:
while循环:
基本形式
until:
基本形式
for:
基本形式
数组
基本形式
函数
基本形式