当前位置: 首页 > 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.lryc.cn/news/615521.html

相关文章:

  • 组合期权:垂直价差
  • C++ 中的智能指针
  • 电子电气架构 --- 电气/电子架构迁移已拉开帷幕
  • Oracle数据库重启后打开异常状态的检查步骤
  • 一周学会Matplotlib3 Python 数据可视化-网格 (Grid)
  • [IOMMU]面向芯片/SoC验证工程的IOMMU全景速览
  • C# 通过第三方库INIFileParser管理INI配置文件
  • 智慧园区误报率↓76%:陌讯多模态融合算法实战解析
  • 202506 电子学会青少年等级考试机器人一级理论综合真题
  • 闲鱼智能监控机器人:基于 Playwright 与 AI 的多任务监控分析工具
  • 2025年SEVC SCI2区,基于深度强化学习与模拟退火的多无人机侦察任务规划,深度解析+性能实测
  • Dify 从入门到精通(第 24/100 篇):Dify 的实时数据处理与流式输出
  • 微积分 | 外微分
  • HUAWEI交换机命令基础
  • java基础(六)jvm
  • 微信小程序中实现表单自动填充功能的方法
  • Linux网络子系统架构分析
  • P1025 [NOIP 2001 提高组] 数的划分 题解
  • 基于麦克风阵列电机噪声振动监测解决方案技术解析
  • “自动报社保 + 查询导出 ” 的完整架构图和 Playwright C# 项目初始化模板
  • BroadcastChannel:轻松实现前端跨页面通信
  • 06-docker容器常用命令
  • 全栈:JDBC驱动版本和SQLserver版本是否有关系?怎么选择JDBC的版本号?
  • 自然语言交互与数据库智能客户端比对
  • SpringBoot配置生效优先级
  • 机器学习第七课之支持向量机SVM
  • Java Callback 实现线程切换以及与Kotlin原理关系
  • 数码管的使用(STC8)
  • Pytest中实现自动生成测试用例脚本代码
  • Java Stream 使用 Fork/Join框架的分治任务模型