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

软件编程1-shell命令

一、shell命令概述

1、shell命令的作用

  1. shell是操作系统的外壳,主要作用为:
    1. 保护Linux内核,防止用户直接操作内核导致的异常问题
    2. 命令解释器的作用,用户可以通过命令给到shell,并转换为对应的内核代码实现功能

2、shell命令的测执行流程

  1. 用户→shell命令→内核→硬件→用户

二、基本shell命令

1. 基础的shell命令

  1. ls                查看文件
  2. cd               进入目录
  3. touch          创建文件
  4. rm               删除文件
  5. mkdir          创建文件夹
  6. rmdir           删除文件夹
  7. cp               拷贝文件
  8. mv              移动文件

2. 文件查看命令

  1.  cat命令:
    1. 查看文件中的内容
    2. 使用形式:cat 文件名
  2. head命令:
    1. 查看文件开头内容(加行数,查看开头前n行的内容)
    2. 使用形式:head -n 行数 文件名
  3.  tail命令:
    1. 查看文件末尾内容(加行数,查看倒数n行的内容)
    2. 使用形式:tail -n 行数 文件名

3. 通配符

作用:用来搭配shell命令使用,操作多个文件
1. *        :匹配任意长度、任意字符的文件名
2. ?        :匹配一位长度、任意字符的文件名
3. []        :匹配一位长度、指定字符的文件名

4.管道

作用:将前面命令的输出作为后续命令的输入

5.重定向

作用:将原本要输出在终端的内容定向到文件中

1.覆盖重定向(将原来的内容覆盖)“>”

2.追加重定向(在原内容末尾添加新内容) “>>”

6.文件查找命令

1.find命令:

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

2.whereis命令:

  1. 查找二进制可执行程序:whereis valgrind

7.常见命令

1.echo命令:在终端上显示内容

2.grep命令:查找包含字符串对应的行并显示

8.压缩和解压命令

1. .tar.gz格式

2. .tar.bz2格式

9.用户管理命令

二、shell脚本

1. 编程语言的分类

  • 编译型语言:
    • 先编译再运行
    • 有丰富的数据类型、擅长计算
    • 执行效率高
    • 开发效率低
    • C、C++、C#、Java
  •  解释型语言:
    • 边翻译边执行
    • 擅长对系统维护管理
    • 执行效率低
    • 开发效率高
    • shell、Python、javascript

2.shell脚本编程

  1. 定义:脚本的本质就是一系列shell命令的集合
  2. 编程步骤
    1. 编写脚本文件:vim filename.sh    (.sh结尾)
    2. 使用chmod命令加执行权限:chmod +x filename.sh
    3. 运行脚本:./filename.sh
  3. 内容编程
    1. 指定脚本对应的运行shell(类似头文件)
      1. #!/bin?bash
    2. shell脚本输入:从终端接收用户输入放入filename变量中
      1. :read filename
    3. shell脚本输出:将变量filename中的内容打印在屏幕上
      1. :echo $filename
  4. shell脚本中的引号:

        

        5.shell脚本中的变量:

        

    

         

    6.分支结构:

         

         

          

          

            

          

http://www.lryc.cn/news/615842.html

相关文章:

  • 【话题讨论】GPT-5 发布全解读:参数升级、长上下文与多领域能力提升
  • SpringAi 通过大模型来实现调用自己的Api
  • 基于VuePress2开发文档自部署及嵌入VUE项目
  • vue如何监听localstorage
  • Vue 3 快速入门 第五章
  • vue2升级vue3:单文件组件概述 及常用api
  • Vue.js设计于实现 - 响应式(三)
  • (LeetCode 面试经典 150 题) 104. 二叉树的最大深度 (深度优先搜索dfs)
  • 深入解析微服务分布式事务的原理与优化实践
  • 双非二本如何找工作?
  • CPP继承
  • 40.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--扩展功能--集成网关--初始化网关
  • 【递归、搜索与回溯算法】递归算法
  • 【前端基础】14、CSS设置背景(background相关的)
  • Unity中实现自动寻路
  • 串口通信初始化过程是怎样的???
  • 每日五个pyecharts可视化图表-line:从入门到精通 (2)
  • go语言运算符
  • H3C(基于Comware操作系统)与eNSP平台(模拟华为VRP操作系统)的命令差异
  • GPT OSS深度解析:OpenAI时隔6年的开源模型,AI民主化的新里程碑?
  • 【递归、搜索与回溯算法】深度优先搜索
  • python Flask简单图书管理 API
  • 从Redisson源码角度深入理解Redis分布式锁的正确实现
  • Lua基础+Lua数据类型
  • Hadoop MapReduce过程
  • nginx+Lua环境集成、nginx+Lua应用
  • 分享一个基于Python和Hadoop的的电信客户特征可视化分析平台 基于Spark平台的电信客服数据存储与处理系统源码
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘mlflow’问题
  • leetcode2379:得到K个黑块的最少涂色次数(定长滑动窗口)
  • Boost.Asio io_service 与 线程 的分析