其它区便宜营销型网站建设昆山网站建设熊掌号
1Linux系统概述:
1Linux系统概述
- 世界上第一款操作系统:unix
- 操作系统是为了屏蔽底层不同的硬件平台,为上层提供一层统一的接口
- GNU:GNU‘s Not Unix开源 GitHub GPL协议(使用了开源代码的代码也必须开源)
- 林纳斯 Linux重写了unix操作系统,类Unix操作系统
- linux应用场景:服务器、嵌入式(linux文件可剪裁 需要的留下)
- GNU:Linux、Apache、Mysql、Python、LAMP
2Linux系统简介
- 常见的Linux系统:Ubuntu、Debian、Redhat、CentOS等
- Linux操作系统也成为操作系统的核心,也称为内核,内核的主要功能为:
- 内存管理
- 多任务管理
- 文件系统管理
- 多任务间的通信
- 网络管理
- 硬件设备的管理
- shell是操作系统的外壳,主要作用为:
- 保护Linux内核,防止用户直接操作内核导致的异常问题
- 命令解释器的作用,用户可以通过命令给到shell,并转换为对应的内核代码实现功能

一条shell命令的执行流程

2shell命令
1常用的shell命令
1 基本的shell命令
- ls 查看文件
- cd 进入目录
- touch 创建文件
- rm 删除文件
- mkdir 创建文件夹
- rmdir 删除文件夹
- cp 拷贝文件
- mv 移动文件
2文件查看命令
- cat命令
- cat 命令
- 查看文件中内容
- 使用形式 :cat 文件名
- cat 命令
- head 命令
- 查看文件开头内容
- 使用形式 :head -n 行数 文件名
- tail 命令
- 查看查看文件末尾内容
- 使用形式 :tail -n 行数 文件名
3通配符
多用来搭配shell命令使用,操作多个文件
- *
匹配任意长度、任意字符的文件名:ls file*.txt
- ?
匹配一位长度、任意字符的文件名:ls file_??.txt
- []
匹配一位长度、指定字符的文件名:
ls file_[1-5].
txt ls file_[^3].txt
ls file_[1,3,5].txt
4管道
将前面命令的输出作为后续命令的输入
./a.out | grep "字符串"
ls file* | grep ".sh"
5重定向
将原本要输出在终端的内容定向到文件中
覆盖重定向(将原来内容覆盖)
echo "hello world" > file.txt
追加重定向(在原内容末尾添加新内容)
echo "hello world" >> file.txt
6文件查找命令
- find命令:
查找文件
find . -name 文件名
查找包含某个字符串的文件
find . -type f -print0 | xargs -0 grep -l "字符串"
- whereis命令
查找二进制可执行程序
whereis valgrind
7常见命令
echo命令:
在终端上显示内容 echo "hello world"
grep命令:
查找包含字符串对应的行并显示
grep "字符串" 文件名
8. 压缩和解压命令
- .tar.gz格式)(要压缩的是目录噢!)
压缩
tar -zcvf 文件名.tar.gz 目录名/*
解压
tar -zxvf 文件名.tar.gz
- tar.bz2格式
压缩
tar -jcvf 文件名.tar.bz2 目录名/*
解压
tar -jxvf 文件名.tar.bz2
9. 用户管理命令:
1. useradd 新建用户
sudo useradd 用户名
2. userdel删除用户
sudo userdel 用户名
3. passwd修改密码
sudo passwd 用户名
4su 切换用户
su 用户名
exit 退出当前用户
5. chmod 修改文件权限
chmod 权限值 文件名
0664
110 110 100
rwx:创建该文件的用户对文件是否拥有读写执行权限
rwx:创建文件同组的用户对文件是否拥有读写执行权限
rwx:其余人是否拥有读写执行权限
6. chown 修改文件的所属用户
chown 用户名 文件名
7.chgrp 修改文件的所属组
chogrp 组名 文件名
1.编程语言的分类:
1.编译型语言:
- 先编译再运行
- 有丰富的数据类型、擅长计算
- 执行效率高
- 开发效率低
- C++、C#、java
2.解释型语言:
- 边翻译边执行
- 擅长对系统维护管理
- 执行效率低
- 开发效率高
- shell、Python、 Javascript
2.shel脚本编程:
脚本的本质就是一系列shell命令的集合
1.编程步骤:
1.编写脚本文件
vim filename.sh
2使用chmod命令为脚本加上执行权限
chomd +x filename.sh
3. 运行脚本
./filename.sh
2指定脚本对应的运行shell
#!/bin/bash
3.shell脚本的输入和输出:
1.输入
#从终端接收用户输入放入filename变量中
read filename
2.输出
#将变量filename中的内容打印在屏幕上
echo $filename
4.shel脚本中的引号:
1.单引号
原封不动打印引号中的内容
echo '$filename'
2.双引号
将双引号中的变量替换成对应的值打印
echo "$filename"
3.倒引号
将引号中的内容当做命令来处理
echo `seg 10`
5. shell中的变量
· 1环境变量:shell自带的一些变量,在程序运行时已经存在了
echo "$HOME"
echo "$PWD"
echo "$PATH"
...
2. 位置变量
$0 :脚本的名称
$1 :执行脚本时传入的参数1
$2 :执行脚本时传入的参数2
..
$# :传入参数的个数
$? :上一条shell语句的执行结果
$$ :脚本运行的进程编号
3. 自定义变量
value=0
$value
6. 分支结构:
1. if 分支
1. 基本结构:
if 表达式
then语句块
else语句块
fi2. 表达式可以由test命令实现
-gt #大于
-lt #小于
-ge #大于等于
-le #小于等于
-eq #等于
-ne #不等于
-b #检测文件是否存在,并判断是否为块设备
-c #检测文件是否存在,并判断是否为字符设备
-d #检测文件是否存在,并判断是否为目录文件
-e #检测文件是否存在
-f #检测文件是否存在,并判断是否为普通文件
-L #检测文件是否存在,并判断是否为链接文件
-p #检测文件是否存在,并判断是否为管道文件
-S #检测文件是否存在,并判断是否为套接字文件
test可以通过[]来替代!!【】&&【】 【 -a】
(tip:中括号两侧一定要空格 一定不要忘记 -)
2. case 分支
1基本结构
case 变量名 in常量1)语句;;常量2)语句;;常量3)语句;;*)语句;;esac7循环结构
1. while循环
1. 基本形式
while 表达式
do 语句块
done2. until
1. 基本形式
until 表达式
do 语句块
done3. for
1. 基本形式
for i in 数据集
do语句块
done8. 数组:
1. 基本形式
#!/bin/bash
array=("hello" "world" "how" "are" "you")i=0echo ================================for ((i = 0; i < 5; i++)) doecho ${array[$i]}doneecho ================================echo "${array[*]}"9. 函数:
#!/bin/bash
add(){sum=`expr $1 + $2`echo "$sum"return $sum}read num1read num2#获得函数内输出的字符串
ret=`add $num1 $num2`#打印函数的运行的值
echo "$?"#打印函数内输出的字符串
echo "ret = $ret"tip:使用一条shell命令,实现找到在stdio.h的后200行中找到和extern相关的内容,写入文件 record.txt文件中
tail -n 200 stdio.h | grep "extern" > record.txt
1数组和链表的区别
数组内存连续且空间有限,元素地址通过索引计算
链表内存不连续空间无限,节点通过指针链接。
数组便于随机访问元素但不便于删除、插入操作,
链表便于频繁插入删除,数据量动态变化
2栈、队列与链表三者之间的区别
三者均为线性结构,但是操作逻辑不同。
栈:后进先出,仅允许在栈顶操作,可用链表实现。(栈用于递归、表达式求值)
队列:先进先出,在队尾插入,在队头删除,链表实现更高效。(队列用于任务调度)
链表:用来存储数据,节点通过指针链接,支持任意位置增删,是栈和队列的实现方式之一
链表用于动态数据管理
3常见的二叉树的遍历方式
前序遍历、中序遍历、后续遍历、层序遍历
(前/中/后序常用递归,层序需用队列)
简述快速排序的思想
先规定一个键值,把比它小的元素排左边,比它大的元素排右边,再在左右两边分别重复上述过程,递归遍历排序。
4单向链表的头插法、尾插法、链表销毁功能函数
//头插法Int insert_head_linknode(linknode phead, datatype tmpdata){ }//尾插法//链表销毁