当前位置: 首页 > news >正文

Linux软件编程:shell

        学习接口调用-->软件操作流程和思想-->软件设计思想和流程架构

1.IO操作文件

2.多任务编程

3.网络编程

4.数据库编程

一、Linux系统概述

        1.世界上第一款操作系统:unix

        2.操作系统存在意义:为了屏蔽底层不同的硬件平台,为上层提供统一的接口

        3.GNU:开源组织,GPL协议

        4.林纳斯Linux重写了unix操作系统,类unix操作系统

        5.Linux应用场景:服务器、嵌入式

        6.GNU:Linux、Apache,Mysql,Python,LAMP

二、Linux系统简介

       1.常见Linux系统:Ubuntu、Debian、Redhat、CentOS等

        2.Linux操作系统是操作系统的核心,也称内核

        3.linux内核的主要功能:内存管理、多任务管理、文件系统管理、多任务间通信、网络管理

三、shell命令

(一)shell的主要作用(shell是操作系统的外壳)

        1.保护linux内核,防止用户直接操作内核导致异常问题

        2.命令解释器的作用(f翻译助理),用户通过命令给shell,并转换为对应的内核代码实现功能

(二)shell命令的执行流程:用户->shell命令->内核->硬件->用户

(三)常用的shell命令

        1.基本shell命令:ls、cd、touch、rm、mkdir、rmdir、cp、mv

        2.文件查看命令

                2.1cat(cat+文件名):查看文件中内容

                2.2head(head+文件名):查看文件开头内容

                        head -n行数 文件名:查看前n行

                2.3tail(tail+文件名):查看文件末尾内容

                        tail -n行数 文件名:查看后n行

        3.文件查找命令

                3.1find(find .-name 文件名):在当前目录下查找文件

                3.2查找包含某个字符串的文件:find . type f -print0 | xargs -0 grep -1 "字符串"

                3.3whereis(whereis valgrind):查找二进制可执行文件

        4.通配符

                4.1 *:(ls file*.txt)匹配任意长度、任意字符的文件名

                4.2 ?:(ls file_??.txt)匹配一位长度、任意字符的文件名

                4.3 []:(ls file_[1-5].txt或者ls file_[^3].txt或者ls file_[1,3,5].txt)匹配一位长度、指定字符的文件名

        5.常见命令

                5.1echo(echo "hello"):在终端显示

                5.2grep(grep "字符串" 文件名):查找包含字符串对应的行并显示

        6.管道:将前面命令的输入作为后续命令的输入

                6.1./a.out | grep "字符串"

                6.2ls file* | grep ".sh"

        7.重定向:将原本要输出在终端的内容定向到文件中

                7.1覆盖重定向(>):原来被覆盖

                7.2追加重定向(>>):在原来基础上加上

        8.压缩和解压命令

                8.1tar.gz格式

                     压缩:tar -zcvf 文件名.tar.gz 目录名/*

                     解压:tar -zxvf 文件名.tar.gz

                8.2tar.bz2格式

                        压缩:tar -jcvf 文件名.tar.bz2 目录名/*

                        解压:tar -jcvf 文件名.tar.bz2 

        9.用户管理命令

                9.1useradd(sudo useradd 用户名):新建用户

                9.2userdel(sudo userdel 用户名):删除用户

                9.3passwd(修改密码):sudo passwd 用户名

                9.4su(切换用户):su 用户名                  exit 退出当前用户

                9.5chmod(修改文件权限):

                        

                9.6chown(修改文件的所属用户):sudo chown 用户名 文件名

                9.7chgrp(修改文件的所属组):chgrp 组名 文件名

四、shell脚本

(一)编程语言分类

        1.编译型语言

                1.1先编译在运行

                1.2有丰富的数据类型,擅长计算

                1.3执行效率高

                1.4开发效率低

                1.5C、C++、C#、java

        2.解释性语言

                2.1边编译边执行

                2.2擅长对系统维护管理

                2.3执行效率高

                2.4开发效率低

                2.5shell、python、javascript

(二)shell脚本编程(本质:一系列shell命令的集合)

        1.编写步骤

                1.1编写脚本文件:vim filename .sh

                1.2使用chmod命令为脚本加上执行权限:chmod 0777+x filename.sh

                1.3运行脚本:./filename.sh

        2.指定脚本对应的运行shell:#!bin/bash

        3.shell脚本的输入和输出

                3.1输入(read filename):  从终端接收输入放入filename变量中      

                3.2输出(echo $filename):将变量filename中的内容打印在屏幕上

        4.shell脚本中的引导

                4.1单引号(echo'$filename'):原封不动打印里面内容

                4.2双引号(echo"$filename"):将里面的变量换成对应的值打印

                4.3倒引号(echo`seq 10`):将里面内容当命令来处理

        5.shell中的变量

                5.1环境变量(HOME、PWD、PATH):shell自带的一些变量,在程序运行时已经存在

                5.2位置变量

                5.3自定义变量:value = 0        $value

        6.分支结构

                6.1if分支(test可以用[]代替)

                        ①基本结构

                        ②表达式可以由test命令实现(man test)

                6.2case分支

                  

        7.循环结构

                7.1while

                        while        表达式

                        do

                                语句块

                        done         

                7.2uniti   (判断条件与while相反)

                          while        表达式

                          do

                                语句块

                          done     

                7.3for

                        for     i      in   数据集

                        do

                                语句块

                        done

        8.数组的使用

                

        9.函数

                  ​​​​​​​        ​​​​​​​        ​​​​​​​

http://www.dtcms.com/a/323200.html

相关文章:

  • pdf预览Vue-PDF-Embed
  • 定制客车系统票务管理系统功能设计
  • 深度学习入门Day8:生成模型革命——从GAN到扩散模型
  • Vue 3.6 Vapor模式完全指南:告别虚拟DOM,性能飞跃式提升
  • 大模型“涌现”背后的暗线——规模、数据、目标函数的三重协奏
  • 华为实验:SSH
  • P1890 gcd区间
  • 在 VS Code 或 Visual Studio 2022 上搭建 ESP32-CAM 开发环境
  • 微软将于 10 月停止混合 Exchange 中的共享 EWS 访问
  • 论文复现内容关于一种新的线性电机系统齿槽力模型
  • 关于TensorRT的若干报错问题
  • [Oracle] TRUNC()函数
  • W25Q64中跨页写入数据
  • 总结-ArrayList的扩容机制和BigDecimal大数的底层
  • 机器学习DBSCAN密度聚类
  • 如何更改win11自带录音机所录制文件的存储路径
  • 禁用 WordPress 更新提示(核心、插件、主题)
  • 【重建技巧】Urban Scene Reconstruction-LoD细节提升
  • springBoot集成easyExcel 实现文件上传
  • WinForm 中 ListView 控件的实战应用与功能拓展
  • 集成电路学习:什么是RViz机器人可视化工具
  • Java 时间和空间复杂度
  • 徘徊识别场景误报率↓77%:陌讯动态时序建模方案实战解析
  • 二叉搜索树的C语言实现
  • 《软件测试与质量控制》实验报告五 功能自动化测试
  • 掌握数据可视化:全局配置项详解
  • Java进阶之单列集合List接口下的通用方法
  • Ubuntu22.04 安装vitis2023.2 卡在“Generating installed device list“.
  • 【Datawhale AI夏令营】让AI读懂财报PDF(多模态RAG)(Task 2)
  • 用 C 语言深入理解 Linux 软链接:原理、API 与编程实践